diff --git a/espanso/src/cli/worker/config.rs b/espanso/src/cli/worker/config.rs index 7179328..deedd9e 100644 --- a/espanso/src/cli/worker/config.rs +++ b/espanso/src/cli/worker/config.rs @@ -151,6 +151,7 @@ impl<'a> super::engine::dispatch::executor::InjectParamsProvider for ConfigManag disable_x11_fast_inject: active.disable_x11_fast_inject(), inject_delay: active.inject_delay(), key_delay: active.key_delay(), + evdev_modifier_delay: active.evdev_modifier_delay(), } } } 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 d226cdd..d01094a 100644 --- a/espanso/src/cli/worker/engine/dispatch/executor/clipboard_injector.rs +++ b/espanso/src/cli/worker/engine/dispatch/executor/clipboard_injector.rs @@ -74,7 +74,7 @@ impl<'a> ClipboardInjectorAdapter<'a> { } else { error!("'{}' is not a valid paste shortcut", custom_shortcut); } - } + } let combination = if let Some(custom_combination) = custom_combination { custom_combination @@ -89,6 +89,7 @@ impl<'a> ClipboardInjectorAdapter<'a> { InjectionOptions { delay: params.paste_shortcut_event_delay as i32, disable_fast_inject: params.disable_x11_fast_inject, + ..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 36d8be9..66b7008 100644 --- a/espanso/src/cli/worker/engine/dispatch/executor/event_injector.rs +++ b/espanso/src/cli/worker/engine/dispatch/executor/event_injector.rs @@ -53,10 +53,20 @@ impl<'a> TextInjector for EventInjectorAdapter<'a> { let injection_options = InjectionOptions { delay: params .inject_delay - .unwrap_or(InjectionOptions::default().delay.try_into().unwrap()) + .unwrap_or_else(|| InjectionOptions::default().delay.try_into().unwrap()) .try_into() .unwrap(), disable_fast_inject: params.disable_x11_fast_inject, + evdev_modifier_delay: params + .evdev_modifier_delay + .unwrap_or_else(|| { + InjectionOptions::default() + .evdev_modifier_delay + .try_into() + .unwrap() + }) + .try_into() + .unwrap(), }; // 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 08aad9d..38f19a5 100644 --- a/espanso/src/cli/worker/engine/dispatch/executor/key_injector.rs +++ b/espanso/src/cli/worker/engine/dispatch/executor/key_injector.rs @@ -17,8 +17,8 @@ * along with espanso. If not, see . */ -use std::convert::TryInto; use espanso_inject::{InjectionOptions, Injector}; +use std::convert::TryInto; use espanso_engine::dispatch::KeyInjector; @@ -31,7 +31,10 @@ pub struct KeyInjectorAdapter<'a> { impl<'a> KeyInjectorAdapter<'a> { pub fn new(injector: &'a dyn Injector, params_provider: &'a dyn InjectParamsProvider) -> Self { - Self { injector, params_provider } + Self { + injector, + params_provider, + } } } @@ -42,10 +45,20 @@ impl<'a> KeyInjector for KeyInjectorAdapter<'a> { let injection_options = InjectionOptions { delay: params .key_delay - .unwrap_or(InjectionOptions::default().delay.try_into().unwrap()) + .unwrap_or_else(|| InjectionOptions::default().delay.try_into().unwrap()) .try_into() .unwrap(), disable_fast_inject: params.disable_x11_fast_inject, + evdev_modifier_delay: params + .evdev_modifier_delay + .unwrap_or_else(|| { + InjectionOptions::default() + .evdev_modifier_delay + .try_into() + .unwrap() + }) + .try_into() + .unwrap(), }; 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 169b41a..7f3ff9d 100644 --- a/espanso/src/cli/worker/engine/dispatch/executor/mod.rs +++ b/espanso/src/cli/worker/engine/dispatch/executor/mod.rs @@ -32,4 +32,5 @@ pub struct InjectParams { pub inject_delay: Option, pub key_delay: Option, pub disable_x11_fast_inject: bool, + pub evdev_modifier_delay: Option, } \ No newline at end of file diff --git a/espanso/src/patch/patches/mod.rs b/espanso/src/patch/patches/mod.rs index e82b698..4bee72f 100644 --- a/espanso/src/patch/patches/mod.rs +++ b/espanso/src/patch/patches/mod.rs @@ -43,6 +43,7 @@ generate_patchable_config!( restore_clipboard_delay -> usize, inject_delay -> Option, key_delay -> Option, + evdev_modifier_delay -> Option, word_separators -> Vec, backspace_limit -> usize, apply_patch -> bool,