Utils for Electron main process.
npm i @electron-toolkit/utils-
dev
- Type: boolean,
truewhenapp.isPackagedisfalse
- Type: boolean,
-
isWindows
- Type: boolean,
truewhenprocess.platformiswin32
- Type: boolean,
-
isMacOS
- Type: boolean,
truewhenprocess.platformisdarwin
- Type: boolean,
-
isLinux
- Type: boolean,
truewhenprocess.platformislinux
- Type: boolean,
-
setAppUserModelId
-
Type: (id: string): void
-
Platform: win32
The
idis used only when the applcation is packaged. otherwise use theprocess.execPathvalue 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
F12in development and ignoreCommandOrControl + Rin production. Furthermore, you can useshortcutOptionsto 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')
-