Weston desktop shell
weston_desktop_shell
Traditional user interfaces can rely on this interface to define the foundations of typical desktops. Currently it's possible to set up background, panels and locking surfaces.
set_background(output: object<wl_output>, surface: object<wl_surface>)
Argument | Type | Description |
---|---|---|
output | object<wl_output> | |
surface | object<wl_surface> |
set_panel(output: object<wl_output>, surface: object<wl_surface>)
Argument | Type | Description |
---|---|---|
output | object<wl_output> | |
surface | object<wl_surface> |
set_lock_surface(surface: object<wl_surface>)
Argument | Type | Description |
---|---|---|
surface | object<wl_surface> |
unlock()
set_grab_surface(surface: object<wl_surface>)
Argument | Type | Description |
---|---|---|
surface | object<wl_surface> |
The surface set by this request will receive a fake pointer.enter event during grabs at position 0, 0 and is expected to set an appropriate cursor image as described by the grab_cursor event sent just before the enter event.
desktop_ready()
Tell the server, that enough desktop elements have been drawn to make the desktop look ready for use. During start-up, the server can wait for this request with a black screen before starting to fade in the desktop, for instance. If the client parts of a desktop take a long time to initialize, we avoid showing temporary garbage.
set_panel_position(position: uint)
Argument | Type | Description |
---|---|---|
position | uint |
Tell the shell which side of the screen the panel is located. This is so that new windows do not overlap the panel and maximized windows maximize properly.
configure(edges: uint, surface: object<wl_surface>, width: int, height: int)
Argument | Type | Description |
---|---|---|
edges | uint | |
surface | object<wl_surface> | |
width | int | |
height | int |
prepare_lock_surface()
Tell the client we want it to create and set the lock surface, which is a GUI asking the user to unlock the screen. The lock surface is announced with 'set_lock_surface'. Whether or not the client actually implements locking, it MUST send 'unlock' request to let the normal desktop resume.
grab_cursor(cursor: uint)
Argument | Type | Description |
---|---|---|
cursor | uint |
This event will be sent immediately before a fake enter event on the grab surface.
cursor { none, resize_top, resize_bottom, arrow, resize_left, resize_top_left, resize_bottom_left, move, resize_right, resize_top_right, resize_bottom_right, busy }
Argument | Value | Description |
---|---|---|
none | 0 | |
resize_top | 1 | |
resize_bottom | 2 | |
arrow | 3 | |
resize_left | 4 | |
resize_top_left | 5 | |
resize_bottom_left | 6 | |
move | 7 | |
resize_right | 8 | |
resize_top_right | 9 | |
resize_bottom_right | 10 | |
busy | 11 |
error { invalid_argument }
Argument | Value | Description |
---|---|---|
invalid_argument | 0 | an invalid argument was provided in a request |
weston_screensaver
Only one client can bind this interface at a time.
set_surface(surface: object<wl_surface>, output: object<wl_output>)
Argument | Type | Description |
---|---|---|
surface | object<wl_surface> | |
output | object<wl_output> |
A screensaver surface is normally hidden, and only visible after an idle timeout.
Compositor Support
Mutter 46 | KWin 6.2 | Sway 1.9 | COSMIC 1.0.0 | Hyprland 0.42.0 | niri 0.1.8 | Weston 13 | Mir 2.18 | GameScope 3.15.14 | Jay 1.7.0 | |
---|---|---|---|---|---|---|---|---|---|---|
weston_desktop_shell | x | x | x | x | x | x | 1 | x | x | x |