DECFRA
AI-Generated Content
This page was generated with the assistance of AI and may contain inaccuracies. It is intended as a placeholder for future human verification. If you spot issues ahead of its initial review, please report them on GitHub!
Standard
DECFRA (Fill Rectangular Area) is a CSI sequence that fills a rectangular screen region with a specified character.
Syntax
CSI Pc ; Pt ; Pl ; Pb ; Pr $ x DECFRA — Fill Rectangular Area
Formal syntax
DECFRA = 0x1b, "[", Pc, ";", Pt, ";", Pl, ";", Pb, ";", Pr, "$", "x" ;
Pc = digit, { digit } ; (* character code to fill with *)
Pt = digit, { digit } ; (* top row *)
Pl = digit, { digit } ; (* left column *)
Pb = digit, { digit } ; (* bottom row *)
Pr = digit, { digit } ; (* right column *)
digit = "0" | "1" | "2" | "3" | "4"
| "5" | "6" | "7" | "8" | "9" ;Parameters
| Parameter | Description |
|---|---|
Pc | Decimal character code to fill (e.g., 65 for 'A', 42 for '*') |
Pt | Top row of the rectangle |
Pl | Left column of the rectangle |
Pb | Bottom row of the rectangle |
Pr | Right column of the rectangle |
Description
Per the VT510 manual, DECFRA fills the specified rectangular area with the character whose code is Pc. The current SGR attributes are applied to the filled characters. The cursor position is not changed.
The Pc value must be a printable character code (32-126 for ASCII, or an appropriate value in the active character set). If Pc is not a printable character, the result is undefined.
Coordinates are 1-based and refer to absolute screen positions.
Examples
printf '\e[42;1;1;24;80$x' # Fill entire 80x24 screen with '*' (42)
printf '\e[65;5;10;15;30$x' # Fill rectangle (5,10)-(15,30) with 'A' (65)
Specifications
| Specification | Section |
|---|---|
| VT510 Reference | — |
Terminal support
| Terminal | Support | Version | Notes |
|---|---|---|---|
| Terminal Emulators | |||
| Alacritty | ✗ | No | No evidence of rectangular fill implementation |
| Bobcat | ✓ | 0.9.0 | Supported via TerminalCtrl library |
| contour | ✓ | v0.2.0.171_rc2 | |
| foot | ✓ | Yes | DECFRA ($ x) at csi.c:2072-2095 |
| Ghostty | ✗ | No | |
| iTerm2 | ✓ | Yes | VT100CSI_DECFRA token parsed and executed via executeDECFRA, requires vtLevel >= 400 |
| Kitty | ✗ | No | DECFRA (CSI $ x) not implemented. CSI x only handles DECSACE (CSI * x) |
| Konsole | ✗ | No | No DECFRA (CSI $ x) handler found; $ intermediate not processed |
| mintty | ✓ | Yes | DECFRA (CSI $ x) at line 3650-3653, fills rectangular area |
| mlterm | ✓ | rel-3_1_3 | Added in commit 04fe42c0 (2014-06-06); Implemented at vt_parser.c:5280-5285 |
| PuTTY | ✗ | No | |
| Rio | ✗ | No | Rectangular area operations not implemented |
| rxvt-unicode | ✗ | No | DEC rectangular area operations not implemented |
| st | ✗ | No | CSI $ x not implemented; no rectangular area operations |
| terminology | ✓ | v1.1.0 | |
| VT100 | ✗ | No | |
| VTE | ✓ | Yes | Fully implemented with VTE extension for Unicode beyond BMP |
| WezTerm | ✗ | No | |
| Windows Terminal | ✓ | Yes | Implemented in ITermDispatch.hpp:107 as FillRectangularArea |
| xterm | ✓ | xterm-406 | Requires OPT_DEC_RECTOPS (enabled by default) |
| xterm.js | ✗ | No | |
| Multiplexers | |||
| cy | ✗ | No | |
| GNU Screen | ✗ | No | No $ intermediate handler in DoCSI |
| tmux | ✗ | No | Not implemented for input; used only for output to terminal |
| tuios | ✗ | No | |
| Zellij | ✗ | No | |
See also
- DECERA — Erase Rectangular Area — Erase (blank) a rectangular region
- DECCRA — Copy Rectangular Area — Copy a rectangle to another position