aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIvan Molodetskikh <yalterz@gmail.com>2024-05-19 17:55:54 +0400
committerIvan Molodetskikh <yalterz@gmail.com>2024-05-19 17:55:54 +0400
commit56e02a398d9853a4a52a5200560ca75179f7c23c (patch)
treeef1d6cd02b2d4a234a053e077f61d718e990223f
parent2552b129c4f40a49eba2e616ebc1c4c561e26871 (diff)
downloadniri-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.rs24
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);
+ }
}