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,