main
 1{den, ...}: {
 2  den.aspects.desktop.includes = [den.aspects.desktop.xdg-user-dirs];
 3  den.aspects.desktop.xdg-user-dirs = {
 4    nixos = {
 5      environment.variables = {
 6        XCOMPOSECACHE = "$XDG_CACHE_HOME/X11/xcompose";
 7      };
 8    };
 9
10    provides.to-users = {
11      includes = [
12        {
13          persistHome = {config, ...}: {
14            directories = with config.xdg.user-dirs.directories; [
15              desktop
16              documents
17              music
18              pictures
19              projects
20              publicShare
21              templates
22              videos
23            ];
24          };
25          cacheHome = {config, ...}: {
26            directories = [
27              config.xdg.user-dirs.directories.download
28            ];
29          };
30        }
31      ];
32
33      hjem = {
34        lib,
35        config,
36        ...
37      }: {
38        imports = [./_hjem-module.nix];
39
40        xdg.user-dirs = {
41          enable = true;
42          setSessionVariables = true;
43          directories = {
44            desktop = "${config.directory}/Desktop";
45            documents = "${config.directory}/Documents";
46            download = "${config.directory}/Downloads";
47            music = "${config.directory}/Musics";
48            pictures = "${config.directory}/Pictures";
49            projects = "${config.directory}/Development";
50            videos = "${config.directory}/Videos";
51            publicShare = "${config.directory}/Share";
52            templates = "${config.directory}/Templates";
53
54            screenshots = "${config.xdg.user-dirs.directories.pictures}/Screenshots";
55          };
56        };
57
58        xdg.config.files."gtk-3.0/bookmarks".text =
59          lib.concatMapStringsSep "\n"
60          (d: "file:///${d} ${lib.lists.last (lib.path.subpath.components (lib.path.splitRoot (/. + d)).subpath)}")
61          (lib.attrValues config.xdg.user-dirs.directories);
62      };
63    };
64  };
65}