diff --git a/src/server/input_service.rs b/src/server/input_service.rs index e3ac41a59..0154da085 100644 --- a/src/server/input_service.rs +++ b/src/server/input_service.rs @@ -822,6 +822,11 @@ fn legacy_keyboard_mode(evt: &KeyEvent) { } fn translate_keyboard_mode(evt: &KeyEvent) { + // Caps affects the keycode map of the peer system(Linux). + let mut en = ENIGO.lock().unwrap(); + if en.get_key_state(Key::CapsLock){ + rdev_key_click(RdevKey::CapsLock); + } let chr = char::from_u32(evt.chr()).unwrap_or_default(); if evt.down { KBD_CONTEXT.lock().unwrap().unicode_char_down(chr).expect("unicode_char_down error"); diff --git a/src/ui/remote.rs b/src/ui/remote.rs index dad3e9ae0..6625c83fa 100644 --- a/src/ui/remote.rs +++ b/src/ui/remote.rs @@ -1122,6 +1122,10 @@ impl Handler { if key == RdevKey::AltGr || evt.scan_code == 541 { return; } + // Caps affects the keycode map of the peer system(Linux). + if key == RdevKey::CapsLock { + return; + } dbg!(key); self.map_keyboard_mode(down_or_up, key, None); }