diff options
| author | Ogulcan Celik <ogulcancelik@gmail.com> | 2026-05-11 23:31:36 +0300 |
|---|---|---|
| committer | Ogulcan Celik <ogulcancelik@gmail.com> | 2026-05-11 23:34:20 +0300 |
| commit | fe693f613a23452e68589a4337863f217cc57930 (patch) | |
| tree | 8d60f6c5b0d8b31426c6623cc8b0c2415d481000 /src/config | |
| parent | 84c0d003ddb19a8e95e7ad5206771a663913605b (diff) | |
feat: add optional pane border labels
Diffstat (limited to 'src/config')
| -rw-r--r-- | src/config/keybinds.rs | 26 | ||||
| -rw-r--r-- | src/config/model.rs | 19 |
2 files changed, 37 insertions, 8 deletions
diff --git a/src/config/keybinds.rs b/src/config/keybinds.rs index 4a54dd74..4a638ec0 100644 --- a/src/config/keybinds.rs +++ b/src/config/keybinds.rs @@ -81,6 +81,8 @@ pub struct Keybinds { pub next_tab_label: Option<String>, pub close_tab: Option<(KeyCode, KeyModifiers)>, pub close_tab_label: Option<String>, + pub rename_pane: Option<(KeyCode, KeyModifiers)>, + pub rename_pane_label: Option<String>, pub focus_pane_left: Option<(KeyCode, KeyModifiers)>, pub focus_pane_left_label: Option<String>, pub focus_pane_down: Option<(KeyCode, KeyModifiers)>, @@ -380,6 +382,12 @@ impl Config { &mut diagnostics, ), optional_binding( + BindingScope::Navigate, + "keys.rename_pane", + &self.keys.rename_pane, + &mut diagnostics, + ), + optional_binding( BindingScope::TerminalDirect, "keys.focus_pane_left", &self.keys.focus_pane_left, @@ -602,14 +610,16 @@ impl Config { next_tab_label: optional_bindings[6].label.clone(), close_tab: optional_bindings[7].value, close_tab_label: optional_bindings[7].label.clone(), - focus_pane_left: optional_bindings[8].value, - focus_pane_left_label: optional_bindings[8].label.clone(), - focus_pane_down: optional_bindings[9].value, - focus_pane_down_label: optional_bindings[9].label.clone(), - focus_pane_up: optional_bindings[10].value, - focus_pane_up_label: optional_bindings[10].label.clone(), - focus_pane_right: optional_bindings[11].value, - focus_pane_right_label: optional_bindings[11].label.clone(), + rename_pane: optional_bindings[8].value, + rename_pane_label: optional_bindings[8].label.clone(), + focus_pane_left: optional_bindings[9].value, + focus_pane_left_label: optional_bindings[9].label.clone(), + focus_pane_down: optional_bindings[10].value, + focus_pane_down_label: optional_bindings[10].label.clone(), + focus_pane_up: optional_bindings[11].value, + focus_pane_up_label: optional_bindings[11].label.clone(), + focus_pane_right: optional_bindings[12].value, + focus_pane_right_label: optional_bindings[12].label.clone(), split_vertical: bindings[4].value, split_vertical_label: bindings[4].label.clone(), split_horizontal: bindings[5].value, diff --git a/src/config/model.rs b/src/config/model.rs index a11192fb..4b0638be 100644 --- a/src/config/model.rs +++ b/src/config/model.rs @@ -93,6 +93,8 @@ pub struct KeysConfig { pub next_tab: String, /// Close the active tab. Unset by default. pub close_tab: String, + /// Rename the focused pane. Unset by default. + pub rename_pane: String, /// Focus the pane to the left in terminal mode. Unset by default. pub focus_pane_left: String, /// Focus the pane below in terminal mode. Unset by default. @@ -123,6 +125,8 @@ pub struct UiConfig { pub sidebar_width: u16, /// Ask for confirmation before closing a workspace. Default: true. pub confirm_close: bool, + /// Show agent labels in split pane borders when no manual pane label is set. Default: false. + pub show_agent_labels_on_pane_borders: bool, /// Agent sidebar scope. Saved values are "current" or "all". Default: "all". pub agent_panel_scope: AgentPanelScopeConfig, /// Accent color for highlights, borders, and navigation UI. @@ -160,6 +164,7 @@ impl Default for KeysConfig { previous_tab: "".into(), next_tab: "".into(), close_tab: "".into(), + rename_pane: "".into(), focus_pane_left: "".into(), focus_pane_down: "".into(), focus_pane_up: "".into(), @@ -180,6 +185,7 @@ impl Default for UiConfig { Self { sidebar_width: 26, confirm_close: true, + show_agent_labels_on_pane_borders: false, agent_panel_scope: AgentPanelScopeConfig::All, accent: "cyan".into(), toast: ToastConfig::default(), @@ -242,6 +248,19 @@ agent_panel_scope = "all" } #[test] + fn pane_border_agent_labels_default_off_and_parse() { + let default_config = Config::default(); + assert!(!default_config.ui.show_agent_labels_on_pane_borders); + + let toml = r#" +[ui] +show_agent_labels_on_pane_borders = true +"#; + let config: Config = toml::from_str(toml).unwrap(); + assert!(config.ui.show_agent_labels_on_pane_borders); + } + + #[test] fn toast_config_parses() { let toml = r#" [ui.toast] |
