2015-11-12 21:20:09 +08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								# powerMonitor
 
							 
						 
					
						
							
								
									
										
										
										
											2013-08-14 15:43:35 -07:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-04-21 15:39:12 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								>  Monitor power state changes.
 
							 
						 
					
						
							
								
									
										
										
										
											2016-04-21 15:35:29 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-11-23 11:20:56 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								Process: [Main ](../glossary.md#main-process )
							 
						 
					
						
							
								
									
										
										
										
											2016-11-03 10:26:00 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-08-28 21:37:07 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								## Events
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-09-16 11:38:32 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								The `powerMonitor`  module emits the following events:
							 
						 
					
						
							
								
									
										
										
										
											2015-08-28 21:37:07 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2021-03-05 03:11:36 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								### Event: 'suspend'
 
							 
						 
					
						
							
								
									
										
										
										
											2013-08-14 15:43:35 -07:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								Emitted when the system is suspending.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2021-03-05 03:11:36 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								### Event: 'resume'
 
							 
						 
					
						
							
								
									
										
										
										
											2013-08-14 15:43:35 -07:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2013-08-29 16:37:51 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								Emitted when system is resuming.
							 
						 
					
						
							
								
									
										
										
										
											2015-04-14 21:03:58 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-08-31 16:46:10 +09:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								### Event: 'on-ac' _macOS_ _Windows_
 
							 
						 
					
						
							
								
									
										
										
										
											2015-04-14 21:03:58 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								Emitted when the system changes to AC power.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-08-31 16:46:10 +09:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								### Event: 'on-battery' _macOS_  _Windows_
 
							 
						 
					
						
							
								
									
										
										
										
											2015-04-14 21:03:58 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								Emitted when system changes to battery power.
							 
						 
					
						
							
								
									
										
										
										
											2017-12-21 08:01:34 -03:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-04-19 02:46:55 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								### Event: 'thermal-state-change' _macOS_
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2025-02-10 10:13:11 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								Returns:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								*  `details`  Event\<\>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  *  `state`  string - The system's new thermal state. Can be `unknown` , `nominal` , `fair` , `serious` , `critical` .
							 
						 
					
						
							
								
									
										
										
										
											2023-04-19 02:46:55 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								Emitted when the thermal state of the system changes. Notification of a change
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								in the thermal status of the system, such as entering a critical temperature
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								range. Depending on the severity, the system might take steps to reduce said
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								temperature, for example, throttling the CPU or switching on the fans if
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								available.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								Apps may react to the new state by reducing expensive computing tasks (e.g.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								video encoding), or notifying the user. The same state might be received
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								repeatedly.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								See https://developer.apple.com/library/archive/documentation/Performance/Conceptual/power_efficiency_guidelines_osx/RespondToThermalStateChanges.html
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								### Event: 'speed-limit-change' _macOS_ _Windows_
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-10-29 11:16:29 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								Returns:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2025-02-10 10:13:11 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								*  `details`  Event\<\>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  *  `limit`  number - The operating system's advertised speed limit for CPUs, in percent.
							 
						 
					
						
							
								
									
										
										
										
											2023-04-19 02:46:55 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								Notification of a change in the operating system's advertised speed limit for
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								CPUs, in percent. Values below 100 indicate that the system is impairing
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								processing power due to thermal management.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2018-02-05 16:13:35 +09:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								### Event: 'shutdown' _Linux_ _macOS_
 
							 
						 
					
						
							
								
									
										
										
										
											2017-12-21 08:01:34 -03:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								Emitted when the system is about to reboot or shut down. If the event handler
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								invokes `e.preventDefault()` , Electron will attempt to delay system shutdown in
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								order for the app to exit cleanly. If `e.preventDefault()`  is called, the app
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								should exit as soon as possible by calling something like `app.quit()` .
							 
						 
					
						
							
								
									
										
										
										
											2018-03-13 22:42:08 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2018-05-01 02:04:27 +10:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								### Event: 'lock-screen' _macOS_ _Windows_
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								Emitted when the system is about to lock the screen.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								### Event: 'unlock-screen' _macOS_ _Windows_
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								Emitted as soon as the systems screen is unlocked.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-09-22 10:12:39 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								### Event: 'user-did-become-active' _macOS_
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								Emitted when a login session is activated. See [documentation ](https://developer.apple.com/documentation/appkit/nsworkspacesessiondidbecomeactivenotification?language=objc ) for more information.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								### Event: 'user-did-resign-active' _macOS_
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								Emitted when a login session is deactivated. See [documentation ](https://developer.apple.com/documentation/appkit/nsworkspacesessiondidresignactivenotification?language=objc ) for more information.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2018-03-13 22:42:08 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								## Methods
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								The `powerMonitor`  module has the following methods:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2019-04-29 17:46:08 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								### `powerMonitor.getSystemIdleState(idleThreshold)`
 
							 
						 
					
						
							
								
									
										
										
										
											2019-02-27 12:54:01 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								*  `idleThreshold`  Integer
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-04-19 02:46:55 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								Returns `string`  - The system's current idle state. Can be `active` , `idle` , `locked`  or `unknown` .
							 
						 
					
						
							
								
									
										
										
										
											2019-02-27 12:54:01 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								Calculate the system idle state. `idleThreshold`  is the amount of time (in seconds)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								before considered idle.  `locked`  is available on supported systems only.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2019-04-29 17:46:08 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								### `powerMonitor.getSystemIdleTime()`
 
							 
						 
					
						
							
								
									
										
										
										
											2019-02-27 12:54:01 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								Returns `Integer`  - Idle time in seconds
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								Calculate system idle time in seconds.
							 
						 
					
						
							
								
									
										
										
										
											2020-11-16 16:31:46 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-04-19 02:46:55 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								### `powerMonitor.getCurrentThermalState()` _macOS_
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								Returns `string`  - The system's current thermal state. Can be `unknown` , `nominal` , `fair` , `serious` , or `critical` .
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-11-16 16:31:46 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								### `powerMonitor.isOnBatteryPower()`
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2021-11-16 05:13:18 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								Returns `boolean`  - Whether the system is on battery power.
							 
						 
					
						
							
								
									
										
										
										
											2020-11-16 16:31:46 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								To monitor for changes in this property, use the `on-battery`  and `on-ac` 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								events.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								## Properties
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								### `powerMonitor.onBatteryPower`
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2021-11-16 05:13:18 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								A `boolean`  property. True if the system is on battery power.
							 
						 
					
						
							
								
									
										
										
										
											2020-11-16 16:31:46 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								See [`powerMonitor.isOnBatteryPower()` ](#powermonitorisonbatterypower ).