You are not logged in.
Background:
There has been quite a bit of fragmentation in wayland desktop protocols as compositors (DEs) each support their own subset of wayland protocol extensions - sometimes only supporting their own in-house protocols. This makes writing "wayland clients" challenging as one might end up actually just creating a "gnome client" or "wlroots client" if they aren't careful about which protocols they rely on.
This has been getting better as different compositors are starting to adopt others' protocols rather than reinventing the wheel (I know of many examples of protocols shared between wlroots and kde). However I don't know of any resources for client software authors to know which protocols are provided by which compositors (like caniuse.com provides for web development).
Goal:
I'd like to find, or perhaps create, a reference describing which protocols are supported by major compositors. Getting the data is as easy as runnning `wayland info | grep interface` on each compositor. But installing every compositor / DE just for the sake of this check seems silly. So I'm curious first if such a reference already exists somewhere, or second, if users of various wayland compositors could run the command above and post the output here (in code tags). Please only do so for compositors that are not already listed by previous posts. Thanks.
Here's a rough draft:
https://jessemcclure.org/wayland-protocols
Last edited by Trilby (2023-02-24 17:45:45)
"UNIX is simple and coherent" - Dennis Ritchie; "GNU's Not Unix" - Richard Stallman
Offline
I literally had a pretty nice website open a few days ago whose name escapes me as of writing: https://wayland.app/protocols/
Offline
That just lists the protocols, there's no information there about which compositors support which ones ... or am I missing it?
EDIT: ah, at the very bottom of each protocols page there is a compositor support table - but that it is limited to a few compositors (admittedly it has all the big guns). And one would have to go through each and every protocol individually. I'd like to have a reference (e.g., a table) with all this data together. As is, figuring out which protocols are supported by a given compositor would be beyond tedious using that website.
EDIT 2: And I suppose I'm interested in looking up by interface name, not protocol. So to look up an interface on that protocol explorer, you'd have to first know which protocol it belonged to, and this is sometimes not obvious.
Last edited by Trilby (2023-02-24 16:40:08)
"UNIX is simple and coherent" - Dennis Ritchie; "GNU's Not Unix" - Richard Stallman
Offline
'wayland-info' requires 'wayland-utils', btw...
Output for 'sway':
interface: 'wl_shm', version: 1, name: 1
interface: 'wl_drm', version: 2, name: 2
interface: 'zwp_linux_dmabuf_v1', version: 4, name: 3
interface: 'wl_compositor', version: 5, name: 4
interface: 'wl_subcompositor', version: 1, name: 5
interface: 'wl_data_device_manager', version: 3, name: 6
interface: 'zwlr_gamma_control_manager_v1', version: 1, name: 7
interface: 'zxdg_output_manager_v1', version: 3, name: 8
interface: 'org_kde_kwin_idle', version: 1, name: 9
interface: 'ext_idle_notifier_v1', version: 1, name: 10
interface: 'zwp_idle_inhibit_manager_v1', version: 1, name: 11
interface: 'zwlr_layer_shell_v1', version: 4, name: 12
interface: 'xdg_wm_base', version: 2, name: 13
interface: 'zwp_tablet_manager_v2', version: 1, name: 14
interface: 'org_kde_kwin_server_decoration_manager', version: 1, name: 15
interface: 'zxdg_decoration_manager_v1', version: 1, name: 16
interface: 'zwp_relative_pointer_manager_v1', version: 1, name: 17
interface: 'zwp_pointer_constraints_v1', version: 1, name: 18
interface: 'wp_presentation', version: 1, name: 19
interface: 'zwlr_output_manager_v1', version: 4, name: 20
interface: 'zwlr_output_power_manager_v1', version: 1, name: 21
interface: 'zwp_input_method_manager_v2', version: 1, name: 22
interface: 'zwp_text_input_manager_v3', version: 1, name: 23
interface: 'zwlr_foreign_toplevel_manager_v1', version: 3, name: 24
interface: 'ext_session_lock_manager_v1', version: 1, name: 25
interface: 'wp_drm_lease_device_v1', version: 1, name: 26
interface: 'zwlr_export_dmabuf_manager_v1', version: 1, name: 27
interface: 'zwlr_screencopy_manager_v1', version: 3, name: 28
interface: 'zwlr_data_control_manager_v1', version: 2, name: 29
interface: 'zwp_primary_selection_device_manager_v1', version: 1, name: 30
interface: 'wp_viewporter', version: 1, name: 31
interface: 'wp_single_pixel_buffer_manager_v1', version: 1, name: 32
interface: 'zxdg_exporter_v1', version: 1, name: 33
interface: 'zxdg_importer_v1', version: 1, name: 34
interface: 'zxdg_exporter_v2', version: 1, name: 35
interface: 'zxdg_importer_v2', version: 1, name: 36
interface: 'xdg_activation_v1', version: 1, name: 37
interface: 'zwp_virtual_keyboard_manager_v1', version: 1, name: 38
interface: 'zwlr_virtual_pointer_manager_v1', version: 2, name: 39
interface: 'zwlr_input_inhibit_manager_v1', version: 1, name: 40
interface: 'zwp_keyboard_shortcuts_inhibit_manager_v1', version: 1, name: 41
interface: 'wl_seat', version: 8, name: 42
interface: 'zwp_pointer_gestures_v1', version: 3, name: 43
interface: 'wl_output', version: 4, name: 44Output for 'wayfire':
interface: 'wl_shm', version: 1, name: 1
interface: 'wl_drm', version: 2, name: 2
interface: 'zwp_linux_dmabuf_v1', version: 4, name: 3
interface: 'wl_compositor', version: 5, name: 4
interface: 'wl_subcompositor', version: 1, name: 5
interface: 'wl_data_device_manager', version: 3, name: 6
interface: 'zwp_primary_selection_device_manager_v1', version: 1, name: 7
interface: 'zwlr_data_control_manager_v1', version: 2, name: 8
interface: 'zwlr_output_manager_v1', version: 4, name: 9
interface: 'zwlr_output_power_manager_v1', version: 1, name: 10
interface: 'xdg_wm_base', version: 2, name: 11
interface: 'zwlr_layer_shell_v1', version: 4, name: 12
interface: 'zwp_tablet_manager_v2', version: 1, name: 13
interface: 'wl_seat', version: 8, name: 14
interface: 'zwlr_screencopy_manager_v1', version: 3, name: 15
interface: 'zwlr_gamma_control_manager_v1', version: 1, name: 16
interface: 'zwlr_export_dmabuf_manager_v1', version: 1, name: 17
interface: 'zxdg_output_manager_v1', version: 3, name: 18
interface: 'zwlr_input_inhibit_manager_v1', version: 1, name: 19
interface: 'org_kde_kwin_server_decoration_manager', version: 1, name: 20
interface: 'zxdg_decoration_manager_v1', version: 1, name: 21
interface: 'zwp_virtual_keyboard_manager_v1', version: 1, name: 22
interface: 'zwlr_virtual_pointer_manager_v1', version: 2, name: 23
interface: 'zwp_idle_inhibit_manager_v1', version: 1, name: 24
interface: 'org_kde_kwin_idle', version: 1, name: 25
interface: 'zwlr_foreign_toplevel_manager_v1', version: 3, name: 26
interface: 'zwp_pointer_gestures_v1', version: 3, name: 27
interface: 'zwp_relative_pointer_manager_v1', version: 1, name: 28
interface: 'zwp_pointer_constraints_v1', version: 1, name: 29
interface: 'zwp_input_method_manager_v2', version: 1, name: 30
interface: 'zwp_text_input_manager_v3', version: 1, name: 31
interface: 'wp_presentation', version: 1, name: 32
interface: 'wp_viewporter', version: 1, name: 33
interface: 'zxdg_exporter_v1', version: 1, name: 34
interface: 'zxdg_importer_v1', version: 1, name: 35
interface: 'zxdg_exporter_v2', version: 1, name: 36
interface: 'zxdg_importer_v2', version: 1, name: 37
interface: 'zwf_shell_manager_v2', version: 1, name: 38
interface: 'gtk_shell1', version: 3, name: 39
interface: 'wl_output', version: 4, name: 40Output for 'hyprland':
interface: 'wl_shm', version: 1, name: 1
interface: 'wl_drm', version: 2, name: 2
interface: 'zwp_linux_dmabuf_v1', version: 4, name: 3
interface: 'wl_compositor', version: 5, name: 4
interface: 'wl_subcompositor', version: 1, name: 5
interface: 'wl_data_device_manager', version: 3, name: 6
interface: 'zwlr_export_dmabuf_manager_v1', version: 1, name: 7
interface: 'zwlr_screencopy_manager_v1', version: 3, name: 8
interface: 'zwlr_data_control_manager_v1', version: 2, name: 9
interface: 'zwlr_gamma_control_manager_v1', version: 1, name: 10
interface: 'zwp_primary_selection_device_manager_v1', version: 1, name: 11
interface: 'wp_viewporter', version: 1, name: 12
interface: 'zwlr_output_power_manager_v1', version: 1, name: 13
interface: 'xdg_wm_base', version: 5, name: 14
interface: 'wl_seat', version: 8, name: 15
interface: 'wp_presentation', version: 1, name: 16
interface: 'org_kde_kwin_idle', version: 1, name: 17
interface: 'zwlr_layer_shell_v1', version: 4, name: 18
interface: 'org_kde_kwin_server_decoration_manager', version: 1, name: 19
interface: 'zxdg_decoration_manager_v1', version: 1, name: 20
interface: 'zxdg_output_manager_v1', version: 3, name: 21
interface: 'zwlr_output_manager_v1', version: 4, name: 22
interface: 'zwlr_input_inhibit_manager_v1', version: 1, name: 23
interface: 'zwp_keyboard_shortcuts_inhibit_manager_v1', version: 1, name: 24
interface: 'zext_workspace_manager_v1', version: 1, name: 25
interface: 'zwp_pointer_constraints_v1', version: 1, name: 26
interface: 'zwp_relative_pointer_manager_v1', version: 1, name: 27
interface: 'zwp_virtual_keyboard_manager_v1', version: 1, name: 28
interface: 'zwlr_virtual_pointer_manager_v1', version: 2, name: 29
interface: 'zwlr_foreign_toplevel_manager_v1', version: 3, name: 30
interface: 'wp_drm_lease_device_v1', version: 1, name: 31
interface: 'zwp_tablet_manager_v2', version: 1, name: 32
interface: 'zwp_idle_inhibit_manager_v1', version: 1, name: 33
interface: 'zxdg_exporter_v1', version: 1, name: 34
interface: 'zxdg_importer_v1', version: 1, name: 35
interface: 'zxdg_exporter_v2', version: 1, name: 36
interface: 'zxdg_importer_v2', version: 1, name: 37
interface: 'zwp_pointer_gestures_v1', version: 3, name: 38
interface: 'zwp_text_input_manager_v3', version: 1, name: 39
interface: 'zwp_input_method_manager_v2', version: 1, name: 40
interface: 'xdg_activation_v1', version: 1, name: 41
interface: 'ext_session_lock_manager_v1', version: 1, name: 42
interface: 'wp_single_pixel_buffer_manager_v1', version: 1, name: 43
interface: 'hyprland_toplevel_export_manager_v1', version: 2, name: 45
interface: 'wp_fractional_scale_manager_v1', version: 1, name: 46
interface: 'wl_output', version: 4, name: 47Last edited by dogknowsnx (2023-02-24 16:52:36)