From 662c537ac4e470ddc503f32cef8d80fd4d5ce8c0 Mon Sep 17 00:00:00 2001 From: Johan LEROY Date: Mon, 20 Jul 2026 12:10:23 +0200 Subject: [PATCH] fix(desktop): logo manquant sous Debian/Wayland MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sous Wayland (défaut Debian/GNOME) l'option icon: de BrowserWindow est ignorée : l'icône de fenêtre/dock vient du .desktop apparié via l'app_id. electron-builder pose déjà StartupWMClass=productName, mais l'app_id runtime ne valait pas "Arboretum" (dérivé du name package.json). On force donc app.setName('Arboretum') avant app.whenReady(), et on rend StartupWMClass explicite dans electron-builder.yml. Prend effet après rebuild + réinstall du .deb. --- packages/desktop/electron-builder.yml | 8 ++++++++ packages/desktop/src/main/main.ts | 7 +++++++ 2 files changed, 15 insertions(+) diff --git a/packages/desktop/electron-builder.yml b/packages/desktop/electron-builder.yml index 9ebdc86..7d68fc2 100644 --- a/packages/desktop/electron-builder.yml +++ b/packages/desktop/electron-builder.yml @@ -28,6 +28,14 @@ linux: target: [AppImage, deb] category: Development artifactName: ${productName}-${version}-${arch}.${ext} + # Entrée .desktop (forme plate, mergée telle quelle par electron-builder 25). StartupWMClass DOIT + # correspondre à l'app_id runtime (posé par app.setName('Arboretum') dans src/main/main.ts) pour + # que GNOME/Wayland associe la fenêtre au lanceur et affiche le logo. Redondant avec le défaut + # (productName) mais explicite et robuste à un futur changement de productName. + desktop: + StartupWMClass: Arboretum + # Note : le .deb installe l'icône et rafraîchit le cache (postinst electron-builder). L'AppImage, + # lui, n'installe aucun .desktop sans intégration (appimaged) : sur Debian, préférer le .deb. deb: # git est requis pour les operations de worktree ; claude n'est pas dans les depots (documente). diff --git a/packages/desktop/src/main/main.ts b/packages/desktop/src/main/main.ts index 9ceeb59..a3e699f 100644 --- a/packages/desktop/src/main/main.ts +++ b/packages/desktop/src/main/main.ts @@ -7,6 +7,13 @@ import { createTray } from './tray'; import { initUpdater } from './updater'; import { resolveIconPath } from './paths'; +// WM_CLASS / app_id déterministe, posé AVANT app.whenReady(). Sous Wayland (défaut Debian/GNOME) +// l'option `icon:` de BrowserWindow est ignorée : l'icône de fenêtre/dock vient du fichier .desktop +// apparié à la fenêtre via son app_id. electron-builder écrit déjà StartupWMClass=Arboretum dans le +// .desktop ; encore faut-il que l'app_id runtime vaille aussi « Arboretum » (sinon Electron le +// dérive du name package.json et rien ne correspond → icône générique). D'où ce setName explicite. +app.setName('Arboretum'); + const PARTITION = 'persist:arboretum'; const PORT = 7317;