diff options
| author | Kirill Chibisov <contact@kchibisov.com> | 2023-11-02 00:10:22 +0400 |
|---|---|---|
| committer | Ivan Molodetskikh <yalterz@gmail.com> | 2023-11-08 19:09:11 +0400 |
| commit | 907e0a03efcce6ba35aa6405e130f316bc217c5a (patch) | |
| tree | a7e7aa34c0fabdd055baf69df9f3f2dc17746123 /src/config.rs | |
| parent | eb7d20c638e8912747ee21a4b8de95dd27bb7aba (diff) | |
| download | niri-907e0a03efcce6ba35aa6405e130f316bc217c5a.tar.gz niri-907e0a03efcce6ba35aa6405e130f316bc217c5a.tar.bz2 niri-907e0a03efcce6ba35aa6405e130f316bc217c5a.zip | |
Add 'input.keyboard.track_layout' config option
Track layout for each window individually when user requested `Window`
tracking mode, keeping the default as global.
Diffstat (limited to 'src/config.rs')
| -rw-r--r-- | src/config.rs | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/config.rs b/src/config.rs index ac1917bc..b7510d8d 100644 --- a/src/config.rs +++ b/src/config.rs @@ -62,6 +62,8 @@ pub struct Keyboard { pub repeat_delay: u16, #[knuffel(child, unwrap(argument), default = 25)] pub repeat_rate: u8, + #[knuffel(child, unwrap(argument), default)] + pub track_layout: TrackLayout, } #[derive(knuffel::Decode, Debug, Default, PartialEq, Eq)] @@ -78,6 +80,15 @@ pub struct Xkb { pub options: Option<String>, } +#[derive(knuffel::DecodeScalar, Debug, Default, PartialEq, Eq)] +pub enum TrackLayout { + /// The layout change is global. + #[default] + Global, + /// The layout change is window local. + Window, +} + // FIXME: Add the rest of the settings. #[derive(knuffel::Decode, Debug, Default, PartialEq)] pub struct Touchpad { @@ -514,6 +525,7 @@ mod tests { keyboard { repeat-delay 600 repeat-rate 25 + track-layout "window" xkb { layout "us,ru" options "grp:win_space_toggle" @@ -587,6 +599,7 @@ mod tests { }, repeat_delay: 600, repeat_rate: 25, + track_layout: TrackLayout::Window, }, touchpad: Touchpad { tap: true, |
