TUI: `Ctrl+/` side conversation toggle is ignored in Ghostty inside tmux
What version of Codex CLI is running?
0.146.0
What subscription do you have?
ChatGPT Pro 20x
Which model were you using?
gpt-5.6-sol
What platform is your computer?
Darwin 25.5.0 arm64 arm
What terminal emulator and version are you using (if applicable)?
Ghostty 1.3.2-main-+ae8727401, tmux 3.7b
Codex doctor report
What issue are you seeing?
The new Ctrl+/ shortcut introduced in #35011 does not toggle the side conversation when Codex runs in Ghostty inside tmux.
Codex's keypress inspector shows that pressing Ctrl+/ is received as Ctrl+_:
Detected: ctrl + _
Config key: ctrl-_
Raw event: code=Char('_'), modifiers=ctrl, kind=Press
Assigned actions:
none
The Ghostty configuration does not contain a binding for Ctrl+/.
What steps can reproduce the bug?
- Start tmux in Ghostty.
- Start Codex CLI 0.146.0.
- Open a side conversation.
- Press
Ctrl+/. - Observe that the conversation does not switch.
- Run
/keymap debugand pressCtrl+/. - Observe that Codex receives
Char('_')with the Control modifier.
What is the expected behavior?
Ctrl+/ should toggle between the side conversation and its parent.
The default binding should recognize Ctrl+_ as another terminal-compatible representation of Ctrl+/, similar to the existing Ctrl+7 compatibility alias.
Additional information
Ghostty maps Ctrl+/, Ctrl+7, and Ctrl+_ to the same C0 byte, 0x1f:
tmux normalizes 0x1f to Ctrl+_ and emits it using CSI-u when the inner application enables extended keyboard reporting.
Codex currently recognizes the configured Ctrl+/ binding and a hard-coded Ctrl+7 alias, but not Ctrl+_:
https://github.com/openai/codex/blob/rust-v0.146.0/codex-rs/tui/src/app/input.rs#L143-L151
The same logic is still present on main.
A local workaround is:
[tui.keymap.global]
toggle_side_conversation = ["ctrl-/", "ctrl-_"]
A possible fix would be to add Ctrl+_ alongside the existing Ctrl+7 compatibility alias and cover it in keymap conflict validation and tests.