services.xserver.windowManager.session: handle duplicate names (#37690)

volth 2413fcdf 37a45e5a

Changed files
+11 -10
nixos
modules
services
x11
display-managers
+11 -10
nixos/modules/services/x11/display-managers/default.nix
···
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"
''
···
# 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