aboutsummaryrefslogtreecommitdiff
path: root/niri-config/src/lib.rs
diff options
context:
space:
mode:
authorThomas Versteeg <t@versteeg.email>2024-01-08 17:17:19 +0400
committerIvan Molodetskikh <yalterz@gmail.com>2024-01-08 17:37:18 +0400
commitfb93038bd88e4443015fb482de3450c27f009219 (patch)
treea2b5bbcce4c2c2fc9f9a070565800a44d1646013 /niri-config/src/lib.rs
parent71fef2ad2e873c45279cdd6e629218fb5dea1115 (diff)
downloadniri-fb93038bd88e4443015fb482de3450c27f009219.tar.gz
niri-fb93038bd88e4443015fb482de3450c27f009219.tar.bz2
niri-fb93038bd88e4443015fb482de3450c27f009219.zip
Add center-focused-column setting
Diffstat (limited to 'niri-config/src/lib.rs')
-rw-r--r--niri-config/src/lib.rs17
1 files changed, 17 insertions, 0 deletions
diff --git a/niri-config/src/lib.rs b/niri-config/src/lib.rs
index 35bda95e..9cbc6522 100644
--- a/niri-config/src/lib.rs
+++ b/niri-config/src/lib.rs
@@ -94,6 +94,18 @@ impl Xkb {
}
}
+#[derive(knuffel::DecodeScalar, Debug, Default, PartialEq, Eq, Clone, Copy)]
+pub enum CenterFocusedColumn {
+ /// Focusing a column will not center the column.
+ #[default]
+ Never,
+ /// The focused column will always be centered.
+ Always,
+ /// Focusing a column will center it if it doesn't fit on the screen together with the
+ /// previously focused column.
+ OnOverflow,
+}
+
#[derive(knuffel::DecodeScalar, Debug, Default, PartialEq, Eq)]
pub enum TrackLayout {
/// The layout change is global.
@@ -217,6 +229,8 @@ pub struct Layout {
pub preset_column_widths: Vec<PresetWidth>,
#[knuffel(child)]
pub default_column_width: Option<DefaultColumnWidth>,
+ #[knuffel(child, unwrap(argument), default)]
+ pub center_focused_column: CenterFocusedColumn,
#[knuffel(child, unwrap(argument), default = 16)]
pub gaps: u16,
#[knuffel(child, default)]
@@ -739,6 +753,8 @@ mod tests {
right 2
top 3
}
+
+ center-focused-column "on-overflow"
}
spawn-at-startup "alacritty" "-e" "fish"
@@ -856,6 +872,7 @@ mod tests {
top: 3,
bottom: 0,
},
+ center_focused_column: CenterFocusedColumn::OnOverflow,
},
spawn_at_startup: vec![SpawnAtStartup {
command: vec!["alacritty".to_owned(), "-e".to_owned(), "fish".to_owned()],