···23, upower
24, pam
25, wrapGAppsHook
26-, makeWrapper
27, writeTextFile
28, xkeyboard_config
29, xorg
···158 };
159160 mkSessionForWm = { wmName, wmLabel, wmCommand }:
161- let
162- executable = stdenv.mkDerivation {
163- name = "gnome-flashback-${wmName}";
164-165- nativeBuildInputs = [ makeWrapper ];
166-167- dontUnpack = true;
168- dontConfigure = true;
169- dontBuild = true;
170- dontInstall = true;
171-172- # gnome-flashback and gnome-panel need to be added to XDG_DATA_DIRS so that their .desktop files can be found by gnome-session.
173- # We need to pass the --builtin flag so that gnome-session invokes gnome-session-binary instead of systemd.
174- # If systemd is used, it doesn't use the environment we set up here and so it can't find the .desktop files.
175- preFixup = ''
176- makeWrapper ${gnome-session}/bin/gnome-session $out \
177- --add-flags "--session=gnome-flashback-${wmName} --builtin" \
178- --set-default XDG_CURRENT_DESKTOP 'GNOME-Flashback:GNOME' \
179- --prefix XDG_DATA_DIRS : '${lib.makeSearchPath "share" [ gnome-flashback ]}'
180- '';
181- };
182-183- in
184 writeTextFile
185 {
186 name = "gnome-flashback-${wmName}-xsession";
···189 [Desktop Entry]
190 Name=GNOME Flashback (${wmLabel})
191 Comment=This session logs you into GNOME Flashback with ${wmLabel}
192- Exec=${executable}
193 TryExec=${wmCommand}
194 Type=Application
195 DesktopNames=GNOME-Flashback;GNOME;