diff options
author | Tim Steinbach <NeQuissimus@users.noreply.github.com> | 2017-11-15 16:41:52 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-11-15 16:41:52 +0000 |
commit | c9b8bbd039ea4faae2868f3ca132455829b4e4ef (patch) | |
tree | c944c6e201f0fa58bc2c5539fd48849ffdebe298 /nixos | |
parent | 72de80fa7932d9c3162f07713e5669890007912e (diff) | |
parent | 410f0f0db213e3d99119208e3497002caf1f9ade (diff) | |
download | nixlib-c9b8bbd039ea4faae2868f3ca132455829b4e4ef.tar nixlib-c9b8bbd039ea4faae2868f3ca132455829b4e4ef.tar.gz nixlib-c9b8bbd039ea4faae2868f3ca132455829b4e4ef.tar.bz2 nixlib-c9b8bbd039ea4faae2868f3ca132455829b4e4ef.tar.lz nixlib-c9b8bbd039ea4faae2868f3ca132455829b4e4ef.tar.xz nixlib-c9b8bbd039ea4faae2868f3ca132455829b4e4ef.tar.zst nixlib-c9b8bbd039ea4faae2868f3ca132455829b4e4ef.zip |
Merge pull request #31268 from Ma27/x11-defaults
services.xserver: fix defaults of X11
Diffstat (limited to 'nixos')
-rw-r--r-- | nixos/doc/manual/release-notes/rl-1803.xml | 8 | ||||
-rw-r--r-- | nixos/modules/services/x11/desktop-managers/default.nix | 6 | ||||
-rw-r--r-- | nixos/modules/services/x11/window-managers/default.nix | 4 | ||||
-rw-r--r-- | nixos/modules/services/x11/xserver.nix | 14 |
4 files changed, 28 insertions, 4 deletions
diff --git a/nixos/doc/manual/release-notes/rl-1803.xml b/nixos/doc/manual/release-notes/rl-1803.xml index bc0edf3c1c06..c1fe692ceecb 100644 --- a/nixos/doc/manual/release-notes/rl-1803.xml +++ b/nixos/doc/manual/release-notes/rl-1803.xml @@ -100,6 +100,14 @@ following incompatible changes:</para> to connect to hidden networks. </para> </listitem> + <listitem> + <para> + The option <option>services.xserver.desktopManager.default</option> is now <literal>none</literal> by default. + An assertion failure is thrown if WM's and DM's default are <literal>none</literal>. + To explicitly run a plain X session without and DM or WM, the newly introduced option <option>services.xserver.plainX</option> + must be set to true. + </para> + </listitem> </itemizedlist> </section> diff --git a/nixos/modules/services/x11/desktop-managers/default.nix b/nixos/modules/services/x11/desktop-managers/default.nix index 13f339e3fbf3..39b27d4ceb61 100644 --- a/nixos/modules/services/x11/desktop-managers/default.nix +++ b/nixos/modules/services/x11/desktop-managers/default.nix @@ -87,11 +87,11 @@ in default = mkOption { type = types.str; - default = ""; - example = "none"; + default = "none"; + 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 d4fe475690ce..7d544e153e9a 100644 --- a/nixos/modules/services/x11/xserver.nix +++ b/nixos/modules/services/x11/xserver.nix @@ -161,6 +161,15 @@ in ''; }; + plainX = mkOption { + type = types.bool; + default = false; + description = '' + Whether the X11 session can be plain (without DM/WM) and + the Xsession script will be used as fallback or not. + ''; + }; + autorun = mkOption { type = types.bool; default = true; @@ -552,6 +561,11 @@ in + "${toString (length primaryHeads)} heads set to primary: " + 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`. " + + "The `default` value looks for enabled WMs/DMs and select the first one."; + } ]; environment.etc = |