Retrieve information about screen size, displays, cursor position, etc.
You cannot require or use this module until the ready
event of the app
module is emitted.
In the renderer process context it depends on the remote
module,
it is therefore not available when this module is disabled.
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')
}
})
The screen
module emits the following events:
Returns:
event
EventnewDisplay
DisplayEmitted when newDisplay
has been added.
Returns:
event
EventoldDisplay
DisplayEmitted when oldDisplay
has been removed.
Returns:
event
Eventdisplay
DisplaychangedMetrics
String[]Emitted 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 Point
The current absolute position of the mouse pointer.
screen.getPrimaryDisplay()
Returns Display
- The primary display.
screen.getAllDisplays()
Returns Display[]
- An array of displays that are currently available.
screen.getDisplayNearestPoint(point)
point
PointReturns Display
- The display nearest the specified point.
screen.getDisplayMatching(rect)
rect
RectangleReturns Display
- The display that most closely
intersects the provided bounds.
screen.screenToDipPoint(point)
Windowspoint
PointReturns Point
Converts a screen physical point to a screen DIP point. The DPI scale is performed relative to the display containing the physical point.
screen.dipToScreenPoint(point)
Windowspoint
PointReturns Point
Converts a screen DIP point to a screen physical point. The DPI scale is performed relative to the display containing the DIP point.
screen.screenToDipRect(window, rect)
Windowswindow
BrowserWindow | nullrect
RectangleReturns Rectangle
Converts a screen physical rect to a screen DIP rect.
The DPI scale is performed relative to the display nearest to window
.
If window
is null, scaling will be performed to the display nearest to rect
.
screen.dipToScreenRect(window, rect)
Windowswindow
BrowserWindow | nullrect
RectangleReturns Rectangle
Converts a screen DIP rect to a screen physical rect.
The DPI scale is performed relative to the display nearest to window
.
If window
is null, scaling will be performed to the display nearest to rect
.