"use strict"; const electron = require("electron"); const path = require("path"); const utils = require("@electron-toolkit/utils"); const icon = path.join(__dirname, "../../resources/icon.png"); function createWindow() { const mainWindow = new electron.BrowserWindow({ width: 1100, height: 670, show: false, autoHideMenuBar: true, ...process.platform === "linux" ? { icon } : {}, webPreferences: { preload: path.join(__dirname, "../preload/index.mjs"), sandbox: false }, frame: false, // Custom frame for premium look transparent: true, backgroundColor: "#00000000" }); mainWindow.on("ready-to-show", () => { mainWindow.show(); }); mainWindow.webContents.setWindowOpenHandler((details) => { electron.shell.openExternal(details.url); return { action: "deny" }; }); if (utils.is.dev && process.env["ELECTRON_RENDERER_URL"]) { mainWindow.loadURL(process.env["ELECTRON_RENDERER_URL"]); } else { mainWindow.loadFile(path.join(__dirname, "../renderer/index.html")); } } electron.app.whenReady().then(() => { utils.electronApp.setAppUserModelId("com.voicext.app"); electron.app.on("browser-window-created", (_, window) => { utils.optimizer.watchWindowShortcuts(window); }); electron.ipcMain.on("window-controls", (event, action) => { const win = electron.BrowserWindow.fromWebContents(event.sender); if (action === "minimize") win.minimize(); if (action === "maximize") win.isMaximized() ? win.unmaximize() : win.maximize(); if (action === "close") win.close(); }); createWindow(); electron.app.on("activate", function() { if (electron.BrowserWindow.getAllWindows().length === 0) createWindow(); }); }); electron.app.on("window-all-closed", () => { if (process.platform !== "darwin") { electron.app.quit(); } });