main
 1{
 2  den.aspects.core.xdg-dir = {
 3    cacheHome = {config, ...}: {
 4      directories = [
 5        config.xdg.cacheHome
 6      ];
 7    };
 8
 9    nixos = {
10      environment.sessionVariables = {
11        XDG_CACHE_HOME = "\${HOME}/.cache";
12        XDG_CONFIG_HOME = "\${HOME}/.config";
13        XDG_DATA_HOME = "\${HOME}/.local/share";
14        XDG_STATE_HOME = "\${HOME}/.local/state";
15        XDG_BIN_HOME = "\${HOME}/.local/bin";
16      };
17    };
18
19    homeManager = {config, ...}: {
20      home.preferXdgDirectories = true;
21
22      xdg = {
23        enable = true;
24        # Use absolue path for persistence
25        binHome = "${config.home.homeDirectory}/.local/bin";
26        cacheHome = "${config.home.homeDirectory}/.cache";
27        configHome = "${config.home.homeDirectory}/.config";
28        dataHome = "${config.home.homeDirectory}/.local/share";
29        stateHome = "${config.home.homeDirectory}/.local/state";
30      };
31    };
32  };
33}