diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/config.rs | 10 | ||||
| -rw-r--r-- | src/niri.rs | 7 |
2 files changed, 16 insertions, 1 deletions
diff --git a/src/config.rs b/src/config.rs index a5030ea4..354a1c6f 100644 --- a/src/config.rs +++ b/src/config.rs @@ -30,6 +30,12 @@ pub struct Input { pub struct Keyboard { #[knuffel(child, default)] pub xkb: Xkb, + // The default value represents the one used by Xorg. + #[knuffel(child, unwrap(argument), default = 660)] + pub repeat_delay: u16, + // The default value represents the one used by Xorg. + #[knuffel(child, unwrap(argument), default = 25)] + pub repeat_rate: u8, } #[derive(knuffel::Decode, Debug, Default, PartialEq, Eq)] @@ -244,6 +250,8 @@ mod tests { r#" input { keyboard { + repeat-delay 660 + repeat-rate 25 xkb { layout "us,ru" options "grp:win_space_toggle" @@ -277,6 +285,8 @@ mod tests { options: Some("grp:win_space_toggle".to_owned()), ..Default::default() }, + repeat_delay: 660, + repeat_rate: 25, }, touchpad: Touchpad { tap: true, diff --git a/src/niri.rs b/src/niri.rs index 6d497176..6bad55fc 100644 --- a/src/niri.rs +++ b/src/niri.rs @@ -228,7 +228,12 @@ impl Niri { variant: &config_.input.keyboard.xkb.variant, options: config_.input.keyboard.xkb.options.clone(), }; - seat.add_keyboard(xkb, 400, 30).unwrap(); + seat.add_keyboard( + xkb, + config_.input.keyboard.repeat_delay as i32, + config_.input.keyboard.repeat_rate as i32, + ) + .unwrap(); seat.add_pointer(); let socket_source = ListeningSocketSource::new_auto().unwrap(); |
