From 114b34319e06e97551b7f77c18794b8f5f09b70e Mon Sep 17 00:00:00 2001 From: Avi Date: Thu, 3 Sep 2026 13:12:58 -0500 Subject: [PATCH] fix(packaging): restore Linux app icon so dist builds ship an icon The packaging break: frontend/build/icon.png was deleted from the working tree, so electron-builder had no Linux icon and every AppImage/deb it emitted carried the generic Electron placeholder instead of the Keynctr mark. Regenerate build/icon.png from KeynectrAppIconPossibility02.jpeg rather than resizing the old file: - cut the white (254) JPEG background to transparent (alpha from luma), - flatten the art to a square canvas with symmetric padding, - keep the ink pure black (RGB 0,0,0), export 512x512 RGBA. The 512x512 master satisfies both declared linux targets with the config kept single (linux.icon: build/icon.png, no build/linux/ fan-out): - AppImage: electron-builder downscales to 256 internally (>=256 required). - deb: installs usr/share/icons/hicolor/512x512/apps/keynectr.png, matching the generated .desktop Icon=keynectr. Verified end to end (npm run dist green): the embedded icon is byte-identical (md5 b3e372f7) in the AppImage hicolor set, the AppImage .DirIcon, and the deb hicolor set, all 512x512 RGBA with real transparency. The source JPEG (KeynectrAppIconPossibility02.jpeg) stays untracked, as does the pre-existing hygiene leftover set. No package.json change needed: the single build/icon.png path is already correct. --- frontend/build/icon.png | Bin 11216 -> 10912 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/frontend/build/icon.png b/frontend/build/icon.png index 18ff052e226917f9a04739da3c31d173f7535109..174f479aa98bc45244c137ffb9c62e5291980824 100644 GIT binary patch literal 10912 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