lol

gnome.gnome-flashback: Add mkWmApplication

Having this in environment.systemPackages shouldn't be worse than
adding as XDG_DATA_DIRS in gnome-session.

+22 -19
+3 -1
nixos/modules/services/x11/desktop-managers/gnome.nix
··· 311 311 (gnome-panel-with-modules.override { 312 312 panelModulePackages = cfg.flashback.panelModulePackages; 313 313 }) 314 - ]; 314 + ] 315 + # For /share/applications/${wmName}.desktop 316 + ++ (map (wm: gnome-flashback.mkWmApplication { inherit (wm) wmName wmLabel wmCommand; }) flashbackWms); 315 317 }) 316 318 317 319 (mkIf serviceCfg.core-os-services.enable {
+19 -18
pkgs/desktops/gnome/misc/gnome-flashback/default.nix
··· 128 128 versionPolicy = "odd-unstable"; 129 129 }; 130 130 131 + mkWmApplication = { wmName, wmLabel, wmCommand }: 132 + writeTextFile { 133 + name = "gnome-flashback-${wmName}-wm"; 134 + destination = "/share/applications/${wmName}.desktop"; 135 + text = '' 136 + [Desktop Entry] 137 + Type=Application 138 + Encoding=UTF-8 139 + Name=${wmLabel} 140 + Exec=${wmCommand} 141 + NoDisplay=true 142 + X-GNOME-WMName=${wmLabel} 143 + X-GNOME-Autostart-Phase=WindowManager 144 + X-GNOME-Provides=windowmanager 145 + X-GNOME-Autostart-Notify=false 146 + ''; 147 + }; 148 + 131 149 mkSessionForWm = { wmName, wmLabel, wmCommand, enableGnomePanel }: 132 150 let 133 - wmApplication = writeTextFile { 134 - name = "gnome-flashback-${wmName}-wm"; 135 - destination = "/share/applications/${wmName}.desktop"; 136 - text = '' 137 - [Desktop Entry] 138 - Type=Application 139 - Encoding=UTF-8 140 - Name=${wmLabel} 141 - Exec=${wmCommand} 142 - NoDisplay=true 143 - X-GNOME-WMName=${wmLabel} 144 - X-GNOME-Autostart-Phase=WindowManager 145 - X-GNOME-Provides=windowmanager 146 - X-GNOME-Autostart-Notify=false 147 - ''; 148 - }; 149 - 150 151 gnomeSession = writeTextFile { 151 152 name = "gnome-flashback-${wmName}-gnome-session"; 152 153 destination = "/share/gnome-session/sessions/gnome-flashback-${wmName}.session"; ··· 174 175 makeWrapper ${gnome-session}/bin/gnome-session $out \ 175 176 --add-flags "--session=gnome-flashback-${wmName} --builtin" \ 176 177 --set-default XDG_CURRENT_DESKTOP 'GNOME-Flashback:GNOME' \ 177 - --prefix XDG_DATA_DIRS : '${lib.makeSearchPath "share" [ wmApplication gnomeSession gnome-flashback ]}' 178 + --prefix XDG_DATA_DIRS : '${lib.makeSearchPath "share" [ gnomeSession gnome-flashback ]}' 178 179 ''; 179 180 }; 180 181