aboutsummaryrefslogtreecommitdiff
path: root/src/config.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/config.rs')
-rw-r--r--src/config.rs20
1 files changed, 20 insertions, 0 deletions
diff --git a/src/config.rs b/src/config.rs
index 7e7aecd2..0595ae2f 100644
--- a/src/config.rs
+++ b/src/config.rs
@@ -53,6 +53,8 @@ pub const CONFIG_PATH_ENV_VAR: &str = "HERDR_CONFIG_PATH";
pub const DEFAULT_SCROLLBACK_LIMIT_BYTES: usize = 10_000_000;
pub const DEFAULT_MOUSE_SCROLL_LINES: usize = 3;
pub const DEFAULT_MOBILE_WIDTH_THRESHOLD: u16 = 64;
+pub const DEFAULT_HEADLESS_COLS: u16 = 120;
+pub const DEFAULT_HEADLESS_ROWS: u16 = 40;
#[cfg(test)]
pub(crate) fn app_dir_name() -> &'static str {
@@ -90,9 +92,27 @@ impl Config {
.chain(tab_bar_right_diagnostics(&self.ui.tab_bar_right))
.chain(window_title_diagnostics(&self.ui.window_title))
.chain(self.invalid_sidebar_bounds_diagnostic())
+ .chain(self.invalid_headless_size_diagnostic())
.collect()
}
+ pub(crate) fn headless_size(&self) -> (u16, u16) {
+ if self.invalid_headless_size_diagnostic().is_some() {
+ (DEFAULT_HEADLESS_COLS, DEFAULT_HEADLESS_ROWS)
+ } else {
+ (self.server.headless_cols, self.server.headless_rows)
+ }
+ }
+
+ pub(crate) fn invalid_headless_size_diagnostic(&self) -> Option<String> {
+ (self.server.headless_cols == 0 || self.server.headless_rows == 0).then(|| {
+ format!(
+ "server.headless_cols and server.headless_rows must be greater than zero (got {}x{})",
+ self.server.headless_cols, self.server.headless_rows
+ )
+ })
+ }
+
pub(crate) fn invalid_sidebar_bounds_diagnostic(&self) -> Option<String> {
validated_sidebar_bounds(self.ui.sidebar_min_width, self.ui.sidebar_max_width)
.is_none()