From c751e4fd80e2be863cfb0209cebcf1746f39700c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20Kr=C3=BChlmann?= Date: Sun, 4 Jan 2026 14:52:20 +0100 Subject: [PATCH] Add icons --- .../package-lock.json => package-lock.json | 0 src/main/node/package.json => package.json | 19 +++--- src/main/node/app.js | 58 ++++++++---------- src/main/resources/assets/icon/appicon.ico | Bin 0 -> 100704 bytes src/main/resources/assets/icon/favicon.ico | Bin 0 -> 100704 bytes src/main/resources/assets/icon/macos.icns | Bin 0 -> 7692 bytes .../assets/{raw_icon.png => icon/raw.png} | Bin .../assets/{raw_icon.xcf => icon/raw.xcf} | Bin 14155 -> 14156 bytes 8 files changed, 34 insertions(+), 43 deletions(-) rename src/main/node/package-lock.json => package-lock.json (100%) rename src/main/node/package.json => package.json (65%) create mode 100644 src/main/resources/assets/icon/appicon.ico create mode 100644 src/main/resources/assets/icon/favicon.ico create mode 100644 src/main/resources/assets/icon/macos.icns rename src/main/resources/assets/{raw_icon.png => icon/raw.png} (100%) rename src/main/resources/assets/{raw_icon.xcf => icon/raw.xcf} (99%) diff --git a/src/main/node/package-lock.json b/package-lock.json similarity index 100% rename from src/main/node/package-lock.json rename to package-lock.json diff --git a/src/main/node/package.json b/package.json similarity index 65% rename from src/main/node/package.json rename to package.json index 4f840d8..b4b5e03 100644 --- a/src/main/node/package.json +++ b/package.json @@ -6,26 +6,21 @@ "build": { "appId": "dev.kruhlmann.imgfloat.overlay", "productName": "Imgfloat", - "files": [ - "app.js" - ], + "files": [ "src/main/node/app.js" ], "asar": false, - "directories": { - "output": "dist" - }, + "directories": { "output": "dist" }, "linux": { - "target": [ - "AppImage" - ], + "target": ["AppImage"], "category": "Utility" + "icon": "assets/icon/raw_icon.png" }, "win": { - "target": [ - "nsis" - ] + "target": ["nsis"] + "icon": "assets/icon/appicon.ico" }, "mac": { "category": "public.app-category.productivity" + "icon": "assets/icon/macos.icns" } }, "devDependencies": { diff --git a/src/main/node/app.js b/src/main/node/app.js index 55b7c1d..0060bc8 100644 --- a/src/main/node/app.js +++ b/src/main/node/app.js @@ -1,24 +1,22 @@ const { app, BrowserWindow } = require('electron'); +const path = require('path'); function createWindow() { - const url = process.env.ELECTRON_START_URL || "https://imgfloat.kruhlmann.dev/channels"; - const width = Number.parseInt(process.env.ELECTRON_WINDOW_WIDTH, 10) || 960; - const height = Number.parseInt(process.env.ELECTRON_WINDOW_HEIGHT, 10) || 640; - - const win = new BrowserWindow({ - width: width, - height: height, + const url = "https://imgfloat.kruhlmann.dev/channels"; + const initialWindowWidthPx = 960; + const initialWindowHeightPx = 640; + const applicationWindow = new BrowserWindow({ + width: initialWindowWidthPx, + height: initialWindowHeightPx, transparent: true, frame: true, backgroundColor: '#00000000', alwaysOnTop: false, - webPreferences: { - backgroundThrottling: false - } + icon: path.join(__dirname, "../resources/assets/icon/appicon.ico"), + webPreferences: { backgroundThrottling: false }, }); let canvasSizeInterval; - const clearCanvasSizeInterval = () => { if (canvasSizeInterval) { clearInterval(canvasSizeInterval); @@ -27,11 +25,11 @@ function createWindow() { }; const lockWindowToCanvas = async () => { - if (win.isDestroyed()) { + if (applicationWindow.isDestroyed()) { return false; } try { - const size = await win.webContents.executeJavaScript(`(() => { + const size = await applicationWindow.webContents.executeJavaScript(`(() => { const canvas = document.getElementById('broadcast-canvas'); if (!canvas || !canvas.width || !canvas.height) { return null; @@ -40,13 +38,13 @@ function createWindow() { })();`); if (size?.width && size?.height) { - const [currentWidth, currentHeight] = win.getSize(); + const [currentWidth, currentHeight] = applicationWindow.getSize(); if (currentWidth !== size.width || currentHeight !== size.height) { - win.setSize(size.width, size.height, false); + applicationWindow.setSize(size.width, size.height, false); } - win.setMinimumSize(size.width, size.height); - win.setMaximumSize(size.width, size.height); - win.setResizable(false); + applicationWindow.setMinimumSize(size.width, size.height); + applicationWindow.setMaximumSize(size.width, size.height); + applicationWindow.setResizable(false); return true; } } catch (error) { @@ -66,27 +64,25 @@ function createWindow() { lockWindowToCanvas(); } else { clearCanvasSizeInterval(); - win.setResizable(true); - win.setMinimumSize(320, 240); - win.setMaximumSize(10000, 10000); - win.setSize(width, height, false); + applicationWindow.setResizable(true); + applicationWindow.setMinimumSize(320, 240); + applicationWindow.setMaximumSize(10000, 10000); + applicationWindow.setSize(initialWindowWidthPx, initialWindowHeightPx, false); } } catch { // Ignore malformed URLs while navigating. } }; - win.loadURL(url); + applicationWindow.loadURL(url); - win.webContents.on('did-finish-load', () => { - handleNavigation(win.webContents.getURL()); + applicationWindow.webContents.on('did-finish-load', () => { + handleNavigation(applicationWindow.webContents.getURL()); }); - win.webContents.on('did-navigate', (_event, navigationUrl) => handleNavigation(navigationUrl)); - win.webContents.on('did-navigate-in-page', (_event, navigationUrl) => handleNavigation(navigationUrl)); - win.on('closed', clearCanvasSizeInterval); + applicationWindow.webContents.on('did-navigate', (_event, navigationUrl) => handleNavigation(navigationUrl)); + applicationWindow.webContents.on('did-navigate-in-page', (_event, navigationUrl) => handleNavigation(navigationUrl)); + applicationWindow.on('closed', clearCanvasSizeInterval); } -app.whenReady().then(() => { - createWindow(); -}); +app.whenReady().then(createWindow); diff --git a/src/main/resources/assets/icon/appicon.ico b/src/main/resources/assets/icon/appicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..79fb49ff9284d1d86367e60b833abbb99c4eb714 GIT binary patch literal 100704 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 W8Tb@`Qu%W`?tcaTjuRRIU;HmeHBOuW literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/raw_icon.png b/src/main/resources/assets/icon/raw.png similarity index 100% rename from src/main/resources/assets/raw_icon.png rename to src/main/resources/assets/icon/raw.png diff --git a/src/main/resources/assets/raw_icon.xcf b/src/main/resources/assets/icon/raw.xcf similarity index 99% rename from src/main/resources/assets/raw_icon.xcf rename to src/main/resources/assets/icon/raw.xcf index e3b5d64a2aae1185e34fb117bf3b65d831f3e94b..7de1bdcd2820e00befe895c7cd61edfedca87001 100644 GIT binary patch delta 9 QcmX?|cP4Lxw>cvh02mPiu>b%7 delta 7 OcmX?;cRFu_w>bb1y91^G