aboutsummaryrefslogtreecommitdiff
path: root/src/pane.rs
diff options
context:
space:
mode:
authorOgulcan Celik <ogulcancelik@gmail.com>2026-07-13 03:26:03 +0300
committerOgulcan Celik <ogulcancelik@gmail.com>2026-07-13 03:30:13 +0300
commit5cfe5e5e730246948b0c9428ad876b6938590aad (patch)
tree53d4bbe1aff6887f63f279eed1b5e4e11e7331b7 /src/pane.rs
parent7f3364a468f7dcfd8c9c84e5737fe5699f0e3a93 (diff)
feat: add configurable sidebar metadata tokens
Diffstat (limited to 'src/pane.rs')
-rw-r--r--src/pane.rs13
1 files changed, 12 insertions, 1 deletions
diff --git a/src/pane.rs b/src/pane.rs
index 19d356dc..8f71031f 100644
--- a/src/pane.rs
+++ b/src/pane.rs
@@ -1481,6 +1481,7 @@ impl PaneRuntime {
},
keyboard_protocol_ansi: self.terminal.kitty_keyboard_state_ansi(),
input_state: self.input_state(),
+ terminal_title: self.terminal_title(),
initial_history_ansi: None,
}
}
@@ -1668,6 +1669,7 @@ impl PaneRuntime {
keyboard_protocol_flags,
keyboard_protocol_ansi,
input_state,
+ terminal_title,
initial_history_ansi,
} = state;
let pane_id = PaneId::from_raw(pane_id);
@@ -1688,6 +1690,7 @@ impl PaneRuntime {
}
let pane_terminal = GhosttyPaneTerminal::new(terminal, response_tx.clone())?;
pane_terminal.apply_host_terminal_theme(host_terminal_theme);
+ pane_terminal.seed_terminal_title(terminal_title);
if let Some(input_state) = input_state {
pane_terminal.seed_handoff_input_state(input_state);
}
@@ -2450,6 +2453,10 @@ impl PaneRuntime {
self.terminal.detection_text()
}
+ pub fn terminal_title(&self) -> Option<String> {
+ self.terminal.terminal_title()
+ }
+
pub fn agent_osc_title(&self) -> String {
self.terminal.agent_osc_title()
}
@@ -3121,16 +3128,20 @@ mod tests {
#[cfg(unix)]
#[tokio::test]
- async fn handoff_runtime_state_captures_terminal_input_state() {
+ async fn handoff_runtime_state_captures_terminal_input_and_title_state() {
let runtime = PaneRuntime::test_with_screen_bytes(
80,
24,
b"\x1b[>5u\x1b[>4;2m\x1b[?1h\x1b[?2004h\x1b[?1004h\x1b[?1002h\x1b[?1006h",
);
+ runtime.test_process_pty_bytes("\x1b]2;✳ 修复🙂标题\x1b\\".as_bytes());
+ runtime.terminal.clear_agent_osc_state();
+ assert_eq!(runtime.agent_osc_title(), "");
let pane = runtime.handoff_runtime_state(12);
assert_eq!(pane.keyboard_protocol_flags, 5);
+ assert_eq!(pane.terminal_title.as_deref(), Some("✳ 修复🙂标题"));
assert_eq!(
pane.input_state,
Some(InputState {