This protocol provides a subset of the
wlr-foreign-toplevel-management protocol. In particular this protocol provides a way for privileged clients to get a handle to a toplevel surface that may exist in another process and use the handle in other extension protocols.
This protocol is intentionally minimal as further information to describe a toplevel should be implemented with extension interfaces. For example, a protocol which may manage toplevels would use the handles defined in this protocol to reference the toplevel to set the state of. Another example use case is specifying a toplevel to capture the content of with a screencopy protocol.
An extension protocol to describe the state of a toplevel is being drafted here and uses this protocol: !196
Features provided in the
wlr-foreign-toplevel-management, and the proposed
ext-workspace protocols will be added in a future extension protocol and will use the handle type defined in this protocol.
Client: lswt: https://git.sr.ht/~leon_plickat/lswt/tree/toplevel-info
Server: cosmic: https://github.com/pop-os/cosmic-comp/pull/76
From the past revisions of the protocol, the following has been done:
- Add destructor requests to all objects
- Describe how extension protocols should interface with the base protocol
- Restrict the global to a single instance per client.
- Forbid having toplevel handles outlive the global (the handles become inert anyways)
- RFC 2119ify the protocol documentation