diff --git a/config.example.toml b/config.example.toml index 5dfee574..6634a891 100644 --- a/config.example.toml +++ b/config.example.toml @@ -201,6 +201,7 @@ osc8_links = true # emit OSC 8 escapes around URLs (Cmd+click in iTer # # Override: `locale = "zh-Hans"` for Simplified Chinese regardless of OS locale. # # Also settable at runtime: /config locale zh-Hans # # Note: this only affects TUI labels/chrome — it does NOT change model output language. +# use_terminal_colors = false # set true to let your terminal's color scheme take full control # ───────────────────────────────────────────────────────────────────────────────── # Feature Flags diff --git a/crates/tui/src/config.rs b/crates/tui/src/config.rs index 49fd56f3..5fe31ccb 100644 --- a/crates/tui/src/config.rs +++ b/crates/tui/src/config.rs @@ -343,6 +343,9 @@ pub struct TuiConfig { /// label and ignore the escape. Defaults to `true`; set `false` for /// terminals that misrender the sequence. pub osc8_links: Option, + /// When true, TUI uses Color::Reset everywhere and defers all color decisions + /// to the terminal emulator. Useful for terminals with custom color schemes. + pub use_terminal_colors: Option, } /// Notification delivery method (mirrors `tui::notifications::Method`). diff --git a/crates/tui/src/tui/pager.rs b/crates/tui/src/tui/pager.rs index 19ea9f99..481805e0 100644 --- a/crates/tui/src/tui/pager.rs +++ b/crates/tui/src/tui/pager.rs @@ -385,7 +385,7 @@ impl ModalView for PagerView { Color::DarkGray }; let fg = if is_current { - Color::Black + Color::Reset } else { Color::Yellow }; diff --git a/crates/tui/src/tui/widgets/mod.rs b/crates/tui/src/tui/widgets/mod.rs index b9de3587..72aa0782 100644 --- a/crates/tui/src/tui/widgets/mod.rs +++ b/crates/tui/src/tui/widgets/mod.rs @@ -1381,7 +1381,7 @@ fn apply_detail_target_highlight( target_cell: usize, line_meta: &[TranscriptLineMeta], ) { - let highlight_bg = Color::Rgb(18, 29, 39); + let highlight_bg = Color::Reset; for (idx, line) in lines.iter_mut().enumerate() { let line_index = top + idx; if let Some(TranscriptLineMeta::CellLine { cell_index, .. }) = line_meta.get(line_index)