From e9a76282184ffb12a90d8ce2b94738573e4210ad Mon Sep 17 00:00:00 2001 From: Reilly Brogan Date: Sat, 23 May 2026 20:56:24 -0500 Subject: [PATCH] linux: Fix Wayland window associations (#1718) * linux: Fix Wayland window associations `src/m_Do/m_Do_main.cpp` uses `SDL_SetAppMetadata("Dusklight", DUSK_VERSION_STRING, "dev.twilitrealm.dusk")` which results in the Wayland appId getting set to `dev.twilitrealm.dusk`. Wayland compositors associate Wayland windows to desktop files by comparing the window appId against installed desktop files by the name of the desktop files. For a given window with appId `dev.twilitrealm.dusk` it would look for `dev.twilitrealm.dusk.desktop`, and because the desktop file is not named that the compositor is unable to correctly associate the window which results in the default Wayland icon being shown for the window. It also results in windows not being associated with the given launcher if the desktop file is pinned to a task management widget of some kind. Fix this by renaming the desktop file to `dev.twilitrealm.dusk.desktop`. Also while we're at it we can rename the icons as well to match the desktop file name, which isn't required but is a bit cleaner and will fit various packaging standards better. Signed-off-by: Reilly Brogan * Use dev.twilitrealm.dusk instead --------- Signed-off-by: Reilly Brogan --- ci/build-appimage.sh | 2 +- flake.nix | 8 ++++---- .../{dusklight.png => dev.twilitrealm.dusk.png} | Bin .../{dusklight.png => dev.twilitrealm.dusk.png} | Bin .../{dusklight.png => dev.twilitrealm.dusk.png} | Bin .../{dusklight.png => dev.twilitrealm.dusk.png} | Bin .../{dusklight.png => dev.twilitrealm.dusk.png} | Bin .../{dusklight.png => dev.twilitrealm.dusk.png} | Bin .../{dusklight.png => dev.twilitrealm.dusk.png} | Bin .../{dusklight.png => dev.twilitrealm.dusk.png} | Bin ...sklight.desktop => dev.twilitrealm.dusk.desktop} | 2 +- 11 files changed, 6 insertions(+), 6 deletions(-) rename platforms/freedesktop/1024x1024/apps/{dusklight.png => dev.twilitrealm.dusk.png} (100%) rename platforms/freedesktop/128x128/apps/{dusklight.png => dev.twilitrealm.dusk.png} (100%) rename platforms/freedesktop/16x16/apps/{dusklight.png => dev.twilitrealm.dusk.png} (100%) rename platforms/freedesktop/256x256/apps/{dusklight.png => dev.twilitrealm.dusk.png} (100%) rename platforms/freedesktop/32x32/apps/{dusklight.png => dev.twilitrealm.dusk.png} (100%) rename platforms/freedesktop/48x48/apps/{dusklight.png => dev.twilitrealm.dusk.png} (100%) rename platforms/freedesktop/512x512/apps/{dusklight.png => dev.twilitrealm.dusk.png} (100%) rename platforms/freedesktop/64x64/apps/{dusklight.png => dev.twilitrealm.dusk.png} (100%) rename platforms/freedesktop/{dusklight.desktop => dev.twilitrealm.dusk.desktop} (86%) diff --git a/ci/build-appimage.sh b/ci/build-appimage.sh index b401dab253..e12f1163b9 100755 --- a/ci/build-appimage.sh +++ b/ci/build-appimage.sh @@ -20,7 +20,7 @@ for install_path in build/install/*; do cp -r "$install_path" build/appdir/usr/bin done cp -r platforms/freedesktop/{16x16,32x32,48x48,64x64,128x128,256x256,512x512,1024x1024} build/appdir/usr/share/icons/hicolor -cp platforms/freedesktop/dusklight.desktop build/appdir/usr/share/applications +cp platforms/freedesktop/dev.twilitrealm.dusk.desktop build/appdir/usr/share/applications cd build/install VERSION="$DUSK_VERSION" NO_STRIP=1 "$linuxdeploy" \ diff --git a/flake.nix b/flake.nix index 90c0d21533..0a2156a4d5 100644 --- a/flake.nix +++ b/flake.nix @@ -248,11 +248,11 @@ runHook preInstall install -Dm755 dusklight "$out/bin/dusklight" cp -r "$src/res" "$out/bin/res" - install -Dm644 "$src/platforms/freedesktop/dusklight.desktop" \ - "$out/share/applications/dusklight.desktop" + install -Dm644 "$src/platforms/freedesktop/dev.twilitrealm.dusk.desktop" \ + "$out/share/applications/dev.twilitrealm.dusk.desktop" for size in 16 32 48 64 128 256 512 1024; do - install -Dm644 "$src/platforms/freedesktop/''${size}x''${size}/apps/dusklight.png" \ - "$out/share/icons/hicolor/''${size}x''${size}/apps/dusklight.png" + install -Dm644 "$src/platforms/freedesktop/''${size}x''${size}/apps/dev.twilitrealm.dusk.png" \ + "$out/share/icons/hicolor/''${size}x''${size}/apps/dev.twilitrealm.dusk.png" done runHook postInstall ''; diff --git a/platforms/freedesktop/1024x1024/apps/dusklight.png b/platforms/freedesktop/1024x1024/apps/dev.twilitrealm.dusk.png similarity index 100% rename from platforms/freedesktop/1024x1024/apps/dusklight.png rename to platforms/freedesktop/1024x1024/apps/dev.twilitrealm.dusk.png diff --git a/platforms/freedesktop/128x128/apps/dusklight.png b/platforms/freedesktop/128x128/apps/dev.twilitrealm.dusk.png similarity index 100% rename from platforms/freedesktop/128x128/apps/dusklight.png rename to platforms/freedesktop/128x128/apps/dev.twilitrealm.dusk.png diff --git a/platforms/freedesktop/16x16/apps/dusklight.png b/platforms/freedesktop/16x16/apps/dev.twilitrealm.dusk.png similarity index 100% rename from platforms/freedesktop/16x16/apps/dusklight.png rename to platforms/freedesktop/16x16/apps/dev.twilitrealm.dusk.png diff --git a/platforms/freedesktop/256x256/apps/dusklight.png b/platforms/freedesktop/256x256/apps/dev.twilitrealm.dusk.png similarity index 100% rename from platforms/freedesktop/256x256/apps/dusklight.png rename to platforms/freedesktop/256x256/apps/dev.twilitrealm.dusk.png diff --git a/platforms/freedesktop/32x32/apps/dusklight.png b/platforms/freedesktop/32x32/apps/dev.twilitrealm.dusk.png similarity index 100% rename from platforms/freedesktop/32x32/apps/dusklight.png rename to platforms/freedesktop/32x32/apps/dev.twilitrealm.dusk.png diff --git a/platforms/freedesktop/48x48/apps/dusklight.png b/platforms/freedesktop/48x48/apps/dev.twilitrealm.dusk.png similarity index 100% rename from platforms/freedesktop/48x48/apps/dusklight.png rename to platforms/freedesktop/48x48/apps/dev.twilitrealm.dusk.png diff --git a/platforms/freedesktop/512x512/apps/dusklight.png b/platforms/freedesktop/512x512/apps/dev.twilitrealm.dusk.png similarity index 100% rename from platforms/freedesktop/512x512/apps/dusklight.png rename to platforms/freedesktop/512x512/apps/dev.twilitrealm.dusk.png diff --git a/platforms/freedesktop/64x64/apps/dusklight.png b/platforms/freedesktop/64x64/apps/dev.twilitrealm.dusk.png similarity index 100% rename from platforms/freedesktop/64x64/apps/dusklight.png rename to platforms/freedesktop/64x64/apps/dev.twilitrealm.dusk.png diff --git a/platforms/freedesktop/dusklight.desktop b/platforms/freedesktop/dev.twilitrealm.dusk.desktop similarity index 86% rename from platforms/freedesktop/dusklight.desktop rename to platforms/freedesktop/dev.twilitrealm.dusk.desktop index 4f6ba034a9..b1ad2831a2 100644 --- a/platforms/freedesktop/dusklight.desktop +++ b/platforms/freedesktop/dev.twilitrealm.dusk.desktop @@ -3,7 +3,7 @@ Name=Dusklight GenericName=Dusklight Comment=PC port of a classic adventure game Exec=dusklight -Icon=dusklight +Icon=dev.twilitrealm.dusk Terminal=false Type=Application Categories=Game;