From 7fee797ee7ba3920cf2735cdb35ffb6531e6e9d1 Mon Sep 17 00:00:00 2001 From: Brandon Thomas Date: Tue, 6 Oct 2026 07:51:02 -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 FilmCraft 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/filmcraft/src/main.rs | 2 +- packaging/windows/filmcraft.wxs | 10 +++++----- 3 files changed, 10 insertions(+), 6 deletions(-) diff --git a/.github/workflows/packaging-lint.yml b/.github/workflows/packaging-lint.yml index 74ffd3335..23dd3354f 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/filmcraft.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.filmcraft.metainfo.xml" appstreamcli validate --no-net --explain "$RUNNER_TEMP/ai.storyteller.filmcraft.metainfo.xml" diff --git a/apps/filmcraft/src/main.rs b/apps/filmcraft/src/main.rs index 541a8275f..08cf62ae3 100644 --- a/apps/filmcraft/src/main.rs +++ b/apps/filmcraft/src/main.rs @@ -14,7 +14,7 @@ //! with unsaved changes the app asks to recover them; `--recover` recovers the newest without //! asking, `--no-recover` starts without asking (the changes stay available via File ▸ Recover //! Unsaved Changes…). - +#![cfg_attr(all(target_os = "windows", not(debug_assertions)), windows_subsystem = "windows")] #![cfg_attr(not(test), deny(clippy::unwrap_used, clippy::expect_used, clippy::panic, clippy::unimplemented, clippy::todo, clippy::unreachable))] mod app_nap; diff --git a/packaging/windows/filmcraft.wxs b/packaging/windows/filmcraft.wxs index bcdaa18e4..c74666eee 100644 --- a/packaging/windows/filmcraft.wxs +++ b/packaging/windows/filmcraft.wxs @@ -17,15 +17,15 @@ Scope="perMachine" Compressed="yes" Language="1033"> - + - - + + @@ -45,8 +45,8 @@ + Description="FilmCraft video editor" WorkingDirectory="INSTALLFOLDER" Advertise="yes" + Icon="FilmcraftIcon.ico" IconIndex="0" />