Update home impermanence to be in the style of GNU Stow

This commit is contained in:
Bun 2025-05-14 00:12:33 -04:00
parent 968ae4631c
commit 66502988ef
22 changed files with 72 additions and 64 deletions

0
.nvimlog Normal file
View file

View file

@ -1,30 +1,31 @@
{ config, ... }: { config, ... }:
{ {
fileSystems = { fileSystems = {
"/persist/storage" = {
device = "/dev/disk/by-uuid/d0d6783f-ad51-4d85-b8a9-3374f6460ef6";
fsType = "btrfs";
options = [
"nofail"
"nosuid"
];
};
# Network mounts # Network mounts
"/home/${config.sysusers.main}/Network/Midas" = { "/home/${config.sysusers.main}/Network/Midas" = {
device = "sv.nixfox.ca:/storage"; device = "sv.nixfox.ca:/storage";
fsType = "nfs4"; fsType = "nfs4";
options = [ options = [
"noatime"
"noauto" "noauto"
"soft" "soft"
"x-systemd.automount" "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" = { "/home/${config.sysusers.main}/Network/Prophet" = {
device = "mx.nixfox.ca:/storage"; device = "mx.nixfox.ca:/storage";
fsType = "nfs4"; fsType = "nfs4";
options = [ options = [
"noatime"
"noauto" "noauto"
"soft" "soft"
"x-systemd.automount" "x-systemd.automount"

View file

@ -45,7 +45,10 @@
"/etc/NetworkManager/system-connections" "/etc/NetworkManager/system-connections"
"/var/lib/decky-loader" "/var/lib/decky-loader"
]; ];
users.${config.sysusers.main}.directories = [ ".steam" ]; users.${config.sysusers.main}.directories = [
".config/dconf"
".steam"
];
}; };
gnome.excludePackages = with pkgs; [ gnome.excludePackages = with pkgs; [
adwaita-icon-theme adwaita-icon-theme

View file

@ -9,6 +9,8 @@
"nosuid" "nosuid"
]; ];
}; };
# Network mounts
"/home/${config.sysusers.main}/Network/Midas" = { "/home/${config.sysusers.main}/Network/Midas" = {
device = "11.0.0.1:/storage"; device = "11.0.0.1:/storage";
fsType = "nfs4"; fsType = "nfs4";

View file

@ -242,7 +242,7 @@
".librewolf".source = config.lib.file.mkOutOfStoreSymlink "${config.home.homeDirectory}/.mozilla/firefox"; ".librewolf".source = config.lib.file.mkOutOfStoreSymlink "${config.home.homeDirectory}/.mozilla/firefox";
".mozilla/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" ];
}; };
}; };
} }

View file

@ -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" ];
}; };
} }

View file

@ -59,6 +59,6 @@
}; };
}; };
home.persistence."/persist${config.home.homeDirectory}".directories = [ ".thunderbird" ]; home.persistence."${config.xdg.userDirs.extraConfig.XDG_PERSIST_DIR}".directories = [ "browser/.thunderbird" ];
}; };
} }

View file

@ -8,10 +8,10 @@
steam steam
steam-run-free steam-run-free
]; ];
persistence."/persist${config.home.homeDirectory}".directories = [ persistence."${config.xdg.userDirs.extraConfig.XDG_PERSIST_DIR}".directories = [
".config/heroic" "games/.config/heroic"
".local/share/PrismLauncher" "games/.local/share/PrismLauncher"
".local/share/Steam" "games/.local/share/Steam"
]; ];
}; };

View file

@ -6,9 +6,9 @@
qbittorrent qbittorrent
vesktop vesktop
]; ];
persistence."/persist${config.home.homeDirectory}".directories = [ persistence."${config.xdg.userDirs.extraConfig.XDG_PERSIST_DIR}".directories = [
".config/qBittorrent" "data/.config/qBittorrent"
".config/vesktop" "data/.config/vesktop"
]; ];
}; };
} }

View file

@ -8,10 +8,10 @@
blender_4_4 blender_4_4
krita krita
]; ];
persistence."/persist${config.home.homeDirectory}".directories = [ persistence."${config.xdg.userDirs.extraConfig.XDG_PERSIST_DIR}".directories = [
".config/audacity" "data/.config/audacity"
".config/blender" "data/.config/blender"
".local/share/krita" "data/.local/share/krita"
]; ];
}; };
} }

View file

@ -11,11 +11,11 @@
shellAliases.seneca = "ssh jhampton1@matrix.senecapolytechnic.ca"; shellAliases.seneca = "ssh jhampton1@matrix.senecapolytechnic.ca";
persistence."/persist${config.home.homeDirectory}".directories = [ persistence."${config.xdg.userDirs.extraConfig.XDG_PERSIST_DIR}".directories = [
".cache/gpclient" "school/.cache/gpclient"
".config/com.yuezk.qt" "school/.config/com.yuezk.qt"
".config/remmina" "school/.config/remmina"
".config/teams-for-linux" "school/.config/teams-for-linux"
]; ];
}; };
} }

View file

@ -5,5 +5,5 @@
nix-direnv.enable = true; 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" ];
} }

View file

@ -1,5 +1,5 @@
{ config, ... }: { config, ... }:
{ {
programs.lazygit.enable = true; 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" ];
} }

View file

@ -115,6 +115,6 @@
home = { home = {
sessionVariables.MANPAGER = "nvim +Man!"; 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" ];
}; };
} }

View file

@ -2,5 +2,5 @@
{ {
programs.nix-index.enable = true; 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" ];
} }

View file

@ -4,6 +4,6 @@
home = { home = {
shellAliases.cd = "z"; 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" ];
}; };
} }

View file

@ -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" ];
} }

View file

@ -1,7 +1,9 @@
{ ... }: { config, ... }:
{ {
services.gpg-agent = { services.gpg-agent = {
enable = true; enable = true;
enableSshSupport = true; enableSshSupport = true;
}; };
home.persistence."${config.xdg.userDirs.extraConfig.XDG_PERSIST_DIR}".directories = [ "secure/.gnupg" ];
} }

View file

@ -18,6 +18,6 @@
mpd-discord-rpc.enable = true; 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" ];
}; };
} }

View file

@ -1,14 +1,10 @@
{ config, lib, ... }: { config, lib, ... }:
{ {
config = lib.mkIf config.home.desktop.enable { dconf.settings = lib.mkIf config.home.desktop.enable {
dconf.settings = { "org/gnome/desktop/interface/color-scheme".color-scheme = "prefer-dark";
"org/gnome/desktop/interface/color-scheme".color-scheme = "prefer-dark"; "org/virt-manager/virt-manager/connections" = {
"org/virt-manager/virt-manager/connections" = { autoconnect = [ "qemu:///system" ];
autoconnect = [ "qemu:///system" ]; uris = [ "qemu:///system" ];
uris = [ "qemu:///system" ];
};
}; };
home.persistence."/persist${config.home.homeDirectory}".directories = [ ".config/dconf" ];
}; };
} }

View file

@ -2,23 +2,24 @@
{ {
imports = [ impermanence.homeManagerModules.default ]; imports = [ impermanence.homeManagerModules.default ];
home.persistence."/persist${config.home.homeDirectory}" = { home.persistence."${config.xdg.userDirs.extraConfig.XDG_PERSIST_DIR}" = {
enable = !config.targets.genericLinux.enable; 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; 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 []);
}; };
} }

View file

@ -10,6 +10,9 @@
publicShare = null; publicShare = null;
templates = 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}";
};
}; };
} }