diff --git a/app/assets/ollama_outline_icon_16x16Template.png b/app/assets/ollama_outline_icon_16x16Template.png new file mode 100644 index 00000000..04ef6561 Binary files /dev/null and b/app/assets/ollama_outline_icon_16x16Template.png differ diff --git a/app/assets/ollama_outline_icon_16x16Template@2x.png b/app/assets/ollama_outline_icon_16x16Template@2x.png new file mode 100644 index 00000000..0be1e88e Binary files /dev/null and b/app/assets/ollama_outline_icon_16x16Template@2x.png differ diff --git a/app/forge.config.ts b/app/forge.config.ts index c49c44c0..57e6f6dc 100644 --- a/app/forge.config.ts +++ b/app/forge.config.ts @@ -21,6 +21,8 @@ const config: ForgeConfig = { '../ollama', path.join(__dirname, './assets/ollama_icon_16x16Template.png'), path.join(__dirname, './assets/ollama_icon_16x16Template@2x.png'), + path.join(__dirname, './assets/ollama_outline_icon_16x16Template.png'), + path.join(__dirname, './assets/ollama_outline_icon_16x16Template@2x.png'), ...(process.platform === 'darwin' ? ['../llama/ggml-metal.metal'] : []), ], ...(process.env.SIGN diff --git a/app/src/index.ts b/app/src/index.ts index d235c6e8..a88afdc2 100644 --- a/app/src/index.ts +++ b/app/src/index.ts @@ -1,5 +1,5 @@ import { spawn } from 'child_process' -import { app, autoUpdater, dialog, Tray, Menu, BrowserWindow } from 'electron' +import { app, autoUpdater, dialog, Tray, Menu, BrowserWindow, nativeTheme } from 'electron' import Store from 'electron-store' import winston from 'winston' import 'winston-daily-rotate-file' @@ -66,14 +66,30 @@ function firstRunWindow() { } function createSystemtray() { - let iconPath = path.join(__dirname, '..', '..', 'assets', 'ollama_icon_16x16Template.png') + let iconPath = nativeTheme.shouldUseDarkColors + ? path.join(__dirname, '..', '..', 'assets', 'ollama_icon_16x16Template.png') + : path.join(__dirname, '..', '..', 'assets', 'ollama_outline_icon_16x16Template.png') if (app.isPackaged) { - iconPath = path.join(process.resourcesPath, 'ollama_icon_16x16Template.png') + iconPath = nativeTheme.shouldUseDarkColors + ? path.join(process.resourcesPath, 'ollama_icon_16x16Template.png') + : path.join(process.resourcesPath, 'ollama_outline_icon_16x16Template.png') } tray = new Tray(iconPath) + nativeTheme.on('updated', function theThemeHasChanged () { + if (nativeTheme.shouldUseDarkColors) { + app.isPackaged + ? tray.setImage(path.join(process.resourcesPath, 'ollama_icon_16x16Template.png')) + : tray.setImage(path.join(__dirname, '..', '..', 'assets', 'ollama_icon_16x16Template.png')) + } else { + app.isPackaged + ? tray.setImage(path.join(process.resourcesPath, 'ollama_outline_icon_16x16Template.png')) + : tray.setImage(path.join(__dirname, '..', '..', 'assets', 'ollama_outline_icon_16x16Template.png')) + } + }) + const contextMenu = Menu.buildFromTemplate([{ role: 'quit', label: 'Quit Ollama', accelerator: 'Command+Q' }]) tray.setContextMenu(contextMenu)