From 21f5cd377acbaa9c94130c4db38695d8a4fa053d Mon Sep 17 00:00:00 2001 From: Bobby Rong Date: Fri, 6 Oct 2023 17:56:38 +0800 Subject: [PATCH] gnome.gnome-flashback: Add mkWmApplication Having this in environment.systemPackages shouldn't be worse than adding as XDG_DATA_DIRS in gnome-session. --- .../services/x11/desktop-managers/gnome.nix | 4 +- .../gnome/misc/gnome-flashback/default.nix | 37 ++++++++++--------- 2 files changed, 22 insertions(+), 19 deletions(-) diff --git a/nixos/modules/services/x11/desktop-managers/gnome.nix b/nixos/modules/services/x11/desktop-managers/gnome.nix index 97df50588500..2f9c75bbfb3e 100644 --- a/nixos/modules/services/x11/desktop-managers/gnome.nix +++ b/nixos/modules/services/x11/desktop-managers/gnome.nix @@ -311,7 +311,9 @@ in (gnome-panel-with-modules.override { panelModulePackages = cfg.flashback.panelModulePackages; }) - ]; + ] + # For /share/applications/${wmName}.desktop + ++ (map (wm: gnome-flashback.mkWmApplication { inherit (wm) wmName wmLabel wmCommand; }) flashbackWms); }) (mkIf serviceCfg.core-os-services.enable { diff --git a/pkgs/desktops/gnome/misc/gnome-flashback/default.nix b/pkgs/desktops/gnome/misc/gnome-flashback/default.nix index fd2abf1b51fc..8e769cc6a3af 100644 --- a/pkgs/desktops/gnome/misc/gnome-flashback/default.nix +++ b/pkgs/desktops/gnome/misc/gnome-flashback/default.nix @@ -128,25 +128,26 @@ let versionPolicy = "odd-unstable"; }; + mkWmApplication = { wmName, wmLabel, wmCommand }: + writeTextFile { + name = "gnome-flashback-${wmName}-wm"; + destination = "/share/applications/${wmName}.desktop"; + text = '' + [Desktop Entry] + Type=Application + Encoding=UTF-8 + Name=${wmLabel} + Exec=${wmCommand} + NoDisplay=true + X-GNOME-WMName=${wmLabel} + X-GNOME-Autostart-Phase=WindowManager + X-GNOME-Provides=windowmanager + X-GNOME-Autostart-Notify=false + ''; + }; + mkSessionForWm = { wmName, wmLabel, wmCommand, enableGnomePanel }: let - wmApplication = writeTextFile { - name = "gnome-flashback-${wmName}-wm"; - destination = "/share/applications/${wmName}.desktop"; - text = '' - [Desktop Entry] - Type=Application - Encoding=UTF-8 - Name=${wmLabel} - Exec=${wmCommand} - NoDisplay=true - X-GNOME-WMName=${wmLabel} - X-GNOME-Autostart-Phase=WindowManager - X-GNOME-Provides=windowmanager - X-GNOME-Autostart-Notify=false - ''; - }; - gnomeSession = writeTextFile { name = "gnome-flashback-${wmName}-gnome-session"; destination = "/share/gnome-session/sessions/gnome-flashback-${wmName}.session"; @@ -174,7 +175,7 @@ let makeWrapper ${gnome-session}/bin/gnome-session $out \ --add-flags "--session=gnome-flashback-${wmName} --builtin" \ --set-default XDG_CURRENT_DESKTOP 'GNOME-Flashback:GNOME' \ - --prefix XDG_DATA_DIRS : '${lib.makeSearchPath "share" [ wmApplication gnomeSession gnome-flashback ]}' + --prefix XDG_DATA_DIRS : '${lib.makeSearchPath "share" [ gnomeSession gnome-flashback ]}' ''; };