Linux: fix taskbar pin matching and launcher icon mismatch

Add StartupWMClass=OrbitHub to the desktop file so panels (GNOME
Shell, Cinnamon, KDE) can match the running window to the pinned
launcher instead of creating a duplicate taskbar entry.

Replace the hand-authored, stale launcher SVG with PNG icons
rendered directly from createOrbitHubAppIcon() at each hicolor
theme size, so the pinned/menu icon matches the actual app icon
shown in the running window, Windows .ico, and macOS .icns.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
2026-09-08 13:50:25 -06:00
co-authored by Claude Sonnet 5
parent 7ce7260305
commit 3840ea9f62
9 changed files with 6 additions and 24 deletions
+6 -4
View File
@@ -232,10 +232,12 @@ install(FILES
packaging/linux/org.darksingularity.OrbitHub.desktop
DESTINATION ${CMAKE_INSTALL_DATADIR}/applications
)
install(FILES
packaging/linux/org.darksingularity.OrbitHub.svg
DESTINATION ${CMAKE_INSTALL_DATADIR}/icons/hicolor/scalable/apps
)
foreach(icon_size IN ITEMS 16 24 32 48 64 128 256)
install(FILES
packaging/linux/icons/${icon_size}x${icon_size}/apps/org.darksingularity.OrbitHub.png
DESTINATION ${CMAKE_INSTALL_DATADIR}/icons/hicolor/${icon_size}x${icon_size}/apps
)
endforeach()
install(FILES
packaging/linux/org.darksingularity.OrbitHub.metainfo.xml
DESTINATION ${CMAKE_INSTALL_DATADIR}/metainfo
Binary file not shown.

After

Width:  |  Height:  |  Size: 6.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 645 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 960 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

@@ -1,20 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256">
<defs>
<linearGradient id="bg" x1="0%" y1="0%" x2="100%" y2="100%">
<stop offset="0%" stop-color="#20354f"/>
<stop offset="100%" stop-color="#0b1524"/>
</linearGradient>
<linearGradient id="ring" x1="0%" y1="0%" x2="100%" y2="0%">
<stop offset="0%" stop-color="#69e2ff"/>
<stop offset="100%" stop-color="#7cf0a3"/>
</linearGradient>
</defs>
<rect x="18" y="24" width="220" height="152" rx="16" fill="url(#bg)" stroke="#94a3b8" stroke-opacity="0.4"/>
<rect x="32" y="38" width="192" height="112" rx="8" fill="#101b2e"/>
<rect x="96" y="182" width="64" height="16" rx="8" fill="#3a4a63"/>
<rect x="70" y="200" width="116" height="14" rx="7" fill="#52627c"/>
<ellipse cx="128" cy="98" rx="74" ry="24" fill="none" stroke="url(#ring)" stroke-width="11" transform="rotate(-14 128 98)"/>
<circle cx="128" cy="98" r="18" fill="#8be4ff"/>
</svg>

Before

Width:  |  Height:  |  Size: 958 B