diff options
| author | Ogulcan Celik <ogulcancelik@gmail.com> | 2026-05-15 15:14:19 +0300 |
|---|---|---|
| committer | Ogulcan Celik <ogulcancelik@gmail.com> | 2026-05-15 15:14:19 +0300 |
| commit | 4bfc3a89c570aea8c9e4c91a7b249b50c112f1d2 (patch) | |
| tree | 6141328f8d71220f26ad2c70967df368b8940763 /src/config | |
| parent | 7c636e97f4568583651de3bc8c8550a3bab54743 (diff) | |
config: split experimental settings from advanced
Diffstat (limited to 'src/config')
| -rw-r--r-- | src/config/io.rs | 8 | ||||
| -rw-r--r-- | src/config/model.rs | 36 |
2 files changed, 32 insertions, 12 deletions
diff --git a/src/config/io.rs b/src/config/io.rs index 16602972..60eb54d8 100644 --- a/src/config/io.rs +++ b/src/config/io.rs @@ -166,6 +166,14 @@ fn load_live_config_from_str(content: &str) -> Result<LoadedConfig, Vec<String>> &mut invalid_sections, |section| config.advanced = section, ); + load_live_section( + table, + "experimental", + "experimental config", + &mut diagnostics, + &mut invalid_sections, + |section| config.experimental = section, + ); Ok(LoadedConfig { config, diff --git a/src/config/model.rs b/src/config/model.rs index a8485fb0..8ea52724 100644 --- a/src/config/model.rs +++ b/src/config/model.rs @@ -56,6 +56,7 @@ pub struct Config { pub keys: KeysConfig, pub ui: UiConfig, pub advanced: AdvancedConfig, + pub experimental: ExperimentalConfig, } #[derive(Debug)] @@ -150,13 +151,18 @@ pub struct UiConfig { #[derive(Debug, Deserialize)] #[serde(default)] pub struct AdvancedConfig { + /// Maximum scrollback buffer size in bytes retained per pane terminal. Default: 10000000. + #[serde(alias = "scrollback_lines")] + pub scrollback_limit_bytes: usize, +} + +#[derive(Debug, Default, Deserialize)] +#[serde(default)] +pub struct ExperimentalConfig { /// Allow launching herdr inside an existing herdr pane. Default: false. pub allow_nested: bool, /// Experimental local Kitty graphics rendering for attached clients. Default: false. pub kitty_graphics: bool, - /// Maximum scrollback buffer size in bytes retained per pane terminal. Default: 10000000. - #[serde(alias = "scrollback_lines")] - pub scrollback_limit_bytes: usize, } impl Default for KeysConfig { @@ -242,8 +248,6 @@ impl<'de> Deserialize<'de> for ToastConfig { impl Default for AdvancedConfig { fn default() -> Self { Self { - allow_nested: false, - kitty_graphics: false, scrollback_limit_bytes: DEFAULT_SCROLLBACK_LIMIT_BYTES, } } @@ -364,27 +368,35 @@ delivery = "terminal" #[test] fn kitty_graphics_default_off_and_parse() { let config = Config::default(); - assert!(!config.advanced.kitty_graphics); + assert!(!config.experimental.kitty_graphics); let toml = r#" -[advanced] +[experimental] kitty_graphics = true "#; let config: Config = toml::from_str(toml).unwrap(); - assert!(config.advanced.kitty_graphics); + assert!(config.experimental.kitty_graphics); } #[test] - fn advanced_config_parses() { + fn experimental_config_parses() { let toml = r#" -[advanced] +[experimental] allow_nested = true kitty_graphics = true +"#; + let config: Config = toml::from_str(toml).unwrap(); + assert!(config.experimental.allow_nested); + assert!(config.experimental.kitty_graphics); + } + + #[test] + fn advanced_config_parses() { + let toml = r#" +[advanced] scrollback_limit_bytes = 12345 "#; let config: Config = toml::from_str(toml).unwrap(); - assert!(config.advanced.allow_nested); - assert!(config.advanced.kitty_graphics); assert_eq!(config.advanced.scrollback_limit_bytes, 12345); } |
