summary refs log tree commit diff
path: root/nixos/modules
diff options
context:
space:
mode:
authorWilliam A. Kennington III <william@wkennington.com>2015-03-09 18:04:40 -0700
committerWilliam A. Kennington III <william@wkennington.com>2015-03-09 18:10:31 -0700
commit4940e643ccdbaa224cd06a588bd5608e03c29dcf (patch)
tree57c8e82b0c6a5ca13bdd0fc85da5d32aaf4da386 /nixos/modules
parent66bfdf6eb00c8def644fcd534e979db470a33b55 (diff)
downloadnixpkgs-4940e643ccdbaa224cd06a588bd5608e03c29dcf.tar
nixpkgs-4940e643ccdbaa224cd06a588bd5608e03c29dcf.tar.gz
nixpkgs-4940e643ccdbaa224cd06a588bd5608e03c29dcf.tar.bz2
nixpkgs-4940e643ccdbaa224cd06a588bd5608e03c29dcf.tar.lz
nixpkgs-4940e643ccdbaa224cd06a588bd5608e03c29dcf.tar.xz
nixpkgs-4940e643ccdbaa224cd06a588bd5608e03c29dcf.tar.zst
nixpkgs-4940e643ccdbaa224cd06a588bd5608e03c29dcf.zip
nixos/display-manager: Support configurable hidden users
Diffstat (limited to 'nixos/modules')
-rw-r--r--nixos/modules/services/misc/nix-daemon.nix6
-rw-r--r--nixos/modules/services/x11/display-managers/default.nix8
-rw-r--r--nixos/modules/services/x11/display-managers/kdm.nix2
-rw-r--r--nixos/modules/services/x11/display-managers/lightdm.nix12
4 files changed, 26 insertions, 2 deletions
diff --git a/nixos/modules/services/misc/nix-daemon.nix b/nixos/modules/services/misc/nix-daemon.nix
index f231998d8f4..2da84c031a7 100644
--- a/nixos/modules/services/misc/nix-daemon.nix
+++ b/nixos/modules/services/misc/nix-daemon.nix
@@ -20,6 +20,8 @@ let
       extraGroups = [ "nixbld" ];
     };
 
+  nixbldUsers = map makeNixBuildUser (range 1 cfg.nrBuildUsers);
+
   nixConf =
     let
       # If we're using a chroot for builds, then provide /bin/sh in
@@ -357,7 +359,9 @@ in
 
     nix.nrBuildUsers = mkDefault (lib.max 10 cfg.maxJobs);
 
-    users.extraUsers = map makeNixBuildUser (range 1 cfg.nrBuildUsers);
+    users.extraUsers = nixbldUsers;
+
+    services.xserver.displayManager.hiddenUsers = map ({ name, ... }: name) nixbldUsers;
 
     system.activationScripts.nix = stringAfter [ "etc" "users" ]
       ''
diff --git a/nixos/modules/services/x11/display-managers/default.nix b/nixos/modules/services/x11/display-managers/default.nix
index ea45dabd125..c5012dbb5e3 100644
--- a/nixos/modules/services/x11/display-managers/default.nix
+++ b/nixos/modules/services/x11/display-managers/default.nix
@@ -208,6 +208,14 @@ in
         description = "Shell commands executed just before the window or desktop manager is started.";
       };
 
+      hiddenUsers = mkOption {
+        type = types.listOf types.str;
+        default = [ "nobody" ];
+        description = ''
+          A list of users which will not be shown in the display manager.
+        '';
+      };
+
       desktopManagerHandlesLidAndPower = mkOption {
         type = types.bool;
         default = true;
diff --git a/nixos/modules/services/x11/display-managers/kdm.nix b/nixos/modules/services/x11/display-managers/kdm.nix
index 42eaacfe84a..d0b69c5452c 100644
--- a/nixos/modules/services/x11/display-managers/kdm.nix
+++ b/nixos/modules/services/x11/display-managers/kdm.nix
@@ -38,7 +38,7 @@ let
       ''} 
 
       [X-*-Greeter]
-      HiddenUsers=root,nixbld1,nixbld2,nixbld3,nixbld4,nixbld5,nixbld6,nixbld7,nixbld8,nixbld9,nixbld10
+      HiddenUsers=root,${concatStringsSep "," dmcfg.hiddenUsers}
       PluginsLogin=${kdebase_workspace}/lib/kde4/kgreet_classic.so
       ${optionalString (cfg.themeDirectory != null)
       ''
diff --git a/nixos/modules/services/x11/display-managers/lightdm.nix b/nixos/modules/services/x11/display-managers/lightdm.nix
index 508fd665885..47d94dbe73b 100644
--- a/nixos/modules/services/x11/display-managers/lightdm.nix
+++ b/nixos/modules/services/x11/display-managers/lightdm.nix
@@ -50,6 +50,16 @@ let
     '';
   };
 
+  hiddenUsers = config.services.xserver.displayManager.hiddenUsers;
+
+  usersConf = writeText "users.conf"
+    ''
+      [UserList]
+      minimum-uid=500
+      hidden-users=${concatStringsSep " " hiddenUsers}
+      hidden-shells=/run/current-system/sw/sbin/nologin
+    '';
+
   lightdmConf = writeText "lightdm.conf"
     ''
       [LightDM]
@@ -84,6 +94,7 @@ in
           package = wrappedGtkGreeter;
         };
       };
+
     };
   };
 
@@ -102,6 +113,7 @@ in
     };
 
     environment.etc."lightdm/lightdm.conf".source = lightdmConf;
+    environment.etc."lightdm/users.conf".source = usersConf;
 
     services.dbus.enable = true;
     services.dbus.packages = [ lightdm ];