Retrieve information about screen size, displays, cursor position, etc.
You cannot use this module until the ready
event of the app
module is
emitted (by invoking or requiring it).
screen
is an EventEmitter.
Note: In the renderer / DevTools, window.screen
is a reserved DOM
property, so writing let {screen} = require('electron')
will not work.
An example of creating a window that fills the whole screen:
const electron = require('electron')
const {app, BrowserWindow} = electron
let win
app.on('ready', () => {
const {width, height} = electron.screen.getPrimaryDisplay().workAreaSize
win = new BrowserWindow({width, height})
win.loadURL('https://github.com')
})
Another example of creating a window in the external display:
const electron = require('electron')
const {app, BrowserWindow} = require('electron')
let win
app.on('ready', () => {
let displays = electron.screen.getAllDisplays()
let externalDisplay = displays.find((display) => {
return display.bounds.x !== 0 || display.bounds.y !== 0
})
if (externalDisplay) {
win = new BrowserWindow({
x: externalDisplay.bounds.x + 50,
y: externalDisplay.bounds.y + 50
})
win.loadURL('https://github.com')
}
})
Display
objectThe Display
object represents a physical display connected to the system. A
fake Display
may exist on a headless system, or a Display
may correspond to
a remote, virtual display.
display
object
id
Integer - Unique identifier associated with the display.rotation
Integer - Can be 0, 90, 180, 270, represents screen rotation in
clock-wise degrees.scaleFactor
Number - Output device's pixel scale factor.touchSupport
String - Can be available
, unavailable
, unknown
.bounds
Objectsize
ObjectworkArea
ObjectworkAreaSize
ObjectThe screen
module emits the following events:
Returns:
event
EventnewDisplay
ObjectEmitted when newDisplay
has been added.
Returns:
event
EventoldDisplay
ObjectEmitted when oldDisplay
has been removed.
Returns:
event
Eventdisplay
ObjectchangedMetrics
ArrayEmitted when one or more metrics change in a display
. The changedMetrics
is
an array of strings that describe the changes. Possible changes are bounds
,
workArea
, scaleFactor
and rotation
.
The screen
module has the following methods:
screen.getCursorScreenPoint()
Returns the current absolute position of the mouse pointer.
screen.getPrimaryDisplay()
Returns the primary display.
screen.getAllDisplays()
Returns an array of displays that are currently available.
screen.getDisplayNearestPoint(point)
point
Object
x
Integery
IntegerReturns the display nearest the specified point.
screen.getDisplayMatching(rect)
rect
Object
x
Integery
Integerwidth
Integerheight
IntegerReturns the display that most closely intersects the provided bounds.