2015-11-12 13:20:09 +00:00
# powerMonitor
2013-08-14 22:43:35 +00:00
2016-04-21 22:39:12 +00:00
> Monitor power state changes.
2016-04-21 22:35:29 +00:00
2016-11-23 19:20:56 +00:00
Process: [Main ](../glossary.md#main-process )
2016-11-03 17:26:00 +00:00
2015-08-29 04:37:07 +00:00
## Events
2016-09-16 18:38:32 +00:00
The `powerMonitor` module emits the following events:
2015-08-29 04:37:07 +00:00
2021-03-15 22:43:25 +00:00
### Event: 'suspend'
2013-08-14 22:43:35 +00:00
Emitted when the system is suspending.
2021-03-15 22:43:25 +00:00
### Event: 'resume'
2013-08-14 22:43:35 +00:00
2013-08-29 14:37:51 +00:00
Emitted when system is resuming.
2015-04-15 04:03:58 +00:00
2020-08-31 07:46:10 +00:00
### Event: 'on-ac' _macOS_ _Windows_
2015-04-15 04:03:58 +00:00
Emitted when the system changes to AC power.
2020-08-31 07:46:10 +00:00
### Event: 'on-battery' _macOS_ _Windows_
2015-04-15 04:03:58 +00:00
Emitted when system changes to battery power.
2017-12-21 11:01:34 +00:00
2018-02-05 07:13:35 +00:00
### Event: 'shutdown' _Linux_ _macOS_
2017-12-21 11:01:34 +00: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-14 05:42:08 +00:00
2018-04-30 16:04:27 +00: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 17:12:39 +00: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-14 05:42:08 +00:00
## Methods
The `powerMonitor` module has the following methods:
2019-04-30 00:46:08 +00:00
### `powerMonitor.getSystemIdleState(idleThreshold)`
2019-02-27 20:54:01 +00:00
* `idleThreshold` Integer
Returns `String` - The system's current state. Can be `active` , `idle` , `locked` or `unknown` .
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-30 00:46:08 +00:00
### `powerMonitor.getSystemIdleTime()`
2019-02-27 20:54:01 +00:00
Returns `Integer` - Idle time in seconds
Calculate system idle time in seconds.
2020-11-17 00:31:46 +00:00
### `powerMonitor.isOnBatteryPower()`
Returns `Boolean` - Whether the system is on battery power.
To monitor for changes in this property, use the `on-battery` and `on-ac`
events.
## Properties
### `powerMonitor.onBatteryPower`
A `Boolean` property. True if the system is on battery power.
See [`powerMonitor.isOnBatteryPower()` ](#powermonitorisonbatterypower ).