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}