From 7bca89dd15fda654e19c9dfcabc23029dbf56300 Mon Sep 17 00:00:00 2001 From: Brandon Thomas Date: Tue, 6 Oct 2026 07:50:24 -0400 Subject: [PATCH] Windows packaging: Start Menu/Add-Remove icon, no console window, correct description The MSI Icon id had no .ico/.exe extension, which Windows Installer needs for advertised shortcuts and ARPPRODUCTICON, so both showed a blank icon. Release builds of the desktop app are now GUI-subsystem (no console window; the CLI stays a console program), the shortcut/summary description names what VectorCraft does, and packaging-lint rejects an Icon id without an extension. Found in printcraft#57. Co-Authored-By: Claude Opus 5.5 --- .github/workflows/packaging-lint.yml | 4 ++++ apps/vectorcraft/src/main.rs | 1 + packaging/windows/vectorcraft.wxs | 6 +++--- 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/.github/workflows/packaging-lint.yml b/.github/workflows/packaging-lint.yml index addead6b..23db4e93 100644 --- a/.github/workflows/packaging-lint.yml +++ b/.github/workflows/packaging-lint.yml @@ -47,6 +47,10 @@ jobs: - name: XML, desktop entry, AppStream, Flatpak manifest run: | xmllint --noout packaging/windows/vectorcraft.wxs packaging/macos/*.plist* packaging/linux/*.xml* + # Windows Installer needs Icon ids ending in .ico or .exe, or shortcuts show a blank icon. + if grep -oE '"$RUNNER_TEMP/ai.storyteller.vectorcraft.metainfo.xml" appstreamcli validate --no-net --explain "$RUNNER_TEMP/ai.storyteller.vectorcraft.metainfo.xml" diff --git a/apps/vectorcraft/src/main.rs b/apps/vectorcraft/src/main.rs index e82e2416..21e53364 100644 --- a/apps/vectorcraft/src/main.rs +++ b/apps/vectorcraft/src/main.rs @@ -5,6 +5,7 @@ //! `--control ` (or `VECTORCRAFT_CONTROL_PORT`) starts a localhost JSON-lines control server: //! `{"id":1,"method":"ui.inspect","params":{}}` → `{"id":1,"ok":true,"result":…}`. //! See `vectorcraft_ui_egui::control` for the methods. +#![cfg_attr(all(target_os = "windows", not(debug_assertions)), windows_subsystem = "windows")] mod clipboard; mod control_server; diff --git a/packaging/windows/vectorcraft.wxs b/packaging/windows/vectorcraft.wxs index e6e5f77f..c09ec79f 100644 --- a/packaging/windows/vectorcraft.wxs +++ b/packaging/windows/vectorcraft.wxs @@ -23,8 +23,8 @@ DowngradeErrorMessage="A newer version of VectorCraft is already installed." /> - - + + @@ -45,7 +45,7 @@ + Icon="VectorcraftIcon.ico" IconIndex="0" />