XKB layouts (Russian, Gujarati Phonetic, etc.) work: Deskflow sends a KeyID and we inject Unicode or a physical shortcut.
IME layouts such as GNOME IBus Gujarati (Inscript) do not. The host IME consumes the key before Deskflow/libei. Input Leap skips keyid == 0 (NoSymbol), so the Android client never receives a KeyDown. Logcat from a 2026-08-26 device test showed ~35s on the phone with zero letter events, then Phonetic 0x61 (a) and Russian 0x444 (ф) plus Ctrl+A working.
This is not a client keymap gap. Input Leaf cannot invent keys the server never sent.
Workaround: use an XKB source (e.g. Indian → Gujarati / in(guj)), not IBus gu. Restart Deskflow after switching.
Possible later work (host/Deskflow): forward physical KeyButton even when the keysym is NoSymbol, or capture keys before the IME. Same class of failure for other IBus/fcitx Indic (and similar) layouts.
Tracked out of #5 / #22 so that PR can merge.
XKB layouts (Russian, Gujarati Phonetic, etc.) work: Deskflow sends a KeyID and we inject Unicode or a physical shortcut.
IME layouts such as GNOME IBus Gujarati (Inscript) do not. The host IME consumes the key before Deskflow/libei. Input Leap skips
keyid == 0(NoSymbol), so the Android client never receives aKeyDown. Logcat from a 2026-08-26 device test showed ~35s on the phone with zero letter events, then Phonetic0x61(a) and Russian0x444(ф) plus Ctrl+A working.This is not a client keymap gap. Input Leaf cannot invent keys the server never sent.
Workaround: use an XKB source (e.g. Indian → Gujarati /
in(guj)), not IBusgu. Restart Deskflow after switching.Possible later work (host/Deskflow): forward physical
KeyButtoneven when the keysym isNoSymbol, or capture keys before the IME. Same class of failure for other IBus/fcitx Indic (and similar) layouts.Tracked out of #5 / #22 so that PR can merge.