diff --git a/public/windows/main.js b/public/windows/main.js index 34157c0cb..e5a017cdf 100644 --- a/public/windows/main.js +++ b/public/windows/main.js @@ -1,8 +1,10 @@ const { BrowserWindow, Menu, + Tray, app, ipcMain, + nativeImage, } = require('electron'); const windowStateKeeper = require('electron-window-state'); const { menubar } = require('menubar'); @@ -30,9 +32,18 @@ const createAsync = () => new Promise((resolve) => { defaultHeight: 400, }); + // setImage after Tray instance is created to avoid + // "Segmentation fault (core dumped)" bug on Linux + // https://github.com/electron/electron/issues/22137#issuecomment-586105622 + // https://github.com/atomery/translatium/issues/164 + const tray = new Tray(nativeImage.createEmpty()); + // icon template is not supported on Windows & Linux + const iconPath = path.resolve(__dirname, '..', 'menubar-icon.png'); + tray.setImage(iconPath); + mb = menubar({ index: REACT_PATH, - icon: path.resolve(__dirname, '..', 'menubar-icon.png'), + tray, preloadWindow: true, tooltip: appJson.name, browserWindow: {