From e10b052efc6de59af36f1a48a7e2445db0fa4899 Mon Sep 17 00:00:00 2001 From: forztf Date: Thu, 11 Jun 2026 19:17:47 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20Windows=20=E6=89=93=E5=8C=85=E6=94=AF?= =?UTF-8?q?=E6=8C=81=E2=80=94=E2=80=94NSIS=E5=AE=89=E8=A3=85=E5=8C=85=20+?= =?UTF-8?q?=20=E8=B7=A8=E5=B9=B3=E5=8F=B0=E5=85=BC=E5=AE=B9=E4=BF=AE?= =?UTF-8?q?=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - package.json: 新增 dist:win 脚本、win/nsis 配置(x64、可选目录、桌面快捷方式) - electron/main.js: titleBarStyle/vibrancy/clip:file/pty:cwd/screenshotDir 适配 Windows - build/icon.ico: 多尺寸 Windows 图标(16-256px) - .gitignore: 跟踪 icon.ico - check:vendor-patch 改为 node 实现,兼容 Windows --- .gitignore | 1 + build/icon.ico | Bin 0 -> 408142 bytes electron/main.js | 38 ++++++++++++++++++++++++++++---------- package-lock.json | 4 ++-- package.json | 24 ++++++++++++++++++++++-- 5 files changed, 53 insertions(+), 14 deletions(-) create mode 100644 build/icon.ico diff --git a/.gitignore b/.gitignore index 062c512..eb7d844 100644 --- a/.gitignore +++ b/.gitignore @@ -5,6 +5,7 @@ dist/ build/* !build/icon.icns !build/icon.png +!build/icon.ico !build/icon-1024.png !build/entitlements.mac.plist diff --git a/build/icon.ico b/build/icon.ico new file mode 100644 index 0000000000000000000000000000000000000000..716c0e888e5492eca93d03f485e3155a99d17489 GIT binary patch literal 408142 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 PGg??QjC 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 { // ---------- 截图直通车:监听系统截屏落盘,新截图推给渲染层浮出直通卡 ---------- function screenshotDir() { + if (process.platform === 'win32') { + // Windows: 用户截图目录,通常在 Pictures\Screenshots,不存在则回退桌面 + const pics = path.join(os.homedir(), 'Pictures', 'Screenshots'); + return fs.existsSync(pics) ? pics : path.join(os.homedir(), 'Desktop'); + } try { const out = require('child_process').execSync('defaults read com.apple.screencapture location 2>/dev/null', { encoding: 'utf8' }).trim(); if (out) return out.startsWith('~') ? path.join(os.homedir(), out.slice(1)) : out; @@ -273,8 +277,13 @@ ipcMain.handle('clip:image', (e, { path: p }) => { }); ipcMain.handle('clip:file', (e, { path: p }) => new Promise((resolve) => { const { execFile } = require('child_process'); - // argv 传路径,避免拼进 AppleScript 字面量被注入 - execFile('osascript', ['-e', 'on run argv', '-e', 'set the clipboard to (POSIX file (item 1 of argv))', '-e', 'end run', p], (err) => resolve({ ok: !err, error: err && err.message })); + if (process.platform === 'win32') { + // Windows: PowerShell Set-Clipboard 复制文件路径到剪贴板(资源管理器可粘贴) + execFile('powershell', ['-Command', `Set-Clipboard -Path "${p}"`], (err) => resolve({ ok: !err, error: err && err.message })); + } else { + // macOS: osascript 把 POSIX file 写入剪贴板 + execFile('osascript', ['-e', 'on run argv', '-e', 'set the clipboard to (POSIX file (item 1 of argv))', '-e', 'end run', p], (err) => resolve({ ok: !err, error: err && err.message })); + } })); // 拖拽落盘:file-promise 类拖入(截图浮窗等)没有真实路径,把字节写进临时目录换路径 @@ -314,11 +323,20 @@ ipcMain.handle('pty:cwd', (e, { id }) => new Promise((resolve) => { const p = terminals.get(id); if (!p || !p.pid) return resolve({ ok: false }); const { exec } = require('child_process'); - exec(`lsof -a -p ${p.pid} -d cwd -Fn`, { env: { ...process.env, LC_ALL: 'en_US.UTF-8' } }, (err, stdout) => { - if (err) return resolve({ ok: false }); - const line = stdout.split('\n').find((l) => l.startsWith('n')); - resolve(line ? { ok: true, cwd: decodeLsofPath(line.slice(1)) } : { ok: false }); - }); + if (process.platform === 'win32') { + // Windows: PowerShell 通过 Get-CimInstance 查进程可执行路径,再取其目录 + exec(`powershell -Command "(Get-CimInstance Win32_Process -Filter 'ProcessId=${p.pid}').ExecutablePath"`, (err, stdout) => { + if (err || !stdout.trim()) return resolve({ ok: false }); + const exePath = stdout.trim(); + resolve({ ok: true, cwd: path.dirname(exePath) }); + }); + } else { + exec(`lsof -a -p ${p.pid} -d cwd -Fn`, { env: { ...process.env, LC_ALL: 'en_US.UTF-8' } }, (err, stdout) => { + if (err) return resolve({ ok: false }); + const line = stdout.split('\n').find((l) => l.startsWith('n')); + resolve(line ? { ok: true, cwd: decodeLsofPath(line.slice(1)) } : { ok: false }); + }); + } })); // 取终端前台进程名(node-pty 维护):判断当前是裸 shell 还是正跑着 claude/codex 等程序 diff --git a/package-lock.json b/package-lock.json index 217e4c0..dff94f2 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "fanbox", - "version": "1.1.0", + "version": "1.6.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "fanbox", - "version": "1.1.0", + "version": "1.6.0", "license": "MIT", "dependencies": { "@xterm/addon-fit": "^0.10.0", diff --git a/package.json b/package.json index 9ba1cfb..dde1fc1 100644 --- a/package.json +++ b/package.json @@ -12,9 +12,10 @@ "rebuild": "electron-rebuild -f -w node-pty", "build:milkdown": "esbuild src-vendor/milkdown-entry.js --bundle --format=iife --minify --outfile=public/vendor/milkdown/milkdown.js --loader:.svg=dataurl --loader:.woff=file --loader:.woff2=file --loader:.ttf=file --loader:.eot=file --asset-names=[name]", "build:hljs": "esbuild src-vendor/hljs-entry.js --bundle --format=iife --minify --outfile=public/vendor/hljs/highlight.js && cp node_modules/marked/marked.min.js public/vendor/marked/marked.min.js && cp node_modules/highlight.js/styles/github-dark.min.css node_modules/highlight.js/styles/github.min.css public/vendor/hljs/styles/", - "check:vendor-patch": "grep -q '20===e.keyCode||229===e.keyCode' public/vendor/xterm/xterm.js", + "check:vendor-patch": "node -e \"const fs=require('fs'); const c=fs.readFileSync('public/vendor/xterm/xterm.js','utf8'); if(!c.includes('20===e.keyCode||229===e.keyCode')){console.error('xterm patch missing');process.exit(1)}\"", "predist": "npm run check:vendor-patch", - "dist": "electron-builder --mac" + "dist": "electron-builder --mac", + "dist:win": "electron-builder --win --x64" }, "build": { "appId": "com.huashu.fanbox", @@ -46,6 +47,25 @@ "dmg": { "title": "翻箱 FanBox", "writeUpdateInfo": false + }, + "win": { + "icon": "build/icon.ico", + "target": [ + { + "target": "nsis", + "arch": ["x64"] + } + ] + }, + "nsis": { + "oneClick": false, + "allowToChangeInstallationDirectory": true, + "installerIcon": "build/icon.ico", + "uninstallerIcon": "build/icon.ico", + "installerHeaderIcon": "build/icon.ico", + "createDesktopShortcut": true, + "createStartMenuShortcut": true, + "shortcutName": "翻箱 FanBox" } }, "type": "commonjs",