Resize (chars)
Resize (chars) is an XTerm window manipulation sequence that resizes the terminal window's text area to the specified number of rows and columns.
Syntax
CSI 8 ; rows ; cols t Resize text area to character dimensions
resize_chars = 0x1b, "[", "8", ";", Pn, ";", Pn, "t" ;
Pn = digit, { digit } ;
digit = "0" | "1" | "2" | "3" | "4"
| "5" | "6" | "7" | "8" | "9" ;Parameters
| Parameter | Description | Default |
|---|---|---|
rows | Number of character rows in the text area | (unchanged) |
cols | Number of character columns in the text area | (unchanged) |
Description
This sequence resizes the terminal window so that the text area contains exactly the specified number of rows and columns. It is part of the XTerm CSI Ps ; Ps ; Ps t window manipulation family.
The resulting pixel size depends on the current cell dimensions. For example, resizing to 80 columns by 24 rows with a cell size of 8x16 pixels would produce a text area of 640x384 pixels. The total window size will be larger due to window decorations and padding.
If a parameter is omitted or zero, that dimension should remain unchanged, though behavior varies between implementations. This is the preferred method for resizing a terminal to a standard size (e.g., 80x24 or 132x43) because it operates in the same units that applications use.
The Text Area Size (chars) report (CSI 18 t) can be used to query the current text area dimensions in characters after resizing.
Some terminal emulators disable this sequence by default for security reasons. Check your terminal's configuration for options to enable or disable window manipulation sequences.
Examples
# Resize to standard 80x24 terminal
printf '\e[8;24;80t'
# Resize to 132-column mode (DEC wide)
printf '\e[8;43;132t'
# Resize to 120 columns, 40 rows
printf '\e[8;40;120t'
Specifications
| Specification | Section |
|---|---|
| XTerm ctlseqs | — |
Terminal support
| Terminal | Support | Version | Notes |
|---|---|---|---|
| Terminal Emulators | |||
| Alacritty | ✗ | No | Rejected per escape_support.md:81-82 |
| Bobcat | ✓ | 0.9.0 | Handled via WhenSetSize callback; requires WindowActions enabled in profile |
| contour | ✓ | v0.1.0 | CSI 8;rows;cols t implemented in WINDOWMANIP (case 8) |
| foot | ✗ | No | CSI 8 t logs unimplemented warning |
| Ghostty | ✗ | No | CSI 8;rows;cols t not implemented |
| iTerm2 | ✓ | v20260216-nightly | CSI 8;rows;cols t via XTERMCC_WINDOWSIZE |
| Kitty | ✗ | No | CSI 8 t explicitly rejected |
| Konsole | ✓ | Yes | CSI 8;rows;cols t emits imageResizeRequest |
| mintty | ✓ | Yes | CSI 8;rows;cols t implemented |
| mlterm | ✓ | rel-3_8_0 | CSI 8 t supported |
| PuTTY | ✓ | 0.75 | CSI 8 t supported at terminal.c:4899-4908 |
| Rio | ✗ | No | |
| rxvt-unicode | ✓ | 1.2 | |
| st | ✗ | No | No CSI t window manipulation sequences implemented |
| terminology | ✓ | v1.10.0 | CSI 8;rows;cols t |
| VT100 | ✗ | No | |
| VTE | ✓ | Yes | Emits resize-window signal |
| WezTerm | ✗ | No | Parsed but not allowed for security |
| Windows Terminal | ✓ | Yes | CSI 8;rows;cols t via WindowManipulationType::ResizeWindowInCharacters in adaptDispatch.cpp:3451 |
| xterm | ✓ | xterm-93 | |
| xterm.js | ✓ | 4.4.0 | CSI 8;rows;cols t. Requires windowOptions.setWinSizeChars enabled. |
| Multiplexers | |||
| cy | ✗ | No | Explicitly ignored |
| GNU Screen | ✓ | v.4.2.0 | CSI 8;rows;cols t implemented at src/ansi.c:966 |
| tmux | ✗ | No | Sequence parsed but ignored (case 8 in winops) |
| tuios | ✗ | No | CSI 8 t not handled |
| Zellij | ✗ | No | |
See also
- Resize (pixels) — Resize window in pixel dimensions
- Text Area Size (chars) — Query current text area character dimensions
- Text Area Size (pixels) — Query current text area pixel dimensions
- Cell Size — Query individual cell pixel dimensions