From 342ddd435c256d01959ce2ee452a7e4cd1504d70 Mon Sep 17 00:00:00 2001 From: Felipe Coury Date: Tue, 5 May 2026 11:18:19 -0300 Subject: [PATCH] fix(tui): use kitty graphics for iterm pets --- codex-rs/tui/src/pets/image_protocol.rs | 25 +++++++++++++++---------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/codex-rs/tui/src/pets/image_protocol.rs b/codex-rs/tui/src/pets/image_protocol.rs index b34d3be0df..018ef9989b 100644 --- a/codex-rs/tui/src/pets/image_protocol.rs +++ b/codex-rs/tui/src/pets/image_protocol.rs @@ -151,21 +151,20 @@ fn pet_image_support_for_terminal(info: &TerminalInfo) -> PetImageSupport { fn supports_kitty_graphics(info: &TerminalInfo) -> bool { matches!( info.name, - TerminalName::Ghostty | TerminalName::Kitty | TerminalName::WezTerm + TerminalName::Ghostty | TerminalName::Iterm2 | TerminalName::Kitty | TerminalName::WezTerm ) || terminal_field_contains(info.term.as_deref(), "kitty") || terminal_field_contains(info.term.as_deref(), "ghostty") || terminal_field_contains(info.term.as_deref(), "wezterm") || terminal_field_contains(info.term_program.as_deref(), "kitty") || terminal_field_contains(info.term_program.as_deref(), "ghostty") + || terminal_field_contains(info.term_program.as_deref(), "iterm") || terminal_field_contains(info.term_program.as_deref(), "wezterm") } fn supports_sixel(info: &TerminalInfo) -> bool { - matches!(info.name, TerminalName::Iterm2) - || terminal_field_contains(info.term.as_deref(), "sixel") + terminal_field_contains(info.term.as_deref(), "sixel") || terminal_field_contains(info.term.as_deref(), "mlterm") || terminal_field_contains(info.term.as_deref(), "foot") - || terminal_field_contains(info.term_program.as_deref(), "iterm") } fn terminal_field_contains(value: Option<&str>, needle: &str) -> bool { @@ -387,6 +386,12 @@ mod tests { Some("Ghostty"), /*term*/ None, ), + terminal_info_for_test( + TerminalName::Iterm2, + /*multiplexer*/ None, + Some("iTerm.app"), + /*term*/ None, + ), terminal_info_for_test( TerminalName::Kitty, /*multiplexer*/ None, @@ -411,6 +416,12 @@ mod tests { /*term_program*/ None, Some("wezterm"), ), + terminal_info_for_test( + TerminalName::Unknown, + /*multiplexer*/ None, + Some("iTerm.app"), + Some("xterm-256color"), + ), terminal_info_for_test( TerminalName::Unknown, /*multiplexer*/ None, @@ -428,12 +439,6 @@ mod tests { #[test] fn pet_image_support_detects_sixel_terminals() { for info in [ - terminal_info_for_test( - TerminalName::Iterm2, - /*multiplexer*/ None, - Some("iTerm.app"), - /*term*/ None, - ), terminal_info_for_test( TerminalName::Unknown, /*multiplexer*/ None,