aboutsummaryrefslogtreecommitdiff
path: root/src/config.rs
diff options
context:
space:
mode:
authorKirill Chibisov <contact@kchibisov.com>2023-11-02 00:10:22 +0400
committerIvan Molodetskikh <yalterz@gmail.com>2023-11-08 19:09:11 +0400
commit907e0a03efcce6ba35aa6405e130f316bc217c5a (patch)
treea7e7aa34c0fabdd055baf69df9f3f2dc17746123 /src/config.rs
parenteb7d20c638e8912747ee21a4b8de95dd27bb7aba (diff)
downloadniri-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.rs13
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,