server_decoration protocol

org_kde_kwin_server_decoration_manager interface version 1

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.

Requests

create since version 0

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.

Arguments
id (new_id) (org_kde_kwin_server_decoration)
surface (object) (wl_surface)

Events

default_mode since version 0

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.

mode (uint)

The default decoration mode applied to newly created server decorations.


Enums

mode since version 0
Entries
  • None (0) since version 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) since version 0
    Client-side decoration: The decoration is part of the surface and the client.
  • Server (2) since version 0
    Server-side decoration: The server embeds the surface into a decoration frame.




org_kde_kwin_server_decoration interface version 1

Requests

release (destructor) since version 0

request_mode since version 0
Arguments
mode (uint)

The mode this surface wants to use.


Events

mode since version 0

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.

mode (uint)

The decoration mode applied to the surface by the server.


Enums

mode since version 0
Entries
  • None (0) since version 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) since version 0
    Client-side decoration: The decoration is part of the surface and the client.
  • Server (2) since version 0
    Server-side decoration: The server embeds the surface into a decoration frame.




SPDX-FileCopyrightText: 2015 Martin Gräßlin SPDX-License-Identifier: LGPL-2.1-or-later