smithay icon indicating copy to clipboard operation
smithay copied to clipboard

Implemented & Planned Wayland protocols

Open PolyMeilex opened this issue 3 years ago • 25 comments
trafficstars

  • ✅ - 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.

PolyMeilex avatar Oct 13 '22 21:10 PolyMeilex

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

rano-oss avatar Dec 16 '22 23:12 rano-oss

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 :)

Drakulix avatar Dec 17 '22 12:12 Drakulix

Well those are version 1, of second/third revision of unstable protocols.

PolyMeilex avatar Dec 17 '22 13:12 PolyMeilex

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?

rano-oss avatar Dec 17 '22 18:12 rano-oss

Yeah, maybe have a column "protocol revision", and a column "global version" ?

elinorbgr avatar Dec 19 '22 09:12 elinorbgr

Yeah, maybe have a column "protocol revision", and a column "global version" ?

Yep, will do that

PolyMeilex avatar Dec 19 '22 13:12 PolyMeilex

wl_compositor v5, subcompositor v1

bwidawsk avatar Apr 24 '23 18:04 bwidawsk

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.

orowith2os avatar Jun 30 '23 22:06 orowith2os

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...

Drakulix avatar Jun 30 '23 22:06 Drakulix

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

orowith2os avatar Jul 02 '23 05:07 orowith2os

Is wp_explicit_synchronization-v1 really obscure? The only user is likely to be Mesa but Mesa is used by just about everything.

DemiMarie avatar Aug 12 '23 19:08 DemiMarie

@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 avatar Aug 12 '23 19:08 orowith2os

@orowith2os ah, okay

DemiMarie avatar Aug 12 '23 19:08 DemiMarie

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.

PolyMeilex avatar Aug 12 '23 21:08 PolyMeilex

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.

DemiMarie avatar Aug 17 '23 23:08 DemiMarie

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

i509VCB avatar Aug 17 '23 23:08 i509VCB

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:

DemiMarie avatar Aug 17 '23 23:08 DemiMarie

wp_drm_lease-v1 was merged recently it seems.

chrisduerr avatar Oct 11 '23 01:10 chrisduerr

wp_drm_lease-v1 and cursor_shape-v1 added.

Drakulix avatar Oct 11 '23 11:10 Drakulix

wlr-data-control added in #1551

HackedOS avatar Dec 05 '23 03:12 HackedOS

Is wlr input inhibitor planned? I tried today swaylock-effects and requires it (on Niri).

megatux avatar Apr 15 '24 13:04 megatux

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).

Drakulix avatar Apr 15 '24 13:04 Drakulix

Oh, cool, thanks. Seems there are commits on that project to use the newer protocol. Probably not released yet. Regards

megatux avatar Apr 15 '24 14:04 megatux