diff --git a/examples/screens.nim b/examples/screens.nim index f8edd0b..1b7c22a 100644 --- a/examples/screens.nim +++ b/examples/screens.nim @@ -1,8 +1,4 @@ import windy -when defined(windows) or defined(macosx): - # Screens API only currently supported on Windows and macOS - - let screens = getScreens() - for screen in screens: - echo screen +for screen in getScreens(): + echo screen diff --git a/src/windy/platforms/linux/x11.nim b/src/windy/platforms/linux/x11.nim index 5f84b36..bc0206a 100644 --- a/src/windy/platforms/linux/x11.nim +++ b/src/windy/platforms/linux/x11.nim @@ -625,6 +625,23 @@ proc `title=`*(window: Window, v: string) = window.handle.setProperty(xaNetWMIconName, xaUTF8String, 8, v) display.Xutf8SetWMProperties(window.handle, v, v, nil, 0, nil, nil, nil) +proc getScreens*(): seq[common.Screen] = + ## Returns the default X11 screen as primary. + init() + + let screen = display.screen(display.defaultScreen) + if screen == nil: + return + + let size = screen.size + result.add common.Screen( + left: 0, + top: 0, + right: size.x, + bottom: size.y, + primary: true + ) + proc contentScale*(window: Window): float32 = const defaultScreenDpi = 96.0