design: Wayland window icon comes from the installed desktop entry (Tim t1026u)
@@ -569,3 +569,7 @@ New projects default to target 92 × 128 pixels at 8 fps (depth stays 8-bit `gra
569
569
## Decision 2026-11-07 (Tim t1025u): desktop notification when a render finishes unfocused
570
570
571
571
When a single render or **Render Alles** reaches its end (done, failed or cancelled) while the app window does not have focus, the app shows one desktop notification: title "Paperdoll Renderer", a one-line summary (saved batch / Render Alles counts / error). Nothing is shown when the window is focused, and only one toast per run (one for the whole Render Alles queue, not per item). Linux/BSD use freedesktop notifications via `notify-rust` (D-Bus, pure Rust `zbus` backend), with application name "Paperdoll Renderer", icon name and `desktop-entry` hint equal to the app id `paperdoll-renderer`, so the desktop shows the installed icon. Windows uses a toast via the same crate (WinRT backend). A failure to deliver (no notification daemon) is ignored and never affects the render. The decision whether and what to notify is a pure function, unit-tested; delivery runs on a short-lived thread so the UI never blocks.
572
573
## Decision 2026-11-07 (Tim t1026u): window icon under Wayland comes only from the installed desktop entry
574
575
Investigated the Wayland "W" titlebar icon on KDE. The window sends `xdg_toplevel.set_app_id("paperdoll-renderer")` (checked with `WAYLAND_DEBUG` under headless Weston 14), and the v0.1.2 `.deb` (and so the AUR package) installs `paperdoll-renderer.desktop` (`Icon=` and `StartupWMClass=paperdoll-renderer`) plus all hicolor sizes. Wayland has no core way for a client to send its own window icon. The `with_icon` bitmap is used on X11 and Windows only; winit 0.30 does not implement `xdg-toplevel-icon-v1`. KWin therefore takes the icon from the desktop entry named after the app id, and shows the generic Wayland logo when none is installed. A binary that was built or unpacked without a package (`target/release`, AppImage, zip) gets the icon after `--install-desktop`. No code change; the README states this explicitly. If winit gains `xdg-toplevel-icon-v1`, revisit sending the bitmap directly.
@@ -569,3 +569,7 @@ New projects default to target 92 × 128 pixels at 8 fps (depth stays 8-bit `gra569
## Decision 2026-11-07 (Tim t1025u): desktop notification when a render finishes unfocused569
## Decision 2026-11-07 (Tim t1025u): desktop notification when a render finishes unfocused570
570
571
When a single render or **Render Alles** reaches its end (done, failed or cancelled) while the app window does not have focus, the app shows one desktop notification: title "Paperdoll Renderer", a one-line summary (saved batch / Render Alles counts / error). Nothing is shown when the window is focused, and only one toast per run (one for the whole Render Alles queue, not per item). Linux/BSD use freedesktop notifications via `notify-rust` (D-Bus, pure Rust `zbus` backend), with application name "Paperdoll Renderer", icon name and `desktop-entry` hint equal to the app id `paperdoll-renderer`, so the desktop shows the installed icon. Windows uses a toast via the same crate (WinRT backend). A failure to deliver (no notification daemon) is ignored and never affects the render. The decision whether and what to notify is a pure function, unit-tested; delivery runs on a short-lived thread so the UI never blocks.571
When a single render or **Render Alles** reaches its end (done, failed or cancelled) while the app window does not have focus, the app shows one desktop notification: title "Paperdoll Renderer", a one-line summary (saved batch / Render Alles counts / error). Nothing is shown when the window is focused, and only one toast per run (one for the whole Render Alles queue, not per item). Linux/BSD use freedesktop notifications via `notify-rust` (D-Bus, pure Rust `zbus` backend), with application name "Paperdoll Renderer", icon name and `desktop-entry` hint equal to the app id `paperdoll-renderer`, so the desktop shows the installed icon. Windows uses a toast via the same crate (WinRT backend). A failure to deliver (no notification daemon) is ignored and never affects the render. The decision whether and what to notify is a pure function, unit-tested; delivery runs on a short-lived thread so the UI never blocks.572
573
## Decision 2026-11-07 (Tim t1026u): window icon under Wayland comes only from the installed desktop entry574
575
Investigated the Wayland "W" titlebar icon on KDE. The window sends `xdg_toplevel.set_app_id("paperdoll-renderer")` (checked with `WAYLAND_DEBUG` under headless Weston 14), and the v0.1.2 `.deb` (and so the AUR package) installs `paperdoll-renderer.desktop` (`Icon=` and `StartupWMClass=paperdoll-renderer`) plus all hicolor sizes. Wayland has no core way for a client to send its own window icon. The `with_icon` bitmap is used on X11 and Windows only; winit 0.30 does not implement `xdg-toplevel-icon-v1`. KWin therefore takes the icon from the desktop entry named after the app id, and shows the generic Wayland logo when none is installed. A binary that was built or unpacked without a package (`target/release`, AppImage, zip) gets the icon after `--install-desktop`. No code change; the README states this explicitly. If winit gains `xdg-toplevel-icon-v1`, revisit sending the bitmap directly.