diff options
| author | Ivan Molodetskikh <yalterz@gmail.com> | 2024-05-19 17:55:54 +0400 |
|---|---|---|
| committer | Ivan Molodetskikh <yalterz@gmail.com> | 2024-05-19 17:55:54 +0400 |
| commit | 56e02a398d9853a4a52a5200560ca75179f7c23c (patch) | |
| tree | ef1d6cd02b2d4a234a053e077f61d718e990223f | |
| parent | 2552b129c4f40a49eba2e616ebc1c4c561e26871 (diff) | |
| download | niri-56e02a398d9853a4a52a5200560ca75179f7c23c.tar.gz niri-56e02a398d9853a4a52a5200560ca75179f7c23c.tar.bz2 niri-56e02a398d9853a4a52a5200560ca75179f7c23c.zip | |
Add Default impl for niri_config::Keyboard
Fixes https://github.com/YaLTeR/niri/issues/357
| -rw-r--r-- | niri-config/src/lib.rs | 24 |
1 files changed, 21 insertions, 3 deletions
diff --git a/niri-config/src/lib.rs b/niri-config/src/lib.rs index ae3a1d56..1c63e5c1 100644 --- a/niri-config/src/lib.rs +++ b/niri-config/src/lib.rs @@ -81,19 +81,30 @@ pub struct Input { pub workspace_auto_back_and_forth: bool, } -#[derive(knuffel::Decode, Debug, Default, PartialEq, Eq)] +#[derive(knuffel::Decode, Debug, PartialEq, Eq)] pub struct Keyboard { #[knuffel(child, default)] pub xkb: Xkb, // The defaults were chosen to match wlroots and sway. - #[knuffel(child, unwrap(argument), default = 600)] + #[knuffel(child, unwrap(argument), default = Self::default().repeat_delay)] pub repeat_delay: u16, - #[knuffel(child, unwrap(argument), default = 25)] + #[knuffel(child, unwrap(argument), default = Self::default().repeat_rate)] pub repeat_rate: u8, #[knuffel(child, unwrap(argument), default)] pub track_layout: TrackLayout, } +impl Default for Keyboard { + fn default() -> Self { + Self { + xkb: Default::default(), + repeat_delay: 600, + repeat_rate: 25, + track_layout: Default::default(), + } + } +} + #[derive(knuffel::Decode, Debug, Default, PartialEq, Eq, Clone)] pub struct Xkb { #[knuffel(child, unwrap(argument), default)] @@ -2814,4 +2825,11 @@ mod tests { }, ); } + + #[test] + fn default_repeat_params() { + let config = Config::parse("config.kdl", "").unwrap(); + assert_eq!(config.input.keyboard.repeat_delay, 600); + assert_eq!(config.input.keyboard.repeat_rate, 25); + } } |
