diff options
author | Tor Hedin Brønner <torhedinbronner@gmail.com> | 2018-07-28 15:58:07 +0200 |
---|---|---|
committer | Jan Tojnar <jtojnar@gmail.com> | 2018-08-01 19:14:32 +0200 |
commit | efa27d33cf321dda8917445c207c88a994c4f272 (patch) | |
tree | a6f5d1a2a3ad45ba83b9e507a06d98505e090a4b /nixos/modules/services/x11 | |
parent | 9fad9fb8698fd13f52004b73788ba462906b6c85 (diff) | |
download | nixpkgs-efa27d33cf321dda8917445c207c88a994c4f272.tar nixpkgs-efa27d33cf321dda8917445c207c88a994c4f272.tar.gz nixpkgs-efa27d33cf321dda8917445c207c88a994c4f272.tar.bz2 nixpkgs-efa27d33cf321dda8917445c207c88a994c4f272.tar.lz nixpkgs-efa27d33cf321dda8917445c207c88a994c4f272.tar.xz nixpkgs-efa27d33cf321dda8917445c207c88a994c4f272.tar.zst nixpkgs-efa27d33cf321dda8917445c207c88a994c4f272.zip |
nixos/desktopManager: Only trace if the default session isn't found
The default session might be found in `extraSessionFilePackages`, but it's not viable to detect at evaluation time, so emit a warning. In LightDM instead of checking `defaultSessionName` against `displayManager.session.names` we rely on the assertions in `desktopManager` and `windowMananger` and just check that there's at least one default set. The second assertion could never actually be triggered.
Diffstat (limited to 'nixos/modules/services/x11')
-rw-r--r-- | nixos/modules/services/x11/desktop-managers/default.nix | 12 | ||||
-rw-r--r-- | nixos/modules/services/x11/display-managers/lightdm.nix | 10 |
2 files changed, 7 insertions, 15 deletions
diff --git a/nixos/modules/services/x11/desktop-managers/default.nix b/nixos/modules/services/x11/desktop-managers/default.nix index f435e85f6b8..cce35aa28ba 100644 --- a/nixos/modules/services/x11/desktop-managers/default.nix +++ b/nixos/modules/services/x11/desktop-managers/default.nix @@ -96,13 +96,13 @@ in else if any (w: w.name == defaultDM) cfg.session.list then defaultDM else - throw '' - Default desktop manager (${defaultDM}) not found. - Probably you want to change - services.xserver.desktopManager.default = "${defaultDM}"; - to one of + builtins.trace '' + Default desktop manager (${defaultDM}) not found at evaluation time. + These are the known valid session names: ${concatMapStringsSep "\n " (w: "services.xserver.desktopManager.default = \"${w.name}\";") cfg.session.list} - ''; + It's also possible the default can be found in one of these packages: + ${concatMapStringsSep "\n " (p: p.name) config.services.xserver.displayManager.extraSessionFilePackages} + '' defaultDM; }; }; diff --git a/nixos/modules/services/x11/display-managers/lightdm.nix b/nixos/modules/services/x11/display-managers/lightdm.nix index 9b5f51fb4cf..6be15d8cdf4 100644 --- a/nixos/modules/services/x11/display-managers/lightdm.nix +++ b/nixos/modules/services/x11/display-managers/lightdm.nix @@ -176,21 +176,13 @@ in LightDM auto-login requires services.xserver.displayManager.lightdm.autoLogin.user to be set ''; } - { assertion = cfg.autoLogin.enable -> elem defaultSessionName dmcfg.session.names; + { assertion = cfg.autoLogin.enable -> dmDefault != "none" || wmDefault != "none"; message = '' LightDM auto-login requires that services.xserver.desktopManager.default and services.xserver.windowMananger.default are set to valid values. The current default session: ${defaultSessionName} is not valid. ''; } - { assertion = hasDefaultUserSession -> elem defaultSessionName dmcfg.session.names; - message = '' - services.xserver.desktopManager.default and - services.xserver.windowMananger.default are not set to valid - values. The current default session: ${defaultSessionName} - is not valid. - ''; - } { assertion = !cfg.greeter.enable -> (cfg.autoLogin.enable && cfg.autoLogin.timeout == 0); message = '' LightDM can only run without greeter if automatic login is enabled and the timeout for it |