users: move users to another module
This commit is contained in:
@@ -0,0 +1,37 @@
|
||||
{
|
||||
config,
|
||||
inputs,
|
||||
osConfig,
|
||||
...
|
||||
}: {
|
||||
imports = with inputs; [
|
||||
nix-index-database.hmModules.nix-index
|
||||
self.homeModules.desktop
|
||||
self.homeModules.programs
|
||||
];
|
||||
|
||||
inherit (osConfig) desktop;
|
||||
|
||||
home = {
|
||||
inherit (osConfig.system) stateVersion;
|
||||
sessionPath = ["$HOME/.local/bin"];
|
||||
};
|
||||
|
||||
xdg.userDirs = let
|
||||
inherit (config.home) homeDirectory;
|
||||
homeDir = f: "${homeDirectory}/${f}";
|
||||
in {
|
||||
enable = true;
|
||||
createDirectories = true;
|
||||
templates = homeDir "temps";
|
||||
publicShare = homeDir "pub";
|
||||
desktop = homeDir "desktop";
|
||||
download = homeDir "downloads";
|
||||
documents = homeDir "docs";
|
||||
pictures = homeDir "pics";
|
||||
videos = homeDir "vids";
|
||||
music = homeDir "music";
|
||||
};
|
||||
|
||||
dconf.settings."org/gnome/desktop/interface".enable-animations = false;
|
||||
}
|
||||
@@ -0,0 +1,153 @@
|
||||
{
|
||||
inputs,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
imports = with inputs; [
|
||||
nix-flatpak.homeManagerModules.nix-flatpak
|
||||
];
|
||||
home.packages = with pkgs; [flatpak];
|
||||
services.flatpak = {
|
||||
enable = true;
|
||||
uninstallUnmanaged = true;
|
||||
update.auto = {
|
||||
enable = true;
|
||||
onCalendar = "weekly";
|
||||
};
|
||||
remotes = [
|
||||
{
|
||||
name = "flathub";
|
||||
location = "https://dl.flathub.org/repo/flathub.flatpakrepo";
|
||||
}
|
||||
];
|
||||
packages =
|
||||
[
|
||||
# browsers
|
||||
"app.zen_browser.zen"
|
||||
# "com.vivaldi.Vivaldi"
|
||||
"io.github.ungoogled_software.ungoogled_chromium"
|
||||
"net.mullvad.MullvadBrowser"
|
||||
"org.torproject.torbrowser-launcher"
|
||||
]
|
||||
++ [
|
||||
# editing
|
||||
"com.github.PintaProject.Pinta" # bootleg paint
|
||||
"org.gimp.GIMP" # the holy gimp
|
||||
"org.kde.kdenlive" # video editor
|
||||
{
|
||||
appId = "com.collabora.Office";
|
||||
bundle = builtins.fetchurl {
|
||||
url = "https://cdn.collaboraoffice.com/collaboraoffice-v25.04.7.2_final.flatpak";
|
||||
name = "collaboraoffice-v25.04.7.2_final.flatpak";
|
||||
sha256 = "RHEXrlymoWnNmdVEzVh85/icxQsWVpLpgkJubi7SpsY=";
|
||||
};
|
||||
}
|
||||
]
|
||||
++ [
|
||||
# chatting
|
||||
"im.riot.Riot" # matrix client
|
||||
"io.github.kukuruzka165.materialgram" # telegram client
|
||||
"org.equicord.equibop" # discord client
|
||||
# "org.mozilla.Thunderbird" # mail client
|
||||
"com.tutanota.Tutanota"
|
||||
"org.signal.Signal"
|
||||
# "org.telegram.desktop"
|
||||
]
|
||||
++ [
|
||||
# media
|
||||
# "ca.edestcroix.Recordbox" # music player
|
||||
"com.github.neithern.g4music" # music player
|
||||
# "io.bassi.Amberol" # music player
|
||||
"app.grayjay.Grayjay" # youtube client
|
||||
# "org.atheme.audacious" # music player
|
||||
]
|
||||
++ [
|
||||
# gaming
|
||||
"com.heroicgameslauncher.hgl" # gog/egs launcher
|
||||
"com.valvesoftware.Steam"
|
||||
"net.lutris.Lutris" # everything launcher
|
||||
"org.prismlauncher.PrismLauncher" # minecraft launcher
|
||||
"org.freedesktop.Platform.VulkanLayer.MangoHud//24.08"
|
||||
"org.freedesktop.Platform.VulkanLayer.gamescope//24.08"
|
||||
]
|
||||
++ [
|
||||
# misc
|
||||
"app.drey.Warp" # share files using magic wormhole
|
||||
"com.bitwarden.desktop"
|
||||
"com.github.johnfactotum.Foliate" # book reader
|
||||
"com.github.tchx84.Flatseal" # control flatpak permissions
|
||||
"com.logseq.Logseq"
|
||||
"com.obsproject.Studio"
|
||||
"com.usebottles.bottles" # wine containers
|
||||
"de.capypara.FieldMonitor" # libvirt
|
||||
"org.qbittorrent.qBittorrent" # torrents
|
||||
"io.github.amit9838.mousam" # weather
|
||||
"io.github.finefindus.Hieroglyphic" # find latex symbols (in rust)
|
||||
"io.github.lainsce.Khronos" # log time for tasks
|
||||
"io.gitlab.news_flash.NewsFlash" # rss reader
|
||||
"md.obsidian.Obsidian"
|
||||
"me.iepure.devtoolbox" # some cool utils
|
||||
"org.nicotine_plus.Nicotine" # soulseek
|
||||
];
|
||||
overrides = let
|
||||
homeNoNetwork = {
|
||||
Context.share = ["!network"];
|
||||
Context.filesystems = ["home"];
|
||||
};
|
||||
game.sockets = ["x11" "wayland"];
|
||||
game.folder = folder: ["/storage/games/${folder}" "~/games/${folder}"];
|
||||
in {
|
||||
"global" = {
|
||||
Context = {
|
||||
sockets = ["wayland" "!x11" "!fallback-x11"];
|
||||
filesystems = [
|
||||
"!home"
|
||||
"!host"
|
||||
"!~/.ssh"
|
||||
"/nix/store:ro"
|
||||
"xdg-config/gtk-3.0:ro"
|
||||
"xdg-config/gtk-4.0:ro"
|
||||
"xdg-config/Kvantum:ro"
|
||||
"xdg-config/qt5ct:ro"
|
||||
"xdg-config/qt6ct:ro"
|
||||
"xdg-run/pipewire-0"
|
||||
"~/.local/share/icons:ro"
|
||||
];
|
||||
};
|
||||
Environment = {
|
||||
ELECTRON_OZONE_PLATFORM_HINT = "wayland";
|
||||
};
|
||||
};
|
||||
"app.grayjay.Grayjay".Context.sockets = ["x11" "!wayland" "!fallback-x11"]; # because CEF
|
||||
"ca.edestcroix.Recordbox".Context.filesystems = ["xdg-music"];
|
||||
"md.obsidian.Obsidian".Context.filesystems = ["~/Obsidian" "~/.ssh"]; # .ssh for git plugin
|
||||
"com.valvesoftware.Steam" = {
|
||||
Context = {
|
||||
inherit (game) sockets;
|
||||
filesystems = game.folder "steam";
|
||||
};
|
||||
Environment.STEAM_FORCE_DESKTOPUI_SCALING = "1.3";
|
||||
};
|
||||
"net.lutris.Lutris".Context = {
|
||||
inherit (game) sockets;
|
||||
filesystems = game.folder "lutris";
|
||||
};
|
||||
"com.heroicgameslauncher.hgl".Context = {
|
||||
inherit (game) sockets;
|
||||
filesystems = game.folder "heroic";
|
||||
};
|
||||
"com.collabora.Office" = {inherit (homeNoNetwork) Context;};
|
||||
"com.github.PintaProject.Pinta" = {inherit (homeNoNetwork) Context;};
|
||||
"com.logseq.Logseq" = {inherit (homeNoNetwork) Context;};
|
||||
"com.obsproject.Studio" = {inherit (homeNoNetwork) Context;};
|
||||
"com.usebottles.Bottles".Context = {inherit (game) sockets;};
|
||||
"io.bassi.Amberol" = {inherit (homeNoNetwork) Context;};
|
||||
"io.freetubeapp.FreeTube" = {inherit (homeNoNetwork) Context;};
|
||||
"org.atheme.audacious" = {inherit (homeNoNetwork) Context;};
|
||||
"org.gimp.GIMP" = {inherit (homeNoNetwork) Context;};
|
||||
"org.kde.kdenlive" = {inherit (homeNoNetwork) Context;};
|
||||
"org.signal.Signal".Environment.SIGNAL_PASSWORD_STORE = "gnome-libsecret";
|
||||
"org.qbittorrent.qBittorrent".Context.filesystems = ["host"]; # evil
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,169 @@
|
||||
{
|
||||
config,
|
||||
inputs,
|
||||
lib,
|
||||
osConfig,
|
||||
perSystem,
|
||||
pkgs,
|
||||
...
|
||||
}: let
|
||||
inherit (lib) mkIf;
|
||||
inherit (osConfig.virtualisation) libvirtd;
|
||||
inherit (osConfig.hardware) bluetooth;
|
||||
in {
|
||||
imports = [
|
||||
inputs.vicinae.homeManagerModules.default
|
||||
];
|
||||
|
||||
services.vicinae.enable = true;
|
||||
|
||||
console.yazi.enable = true;
|
||||
editor.helix.enable = true;
|
||||
shell = {
|
||||
fish.enable = true;
|
||||
oh-my-posh.enable = true;
|
||||
};
|
||||
|
||||
syncthing.enable = true;
|
||||
terminal.wezterm.enable = true;
|
||||
terminal.ghostty.enable = true;
|
||||
systemd.user.settings.Manager.DefaultEnvironment = {
|
||||
TERMINAL = "wezterm";
|
||||
HISTFILE = ''"$XDG_STATE_HOME"/bash/history'';
|
||||
CARGO_HOME = ''"$XDG_DATA_HOME"/cargo'';
|
||||
DOTNET_CLI_HOME = ''"$XDG_DATA_HOME"/dotnet'';
|
||||
GNUPGHOME = ''"$XDG_DATA_HOME"/gnupg'';
|
||||
ICEAUTHORITY = ''"$XDG_CACHE_HOME"/ICEauthority'';
|
||||
NUGET_PACKAGES = ''"$XDG_CACHE_HOME"/NuGetPackages'';
|
||||
NPM_CONFIG_INIT_MODULE = ''"$XDG_CONFIG_HOME"/npm/config/npm-init.js'';
|
||||
NPM_CONFIG_CACHE = ''"$XDG_CACHE_HOME"/npm'';
|
||||
NPM_CONFIG_TMP = ''"$XDG_RUNTIME_DIR"/npm'';
|
||||
};
|
||||
|
||||
services = {
|
||||
# pueue.enable = true; # process queue in rust
|
||||
ssh-agent.enable = true;
|
||||
};
|
||||
|
||||
programs =
|
||||
lib.attrsets.recursiveUpdate
|
||||
{
|
||||
bat.enable = true; # cat in rust
|
||||
btop.enable = true;
|
||||
# direnv.enable = true;
|
||||
distrobox.enable = true;
|
||||
difftastic.enable = true;
|
||||
eza.enable = true; # ls in rust
|
||||
fd.enable = true; # find in rust
|
||||
fzf.enable = true; # fuzzy finder in rust
|
||||
git.enable = true;
|
||||
gitui.enable = true; # git ui in rust
|
||||
jujutsu.enable = true; # vcs in rust
|
||||
keychain.enable = true;
|
||||
nix-index-database.comma.enable = true;
|
||||
nix-index.enable = true;
|
||||
nix-your-shell.enable = true;
|
||||
pay-respects.enable = true; # thefuck in rust
|
||||
ripgrep.enable = true; # grep in rust
|
||||
zellij.enable = true;
|
||||
zk.enable = true;
|
||||
zoxide.enable = true; # fuzzy cd in rust
|
||||
}
|
||||
{
|
||||
btop.settings.update_ms = 200;
|
||||
|
||||
difftastic.git.enable = true;
|
||||
difftastic.git.diffToolMode = true;
|
||||
|
||||
git.signing.format = "ssh";
|
||||
|
||||
git.settings.alias.cl = "clone";
|
||||
git.settings.alias.co = "checkout";
|
||||
|
||||
keychain.keys = ["id_ed25519"];
|
||||
};
|
||||
|
||||
home.packages = with pkgs;
|
||||
[
|
||||
# development utils
|
||||
alejandra # nix formatter in rust
|
||||
# devenv # programming deps in rust
|
||||
(mkIf config.programs.jujutsu.enable jj-fzf) # fuzzy finder jujutsu tui
|
||||
just # make in rust
|
||||
silicon # create code pics in rust
|
||||
]
|
||||
++ [
|
||||
# console utils
|
||||
# bluetuith # bluetooth tui in go
|
||||
dua # disk space usage in rust
|
||||
duf # better df in go
|
||||
fend # calculator in rust
|
||||
# mprocs # process runner in rust
|
||||
ouch # archive manager in rust
|
||||
# procs # ps in rust
|
||||
rbw # bitwarden cli in rust
|
||||
sd # sed in rust
|
||||
systemctl-tui # systemctl tui in rust
|
||||
trashy # trash cli in rust
|
||||
up # ultimate plumber in go
|
||||
]
|
||||
++ [
|
||||
(pkgs.writeShellApplication {
|
||||
name = "rbw-ls";
|
||||
runtimeInputs = with pkgs; [rbw jq csvlens];
|
||||
text = ''
|
||||
rbw ls --raw \
|
||||
| jq -r '["name","user","folder","id"],
|
||||
( .[] | [(.name // "none"), (.user // "none"), (.folder // "none"), .id])
|
||||
| @csv' \
|
||||
| csvlens
|
||||
'';
|
||||
})
|
||||
(pkgs.writeShellApplication {
|
||||
name = "rbw-get";
|
||||
runtimeInputs = with pkgs; [rbw wl-clipboard];
|
||||
text = ''rbw get --clipboard "$1" && sleep 5 && wl-copy -c'';
|
||||
})
|
||||
(pkgs.writeShellApplication {
|
||||
name = "rbw-totp";
|
||||
runtimeInputs = with pkgs; [rbw wl-clipboard];
|
||||
text = ''rbw totp --clipboard "$1" && sleep 5 && wl-copy -c'';
|
||||
})
|
||||
]
|
||||
++ [
|
||||
# misc apps
|
||||
adwaita-icon-theme
|
||||
# vial # qmk keyboard configuring app
|
||||
pinentry-qt # pinentry for rbw
|
||||
(mkIf libvirtd.enable virt-manager) # libvirt gui
|
||||
# waycheck # check wayland protocols
|
||||
gpu-screen-recorder-gtk
|
||||
]
|
||||
++ [
|
||||
# gui libadwaita apps
|
||||
celluloid # mpv gui in libadwaita
|
||||
# gnome-text-editor
|
||||
helvum # pipewire patchbay in rust
|
||||
# junction # app chooser
|
||||
mission-center # task manager in rust (partly)
|
||||
(mkIf bluetooth.enable overskride) # bluetooth gui in rust
|
||||
pika-backup # borg gui in rust
|
||||
pwvucontrol # pipewire gui in rust
|
||||
perSystem.zmx.default
|
||||
# sonusmix # pipewire routing tool in rust
|
||||
];
|
||||
|
||||
xdg.configFile."vicinae/vicinae.json".enable = false;
|
||||
|
||||
# xdg.desktopEntries.uni = {
|
||||
# actions."Copy".exec = "fish -c \"~/.local/bin/uni --copy\"";
|
||||
# categories = ["Utility" "X-Launch" "Network"];
|
||||
# comment = "Select and open or copy URLs from a list.";
|
||||
# exec = "fish -c \"~/.local/bin/uni\"";
|
||||
# icon = "web-browser";
|
||||
# name = "Uni URL Handler";
|
||||
# startupNotify = true;
|
||||
# terminal = false;
|
||||
# type = "Application";
|
||||
# };
|
||||
}
|
||||
Reference in New Issue
Block a user