diff --git a/hosts/common/user/configs/console/docker/default.nix b/hosts/common/user/configs/console/docker/default.nix index 429fa1e..52abf3f 100644 --- a/hosts/common/user/configs/console/docker/default.nix +++ b/hosts/common/user/configs/console/docker/default.nix @@ -7,6 +7,9 @@ pkgs, ... }: +let + hmConfig = config.home-manager.users.${username}; +in { virtualisation.docker.rootless = { enable = true; @@ -26,7 +29,9 @@ }; }; - environment.persistence."/persist".users.${username}.directories = [ ".local/share/docker" ]; + environment.persistence."/persist".users.${username}.directories = [ + "${hmConfig.xdg.relativeDataHome}/docker" + ]; home-manager.users.${username}.home.packages = with pkgs; [ docker-compose ]; } diff --git a/hosts/common/user/configs/console/sops/default.nix b/hosts/common/user/configs/console/sops/default.nix index e07ad7c..a0f69a8 100644 --- a/hosts/common/user/configs/console/sops/default.nix +++ b/hosts/common/user/configs/console/sops/default.nix @@ -9,7 +9,8 @@ }: let userConfig = config.users.users.${username}; - sopsKeyPath = ".config/sops-nix/key.txt"; + hmConfig = config.home-manager.users.${username}; + sopsKeyPath = "${hmConfig.xdg.relativeConfigHome}/sops-nix/key.txt"; in { environment.persistence."/persist".users.${username}.files = [ sopsKeyPath ]; diff --git a/hosts/common/user/configs/console/xdg/options.nix b/hosts/common/user/configs/console/xdg/options.nix index 394ce2a..8c8b1fb 100644 --- a/hosts/common/user/configs/console/xdg/options.nix +++ b/hosts/common/user/configs/console/xdg/options.nix @@ -9,24 +9,28 @@ in { relativeCacheHome = mkOption { type = str; + readOnly = true; default = ".cache"; description = "Relative path to directory holding application caches."; }; relativeConfigHome = mkOption { type = str; + readOnly = true; default = ".config"; description = "Relative path to directory holding application configurations."; }; relativeDataHome = mkOption { type = str; + readOnly = true; default = ".local/share"; description = "Relative path to directory holding application data."; }; relativeStateHome = mkOption { type = str; + readOnly = true; default = ".local/state"; description = "Relative path to directory holding application states."; }; @@ -34,42 +38,49 @@ in userDirs = { relativeDesktop = mkOption { type = str; + readOnly = true; default = "Desktop"; description = "Relative path to the Desktop directory."; }; relativeDocuments = mkOption { type = str; + readOnly = true; default = "Documents"; description = "Relative path to the Documents directory."; }; relativeDownload = mkOption { type = str; + readOnly = true; default = "Downloads"; description = "Relative path to the Downloads directory."; }; relativeMusic = mkOption { type = str; + readOnly = true; default = "Music"; description = "Relative path to the Music directory."; }; relativePictures = mkOption { type = str; + readOnly = true; default = "Pictures"; description = "Relative path to the Pictures directory."; }; relativeTemplates = mkOption { type = str; + readOnly = true; default = "Templates"; description = "Relative path to the Templates directory."; }; relativeVideos = mkOption { type = str; + readOnly = true; default = "Videos"; description = "Relative path to the Videos directory."; }; diff --git a/hosts/common/user/configs/gui/chromium/default.nix b/hosts/common/user/configs/gui/chromium/default.nix index e7e476d..aa66066 100644 --- a/hosts/common/user/configs/gui/chromium/default.nix +++ b/hosts/common/user/configs/gui/chromium/default.nix @@ -1,7 +1,10 @@ { username ? throw "username argument is required", }: -{ ... }: +{ config, ... }: +let + hmConfig = config.home-manager.users.${username}; +in { programs.chromium = { enable = true; @@ -19,8 +22,8 @@ }; environment.persistence = { - "/persist".users.${username}.directories = [ ".config/chromium" ]; - "/cache".users.${username}.directories = [ ".cache/chromium" ]; + "/persist".users.${username}.directories = [ "${hmConfig.xdg.relativeConfigHome}/chromium" ]; + "/cache".users.${username}.directories = [ "${hmConfig.xdg.relativeCacheHome}/chromium" ]; }; home-manager.users.${username} = { diff --git a/hosts/common/user/configs/gui/firefox/default.nix b/hosts/common/user/configs/gui/firefox/default.nix index 247d2c7..8213f84 100644 --- a/hosts/common/user/configs/gui/firefox/default.nix +++ b/hosts/common/user/configs/gui/firefox/default.nix @@ -7,10 +7,13 @@ pkgs, ... }: +let + hmConfig = config.home-manager.users.${username}; +in { environment.persistence = { "/persist".users.${username}.directories = [ ".mozilla" ]; - "/cache".users.${username}.directories = [ ".cache/mozilla" ]; + "/cache".users.${username}.directories = [ "${hmConfig.xdg.relativeCacheHome}/mozilla" ]; }; home-manager.users.${username} = { diff --git a/hosts/common/user/configs/gui/vscode/default.nix b/hosts/common/user/configs/gui/vscode/default.nix index f77608e..8f2139f 100644 --- a/hosts/common/user/configs/gui/vscode/default.nix +++ b/hosts/common/user/configs/gui/vscode/default.nix @@ -12,20 +12,20 @@ let in { environment.persistence = { - "/persist".users.${username}.directories = [ ".config/Code" ]; + "/persist".users.${username}.directories = [ "${hmConfig.xdg.relativeConfigHome}/Code" ]; # Bastard: https://github.com/microsoft/vscode/issues/3884 "/cache".users.${username}.directories = [ - ".config/Code/Cache" - ".config/Code/CachedConfigurations" - ".config/Code/CachedData" - ".config/Code/CachedExtensionVSIXs" - ".config/Code/CachedExtensions" - ".config/Code/CachedProfilesData" - ".config/Code/Code Cache" - ".config/Code/DawnCache" - ".config/Code/GPUCache" - ".config/Code/Service Worker/CacheStorage" - ".config/Code/Service Worker/ScriptCache" + "${hmConfig.xdg.relativeConfigHome}/Code/Cache" + "${hmConfig.xdg.relativeConfigHome}/Code/CachedConfigurations" + "${hmConfig.xdg.relativeConfigHome}/Code/CachedData" + "${hmConfig.xdg.relativeConfigHome}/Code/CachedExtensionVSIXs" + "${hmConfig.xdg.relativeConfigHome}/Code/CachedExtensions" + "${hmConfig.xdg.relativeConfigHome}/Code/CachedProfilesData" + "${hmConfig.xdg.relativeConfigHome}/Code/Code Cache" + "${hmConfig.xdg.relativeConfigHome}/Code/DawnCache" + "${hmConfig.xdg.relativeConfigHome}/Code/GPUCache" + "${hmConfig.xdg.relativeConfigHome}/Code/Service Worker/CacheStorage" + "${hmConfig.xdg.relativeConfigHome}/Code/Service Worker/ScriptCache" ]; };