about summary refs log tree commit diff
diff options
context:
space:
mode:
authoredef <edef@edef.eu>2019-11-05 14:12:58 +0000
committerAlyssa Ross <hi@alyssa.is>2019-12-16 22:03:52 +0000
commitef3559f38d5ef64ff1707b5e19b0d4a51536bea2 (patch)
tree3639e67a11d5f654ad8bb28843595f4bc5a8a286
parentf6765e3e3effd6efeb9a593b48052149ee8de927 (diff)
downloadnixlib-ef3559f38d5ef64ff1707b5e19b0d4a51536bea2.tar
nixlib-ef3559f38d5ef64ff1707b5e19b0d4a51536bea2.tar.gz
nixlib-ef3559f38d5ef64ff1707b5e19b0d4a51536bea2.tar.bz2
nixlib-ef3559f38d5ef64ff1707b5e19b0d4a51536bea2.tar.lz
nixlib-ef3559f38d5ef64ff1707b5e19b0d4a51536bea2.tar.xz
nixlib-ef3559f38d5ef64ff1707b5e19b0d4a51536bea2.tar.zst
nixlib-ef3559f38d5ef64ff1707b5e19b0d4a51536bea2.zip
modules/xdg: keep per-user options under the users hierarchy
-rw-r--r--modules/shell/git/default.nix2
-rw-r--r--modules/shell/kakoune/default.nix2
-rw-r--r--modules/shell/lynx/default.nix4
-rw-r--r--modules/shell/tmux/default.nix2
-rw-r--r--modules/shell/zsh/default.nix2
-rw-r--r--modules/workstation/mail/mutt/default.nix2
-rw-r--r--modules/workstation/mail/notmuch/default.nix2
-rw-r--r--modules/workstation/podman/default.nix4
-rw-r--r--modules/workstation/windowing/alacritty/default.nix2
-rw-r--r--modules/workstation/windowing/sway/default.nix2
-rw-r--r--modules/xdg/default.nix27
11 files changed, 25 insertions, 26 deletions
diff --git a/modules/shell/git/default.nix b/modules/shell/git/default.nix
index 8a7c10bfdb47..cbc86957f9ff 100644
--- a/modules/shell/git/default.nix
+++ b/modules/shell/git/default.nix
@@ -34,5 +34,5 @@ in
     git-remote-hg
   ];
 
-  xdg.config.users.qyliss.paths."git/config" = config;
+  users.users.qyliss.xdg.config.paths."git/config" = config;
 }
diff --git a/modules/shell/kakoune/default.nix b/modules/shell/kakoune/default.nix
index c43a28e1cf06..8831d628f2b8 100644
--- a/modules/shell/kakoune/default.nix
+++ b/modules/shell/kakoune/default.nix
@@ -3,5 +3,5 @@
 {
   environment.systemPackages = with pkgs; [ kakoune ];
 
-  xdg.config.users.qyliss.paths."kak/kakrc" = pkgs.copyPathToStore ./kakrc;
+  users.users.qyliss.xdg.config.paths."kak/kakrc" = pkgs.copyPathToStore ./kakrc;
 }
diff --git a/modules/shell/lynx/default.nix b/modules/shell/lynx/default.nix
index 9d7cb0a4930d..0e1262b07a7d 100644
--- a/modules/shell/lynx/default.nix
+++ b/modules/shell/lynx/default.nix
@@ -8,9 +8,9 @@
 
   environment.systemPackages = with pkgs; [ lynx ];
 
-  xdg.config.users.qyliss.paths."lynx/lynx.cfg" =
+  users.users.qyliss.xdg.config.paths."lynx/lynx.cfg" =
     pkgs.copyPathToStore ./lynx.cfg;
 
-  xdg.config.users.qyliss.paths."lynx/lynx.lss" =
+  users.users.qyliss.xdg.config.paths."lynx/lynx.lss" =
     pkgs.copyPathToStore ./lynx.lss;
 }
