From 332ec7ca53f7035ad95dab796dca74c8335392a1 Mon Sep 17 00:00:00 2001 From: AdamuAbba Date: Tue, 5 Mar 2024 05:57:56 +0100 Subject: [PATCH 1/3] fix(windowManager,assets): fix tray menu icons on windows --- assets/icons/tray/1024x1024-white.png | Bin 0 -> 60144 bytes assets/icons/tray/16x16Template.png | Bin 0 -> 775 bytes assets/icons/tray/minimize/16x16Template.png | Bin 0 -> 351 bytes assets/icons/tray/minimize/16x16icon-dark.png | Bin 0 -> 450 bytes .../icons/tray/minimize/16x16icon-light.png | Bin 0 -> 422 bytes assets/icons/tray/minimize/96x96icon-dark.png | Bin 0 -> 1850 bytes .../icons/tray/minimize/96x96icon-light.png | Bin 0 -> 1781 bytes assets/icons/tray/quit/16x16Template.png | Bin 0 -> 314 bytes assets/icons/tray/quit/16x16icon-dark.png | Bin 0 -> 375 bytes assets/icons/tray/quit/16x16icon-light.png | Bin 0 -> 343 bytes assets/icons/tray/quit/96x96icon-dark.png | Bin 0 -> 1694 bytes assets/icons/tray/quit/96x96icon-light.png | Bin 0 -> 1626 bytes assets/icons/tray/show/16x16Template.png | Bin 0 -> 320 bytes assets/icons/tray/show/16x16icon-dark.png | Bin 0 -> 373 bytes assets/icons/tray/show/16x16icon-light.png | Bin 0 -> 350 bytes assets/icons/tray/show/96x96icon-dark.png | Bin 0 -> 1742 bytes assets/icons/tray/show/96x96icon-light.png | Bin 0 -> 1711 bytes electron/windowManager.ts | 152 +++++++++++++++++- 18 files changed, 148 insertions(+), 4 deletions(-) create mode 100644 assets/icons/tray/1024x1024-white.png create mode 100644 assets/icons/tray/16x16Template.png create mode 100644 assets/icons/tray/minimize/16x16Template.png create mode 100644 assets/icons/tray/minimize/16x16icon-dark.png create mode 100644 assets/icons/tray/minimize/16x16icon-light.png create mode 100644 assets/icons/tray/minimize/96x96icon-dark.png create mode 100644 assets/icons/tray/minimize/96x96icon-light.png create mode 100644 assets/icons/tray/quit/16x16Template.png create mode 100644 assets/icons/tray/quit/16x16icon-dark.png create mode 100644 assets/icons/tray/quit/16x16icon-light.png create mode 100644 assets/icons/tray/quit/96x96icon-dark.png create mode 100644 assets/icons/tray/quit/96x96icon-light.png create mode 100644 assets/icons/tray/show/16x16Template.png create mode 100644 assets/icons/tray/show/16x16icon-dark.png create mode 100644 assets/icons/tray/show/16x16icon-light.png create mode 100644 assets/icons/tray/show/96x96icon-dark.png create mode 100644 assets/icons/tray/show/96x96icon-light.png diff --git a/assets/icons/tray/1024x1024-white.png b/assets/icons/tray/1024x1024-white.png new file mode 100644 index 0000000000000000000000000000000000000000..3326a373743b268a3527b0ac9d8679c125a2d627 GIT binary patch literal 60144 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 literal 0 HcmV?d00001 diff --git a/assets/icons/tray/16x16Template.png b/assets/icons/tray/16x16Template.png new file mode 100644 index 0000000000000000000000000000000000000000..112ad3740e5747a93480aff8b0d136c5da06fe81 GIT binary patch literal 775 zcmV+i1Ni)jP);_D8WEc88S%}q9hCjqXKO+#fwCpiZ>RtE>fW;DOspjL8YB@-tE=% z{`q~qkWJ>F@N@a_<>C804*-6_lcZ;!Q|Zk){0|d7o;)OK|8ozEk3f&TECA(#x4e}1 zPL=ZBy8y0yF{Z&N;Z!CswkEQ z`{us`3z`5@8lJ6_iPHcVc6L?Etmp&D*j=|0{n#R}W{0kfxwTZ^2%XAr4KvL1WGz9B zjWSvP!-*r!Lzz|iV*thBmZwssOPeV>M{5WF7@dsu>E^@Y%E4bN!P~8G_(`5jCF!i3nbnQaMG^$DtIj&}-nHwh$im)l7T4S0_YFJW`Ul;MY!vl->gT;S0Q2DSD_^V3 z?;ml7)~%je$KG^Y`=5jL4eA@EB3Q+l*1;qv`b2@G0F1xi;?(WAn%JV*YjF0}29k0y zl;h+~wtdDZhn^_FJ<0{|wc={;%TnIk6!zxo0CdYDxeI$LA)g|exD)^Y002ovPDHLk FV1l=SgC+m~ literal 0 HcmV?d00001 diff --git a/assets/icons/tray/minimize/16x16Template.png b/assets/icons/tray/minimize/16x16Template.png new file mode 100644 index 0000000000000000000000000000000000000000..112196278ac9fef1c4dec333fdec9a87e89b555b GIT binary patch literal 351 zcmV-l0igbgP)caaEN!DqgE#O-~x|mW|bt&VJyBU(Tdz(Gi%}{ z`cBv`RdRwx+)YI8UO^tk2Uat|BRrR8GMn8m_%DR zaZdXiuJM$$lQ4u=?Bt5o7)&b$Rfz0IJ6ol8HrpAmhO>C8^kmcM#{gzvsbDq)tp xl8Mr~#ql3AX^Y{o@jM2zcp@j;cl_^k2S05^LplZvTlN3|002ovPDHLkV1iXwnA!jU literal 0 HcmV?d00001 diff --git a/assets/icons/tray/minimize/16x16icon-dark.png b/assets/icons/tray/minimize/16x16icon-dark.png new file mode 100644 index 0000000000000000000000000000000000000000..f608ae2a2b671ea374d5995023f830b577b45a4d GIT binary patch literal 450 zcmV;z0X_bSP)Px$d`Uz>R5(wilRHbCQ4~ejMq5GbgCJH06w}x!Dg*^Fy=A~s6o;tJA1B<|Vrep}P^h$!C0XLHRYk-I_%8X=W8Xv0x%%yJe|)1tJS)Z9Izy5I|Fn87r=Br zon`=AH~_xXh*BvcJ_6Uk74RvgZVR4{6+7&|7P3Whh+QdZ7x$#G`ijTsObRIz!)6+% z;4%J8lW@|rl5UgaPM`#|r7(;2#{U##N*vf!b!lv)CEG+V(w%MQnY;j`jtMQN sdWeYn#!mR{GzI+cLFEtcO@O??GX!s*WsO;}0RR9107*qoM6N<$f*I_;^#A|> literal 0 HcmV?d00001 diff --git a/assets/icons/tray/minimize/16x16icon-light.png b/assets/icons/tray/minimize/16x16icon-light.png new file mode 100644 index 0000000000000000000000000000000000000000..3577c1905bfea4d5729da239a7a34f5a40ad86b5 GIT binary patch literal 422 zcmV;X0a^ZuP)Px$U`a$lR5(wi)4fZVQ5eSYkEBCe_zyG)F1;uab2hxi?M;NiS{&vjqdeVQ~lni@Q>1bo0JEGD!I zE%|?fT^ygkump@@9t(Jm8BFGZUkP}Z^JknAa0RRAsBU^zD2dHi@d7>AM_;X`1Z<)m zQ$ z`tc`~Oe0MFlIsr<;NBAO6mN6G=gNate8m%tpY!A~mTEwh@V=sVX9+vFj;;J|B{UL> zbZ%w|;l)sCVjKv!!-s8LOEaU4-xx?GAw8lVu1%~njTl$Zh7FA3AQxjU%)Okw5=#D# zf3@;N71^Uy&|Gxl_X>Jc$-h&2a?x7|HQ_@Es9QNYHX?p-k%IqvUk$&;Q%+q-eMw_d QKL7v#07*qoM6N<$f>oihYybcN literal 0 HcmV?d00001 diff --git a/assets/icons/tray/minimize/96x96icon-dark.png b/assets/icons/tray/minimize/96x96icon-dark.png new file mode 100644 index 0000000000000000000000000000000000000000..24477b2f6bddb5603992400ba5d5c4e907324355 GIT binary patch literal 1850 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 KKbLh*2~7Ybg?^g= literal 0 HcmV?d00001 diff --git a/assets/icons/tray/quit/16x16icon-dark.png b/assets/icons/tray/quit/16x16icon-dark.png new file mode 100644 index 0000000000000000000000000000000000000000..4a111b0d51be4fbfea906dd804eb4ecf654e2572 GIT binary patch literal 375 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 literal 0 HcmV?d00001 diff --git a/assets/icons/tray/quit/96x96icon-light.png b/assets/icons/tray/quit/96x96icon-light.png new file mode 100644 index 0000000000000000000000000000000000000000..2c9fec761428bbf139bf70181a1a6a8ed0b4d5d0 GIT binary patch literal 1626 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 literal 0 HcmV?d00001 diff --git a/assets/icons/tray/show/96x96icon-dark.png b/assets/icons/tray/show/96x96icon-dark.png new file mode 100644 index 0000000000000000000000000000000000000000..9a159a805dcd86978d1c920e58ade4c602daa7f6 GIT binary patch literal 1742 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 { @@ -50,6 +59,12 @@ class WindowManager { enableRemoteModule: true, }, }); + + // create App system tray icon with context menus + if (!this.tray) { + this.createAppTray(); + } + this.mainWindow.setMenuBarVisibility(false); if (IS_DEV) { @@ -89,12 +104,13 @@ class WindowManager { onMainClosed() { this.mainWindow = null; + this.tray?.destroy(); + app.quit(); } onAllClosed() { - if (process.platform !== 'darwin') { - app.quit(); - } + this.tray?.destroy(); + app.quit(); } onMainWindowClose() { @@ -120,6 +136,134 @@ class WindowManager { error(`unable to send message ${message} to renderer on channel ${responseChan}`); } }; + + TRAY_ICONS_ROOT: string[] = [APP_ROOT, 'assets', 'icons', 'tray']; + + /** + * select `light` or `dark` icon based on host OS + * system theme + * @param path + * @returns + */ + iconSelector = (path: 'quit' | 'minimize' | 'show') => { + if (nativeTheme.shouldUseDarkColors) { + let iconName; + switch (process.platform) { + case 'darwin': + iconName = '16x16Template.png'; + break; + case 'win32': + iconName = '16x16icon-dark.png'; + break; + case 'linux': + iconName = '96x96icon-dark.png'; + break; + default: + iconName = '96x96icon-dark.png'; + break; + } + const imagePath = join(...this.TRAY_ICONS_ROOT, path, iconName); + const nativeImageFromPath = nativeImage.createFromPath(imagePath); + nativeImageFromPath.setTemplateImage(true); + return nativeImageFromPath; + } + + if (!nativeTheme.shouldUseDarkColors) { + let iconName; + switch (process.platform) { + case 'darwin': + iconName = '16x16Template.png'; + break; + case 'win32': + iconName = '16x16icon-light.png'; + break; + case 'linux': + iconName = '96x96icon-light.png'; + break; + default: + iconName = '96x96icon-light.png'; + break; + } + const imagePath = join(...this.TRAY_ICONS_ROOT, path, iconName); + const nativeImageFromPath = nativeImage.createFromPath(imagePath); + nativeImageFromPath.setTemplateImage(true); + return nativeImageFromPath; + } + }; + + /** + * `hides` polar windows + */ + handleOnHideClick = () => { + app.dock?.hide(); + this.mainWindow?.setSkipTaskbar(true); + this.mainWindow?.hide(); + }; + + /** + * `shows` polar window + */ + handleOnShowClick = () => { + app.dock?.show(); + this.mainWindow?.setSkipTaskbar(false); + this.mainWindow?.show(); + }; + + /** + * closes all windows and quits the app + */ + handleQuitClick = () => { + app.quit(); + }; + + updateTrayIcons(tray: Tray | null) { + const contextMenu = Menu.buildFromTemplate([ + { + label: 'Minimize Window', + click: this.handleOnHideClick, + icon: this.iconSelector('minimize'), + }, + { + label: 'Show Window', + click: this.handleOnShowClick, + icon: this.iconSelector('show'), + }, + { + type: 'separator', + }, + { + label: 'Quit Polar', + click: this.handleQuitClick, + icon: this.iconSelector('quit'), + }, + ]); + + tray?.setContextMenu(contextMenu); + } + + /** + * Creates App tray icon with a menu of options + * to `Hide/Show` the app window + * and also `quite` the running app instance + * @returns void + */ + createAppTray() { + const trayIcon = + process.platform === 'darwin' + ? join(...this.TRAY_ICONS_ROOT, '16x16Template.png') + : join(...this.TRAY_ICONS_ROOT, '1024x1024-white.png'); + const nativeImageFromPath = nativeImage.createFromPath(trayIcon as string); + nativeImageFromPath.setTemplateImage(true); + this.tray = new Tray(nativeImageFromPath); + + // initial creation of tray menu + this.updateTrayIcons(this.tray); + + nativeTheme.on('updated', () => { + // re-create tray context menu when system theme changes + this.updateTrayIcons(this?.tray); + }); + } } export default WindowManager; From 58cb79c9575e986c412354288b3a039be39e200f Mon Sep 17 00:00:00 2001 From: jamaljsr <1356600+jamaljsr@users.noreply.github.com> Date: Mon, 17 Jun 2024 21:42:21 -0500 Subject: [PATCH 2/3] feat(electron): use dark icon on Windows light mode --- .../{1024x1024-white.png => 1024x1024-dark.png} | Bin assets/icons/tray/1024x1024-light.png | Bin 0 -> 56411 bytes electron/windowManager.ts | 9 ++++++++- 3 files changed, 8 insertions(+), 1 deletion(-) rename assets/icons/tray/{1024x1024-white.png => 1024x1024-dark.png} (100%) create mode 100644 assets/icons/tray/1024x1024-light.png diff --git a/assets/icons/tray/1024x1024-white.png b/assets/icons/tray/1024x1024-dark.png similarity index 100% rename from assets/icons/tray/1024x1024-white.png rename to assets/icons/tray/1024x1024-dark.png diff --git a/assets/icons/tray/1024x1024-light.png b/assets/icons/tray/1024x1024-light.png new file mode 100644 index 0000000000000000000000000000000000000000..e2dad2cd9400e48ed43770f680d35cb07b4eb440 GIT binary patch literal 56411 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

