aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/config.rs10
-rw-r--r--src/niri.rs7
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();