aboutsummaryrefslogtreecommitdiff
path: root/src/terminal
diff options
context:
space:
mode:
authorCan Celik <ogulcancelik@gmail.com>2026-08-03 02:05:27 +0300
committerGitHub <noreply@github.com>2026-08-03 02:05:27 +0300
commit10eb0bc744165ae91dfce9fd731fe170410b34ec (patch)
tree8622d429d9453c2e8d06630322804a702973d94a /src/terminal
parentcbc31d34a1fb3da64415737de57ad10fe6af5ba5 (diff)
fix: propagate host color scheme to pane apps (#2214)
refs #714
Diffstat (limited to 'src/terminal')
-rw-r--r--src/terminal/runtime.rs19
1 files changed, 19 insertions, 0 deletions
diff --git a/src/terminal/runtime.rs b/src/terminal/runtime.rs
index 38b36942..8a3da876 100644
--- a/src/terminal/runtime.rs
+++ b/src/terminal/runtime.rs
@@ -64,6 +64,7 @@ impl TerminalRuntime {
import: crate::handoff_runtime::ImportedHandoffRuntime,
scrollback_limit_bytes: usize,
host_terminal_theme: crate::terminal_theme::TerminalTheme,
+ host_terminal_appearance: Option<crate::terminal_theme::HostAppearance>,
events: mpsc::Sender<AppEvent>,
render_notify: Arc<Notify>,
render_dirty: Arc<RenderSignal>,
@@ -72,6 +73,7 @@ impl TerminalRuntime {
import,
scrollback_limit_bytes,
host_terminal_theme,
+ host_terminal_appearance,
events,
render_notify,
render_dirty,
@@ -79,6 +81,8 @@ impl TerminalRuntime {
.map(Self)
}
+ // Wrapper mirrors pane runtime construction arguments.
+ #[allow(clippy::too_many_arguments)]
pub fn spawn(
pane_id: PaneId,
rows: u16,
@@ -86,6 +90,7 @@ impl TerminalRuntime {
cwd: std::path::PathBuf,
scrollback_limit_bytes: usize,
host_terminal_theme: crate::terminal_theme::TerminalTheme,
+ host_terminal_appearance: Option<crate::terminal_theme::HostAppearance>,
shell_config: crate::pane::PaneShellConfig<'_>,
launch_env: &crate::pane::PaneLaunchEnv,
events: mpsc::Sender<AppEvent>,
@@ -99,6 +104,7 @@ impl TerminalRuntime {
cwd,
scrollback_limit_bytes,
host_terminal_theme,
+ host_terminal_appearance,
shell_config,
launch_env,
events,
@@ -117,6 +123,7 @@ impl TerminalRuntime {
cwd: std::path::PathBuf,
scrollback_limit_bytes: usize,
host_terminal_theme: crate::terminal_theme::TerminalTheme,
+ host_terminal_appearance: Option<crate::terminal_theme::HostAppearance>,
shell_config: crate::pane::PaneShellConfig<'_>,
launch_env: &crate::pane::PaneLaunchEnv,
initial_history_ansi: Option<&str>,
@@ -131,6 +138,7 @@ impl TerminalRuntime {
cwd,
scrollback_limit_bytes,
host_terminal_theme,
+ host_terminal_appearance,
shell_config,
launch_env,
initial_history_ansi,
@@ -153,6 +161,7 @@ impl TerminalRuntime {
agent_detection: crate::pane::AgentDetection,
scrollback_limit_bytes: usize,
host_terminal_theme: crate::terminal_theme::TerminalTheme,
+ host_terminal_appearance: Option<crate::terminal_theme::HostAppearance>,
events: mpsc::Sender<AppEvent>,
render_notify: Arc<Notify>,
render_dirty: Arc<RenderSignal>,
@@ -167,6 +176,7 @@ impl TerminalRuntime {
agent_detection,
scrollback_limit_bytes,
host_terminal_theme,
+ host_terminal_appearance,
events,
render_notify,
render_dirty,
@@ -186,6 +196,7 @@ impl TerminalRuntime {
agent_detection: crate::pane::AgentDetection,
scrollback_limit_bytes: usize,
host_terminal_theme: crate::terminal_theme::TerminalTheme,
+ host_terminal_appearance: Option<crate::terminal_theme::HostAppearance>,
events: mpsc::Sender<AppEvent>,
render_notify: Arc<Notify>,
render_dirty: Arc<RenderSignal>,
@@ -200,6 +211,7 @@ impl TerminalRuntime {
agent_detection,
scrollback_limit_bytes,
host_terminal_theme,
+ host_terminal_appearance,
events,
render_notify,
render_dirty,
@@ -211,6 +223,13 @@ impl TerminalRuntime {
self.0.apply_host_terminal_theme(theme);
}
+ pub fn apply_host_terminal_appearance(
+ &self,
+ appearance: Option<crate::terminal_theme::HostAppearance>,
+ ) {
+ self.0.apply_host_terminal_appearance(appearance);
+ }
+
pub fn begin_graceful_release(&self, agent: crate::detect::Agent) {
self.0.begin_graceful_release(agent);
}