From d806d419c01475393f2c0446e21223a1bd6ae446 Mon Sep 17 00:00:00 2001 From: Federico Terzi <federicoterzi96@gmail.com> Date: Tue, 12 Apr 2022 21:38:29 +0200 Subject: [PATCH] feat(core): wire up alternative x11 backend --- espanso/src/cli/worker/config.rs | 2 ++ .../cli/worker/engine/dispatch/executor/clipboard_injector.rs | 2 ++ .../src/cli/worker/engine/dispatch/executor/event_injector.rs | 2 +- espanso/src/cli/worker/engine/dispatch/executor/key_injector.rs | 2 +- espanso/src/cli/worker/engine/dispatch/executor/mod.rs | 1 + espanso/src/patch/patches/mod.rs | 1 + 6 files changed, 8 insertions(+), 2 deletions(-) diff --git a/espanso/src/cli/worker/config.rs b/espanso/src/cli/worker/config.rs index 7371ffc..abc7dce 100644 --- a/espanso/src/cli/worker/config.rs +++ b/espanso/src/cli/worker/config.rs @@ -143,6 +143,7 @@ impl<'a> super::engine::dispatch::executor::clipboard_injector::ClipboardParamsP restore_clipboard: active.preserve_clipboard(), restore_clipboard_delay: active.restore_clipboard_delay(), x11_use_xclip_backend: active.x11_use_xclip_backend(), + x11_use_xdotool_backend: active.x11_use_xdotool_backend(), } } } @@ -164,6 +165,7 @@ impl<'a> super::engine::dispatch::executor::InjectParamsProvider for ConfigManag inject_delay: active.inject_delay(), key_delay: active.key_delay(), evdev_modifier_delay: active.evdev_modifier_delay(), + x11_use_xdotool_backend: active.x11_use_xdotool_backend(), } } } diff --git a/espanso/src/cli/worker/engine/dispatch/executor/clipboard_injector.rs b/espanso/src/cli/worker/engine/dispatch/executor/clipboard_injector.rs index bf7ac6c..f170b47 100644 --- a/espanso/src/cli/worker/engine/dispatch/executor/clipboard_injector.rs +++ b/espanso/src/cli/worker/engine/dispatch/executor/clipboard_injector.rs @@ -40,6 +40,7 @@ pub struct ClipboardParams { pub restore_clipboard: bool, pub restore_clipboard_delay: usize, pub x11_use_xclip_backend: bool, + pub x11_use_xdotool_backend: bool, } pub struct ClipboardInjectorAdapter<'a> { @@ -95,6 +96,7 @@ impl<'a> ClipboardInjectorAdapter<'a> { InjectionOptions { delay: params.paste_shortcut_event_delay as i32, disable_fast_inject: params.disable_x11_fast_inject, + x11_use_xdotool_fallback: params.x11_use_xdotool_backend, ..Default::default() }, )?; diff --git a/espanso/src/cli/worker/engine/dispatch/executor/event_injector.rs b/espanso/src/cli/worker/engine/dispatch/executor/event_injector.rs index 4198654..5741b30 100644 --- a/espanso/src/cli/worker/engine/dispatch/executor/event_injector.rs +++ b/espanso/src/cli/worker/engine/dispatch/executor/event_injector.rs @@ -67,7 +67,7 @@ impl<'a> TextInjector for EventInjectorAdapter<'a> { }) .try_into() .unwrap(), - x11_use_xdotool_fallback: true, // TODO: put actual config + x11_use_xdotool_fallback: params.x11_use_xdotool_backend, }; // We don't use the lines() method because it skips emtpy lines, which is not what we want. diff --git a/espanso/src/cli/worker/engine/dispatch/executor/key_injector.rs b/espanso/src/cli/worker/engine/dispatch/executor/key_injector.rs index 40a4e04..26e732b 100644 --- a/espanso/src/cli/worker/engine/dispatch/executor/key_injector.rs +++ b/espanso/src/cli/worker/engine/dispatch/executor/key_injector.rs @@ -59,7 +59,7 @@ impl<'a> KeyInjector for KeyInjectorAdapter<'a> { }) .try_into() .unwrap(), - x11_use_xdotool_fallback: true, // TODO: put actual config + x11_use_xdotool_fallback: params.x11_use_xdotool_backend, }; let converted_keys: Vec<_> = keys.iter().map(convert_to_inject_key).collect(); diff --git a/espanso/src/cli/worker/engine/dispatch/executor/mod.rs b/espanso/src/cli/worker/engine/dispatch/executor/mod.rs index ff3dc19..49d518d 100644 --- a/espanso/src/cli/worker/engine/dispatch/executor/mod.rs +++ b/espanso/src/cli/worker/engine/dispatch/executor/mod.rs @@ -34,4 +34,5 @@ pub struct InjectParams { pub key_delay: Option<usize>, pub disable_x11_fast_inject: bool, pub evdev_modifier_delay: Option<usize>, + pub x11_use_xdotool_backend: bool, } diff --git a/espanso/src/patch/patches/mod.rs b/espanso/src/patch/patches/mod.rs index cd0a492..f652011 100644 --- a/espanso/src/patch/patches/mod.rs +++ b/espanso/src/patch/patches/mod.rs @@ -53,5 +53,6 @@ generate_patchable_config!( win32_exclude_orphan_events -> bool, win32_keyboard_layout_cache_interval -> i64, x11_use_xclip_backend -> bool, + x11_use_xdotool_backend -> bool, keyboard_layout -> Option<RMLVOConfig> );