import { app, BrowserWindow, Menu, nativeTheme } from 'electron' import { initialize, enable } from '@electron/remote/main' import path from 'path' import os from 'os' // needed in case process is undefined under Linux const platform = process.platform || os.platform() try { if (platform === 'win32' && nativeTheme.shouldUseDarkColors === true) { require('fs').unlinkSync( path.join(app.getPath('userData'), 'DevTools Extensions') ) } } catch (_) {} initialize() let mainWindow: BrowserWindow | undefined function createWindow () { /** * Initial window options */ mainWindow = new BrowserWindow({ useContentSize: true, frame: false, icon: path.resolve(__dirname, 'icons/icon.png'), // tray icon webPreferences: { sandbox: false, contextIsolation: true, // More info: https://v2.quasar.dev/quasar-cli-vite/developing-electron-apps/electron-preload-script preload: path.resolve(__dirname, process.env.QUASAR_ELECTRON_PRELOAD) } }) enable(mainWindow.webContents) mainWindow.setMenu(null) mainWindow.maximize() mainWindow.loadURL(process.env.APP_URL) if (process.env.DEBUGGING) { // if on DEV or Production with debug enabled mainWindow.webContents.openDevTools() } mainWindow.on('closed', () => { mainWindow = undefined }) } // Performance improvement tweak Menu.setApplicationMenu(null) app.whenReady().then(createWindow) app.on('window-all-closed', () => { if (platform !== 'darwin') { app.quit() } }) app.on('activate', () => { if (mainWindow === undefined) { createWindow() } })