# Multiple monitors support

DevFeed: [Multiple monitors support](<https://devfeed.tech/articles/multiple-monitors-support-22391.md>)

Original publisher: [Read original article](<https://www.red-lang.org/2025/04/multiple-monitors-support.html>)

Author: Nenad Rakocevic (noreply@blogger.com)

Published: 2025-04-15T09:08:00Z

Content type: release

Language: en

Sources: [Red](<https://devfeed.tech/sources/red.md>)

Topics: [Red](<https://devfeed.tech/topics/red.md>), [GUI](<https://devfeed.tech/topics/gui.md>), [Windows](<https://devfeed.tech/topics/windows.md>), [Script](<https://devfeed.tech/topics/script.md>), [App](<https://devfeed.tech/topics/app.md>)

Tags: [app](<https://devfeed.tech/tags/app.md>), [display](<https://devfeed.tech/tags/display.md>), [monitors](<https://devfeed.tech/tags/monitors.md>), [os](<https://devfeed.tech/tags/os.md>), [screen](<https://devfeed.tech/tags/screen.md>), [script](<https://devfeed.tech/tags/script.md>), [view](<https://devfeed.tech/tags/view.md>)

## AI overview

This blog entry describes Red View engine support for multiple monitors. It explains screen faces, virtual coordinates, scaling factors, monitor changes, and launching Red consoles and apps on different displays. View adjusts windows for displays with different DPI values, while Windows 7 uses a fallback API and some window-coordinate and child-window limitations remain.

## Source excerpt

Here is a short blog entry just to explain the newly added multiple monitor support to View engine. Screen faces Each connected monitor gets associated with a screen face in system/view/screens list. You can check that all monitors have been detected correctly using (two monitors in this case): >> length? system/view/screens == 2 Each screen's /offset indicates the screen position using virtual screen coordinates. The main screen gets a (0, 0) offset. All other screens are positioned relatively to that, in the same virtual space. Screen sizes are also expressed in virtual coordinates. Screen's scaling factor is exposed in the /data facet as a float value. Monitors properties changes and adding/removing detection are also supported, updating the screens list. Windows present on removed monitors are automatically closed by the OS. A simple display-geometry.red script is provided to show how screen faces reflect the monitors topology in that virtual space: That script will also output the screen details in the console: >> do %tests/displays-geometry.red 1 - offset: (0, 0) size: (3840, 2160) scaling: 150% 2 - offset: (1165, 2160) size: (1480, 320) scaling: 100% NB: I am using a little 11.9inch screen below my main display for developing this specific feature, as it takes very little extra space on my desk. Red apps on multiple screens You can now launch Red consoles and apps on any display, the app will open on the screen it was launched from, using the specific scaling value of that screen. A get-current-screen function has been provided to return the current screen (where the mouse cursor is currently located). When displays have different scaling factor or DPI, View will adjust the window and its content to fit that scaling factor. This also works when dragging a View window between displays with different DPI, the window and its content will resize accordingly. On Windows, the API View requires, are not supported on pre-Windows8 platforms. So a new Windows7 compilat