feat(client/linux): the app icon reaches About — and the launcher, which never had it either
Adding the icon to the About dialog turned out to be one line and a missing install: the icon existed, but only the flatpak ever shipped it. The deb, rpm, arch and nix entries all carried `Icon=video-display` — a stock monitor glyph — so on every non-flatpak install the launcher, the taskbar and the window switcher have been showing a generic icon this whole time. About would have shown the same nothing. So the icon moves out of `packaging/flatpak/` into `packaging/linux/icons/hicolor/` beside the tray icons, which is where a shared asset belongs, and all five packagings install it to the same hicolor path. The desktop entry names the app's own icon, and `AboutDialog` names the app id — one identity resolved through the icon theme rather than a path anyone has to keep in step. A `PUNKTFUNK_SHOT_SCENE=about` scene comes along so the dialog is capturable like every other surface; that is how the icon above was verified to actually resolve rather than silently falling back. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -253,6 +253,9 @@ package_punktfunk-client() {
|
||||
install -Dm0755 "$T/punktfunk-session" "$pkgdir/usr/bin/punktfunk-session"
|
||||
# The headless CLI (design/client-architecture-split.md §4).
|
||||
install -Dm0755 "$T/punktfunk" "$pkgdir/usr/bin/punktfunk"
|
||||
# The app icon the desktop entry (and the About dialog) name.
|
||||
install -Dm0644 "$R/packaging/linux/icons/hicolor/scalable/apps/io.unom.Punktfunk.svg" \
|
||||
"$pkgdir/usr/share/icons/hicolor/scalable/apps/io.unom.Punktfunk.svg"
|
||||
install -Dm0644 "$R/packaging/linux/io.unom.Punktfunk.desktop" \
|
||||
"$pkgdir/usr/share/applications/io.unom.Punktfunk.desktop"
|
||||
# DualSense hidraw access (full pad fidelity through SDL's HIDAPI driver).
|
||||
|
||||
@@ -55,6 +55,10 @@ install -Dm0755 "$SESSION_BIN" "$STAGE/usr/bin/punktfu
|
||||
install -Dm0755 "$CLI_BIN" "$STAGE/usr/bin/punktfunk"
|
||||
install -Dm0644 packaging/linux/io.unom.Punktfunk.desktop \
|
||||
"$STAGE/usr/share/applications/io.unom.Punktfunk.desktop"
|
||||
# The app icon the desktop entry (and the About dialog) name. Without it the launcher falls
|
||||
# back to a generic monitor glyph, which is what shipped until now.
|
||||
install -Dm0644 packaging/linux/icons/hicolor/scalable/apps/io.unom.Punktfunk.svg \
|
||||
"$STAGE/usr/share/icons/hicolor/scalable/apps/io.unom.Punktfunk.svg"
|
||||
# DualSense hidraw access (full pad fidelity through SDL's HIDAPI driver).
|
||||
install -Dm0644 scripts/70-punktfunk-client.rules \
|
||||
"$STAGE/usr/lib/udev/rules.d/70-punktfunk-client.rules"
|
||||
|
||||
@@ -235,7 +235,9 @@ modules:
|
||||
- install -Dm0644 packaging/flatpak/io.unom.Punktfunk.metainfo.xml
|
||||
${FLATPAK_DEST}/share/metainfo/io.unom.Punktfunk.metainfo.xml
|
||||
# Scalable icon named for the app id (GNOME runtime renders SVG via librsvg).
|
||||
- install -Dm0644 packaging/flatpak/io.unom.Punktfunk.svg
|
||||
# One icon source for every Linux packaging (it used to live under packaging/flatpak,
|
||||
# which is why the deb/rpm/arch entries shipped a stock `video-display` instead).
|
||||
- install -Dm0644 packaging/linux/icons/hicolor/scalable/apps/io.unom.Punktfunk.svg
|
||||
${FLATPAK_DEST}/share/icons/hicolor/scalable/apps/io.unom.Punktfunk.svg
|
||||
sources:
|
||||
# The repo checkout. For a Flathub/published build, replace with a pinned git source:
|
||||
|
||||
|
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 1.2 KiB |
@@ -3,7 +3,7 @@ Type=Application
|
||||
Name=Punktfunk
|
||||
Comment=Stream a remote punktfunk host
|
||||
Exec=punktfunk-client %u
|
||||
Icon=video-display
|
||||
Icon=io.unom.Punktfunk
|
||||
Terminal=false
|
||||
Categories=Network;Game;
|
||||
Keywords=streaming;remote;game;moonlight;
|
||||
|
||||
@@ -258,6 +258,10 @@ in
|
||||
# hidraw access for the seated user's DualSense (SDL HIDAPI full-fidelity path).
|
||||
install -Dm0644 scripts/70-punktfunk-client.rules "$out/lib/udev/rules.d/70-punktfunk-client.rules"
|
||||
|
||||
# The app icon the desktop entry (and the About dialog) name.
|
||||
install -Dm0644 packaging/linux/icons/hicolor/scalable/apps/io.unom.Punktfunk.svg \
|
||||
"$out/share/icons/hicolor/scalable/apps/io.unom.Punktfunk.svg"
|
||||
|
||||
# Desktop launcher — point Exec at the store binary (wrapped below).
|
||||
install -Dm0644 packaging/linux/io.unom.Punktfunk.desktop \
|
||||
"$out/share/applications/io.unom.Punktfunk.desktop"
|
||||
|
||||
@@ -331,6 +331,10 @@ install -Dm0755 target/release/punktfunk-session %{buildroot}%{_bindir}/punktfun
|
||||
install -Dm0755 target/release/punktfunk %{buildroot}%{_bindir}/punktfunk
|
||||
install -Dm0644 packaging/linux/io.unom.Punktfunk.desktop \
|
||||
%{buildroot}%{_datadir}/applications/io.unom.Punktfunk.desktop
|
||||
# The app icon the desktop entry (and the About dialog) name. Without it the launcher falls
|
||||
# back to a generic monitor glyph, which is what shipped until now.
|
||||
install -Dm0644 packaging/linux/icons/hicolor/scalable/apps/io.unom.Punktfunk.svg \
|
||||
%{buildroot}%{_datadir}/icons/hicolor/scalable/apps/io.unom.Punktfunk.svg
|
||||
# DualSense hidraw access (full pad fidelity through SDL's HIDAPI driver).
|
||||
install -Dm0644 scripts/70-punktfunk-client.rules \
|
||||
%{buildroot}%{_udevrulesdir}/70-punktfunk-client.rules
|
||||
@@ -447,6 +451,7 @@ install -Dm0644 scripts/punktfunk-scripting.service %{buildroot}%{_userunitdir}/
|
||||
%{_bindir}/punktfunk-client
|
||||
%{_bindir}/punktfunk-session
|
||||
%{_datadir}/applications/io.unom.Punktfunk.desktop
|
||||
%{_datadir}/icons/hicolor/scalable/apps/io.unom.Punktfunk.svg
|
||||
%{_udevrulesdir}/70-punktfunk-client.rules
|
||||
%{_prefix}/lib/sysctl.d/99-punktfunk-client-net.conf
|
||||
|
||||
|
||||
Reference in New Issue
Block a user