Add Default impl for niri_config::Keyboard

Fixes https://github.com/YaLTeR/niri/issues/357
This commit is contained in:
Ivan Molodetskikh
2024-05-19 17:55:54 +04:00
parent 2552b129c4
commit 56e02a398d
+21 -3
View File
@@ -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);
}
}