diff options
| author | Kirill Chibisov <contact@kchibisov.com> | 2023-09-16 12:37:23 +0400 |
|---|---|---|
| committer | Ivan Molodetskikh <yalterz@gmail.com> | 2023-09-16 18:13:52 +0300 |
| commit | b66b4399ad2e178c3ba36c6fc5a6e65fd5aa4b17 (patch) | |
| tree | 78bdbd179d983b5bd94b73600518ffb64d99b9dc /src | |
| parent | 37ec5242640b432c57a3f8a97ae3ebcc46b9e3f3 (diff) | |
| download | niri-b66b4399ad2e178c3ba36c6fc5a6e65fd5aa4b17.tar.gz niri-b66b4399ad2e178c3ba36c6fc5a6e65fd5aa4b17.tar.bz2 niri-b66b4399ad2e178c3ba36c6fc5a6e65fd5aa4b17.zip | |
Add keyboard.repeat-rate and keyboard.repeat-delay
Add option to let the users configure the keyboard repeat delay and
rate. Also change the default values to mimic the Xorg, which is
also the values used by default by the majority of the compositors.
Fixes: #7
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(); |