diff --git a/modules/shell/tmux/default.nix b/modules/shell/tmux/default.nix
index 469e53f89d01..78bc447932eb 100644
--- a/modules/shell/tmux/default.nix
+++ b/modules/shell/tmux/default.nix
@@ -1,7 +1,7 @@
 { pkgs, ... }:
 
 {
-  xdg.config.users.qyliss.paths."tmux.conf" =
+  users.users.qyliss.xdg.config.paths."tmux.conf" =
     with pkgs; writeText "tmux.conf" (callPackage ./config.nix { });
 
   environment.systemPackages = with pkgs; [ tmux ];
diff --git a/modules/shell/zsh/default.nix b/modules/shell/zsh/default.nix
index 30bc77ac1218..f784842b0ef7 100644
--- a/modules/shell/zsh/default.nix
+++ b/modules/shell/zsh/default.nix
@@ -17,7 +17,7 @@
 
   users.users.qyliss.shell = pkgs.zsh;
 
-  xdg.config.users.qyliss.paths."zsh/.zshrc" =
+  users.users.qyliss.xdg.config.paths."zsh/.zshrc" =
     with pkgs; writeText "zshrc" (callPackage ./zshrc.nix {});
 
   environment.systemPackages = with pkgs; [ zsh nix-zsh-completions ];
diff --git a/modules/workstation/mail/mutt/default.nix b/modules/workstation/mail/mutt/default.nix
index bb0d8bbbf6b0..00ca6e86f4fc 100644
--- a/modules/workstation/mail/mutt/default.nix
+++ b/modules/workstation/mail/mutt/default.nix
@@ -3,7 +3,7 @@
 {
   environment.systemPackages = with pkgs; [ neomutt ];
 
-  xdg.config.users.qyliss.paths."mutt/muttrc" = pkgs.copyPathToStore ./muttrc;
+  users.users.qyliss.xdg.config.paths."mutt/muttrc" = pkgs.copyPathToStore ./muttrc;
 
   home.qyliss.dirs."state/mutt/header_cache" = {};
 }
diff --git a/modules/workstation/mail/notmuch/default.nix b/modules/workstation/mail/notmuch/default.nix
index 93aff76f10c7..46aa17374a0e 100644
--- a/modules/workstation/mail/notmuch/default.nix
+++ b/modules/workstation/mail/notmuch/default.nix
@@ -7,6 +7,6 @@
 
   environment.systemPackages = with pkgs; [ notmuch ];
 
-  xdg.config.users.qyliss.paths."notmuch/config" =
+  users.users.qyliss.xdg.config.paths."notmuch/config" =
     pkgs.copyPathToStore ./config;
 }
diff --git a/modules/workstation/podman/default.nix b/modules/workstation/podman/default.nix
index 68fa06e20949..67ef0ceeede3 100644
--- a/modules/workstation/podman/default.nix
+++ b/modules/workstation/podman/default.nix
@@ -25,13 +25,13 @@
     in
       [ podman-bin podman.man runc conmon slirp4netns ];
 
-  xdg.config.users.qyliss.paths."podman/.config/containers/libpod.conf" =
+  users.users.qyliss.xdg.config.paths."podman/.config/containers/libpod.conf" =
     pkgs.writeText "libpod.conf" ''
       runtime_path = ["${pkgs.runc}/bin/runc"]
       conmon_path = ["${pkgs.conmon}/bin/conmon"]
     '';
 
-  xdg.config.users.qyliss.paths."podman/.config/containers/storage.conf" =
+  users.users.qyliss.xdg.config.paths."podman/.config/containers/storage.conf" =
     pkgs.writeText "storage.conf" ''
       [storage]
       driver = "overlay"
diff --git a/modules/workstation/windowing/alacritty/default.nix b/modules/workstation/windowing/alacritty/default.nix
index b3790c4fe6a8..e8d086f54d8c 100644
--- a/modules/workstation/windowing/alacritty/default.nix
+++ b/modules/workstation/windowing/alacritty/default.nix
@@ -6,6 +6,6 @@
   environment.systemPackages = with pkgs;
     lib.optional (!stdenv.isDarwin) alacritty;
 
-  xdg.config.users.qyliss.paths."alacritty/alacritty.yml" =
+  users.users.qyliss.xdg.config.paths."alacritty/alacritty.yml" =
     pkgs.copyPathToStore ./config.yml;
 }
diff --git a/modules/workstation/windowing/sway/default.nix b/modules/workstation/windowing/sway/default.nix
index 772e44319027..665763f94615 100644
--- a/modules/workstation/windowing/sway/default.nix
+++ b/modules/workstation/windowing/sway/default.nix
@@ -49,6 +49,6 @@
     programs.sway.enable = true;
     programs.swayidle.enable = true;
 
-    xdg.config.users.qyliss.paths."sway/config" = configFile;
+    users.users.qyliss.xdg.config.paths."sway/config" = configFile;
   };
 }
diff --git a/modules/xdg/default.nix b/modules/xdg/default.nix
index d3a2d1235144..fc552883fb16 100644
--- a/modules/xdg/default.nix
+++ b/modules/xdg/default.nix
@@ -2,35 +2,34 @@
 
 let
   inherit (lib) mapAttrsToList mkOption;
-  inherit (lib.types) attrsOf path submodule;
+  inherit (lib.types) loaOf attrsOf path submodule;
   inherit (pkgs) linkFarm;
 
+  userOptions = {
+    options.xdg.config.paths = mkOption {
+      default = {};
+      type = attrsOf path;
+    };
+  };
+
 in
   {
     options = {
-      xdg.config.users = mkOption {
-        default = {};
-        type = attrsOf (submodule ({ ... }: {
-          options = {
-            paths = mkOption {
-              default = {};
-              type = attrsOf path;
-            };
-          };
-        }));
+      users.users = mkOption {
+        type = loaOf (submodule userOptions);
       };
     };
 
     config = {
       environment.etc."xdg/nixos/per-user".source =
         linkFarm "xdg-config-users"
-                  (mapAttrsToList (user: { paths, ... }: {
+                  (mapAttrsToList (user: { xdg, ... }: {
                     name = user;
                     path = linkFarm "${user}-xdg-config-home"
                                     (mapAttrsToList
                                       (name: path: { inherit name path; })
-                                      paths);
-                  }) config.xdg.config.users);
+                                      xdg.config.paths);
+                  }) config.users.users);
 
       environment.extraInit = ''
         etc_xdg_config_home=/run/current-system/etc/xdg/nixos/per-user/$USER