Smithay / smithay

A smithy for rusty wayland compositors
MIT License
1.74k stars 153 forks source link

Implemented & Planned Wayland protocols #781

Open PolyMeilex opened 1 year ago

PolyMeilex commented 1 year ago

Core

Protocol Implemented / Latest Version
wl_compositor :heavy_check_mark: 6
wl_subcompositor :heavy_check_mark: 1
wl_shm :heavy_check_mark: 1 / 2
wl_data_device_manager :heavy_check_mark: 3
wl_seat :heavy_check_mark: 9
wl_output :heavy_check_mark: 4

Stable

Protocol Implemented / Latest Version
wp_presentation :heavy_check_mark: 1
wp_viewporter :heavy_check_mark: 1
xdg_shell :heavy_check_mark: 6
linux-dmabuf-v1 :heavy_check_mark: 5
wp_tablet-v2 :construction: 1 (lacks pads implementaion)

Staging

Protocol Implemented / Latest Version
xdg_activation-v1 :heavy_check_mark: 1
wp_alpha_modifier-v1 :heavy_check_mark: 1
wp_drm_lease-v1 :heavy_check_mark: 1
wp_linux_drm_syncobj-v1 :construction: (#1356)
ext_session_lock-v1 :heavy_check_mark:
wp_single_pixel_buffer-v1 :construction: (#988, #719)
wp_content_type-v1 :heavy_check_mark: 1
ext_idle_notify-v1 :heavy_check_mark: 1
wp_tearing_control-v1 :construction: (#1325)
xwayland_shell-v1 :heavy_check_mark: 1
wp_fractional_scale-v1 :heavy_check_mark: 1
cursor-shape-v1 :heavy_check_mark: 1
ext-foreign-toplevel-list-v1
security-context-v1 :heavy_check_mark: 1
ext-transient-seat-v1
xdg-toplevel-drag-v1
xdg-dialog-windows-v1 :heavy_check_mark: 1
xdg-toplevel-icon-v1

Unstable

Protocol Implemented / Latest Version
wp_fullscreen_shell-v1 :small_red_triangle_down: Not used by any mainstream compositor
wp_idle_inhibit-v1 :heavy_check_mark: 1
wp_input_method-v2 :heavy_check_mark: 1
wp_input_timestamps-v1 :small_red_triangle_down: After 6y still used only by Weston
wp_keyboard_shortcuts_inhibit-v1 :heavy_check_mark: 1
wp_explicit_synchronization-v1 :small_red_triangle_down: Superseded by linux-drm-syncobj
wp_pointer_constraints-v1 :heavy_check_mark: 1
wp_pointer_gestures-v1 :heavy_check_mark: 3
wp_primary_selection-v1 :heavy_check_mark: 1
wp_relative_pointer-v1 :heavy_check_mark: 1
wp_text_input-v3 :heavy_check_mark: 1
xdg_decoration-v1 :heavy_check_mark: 1
xdg_foreign-v2 :heavy_check_mark: 1
xdg_output-v1 :heavy_check_mark: 3
xwayland_keyboard_grab-v1 :heavy_check_mark: 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

Feel free to edit this as needed.

rano-oss commented 1 year ago

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

Drakulix commented 1 year ago

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

PolyMeilex commented 1 year ago

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

rano-oss commented 1 year ago

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?

elinorbgr commented 1 year ago

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

PolyMeilex commented 1 year ago

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

Yep, will do that

bwidawsk commented 1 year ago

wl_compositor v5, subcompositor v1

orowith2os commented 1 year ago

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.

Drakulix commented 1 year ago

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

orowith2os commented 1 year ago

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

DemiMarie commented 11 months ago

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

orowith2os commented 11 months ago

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

DemiMarie commented 11 months ago

@orowith2os ah, okay

PolyMeilex commented 11 months ago

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.

DemiMarie commented 10 months ago

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.

i509VCB commented 10 months ago

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

DemiMarie commented 10 months ago

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:

chrisduerr commented 9 months ago

wp_drm_lease-v1 was merged recently it seems.

Drakulix commented 9 months ago

wp_drm_lease-v1 and cursor_shape-v1 added.

HackedOS commented 7 months ago

wlr-data-control added in #1551

megatux commented 2 months ago

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

Drakulix commented 2 months ago

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

megatux commented 2 months ago

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