| 
									
										
										
										
											2016-01-07 21:26:08 +08:00
										 |  |  | # globalShortcut
 | 
					
						
							| 
									
										
										
										
											2014-08-04 09:47:42 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-01-07 21:26:08 +08:00
										 |  |  | The `globalShortcut` module can register/unregister a global keyboard shortcut | 
					
						
							| 
									
										
										
										
											2015-08-26 17:32:47 -07:00
										 |  |  | with the operating system so that you can customize the operations for various | 
					
						
							|  |  |  | shortcuts. | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-09-09 14:09:14 -07:00
										 |  |  | **Note:** The shortcut is global; it will work even if the app does | 
					
						
							| 
									
										
										
										
											2015-08-26 17:32:47 -07:00
										 |  |  | not have the keyboard focus. You should not use this module until the `ready` | 
					
						
							|  |  |  | event of the app module is emitted. | 
					
						
							| 
									
										
										
										
											2014-08-04 09:47:42 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | ```javascript | 
					
						
							| 
									
										
										
										
											2015-11-12 21:20:09 +08:00
										 |  |  | const electron = require('electron'); | 
					
						
							|  |  |  | const app = electron.app; | 
					
						
							|  |  |  | const globalShortcut = electron.globalShortcut; | 
					
						
							| 
									
										
										
										
											2014-08-04 09:47:42 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-07-09 17:03:58 +08:00
										 |  |  | app.on('ready', function() { | 
					
						
							| 
									
										
										
										
											2015-07-09 22:49:16 +08:00
										 |  |  |   // Register a 'ctrl+x' shortcut listener. | 
					
						
							|  |  |  |   var ret = globalShortcut.register('ctrl+x', function() { | 
					
						
							|  |  |  |     console.log('ctrl+x is pressed'); | 
					
						
							| 
									
										
										
										
											2015-10-07 09:03:11 -07:00
										 |  |  |   }); | 
					
						
							| 
									
										
										
										
											2015-06-09 18:01:09 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-07-09 22:49:16 +08:00
										 |  |  |   if (!ret) { | 
					
						
							|  |  |  |     console.log('registration failed'); | 
					
						
							|  |  |  |   } | 
					
						
							| 
									
										
										
										
											2014-08-04 09:47:42 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-07-09 22:49:16 +08:00
										 |  |  |   // Check whether a shortcut is registered. | 
					
						
							|  |  |  |   console.log(globalShortcut.isRegistered('ctrl+x')); | 
					
						
							| 
									
										
										
										
											2015-07-09 17:03:58 +08:00
										 |  |  | }); | 
					
						
							| 
									
										
										
										
											2014-08-04 09:47:42 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-07-09 17:03:58 +08:00
										 |  |  | app.on('will-quit', function() { | 
					
						
							| 
									
										
										
										
											2015-07-09 22:49:16 +08:00
										 |  |  |   // Unregister a shortcut. | 
					
						
							|  |  |  |   globalShortcut.unregister('ctrl+x'); | 
					
						
							| 
									
										
										
										
											2014-08-04 09:47:42 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-07-09 22:49:16 +08:00
										 |  |  |   // Unregister all shortcuts. | 
					
						
							|  |  |  |   globalShortcut.unregisterAll(); | 
					
						
							| 
									
										
										
										
											2015-07-09 17:03:58 +08:00
										 |  |  | }); | 
					
						
							| 
									
										
										
										
											2014-08-04 09:47:42 +08:00
										 |  |  | ``` | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-08-26 17:32:47 -07:00
										 |  |  | ## Methods
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-01-07 21:26:08 +08:00
										 |  |  | The `globalShortcut` module has the following methods: | 
					
						
							| 
									
										
										
										
											2015-08-26 17:32:47 -07:00
										 |  |  | 
 | 
					
						
							|  |  |  | ### `globalShortcut.register(accelerator, callback)`
 | 
					
						
							| 
									
										
										
										
											2014-08-04 09:47:42 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-08-05 00:00:39 +08:00
										 |  |  | * `accelerator` [Accelerator](accelerator.md) | 
					
						
							| 
									
										
										
										
											2014-08-04 09:47:42 +08:00
										 |  |  | * `callback` Function | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-07-14 16:58:15 +01:00
										 |  |  | Registers a global shortcut of `accelerator`. The `callback` is called when | 
					
						
							| 
									
										
										
										
											2016-01-07 21:26:08 +08:00
										 |  |  | the registered shortcut is pressed by the user. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | When the accelerator is already taken by other applications, this call will | 
					
						
							|  |  |  | silently fail. This behavior is intended by operating systems, since they don't | 
					
						
							|  |  |  | want applications to fight for global shortcuts. | 
					
						
							| 
									
										
										
										
											2014-08-04 09:47:42 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-08-26 17:32:47 -07:00
										 |  |  | ### `globalShortcut.isRegistered(accelerator)`
 | 
					
						
							| 
									
										
										
										
											2014-08-04 09:47:42 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-08-05 00:00:39 +08:00
										 |  |  | * `accelerator` [Accelerator](accelerator.md) | 
					
						
							| 
									
										
										
										
											2014-08-04 09:47:42 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-01-07 21:26:08 +08:00
										 |  |  | Returns whether this application has registered `accelerator`. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | When the accelerator is already taken by other applications, this call will | 
					
						
							|  |  |  | still return `false`. This behavior is intended by operating systems, since they | 
					
						
							|  |  |  | don't want applications to fight for global shortcuts. | 
					
						
							| 
									
										
										
										
											2014-08-04 09:47:42 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-08-26 17:32:47 -07:00
										 |  |  | ### `globalShortcut.unregister(accelerator)`
 | 
					
						
							| 
									
										
										
										
											2014-08-04 09:47:42 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-08-05 00:00:39 +08:00
										 |  |  | * `accelerator` [Accelerator](accelerator.md) | 
					
						
							| 
									
										
										
										
											2014-08-04 09:47:42 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-08-26 17:32:47 -07:00
										 |  |  | Unregisters the global shortcut of `accelerator`. | 
					
						
							| 
									
										
										
										
											2014-08-04 09:47:42 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-08-26 17:32:47 -07:00
										 |  |  | ### `globalShortcut.unregisterAll()`
 | 
					
						
							| 
									
										
										
										
											2014-08-04 09:47:42 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-10-07 09:03:46 -07:00
										 |  |  | Unregisters all of the global shortcuts. |