| 1 |
Xterm Control Sequences |
| 2 |
|
| 3 |
Edward Moy |
| 4 |
|
| 5 |
University of California, Berkeley |
| 6 |
|
| 7 |
Revised by |
| 8 |
|
| 9 |
Stephen Gildea |
| 10 |
|
| 11 |
X Consortium |
| 12 |
|
| 13 |
Definitions |
| 14 |
|
| 15 |
c The literal character c. |
| 16 |
|
| 17 |
C A single (required) character. |
| 18 |
|
| 19 |
Ps A single (usually optional) numeric parameter, composed of one of more |
| 20 |
digits. |
| 21 |
|
| 22 |
Pm A multiple numeric parameter composed of any number of single numeric |
| 23 |
parameters, separated by ; character(s). |
| 24 |
|
| 25 |
Pt A text parameter composed of printable characters. |
| 26 |
|
| 27 |
VT100 Mode |
| 28 |
|
| 29 |
Most of these control sequences are standard VT102 control sequences, but |
| 30 |
there are some sequences here from later DEC VT terminals, too. VT102 |
| 31 |
features not supported are smooth scrolling, double size characters, blink- |
| 32 |
ing characters, and VT52 mode. There are additional control sequences to |
| 33 |
provide xterm-dependent functions, like the scrollbar or window size. Where |
| 34 |
the function is specified by DEC or ISO 6429, the code assigned to it is |
| 35 |
given in parentheses. The escape codes to designate and invoke character |
| 36 |
sets are specified by ISO 2022; see that document for a discussion of char- |
| 37 |
acter sets. |
| 38 |
BEL Bell (Ctrl-G) |
| 39 |
BS Backspace (Ctrl-H) |
| 40 |
TAB Horizontal Tab (HT) (Ctrl-I) |
| 41 |
LF Line Feed or New Line (NL) (Ctrl-J) |
| 42 |
VT Vertical Tab (Ctrl-K) same as LF |
| 43 |
FF Form Feed or New Page (NP) (Ctrl-L) same as LF |
| 44 |
CR Carriage Return (Ctrl-M) |
| 45 |
SO Shift Out (Ctrl-N) -> Switch to Alternate Character Set: |
| 46 |
invokes the G1 character set. |
| 47 |
SI Shift In (Ctrl-O) -> Switch to Standard Character Set: |
| 48 |
invokes the G0 character set (the default). |
| 49 |
ESC # 8 DEC Screen Alignment Test (DECALN) |
| 50 |
ESC ( C Designate G0 Character Set (ISO 2022) |
| 51 |
C = 0 -> DEC Special Character and Line Drawing Set |
| 52 |
C = A -> United Kingdom (UK) |
| 53 |
C = B -> United States (USASCII) |
| 54 |
ESC ) C Designate G1 Character Set (ISO 2022) |
| 55 |
C = 0 -> DEC Special Character and Line Drawing Set |
| 56 |
C = A -> United Kingdom (UK) |
| 57 |
C = B -> United States (USASCII) |
| 58 |
ESC * C Designate G2 Character Set (ISO 2022) |
| 59 |
C = 0 -> DEC Special Character and Line Drawing Set |
| 60 |
C = A -> United Kingdom (UK) |
| 61 |
C = B -> United States (USASCII) |
| 62 |
ESC + C Designate G3 Character Set (ISO 2022) |
| 63 |
C = 0 -> DEC Special Character and Line Drawing Set |
| 64 |
C = A -> United Kingdom (UK) |
| 65 |
C = B -> United States (USASCII) |
| 66 |
ESC 7 Save Cursor (DECSC) |
| 67 |
ESC 8 Restore Cursor (DECRC) |
| 68 |
ESC = Application Keypad (DECPAM) |
| 69 |
ESC > Normal Keypad (DECPNM) |
| 70 |
ESC D Index (IND) |
| 71 |
ESC E Next Line (NEL) |
| 72 |
ESC F Cursor to lower left corner of screen (if enabled by the |
| 73 |
hpLowerleftBugCompat resource). |
| 74 |
ESC H Tab Set (HTS) |
| 75 |
ESC M Reverse Index (RI) |
| 76 |
ESC N Single Shift Select of G2 Character Set (SS2): affects next |
| 77 |
character only |
| 78 |
ESC O Single Shift Select of G3 Character Set (SS3): affects next |
| 79 |
character only |
| 80 |
ESC P Pt ESC \ Device Control String (DCS) |
| 81 |
xterm implements no DCS functions; Pt is ignored. Pt need |
| 82 |
not be printable characters. |
| 83 |
ESC Z Return Terminal ID (DECID). Obsolete form of ESC [ c (DA). |
| 84 |
ESC [ Ps @ Insert Ps (Blank) Character(s) (default = 1) (ICH) |
| 85 |
ESC [ Ps A Cursor Up Ps Times (default = 1) (CUU) |
| 86 |
ESC [ Ps B Cursor Down Ps Times (default = 1) (CUD) |
| 87 |
ESC [ Ps C Cursor Forward Ps Times (default = 1) (CUF) |
| 88 |
ESC [ Ps D Cursor Backward Ps Times (default = 1) (CUB) |
| 89 |
ESC [ Ps ; Ps H Cursor Position [row;column] (default = [1,1]) (CUP) |
| 90 |
ESC [ Ps J Erase in Display (ED) |
| 91 |
Ps = 0 -> Clear Below (default) |
| 92 |
Ps = 1 -> Clear Above |
| 93 |
Ps = 2 -> Clear All |
| 94 |
ESC [ Ps K Erase in Line (EL) |
| 95 |
Ps = 0 -> Clear to Right (default) |
| 96 |
Ps = 1 -> Clear to Left |
| 97 |
Ps = 2 -> Clear All |
| 98 |
ESC [ Ps L Insert Ps Line(s) (default = 1) (IL) |
| 99 |
ESC [ Ps M Delete Ps Line(s) (default = 1) (DL) |
| 100 |
ESC [ Ps P Delete Ps Character(s) (default = 1) (DCH) |
| 101 |
ESC [ Ps ; Ps ; Ps ; Ps ; Ps T |
| 102 |
Initiate hilite mouse tracking. Parameters are |
| 103 |
[func;startx;starty;firstrow;lastrow]. See the section Mouse |
| 104 |
Tracking. |
| 105 |
ESC [ Ps c Send Device Attributes (DA) |
| 106 |
Ps = 0 or omitted -> request attributes from terminal |
| 107 |
-> ESC [ ? 1 ; 2 c (``I am a VT100 with Advanced Video |
| 108 |
Option.'') |
| 109 |
ESC [ Ps ; Ps f Horizontal and Vertical Position [row;column] (default = |
| 110 |
[1,1]) (HVP) |
| 111 |
ESC [ Ps g Tab Clear (TBC) |
| 112 |
Ps = 0 -> Clear Current Column (default) |
| 113 |
Ps = 3 -> Clear All |
| 114 |
ESC [ Pm h Set Mode (SM) |
| 115 |
Ps = 4 -> Insert Mode (IRM) |
| 116 |
Ps = 2 0 -> Automatic Newline (LNM) |
| 117 |
ESC [ Pm l Reset Mode (RM) |
| 118 |
Ps = 4 -> Replace Mode (IRM) |
| 119 |
Ps = 2 0 -> Normal Linefeed (LNM) |
| 120 |
ESC [ Pm m Character Attributes (SGR) |
| 121 |
Ps = 0 -> Normal (default) |
| 122 |
Ps = 1 -> Bold |
| 123 |
Ps = 4 -> Underscore |
| 124 |
Ps = 5 -> Blink (appears as Bold) |
| 125 |
Ps = 7 -> Inverse |
| 126 |
ESC [ Ps n Device Status Report (DSR) |
| 127 |
Ps = 5 -> Status Report ESC [ 0 n (``OK'') |
| 128 |
Ps = 6 -> Report Cursor Position (CPR) [row;column] as ESC |
| 129 |
[ r ; c R |
| 130 |
ESC [ Ps ; Ps r Set Scrolling Region [top;bottom] (default = full size of |
| 131 |
window) (DECSTBM) |
| 132 |
ESC [ Ps x Request Terminal Parameters (DECREQTPARM) |
| 133 |
ESC [ ? Pm h DEC Private Mode Set (DECSET) |
| 134 |
Ps = 1 -> Application Cursor Keys (DECCKM) |
| 135 |
Ps = 2 -> Designate USASCII for character sets G0-G3. (In |
| 136 |
the VT102, this selects VT52 mode (DECANM), which xterm |
| 137 |
doesn't support.) |
| 138 |
Ps = 3 -> 132 Column Mode (DECCOLM) |
| 139 |
Ps = 4 -> Smooth (Slow) Scroll (DECSCLM) |
| 140 |
Ps = 5 -> Reverse Video (DECSCNM) |
| 141 |
Ps = 6 -> Origin Mode (DECOM) |
| 142 |
Ps = 7 -> Wraparound Mode (DECAWM) |
| 143 |
Ps = 8 -> Auto-repeat Keys (DECARM) |
| 144 |
Ps = 9 -> Send Mouse X & Y on button press. See the sec- |
| 145 |
tion Mouse Tracking. |
| 146 |
Ps = 3 8 -> Enter Tektronix Mode (DECTEK) |
| 147 |
Ps = 4 0 -> Allow 80 <--> 132 Mode |
| 148 |
Ps = 4 1 -> more(1) fix (see curses resource) |
| 149 |
Ps = 4 4 -> Turn On Margin Bell |
| 150 |
Ps = 4 5 -> Reverse-wraparound Mode |
| 151 |
Ps = 4 6 -> Start Logging (normally disabled by a |
| 152 |
compile-time option) |
| 153 |
Ps = 4 7 -> Use Alternate Screen Buffer (unless disabled |
| 154 |
by the titeInhibit resource) |
| 155 |
Ps = 1 0 0 0 -> Send Mouse X & Y on button press and |
| 156 |
release. See the section Mouse Tracking. |
| 157 |
Ps = 1 0 0 1 -> Use Hilite Mouse Tracking. See the sec- |
| 158 |
tion Mouse Tracking. |
| 159 |
ESC [ ? Pm l DEC Private Mode Reset (DECRST) |
| 160 |
Ps = 1 -> Normal Cursor Keys (DECCKM) |
| 161 |
Ps = 3 -> 80 Column Mode (DECCOLM) |
| 162 |
Ps = 4 -> Jump (Fast) Scroll (DECSCLM) |
| 163 |
Ps = 5 -> Normal Video (DECSCNM) |
| 164 |
Ps = 6 -> Normal Cursor Mode (DECOM) |
| 165 |
Ps = 7 -> No Wraparound Mode (DECAWM) |
| 166 |
Ps = 8 -> No Auto-repeat Keys (DECARM) |
| 167 |
Ps = 9 -> Don't Send Mouse X & Y on button press |
| 168 |
Ps = 4 0 -> Disallow 80 <--> 132 Mode |
| 169 |
Ps = 4 1 -> No more(1) fix (see curses resource) |
| 170 |
Ps = 4 4 -> Turn Off Margin Bell |
| 171 |
Ps = 4 5 -> No Reverse-wraparound Mode |
| 172 |
Ps = 4 6 -> Stop Logging (normally disabled by a compile- |
| 173 |
time option) |
| 174 |
Ps = 4 7 -> Use Normal Screen Buffer |
| 175 |
Ps = 1 0 0 0 -> Don't Send Mouse X & Y on button press and |
| 176 |
release |
| 177 |
Ps = 1 0 0 1 -> Don't Use Hilite Mouse Tracking |
| 178 |
ESC [ ? Pm r Restore DEC Private Mode Values. The value of Ps previously |
| 179 |
saved is restored. Ps values are the same as for DECSET. |
| 180 |
ESC [ ? Pm s Save DEC Private Mode Values. Ps values are the same as for |
| 181 |
DECSET. |
| 182 |
ESC ] Ps ; Pt BEL |
| 183 |
Set Text Parameters |
| 184 |
Ps = 0 -> Change Icon Name and Window Title to Pt |
| 185 |
Ps = 1 -> Change Icon Name to Pt |
| 186 |
Ps = 2 -> Change Window Title to Pt |
| 187 |
Ps = 4 6 -> Change Log File to Pt (normally disabled by a |
| 188 |
compile-time option) |
| 189 |
Ps = 5 0 -> Set Font to Pt |
| 190 |
ESC ^ Pt ESC \ Privacy Message (PM) |
| 191 |
xterm implements no PM functions; Pt is ignored. Pt need |
| 192 |
not be printable characters. |
| 193 |
ESC _ Pt ESC \ Application Program Command (APC) |
| 194 |
xterm implements no APC functions; Pt is ignored. Pt need |
| 195 |
not be printable characters. |
| 196 |
ESC c Full Reset (RIS) |
| 197 |
ESC l Memory Lock (per HP terminals). Locks memory above the cur- |
| 198 |
sor. |
| 199 |
ESC m Memory Unlock (per HP terminals) |
| 200 |
ESC n Invoke the G2 Character Set (LS2) |
| 201 |
ESC o Invoke the G3 Character Set (LS3) |
| 202 |
ESC | Invoke the G3 Character Set as GR (LS3R). Has no visible |
| 203 |
effect in xterm. |
| 204 |
ESC } Invoke the G2 Character Set as GR (LS2R). Has no visible |
| 205 |
effect in xterm. |
| 206 |
ESC ~ Invoke the G1 Character Set as GR (LS1R). Has no visible |
| 207 |
effect in xterm. |
| 208 |
|
| 209 |
Mouse Tracking |
| 210 |
The VT widget can be set to send the mouse position and other information on |
| 211 |
button presses. These modes are typically used by editors and other full- |
| 212 |
screen applications that want to make use of the mouse. |
| 213 |
There are three mutually exclusive modes, each enabled (or disabled) by a |
| 214 |
different parameter in the DECSET (or DECRST) escape sequence. Parameters |
| 215 |
for all mouse tracking escape sequences generated by xterm encode numeric |
| 216 |
parameters in a single character as value+040. For example, ! is 1. The |
| 217 |
screen coodinate system is 1-based. |
| 218 |
X10 compatibility mode sends an escape sequence on button press encoding the |
| 219 |
location and the mouse button pressed. It is enabled by specifying parame- |
| 220 |
ter 9 to DECSET. On button press, xterm sends ESC [ M CbCxCy (6 charac- |
| 221 |
ters). Cb is button-1. Cx and Cy are the x and y coordinates of the mouse |
| 222 |
when the button was pressed. |
| 223 |
Normal tracking mode sends an escape sequence on both button press and |
| 224 |
release. Modifier information is also sent. It is enabled by specifying |
| 225 |
parameter 1000 to DECSET. On button press or release, xterm sends ESC [ M |
| 226 |
CbCxCy. The low two bits of Cb encode button information: 0=MB1 pressed, |
| 227 |
1=MB2 pressed, 2=MB3 pressed, 3=release. The upper bits encode what modif- |
| 228 |
iers were down when the button was pressed and are added together. 4=Shift, |
| 229 |
8=Meta, 16=Control. Cx and Cy are the x and y coordinates of the mouse |
| 230 |
event. The upper left corner is (1,1). |
| 231 |
Mouse hilite tracking notifies a program of a button press, receives a range |
| 232 |
of lines from the program, highlights the region covered by the mouse within |
| 233 |
that range until button release, and then sends the program the release |
| 234 |
coordinates. It is enabled by specifying parameter 1001 to DECSET. Warn- |
| 235 |
ing: use of this mode requires a cooperating program or it will hang xterm. |
| 236 |
On button press, the same information as for normal tracking is generated; |
| 237 |
xterm then waits for the program to send mouse tracking information. All X |
| 238 |
events are ignored until the proper escape sequence is received from the |
| 239 |
pty: ESC [ Ps ; Ps ; Ps ; Ps ; Ps T . The parameters are func, startx, |
| 240 |
starty, firstrow, and lastrow. func is non-zero to initiate hilite tracking |
| 241 |
and zero to abort. startx and starty give the starting x and y location for |
| 242 |
the highlighted region. The ending location tracks the mouse, but will |
| 243 |
never be above row firstrow and will always be above row lastrow. (The top |
| 244 |
of the screen is row 1.) When the button is released, xterm reports the |
| 245 |
ending position one of two ways: if the start and end coordinates are valid |
| 246 |
text locations: ESC [ t CxCy. If either coordinate is past the end of the |
| 247 |
line: ESC [ T CxCyCxCyCxCy. The parameters are startx, starty, endx, endy, |
| 248 |
mousex, and mousey. startx, starty, endx, and endy give the starting and |
| 249 |
ending character positions of the region. mousex and mousey give the loca- |
| 250 |
tion of the mouse at button up, which may not be over a character. |
| 251 |
|
| 252 |
Tektronix 4014 Mode |
| 253 |
Most of these sequences are standard Tektronix 4014 control sequences. |
| 254 |
Graph mode supports the 12-bit addressing of the Tektronix 4014. The major |
| 255 |
features missing are the write-thru and defocused modes. This document does |
| 256 |
not describe the commands used in the various Tektronix plotting modes but |
| 257 |
does describe the commands to switch modes. |
| 258 |
|
| 259 |
BEL Bell (Ctrl-G) |
| 260 |
BS Backspace (Ctrl-H) |
| 261 |
TAB Horizontal Tab (Ctrl-I) |
| 262 |
LF Line Feed or New Line (Ctrl-J) |
| 263 |
VT Cursor up (Ctrl-K) |
| 264 |
FF Form Feed or New Page (Ctrl-L) |
| 265 |
CR Carriage Return (Ctrl-M) |
| 266 |
ESC ETX Switch to VT100 Mode (ESC Ctrl-C) |
| 267 |
ESC ENQ Return Terminal Status (ESC Ctrl-E) |
| 268 |
ESC FF PAGE (Clear Screen) (ESC Ctrl-L) |
| 269 |
ESC SO Begin 4015 APL mode (ignored by xterm) (ESC Ctrl-N) |
| 270 |
ESC SI End 4015 APL mode (ignored by xterm) (ESC Ctrl-O) |
| 271 |
ESC ETB COPY (Save Tektronix Codes to file COPYyy-mm-dd.hh:mm:ss) |
| 272 |
(ESC Ctrl-W) |
| 273 |
ESC CAN Bypass Condition (ESC Ctrl-X) |
| 274 |
ESC SUB GIN mode (ESC Ctrl-Z) |
| 275 |
ESC FS Special Point Plot Mode (ESC Ctrl-\) |
| 276 |
ESC 8 Select Large Character Set |
| 277 |
ESC 9 Select #2 Character Set |
| 278 |
ESC : Select #3 Character Set |
| 279 |
ESC ; Select Small Character Set |
| 280 |
ESC ] Ps ; Pt BEL |
| 281 |
Set Text Parameters of VT window |
| 282 |
Ps = 0 -> Change Icon Name and Window Title to Pt |
| 283 |
Ps = 1 -> Change Icon Name to Pt |
| 284 |
Ps = 2 -> Change Window Title to Pt |
| 285 |
Ps = 4 6 -> Change Log File to Pt (normally disabled by a |
| 286 |
compile-time option) |
| 287 |
ESC ` Normal Z Axis and Normal (solid) Vectors |
| 288 |
ESC a Normal Z Axis and Dotted Line Vectors |
| 289 |
ESC b Normal Z Axis and Dot-Dashed Vectors |
| 290 |
ESC c Normal Z Axis and Short-Dashed Vectors |
| 291 |
ESC d Normal Z Axis and Long-Dashed Vectors |
| 292 |
ESC h Defocused Z Axis and Normal (solid) Vectors |
| 293 |
ESC i Defocused Z Axis and Dotted Line Vectors |
| 294 |
ESC j Defocused Z Axis and Dot-Dashed Vectors |
| 295 |
ESC k Defocused Z Axis and Short-Dashed Vectors |
| 296 |
ESC l Defocused Z Axis and Long-Dashed Vectors |
| 297 |
ESC p Write-Thru Mode and Normal (solid) Vectors |
| 298 |
ESC q Write-Thru Mode and Dotted Line Vectors |
| 299 |
ESC r Write-Thru Mode and Dot-Dashed Vectors |
| 300 |
ESC s Write-Thru Mode and Short-Dashed Vectors |
| 301 |
ESC t Write-Thru Mode and Long-Dashed Vectors |
| 302 |
FS Point Plot Mode (Ctrl-\) |
| 303 |
GS Graph Mode (Ctrl-]) |
| 304 |
RS Incremental Plot Mode (Ctrl-^) |
| 305 |
US Alpha Mode (Ctrl-_) |