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
- no
- GNU screen
- no
| 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 | no | no |