diff options
| author | Ogulcan Celik <ogulcancelik@gmail.com> | 2026-05-16 18:33:23 +0300 |
|---|---|---|
| committer | Ogulcan Celik <ogulcancelik@gmail.com> | 2026-05-16 18:33:23 +0300 |
| commit | 7b8f6990837ed2df63b533c7bbcd5bf6835efef7 (patch) | |
| tree | 236232c2da60e011f3c2b1630f5a5e34fb7b022f /src/config | |
| parent | 170d5674872fe030777ceb97e18b38a0e9ddbc2f (diff) | |
feat: add scrollback editor keybind
refs #122
Diffstat (limited to 'src/config')
| -rw-r--r-- | src/config/keybinds.rs | 32 | ||||
| -rw-r--r-- | src/config/model.rs | 3 |
2 files changed, 27 insertions, 8 deletions
diff --git a/src/config/keybinds.rs b/src/config/keybinds.rs index de4f03a9..9a1dc496 100644 --- a/src/config/keybinds.rs +++ b/src/config/keybinds.rs @@ -95,6 +95,8 @@ pub struct Keybinds { pub close_tab_label: Option<String>, pub rename_pane: Option<(KeyCode, KeyModifiers)>, pub rename_pane_label: Option<String>, + pub edit_scrollback: Option<(KeyCode, KeyModifiers)>, + pub edit_scrollback_label: Option<String>, pub focus_pane_left: Option<(KeyCode, KeyModifiers)>, pub focus_pane_left_label: Option<String>, pub focus_pane_down: Option<(KeyCode, KeyModifiers)>, @@ -463,6 +465,12 @@ impl Config { &mut diagnostics, ), optional_binding( + navigate_scope(), + "keys.edit_scrollback", + &self.keys.edit_scrollback, + &mut diagnostics, + ), + optional_binding( terminal_direct_scope(), "keys.focus_pane_left", &self.keys.focus_pane_left, @@ -767,14 +775,16 @@ impl Config { close_tab_label: optional_bindings[10].label.clone(), rename_pane: optional_bindings[11].value, rename_pane_label: optional_bindings[11].label.clone(), - focus_pane_left: optional_bindings[12].value, - focus_pane_left_label: optional_bindings[12].label.clone(), - focus_pane_down: optional_bindings[13].value, - focus_pane_down_label: optional_bindings[13].label.clone(), - focus_pane_up: optional_bindings[14].value, - focus_pane_up_label: optional_bindings[14].label.clone(), - focus_pane_right: optional_bindings[15].value, - focus_pane_right_label: optional_bindings[15].label.clone(), + edit_scrollback: optional_bindings[12].value, + edit_scrollback_label: optional_bindings[12].label.clone(), + focus_pane_left: optional_bindings[13].value, + focus_pane_left_label: optional_bindings[13].label.clone(), + focus_pane_down: optional_bindings[14].value, + focus_pane_down_label: optional_bindings[14].label.clone(), + focus_pane_up: optional_bindings[15].value, + focus_pane_up_label: optional_bindings[15].label.clone(), + focus_pane_right: optional_bindings[16].value, + focus_pane_right_label: optional_bindings[16].label.clone(), split_vertical: bindings[4].value, split_vertical_label: bindings[4].label.clone(), split_horizontal: bindings[5].value, @@ -1082,6 +1092,7 @@ mod tests { assert_eq!(kb.split_vertical.0, KeyCode::Char('v')); assert_eq!(kb.split_horizontal.0, KeyCode::Char('-')); assert_eq!(kb.close_pane.0, KeyCode::Char('x')); + assert_eq!(kb.edit_scrollback, None); assert_eq!(kb.fullscreen.0, KeyCode::Char('f')); assert_eq!(kb.resize_mode.0, KeyCode::Char('r')); assert_eq!(kb.toggle_sidebar.0, KeyCode::Char('b')); @@ -1104,6 +1115,7 @@ resize_mode = "ctrl+r" toggle_sidebar = "tab" previous_agent = "alt+a" next_agent = "alt+d" +edit_scrollback = "e" focus_pane_left = "alt+h" focus_pane_right = "alt+right" "#; @@ -1140,6 +1152,10 @@ focus_pane_right = "alt+right" ); assert_eq!(kb.next_agent, Some((KeyCode::Char('d'), KeyModifiers::ALT))); assert_eq!( + kb.edit_scrollback, + Some((KeyCode::Char('e'), KeyModifiers::empty())) + ); + assert_eq!( kb.focus_pane_left, Some((KeyCode::Char('h'), KeyModifiers::ALT)) ); diff --git a/src/config/model.rs b/src/config/model.rs index ed8c4dd5..f389b18b 100644 --- a/src/config/model.rs +++ b/src/config/model.rs @@ -103,6 +103,8 @@ pub struct KeysConfig { pub close_tab: String, /// Rename the focused pane. Unset by default. pub rename_pane: String, + /// Open the focused pane scrollback in $EDITOR. Unset by default. + pub edit_scrollback: 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. @@ -198,6 +200,7 @@ impl Default for KeysConfig { next_tab: "".into(), close_tab: "".into(), rename_pane: "".into(), + edit_scrollback: "".into(), focus_pane_left: "".into(), focus_pane_down: "".into(), focus_pane_up: "".into(), |
