summary refs log tree commit diff
path: root/nixos/modules/tasks/kbd.nix
diff options
context:
space:
mode:
authorNikolay Amiantov <ab@fmap.me>2016-07-03 03:29:21 +0300
committerNikolay Amiantov <ab@fmap.me>2016-07-08 20:44:01 +0300
commit803b1eedd65337e18c54d413f4bbbcbcba772e53 (patch)
treef1e1f881fe280149711a2d9f69cdcd53eb9b1561 /nixos/modules/tasks/kbd.nix
parent5622226d5b3043d5a6239b4c4f28e64fdbbaaba2 (diff)
downloadnixlib-803b1eedd65337e18c54d413f4bbbcbcba772e53.tar
nixlib-803b1eedd65337e18c54d413f4bbbcbcba772e53.tar.gz
nixlib-803b1eedd65337e18c54d413f4bbbcbcba772e53.tar.bz2
nixlib-803b1eedd65337e18c54d413f4bbbcbcba772e53.tar.lz
nixlib-803b1eedd65337e18c54d413f4bbbcbcba772e53.tar.xz
nixlib-803b1eedd65337e18c54d413f4bbbcbcba772e53.tar.zst
nixlib-803b1eedd65337e18c54d413f4bbbcbcba772e53.zip
kbd service: add system-wise console resources
Diffstat (limited to 'nixos/modules/tasks/kbd.nix')
-rw-r--r--nixos/modules/tasks/kbd.nix15
1 files changed, 10 insertions, 5 deletions
diff --git a/nixos/modules/tasks/kbd.nix b/nixos/modules/tasks/kbd.nix
index c1087ce4783e..dd89804d43a7 100644
--- a/nixos/modules/tasks/kbd.nix
+++ b/nixos/modules/tasks/kbd.nix
@@ -13,6 +13,12 @@ let
     ${colors}
   '';
 
+  kbdEnv = pkgs.buildEnv {
+    name = "kbd-env";
+    paths = [ pkgs.kbd ] ++ config.i18n.consolePackages;
+    pathsToLink = [ "/share/consolefonts" "/share/consoletrans" "/share/keymaps" "/share/unimaps" ];
+  };
+
   setVconsole = !config.boot.isContainer;
 in
 
@@ -53,10 +59,9 @@ in
 
       # Let systemd-vconsole-setup.service do the work of setting up the
       # virtual consoles.
-      environment.etc = [ {
-        target = "vconsole.conf";
-        source = vconsoleConf;
-      } ];
+      environment.etc."vconsole.conf".source = vconsoleConf;
+      # Provide kbd with additional packages.
+      environment.etc."kbd".source = "${kbdEnv}/share";
 
       # This is identical to the systemd-vconsole-setup.service unit
       # shipped with systemd, except that it uses /dev/tty1 instead of
@@ -66,7 +71,7 @@ in
         { wantedBy = [ "multi-user.target" ];
           before = [ "display-manager.service" ];
           after = [ "systemd-udev-settle.service" ];
-          restartTriggers = [ vconsoleConf ];
+          restartTriggers = [ vconsoleConf kbdEnv ];
         };
     })
   ];