From ac4afe9212f168af577e7774047b2bbb007af1fd Mon Sep 17 00:00:00 2001 From: GitFrog1111 <122885215+GitFrog1111@users.noreply.github.com> Date: Sat, 4 Apr 2026 16:24:46 +0700 Subject: [PATCH] macicon --- icon/Template.png | Bin 0 -> 49134 bytes main.js | 89 ++++++++++++++++++++++++++-------------------- 2 files changed, 50 insertions(+), 39 deletions(-) create mode 100644 icon/Template.png diff --git a/icon/Template.png b/icon/Template.png new file mode 100644 index 0000000000000000000000000000000000000000..0672cd913f7abe99fcd6fbdc8b291fbbfcb8a9b7 GIT binary patch literal 49134 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 G4E{en3~gip literal 0 HcmV?d00001 diff --git a/main.js b/main.js index 3622b08..be5380a 100644 --- a/main.js +++ b/main.js @@ -1,6 +1,5 @@ const { app, BrowserWindow, Tray, Menu, ipcMain, nativeImage, screen } = require('electron'); const path = require('path'); -const zlib = require('zlib'); const fs = require('fs'); const os = require('os'); const { execFile } = require('child_process'); @@ -28,47 +27,59 @@ const VK_RETURN = 0x0D; const VK_C = 0x43; const KEYUP = 0x0002; -// ── Tiny PNG encoder (for tray icon, no deps) ────────────────────────────── -function makePNG(w, h, rgba) { - const tbl = new Int32Array(256); - for (let n = 0; n < 256; n++) { - let c = n; for (let k = 0; k < 8; k++) c = c & 1 ? 0xedb88320 ^ (c >>> 1) : c >>> 1; - tbl[n] = c; - } - const crc32 = buf => { let c = -1; for (let i = 0; i < buf.length; i++) c = tbl[(c ^ buf[i]) & 0xff] ^ (c >>> 8); return (c ^ -1) >>> 0; }; - const chunk = (type, data) => { - const t = Buffer.from(type), len = Buffer.alloc(4), crc = Buffer.alloc(4); - len.writeUInt32BE(data.length); - crc.writeUInt32BE(crc32(Buffer.concat([t, data]))); - return Buffer.concat([len, t, data, crc]); - }; - const ihdr = Buffer.alloc(13); - ihdr.writeUInt32BE(w, 0); ihdr.writeUInt32BE(h, 4); ihdr[8] = 8; ihdr[9] = 6; - const raw = Buffer.alloc(h * (1 + w * 4)); - for (let y = 0; y < h; y++) { raw[y * (1 + w * 4)] = 0; rgba.copy(raw, y * (1 + w * 4) + 1, y * w * 4, (y + 1) * w * 4); } - return Buffer.concat([Buffer.from([137,80,78,71,13,10,26,10]), chunk('IHDR', ihdr), chunk('IDAT', zlib.deflateSync(raw)), chunk('IEND', Buffer.alloc(0))]); -} - function createTrayIconFallback() { - const s = 16, px = Buffer.alloc(s * s * 4); - for (let y = 0; y < s; y++) for (let x = 0; x < s; x++) { - const i = (y * s + x) * 4, d = Math.hypot(x - 7.5, y - 7.5); - if (d < 6.5) { px[i] = 200; px[i+1] = 40; px[i+2] = 40; px[i+3] = 255; } + const p = path.join(__dirname, 'icon', 'Template.png'); + if (fs.existsSync(p)) { + const img = nativeImage.createFromPath(p); + if (!img.isEmpty()) { + if (process.platform === 'darwin') img.setTemplateImage(true); + return img; + } } - const tmp = path.join(os.tmpdir(), 'badclaude-icon.png'); - fs.writeFileSync(tmp, makePNG(s, s, px)); - return nativeImage.createFromPath(tmp); + console.warn('badclaude: icon/Template.png missing or invalid'); + return nativeImage.createEmpty(); } -function getTrayIcon() { +async function tryIcnsTrayImage(icnsPath) { + const size = { width: 64, height: 64 }; + const thumb = await nativeImage.createThumbnailFromPath(icnsPath, size); + if (!thumb.isEmpty()) return thumb; + return null; +} + +// macOS: createFromPath does not decode .icns (Electron only loads PNG/JPEG there, ICO on Windows). +// Quick Look thumbnails handle .icns; copy to temp if the file is inside ASAR (QL needs a real path). +async function getTrayIcon() { const iconDir = path.join(__dirname, 'icon'); - const file = - process.platform === 'win32' ? path.join(iconDir, 'icon.ico') - : process.platform === 'darwin' ? path.join(iconDir, 'AppIcon.icns') - : null; - if (file && fs.existsSync(file)) { - const img = nativeImage.createFromPath(file); - if (!img.isEmpty()) return img; + if (process.platform === 'win32') { + const file = path.join(iconDir, 'icon.ico'); + if (fs.existsSync(file)) { + const img = nativeImage.createFromPath(file); + if (!img.isEmpty()) return img; + } + return createTrayIconFallback(); + } + if (process.platform === 'darwin') { + const file = path.join(iconDir, 'AppIcon.icns'); + if (fs.existsSync(file)) { + const fromPath = nativeImage.createFromPath(file); + if (!fromPath.isEmpty()) return fromPath; + try { + const t = await tryIcnsTrayImage(file); + if (t) return t; + } catch (e) { + console.warn('AppIcon.icns Quick Look thumbnail failed:', e?.message || e); + } + const tmp = path.join(os.tmpdir(), 'badclaude-tray.icns'); + try { + fs.copyFileSync(file, tmp); + const t = await tryIcnsTrayImage(tmp); + if (t) return t; + } catch (e) { + console.warn('AppIcon.icns temp copy + thumbnail failed:', e?.message || e); + } + } + return createTrayIconFallback(); } return createTrayIconFallback(); } @@ -197,8 +208,8 @@ function sendMacroMac(text) { } // ── App lifecycle ─────────────────────────────────────────────────────────── -app.whenReady().then(() => { - tray = new Tray(getTrayIcon()); +app.whenReady().then(async () => { + tray = new Tray(await getTrayIcon()); tray.setToolTip('Bad Claude – click for whip'); tray.setContextMenu( Menu.buildFromTemplate([