aboutsummaryrefslogtreecommitdiffstats
path: root/zellij-utils/src/input/options.rs
diff options
context:
space:
mode:
authorAram Drevekenin <aram@poor.dev>2025-01-28 21:24:07 +0100
committerGitHub <noreply@github.com>2025-01-28 21:24:07 +0100
commit407120b87200cfb6c669cf6625b6278fb3076f75 (patch)
tree48b389488b240faf9c74608522d655243b7a401f /zellij-utils/src/input/options.rs
parentchore(deps): update to Wasmtime 29.0.1 (#3955) (diff)
downloadsl0ppij-407120b87200cfb6c669cf6625b6278fb3076f75.tar.gz
sl0ppij-407120b87200cfb6c669cf6625b6278fb3076f75.tar.xz
sl0ppij-407120b87200cfb6c669cf6625b6278fb3076f75.zip
feat(ui): stacked resize (#3957)
* work * tests and initial notes for refactoring * refactor(stacked-panes): break out pane * vertical functionality working with a single stack * refactor: break out pane from stack * fix: properly support multiple stacks in tab * combining multiple stacks vertically * vertical resizing working for all cases * base functionality and tests * some UX tweaking * final functionality for directionless stacked increase * some cleanups * moar cleanups * refactor: stacked resize * fix: issue where resizing stacked geoms to 0 would cause them to overflow afterwards * fix: handle uneven stacking * functionality with tombstones * new open new pane functionality * match decrease increment behavior to increase one and fix some issues * set fullscreen if maxed out * allow splitting stacks * fix tests mostly by parameterizing stacked_resize * add tests * some cleanups * style(fmt): rustfmt * add to config * disable ci cache * is_stacked => stacked * docs(config): remove duplication
Diffstat (limited to 'zellij-utils/src/input/options.rs')
-rw-r--r--zellij-utils/src/input/options.rs11
1 files changed, 11 insertions, 0 deletions
diff --git a/zellij-utils/src/input/options.rs b/zellij-utils/src/input/options.rs
index c571bcae..5ece3c58 100644
--- a/zellij-utils/src/input/options.rs
+++ b/zellij-utils/src/input/options.rs
@@ -161,6 +161,12 @@ pub struct Options {
#[clap(long, value_parser)]
#[serde(default)]
pub support_kitty_keyboard_protocol: Option<bool>,
+
+ /// Whether to stack panes when resizing beyond a certain size
+ /// default is true
+ #[clap(long, value_parser)]
+ #[serde(default)]
+ pub stacked_resize: Option<bool>,
}
#[derive(ArgEnum, Deserialize, Serialize, Debug, Clone, Copy, PartialEq)]
@@ -239,6 +245,7 @@ impl Options {
let support_kitty_keyboard_protocol = other
.support_kitty_keyboard_protocol
.or(self.support_kitty_keyboard_protocol);
+ let stacked_resize = other.stacked_resize.or(self.stacked_resize);
Options {
simplified_ui,
@@ -268,6 +275,7 @@ impl Options {
serialization_interval,
disable_session_metadata,
support_kitty_keyboard_protocol,
+ stacked_resize,
}
}
@@ -326,6 +334,7 @@ impl Options {
let support_kitty_keyboard_protocol = other
.support_kitty_keyboard_protocol
.or(self.support_kitty_keyboard_protocol);
+ let stacked_resize = other.stacked_resize.or(self.stacked_resize);
Options {
simplified_ui,
@@ -355,6 +364,7 @@ impl Options {
serialization_interval,
disable_session_metadata,
support_kitty_keyboard_protocol,
+ stacked_resize,
}
}
@@ -420,6 +430,7 @@ impl From<CliOptions> for Options {
styled_underlines: opts.styled_underlines,
serialization_interval: opts.serialization_interval,
support_kitty_keyboard_protocol: opts.support_kitty_keyboard_protocol,
+ stacked_resize: opts.stacked_resize,
..Default::default()
}
}