Utils for Electron main process.
npm i @electron-toolkit/utils
-
dev
- Type: boolean,
true
whenapp.isPackaged
isfalse
- Type: boolean,
-
isWindows
- Type: boolean,
true
whenprocess.platform
iswin32
- Type: boolean,
-
isMacOS
- Type: boolean,
true
whenprocess.platform
isdarwin
- Type: boolean,
-
isLinux
- Type: boolean,
true
whenprocess.platform
islinux
- Type: boolean,
-
setAppUserModelId
-
Type: (id: string): void
-
Platform: win32
The
id
is used only when the applcation is packaged. otherwise use theprocess.execPath
value as id. See https://www.electronjs.org/docs/latest/tutorial/notifications#windows
-
-
setAutoLaunch
-
Type: (auto: boolean) => boolean
-
Platform: darwin,win32
Set the app automatically open at login or not
-
-
skipProxy
-
Type: () => Promise
-
Kind: async, sequential
Skip proxy for Electron app
-
-
watchWindowShortcuts
-
Type: (window: BrowserWindow, shortcutOptions?: shortcutOptions) => void
Default open or close DevTools by
F12
in development and ignoreCommandOrControl + R
in production. Furthermore, you can useshortcutOptions
to control more shortcuts.Example:
import { app } from 'electron' import { optimizer } from '@electron-toolkit/utils' app.whenReady().then(() => { app.on('browser-window-created', (_, window) => { optimizer.watchWindowShortcuts(window) }) })
-
-
registerFramelessWindowIpc
-
Type: () => void
If use a frameless window which hide the system's native window controls, we may need to create custom window controls in HTML.
The frameless window ipc allow the renderer process to control the browser window.
The ipc channel named
win:invoke
.Example:
// main.js import { app } from 'electron' import { optimizer } from '@electron-toolkit/utils' app.whenReady().then(() => { optimizer.registerFramelessWindowIpc() })
// renderer.js or preload.js ipcRenderer.send('win:invoke', 'show') ipcRenderer.send('win:invoke', 'showInactive') ipcRenderer.send('win:invoke', 'min') ipcRenderer.send('win:invoke', 'max') ipcRenderer.send('win:invoke', 'close')
-