From 6360a08e1fa47989038eb9a51d911bbf1bdd7d17 Mon Sep 17 00:00:00 2001 From: lin-1259 <60593825+lin-1259@users.noreply.github.com> Date: Mon, 17 Aug 2026 06:06:38 +0800 Subject: [PATCH] feat: add Linux packaging support (AppImage + deb) Add electron-builder linux targets so DSH Desktop can be built and packaged on Linux: - linux target config: AppImage + deb for x64, Development category, syncDesktopName for proper WM_CLASS window association - package:linux script mirroring the mac/win package scripts, with the same verify-target platform guard - top-level desktopName for window/desktop-entry association on Linux Verified on Arch Linux x64: electron-vite build + electron-builder --linux succeed, the packaged app launches with its bundled Harness server on a random loopback port. Auto-update remains mac/win only by design (update-policy.ts). --- package.json | 32 ++++++++++++++++++++++++++++++-- 1 file changed, 30 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index ed341929..3c52cda9 100644 --- a/package.json +++ b/package.json @@ -37,7 +37,8 @@ "package:mac": "npm run build && electron-builder --mac --publish never", "package:mac:arm64": "node scripts/verify-target.mjs darwin arm64 && npm run build && electron-builder --mac --arm64 --publish never", "package:mac:x64": "node scripts/verify-target.mjs darwin x64 && npm run build && electron-builder --mac --x64 --publish never", - "package:win": "node scripts/verify-target.mjs win32 x64 && npm run build && electron-builder --win --x64 --publish never" + "package:win": "node scripts/verify-target.mjs win32 x64 && npm run build && electron-builder --win --x64 --publish never", + "package:linux": "node scripts/verify-target.mjs linux x64 && npm run build && electron-builder --linux --publish never" }, "dependencies": { "@deepseek-ai/cordis-plugin-group": "1.0.1", @@ -153,6 +154,33 @@ "allowToChangeInstallationDirectory": true, "createDesktopShortcut": true, "createStartMenuShortcut": true + }, + "linux": { + "icon": "build/icon.png", + "category": "Development", + "maintainer": "dsh-desktop", + "target": [ + { + "target": "AppImage", + "arch": [ + "x64" + ] + }, + { + "target": "deb", + "arch": [ + "x64" + ] + } + ], + "syncDesktopName": true + }, + "appImage": { + "artifactName": "dsh-desktop-${os}-${arch}.${ext}" + }, + "deb": { + "artifactName": "dsh-desktop-${os}-${arch}.${ext}" } - } + }, + "desktopName": "dsh-desktop" }