about summary refs log tree commit diff
diff options
context:
space:
mode:
authorMaximilian Bosch <maximilian@mbosch.me>2017-11-05 08:23:57 +0100
committerMaximilian Bosch <maximilian@mbosch.me>2017-11-07 12:18:24 +0100
commit410f0f0db213e3d99119208e3497002caf1f9ade (patch)
tree3c5922ad9c5377204283a357ea74ab44ce1a3113
parent5b70c1855b9681cbbe3e7625350ce322a63572b3 (diff)
downloadnixlib-410f0f0db213e3d99119208e3497002caf1f9ade.tar
nixlib-410f0f0db213e3d99119208e3497002caf1f9ade.tar.gz
nixlib-410f0f0db213e3d99119208e3497002caf1f9ade.tar.bz2
nixlib-410f0f0db213e3d99119208e3497002caf1f9ade.tar.lz
nixlib-410f0f0db213e3d99119208e3497002caf1f9ade.tar.xz
nixlib-410f0f0db213e3d99119208e3497002caf1f9ade.tar.zst
nixlib-410f0f0db213e3d99119208e3497002caf1f9ade.zip
services.xserver: fix `apply` of default DM/WM
This is needed to pick the first enabled DM/WM
if the default is `none`
-rw-r--r--nixos/modules/services/x11/desktop-managers/default.nix2
-rw-r--r--nixos/modules/services/x11/window-managers/default.nix4
-rw-r--r--nixos/modules/services/x11/xserver.nix4
3 files changed, 7 insertions, 3 deletions
diff --git a/nixos/modules/services/x11/desktop-managers/default.nix b/nixos/modules/services/x11/desktop-managers/default.nix
index b393167ae2c6..39b27d4ceb61 100644
--- a/nixos/modules/services/x11/desktop-managers/default.nix
+++ b/nixos/modules/services/x11/desktop-managers/default.nix
@@ -91,7 +91,7 @@ in
         example = "plasma5";
         description = "Default desktop manager loaded if none have been chosen.";
         apply = defaultDM:
-          if defaultDM == "" && cfg.session.list != [] then
+          if defaultDM == "none" && cfg.session.list != [] then
             (head cfg.session.list).name
           else if any (w: w.name == defaultDM) cfg.session.list then
             defaultDM
diff --git a/nixos/modules/services/x11/window-managers/default.nix b/nixos/modules/services/x11/window-managers/default.nix
index d12003768a67..25ba95fccd75 100644
--- a/nixos/modules/services/x11/window-managers/default.nix
+++ b/nixos/modules/services/x11/window-managers/default.nix
@@ -61,7 +61,9 @@ in
         example = "wmii";
         description = "Default window manager loaded if none have been chosen.";
         apply = defaultWM:
-          if any (w: w.name == defaultWM) cfg.session then
+          if defaultWM == "none" && cfg.session != []  then
+            (head cfg.session).name
+          else if any (w: w.name == defaultWM) cfg.session then
             defaultWM
           else
             throw "Default window manager (${defaultWM}) not found.";
diff --git a/nixos/modules/services/x11/xserver.nix b/nixos/modules/services/x11/xserver.nix
index 58dc75bcb4e6..7d544e153e9a 100644
--- a/nixos/modules/services/x11/xserver.nix
+++ b/nixos/modules/services/x11/xserver.nix
@@ -562,7 +562,9 @@ in
                 + concatMapStringsSep ", " (x: x.output) primaryHeads;
       })
       { assertion = cfg.desktopManager.default == "none" && cfg.windowManager.default == "none" -> cfg.plainX;
-        message = "Either the desktop manager or the window manager shouldn't be `none`! To explicitly allow this, you can also set `services.xserver.plainX` to `true`.";
+        message = "Either the desktop manager or the window manager shouldn't be `none`! "
+                + "To explicitly allow this, you can also set `services.xserver.plainX` to `true`. "
+                + "The `default` value looks for enabled WMs/DMs and select the first one.";
       }
     ];