wlroots/include/wlr/types
Brian Ashworth f2d3b1000f Introduce wlr_keyboard_group
A wlr_keyboard_group allows for multiple keyboard devices to be
combined into one logical keyboard. Each keyboard device can only be
added to one keyboard group. This helps with the situation where one
physical keyboard is exposed as multiple keyboard devices. It is up to
the compositors on how they group keyboards together, if at all.

Since a wlr_keyboard_group is one logical keyboard, the keys are a set.
This means that if a key is pressed on multiple keyboard devices, the
key event will only be emitted once, but the internal state will count
the number of devices that the key is pressed on. Likewise, the key
release will not be emitted until the key is released from all devices.
If the compositor wants access to which keys are pressed and released
on each keyboard device, the events for those devices can be listened
to, as they currently are, in addition to the group keyboard's events.

Also, all keyboard devices in the group must share the same keymap. If
the keymap's differ, the keyboard device will not be able to be added
to the group. Once in the group, if the keymap or effective layout for
one keyboard device changes, it will be synced to all keyboard devices
in the group. The repeat info and keyboard modifiers are also synced
2019-11-05 20:05:49 +01:00
..
meson.build Introduce wlr_keyboard_group 2019-11-05 20:05:49 +01:00
wlr_box.h Remove all wayland-server.h includes 2019-07-27 15:49:32 -04:00
wlr_buffer.h Remove all wayland-server.h includes 2019-07-27 15:49:32 -04:00
wlr_compositor.h Remove all wayland-server.h includes 2019-07-27 15:49:32 -04:00
wlr_cursor.h Remove all wayland-server.h includes 2019-07-27 15:49:32 -04:00
wlr_data_control_v1.h Remove all wayland-server.h includes 2019-07-27 15:49:32 -04:00
wlr_data_device.h Remove all wayland-server.h includes 2019-07-27 15:49:32 -04:00
wlr_export_dmabuf_v1.h Remove all wayland-server.h includes 2019-07-27 15:49:32 -04:00
wlr_foreign_toplevel_management_v1.h Remove all wayland-server.h includes 2019-07-27 15:49:32 -04:00
wlr_fullscreen_shell_v1.h Remove all wayland-server.h includes 2019-07-27 15:49:32 -04:00
wlr_gamma_control_v1.h Remove all wayland-server.h includes 2019-07-27 15:49:32 -04:00
wlr_gtk_primary_selection.h Remove all wayland-server.h includes 2019-07-27 15:49:32 -04:00
wlr_idle.h Remove all wayland-server.h includes 2019-07-27 15:49:32 -04:00
wlr_idle_inhibit_v1.h Remove all wayland-server.h includes 2019-07-27 15:49:32 -04:00
wlr_input_device.h s/lid_switch/switch_device 2019-03-19 22:45:58 -04:00
wlr_input_inhibitor.h Remove all wayland-server.h includes 2019-07-27 15:49:32 -04:00
wlr_input_method_v2.h Remove all wayland-server.h includes 2019-07-27 15:49:32 -04:00
wlr_keyboard.h Introduce wlr_keyboard_group 2019-11-05 20:05:49 +01:00
wlr_keyboard_group.h Introduce wlr_keyboard_group 2019-11-05 20:05:49 +01:00
wlr_layer_shell_v1.h layer_shell: set layer of existing surface 2019-10-16 09:41:13 -04:00
wlr_linux_dmabuf_v1.h Initial pass on API stability guarantees 2018-07-29 19:20:34 -04:00
wlr_list.h Initial pass on API stability guarantees 2018-07-29 19:20:34 -04:00
wlr_matrix.h Remove all wayland-server.h includes 2019-07-27 15:49:32 -04:00
wlr_output.h output: Add commit sequence number 2019-10-22 10:41:32 -04:00
wlr_output_damage.h output: disambiguate the two types of damage 2019-04-26 10:08:08 -06:00
wlr_output_layout.h Unbreak build with '-Wstrict-prototypes' 2019-02-28 16:41:23 +01:00
wlr_output_management_v1.h Remove all wayland-server.h includes 2019-07-27 15:49:32 -04:00
wlr_pointer.h Remove all wayland-server.h includes 2019-07-27 15:49:32 -04:00
wlr_pointer_constraints_v1.h Remove all wayland-server.h includes 2019-07-27 15:49:32 -04:00
wlr_pointer_gestures_v1.h Remove all wayland-server.h includes 2019-07-27 15:49:32 -04:00
wlr_presentation_time.h presentation_feedback: add the sampled state 2019-09-19 19:44:19 +03:00
wlr_primary_selection.h Remove all wayland-server.h includes 2019-07-27 15:49:32 -04:00
wlr_primary_selection_v1.h Remove all wayland-server.h includes 2019-07-27 15:49:32 -04:00
wlr_region.h Implement pointer-constraints protocol in wlroots and rootston 2018-09-18 10:14:33 +02:00
wlr_relative_pointer_v1.h Remove all wayland-server.h includes 2019-07-27 15:49:32 -04:00
wlr_screencopy_v1.h screencopy: Implement damage reporting 2019-10-22 10:41:32 -04:00
wlr_seat.h wlr_seat_touch: Destroy the touchpoint on client destroy 2019-09-14 16:19:07 +03:00
wlr_server_decoration.h Remove all wayland-server.h includes 2019-07-27 15:49:32 -04:00
wlr_surface.h Remove all wayland-server.h includes 2019-07-27 15:49:32 -04:00
wlr_switch.h Remove all wayland-server.h includes 2019-07-27 15:49:32 -04:00
wlr_tablet_pad.h Remove all wayland-server.h includes 2019-07-27 15:49:32 -04:00
wlr_tablet_tool.h Clean up wayland backend tablet support 2019-09-26 19:41:19 +03:00
wlr_tablet_v2.h Remove all wayland-server.h includes 2019-07-27 15:49:32 -04:00
wlr_text_input_v3.h Remove all wayland-server.h includes 2019-07-27 15:49:32 -04:00
wlr_touch.h Remove all wayland-server.h includes 2019-07-27 15:49:32 -04:00
wlr_virtual_keyboard_v1.h Remove all wayland-server.h includes 2019-07-27 15:49:32 -04:00
wlr_xcursor_manager.h Remove all wayland-server.h includes 2019-07-27 15:49:32 -04:00
wlr_xdg_decoration_v1.h Remove all wayland-server.h includes 2019-07-27 15:49:32 -04:00
wlr_xdg_output_v1.h Remove all wayland-server.h includes 2019-07-27 15:49:32 -04:00
wlr_xdg_shell.h wlr_xdg_toplevel: reparent on parent unmap 2019-08-15 11:19:06 +03:00
wlr_xdg_shell_v6.h wlr_xdg_popup: grab touch events alongside pointer and keyboard 2019-08-12 09:31:49 +09:00