Note:ScreenDetails is a live object, meaning that it updates as the available screens change. You can therefore keep querying the same object to get updated values, rather than repeatedly calling getScreenDetails().
When Window.getScreenDetails() is invoked, the user will be asked for permission to manage windows on all their displays (the status of this permission can be checked using Permissions.query() to query window-management). If the user grants permission, a ScreenDetails object is returned. This object contains details of all the screens available to the user's system.
The below example opens a full-size window on each available display.
js
const screenDetails =await window.getScreenDetails();// Open a window on each screen of the devicefor(const screen of screenDetails.screens){openWindow(
screen.availLeft,
screen.availTop,
screen.availWidth,
screen.availHeight,
url,);}
Responding to changes in available screens
You could use the screenschange event to detect when the available screens have changed (perhaps when a screen is plugged in or unplugged), report the change, and update window arrangements to suit the new configuration:
js
const screenDetails =await window.getScreenDetails();// Return the number of screenslet noOfScreens = screenDetails.screens.length;
screenDetails.addEventListener("screenschange",()=>{// If the new number of screens is different to the old number of screens,// report the differenceif(screenDetails.screens.length !== noOfScreens){
console.log(`The screen count changed from ${noOfScreens} to ${screenDetails.screens.length}`,);// Update noOfScreens value
noOfScreens = screenDetails.screens.length;}// Open, close, or rearrange windows as needed,// to fit the new screen configurationupdateWindows();});