diff --git a/electron-app/package.json b/electron-app/package.json index 215a11d..74f75d9 100644 --- a/electron-app/package.json +++ b/electron-app/package.json @@ -44,14 +44,22 @@ "appId": "com.lambdabanking.rmtpocketwatcher", "productName": "rmtPocketWatcher", "directories": { - "output": "release" + "output": "release", + "buildResources": "resources" }, "files": [ "dist/**/*", "package.json" ], + "extraResources": [ + { + "from": "resources/icons", + "to": "icons" + } + ], "win": { + "icon": "resources/icons/icon.ico", "target": [ "portable" ] diff --git a/electron-app/resources/icons/icon.ico b/electron-app/resources/icons/icon.ico new file mode 100644 index 0000000..6297e2e Binary files /dev/null and b/electron-app/resources/icons/icon.ico differ diff --git a/electron-app/resources/icons/logo.png b/electron-app/resources/icons/logo.png new file mode 100644 index 0000000..f139847 Binary files /dev/null and b/electron-app/resources/icons/logo.png differ diff --git a/electron-app/src/main/index.ts b/electron-app/src/main/index.ts index 3b11ace..2fee428 100644 --- a/electron-app/src/main/index.ts +++ b/electron-app/src/main/index.ts @@ -18,13 +18,22 @@ console.log('API_URL:', process.env.API_URL); let mainWindow: BrowserWindow | null = null; let tray: Tray | null = null; +const isDev = process.env.NODE_ENV === 'development'; + +function getIconPath(): string { + if (isDev) { + return process.platform === 'win32' + ? path.join(__dirname, '../../resources/icons/icon.ico') + : path.join(__dirname, '../../resources/icons/logo.png'); + } + + return process.platform === 'win32' + ? path.join(process.resourcesPath, 'icons', 'icon.ico') + : path.join(process.resourcesPath, 'icons', 'logo.png'); +} function createWindow(): void { - // In dev: __dirname = dist/main, logo is at root - // In prod: __dirname = resources/app.asar/dist/main - const iconPath = process.env.NODE_ENV === 'development' - ? path.join(__dirname, '../../logo.png') - : path.join(__dirname, '../assets/logo.png'); + const iconPath = getIconPath(); console.log('Window icon path:', iconPath); @@ -65,13 +74,14 @@ function createWindow(): void { function createTray(): void { // In dev: __dirname = dist/main, logo is at root // In prod: __dirname = resources/app.asar/dist/main - const iconPath = process.env.NODE_ENV === 'development' - ? path.join(__dirname, '../../logo.png') - : path.join(__dirname, '../assets/logo.png'); + const iconPath = getIconPath(); console.log('Tray icon path:', iconPath); - const icon = nativeImage.createFromPath(iconPath).resize({ width: 16, height: 16 }); + let icon = nativeImage.createFromPath(iconPath); + if (process.platform !== 'win32') { + icon = icon.resize({ width: 16, height: 16 }); + } tray = new Tray(icon);