Add keyboard shortcuts locally to a BrowserWindow instance, without using a Menu
JavaScript
426
179 commits
updated Mar 23, 2024
A module to register/unregister a keyboard shortcut locally to a BrowserWindow instance, without using a Menu.
This is built to circumvent this Electron issue.
npm install --save electron-localshortcut
const electronLocalshortcut = require('electron-localshortcut');
const BrowserWindow = require('electron').BrowserWindow;
const win = new BrowserWindow();
win.loadUrl('https://github.com');
win.show();
electronLocalshortcut.register(win, 'Ctrl+A', () => {
console.log('You pressed ctrl & A');
});
electronLocalshortcut.register(win, 'Ctrl+B', () => {
console.log('You pressed ctrl & B');
});
electronLocalshortcut.register(win, ['Ctrl+R', 'F5'], () => {
console.log('You pressed ctrl & R or F5');
});
console.log(
electronLocalshortcut.isRegistered(win, 'Ctrl+A')
); // true
electronLocalshortcut.unregister(win, 'Ctrl+A');
electronLocalshortcut.unregisterAll(win);
If you omit the window argument of isRegistered, unregisterAll, unregister and register methods, the shortcut is registered as an app shortcut.
It is active when any window of the app is focused.
They differ from native global-shortcuts because they doesn't interfere with other apps running on the same machine.
If you register a shortcut for a window, this module unregister the shortcut when the window is hidden, unfocused or minimized, and automatically restore it when the window is restored and focused again.
If you register an app shortcut, this module unregister the shortcut when all windows of your app are hidden, unfocused or minimized, and automatically restore it when any window of your app is restored and focused again.
Disable all of the shortcuts registered on the BrowserWindow instance.
Registered shortcuts no more works on the window instance, but the module
keep a reference on them. You can reactivate them later by calling enableAll
method on the same window instance.
Parameters
win BrowserWindow BrowserWindow instanceReturns Undefined
Enable all of the shortcuts registered on the BrowserWindow instance that
you had previously disabled calling disableAll method.
Parameters
win BrowserWindow BrowserWindow instanceReturns Undefined
Unregisters all of the shortcuts registered on any focused BrowserWindow instance. This method does not unregister any shortcut you registered on a particular window instance.
Parameters
win BrowserWindow BrowserWindow instanceReturns Undefined
Registers the shortcut acceleratoron the BrowserWindow instance.
Parameters
win BrowserWindow BrowserWindow instance to register.
This argument could be omitted, in this case the function register
the shortcut on all app windows.accelerator (String | Array<String>) the shortcut to registercallback Function This function is called when the shortcut is pressed
and the window is focused and not minimized.Returns Undefined
Unregisters the shortcut of accelerator registered on the BrowserWindow instance.
Parameters
win BrowserWindow BrowserWindow instance to unregister.
This argument could be omitted, in this case the function unregister the shortcut
on all app windows. If you registered the shortcut on a particular window instance, it will do nothing.accelerator (String | Array<String>) the shortcut to unregisterReturns Undefined
Returns true or false depending on whether the shortcut accelerator
is registered on window.
Parameters
win BrowserWindow BrowserWindow instance to check. This argument
could be omitted, in this case the function returns whether the shortcut
accelerator is registered on all app windows. If you registered the
shortcut on a particular window instance, it return false.accelerator String the shortcut to checkReturns Boolean if the shortcut accelerator is registered on window.
The MIT License (MIT)
Copyright (c) 2017 Andrea Parodi
Overall
Maintained
Code review
Latest release
Releases this year
3,074 followers · starred Apr 2016
7,367 followers · starred Nov 2015
314 followers · starred Dec 2016
152 followers · starred Jun 2020
Add keyboard shortcuts locally to a BrowserWindow instance, without using a Menu
JavaScript
426
179 commits
updated Mar 23, 2024
A module to register/unregister a keyboard shortcut locally to a BrowserWindow instance, without using a Menu.
This is built to circumvent this Electron issue.
npm install --save electron-localshortcut
const electronLocalshortcut = require('electron-localshortcut');
const BrowserWindow = require('electron').BrowserWindow;
const win = new BrowserWindow();
win.loadUrl('https://github.com');
win.show();
electronLocalshortcut.register(win, 'Ctrl+A', () => {
console.log('You pressed ctrl & A');
});
electronLocalshortcut.register(win, 'Ctrl+B', () => {
console.log('You pressed ctrl & B');
});
electronLocalshortcut.register(win, ['Ctrl+R', 'F5'], () => {
console.log('You pressed ctrl & R or F5');
});
console.log(
electronLocalshortcut.isRegistered(win, 'Ctrl+A')
); // true
electronLocalshortcut.unregister(win, 'Ctrl+A');
electronLocalshortcut.unregisterAll(win);
If you omit the window argument of isRegistered, unregisterAll, unregister and register methods, the shortcut is registered as an app shortcut.
It is active when any window of the app is focused.
They differ from native global-shortcuts because they doesn't interfere with other apps running on the same machine.
If you register a shortcut for a window, this module unregister the shortcut when the window is hidden, unfocused or minimized, and automatically restore it when the window is restored and focused again.
If you register an app shortcut, this module unregister the shortcut when all windows of your app are hidden, unfocused or minimized, and automatically restore it when any window of your app is restored and focused again.
Disable all of the shortcuts registered on the BrowserWindow instance.
Registered shortcuts no more works on the window instance, but the module
keep a reference on them. You can reactivate them later by calling enableAll
method on the same window instance.
Parameters
win BrowserWindow BrowserWindow instanceReturns Undefined
Enable all of the shortcuts registered on the BrowserWindow instance that
you had previously disabled calling disableAll method.
Parameters
win BrowserWindow BrowserWindow instanceReturns Undefined
Unregisters all of the shortcuts registered on any focused BrowserWindow instance. This method does not unregister any shortcut you registered on a particular window instance.
Parameters
win BrowserWindow BrowserWindow instanceReturns Undefined
Registers the shortcut acceleratoron the BrowserWindow instance.
Parameters
win BrowserWindow BrowserWindow instance to register.
This argument could be omitted, in this case the function register
the shortcut on all app windows.accelerator (String | Array<String>) the shortcut to registercallback Function This function is called when the shortcut is pressed
and the window is focused and not minimized.Returns Undefined
Unregisters the shortcut of accelerator registered on the BrowserWindow instance.
Parameters
win BrowserWindow BrowserWindow instance to unregister.
This argument could be omitted, in this case the function unregister the shortcut
on all app windows. If you registered the shortcut on a particular window instance, it will do nothing.accelerator (String | Array<String>) the shortcut to unregisterReturns Undefined
Returns true or false depending on whether the shortcut accelerator
is registered on window.
Parameters
win BrowserWindow BrowserWindow instance to check. This argument
could be omitted, in this case the function returns whether the shortcut
accelerator is registered on all app windows. If you registered the
shortcut on a particular window instance, it return false.accelerator String the shortcut to checkReturns Boolean if the shortcut accelerator is registered on window.
The MIT License (MIT)
Copyright (c) 2017 Andrea Parodi
Overall
Maintained
Code review
Latest release
Releases this year
3,074 followers · starred Apr 2016
7,367 followers · starred Nov 2015
314 followers · starred Dec 2016
152 followers · starred Jun 2020