From ed23d6bc35ec24c212fcc074203a68f614fcdd00 Mon Sep 17 00:00:00 2001 From: Khoa Vo Date: Sat, 4 Jul 2026 16:09:20 +0700 Subject: [PATCH] fix: X11 injector sends 'u' instead of backspace in paste_via_clipboard paste_via_clipboard() called send_keycode(22, false) which sends evdev keycode 22 = KEY_U (letter 'u'), not KEY_BACKSPACE (evdev 14). This caused garbled output whenever Vietnamese Unicode text was pasted via clipboard (every VNI correction with accented characters). send_backspace() had the same wrong evdev keycode. --- protocol/src/x11_inject.rs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/protocol/src/x11_inject.rs b/protocol/src/x11_inject.rs index 6bc6b05..4a724f3 100644 --- a/protocol/src/x11_inject.rs +++ b/protocol/src/x11_inject.rs @@ -417,10 +417,10 @@ impl X11Injector { // (unlikely at this point, but be safe) self.handle_pending_events(); - // Send backspaces via XTest (X11 keycode 22 = backspace) + // Send backspaces via XTest (evdev 14 = KEY_BACKSPACE → X11 22) if backspaces > 0 { for _ in 0..backspaces { - self.send_keycode(22, false); + self.send_keycode(14, false); } } @@ -523,7 +523,7 @@ impl KeyInjector for X11Injector { } fn send_backspace(&self) -> InjectResult { - self.send_keycode(22, false); // X11 keycode 22 = backspace + self.send_keycode(14, false); // evdev 14 = KEY_BACKSPACE → X11 22 InjectResult::Success }