From d7f7fa410698fbbb75548cde553a4fbf43fc268e Mon Sep 17 00:00:00 2001 From: Benjamin Carlsson Date: Tue, 29 Sep 2026 02:17:37 +0000 Subject: [PATCH] Remove the plus separator after Option symbols in TUI key hints (#49136) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## What changed Render macOS Option shortcuts as `⌥t` and `ctrl+⌥t` instead of `⌥+t` and `ctrl+⌥+t`. Keep `+` separators after text modifier labels such as `ctrl`, `shift`, and `alt`. ## Testing Update key-label and chord assertions and UI snapshots to expect the compact labels across shortcut help, navigation hints, and tooltips. GitOrigin-RevId: 7d52088ebce3dfa3f8bdad65eb159ca0fead8a31 --- ...__tests__owned_history_loading_footer.snap | 6 ++-- .../app/tests/session_lifecycle_requests.rs | 2 +- ...les_without_restarting_their_deadline.snap | 32 ++++++++--------- ...kle_but_literal_question_marks_do_not.snap | 16 ++++----- ...shortcut_help_follows_runtime_binding.snap | 36 +++++++++---------- ...ce__tests__shortcut_help_above_narrow.snap | 16 ++++----- ...face__tests__shortcut_help_above_wide.snap | 12 +++---- ...mposer__tests__agents_navigation_help.snap | 16 ++++----- ...ts__footer_mode_configured_key_chords.snap | 16 ++++----- ...__tests__footer_mode_shortcut_overlay.snap | 16 ++++----- ...de_shortcut_overlay_queue_submissions.snap | 16 ++++----- ...shortcuts_collaboration_modes_enabled.snap | 16 ++++----- ...oter__tests__footer_shortcuts_running.snap | 16 ++++----- ...tests__footer_shortcuts_shift_and_esc.snap | 16 ++++----- ...ests__shortcut_overlay_customized_wsl.snap | 16 ++++----- ...estions_tests__question_queue_hint_Up.snap | 2 +- codex-rs/tui/src/key_hint.rs | 4 ++- codex-rs/tui/src/key_hint_label_tests.rs | 4 +-- codex-rs/tui/src/keymap/chords_tests.rs | 4 +-- ...ript_overlay_paginated_history_states.snap | 3 +- ...ay_paginated_history_states_non_macos.snap | 2 +- ..._app__tests__path_backed_agent_picker.snap | 2 +- ...ked_thread_notifications_agent_picker.snap | 2 +- ..._shortcut_tips_render_at_narrow_width.snap | 5 ++- .../tui/src/transcript_view/footer_tests.rs | 2 +- ...oter__tests__compact_navigation_hints.snap | 7 ++-- 26 files changed, 142 insertions(+), 143 deletions(-) diff --git a/codex-rs/tui/src/app/snapshots/codex_tui__app__owned_transcript__tests__owned_history_loading_footer.snap b/codex-rs/tui/src/app/snapshots/codex_tui__app__owned_transcript__tests__owned_history_loading_footer.snap index da3be283b3..c1cfae6862 100644 --- a/codex-rs/tui/src/app/snapshots/codex_tui__app__owned_transcript__tests__owned_history_loading_footer.snap +++ b/codex-rs/tui/src/app/snapshots/codex_tui__app__owned_transcript__tests__owned_history_loading_footer.snap @@ -9,7 +9,7 @@ expression: "snapshots.join(\"\\n\\n\")" ↑ Loading earlier messages… · esc latest 80 columns · Failed - Retry history: ⌥+ Result<()> { .replace(&child_thread_id.to_string(), "[child]"), @r###" Subagents - Select an agent to watch. ⌥+← previous, ⌥+→ next. + Select an agent to watch. ⌥← previous, ⌥→ next. › 1. • Main [default] (current) [root] diff --git a/codex-rs/tui/src/bottom_pane/chat_composer/snapshots/codex_tui__bottom_pane__chat_composer__sparkle__tests__shortcut_help_hides_visible_sparkles_without_restarting_their_deadline.snap b/codex-rs/tui/src/bottom_pane/chat_composer/snapshots/codex_tui__bottom_pane__chat_composer__sparkle__tests__shortcut_help_hides_visible_sparkles_without_restarting_their_deadline.snap index 3016ed7189..79185244d1 100644 --- a/codex-rs/tui/src/bottom_pane/chat_composer/snapshots/codex_tui__bottom_pane__chat_composer__sparkle__tests__shortcut_help_hides_visible_sparkles_without_restarting_their_deadline.snap +++ b/codex-rs/tui/src/bottom_pane/chat_composer/snapshots/codex_tui__bottom_pane__chat_composer__sparkle__tests__shortcut_help_hides_visible_sparkles_without_restarting_their_deadline.snap @@ -13,18 +13,18 @@ shortcut help: Compose Session / Commands tab Send message - @ Mention files ⌥+, Less reasoning - ! Shell command ⌥+. More reasoning + @ Mention files ⌥, Less reasoning + ! Shell command ⌥. More reasoning ctrl+j New line f4 Inspect activity ctrl+v Paste image ctrl+c Quit ctrl+g External editor ctrl+r Search history Transcript (open first) - esc esc Edit last message ctrl+t Open transcript - f3 Find text - pgup / pgdn Scroll - ctrl+space Start selection - ctrl+home / ctrl+end Top / latest - shift+⌥+, / shift+⌥+. Top / latest + esc esc Edit last message ctrl+t Open transcript + f3 Find text + pgup / pgdn Scroll + ctrl+space Start selection + ctrl+home / ctrl+end Top / latest + shift+⌥, / shift+⌥. Top / latest /keymap customize @@ -48,18 +48,18 @@ shortcut help: Compose Session / Commands tab Send message - @ Mention files ⌥+, Less reasoning - ! Shell command ⌥+. More reasoning + @ Mention files ⌥, Less reasoning + ! Shell command ⌥. More reasoning ctrl+j New line f4 Inspect activity ctrl+v Paste image ctrl+c Quit ctrl+g External editor ctrl+r Search history Transcript (open first) - esc esc Edit last message ctrl+t Open transcript - f3 Find text - pgup / pgdn Scroll - ctrl+space Start selection - ctrl+home / ctrl+end Top / latest - shift+⌥+, / shift+⌥+. Top / latest + esc esc Edit last message ctrl+t Open transcript + f3 Find text + pgup / pgdn Scroll + ctrl+space Start selection + ctrl+home / ctrl+end Top / latest + shift+⌥, / shift+⌥. Top / latest /keymap customize diff --git a/codex-rs/tui/src/bottom_pane/chat_composer/snapshots/codex_tui__bottom_pane__chat_composer__sparkle__tests__shortcut_help_preserves_an_unused_sparkle_but_literal_question_marks_do_not.snap b/codex-rs/tui/src/bottom_pane/chat_composer/snapshots/codex_tui__bottom_pane__chat_composer__sparkle__tests__shortcut_help_preserves_an_unused_sparkle_but_literal_question_marks_do_not.snap index bcebcd4bb5..0e43b92df4 100644 --- a/codex-rs/tui/src/bottom_pane/chat_composer/snapshots/codex_tui__bottom_pane__chat_composer__sparkle__tests__shortcut_help_preserves_an_unused_sparkle_but_literal_question_marks_do_not.snap +++ b/codex-rs/tui/src/bottom_pane/chat_composer/snapshots/codex_tui__bottom_pane__chat_composer__sparkle__tests__shortcut_help_preserves_an_unused_sparkle_but_literal_question_marks_do_not.snap @@ -7,18 +7,18 @@ shortcut help: Compose Session / Commands tab Send message - @ Mention files ⌥+, Less reasoning - ! Shell command ⌥+. More reasoning + @ Mention files ⌥, Less reasoning + ! Shell command ⌥. More reasoning ctrl+j New line f4 Inspect activity ctrl+v Paste image ctrl+c Quit ctrl+g External editor ctrl+r Search history Transcript (open first) - esc esc Edit last message ctrl+t Open transcript - f3 Find text - pgup / pgdn Scroll - ctrl+space Start selection - ctrl+home / ctrl+end Top / latest - shift+⌥+, / shift+⌥+. Top / latest + esc esc Edit last message ctrl+t Open transcript + f3 Find text + pgup / pgdn Scroll + ctrl+space Start selection + ctrl+home / ctrl+end Top / latest + shift+⌥, / shift+⌥. Top / latest /keymap customize diff --git a/codex-rs/tui/src/bottom_pane/chat_composer/snapshots/codex_tui__bottom_pane__chat_composer__status_surface__tests__activity_shortcut_help_follows_runtime_binding.snap b/codex-rs/tui/src/bottom_pane/chat_composer/snapshots/codex_tui__bottom_pane__chat_composer__status_surface__tests__activity_shortcut_help_follows_runtime_binding.snap index 1d3d9c8311..bdd1b21550 100644 --- a/codex-rs/tui/src/bottom_pane/chat_composer/snapshots/codex_tui__bottom_pane__chat_composer__status_surface__tests__activity_shortcut_help_follows_runtime_binding.snap +++ b/codex-rs/tui/src/bottom_pane/chat_composer/snapshots/codex_tui__bottom_pane__chat_composer__status_surface__tests__activity_shortcut_help_follows_runtime_binding.snap @@ -14,12 +14,12 @@ expression: "snapshots.join(\"\\n---\\n\")" Keyboard shortcuts Compose Session Transcript (open first) - / Commands tab Send message ctrl+t Open transcript - @ Mention files ⌥+, Less reasoning f3 Find text - ! Shell command ⌥+. More reasoning pgup / pgdn Scroll - ctrl+j New line f4 Inspect activity ctrl+space Start selection - ctrl+v Paste image ctrl+c Quit ctrl+home / ctrl+end Top / latest - ctrl+g External editor shift+⌥+, / shift+⌥+. Top / latest + / Commands tab Send message ctrl+t Open transcript + @ Mention files ⌥, Less reasoning f3 Find text + ! Shell command ⌥. More reasoning pgup / pgdn Scroll + ctrl+j New line f4 Inspect activity ctrl+space Start selection + ctrl+v Paste image ctrl+c Quit ctrl+home / ctrl+end Top / latest + ctrl+g External editor shift+⌥, / shift+⌥. Top / latest ctrl+r Search history esc esc Edit last message @@ -42,12 +42,12 @@ expression: "snapshots.join(\"\\n---\\n\")" Keyboard shortcuts Compose Session Transcript (open first) - / Commands tab Send message ctrl+t Open transcript - @ Mention files ⌥+, Less reasoning f3 Find text - ! Shell command ⌥+. More reasoning pgup / pgdn Scroll - ctrl+j New line ctrl+x t Inspect activity ctrl+space Start selection - ctrl+v Paste image ctrl+c Quit ctrl+home / ctrl+end Top / latest - ctrl+g External editor shift+⌥+, / shift+⌥+. Top / latest + / Commands tab Send message ctrl+t Open transcript + @ Mention files ⌥, Less reasoning f3 Find text + ! Shell command ⌥. More reasoning pgup / pgdn Scroll + ctrl+j New line ctrl+x t Inspect activity ctrl+space Start selection + ctrl+v Paste image ctrl+c Quit ctrl+home / ctrl+end Top / latest + ctrl+g External editor shift+⌥, / shift+⌥. Top / latest ctrl+r Search history esc esc Edit last message @@ -70,12 +70,12 @@ expression: "snapshots.join(\"\\n---\\n\")" Keyboard shortcuts Compose Session Transcript (open first) - / Commands tab Send message ctrl+t Open transcript - @ Mention files ⌥+, Less reasoning f3 Find text - ! Shell command ⌥+. More reasoning pgup / pgdn Scroll - ctrl+j New line ctrl+c Quit ctrl+space Start selection - ctrl+v Paste image ctrl+home / ctrl+end Top / latest - ctrl+g External editor shift+⌥+, / shift+⌥+. Top / latest + / Commands tab Send message ctrl+t Open transcript + @ Mention files ⌥, Less reasoning f3 Find text + ! Shell command ⌥. More reasoning pgup / pgdn Scroll + ctrl+j New line ctrl+c Quit ctrl+space Start selection + ctrl+v Paste image ctrl+home / ctrl+end Top / latest + ctrl+g External editor shift+⌥, / shift+⌥. Top / latest ctrl+r Search history esc esc Edit last message diff --git a/codex-rs/tui/src/bottom_pane/chat_composer/snapshots/codex_tui__bottom_pane__chat_composer__status_surface__tests__shortcut_help_above_narrow.snap b/codex-rs/tui/src/bottom_pane/chat_composer/snapshots/codex_tui__bottom_pane__chat_composer__status_surface__tests__shortcut_help_above_narrow.snap index 84f7c14204..cb5cc69d5e 100644 --- a/codex-rs/tui/src/bottom_pane/chat_composer/snapshots/codex_tui__bottom_pane__chat_composer__status_surface__tests__shortcut_help_above_narrow.snap +++ b/codex-rs/tui/src/bottom_pane/chat_composer/snapshots/codex_tui__bottom_pane__chat_composer__status_surface__tests__shortcut_help_above_narrow.snap @@ -24,18 +24,18 @@ expression: text Session tab Send message - ⌥+, Less reasoning - ⌥+. More reasoning + ⌥, Less reasoning + ⌥. More reasoning f4 Inspect activity ctrl+c Quit Transcript (open first) - ctrl+t Open transcript - f3 Find text - pgup / pgdn Scroll - ctrl+space Start selection - ctrl+home / ctrl+end Top / latest - shift+⌥+, / shift+⌥+. Top / latest + ctrl+t Open transcript + f3 Find text + pgup / pgdn Scroll + ctrl+space Start selection + ctrl+home / ctrl+end Top / latest + shift+⌥, / shift+⌥. Top / latest /keymap customize diff --git a/codex-rs/tui/src/bottom_pane/chat_composer/snapshots/codex_tui__bottom_pane__chat_composer__status_surface__tests__shortcut_help_above_wide.snap b/codex-rs/tui/src/bottom_pane/chat_composer/snapshots/codex_tui__bottom_pane__chat_composer__status_surface__tests__shortcut_help_above_wide.snap index 304ad3ed39..e7493456d0 100644 --- a/codex-rs/tui/src/bottom_pane/chat_composer/snapshots/codex_tui__bottom_pane__chat_composer__status_surface__tests__shortcut_help_above_wide.snap +++ b/codex-rs/tui/src/bottom_pane/chat_composer/snapshots/codex_tui__bottom_pane__chat_composer__status_surface__tests__shortcut_help_above_wide.snap @@ -13,12 +13,12 @@ expression: text Keyboard shortcuts Compose Session Transcript (open first) - / Commands tab Send message ctrl+t Open transcript - @ Mention files ⌥+, Less reasoning f3 Find text - ! Shell command ⌥+. More reasoning pgup / pgdn Scroll - ctrl+j New line f4 Inspect activity ctrl+space Start selection - ctrl+v Paste image ctrl+c Quit ctrl+home / ctrl+end Top / latest - ctrl+g External editor shift+⌥+, / shift+⌥+. Top / latest + / Commands tab Send message ctrl+t Open transcript + @ Mention files ⌥, Less reasoning f3 Find text + ! Shell command ⌥. More reasoning pgup / pgdn Scroll + ctrl+j New line f4 Inspect activity ctrl+space Start selection + ctrl+v Paste image ctrl+c Quit ctrl+home / ctrl+end Top / latest + ctrl+g External editor shift+⌥, / shift+⌥. Top / latest ctrl+r Search history esc esc Edit last message diff --git a/codex-rs/tui/src/bottom_pane/snapshots/codex_tui__bottom_pane__chat_composer__tests__agents_navigation_help.snap b/codex-rs/tui/src/bottom_pane/snapshots/codex_tui__bottom_pane__chat_composer__tests__agents_navigation_help.snap index 4fd8fbc9a1..5ebf53ced5 100644 --- a/codex-rs/tui/src/bottom_pane/snapshots/codex_tui__bottom_pane__chat_composer__tests__agents_navigation_help.snap +++ b/codex-rs/tui/src/bottom_pane/snapshots/codex_tui__bottom_pane__chat_composer__tests__agents_navigation_help.snap @@ -6,19 +6,19 @@ expression: terminal.backend() " " " Compose Session " " / Commands tab Send message " -" @ Mention files ⌥+, Less reasoning " -" ! Shell command ⌥+. More reasoning " +" @ Mention files ⌥, Less reasoning " +" ! Shell command ⌥. More reasoning " " ctrl+j New line ← Agents (empty prompt) " " ctrl+v Paste image f4 Inspect activity " " ctrl+g External editor ctrl+c Quit " " ctrl+r Search history " " esc esc Edit last message Transcript (open first) " -" ctrl+t Open transcript " -" f3 Find text " -" pgup / pgdn Scroll " -" ctrl+space Start selection " -" ctrl+home / ctrl+end Top / latest " -" shift+⌥+, / shift+⌥+. Top / latest " +" ctrl+t Open transcript " +" f3 Find text " +" pgup / pgdn Scroll " +" ctrl+space Start selection " +" ctrl+home / ctrl+end Top / latest " +" shift+⌥, / shift+⌥. Top / latest " " " " /keymap customize " " " diff --git a/codex-rs/tui/src/bottom_pane/snapshots/codex_tui__bottom_pane__chat_composer__tests__footer_mode_configured_key_chords.snap b/codex-rs/tui/src/bottom_pane/snapshots/codex_tui__bottom_pane__chat_composer__tests__footer_mode_configured_key_chords.snap index ac5dc30da6..bd11f949ed 100644 --- a/codex-rs/tui/src/bottom_pane/snapshots/codex_tui__bottom_pane__chat_composer__tests__footer_mode_configured_key_chords.snap +++ b/codex-rs/tui/src/bottom_pane/snapshots/codex_tui__bottom_pane__chat_composer__tests__footer_mode_configured_key_chords.snap @@ -6,18 +6,18 @@ expression: terminal.backend() " " " Compose Session " " / Commands tab Send message " -" @ Mention files ⌥+, Less reasoning " -" ! Shell command ⌥+. More reasoning " +" @ Mention files ⌥, Less reasoning " +" ! Shell command ⌥. More reasoning " " ctrl+x enter New line f4 Inspect activity " " ctrl+v Paste image ctrl+c Quit " " ctrl+g ctrl+g External editor " " ctrl+r Search history Transcript (open first) " -" esc esc Edit last message ctrl+t Open transcript " -" f3 Find text " -" pgup / pgdn Scroll " -" ctrl+space Start selection " -" ctrl+home / ctrl+end Top / latest " -" shift+⌥+, / shift+⌥+. Top / latest " +" esc esc Edit last message ctrl+t Open transcript " +" f3 Find text " +" pgup / pgdn Scroll " +" ctrl+space Start selection " +" ctrl+home / ctrl+end Top / latest " +" shift+⌥, / shift+⌥. Top / latest " " " " /keymap customize " " " diff --git a/codex-rs/tui/src/bottom_pane/snapshots/codex_tui__bottom_pane__chat_composer__tests__footer_mode_shortcut_overlay.snap b/codex-rs/tui/src/bottom_pane/snapshots/codex_tui__bottom_pane__chat_composer__tests__footer_mode_shortcut_overlay.snap index 3b60d2cf47..ad70ddb279 100644 --- a/codex-rs/tui/src/bottom_pane/snapshots/codex_tui__bottom_pane__chat_composer__tests__footer_mode_shortcut_overlay.snap +++ b/codex-rs/tui/src/bottom_pane/snapshots/codex_tui__bottom_pane__chat_composer__tests__footer_mode_shortcut_overlay.snap @@ -6,18 +6,18 @@ expression: terminal.backend() " " " Compose Session " " / Commands tab Send message " -" @ Mention files ⌥+, Less reasoning " -" ! Shell command ⌥+. More reasoning " +" @ Mention files ⌥, Less reasoning " +" ! Shell command ⌥. More reasoning " " shift+enter New line f4 Inspect activity " " ctrl+v Paste image ctrl+c Quit " " ctrl+g External editor " " ctrl+r Search history Transcript (open first) " -" esc Edit last message ctrl+t Open transcript " -" f3 Find text " -" pgup / pgdn Scroll " -" ctrl+space Start selection " -" ctrl+home / ctrl+end Top / latest " -" shift+⌥+, / shift+⌥+. Top / latest " +" esc Edit last message ctrl+t Open transcript " +" f3 Find text " +" pgup / pgdn Scroll " +" ctrl+space Start selection " +" ctrl+home / ctrl+end Top / latest " +" shift+⌥, / shift+⌥. Top / latest " " " " /keymap customize " " " diff --git a/codex-rs/tui/src/bottom_pane/snapshots/codex_tui__bottom_pane__chat_composer__tests__footer_mode_shortcut_overlay_queue_submissions.snap b/codex-rs/tui/src/bottom_pane/snapshots/codex_tui__bottom_pane__chat_composer__tests__footer_mode_shortcut_overlay_queue_submissions.snap index 2c3774ef66..3729a7708f 100644 --- a/codex-rs/tui/src/bottom_pane/snapshots/codex_tui__bottom_pane__chat_composer__tests__footer_mode_shortcut_overlay_queue_submissions.snap +++ b/codex-rs/tui/src/bottom_pane/snapshots/codex_tui__bottom_pane__chat_composer__tests__footer_mode_shortcut_overlay_queue_submissions.snap @@ -6,18 +6,18 @@ expression: terminal.backend() " " " Compose Session " " / Commands tab Queue message " -" @ Mention files ⌥+, Less reasoning " -" ! Shell command ⌥+. More reasoning " +" @ Mention files ⌥, Less reasoning " +" ! Shell command ⌥. More reasoning " " shift+enter New line f4 Inspect activity " " ctrl+v Paste image ctrl+c Quit " " ctrl+g External editor " " ctrl+r Search history Transcript (open first) " -" esc esc Edit last message ctrl+t Open transcript " -" f3 Find text " -" pgup / pgdn Scroll " -" ctrl+space Start selection " -" ctrl+home / ctrl+end Top / latest " -" shift+⌥+, / shift+⌥+. Top / latest " +" esc esc Edit last message ctrl+t Open transcript " +" f3 Find text " +" pgup / pgdn Scroll " +" ctrl+space Start selection " +" ctrl+home / ctrl+end Top / latest " +" shift+⌥, / shift+⌥. Top / latest " " " " /keymap customize " " " diff --git a/codex-rs/tui/src/bottom_pane/snapshots/codex_tui__bottom_pane__footer__tests__footer_shortcuts_collaboration_modes_enabled.snap b/codex-rs/tui/src/bottom_pane/snapshots/codex_tui__bottom_pane__footer__tests__footer_shortcuts_collaboration_modes_enabled.snap index 191f6faff5..400c4dd0a4 100644 --- a/codex-rs/tui/src/bottom_pane/snapshots/codex_tui__bottom_pane__footer__tests__footer_shortcuts_collaboration_modes_enabled.snap +++ b/codex-rs/tui/src/bottom_pane/snapshots/codex_tui__bottom_pane__footer__tests__footer_shortcuts_collaboration_modes_enabled.snap @@ -7,18 +7,18 @@ expression: terminal.backend() " Compose Session " " / Commands tab Send message " " @ Mention files shift+tab Change mode " -" ! Shell command ⌥+, Less reasoning " -" ctrl+j New line ⌥+. More reasoning " +" ! Shell command ⌥, Less reasoning " +" ctrl+j New line ⌥. More reasoning " " ctrl+v Paste image f8 Voice " " ctrl+g External editor f4 Inspect activity " " ctrl+r Search history ctrl+c Quit " " esc esc Edit last message " " Transcript (open first) " -" ctrl+t Open transcript " -" f3 Find text " -" pgup / pgdn Scroll " -" ctrl+space Start selection " -" ctrl+home / ctrl+end Top / latest " -" shift+⌥+, / shift+⌥+. Top / latest " +" ctrl+t Open transcript " +" f3 Find text " +" pgup / pgdn Scroll " +" ctrl+space Start selection " +" ctrl+home / ctrl+end Top / latest " +" shift+⌥, / shift+⌥. Top / latest " " " " /keymap customize " diff --git a/codex-rs/tui/src/bottom_pane/snapshots/codex_tui__bottom_pane__footer__tests__footer_shortcuts_running.snap b/codex-rs/tui/src/bottom_pane/snapshots/codex_tui__bottom_pane__footer__tests__footer_shortcuts_running.snap index 96ca5ec3f8..24675e60be 100644 --- a/codex-rs/tui/src/bottom_pane/snapshots/codex_tui__bottom_pane__footer__tests__footer_shortcuts_running.snap +++ b/codex-rs/tui/src/bottom_pane/snapshots/codex_tui__bottom_pane__footer__tests__footer_shortcuts_running.snap @@ -6,18 +6,18 @@ expression: terminal.backend() " " " Compose Session " " / Commands tab Queue message " -" @ Mention files ⌥+, Less reasoning " -" ! Shell command ⌥+. More reasoning " +" @ Mention files ⌥, Less reasoning " +" ! Shell command ⌥. More reasoning " " ctrl+j New line f8 Voice " " ctrl+v Paste image f4 Inspect activity " " ctrl+g External editor ctrl+c Interrupt " " ctrl+r Search history " " esc esc Edit last message Transcript (open first) " -" ctrl+t Open transcript " -" f3 Find text " -" pgup / pgdn Scroll " -" ctrl+space Start selection " -" ctrl+home / ctrl+end Top / latest " -" shift+⌥+, / shift+⌥+. Top / latest " +" ctrl+t Open transcript " +" f3 Find text " +" pgup / pgdn Scroll " +" ctrl+space Start selection " +" ctrl+home / ctrl+end Top / latest " +" shift+⌥, / shift+⌥. Top / latest " " " " /keymap customize " diff --git a/codex-rs/tui/src/bottom_pane/snapshots/codex_tui__bottom_pane__footer__tests__footer_shortcuts_shift_and_esc.snap b/codex-rs/tui/src/bottom_pane/snapshots/codex_tui__bottom_pane__footer__tests__footer_shortcuts_shift_and_esc.snap index 5ecba9d728..8728b00f08 100644 --- a/codex-rs/tui/src/bottom_pane/snapshots/codex_tui__bottom_pane__footer__tests__footer_shortcuts_shift_and_esc.snap +++ b/codex-rs/tui/src/bottom_pane/snapshots/codex_tui__bottom_pane__footer__tests__footer_shortcuts_shift_and_esc.snap @@ -6,18 +6,18 @@ expression: terminal.backend() " " " Compose Session " " / Commands tab Send message " -" @ Mention files ⌥+, Less reasoning " -" ! Shell command ⌥+. More reasoning " +" @ Mention files ⌥, Less reasoning " +" ! Shell command ⌥. More reasoning " " shift+enter New line f8 Voice " " ctrl+v Paste image f4 Inspect activity " " ctrl+g External editor ctrl+c Quit " " ctrl+r Search history " " esc Edit last message Transcript (open first) " -" ctrl+t Open transcript " -" f3 Find text " -" pgup / pgdn Scroll " -" ctrl+space Start selection " -" ctrl+home / ctrl+end Top / latest " -" shift+⌥+, / shift+⌥+. Top / latest " +" ctrl+t Open transcript " +" f3 Find text " +" pgup / pgdn Scroll " +" ctrl+space Start selection " +" ctrl+home / ctrl+end Top / latest " +" shift+⌥, / shift+⌥. Top / latest " " " " /keymap customize " diff --git a/codex-rs/tui/src/bottom_pane/snapshots/codex_tui__bottom_pane__shortcut_overlay__tests__shortcut_overlay_customized_wsl.snap b/codex-rs/tui/src/bottom_pane/snapshots/codex_tui__bottom_pane__shortcut_overlay__tests__shortcut_overlay_customized_wsl.snap index 44e3afb8fe..9cf8743531 100644 --- a/codex-rs/tui/src/bottom_pane/snapshots/codex_tui__bottom_pane__shortcut_overlay__tests__shortcut_overlay_customized_wsl.snap +++ b/codex-rs/tui/src/bottom_pane/snapshots/codex_tui__bottom_pane__shortcut_overlay__tests__shortcut_overlay_customized_wsl.snap @@ -7,18 +7,18 @@ expression: terminal.backend() " Compose Session " " / Commands tab Send message " " @ Mention files shift+tab Change mode " -" ! Shell command ⌥+. More reasoning " +" ! Shell command ⌥. More reasoning " " shift+enter New line f8 Voice " -" ctrl+⌥+v Paste image ← Agents (empty prompt) " +" ctrl+⌥v Paste image ← Agents (empty prompt) " " ctrl+x ctrl+e External editor f4 Inspect activity " " esc Edit last message ctrl+c Quit " " " " Transcript (open first) " -" ctrl+t Open transcript " -" f3 Find text " -" pgup / pgdn Scroll " -" ctrl+space Start selection " -" ctrl+home / ctrl+end Top / latest " -" shift+⌥+, / shift+⌥+. Top / latest " +" ctrl+t Open transcript " +" f3 Find text " +" pgup / pgdn Scroll " +" ctrl+space Start selection " +" ctrl+home / ctrl+end Top / latest " +" shift+⌥, / shift+⌥. Top / latest " " " " /keymap customize " diff --git a/codex-rs/tui/src/chatwidget/tests/snapshots/codex_tui__chatwidget__tests__questions_tests__question_queue_hint_Up.snap b/codex-rs/tui/src/chatwidget/tests/snapshots/codex_tui__chatwidget__tests__questions_tests__question_queue_hint_Up.snap index 0a07dbe628..9e4b422a7a 100644 --- a/codex-rs/tui/src/chatwidget/tests/snapshots/codex_tui__chatwidget__tests__questions_tests__question_queue_hint_Up.snap +++ b/codex-rs/tui/src/chatwidget/tests/snapshots/codex_tui__chatwidget__tests__questions_tests__question_queue_hint_Up.snap @@ -11,4 +11,4 @@ expression: "render_bottom_popup(&chat, 100)" Type your answer - enter submit ctrl+] skip ⌥+↓ main prompt ⌥+↑ next question + enter submit ctrl+] skip ⌥↓ main prompt ⌥↑ next question diff --git a/codex-rs/tui/src/key_hint.rs b/codex-rs/tui/src/key_hint.rs index f9e2c41b50..1a46573714 100644 --- a/codex-rs/tui/src/key_hint.rs +++ b/codex-rs/tui/src/key_hint.rs @@ -89,7 +89,9 @@ impl KeyBinding { ] { if self.modifiers.contains(modifier) { label.push_str(name); - label.push('+'); + if !matches!(name, "⌥" | "⌘" | "^") { + label.push('+'); + } } } let key = match self.key { diff --git a/codex-rs/tui/src/key_hint_label_tests.rs b/codex-rs/tui/src/key_hint_label_tests.rs index be15328df9..d717f8b387 100644 --- a/codex-rs/tui/src/key_hint_label_tests.rs +++ b/codex-rs/tui/src/key_hint_label_tests.rs @@ -11,9 +11,9 @@ use ratatui::widgets::Paragraph; fn modifier_combinations_stay_compact_inside_chords() { let cases = [ (KeyModifiers::CONTROL, "ctrl+t"), - (KeyModifiers::ALT, "⌥+t"), + (KeyModifiers::ALT, "⌥t"), (KeyModifiers::CONTROL | KeyModifiers::SHIFT, "ctrl+shift+t"), - (KeyModifiers::CONTROL | KeyModifiers::ALT, "ctrl+⌥+t"), + (KeyModifiers::CONTROL | KeyModifiers::ALT, "ctrl+⌥t"), ]; for (modifiers, expected) in cases { let prefix = KeyBinding::new(KeyCode::Char('t'), modifiers); diff --git a/codex-rs/tui/src/keymap/chords_tests.rs b/codex-rs/tui/src/keymap/chords_tests.rs index 148259f52e..451faa5778 100644 --- a/codex-rs/tui/src/keymap/chords_tests.rs +++ b/codex-rs/tui/src/keymap/chords_tests.rs @@ -589,8 +589,8 @@ fn pending_hint_skips_whole_oversized_configured_completions() { assert_eq!( scenes, [ - "80: ctrl+x then · shift+⌥+f11 activity · ctrl+shift+⌥+f12 copy · esc cancel", - "32: shift+⌥+f11 inspect · esc cancel", + "80: ctrl+x then · shift+⌥f11 activity · ctrl+shift+⌥f12 copy · esc cancel", + "32: shift+⌥f11 inspect · esc cancel", "12: esc cancel", ] ); diff --git a/codex-rs/tui/src/pager_overlay/snapshots/codex_tui__pager_overlay__transcript_tests__transcript_overlay_paginated_history_states.snap b/codex-rs/tui/src/pager_overlay/snapshots/codex_tui__pager_overlay__transcript_tests__transcript_overlay_paginated_history_states.snap index 94e53e1df6..2fcab53e1a 100644 --- a/codex-rs/tui/src/pager_overlay/snapshots/codex_tui__pager_overlay__transcript_tests__transcript_overlay_paginated_history_states.snap +++ b/codex-rs/tui/src/pager_overlay/snapshots/codex_tui__pager_overlay__transcript_tests__transcript_overlay_paginated_history_states.snap @@ -1,6 +1,5 @@ --- source: tui/src/pager_overlay/transcript_tests.rs -assertion_line: 417 expression: snapshots --- --- loading --- @@ -32,7 +31,7 @@ recent transcript -Retry history: ⌥+>().join(\"\\n\")" --- Line::from("Default") @@ -24,8 +23,8 @@ Line::from_iter([Span::from("Tip:").bold(), Span::from(" Press "), Span::from("c Line::from("entered prompts.") Line::default() Line::from_iter([Span::from("Tip:").bold(), Span::from(" For models with adjustable")]) -Line::from_iter([Span::from("reasoning, press "), Span::from("⌥+.").fg(Color::Rgb(166, 227, 161)), Span::from(" to increase")]) -Line::from_iter([Span::from("reasoning effort or "), Span::from("⌥+,").fg(Color::Rgb(166, 227, 161)), Span::from(" to decrease it.")]) +Line::from_iter([Span::from("reasoning, press "), Span::from("⌥.").fg(Color::Rgb(166, 227, 161)), Span::from(" to increase")]) +Line::from_iter([Span::from("reasoning effort or "), Span::from("⌥,").fg(Color::Rgb(166, 227, 161)), Span::from(" to decrease it.")]) Line::default() Line::from("Remapped") Line::from_iter([Span::from("Tip:").bold(), Span::from(" Press "), Span::from("ctrl+x q").fg(Color::Rgb(166, 227, 161)), Span::from(" to queue a message")]) diff --git a/codex-rs/tui/src/transcript_view/footer_tests.rs b/codex-rs/tui/src/transcript_view/footer_tests.rs index fd42877a39..db8e030d4a 100644 --- a/codex-rs/tui/src/transcript_view/footer_tests.rs +++ b/codex-rs/tui/src/transcript_view/footer_tests.rs @@ -301,7 +301,7 @@ fn loading_completion_restores_unseen_activity_and_failure_stops_motion() { let failed = view .footer(/*width*/ 80, MotionMode::Reduced) .expect("failed history footer"); - insta::assert_snapshot!(failed.text.to_string(), @"New activity · Retry history: ⌥+