summary refs log tree commit diff
path: root/nixos/modules/services
diff options
context:
space:
mode:
authorAlyssa Ross <hi@alyssa.is>2019-05-02 16:19:59 +0000
committerAlyssa Ross <hi@alyssa.is>2019-05-02 16:19:59 +0000
commit7658c90f216f923ebad675f90836370e31de1097 (patch)
tree1f6d43900d24d206b729f651d7d7f54d7dd46f7b /nixos/modules/services
parent753e1e0babd1d22677f08ae59c9322cd63de24d5 (diff)
downloadnixpkgs-7658c90f216f923ebad675f90836370e31de1097.tar
nixpkgs-7658c90f216f923ebad675f90836370e31de1097.tar.gz
nixpkgs-7658c90f216f923ebad675f90836370e31de1097.tar.bz2
nixpkgs-7658c90f216f923ebad675f90836370e31de1097.tar.lz
nixpkgs-7658c90f216f923ebad675f90836370e31de1097.tar.xz
nixpkgs-7658c90f216f923ebad675f90836370e31de1097.tar.zst
nixpkgs-7658c90f216f923ebad675f90836370e31de1097.zip
nixos/xserver: improve DM error message when X off
Previously, if you, for example, set
services.xserver.displayManager.sddm.enable, but forgot to set
services.xserver.enable, you would get an error message that looked like
this:

    error: attribute 'display-manager' missing

Which was not particularly helpful.

Using assertions, we can make this message much better.
Diffstat (limited to 'nixos/modules/services')
-rw-r--r--nixos/modules/services/x11/display-managers/lightdm.nix5
-rw-r--r--nixos/modules/services/x11/display-managers/sddm.nix9
2 files changed, 12 insertions, 2 deletions
diff --git a/nixos/modules/services/x11/display-managers/lightdm.nix b/nixos/modules/services/x11/display-managers/lightdm.nix
index 3ab4f26399f..afa0cebbc52 100644
--- a/nixos/modules/services/x11/display-managers/lightdm.nix
+++ b/nixos/modules/services/x11/display-managers/lightdm.nix
@@ -189,6 +189,11 @@ in
   config = mkIf cfg.enable {
 
     assertions = [
+      { assertion = xcfg.enable;
+        message = ''
+          LightDM requires services.xserver.enable to be true
+        '';
+      }
       { assertion = cfg.autoLogin.enable -> cfg.autoLogin.user != null;
         message = ''
           LightDM auto-login requires services.xserver.displayManager.lightdm.autoLogin.user to be set
diff --git a/nixos/modules/services/x11/display-managers/sddm.nix b/nixos/modules/services/x11/display-managers/sddm.nix
index 05830e325d5..d1ed345ac57 100644
--- a/nixos/modules/services/x11/display-managers/sddm.nix
+++ b/nixos/modules/services/x11/display-managers/sddm.nix
@@ -195,6 +195,11 @@ in
   config = mkIf cfg.enable {
 
     assertions = [
+      { assertion = xcfg.enable;
+        message = ''
+          SDDM requires services.xserver.enable to be true
+        '';
+      }
       { assertion = cfg.autoLogin.enable -> cfg.autoLogin.user != null;
         message = ''
           SDDM auto-login requires services.xserver.displayManager.sddm.autoLogin.user to be set
@@ -264,8 +269,8 @@ in
     };
 
     environment.etc."sddm.conf".source = cfgFile;
-    environment.pathsToLink = [ 
-      "/share/sddm" 
+    environment.pathsToLink = [
+      "/share/sddm"
     ];
 
     users.groups.sddm.gid = config.ids.gids.sddm;