design: app id paperdoll-renderer for Wayland icon mapping (Tim t998u.2)
@@ -473,3 +473,10 @@ Decision (superseded and reverted per Tim t991u, see below): automatic per-body
473
473
- Below **Project laden** / **Nieuw project**, the start screen lists the last 5 opened or created projects, newest first. Clicking one opens it, the same as loading it.
474
474
- The list is stored per user as `recent.json` in the user config directory: `$XDG_CONFIG_HOME/paperdoll-renderer/` (default `~/.config/paperdoll-renderer/`), or `%APPDATA%\paperdoll-renderer\` on Windows. `PAPERDOLL_CONFIG_DIR` overrides the location. It holds absolute `character.ppd` paths, with duplicates removed. It is written atomically and only after a successful open or create.
475
475
- Projects whose `character.ppd` no longer exists stay in the list, greyed out and not clickable, with the note "niet gevonden". They drop off as newer projects are added. An unreadable or damaged list is treated as empty and is never fatal.
476
477
## Decision 2026-11-07 (Tim t998u.2): window icon and app id under Wayland
478
- The window carries the app id `paperdoll-renderer`, set with `ViewportBuilder::with_app_id`. This equals the `.desktop` file name and `StartupWMClass=paperdoll-renderer`. On Wayland, KDE/GNOME use the xdg-shell app_id to find the desktop entry and its icon, because Wayland has no per-window icon protocol. On X11/XWayland the same value becomes WM_CLASS.
479
- The bundled puppet icon is still set with `with_icon`, for X11 and Windows.
480
- eframe is built with both the `x11` and the `wayland` backends, so a Wayland session gets a native Wayland window with that app_id.
481
- The icon only shows after the desktop entry is installed: through a package, or through the in-app file association that writes `paperdoll-renderer.desktop`.
482
- A test checks that the app id constant, the `.desktop` name and `StartupWMClass` all match.
@@ -473,3 +473,10 @@ Decision (superseded and reverted per Tim t991u, see below): automatic per-body473
- Below **Project laden** / **Nieuw project**, the start screen lists the last 5 opened or created projects, newest first. Clicking one opens it, the same as loading it.473
- Below **Project laden** / **Nieuw project**, the start screen lists the last 5 opened or created projects, newest first. Clicking one opens it, the same as loading it.474
- The list is stored per user as `recent.json` in the user config directory: `$XDG_CONFIG_HOME/paperdoll-renderer/` (default `~/.config/paperdoll-renderer/`), or `%APPDATA%\paperdoll-renderer\` on Windows. `PAPERDOLL_CONFIG_DIR` overrides the location. It holds absolute `character.ppd` paths, with duplicates removed. It is written atomically and only after a successful open or create.474
- The list is stored per user as `recent.json` in the user config directory: `$XDG_CONFIG_HOME/paperdoll-renderer/` (default `~/.config/paperdoll-renderer/`), or `%APPDATA%\paperdoll-renderer\` on Windows. `PAPERDOLL_CONFIG_DIR` overrides the location. It holds absolute `character.ppd` paths, with duplicates removed. It is written atomically and only after a successful open or create.475
- Projects whose `character.ppd` no longer exists stay in the list, greyed out and not clickable, with the note "niet gevonden". They drop off as newer projects are added. An unreadable or damaged list is treated as empty and is never fatal.475
- Projects whose `character.ppd` no longer exists stay in the list, greyed out and not clickable, with the note "niet gevonden". They drop off as newer projects are added. An unreadable or damaged list is treated as empty and is never fatal.476
477
## Decision 2026-11-07 (Tim t998u.2): window icon and app id under Wayland478
- The window carries the app id `paperdoll-renderer`, set with `ViewportBuilder::with_app_id`. This equals the `.desktop` file name and `StartupWMClass=paperdoll-renderer`. On Wayland, KDE/GNOME use the xdg-shell app_id to find the desktop entry and its icon, because Wayland has no per-window icon protocol. On X11/XWayland the same value becomes WM_CLASS.479
- The bundled puppet icon is still set with `with_icon`, for X11 and Windows.480
- eframe is built with both the `x11` and the `wayland` backends, so a Wayland session gets a native Wayland window with that app_id.481
- The icon only shows after the desktop entry is installed: through a package, or through the in-app file association that writes `paperdoll-renderer.desktop`.482
- A test checks that the app id constant, the `.desktop` name and `StartupWMClass` all match.