diff options
Diffstat (limited to 'src/config.rs')
| -rw-r--r-- | src/config.rs | 20 |
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() |
