XTWINOPS — Window manipulation (CSI Ps ; Ps ; Ps t)
xterm's window-manipulation family — resize, minimise, raise/lower, query size, push/pop title.
Byte forms
Every common string-literal form so you can paste-and-search either direction.
\x1b[<Ps>t or \x1b[<Ps>;<Pa>;<Pb>t\033[18t\e[18tESC [ Ps ; Pa ; Pb t1b 5b ... 74Description
Dispatches by first parameter Ps. Common operations: 1 de-iconify, 2 iconify, 3;x;y move window to (x,y) pixels, 4;h;w resize to (h,w) pixels, 5 raise window, 6 lower window, 7 refresh, 8;rows;cols resize text area to (rows,cols), 9;0 un-maximise, 9;1 maximise, 10;0 un-fullscreen, 10;1 fullscreen, 11 report iconified state (\x1b[1t / \x1b[2t), 13 report window position, 14 report pixel size, 18 report text size (\x1b[8;rows;colst), 19 report screen size in chars, 20 report icon title, 21 report window title, 22;0 push BOTH title types, 22;1 push icon title, 22;2 push window title, 23;0/23;1/23;2 pop. Many operators (3/4/8/9/10/13/14/20/21) are gated by xterm's allowWindowOps resource for security — most modern terminals ship that disabled, so resize/move requests silently no-op and only the queries (14, 18, 21) reliably round-trip. The push/pop title pair (22/23) is the most portable use and underpins tmux's window-name preservation across nested sessions.
Spec citation: xterm-ctlseqs (XTWINOPS) / DECSLPP partial overlap
Parameters
| Ps | Operation selector (1–23). Some operators take additional Pa / Pb parameters. |
Examples
# Query pixel size — reply: \x1b[4;height;widtht\nprintf '\033[14t'import sys; sys.stdout.write('\x1b[18t'); sys.stdout.flush() # reply: \x1b[8;rows;colstfmt.Print("\x1b[22;0t") // push BOTH titlesprocess.stdout.write('\x1b[23;0t') // pop BOTH titlesprintf("\x1b[8;24;80t"); // resize text area to 24 rows × 80 cols (allowWindowOps required)Terminal support
- xterm
- yes
- Linux console (fbcon)
- no
- macOS Terminal.app
- partial
- iTerm2
- partial
- Windows Terminal
- partial
- cmd.exe / ConPTY
- no
- kitty
- partial
- alacritty
- partial
- WezTerm
- partial
- Ghostty
- partial
- GNOME Terminal
- partial
- Konsole
- partial
- tmux
- yes
- GNU screen
- yes
| xterm | Linux console (fbcon) | macOS Terminal.app | iTerm2 | Windows Terminal | cmd.exe / ConPTY | kitty | alacritty | WezTerm | Ghostty | GNOME Terminal | Konsole | tmux | GNU screen |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| yes | no | partial | partial | partial | no | partial | partial | partial | partial | partial | partial | yes | yes |