diff options
author | Maximilian Bosch <maximilian@mbosch.me> | 2017-11-05 08:23:57 +0100 |
---|---|---|
committer | Maximilian Bosch <maximilian@mbosch.me> | 2017-11-07 12:18:24 +0100 |
commit | 410f0f0db213e3d99119208e3497002caf1f9ade (patch) | |
tree | 3c5922ad9c5377204283a357ea74ab44ce1a3113 | |
parent | 5b70c1855b9681cbbe3e7625350ce322a63572b3 (diff) | |
download | nixlib-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.nix | 2 | ||||
-rw-r--r-- | nixos/modules/services/x11/window-managers/default.nix | 4 | ||||
-rw-r--r-- | nixos/modules/services/x11/xserver.nix | 4 |
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."; } ]; |