KDE server decoration
org_kde_kwin_server_decoration_manager
This interface allows to coordinate whether the server should create a server-side window decoration around a wl_surface representing a shell surface (wl_shell_surface or similar). By announcing support for this interface the server indicates that it supports server side decorations.
Use in conjunction with zxdg_decoration_manager_v1 is undefined.
create(id: new_id<org_kde_kwin_server_decoration>, surface: object<wl_surface>)
Argument | Type | Description |
---|---|---|
id | new_id<org_kde_kwin_server_decoration> | |
surface | object<wl_surface> |
When a client creates a server-side decoration object it indicates that it supports the protocol. The client is supposed to tell the server whether it wants server-side decorations or will provide client-side decorations.
If the client does not create a server-side decoration object for a surface the server interprets this as lack of support for this protocol and considers it as client-side decorated. Nevertheless a client-side decorated surface should use this protocol to indicate to the server that it does not want a server-side deco.
default_mode(mode: uint)
Argument | Type | Description |
---|---|---|
mode | uint | The default decoration mode applied to newly created server decorations. |
This event is emitted directly after binding the interface. It contains the default mode for the decoration. When a new server decoration object is created this new object will be in the default mode until the first request_mode is requested.
The server may change the default mode at any time.
Argument | Value | Description |
---|---|---|
None | 0 | Undecorated: The surface is not decorated at all, neither server nor client-side. An example is a popup surface which should not be decorated. |
Client | 1 | Client-side decoration: The decoration is part of the surface and the client. |
Server | 2 | Server-side decoration: The server embeds the surface into a decoration frame. |
org_kde_kwin_server_decoration
release()
request_mode(mode: uint)
Argument | Type | Description |
---|---|---|
mode | uint | The mode this surface wants to use. |
mode(mode: uint)
Argument | Type | Description |
---|---|---|
mode | uint | The decoration mode applied to the surface by the server. |
This event is emitted directly after the decoration is created and represents the base decoration policy by the server. E.g. a server which wants all surfaces to be client-side decorated will send Client, a server which wants server-side decoration will send Server.
The client can request a different mode through the decoration request. The server will acknowledge this by another event with the same mode. So even if a server prefers server-side decoration it's possible to force a client-side decoration.
The server may emit this event at any time. In this case the client can again request a different mode. It's the responsibility of the server to prevent a feedback loop.
Argument | Value | Description |
---|---|---|
None | 0 | Undecorated: The surface is not decorated at all, neither server nor client-side. An example is a popup surface which should not be decorated. |
Client | 1 | Client-side decoration: The decoration is part of the surface and the client. |
Server | 2 | Server-side decoration: The server embeds the surface into a decoration frame. |
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 | |
---|---|---|---|---|---|---|---|---|---|---|
org_kde_kwin_server_decoration_manager | x | 1 | 1 | 1 | 1 | x | x | x | x | 1 |