diff options
author | volth <volth@webmaster.ms> | 2018-09-01 19:27:17 +0000 |
---|---|---|
committer | xeji <36407913+xeji@users.noreply.github.com> | 2018-09-01 21:27:17 +0200 |
commit | 2413fcdfebd2179083fbee9e8c50bbde4fb8121e (patch) | |
tree | e18718d19c46697fc24830b033ee0d3a3dc06ebd /nixos/modules/services/x11 | |
parent | 37a45e5a9712727bc8de1b7382d920422306774d (diff) | |
download | nixpkgs-2413fcdfebd2179083fbee9e8c50bbde4fb8121e.tar nixpkgs-2413fcdfebd2179083fbee9e8c50bbde4fb8121e.tar.gz nixpkgs-2413fcdfebd2179083fbee9e8c50bbde4fb8121e.tar.bz2 nixpkgs-2413fcdfebd2179083fbee9e8c50bbde4fb8121e.tar.lz nixpkgs-2413fcdfebd2179083fbee9e8c50bbde4fb8121e.tar.xz nixpkgs-2413fcdfebd2179083fbee9e8c50bbde4fb8121e.tar.zst nixpkgs-2413fcdfebd2179083fbee9e8c50bbde4fb8121e.zip |
services.xserver.windowManager.session: handle duplicate names (#37690)
Diffstat (limited to 'nixos/modules/services/x11')
-rw-r--r-- | nixos/modules/services/x11/display-managers/default.nix | 21 |
1 files changed, 11 insertions, 10 deletions
diff --git a/nixos/modules/services/x11/display-managers/default.nix b/nixos/modules/services/x11/display-managers/default.nix index 66886f23737..f561c5f8b7a 100644 --- a/nixos/modules/services/x11/display-managers/default.nix +++ b/nixos/modules/services/x11/display-managers/default.nix @@ -27,6 +27,15 @@ let Xft.hintstyle: hintslight ''; + mkCases = session: + concatStrings ( + mapAttrsToList (name: starts: '' + (${name}) + ${concatMapStringsSep "\n " (n: n.start) starts} + ;; + '') (lib.groupBy (n: n.name) session) + ); + # file provided by services.xserver.displayManager.session.wrapper xsessionWrapper = pkgs.writeScript "xsession-wrapper" '' @@ -139,21 +148,13 @@ let # Start the window manager. case "$windowManager" in - ${concatMapStrings (s: '' - (${s.name}) - ${s.start} - ;; - '') wm} + ${mkCases wm} (*) echo "$0: Window manager '$windowManager' not found.";; esac # Start the desktop manager. case "$desktopManager" in - ${concatMapStrings (s: '' - (${s.name}) - ${s.start} - ;; - '') dm} + ${mkCases dm} (*) echo "$0: Desktop manager '$desktopManager' not found.";; esac |