Feat: Support map keyboard mode in wayland

This commit is contained in:
asur4s
2022-09-03 23:30:41 -04:00
parent 925a9e43cb
commit 071720fe8b
2 changed files with 36 additions and 7 deletions

View File

@@ -314,7 +314,7 @@ pub mod service {
fn map_key(key: &enigo::Key) -> ResultType<evdev::Key> {
if let Some(k) = KEY_MAP.get(&key) {
log::trace!("mapkey {:?}, get {:?}", &key, &k);
log::info!("mapkey {:?}, get {:?}", &key, &k);
return Ok(k.clone());
} else {
match key {
@@ -350,6 +350,16 @@ pub mod service {
DataKeyboard::Sequence(_seq) => {
// ignore
}
DataKeyboard::KeyDown(enigo::Key::Raw(code)) => {
log::info!("keycode {:?}", *code - 8);
let down_event = InputEvent::new(EventType::KEY, *code - 8, 1);
allow_err!(keyboard.emit(&[down_event]));
}
DataKeyboard::KeyUp(enigo::Key::Raw(code)) => {
log::info!("keycode {:?}", *code - 8);
let down_event = InputEvent::new(EventType::KEY, *code - 8, 0);
allow_err!(keyboard.emit(&[down_event]));
}
DataKeyboard::KeyDown(key) => {
if let Ok(k) = map_key(key) {
let down_event = InputEvent::new(EventType::KEY, k.code(), 1);