diff --git a/.nvimlog b/.nvimlog new file mode 100644 index 00000000..e69de29b diff --git a/hosts/detritus/filesystems/default.nix b/hosts/detritus/filesystems/default.nix index 4fcab792..f25a8d19 100644 --- a/hosts/detritus/filesystems/default.nix +++ b/hosts/detritus/filesystems/default.nix @@ -1,30 +1,31 @@ { config, ... }: { fileSystems = { + "/persist/storage" = { + device = "/dev/disk/by-uuid/d0d6783f-ad51-4d85-b8a9-3374f6460ef6"; + fsType = "btrfs"; + options = [ + "nofail" + "nosuid" + ]; + }; + # Network mounts "/home/${config.sysusers.main}/Network/Midas" = { device = "sv.nixfox.ca:/storage"; fsType = "nfs4"; options = [ + "noatime" "noauto" "soft" "x-systemd.automount" ]; }; - "/home/${config.sysusers.main}/Network/Kitty" = { - device = "sv.nixfox.ca:/storage/bun"; - fsType = "nfs4"; - options = [ - "noauto" - "port=2050" - "soft" - "x-systemd.automount" - ]; - }; "/home/${config.sysusers.main}/Network/Prophet" = { device = "mx.nixfox.ca:/storage"; fsType = "nfs4"; options = [ + "noatime" "noauto" "soft" "x-systemd.automount" diff --git a/hosts/jupiter/jovian/default.nix b/hosts/jupiter/jovian/default.nix index f827574b..db24a2b3 100644 --- a/hosts/jupiter/jovian/default.nix +++ b/hosts/jupiter/jovian/default.nix @@ -45,7 +45,10 @@ "/etc/NetworkManager/system-connections" "/var/lib/decky-loader" ]; - users.${config.sysusers.main}.directories = [ ".steam" ]; + users.${config.sysusers.main}.directories = [ + ".config/dconf" + ".steam" + ]; }; gnome.excludePackages = with pkgs; [ adwaita-icon-theme diff --git a/hosts/kitty/filesystems/default.nix b/hosts/kitty/filesystems/default.nix index 29880794..8354a0ab 100644 --- a/hosts/kitty/filesystems/default.nix +++ b/hosts/kitty/filesystems/default.nix @@ -9,6 +9,8 @@ "nosuid" ]; }; + + # Network mounts "/home/${config.sysusers.main}/Network/Midas" = { device = "11.0.0.1:/storage"; fsType = "nfs4"; diff --git a/modules/home/programs/gui/librewolf/default.nix b/modules/home/programs/gui/librewolf/default.nix index 8f5291be..954d8875 100644 --- a/modules/home/programs/gui/librewolf/default.nix +++ b/modules/home/programs/gui/librewolf/default.nix @@ -242,7 +242,7 @@ ".librewolf".source = config.lib.file.mkOutOfStoreSymlink "${config.home.homeDirectory}/.mozilla/firefox"; ".mozilla/librewolf".source = config.lib.file.mkOutOfStoreSymlink "${config.home.homeDirectory}/.mozilla/firefox"; }; - persistence."/persist${config.home.homeDirectory}".directories = [ ".mozilla" ]; + persistence."${config.xdg.userDirs.extraConfig.XDG_PERSIST_DIR}".directories = [ "browser/.mozilla" ]; }; }; } diff --git a/modules/home/programs/gui/obs/default.nix b/modules/home/programs/gui/obs/default.nix index 950c8bb8..15381818 100644 --- a/modules/home/programs/gui/obs/default.nix +++ b/modules/home/programs/gui/obs/default.nix @@ -12,6 +12,6 @@ ]; }; - home.persistence."/persist${config.home.homeDirectory}".directories = [ ".config/obs-studio" ]; + home.persistence."${config.xdg.userDirs.extraConfig.XDG_PERSIST_DIR}".directories = [ "data/.config/obs-studio" ]; }; } diff --git a/modules/home/programs/gui/thunderbird/default.nix b/modules/home/programs/gui/thunderbird/default.nix index 21c23773..47404be1 100644 --- a/modules/home/programs/gui/thunderbird/default.nix +++ b/modules/home/programs/gui/thunderbird/default.nix @@ -59,6 +59,6 @@ }; }; - home.persistence."/persist${config.home.homeDirectory}".directories = [ ".thunderbird" ]; + home.persistence."${config.xdg.userDirs.extraConfig.XDG_PERSIST_DIR}".directories = [ "browser/.thunderbird" ]; }; } diff --git a/modules/home/programs/misc/gaming/launchers/default.nix b/modules/home/programs/misc/gaming/launchers/default.nix index 9f0a8e44..f937135e 100644 --- a/modules/home/programs/misc/gaming/launchers/default.nix +++ b/modules/home/programs/misc/gaming/launchers/default.nix @@ -8,10 +8,10 @@ steam steam-run-free ]; - persistence."/persist${config.home.homeDirectory}".directories = [ - ".config/heroic" - ".local/share/PrismLauncher" - ".local/share/Steam" + persistence."${config.xdg.userDirs.extraConfig.XDG_PERSIST_DIR}".directories = [ + "games/.config/heroic" + "games/.local/share/PrismLauncher" + "games/.local/share/Steam" ]; }; diff --git a/modules/home/programs/misc/general/default.nix b/modules/home/programs/misc/general/default.nix index 6c023524..7419dde3 100644 --- a/modules/home/programs/misc/general/default.nix +++ b/modules/home/programs/misc/general/default.nix @@ -6,9 +6,9 @@ qbittorrent vesktop ]; - persistence."/persist${config.home.homeDirectory}".directories = [ - ".config/qBittorrent" - ".config/vesktop" + persistence."${config.xdg.userDirs.extraConfig.XDG_PERSIST_DIR}".directories = [ + "data/.config/qBittorrent" + "data/.config/vesktop" ]; }; } diff --git a/modules/home/programs/misc/production/default.nix b/modules/home/programs/misc/production/default.nix index ea3a1c3b..a9fea8b9 100644 --- a/modules/home/programs/misc/production/default.nix +++ b/modules/home/programs/misc/production/default.nix @@ -8,10 +8,10 @@ blender_4_4 krita ]; - persistence."/persist${config.home.homeDirectory}".directories = [ - ".config/audacity" - ".config/blender" - ".local/share/krita" + persistence."${config.xdg.userDirs.extraConfig.XDG_PERSIST_DIR}".directories = [ + "data/.config/audacity" + "data/.config/blender" + "data/.local/share/krita" ]; }; } diff --git a/modules/home/programs/misc/school/default.nix b/modules/home/programs/misc/school/default.nix index d46dc396..aba9de2a 100644 --- a/modules/home/programs/misc/school/default.nix +++ b/modules/home/programs/misc/school/default.nix @@ -11,11 +11,11 @@ shellAliases.seneca = "ssh jhampton1@matrix.senecapolytechnic.ca"; - persistence."/persist${config.home.homeDirectory}".directories = [ - ".cache/gpclient" - ".config/com.yuezk.qt" - ".config/remmina" - ".config/teams-for-linux" + persistence."${config.xdg.userDirs.extraConfig.XDG_PERSIST_DIR}".directories = [ + "school/.cache/gpclient" + "school/.config/com.yuezk.qt" + "school/.config/remmina" + "school/.config/teams-for-linux" ]; }; } diff --git a/modules/home/programs/terminal/direnv/default.nix b/modules/home/programs/terminal/direnv/default.nix index 1ccc3c68..51eac95e 100644 --- a/modules/home/programs/terminal/direnv/default.nix +++ b/modules/home/programs/terminal/direnv/default.nix @@ -5,5 +5,5 @@ nix-direnv.enable = true; }; - home.persistence."/persist${config.home.homeDirectory}".directories = [ ".local/share/direnv" ]; + home.persistence."${config.xdg.userDirs.extraConfig.XDG_PERSIST_DIR}".directories = [ "data/.local/share/direnv" ]; } diff --git a/modules/home/programs/terminal/lazygit/default.nix b/modules/home/programs/terminal/lazygit/default.nix index 45a9411d..243ff7f3 100644 --- a/modules/home/programs/terminal/lazygit/default.nix +++ b/modules/home/programs/terminal/lazygit/default.nix @@ -1,5 +1,5 @@ { config, ... }: { programs.lazygit.enable = true; - home.persistence."/persist${config.home.homeDirectory}".directories = [ ".local/state/lazygit" ]; + home.persistence."${config.xdg.userDirs.extraConfig.XDG_PERSIST_DIR}".directories = [ "state/.local/state/lazygit" ]; } diff --git a/modules/home/programs/terminal/neovim/default.nix b/modules/home/programs/terminal/neovim/default.nix index 3040b096..695c7491 100644 --- a/modules/home/programs/terminal/neovim/default.nix +++ b/modules/home/programs/terminal/neovim/default.nix @@ -115,6 +115,6 @@ home = { sessionVariables.MANPAGER = "nvim +Man!"; - persistence."/persist${config.home.homeDirectory}".directories = [ ".local/share/nvim/undo" ]; + persistence."${config.xdg.userDirs.extraConfig.XDG_PERSIST_DIR}".directories = [ "state/.local/share/nvim/undo" ]; }; } diff --git a/modules/home/programs/terminal/nix-index/default.nix b/modules/home/programs/terminal/nix-index/default.nix index 58f33a55..e82e0dd3 100644 --- a/modules/home/programs/terminal/nix-index/default.nix +++ b/modules/home/programs/terminal/nix-index/default.nix @@ -2,5 +2,5 @@ { programs.nix-index.enable = true; - home.persistence."/persist${config.home.homeDirectory}".directories = [ ".cache/nix-index" ]; + home.persistence."${config.xdg.userDirs.extraConfig.XDG_PERSIST_DIR}".directories = [ "nix/.cache/nix-index" ]; } diff --git a/modules/home/programs/terminal/zoxide/default.nix b/modules/home/programs/terminal/zoxide/default.nix index ee6e4704..36c56d59 100644 --- a/modules/home/programs/terminal/zoxide/default.nix +++ b/modules/home/programs/terminal/zoxide/default.nix @@ -4,6 +4,6 @@ home = { shellAliases.cd = "z"; - persistence."/persist${config.home.homeDirectory}".directories = [ ".local/share/zoxide" ]; + persistence."${config.xdg.userDirs.extraConfig.XDG_PERSIST_DIR}".directories = [ "state/.local/share/zoxide" ]; }; } diff --git a/modules/home/programs/terminal/zsh/default.nix b/modules/home/programs/terminal/zsh/default.nix index b9f9780b..b81f3851 100644 --- a/modules/home/programs/terminal/zsh/default.nix +++ b/modules/home/programs/terminal/zsh/default.nix @@ -26,5 +26,5 @@ ''; }; - home.persistence."/persist${config.home.homeDirectory}".directories = [ ".config/zsh" ]; + home.persistence."${config.xdg.userDirs.extraConfig.XDG_PERSIST_DIR}".directories = [ "state/.config/zsh" ]; } diff --git a/modules/home/services/gpg/default.nix b/modules/home/services/gpg/default.nix index a6cbd32b..72dcbe1b 100644 --- a/modules/home/services/gpg/default.nix +++ b/modules/home/services/gpg/default.nix @@ -1,7 +1,9 @@ -{ ... }: +{ config, ... }: { services.gpg-agent = { enable = true; enableSshSupport = true; }; + + home.persistence."${config.xdg.userDirs.extraConfig.XDG_PERSIST_DIR}".directories = [ "secure/.gnupg" ]; } diff --git a/modules/home/services/mpd/default.nix b/modules/home/services/mpd/default.nix index e862bd2b..c84ac9a7 100644 --- a/modules/home/services/mpd/default.nix +++ b/modules/home/services/mpd/default.nix @@ -18,6 +18,6 @@ mpd-discord-rpc.enable = true; }; - home.persistence."/persist${config.home.homeDirectory}".directories = [ ".local/share/mpd" ]; + home.persistence."${config.xdg.userDirs.extraConfig.XDG_PERSIST_DIR}".directories = [ "state/.local/share/mpd" ]; }; } diff --git a/modules/home/settings/dconf/default.nix b/modules/home/settings/dconf/default.nix index 38cda938..005a1a89 100644 --- a/modules/home/settings/dconf/default.nix +++ b/modules/home/settings/dconf/default.nix @@ -1,14 +1,10 @@ { config, lib, ... }: { - config = lib.mkIf config.home.desktop.enable { - dconf.settings = { - "org/gnome/desktop/interface/color-scheme".color-scheme = "prefer-dark"; - "org/virt-manager/virt-manager/connections" = { - autoconnect = [ "qemu:///system" ]; - uris = [ "qemu:///system" ]; - }; + dconf.settings = lib.mkIf config.home.desktop.enable { + "org/gnome/desktop/interface/color-scheme".color-scheme = "prefer-dark"; + "org/virt-manager/virt-manager/connections" = { + autoconnect = [ "qemu:///system" ]; + uris = [ "qemu:///system" ]; }; - - home.persistence."/persist${config.home.homeDirectory}".directories = [ ".config/dconf" ]; }; } diff --git a/modules/home/settings/impermanence/default.nix b/modules/home/settings/impermanence/default.nix index d22b1f4b..77bb60b6 100644 --- a/modules/home/settings/impermanence/default.nix +++ b/modules/home/settings/impermanence/default.nix @@ -2,23 +2,24 @@ { imports = [ impermanence.homeManagerModules.default ]; - home.persistence."/persist${config.home.homeDirectory}" = { + home.persistence."${config.xdg.userDirs.extraConfig.XDG_PERSIST_DIR}" = { enable = !config.targets.genericLinux.enable; - directories = [ - "Keepers" - "Projects" - - ".gnupg" - ".local/state/nix/profiles" - ".ssh" - ] ++ (if config.home.desktop.enable then [ - "Documents" - "Photos" - "Videos" - "Games" - - ".local/state/wireplumber" - ] else []); allowOther = false; + removePrefixDirectory = true; + directories = [ + "home/Keepers" + "home/Projects" + + "nix/.local/state/nix/profiles" + "secure/.ssh" + ] ++ (if config.home.desktop.enable then [ + "home/Documents" + "home/Games" + "home/Photos" + "home/Videos" + + "secure/.pki" + "state/.local/state/wireplumber" + ] else []); }; } diff --git a/modules/home/settings/xdg/folders/default.nix b/modules/home/settings/xdg/folders/default.nix index fbd3f6fe..0bd155ae 100644 --- a/modules/home/settings/xdg/folders/default.nix +++ b/modules/home/settings/xdg/folders/default.nix @@ -10,6 +10,9 @@ publicShare = null; templates = null; - extraConfig.XDG_SCREENSHOTS_DIR = "${config.xdg.userDirs.pictures}/Screenshots"; + extraConfig = { + XDG_SCREENSHOTS_DIR = "${config.xdg.userDirs.pictures}/Screenshots"; + XDG_PERSIST_DIR = "/persist${config.home.homeDirectory}"; + }; }; }