diff --git a/docs/fiddles/menus/shortcuts/index.html b/docs/fiddles/menus/shortcuts/index.html
new file mode 100644
index 00000000000..d67b1d6f76e
--- /dev/null
+++ b/docs/fiddles/menus/shortcuts/index.html
@@ -0,0 +1,73 @@
+
+
+
+
+
+ Keyboard Shortcuts
+
+
+
+
+
Keyboard Shortcuts
+
+
The globalShortcut
and Menu
modules can be used to define keyboard shortcuts.
+
+
+ In Electron, keyboard shortcuts are called accelerators.
+ They can be assigned to actions in your application's Menu,
+ or they can be assigned globally so they'll be triggered even when
+ your app doesn't have keyboard focus.
+
+
+
+ Open the full documentation for the
+ Menu,
+ Accelerator,
+ and
+ globalShortcut
+ APIs in your browser.
+
+
+
+
+
+
+
+
+ To try this demo, press CommandOrControl+Alt+K on your
+ keyboard.
+
+
+
+ Global shortcuts are detected even when the app doesn't have
+ keyboard focus, and they must be registered after the app's
+ `ready` event is emitted.
+
+
+
+
ProTip
+
Avoid overriding system-wide keyboard shortcuts.
+
+ When registering global shortcuts, it's important to be aware of
+ existing defaults in the target operating system, so as not to
+ override any existing behaviors. For an overview of each
+ operating system's keyboard shortcuts, view these documents:
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/docs/fiddles/menus/shortcuts/main.js b/docs/fiddles/menus/shortcuts/main.js
new file mode 100644
index 00000000000..b2c4d55901c
--- /dev/null
+++ b/docs/fiddles/menus/shortcuts/main.js
@@ -0,0 +1,69 @@
+// Modules to control application life and create native browser window
+const { app, BrowserWindow, globalShortcut, dialog } = require('electron')
+
+// Keep a global reference of the window object, if you don't, the window will
+// be closed automatically when the JavaScript object is garbage collected.
+let mainWindow
+
+function createWindow () {
+ // Create the browser window.
+ mainWindow = new BrowserWindow({
+ width: 800,
+ height: 600,
+ webPreferences: {
+ nodeIntegration: true
+ }
+ })
+
+ globalShortcut.register('CommandOrControl+Alt+K', () => {
+ dialog.showMessageBox({
+ type: 'info',
+ message: 'Success!',
+ detail: 'You pressed the registered global shortcut keybinding.',
+ buttons: ['OK']
+ })
+ })
+
+ // and load the index.html of the app.
+ mainWindow.loadFile('index.html')
+
+ // Open the DevTools.
+ // mainWindow.webContents.openDevTools()
+
+ // Emitted when the window is closed.
+ mainWindow.on('closed', function () {
+ // Dereference the window object, usually you would store windows
+ // in an array if your app supports multi windows, this is the time
+ // when you should delete the corresponding element.
+ mainWindow = null
+ })
+}
+
+// This method will be called when Electron has finished
+// initialization and is ready to create browser windows.
+// Some APIs can only be used after this event occurs.
+app.on('ready', createWindow)
+
+// Quit when all windows are closed.
+app.on('window-all-closed', function () {
+ // On OS X it is common for applications and their menu bar
+ // to stay active until the user quits explicitly with Cmd + Q
+ if (process.platform !== 'darwin') {
+ app.quit()
+ }
+})
+
+app.on('activate', function () {
+ // On OS X it's common to re-create a window in the app when the
+ // dock icon is clicked and there are no other windows open.
+ if (mainWindow === null) {
+ createWindow()
+ }
+})
+
+app.on('will-quit', function () {
+ globalShortcut.unregisterAll()
+})
+
+// In this file you can include the rest of your app's specific main process
+// code. You can also put them in separate files and require them here.