diff --git a/modules/core/sovran-hub.nix b/modules/core/sovran-hub.nix index f6600e4..15fc6c0 100644 --- a/modules/core/sovran-hub.nix +++ b/modules/core/sovran-hub.nix @@ -211,11 +211,16 @@ let fi ''; - # ── Brave launcher wrapper: isolated temp profile, cleaned up on exit ─ + # ── Brave launcher wrapper: stable profile dir so Wayland app_id is + # deterministic and GNOME Shell can match the window to the .desktop + # entry (fixes generic gear icon appearing in the dock). hub-brave-wrapper = pkgs.writeShellScript "sovran-hub-brave.sh" '' export PATH="${lib.makeBinPath [ pkgs.brave pkgs.coreutils ]}:$PATH" - HUB_DATA="$(mktemp -d -t sovran-hub-brave.XXXXXXXXXX)" + HUB_DATA="/tmp/sovran-hub-brave-$(id -u)" + mkdir -p "$HUB_DATA" trap '[ -n "$HUB_DATA" ] && rm -rf "$HUB_DATA"' EXIT INT TERM + export BAMF_DESKTOP_FILE_HINT="${sovran-hub-web}/share/applications/sovran-hub.desktop" + export GIO_LAUNCHED_DESKTOP_FILE="${sovran-hub-web}/share/applications/sovran-hub.desktop" brave --app=http://localhost:8937 \ --class=sovran-hub \ --user-data-dir="$HUB_DATA" \