From db9044b1198708c1e99e9008d6cee64b61cf29e5 Mon Sep 17 00:00:00 2001 From: Greg Pfeil Date: Tue, 7 Oct 2025 22:39:05 -0600 Subject: [PATCH] xdg.userDirs: add a `setSessionVariables` option It defaults to `true` to maintain the current behavior. This is conditionalized on 26.05, so in future `setSessionVariables` will default to `false`. --- modules/misc/xdg-user-dirs.nix | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/modules/misc/xdg-user-dirs.nix b/modules/misc/xdg-user-dirs.nix index 200d4e76..2d8a8be3 100644 --- a/modules/misc/xdg-user-dirs.nix +++ b/modules/misc/xdg-user-dirs.nix @@ -110,6 +110,26 @@ in }; createDirectories = lib.mkEnableOption "automatic creation of the XDG user directories"; + + setSessionVariables = mkOption { + type = with types; bool; + default = lib.versionOlder config.home.stateVersion "26.05"; + defaultText = literalExpression '' + lib.versionOlder config.home.stateVersion "26.05" + ''; + description = '' + Whether to set the XDG user dir environment variables, like + `XDG_DESKTOP_DIR`. + + ::: {.note} + The recommended way to get these values is via the `xdg-user-dir` + command or by processing `$XDG_CONFIG_HOME/user-dirs.dirs` directly in + your application. + ::: + + This defaults to `true` for state version < 26.05 and `false` otherwise. + ''; + }; }; config = @@ -139,7 +159,7 @@ in home.packages = lib.mkIf (cfg.package != null) [ cfg.package ]; - home.sessionVariables = directories; + home.sessionVariables = lib.mkIf cfg.setSessionVariables directories; home.activation.createXdgUserDirectories = lib.mkIf cfg.createDirectories ( let