smithay
smithay copied to clipboard
Implemented & Planned Wayland protocols
- ✅ - Done
- 🔻 - Low priority / obscure / superseded / mostly unused in the ecosystem
- 🚧 - WIP
Core
| Interface | Implemented / Latest Version | |
|---|---|---|
| wl_compositor | ✅ | 6 |
| wl_subcompositor | ✅ | 1 |
| wl_shm | ✅ | 2 |
| wl_data_device_manager | ✅ | 3 |
| wl_seat | ✅ | 9/10 |
| wl_output | ✅ | 4 |
| wl_fixes | 🚧 | #1428 |
Stable
| Protocol | Implemented / Latest Version | |
|---|---|---|
| linux-dmabuf-v1 | ✅ | 5 |
| presentation-time-v1 | ✅ | 2 |
| tablet-v2 | 🚧 | 1 / 2 (lacks pads implementation) |
| viewporter-v1 | ✅ | 2 |
| xdg-shell-v1 | ✅ | 6 / 7 |
Staging
| Protocol | Implemented / Latest Version | |
|---|---|---|
| alpha-modifier-v1 | ✅ | 1 |
| color-management-v1 | 🚧 | #1143 |
| color-representation-v1 | ||
| commit-timing-v1 | ✅ | 1 |
| content-type-v1 | ✅ | 1 |
| cursor-shape-v1 | ✅ | 2 |
| drm-lease-v1 | ✅ | 1 |
| ext-background-effect | 🚧 | #1758 |
| ext-data-control-v1 | ✅ | 1 |
| ext-foreign-toplevel-list-v1 | ✅ | 1 |
| ext-idle-notify-v1 | ✅ | 2 |
| ext-image-capture-source-v1 | ||
| ext-image-copy-capture-v1 | ||
| ext-session-lock-v1 | ✅ | 1 |
| ext-transient-seat-v1 | ||
| ext-workspace-v1 | ||
| fifo-v1 | ✅ | 1 |
| fractional-scale-v1 | ✅ | 1 |
| linux-drm-syncobj-v1 | ✅ | 1 |
| pointer-warp-v1 | 🚧 | #1757 |
| security-context-v1 | ✅ | 1 |
| single-pixel-buffer-v1 | ✅ | 1 |
| tearing-control-v1 | 🚧 | #1325 |
| xdg-activation-v1 | ✅ | 1 |
| xdg-dialog-v1 | ✅ | 1 |
| xdg-system-bell-v1 | ✅ | 1 |
| xdg-toplevel-drag-v1 | ||
| xdg-toplevel-icon-v1 | ✅ | 1 |
| xdg-toplevel-tag-v1 | ✅ | 1 |
| xwayland-shell-v1 | ✅ | 1 |
Unstable
| Protocol | Implemented / Latest Version | |
|---|---|---|
| wp_fullscreen_shell-v1 | 🔻 | Not used by any mainstream compositor |
| wp_idle_inhibit-v1 | ✅ | 1 |
| wp_input_method-v2 | ✅ | 1 |
| wp_input_timestamps-v1 | 🔻 | After 6y still used only by Weston |
| wp_keyboard_shortcuts_inhibit-v1 | ✅ | 1 |
| wp_explicit_synchronization-v1 | 🔻 | Superseded by linux-drm-syncobj |
| wp_pointer_constraints-v1 | ✅ | 1 |
| wp_pointer_gestures-v1 | ✅ | 3 |
| wp_primary_selection-v1 | ✅ | 1 |
| wp_relative_pointer-v1 | ✅ | 1 |
| wp_text_input-v3 | ✅ | 1 |
| xdg_decoration-v1 | ✅ | 1 |
| xdg_foreign-v2 | ✅ | 1 |
| xdg_output-v1 | ✅ | 3 |
| xwayland_keyboard_grab-v1 | ✅ | 1 |
Unstandardised
| Protocol | Implemented / Latest Version | |
|---|---|---|
| wlr-layer-shell-v1 | :heavy_check_mark: | 4 / 5 |
| KDE server-decoration | :heavy_check_mark: | 1 |
| virtual-keyboard-v1 | :heavy_check_mark: | 1 |
| wlr-data-control-v1 | :heavy_check_mark: | 2 |
| wlr-input-inhibitor-v1 | 🔻 | The main use case has been replaced by ext-session-lock |
Feel free to edit this as needed.
input-method heavy_check_mark 2 text-input heavy_check_mark 3 virtual-keyboard heavy_check_mark 1 I cannot edit, but these are the correct versions
input-method heavy_check_mark 2 text-input heavy_check_mark 3 virtual-keyboard heavy_check_mark 1
I cannot edit, but these are the correct versions
Thanks, fixed :)
Well those are version 1, of second/third revision of unstable protocols.
Agreed, but I think most people refer to the revisions _('')/ ref: https://gitlab.freedesktop.org/wayland/wayland-protocols/-/issues/39#implementation-matrix Maybe have both?
Yeah, maybe have a column "protocol revision", and a column "global version" ?
Yeah, maybe have a column "protocol revision", and a column "global version" ?
Yep, will do that
wl_compositor v5, subcompositor v1
Should the KDE SSD and virtual-keyboard-v1 protocols be supported still? We have xdg-decoration and the v2 of the virtual keyboard protocols already.
If clients don't support them, it would probably be better to fix the clients than work around their issues.
Especially kde-decoration is incredibly small and not really a maintenance burden, but (funnily enough) GTK of all toolkits has not yet moved to xdg-decoration.
There is an open PR to fix that, but that one hasn't received attention in years...
For readers: I've made a PR upstream to fix the issue, and in the process, caused the world to burn:
https://gitlab.gnome.org/GNOME/gtk/-/merge_requests/6161
Is wp_explicit_synchronization-v1 really obscure? The only user is likely to be Mesa but Mesa is used by just about everything.
@DemiMarie the ecosystem is still implicitly synced right now, so the v1 protocol is mostly irrelevant - time would be better put towards the v2 protocol and migrating to that.
@orowith2os ah, okay
My reasoning when assigning the low priority icons was "are there any compositors that use this protocol", and information on that was gathered by my wlprobe tool (basically wayland-info but outputs JSON).
Output of those probes is being published in compositor support section of wayland.app eg. https://wayland.app/protocols/linux-explicit-synchronization-unstable-v1#compositor-support
So unless the global is not visible to regular clients (like xwayland_keyboard_grab-v1) this basically means that no mainstream compositor advertises this global. If that's not the case, I might need to remove that badge.
What about wlr_layer_shell? Despite its name, it is also supported by Mir and KDE, and it allows desktop components (like menus and bars) to be implemented outside of the compositor so it is very useful.
What about wlr_layer_shell? Despite its name, it is also supported by Mir and KDE, and it allows desktop components (like menus and bars) to be implemented outside of the compositor so it is very useful.
Already implemented in smithay and has been for a while
What about wlr_layer_shell? Despite its name, it is also supported by Mir and KDE, and it allows desktop components (like menus and bars) to be implemented outside of the compositor so it is very useful.
Already implemented in smithay and has been for a while
Good to know! :woman_facepalming:
wp_drm_lease-v1 was merged recently it seems.
wp_drm_lease-v1 and cursor_shape-v1 added.
wlr-data-control added in #1551
Is wlr input inhibitor planned? I tried today swaylock-effects and requires it (on Niri).
Is wlr input inhibitor planned? I tried today swaylock-effects and requires it (on Niri).
No. The main use case of this protocol has been replaced by ext-session-lock. swaylock-effects should be updated to use the new protocol (as does upstream swaylock).
Oh, cool, thanks. Seems there are commits on that project to use the newer protocol. Probably not released yet. Regards