TUI: `Ctrl+/` side conversation toggle is ignored in Ghostty inside tmux

Open 💬 0 comments Opened Jul 30, 2026 by aofei

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?

  1. Start tmux in Ghostty.
  2. Start Codex CLI 0.146.0.
  3. Open a side conversation.
  4. Press Ctrl+/.
  5. Observe that the conversation does not switch.
  6. Run /keymap debug and press Ctrl+/.
  7. 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:

https://github.com/ghostty-org/ghostty/blob/6ad1fe7d8cbda36c77b337a96c9bea8a77883699/src/input/key_encode.zig#L775-L790

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.

View original on GitHub ↗