photocraft/packaging/linux
Mawfyy 782ea69f35
fix(linux): AppImage registers its desktop entry and icon on launch (#617)
* fix(linux): AppImage registers its desktop entry and icon on launch

On Wayland the compositor resolves the dock icon from the window's app_id
(ai.storyteller.photocraft, already set) against a host-installed .desktop
file. An AppImage installs nothing, so every run showed the generic Wayland
logo (#593). The app cannot set the icon itself: winit 0.30.13 (egui 0.36.2's
pin) has an empty set_window_icon on Wayland; xdg-toplevel-icon-v1 landed on
winit's 0.31 line only.

- packaging/linux/AppRun is a script instead of a symlink: best-effort
  integration into $XDG_DATA_HOME before launch (desktop entry with Exec
  rewritten to the AppImage's path and TryExec dropped, hicolor icons
  copied), content-compared so an unchanged install costs a few cmp calls,
  refreshed when the AppImage moves, PHOTOCRAFT_NO_DESKTOP_INTEGRATION=1
  opts out, and no failure can block the launch (best-effort steps silent).
- packaging/linux/apprun-test.sh: 8-case smoke (passthrough, Exec rewrite
  with spaces, metadata preserved, idempotence, move refresh, opt-out,
  unwritable data dir, extracted AppDir). packaging-lint runs it and now
  shellchecks AppRun.
- Docs: releasing.md Linux section; README install paragraph.

Fixes #593

* AppRun: skip desktop integration when the AppImage path needs Exec escaping

A quote, backquote, dollar, backslash, percent or line break in the path would need
desktop-entry escaping (a line break could even add keys), so integration is skipped
and the app still launches.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Brandon Thomas <echelon@gmail.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-07 16:12:00 -04:00
..
flatpak Open HEIC/HEIF photos (#355) (#372) 2026-10-07 10:20:40 -04:00
AppRun fix(linux): AppImage registers its desktop entry and icon on launch (#617) 2026-10-07 16:12:00 -04:00
ai.storyteller.photocraft.desktop Release pipeline id renames and PhotoCraft branding 2026-10-01 13:25:17 -04:00
ai.storyteller.photocraft.metainfo.xml.in Discord, website and GitHub links; fix AppStream validation on 22.04 2026-10-01 14:04:04 -04:00
ai.storyteller.photocraft.mime.xml Release pipeline id renames and PhotoCraft branding 2026-10-01 13:25:17 -04:00
apprun-test.sh fix(linux): AppImage registers its desktop entry and icon on launch (#617) 2026-10-07 16:12:00 -04:00
flatpak-bundle.sh Flatpak single-file bundles as release artifacts (#163) 2026-10-05 04:15:21 -04:00
nfpm.yaml Packaging: Linux runtime deps + start-up library check (#201); wasm 26.3 -> 18.8 MiB (#198) (#237) (#237) 2026-10-05 10:52:20 -04:00
package.sh fix(linux): AppImage registers its desktop entry and icon on launch (#617) 2026-10-07 16:12:00 -04:00
postinst.sh progress, release workflows 2026-10-01 10:49:51 -04:00