old
1{
2 self,
3 lib,
4 ...
5}: {
6 den.aspects.desktop.xdg-user-dirs = {
7 persistUser = {
8 user,
9 config,
10 ...
11 }: {
12 directories = with config.hjem.users.${user.userName}.xdg.user-dirs.directories; [
13 desktop
14 documents
15 music
16 pictures
17 projects
18 publicShare
19 templates
20 videos
21 ];
22 };
23 cacheHome = {config, ...}: let
24 in {
25 directories = [
26 config.xdg.userDirs.download
27 ];
28 };
29
30 nixos = {
31 environment.variables = {
32 XCOMPOSECACHE = "$XDG_CACHE_HOME/X11/xcompose";
33 };
34 };
35
36 hjem = {config, ...}: {
37 imports = ["${self.outPath}/hjemModules/xdg/user-dirs.nix"];
38
39 xdg.user-dirs = {
40 enable = true;
41 setSessionVariables = true;
42 directories = {
43 desktop = "${config.directory}/Desktop";
44 documents = "${config.directory}/Documents";
45 download = "${config.directory}/Downloads";
46 music = "${config.directory}/Musics";
47 pictures = "${config.directory}/Pictures";
48 projects = "${config.directory}/Development";
49 videos = "${config.directory}/Videos";
50 publicShare = "${config.directory}/Share";
51 templates = "${config.directory}/Templates";
52 screenshots = "${config.xdg.user-dirs.directories.pictures}/Screenshots";
53 };
54 };
55 };
56
57 homeManager = {
58 config,
59 pkgs,
60 ...
61 }: let
62 commonUserDirs = {
63 desktop = "${config.home.homeDirectory}/Desktop";
64 documents = "${config.home.homeDirectory}/Documents";
65 download = "${config.home.homeDirectory}/Downloads";
66 music = "${config.home.homeDirectory}/Musics";
67 pictures = "${config.home.homeDirectory}/Pictures";
68 projects = "${config.home.homeDirectory}/Development";
69 videos = "${config.home.homeDirectory}/Videos";
70 };
71 bookmarks =
72 pkgs.writeText "bookmarks"
73 (lib.concatMapStringsSep "\n"
74 (d: "file:///${d} ${lib.lists.last (lib.path.subpath.components (lib.path.splitRoot (/. + d)).subpath)}")
75 (lib.attrValues commonUserDirs));
76 in {
77 xdg.userDirs =
78 {
79 enable = false;
80 createDirectories = true;
81 setSessionVariables = false;
82
83 publicShare = "${config.home.homeDirectory}/Share";
84 templates = "${config.home.homeDirectory}/Templates";
85
86 extraConfig = {
87 SCREENSHOTS = "${config.xdg.userDirs.pictures}/Screenshots";
88 };
89 }
90 // commonUserDirs;
91
92 systemd.user.tmpfiles.rules = [
93 "C+ ${config.xdg.configHome}/gtk-3.0/bookmarks 0644 - - - ${bookmarks}"
94 ];
95 };
96 };
97}