old
 1{
 2  den.aspects.core.xdg-dir = {
 3    cacheUser = {
 4      user,
 5      config,
 6      ...
 7    }: {
 8      directories = [
 9        config.hjem.users.${user.userName}.xdg.cache.directory
10      ];
11    };
12
13    nixos = {
14      environment.sessionVariables = {
15        XDG_CACHE_HOME = "\${HOME}/.cache";
16        XDG_CONFIG_HOME = "\${HOME}/.config";
17        XDG_DATA_HOME = "\${HOME}/.local/share";
18        XDG_STATE_HOME = "\${HOME}/.local/state";
19        XDG_BIN_HOME = "\${HOME}/.local/bin";
20      };
21    };
22
23    hjem = {config, ...}: {
24      environment.sessionVariables = {
25        XDG_BIN_HOME = "${config.directory}/.local/bin";
26      };
27
28      xdg = {
29        cache.directory = "${config.directory}/.cache";
30        config.directory = "${config.directory}/.config";
31        data.directory = "${config.directory}/.local/share";
32        state.directory = "${config.directory}/.local/state";
33      };
34    };
35
36    homeManager = {config, ...}: {
37      home.preferXdgDirectories = true;
38
39      xdg = {
40        enable = true;
41        # Use absolue path for persistence
42        binHome = "${config.home.homeDirectory}/.local/bin";
43        cacheHome = "${config.home.homeDirectory}/.cache";
44        configHome = "${config.home.homeDirectory}/.config";
45        dataHome = "${config.home.homeDirectory}/.local/share";
46        stateHome = "${config.home.homeDirectory}/.local/state";
47      };
48    };
49  };
50}