Ei protocol support

- Use the configured keyboard layout, track ei seats to reconfigure their keyboards
- DBus interface
- Disambiguate input devices per backend instance
- Add support for `ei_keysym` and `ei_text`
- Act as input method for ei_text UTF-8 injection
- Create a region per output for abosolute pointer position
- Map ei region for touchscreen emulation
- Release pointer buttons and keys on removal
- Send modifiers to EI connections
This commit is contained in:
Hojjat 2026-06-05 10:42:19 -06:00 • committed by Ian Douglas Scott
parent e939a72b30
commit f4ee52c46a
15 changed files with 1092 additions and 218 deletions

View file

@ -115,7 +115,7 @@ impl State {
&self.common.display_handle,
None,
std::iter::empty::<(OsString, OsString)>(),
std::iter::empty::<OsString>(),
["-enable-ei-portal"],
true,
Stdio::null(),
Stdio::null(),
@ -394,6 +394,7 @@ impl Common {
sym: Keysym,
code: Keycode,
state: KeyState,
modifiers: ModifiersState,
serial: Serial,
time: u32,
) {
@ -418,7 +419,6 @@ impl Common {
.last_active()
.get_keyboard()
.unwrap();
let modifiers = keyboard.modifier_state();
let is_modifier = sym.is_modifier_key();
let xstate = self.xwayland_state.as_mut().unwrap();