Skip to main content

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​

ParameterDescription
PcDecimal character code to fill (e.g., 65 for 'A', 42 for '*')
PtTop row of the rectangle
PlLeft column of the rectangle
PbBottom row of the rectangle
PrRight 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​

SpecificationSection
VT510 Reference—

Terminal support​

TerminalSupportVersionNotes
Terminal Emulators
Alacritty✗NoNo evidence of rectangular fill implementation
Bobcat✓0.9.0Supported via TerminalCtrl library
contour✓v0.2.0.171_rc2
foot✓YesDECFRA ($ x) at csi.c:2072-2095
Ghostty✗No
iTerm2✓YesVT100CSI_DECFRA token parsed and executed via executeDECFRA, requires vtLevel >= 400
Kitty✗NoDECFRA (CSI $ x) not implemented. CSI x only handles DECSACE (CSI * x)
Konsole✗NoNo DECFRA (CSI $ x) handler found; $ intermediate not processed
mintty✓YesDECFRA (CSI $ x) at line 3650-3653, fills rectangular area
mlterm✓rel-3_1_3Added in commit 04fe42c0 (2014-06-06); Implemented at vt_parser.c:5280-5285
PuTTY✗No
Rio✗NoRectangular area operations not implemented
rxvt-unicode✗NoDEC rectangular area operations not implemented
st✗NoCSI $ x not implemented; no rectangular area operations
terminology✓v1.1.0
VT100✗No
VTE✓YesFully implemented with VTE extension for Unicode beyond BMP
WezTerm✗No
Windows Terminal✓YesImplemented in ITermDispatch.hpp:107 as FillRectangularArea
xterm✓xterm-406Requires OPT_DEC_RECTOPS (enabled by default)
xterm.js✗No
Multiplexers
cy✗No
GNU Screen✗NoNo $ intermediate handler in DoCSI
tmux✗NoNot implemented for input; used only for output to terminal
tuios✗No
Zellij✗No

See also​