mirror of
https://github.com/badlogic/pi-mono.git
synced 2026-05-03 00:30:21 +00:00
61 lines
1.8 KiB
Markdown
61 lines
1.8 KiB
Markdown
# tmux Setup
|
|
|
|
Pi works inside tmux, but tmux strips modifier information from certain keys by default. Without configuration, `Shift+Enter` and `Ctrl+Enter` are usually indistinguishable from plain `Enter`.
|
|
|
|
## Recommended Configuration
|
|
|
|
Add to `~/.tmux.conf`:
|
|
|
|
```tmux
|
|
set -g extended-keys on
|
|
set -g extended-keys-format csi-u
|
|
```
|
|
|
|
Then restart tmux fully:
|
|
|
|
```bash
|
|
tmux kill-server
|
|
tmux
|
|
```
|
|
|
|
Pi requests extended key reporting automatically when Kitty keyboard protocol is not available. With `extended-keys-format csi-u`, tmux forwards modified keys in CSI-u format, which is the most reliable configuration.
|
|
|
|
## Why `csi-u` Is Recommended
|
|
|
|
With only:
|
|
|
|
```tmux
|
|
set -g extended-keys on
|
|
```
|
|
|
|
tmux defaults to `extended-keys-format xterm`. When an application requests extended key reporting, modified keys are forwarded in xterm `modifyOtherKeys` format such as:
|
|
|
|
- `Ctrl+C` → `\x1b[27;5;99~`
|
|
- `Ctrl+D` → `\x1b[27;5;100~`
|
|
- `Ctrl+Enter` → `\x1b[27;5;13~`
|
|
|
|
With `extended-keys-format csi-u`, the same keys are forwarded as:
|
|
|
|
- `Ctrl+C` → `\x1b[99;5u`
|
|
- `Ctrl+D` → `\x1b[100;5u`
|
|
- `Ctrl+Enter` → `\x1b[13;5u`
|
|
|
|
Pi supports both formats, but `csi-u` is the recommended tmux setup.
|
|
|
|
## What This Fixes
|
|
|
|
Without tmux extended keys, modified Enter keys collapse to legacy sequences:
|
|
|
|
| Key | Without extkeys | With `csi-u` |
|
|
|-----|-----------------|--------------|
|
|
| Enter | `\r` | `\r` |
|
|
| Shift+Enter | `\r` | `\x1b[13;2u` |
|
|
| Ctrl+Enter | `\r` | `\x1b[13;5u` |
|
|
| Alt/Option+Enter | `\x1b\r` | `\x1b[13;3u` |
|
|
|
|
This affects the default keybindings (`Enter` to submit, `Shift+Enter` for newline) and any custom keybindings using modified Enter.
|
|
|
|
## Requirements
|
|
|
|
- tmux 3.2 or later (run `tmux -V` to check)
|
|
- A terminal emulator that supports extended keys (Ghostty, Kitty, iTerm2, WezTerm, Windows Terminal)
|