1.8 KiB
Keyboard Shortcuts
Configure local and global keyboard shortcuts
Global Shortcuts
You can use the globalShortcut module to detect keyboard events even when the application does not have keyboard focus.
const {app, globalShortcut} = require('electron')
app.on('ready', () => {
globalShortcut.register('CommandOrControl+X', () => {
console.log('CommandOrControl+X is pressed')
})
})
Local Shortcuts
You can use the Menu module to configure keyboard shortcuts that will
be triggered only when the app is focused. To do so, specify an
accelerator property when creating a MenuItem.
const {Menu, MenuItem} = require('electron')
const menu = new Menu()
menu.append(new MenuItem({
label: 'Print',
accelerator: 'CmdOrCtrl+P'
click: () => { console.log('time to print stuff') }
}))
It's easy to configure different key combinations based on the user's operating system.
{
accelerator: process.platform === 'darwin' ? 'Alt+Cmd+I' : 'Ctrl+Shift+I'
}
Local Shortcuts without a Menu
If you want to configure a local keyboard shortcut to trigger an action that does not have a corresponding menu item, you can use the electron-localshortcut npm module.
If you want to handle keyboard shortcuts for a BrowserWindow, you can use the keyup and keydown event listeners on the window object inside the renderer process.
window.addEventListener('keyup', doSomething, true)
Note the third parameter true which means the listener will always receive key presses before other listeners so they can't have stopPropagation() called on them.