vietc/protocol/src
Khoa Vo e35c034157 fix: replace XGrabKeyboard capture with XRecord extension
XGrabKeyboard returns success but never delivers events to a windowless
client on modern X11. XRecord is the standard way to capture keyboard
events globally — used by xdotool, xbindkeys, and input methods.

Architecture:
- XRecord: captures all keyboard events (no grab needed)
- XGrabKeyboard: still used to block original events from reaching apps
- XTest: injects modified events

Dynamically loads libXtst.so.6 for XRecord functions.
Events flow: XRecord callback → thread-safe queue → daemon event loop.
2026-06-26 09:52:04 +07:00
..
inject.rs Optimize typing performance and preserve casing on replaced syllables 2026-06-25 19:59:46 +07:00
lib.rs X11 capture: proper key tracking, direct clipboard, VNI default 2026-06-26 07:56:52 +07:00
monitor.rs Viet+ v0.1.0 - Vietnamese Input Method for Linux 2026-06-24 10:13:10 +07:00
uinput_monitor.rs Optimize typing performance and preserve casing on replaced syllables 2026-06-25 19:59:46 +07:00
wayland_im.rs Optimize typing performance and preserve casing on replaced syllables 2026-06-25 19:59:46 +07:00
x11_capture.rs fix: replace XGrabKeyboard capture with XRecord extension 2026-06-26 09:52:04 +07:00
x11_inject.rs fix: XEvent was a struct but X11 defines it as a union — all fields at offset 0 2026-06-26 09:38:25 +07:00