summary refs log tree commit diff
path: root/modules/services/x11/xserver.nix
diff options
context:
space:
mode:
authorEelco Dolstra <eelco.dolstra@logicblox.com>2013-01-24 13:06:32 +0100
committerEelco Dolstra <eelco.dolstra@logicblox.com>2013-01-24 13:06:32 +0100
commit8e1f243b309f31f3c6605cc7bad17dbd1ccad568 (patch)
treec5e1e6da17c9f5bac1f335368e737033732b4e7f /modules/services/x11/xserver.nix
parentbd328680ceaee0d546f218d73cea3ec7fefb881c (diff)
downloadnixlib-8e1f243b309f31f3c6605cc7bad17dbd1ccad568.tar
nixlib-8e1f243b309f31f3c6605cc7bad17dbd1ccad568.tar.gz
nixlib-8e1f243b309f31f3c6605cc7bad17dbd1ccad568.tar.bz2
nixlib-8e1f243b309f31f3c6605cc7bad17dbd1ccad568.tar.lz
nixlib-8e1f243b309f31f3c6605cc7bad17dbd1ccad568.tar.xz
nixlib-8e1f243b309f31f3c6605cc7bad17dbd1ccad568.tar.zst
nixlib-8e1f243b309f31f3c6605cc7bad17dbd1ccad568.zip
xserver.nix: Check whether Polkit is enabled
Our X session script requires Polkit because it calls systemd-inhibit.
Diffstat (limited to 'modules/services/x11/xserver.nix')
-rw-r--r--modules/services/x11/xserver.nix23
1 files changed, 15 insertions, 8 deletions
diff --git a/modules/services/x11/xserver.nix b/modules/services/x11/xserver.nix
index f71e6ea97c46..d4dc8b761bfd 100644
--- a/modules/services/x11/xserver.nix
+++ b/modules/services/x11/xserver.nix
@@ -43,6 +43,7 @@ let
       pkgs.xorg.fontadobe75dpi
     ];
 
+
   # Just enumerate all heads without discarding XRandR output information.
   xrandrHeads = let
     mkHead = num: output: {
@@ -74,6 +75,7 @@ let
     monitors = foldl mkMonitor [] xrandrHeads;
   in concatMapStrings (getAttr "value") monitors;
 
+
   configFile = pkgs.stdenv.mkDerivation {
     name = "xserver.conf";
 
@@ -107,6 +109,17 @@ let
       ''; # */
   };
 
+
+  checkAgent = mkAssert (!(cfg.startOpenSSHAgent && cfg.startGnuPGAgent))
+    ''
+      The OpenSSH agent and GnuPG agent cannot be started both.
+      Choose between `startOpenSSHAgent' and `startGnuPGAgent'.
+    '';
+
+  checkPolkit = mkAssert config.security.polkit.enable
+    "X11 requires Polkit to be enabled (‘security.polkit.enable = true’).";
+
+
 in
 
 {
@@ -374,13 +387,7 @@ in
 
   ###### implementation
 
-  config = mkIf cfg.enable
-    (mkAssert (!(cfg.startOpenSSHAgent && cfg.startGnuPGAgent))
-      ''
-        The OpenSSH agent and GnuPG agent cannot be started both.
-        Choose between `startOpenSSHAgent' and `startGnuPGAgent'.
-      ''
-  {
+  config = mkIf cfg.enable (checkAgent (checkPolkit {
 
     boot.extraModulePackages =
       optional (elem "nvidia" driverNames) kernelPackages.nvidia_x11 ++
@@ -601,6 +608,6 @@ in
         ${xrandrMonitorSections}
       '';
 
-  });
+  }));
 
 }