electron-localshortcut
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.
Note: Since this module internally use global-shortcut
native module, you should not use it until the ready
event of the app module is emitted. See electron docs.
Installation
npm install --save electron-localshortcut
Usage
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');
});
console.log(
electronLocalshortcut.isRegistered(win, 'Ctrl+A')
);
electronLocalshortcut.unregister(win, 'Ctrl+A');
electronLocalshortcut.unregisterAll(win);
App shortcuts.
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.
API
disableAll
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 instance
Returns Undefined
enableAll
Enable all of the shortcuts registered on the BrowserWindow instance that you had previously disabled calling disableAll
method.
Parameters
win
BrowserWindow BrowserWindow instance
Returns Undefined
unregisterAll
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 instance
Returns Undefined
register
Registers the shortcut accelerator
on 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 the shortcut to registercallback
Function This function is called when the shortcut is pressed and the window is focused and not minimized.
Returns Undefined
unregister
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 the shortcut to unregister
Returns Undefined
isRegistered
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 check
Returns Boolean if the shortcut accelerator
is registered on window
.
License
The MIT License (MIT)
Copyright (c) 2017 Andrea Parodi