%2QE@lN+_y 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 { + console.log('nativeTheme.shouldUseDarkColors', nativeTheme.shouldUseDarkColors); if (nativeTheme.shouldUseDarkColors) { let iconName; switch (process.platform) { @@ -248,10 +249,11 @@ class WindowManager { * @returns void */ createAppTray() { + const theme = nativeTheme.shouldUseDarkColors ? 'dark' : 'light'; const trayIcon = process.platform === 'darwin' ? join(...this.TRAY_ICONS_ROOT, '16x16Template.png') - : join(...this.TRAY_ICONS_ROOT, '1024x1024-white.png'); + : join(...this.TRAY_ICONS_ROOT, `1024x1024-${theme}.png`); const nativeImageFromPath = nativeImage.createFromPath(trayIcon as string); nativeImageFromPath.setTemplateImage(true); this.tray = new Tray(nativeImageFromPath); @@ -259,6 +261,11 @@ class WindowManager { // initial creation of tray menu this.updateTrayIcons(this.tray); + this.tray.on('click', () => { + // show the window when the user clicks on the tray icon + this.handleOnShowClick(); + }); + nativeTheme.on('updated', () => { // re-create tray context menu when system theme changes this.updateTrayIcons(this?.tray); From 50dc1ea839fb29b77bae2c6c634494c84d0632dd Mon Sep 17 00:00:00 2001 From: jamaljsr <1356600+jamaljsr@users.noreply.github.com> Date: Mon, 17 Jun 2024 23:08:46 -0500 Subject: [PATCH 3/3] refactor: extract tray management into a new class --- electron/trayManager.ts | 137 +++++++++++++++++++++++++++++++++ electron/windowManager.ts | 156 ++------------------------------------ 2 files changed, 144 insertions(+), 149 deletions(-) create mode 100644 electron/trayManager.ts diff --git a/electron/trayManager.ts b/electron/trayManager.ts new file mode 100644 index 000000000..eacbae8c6 --- /dev/null +++ b/electron/trayManager.ts @@ -0,0 +1,137 @@ +import { app, BrowserWindow, Menu, nativeImage, nativeTheme, Tray } from 'electron'; +import { join } from 'path'; +import { APP_ROOT } from './constants'; + +const TRAY_ICONS_ROOT = join(APP_ROOT, 'assets', 'icons', 'tray'); + +export default class TrayManager { + mainWindow: BrowserWindow; + tray: Tray; + + /** The current system theme */ + get theme(): 'light' | 'dark' { + return nativeTheme.shouldUseDarkColors ? 'dark' : 'light'; + } + + /** The name of the tray icon file based on the platform and theme */ + get trayIconName(): string { + switch (process.platform) { + case 'darwin': + return '16x16Template.png'; + case 'linux': + // The linux tray background doesn't change with the theme. It's always dark + // on Ubuntu and always light on Mint. We use the dark icon for both. This may + // be fixable in the future, but there's no good solution right now. + return `1024x1024-dark.png`; + default: + return `1024x1024-${this.theme}.png`; + } + } + + /** The name of the menu icon file based on the platform and theme */ + get menuIconName(): string { + switch (process.platform) { + case 'darwin': + return '16x16Template.png'; + case 'win32': + return `16x16icon-${this.theme}.png`; + case 'linux': + return `96x96icon-${this.theme}.png`; + default: + return `96x96icon-${this.theme}.png`; + } + } + + constructor(mainWindow: BrowserWindow) { + this.mainWindow = mainWindow; + + this.tray = new Tray(this.getIconPath('tray')); + + // initial creation of tray menu + this.updateTrayIcons(); + + if (process.platform !== 'darwin') { + this.tray.on('click', () => { + // show the window when the user clicks on the tray icon + this.handleOnShowClick(); + }); + } + + nativeTheme.on('updated', () => { + // re-create tray context menu when system theme changes + this.updateTrayIcons(); + }); + } + + /** + * Gets the full path to the menu icon based on platform and theme + */ + getIconPath(name: 'tray' | 'quit' | 'minimize' | 'show') { + const imagePath = + name === 'tray' + ? join(TRAY_ICONS_ROOT, this.trayIconName) + : join(TRAY_ICONS_ROOT, name, this.menuIconName); + + const image = nativeImage.createFromPath(imagePath); + image.setTemplateImage(true); + return image; + } + + /** + * Updates the tray context menu icons based on the current theme + */ + updateTrayIcons() { + const contextMenu = Menu.buildFromTemplate([ + { + label: 'Minimize Window', + click: this.handleOnHideClick, + icon: this.getIconPath('minimize'), + }, + { + label: 'Show Window', + click: this.handleOnShowClick, + icon: this.getIconPath('show'), + }, + { + type: 'separator', + }, + { + label: 'Quit Polar', + click: this.handleQuitClick, + icon: this.getIconPath('quit'), + }, + ]); + + this.tray.setContextMenu(contextMenu); + this.tray.setImage(this.getIconPath('tray')); + } + + /** + * Hides the main window + */ + handleOnHideClick = () => { + app.dock?.hide(); + this.mainWindow.setSkipTaskbar(true); + this.mainWindow.hide(); + }; + + /** + * Shows the main window + */ + handleOnShowClick = () => { + app.dock?.show(); + this.mainWindow.setSkipTaskbar(false); + this.mainWindow.show(); + }; + + /** + * Closes all windows and quits the app + */ + handleQuitClick = () => { + app.quit(); + }; + + destroy() { + this.tray.destroy(); + } +} diff --git a/electron/windowManager.ts b/electron/windowManager.ts index 7e55a71ca..f20080892 100644 --- a/electron/windowManager.ts +++ b/electron/windowManager.ts @@ -1,12 +1,4 @@ -import { - app, - BrowserWindow, - ipcMain, - Menu, - nativeImage, - nativeTheme, - Tray, -} from 'electron'; +import { app, BrowserWindow, ipcMain, Menu } from 'electron'; import { error, warn } from 'electron-log'; import windowState from 'electron-window-state'; import { join } from 'path'; @@ -19,10 +11,11 @@ import { initLndSubscriptions, } from './lnd/lndProxyServer'; import { initTapdProxy } from './tapd/tapdProxyServer'; +import TrayManager from './trayManager'; class WindowManager { mainWindow: BrowserWindow | null = null; - tray: Tray | null = null; + trayManager: TrayManager | null = null; start() { app.on('ready', async () => { @@ -61,8 +54,8 @@ class WindowManager { }); // create App system tray icon with context menus - if (!this.tray) { - this.createAppTray(); + if (!this.trayManager) { + this.trayManager = new TrayManager(this.mainWindow); } this.mainWindow.setMenuBarVisibility(false); @@ -104,12 +97,12 @@ class WindowManager { onMainClosed() { this.mainWindow = null; - this.tray?.destroy(); + this.trayManager?.destroy(); app.quit(); } onAllClosed() { - this.tray?.destroy(); + this.trayManager?.destroy(); app.quit(); } @@ -136,141 +129,6 @@ class WindowManager { error(`unable to send message ${message} to renderer on channel ${responseChan}`); } }; - - TRAY_ICONS_ROOT: string[] = [APP_ROOT, 'assets', 'icons', 'tray']; - - /** - * select `light` or `dark` icon based on host OS - * system theme - * @param path - * @returns - */ - iconSelector = (path: 'quit' | 'minimize' | 'show') => { - console.log('nativeTheme.shouldUseDarkColors', nativeTheme.shouldUseDarkColors); - if (nativeTheme.shouldUseDarkColors) { - let iconName; - switch (process.platform) { - case 'darwin': - iconName = '16x16Template.png'; - break; - case 'win32': - iconName = '16x16icon-dark.png'; - break; - case 'linux': - iconName = '96x96icon-dark.png'; - break; - default: - iconName = '96x96icon-dark.png'; - break; - } - const imagePath = join(...this.TRAY_ICONS_ROOT, path, iconName); - const nativeImageFromPath = nativeImage.createFromPath(imagePath); - nativeImageFromPath.setTemplateImage(true); - return nativeImageFromPath; - } - - if (!nativeTheme.shouldUseDarkColors) { - let iconName; - switch (process.platform) { - case 'darwin': - iconName = '16x16Template.png'; - break; - case 'win32': - iconName = '16x16icon-light.png'; - break; - case 'linux': - iconName = '96x96icon-light.png'; - break; - default: - iconName = '96x96icon-light.png'; - break; - } - const imagePath = join(...this.TRAY_ICONS_ROOT, path, iconName); - const nativeImageFromPath = nativeImage.createFromPath(imagePath); - nativeImageFromPath.setTemplateImage(true); - return nativeImageFromPath; - } - }; - - /** - * `hides` polar windows - */ - handleOnHideClick = () => { - app.dock?.hide(); - this.mainWindow?.setSkipTaskbar(true); - this.mainWindow?.hide(); - }; - - /** - * `shows` polar window - */ - handleOnShowClick = () => { - app.dock?.show(); - this.mainWindow?.setSkipTaskbar(false); - this.mainWindow?.show(); - }; - - /** - * closes all windows and quits the app - */ - handleQuitClick = () => { - app.quit(); - }; - - updateTrayIcons(tray: Tray | null) { - const contextMenu = Menu.buildFromTemplate([ - { - label: 'Minimize Window', - click: this.handleOnHideClick, - icon: this.iconSelector('minimize'), - }, - { - label: 'Show Window', - click: this.handleOnShowClick, - icon: this.iconSelector('show'), - }, - { - type: 'separator', - }, - { - label: 'Quit Polar', - click: this.handleQuitClick, - icon: this.iconSelector('quit'), - }, - ]); - - tray?.setContextMenu(contextMenu); - } - - /** - * Creates App tray icon with a menu of options - * to `Hide/Show` the app window - * and also `quite` the running app instance - * @returns void - */ - createAppTray() { - const theme = nativeTheme.shouldUseDarkColors ? 'dark' : 'light'; - const trayIcon = - process.platform === 'darwin' - ? join(...this.TRAY_ICONS_ROOT, '16x16Template.png') - : join(...this.TRAY_ICONS_ROOT, `1024x1024-${theme}.png`); - const nativeImageFromPath = nativeImage.createFromPath(trayIcon as string); - nativeImageFromPath.setTemplateImage(true); - this.tray = new Tray(nativeImageFromPath); - - // initial creation of tray menu - this.updateTrayIcons(this.tray); - - this.tray.on('click', () => { - // show the window when the user clicks on the tray icon - this.handleOnShowClick(); - }); - - nativeTheme.on('updated', () => { - // re-create tray context menu when system theme changes - this.updateTrayIcons(this?.tray); - }); - } } export default WindowManager;