Skip to content

GUI on Wayland #474

Description

@dekrain

I'm currently developing a plugin using CLAP. So far, the API seems clean and nice to work with. However. there is a lack of clarification in certain areas. Specifically, the GUI extension suggests support for Wayland plugin windows. Currently, it seems floating windows can be supported, as Wayland doesn't support embedding surfaces between clients. For floating windows, when I receive a clap_window_t in set_transient, what is the expected method of passing the window reference?

Looking around at existing projects, they all only seem to support X11 and not Wayland, so it seems no one has figured that out yet. Maybe Bitwig, but I haven't given it a closer look.

There's currently an experimental Wayland protocol xdg-foreign, which allows clients to export and import toplevels between different clients, for which the compositor generates a sharable string. It additionally provides a method to set the (transient) parent of a surface to the imported toplevel, which is exactly what we need.

The alternative would be to pass the toplevel surface directly, but that requires sharing a connection to the compositor wl_display as well, so it's a bit of a clunky solution. That would additionally allow for window embedding using sub-surfaces.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions