1foot-ctlseqs(7)        Miscellaneous Information Manual        foot-ctlseqs(7)
2
3
4

NAME

6       foot-ctlseqs - terminal control sequences supported by foot
7

DESCRIPTION

9       This document describes all the control sequences supported by foot.
10
11       •   Control characters
12       •   Sequences beginning with ESC
13       •   CSI - Control Sequence Introducer
14             - SGR
15             - Indexed and RGB colors (256-color palette and 24-bit colors)
16             - Private modes
17             - Window manipulation
18             - Other
19       •   OSC - Operating System Command
20       •   DCS - Device Control String
21
22

Control characters

24       ┌─────────┬──────┬─────────────────────┐
25Sequence Name Description         
26       ├─────────┼──────┼─────────────────────┤
27       │\a       │ BEL  │ Depends on what     │
28       │         │      │ bell in foot.ini(5)
29       │         │      │ is set to.          │
30       ├─────────┼──────┼─────────────────────┤
31       │\b       │ BS   │ Backspace; move the │
32       │         │      │ cursor left one     │
33       │         │      │ step. Wrap if bw is │
34       │         │      │ enabled.            │
35       ├─────────┼──────┼─────────────────────┤
36       │\t       │ HT   │ Horizontal tab;     │
37       │         │      │ move the cursor to  │
38       │         │      │ the next tab stop.  │
39       ├─────────┼──────┼─────────────────────┤
40       │\n       │ LF   │ Line feed; move the │
41       │         │      │ cursor down one     │
42       │         │      │ step, or scroll     │
43       │         │      │ content up if at    │
44       │         │      │ the bottom line.    │
45       ├─────────┼──────┼─────────────────────┤
46       │\v       │ VT   │ Vertical tab; iden‐ │
47       │         │      │ tical to LF.        │
48       ├─────────┼──────┼─────────────────────┤
49       │\f       │ FF   │ Form feed; identi‐  │
50       │         │      │ cal to LF.          │
51       ├─────────┼──────┼─────────────────────┤
52       │\r       │ CR   │ Carriage ret; move  │
53       │         │      │ the cursor to the   │
54       │         │      │ leftmost column.    │
55       ├─────────┼──────┼─────────────────────┤
56       │\x0E     │ SO   │ Shift out; select   │
57       │         │      │ the G1 character    │
58       │         │      │ set.                │
59       ├─────────┼──────┼─────────────────────┤
60       │\x0F     │ SI   │ Shift in; select    │
61       │         │      │ the G0 character    │
62       │         │      │ set.                │
63       └─────────┴──────┴─────────────────────┘
64

Sequences beginning with ESC

66       Note: this table excludes sequences where ESC is part of a 7-bit equiv‐
67       alent to 8-bit C1 controls.
68
69       ┌─────────┬─────────┬────────┬──────────────────┐
70Sequence Name    Origin Description      
71       ├─────────┼─────────┼────────┼──────────────────┤
72       │\E 7     │ DECSC   │ VT100  │ Save cursor po‐  │
73       │         │         │        │ sition.          │
74       ├─────────┼─────────┼────────┼──────────────────┤
75       │\E 8     │ DECRC   │ VT100  │ Restore cursor   │
76       │         │         │        │ position.        │
77       ├─────────┼─────────┼────────┼──────────────────┤
78       │\E c     │ RIS     │ VT100  │ Reset terminal   │
79       │         │         │        │ to initial       │
80       │         │         │        │ state.           │
81       ├─────────┼─────────┼────────┼──────────────────┤
82       │\E D     │ IND     │ VT100  │ Line feed; move  │
83       │         │         │        │ the cursor down  │
84       │         │         │        │ one step, or     │
85       │         │         │        │ scroll content   │
86       │         │         │        │ up if at the     │
87       │         │         │        │ bottom margin.   │
88       ├─────────┼─────────┼────────┼──────────────────┤
89       │\E E     │ NEL     │ VT100  │ Next line; move  │
90       │         │         │        │ the cursor down  │
91       │         │         │        │ one step, and to │
92       │         │         │        │ the first col‐   │
93       │         │         │        │ umn. Content is  │
94       │         │         │        │ scrolled up if   │
95       │         │         │        │ at the bottom    │
96       │         │         │        │ line.            │
97       ├─────────┼─────────┼────────┼──────────────────┤
98       │\E H     │ HTS     │ VT100  │ Set one horizon‐ │
99       │         │         │        │ tal tab stop at  │
100       │         │         │        │ the current po‐  │
101       │         │         │        │ sition.          │
102       ├─────────┼─────────┼────────┼──────────────────┤
103       │\E M     │ RI      │ VT100  │ Reverse index;   │
104       │         │         │        │ move the cursor  │
105       │         │         │        │ up one step, or  │
106       │         │         │        │ scroll content   │
107       │         │         │        │ down if at the   │
108       │         │         │        │ top margin.      │
109       ├─────────┼─────────┼────────┼──────────────────┤
110       │\E N     │ SS2     │ VT220  │ Single shift se‐ │
111       │         │         │        │ lect of G2 char‐ │
112       │         │         │        │ acter set (af‐   │
113       │         │         │        │ fects next char‐ │
114       │         │         │        │ acter only).     │
115       ├─────────┼─────────┼────────┼──────────────────┤
116       │\E O     │ SS3     │ VT220  │ Single shift se‐ │
117       │         │         │        │ lect of G3 char‐ │
118       │         │         │        │ acter set (af‐   │
119       │         │         │        │ fects next char‐ │
120       │         │         │        │ acter only).     │
121       ├─────────┼─────────┼────────┼──────────────────┤
122       │\E =     │ DECKPAM │ VT100  │ Switch keypad to │
123       │         │         │        │ application
124       │         │         │        │ mode.            │
125       ├─────────┼─────────┼────────┼──────────────────┤
126       │\E >     │ DECKPNM │ VT100  │ Switch keypad to │
127       │         │         │        │ numeric mode.    │
128       ├─────────┼─────────┼────────┼──────────────────┤
129       │\E ( C   │ SCS     │ VT100  │ Designate G0     │
130       │         │         │        │ character set.   │
131       │         │         │        │ Supported values │
132       │         │         │        │ for C are: 0     
133       │         │         │        │ (DEC Special     │
134       │         │         │        │ Character and    │
135       │         │         │        │ Line Drawing     │
136       │         │         │        │ Set), and B (US‐ │
137       │         │         │        │ ASCII).          │
138       ├─────────┼─────────┼────────┼──────────────────┤
139       │\E ) C   │ SCS     │ VT100  │ Designate G1     │
140       │         │         │        │ character set.   │
141       │         │         │        │ Same supported   │
142       │         │         │        │ values for C as  │
143       │         │         │        │ in G0.           │
144       ├─────────┼─────────┼────────┼──────────────────┤
145       │\E * C   │ SCS     │ VT220  │ Designate G2     │
146       │         │         │        │ character set.   │
147       │         │         │        │ Same supported   │
148       │         │         │        │ values for C as  │
149       │         │         │        │ in G0.           │
150       ├─────────┼─────────┼────────┼──────────────────┤
151       │\E + C   │ SCS     │ VT220  │ Designate G3     │
152       │         │         │        │ character set.   │
153       │         │         │        │ Same supported   │
154       │         │         │        │ values for C as  │
155       │         │         │        │ in G0.           │
156       └─────────┴─────────┴────────┴──────────────────┘
157

CSI

159       All sequences begin with \E[, sometimes abbreviated "CSI". Spaces are
160       used in the sequence strings to make them easier to read, but are not
161       actually part of the string (i.e. \E[ 1 m is really \E[1m).
162
163   SGR
164       All SGR sequences are in the form \E[ N m, where N is a decimal number
165       - the parameter. Multiple parameters can be combined in a single CSI
166       sequence by separating them with semicolons: \E[ 1;2;3 m.
167
168       ┌──────────┬────────────────────────────┐
169Parameter Description                
170       ├──────────┼────────────────────────────┤
171       │0         │ Reset all attributes       │
172       ├──────────┼────────────────────────────┤
173       │1         │ Bold                       │
174       ├──────────┼────────────────────────────┤
175       │2         │ Dim                        │
176       ├──────────┼────────────────────────────┤
177       │3         │ Italic                     │
178       ├──────────┼────────────────────────────┤
179       │4         │ Underline                  │
180       ├──────────┼────────────────────────────┤
181       │5         │ Blink                      │
182       ├──────────┼────────────────────────────┤
183       │7         │ Reverse video; swap fore‐  │
184       │          │ ground and background col‐ │
185       │          │ ors                        │
186       ├──────────┼────────────────────────────┤
187       │8         │ Conceal; text is not visi‐ │
188       │          │ ble, but is copiable       │
189       ├──────────┼────────────────────────────┤
190       │9         │ Crossed-out/strike         │
191       ├──────────┼────────────────────────────┤
192       │22        │ Disable bold and dim       
193       ├──────────┼────────────────────────────┤
194       │23        │ Disable italic             │
195       ├──────────┼────────────────────────────┤
196       │24        │ Disable underline          │
197       ├──────────┼────────────────────────────┤
198       │25        │ Disable blink              │
199       ├──────────┼────────────────────────────┤
200       │27        │ Disable reverse video      │
201       ├──────────┼────────────────────────────┤
202       │28        │ Disable conceal            │
203       ├──────────┼────────────────────────────┤
204       │29        │ Disable crossed-out        │
205       ├──────────┼────────────────────────────┤
206       │30-37     │ Select foreground color    │
207       │          │ (using regularN in         │
208       │          │ foot.ini(5))               │
209       ├──────────┼────────────────────────────┤
210       │38        │ See "indexed and RGB col‐  │
211       │          │ ors" below                 │
212       ├──────────┼────────────────────────────┤
213       │39        │ Use the default foreground │
214       │          │ color (foreground in       │
215       │          │ foot.ini(5))               │
216       ├──────────┼────────────────────────────┤
217       │40-47     │ Select background color    │
218       │          │ (using regularN in         │
219       │          │ foot.ini(5))               │
220       ├──────────┼────────────────────────────┤
221       │48        │ See "indexed and RGB col‐  │
222       │          │ ors" below                 │
223       ├──────────┼────────────────────────────┤
224       │49        │ Use the default background │
225       │          │ color (background in       │
226       │          │ foot.ini(5))               │
227       ├──────────┼────────────────────────────┤
228       │90-97     │ Select foreground color    │
229       │          │ (using brightN in          │
230       │          │ foot.ini(5))               │
231       ├──────────┼────────────────────────────┤
232       │100-107   │ Select background color    │
233       │          │ (using brightN in          │
234       │          │ foot.ini(5))               │
235       └──────────┴────────────────────────────┘
236
237   Indexed and RGB colors (256-color palette and 24-bit colors)
238       Foot supports both the new sub-parameter based variants, and the older
239       parameter based variants for setting foreground and background colors.
240
241       Indexed colors:
242
243\E[ 38 : 5 : idx m
244\E[ 38 ; 5 ; idx m
245
246
247       RGB colors:
248
249\E[ 38 : 2 : cs : r : g : b m
250\E[ 38 : 2 : r : g : b m
251\E[ 38 ; 2 ; r ; g ; b m
252
253
254       The first variant is the "correct" one (and foot also recognizes, but
255       ignores, the optional tolerance parameters).
256
257       The second one is allowed since many programs "forget" the color space
258       ID, cs.
259
260       The sub-parameter based variants are preferred, and are what foot's
261       terminfo(5) entry uses.
262
263   Private Modes
264       There are several Boolean-like "modes" that affect certain aspects of
265       the terminal's behavior. These modes can be manipulated with the fol‐
266       lowing 4 escape sequences:
267
268       ┌───────────┬───────────┬─────────────────────┐
269Sequence   Name      Description         
270       ├───────────┼───────────┼─────────────────────┤
271       │\E[ ? Pm h │ DECSET    │ Enable private mode │
272       ├───────────┼───────────┼─────────────────────┤
273       │\E[ ? Pm l │ DECRST    │ Disable private     │
274       │           │           │ mode                │
275       ├───────────┼───────────┼─────────────────────┤
276       │\E[ ? Pm s │ XTSAVE    │ Save private mode   │
277       ├───────────┼───────────┼─────────────────────┤
278       │\E[ ? Pm r │ XTRESTORE │ Restore private     │
279       │           │           │ mode                │
280       └───────────┴───────────┴─────────────────────┘
281
282       The Pm parameter in the above sequences denotes a numerical ID that
283       corresponds to one of the following modes:
284
285       ┌──────────┬─────────────┬─────────────────────┐
286Parameter Origin      Description         
287       ├──────────┼─────────────┼─────────────────────┤
288       │1         │ VT100       │ Cursor keys mode    │
289       │          │             │ (DECCKM)            │
290       ├──────────┼─────────────┼─────────────────────┤
291       │5         │ VT100       │ Reverse video (DEC‐ │
292       │          │             │ SCNM)               │
293       ├──────────┼─────────────┼─────────────────────┤
294       │6         │ VT100       │ Origin mode (DECOM) │
295       ├──────────┼─────────────┼─────────────────────┤
296       │7         │ VT100       │ Auto-wrap mode (DE‐ │
297       │          │             │ CAWM)               │
298       ├──────────┼─────────────┼─────────────────────┤
299       │12        │ AT&T 610    │ Cursor blink        │
300       ├──────────┼─────────────┼─────────────────────┤
301       │25        │ VT220       │ Cursor visibility   │
302       │          │             │ (DECTCEM)           │
303       ├──────────┼─────────────┼─────────────────────┤
304       │45        │ xterm       │ Reverse-wraparound  │
305       │          │             │ mode                │
306       ├──────────┼─────────────┼─────────────────────┤
307       │47        │ xterm       │ Same as 1047 (see   │
308       │          │             │ below)              │
309       ├──────────┼─────────────┼─────────────────────┤
310       │66        │ VT320       │ Numeric keypad mode │
311       │          │             │ (DECNKM); same as   │
312       │          │             │ DECKPAM/DECKPNM     │
313       │          │             │ when enabled/dis‐   │
314       │          │             │ abled               │
315       ├──────────┼─────────────┼─────────────────────┤
316       │1000      │ xterm       │ Send mouse x/y on   │
317       │          │             │ button press/re‐    │
318       │          │             │ lease               │
319       ├──────────┼─────────────┼─────────────────────┤
320       │1001      │ xterm       │ Use hilite mouse    │
321       │          │             │ tracking            │
322       ├──────────┼─────────────┼─────────────────────┤
323       │1002      │ xterm       │ Use cell motion     │
324       │          │             │ mouse tracking      │
325       ├──────────┼─────────────┼─────────────────────┤
326       │1003      │ xterm       │ Use all motion      │
327       │          │             │ mouse tracking      │
328       ├──────────┼─────────────┼─────────────────────┤
329       │1004      │ xterm       │ Send FocusIn/Focu‐  │
330       │          │             │ sOut events         │
331       ├──────────┼─────────────┼─────────────────────┤
332       │1006      │ xterm       │ SGR mouse mode      │
333       ├──────────┼─────────────┼─────────────────────┤
334       │1007      │ xterm       │ Alternate scroll    │
335       │          │             │ mode                │
336       ├──────────┼─────────────┼─────────────────────┤
337       │1015      │ urxvt       │ urxvt mouse mode    │
338       ├──────────┼─────────────┼─────────────────────┤
339       │1016      │ xterm       │ SGR-Pixels mouse    │
340       │          │             │ mode                │
341       ├──────────┼─────────────┼─────────────────────┤
342       │1034      │ xterm       │ 8-bit Meta mode     │
343       ├──────────┼─────────────┼─────────────────────┤
344       │1035      │ xterm       │ Num Lock modifier   │
345       │          │             │ (see xterm numLock  │
346       │          │             │ option)             │
347       ├──────────┼─────────────┼─────────────────────┤
348       │1036      │ xterm       │ Send ESC when Meta  │
349       │          │             │ modifies a key (see │
350       │          │             │ xterm metaSend‐     │
351       │          │             │ sEscape option)     │
352       ├──────────┼─────────────┼─────────────────────┤
353       │1042      │ xterm       │ Perform action for  │
354       │          │             │ BEL character (see  │
355       │          │             │ bell in             │
356       │          │             │ foot.ini(5))        │
357       ├──────────┼─────────────┼─────────────────────┤
358       │1047      │ xterm       │ Use alternate       │
359       │          │             │ screen buffer       │
360       ├──────────┼─────────────┼─────────────────────┤
361       │1048      │ xterm       │ Save/restore cursor │
362       │          │             │ (DECSET=save, DE‐   │
363       │          │             │ CRST=restore)       │
364       ├──────────┼─────────────┼─────────────────────┤
365       │1049      │ xterm       │ Equivalent to 1048  │
366       │          │             │ and 1047 combined   │
367       ├──────────┼─────────────┼─────────────────────┤
368       │1070      │ xterm       │ Use private color   │
369       │          │             │ registers for each  │
370       │          │             │ sixel               │
371       ├──────────┼─────────────┼─────────────────────┤
372       │2004      │ xterm       │ Wrap pasted text    │
373       │          │             │ with start/end de‐  │
374       │          │             │ limiters (bracketed │
375       │          │             │ paste mode)         │
376       ├──────────┼─────────────┼─────────────────────┤
377       │2026      │ terminal-wg │ Application syn‐    │
378       │          │             │ chronized updates   │
379       │          │             │ mode                │
380       ├──────────┼─────────────┼─────────────────────┤
381       │8452      │ xterm       │ Position cursor to  │
382       │          │             │ the right of six‐   │
383       │          │             │ els, instead of on  │
384       │          │             │ the next line       │
385       ├──────────┼─────────────┼─────────────────────┤
386       │737769    │ foot        │ Input Method Editor │
387       │          │             │ (IME) mode          │
388       └──────────┴─────────────┴─────────────────────┘
389
390   Window manipulation
391       Foot implements a sub-set of XTerm's (originally dtterm's) window ma‐
392       nipulation sequences. The generic format is:
393
394       \E[ Ps ; Ps ; Ps t
395
396       ┌────────────┬─────────────┬─────────────────────┐
397Parameter 1 Parameter 2 Description         
398       ├────────────┼─────────────┼─────────────────────┤
399       │11          │ -           │ Report if window is │
400       │            │             │ iconified. Foot al‐ │
401       │            │             │ ways reports 1 -    │
402       │            │             │ not iconified.      │
403       ├────────────┼─────────────┼─────────────────────┤
404       │13          │ -           │ Report window posi‐ │
405       │            │             │ tion. Foot always   │
406       │            │             │ reports (0,0), due  │
407       │            │             │ to Wayland limita‐  │
408       │            │             │ tions.              │
409       ├────────────┼─────────────┼─────────────────────┤
410       │13          │ 2           │ Report text area    │
411       │            │             │ position. Foot al‐  │
412       │            │             │ ways reports (0,0)  │
413       │            │             │ due to Wayland lim‐ │
414       │            │             │ itations.           │
415       ├────────────┼─────────────┼─────────────────────┤
416       │14          │ -           │ Report text area    │
417       │            │             │ size, in pixels.    │
418       │            │             │ Foot reports the    │
419       │            │             │ grid size, exclud‐  │
420       │            │             │ ing the margins.    │
421       ├────────────┼─────────────┼─────────────────────┤
422       │14          │ 2           │ Report window size, │
423       │            │             │ in pixels. Foot re‐ │
424       │            │             │ ports the grid size │
425       │            │             │ plus the margins.   │
426       ├────────────┼─────────────┼─────────────────────┤
427       │15          │ -           │ Report the screen   │
428       │            │             │ size, in pixels.    │
429       ├────────────┼─────────────┼─────────────────────┤
430       │16          │ -           │ Report the cell     │
431       │            │             │ size, in pixels.    │
432       ├────────────┼─────────────┼─────────────────────┤
433       │18          │ -           │ Report text area    │
434       │            │             │ size, in charac‐    │
435       │            │             │ ters.               │
436       ├────────────┼─────────────┼─────────────────────┤
437       │19          │ -           │ Report screen size, │
438       │            │             │ in characters.      │
439       ├────────────┼─────────────┼─────────────────────┤
440       │22          │ -           │ Push window ti‐     │
441       │            │             │ tle+icon. Foot does │
442       │            │             │ not support pushing │
443       │            │             │ the icon.           │
444       ├────────────┼─────────────┼─────────────────────┤
445       │22          │ 2           │ Push window title.  │
446       ├────────────┼─────────────┼─────────────────────┤
447       │23          │ -           │ Pop window ti‐      │
448       │            │             │ tle+icon. Foot does │
449       │            │             │ not support popping │
450       │            │             │ the icon.           │
451       ├────────────┼─────────────┼─────────────────────┤
452       │23          │ 2           │ Pop window title.   │
453       └────────────┴─────────────┴─────────────────────┘
454
455   Other
456       ┌────────────────┬──────────────┬────────────┬──────────────────┐
457Parameter       Name         Origin     Description      
458       ├────────────────┼──────────────┼────────────┼──────────────────┤
459       │\E[ Ps c        │ DA           │ VT100      │ Send primary de‐ │
460       │                │              │            │ vice attributes. │
461       │                │              │            │ Foot responds    │
462       │                │              │            │ with "I'm a      │
463       │                │              │            │ VT220 with sixel │
464       │                │              │            │ and ANSI color   │
465       │                │              │            │ support".        │
466       ├────────────────┼──────────────┼────────────┼──────────────────┤
467       │\E[ Ps A        │ CUU          │ VT100      │ Cursor up - move │
468       │                │              │            │ cursor up Ps
469       │                │              │            │ times.           │
470       ├────────────────┼──────────────┼────────────┼──────────────────┤
471       │\E[ Ps B        │ CUD          │ VT100      │ Cursor down -    │
472       │                │              │            │ move cursor down │
473       │                │              │            │ Ps times.        │
474       ├────────────────┼──────────────┼────────────┼──────────────────┤
475       │\E[ Ps C        │ CUF          │ VT100      │ Cursor forward - │
476       │                │              │            │ move cursor to   │
477       │                │              │            │ the right Ps
478       │                │              │            │ times.           │
479       ├────────────────┼──────────────┼────────────┼──────────────────┤
480       │\E[ Ps D        │ CUB          │ VT100      │ Cursor backward  │
481       │                │              │            │ - move cursor to │
482       │                │              │            │ the left Ps
483       │                │              │            │ times.           │
484       ├────────────────┼──────────────┼────────────┼──────────────────┤
485       │\E[ Ps g        │ TBC          │ VT100      │ Tab clear. Ps=0  │
486       │                │              │            │ -> clear current │
487       │                │              │            │ column. Ps=3 ->  │
488       │                │              │            │ clear all.       │
489       ├────────────────┼──────────────┼────────────┼──────────────────┤
490       │\E[ Ps ; Ps f   │ HVP          │ VT100      │ Horizontal and   │
491       │                │              │            │ vertical posi‐   │
492       │                │              │            │ tion - move cur‐ │
493       │                │              │            │ sor to row ;     │
494       │                │              │            │ column.          │
495       ├────────────────┼──────────────┼────────────┼──────────────────┤
496       │\E[ Ps ; Ps H   │ CUP          │ VT100      │ Cursor position  │
497       │                │              │            │ - move cursor to │
498       │                │              │            │ row ; column.    │
499       ├────────────────┼──────────────┼────────────┼──────────────────┤
500       │\E[ Ps J        │ ED           │ VT100      │ Erase in dis‐    │
501       │                │              │            │ play. Ps=0 ->    │
502       │                │              │            │ below cursor.    │
503       │                │              │            │ Ps=1 -> above    │
504       ├────────────────┼──────────────┼────────────┼──────────────────┤
505       │\E[ Ps K        │ EL           │ VT100      │ Erase in line.   │
506       │                │              │            │ Ps=0 -> right of │
507       │                │              │            │ cursor. Ps=1 ->  │
508       │                │              │            │ left of cursor.  │
509       │                │              │            │ Ps=2 -> all.     │
510       ├────────────────┼──────────────┼────────────┼──────────────────┤
511       │\E[ Pm h        │ SM           │ VT100      │ Set mode. Pm=4   │
512       │                │              │            │ -> enable IRM    │
513       │                │              │            │ (insert mode).   │
514       │                │              │            │ All other values │
515       │                │              │            │ of Pm are unsup‐ │
516       │                │              │            │ ported.          │
517       ├────────────────┼──────────────┼────────────┼──────────────────┤
518       │\E[ Pm l        │ RM           │ VT100      │ Reset mode. Pm=4 │
519       │                │              │            │ -> disable IRM   │
520       │                │              │            │ (insert mode).   │
521       │                │              │            │ All other values │
522       │                │              │            │ of Pm are unsup‐ │
523       │                │              │            │ ported.          │
524       ├────────────────┼──────────────┼────────────┼──────────────────┤
525       │\E[ Ps n        │ DSR          │ VT100      │ Device status    │
526       │                │              │            │ report. Ps=5 ->  │
527       │                │              │            │ device status.   │
528       │                │              │            │ Ps=6 -> cursor   │
529       │                │              │            │ position.        │
530       ├────────────────┼──────────────┼────────────┼──────────────────┤
531       │\E[ Ps L        │ IL           │ VT220      │ Insert Ps lines. │
532       ├────────────────┼──────────────┼────────────┼──────────────────┤
533       │\E[ Ps M        │ DL           │ VT220      │ Delete Ps lines. │
534       ├────────────────┼──────────────┼────────────┼──────────────────┤
535       │\E[ Ps P        │ DCH          │ VT220      │ Delete Ps char‐  │
536       │                │              │            │ acters.          │
537       ├────────────────┼──────────────┼────────────┼──────────────────┤
538       │\E[ Ps @        │ ICH          │ VT220      │ Insert Ps blank  │
539       │                │              │            │ characters.      │
540       ├────────────────┼──────────────┼────────────┼──────────────────┤
541       │\E[ Ps X        │ ECH          │ VT220      │ Erase Ps charac‐ │
542       │                │              │            │ ters.            │
543       ├────────────────┼──────────────┼────────────┼──────────────────┤
544       │\E[ > c         │ DA2          │ VT220      │ Send secondary   │
545       │                │              │            │ device at‐       │
546       │                │              │            │ tributes. Foot   │
547       │                │              │            │ responds with    │
548       │                │              │            │ "I'm a VT220 and │
549       │                │              │            │ here's my ver‐   │
550       │                │              │            │ sion number".    │
551       ├────────────────┼──────────────┼────────────┼──────────────────┤
552       │\E[ ! p         │ DECSTR       │ VT220      │ Soft terminal    │
553       │                │              │            │ reset.           │
554       ├────────────────┼──────────────┼────────────┼──────────────────┤
555       │\E[ ? Ps $ p    │ DECRQM       │ VT320      │ Request DEC pri‐ │
556       │                │              │            │ vate mode.       │
557       ├────────────────┼──────────────┼────────────┼──────────────────┤
558       │\E[ Ps T        │ SD           │ VT420      │ Scroll down Ps
559       │                │              │            │ lines.           │
560       ├────────────────┼──────────────┼────────────┼──────────────────┤
561       │\E[ s           │ SCOSC        │ SCO, VT510 │ Save cursor po‐  │
562       │                │              │            │ sition.          │
563       ├────────────────┼──────────────┼────────────┼──────────────────┤
564       │\E[ u           │ SCORC        │ SCO, VT510 │ Restore cursor   │
565       │                │              │            │ position.        │
566       ├────────────────┼──────────────┼────────────┼──────────────────┤
567       │\E[ Ps SP q     │ DECSCUSR     │ VT510      │ Set cursor       │
568       │                │              │            │ style. In foot,  │
569       │                │              │            │ Ps=0 means "use  │
570       │                │              │            │ style from       │
571       │                │              │            │ foot.ini".       │
572       ├────────────────┼──────────────┼────────────┼──────────────────┤
573       │\E[ = Ps c      │ DA3          │ VT510      │ send tertiary    │
574       │                │              │            │ device at‐       │
575       │                │              │            │ tributes. Foot   │
576       │                │              │            │ responds with    │
577       │                │              │            │ "FOOT", in hexa‐ │
578       │                │              │            │ decimal.         │
579       ├────────────────┼──────────────┼────────────┼──────────────────┤
580       │\E[ Pm d        │ VPA          │ ECMA-48    │ Line position    │
581       │                │              │            │ absolute - move  │
582       │                │              │            │ cursor to line   │
583       │                │              │            │ Pm.              │
584       ├────────────────┼──────────────┼────────────┼──────────────────┤
585       │\E[ Pm e        │ VPR          │ ECMA-48    │ Line position    │
586       │                │              │            │ relative - move  │
587       │                │              │            │ cursor down Pm
588       │                │              │            │ lines.           │
589       ├────────────────┼──────────────┼────────────┼──────────────────┤
590       │\E[ Pm a        │ HPR          │ ECMA-48    │ Character posi‐  │
591       │                │              │            │ tion relative -  │
592       │                │              │            │ move cursor to   │
593       │                │              │            │ the right Pm
594       │                │              │            │ times.           │
595       ├────────────────┼──────────────┼────────────┼──────────────────┤
596       │\E[ Ps E        │ CNL          │ ECMA-48    │ Cursor next line │
597       │                │              │            │ - move the cur‐  │
598       │                │              │            │ sor down Ps
599       │                │              │            │ times.           │
600       ├────────────────┼──────────────┼────────────┼──────────────────┤
601       │\E[ Ps F        │ CPL          │ ECMA-48    │ Cursor preceding │
602       │                │              │            │ line  - move the │
603       │                │              │            │ cursor up Ps
604       │                │              │            │ times.           │
605       ├────────────────┼──────────────┼────────────┼──────────────────┤
606       │\E[ Pm `        │ HPA          │ ECMA-48    │ Character posi‐  │
607       │                │              │            │ tion absolute -  │
608       │                │              │            │ move cursor to   │
609       │                │              │            │ column Pm.       │
610       ├────────────────┼──────────────┼────────────┼──────────────────┤
611       │\E[ Ps G        │ CHA          │ ECMA-48    │ Cursor character │
612       │                │              │            │ absolute - move  │
613       │                │              │            │ cursor to column │
614       │                │              │            │ Ps. cursor. Ps=2 │
615       │                │              │            │ -> all. Ps=3 ->  │
616       │                │              │            │ saved lines.     │
617       ├────────────────┼──────────────┼────────────┼──────────────────┤
618       │\E[ Ps S        │ SU           │ ECMA-48    │ Scroll up Ps
619       │                │              │            │ lines.           │
620       ├────────────────┼──────────────┼────────────┼──────────────────┤
621       │\E[ Ps I        │ CHT          │ ECMA-48    │ Cursor forward   │
622       │                │              │            │ tabulation Ps
623       │                │              │            │ tab stops.       │
624       ├────────────────┼──────────────┼────────────┼──────────────────┤
625       │\E[ Ps Z        │ CBT          │ ECMA-48    │ Cursor backward  │
626       │                │              │            │ tabulation Ps
627       │                │              │            │ tab stops.       │
628       ├────────────────┼──────────────┼────────────┼──────────────────┤
629       │\E[ Ps b        │ REP          │ ECMA-48    │ Repeat the pre‐  │
630       │                │              │            │ ceding printable │
631       │                │              │            │ character Ps
632       │                │              │            │ times.           │
633       ├────────────────┼──────────────┼────────────┼──────────────────┤
634       │\E[ ? Pi ; Pa ; │ XTSMGRAPHICS │ xterm      │ Set or request   │
635Pv S            │              │            │ sixel at‐        │
636       │                │              │            │ tributes.        │
637       ├────────────────┼──────────────┼────────────┼──────────────────┤
638       │\E[ > Ps q      │ XTVERSION    │ xterm      │ Ps=0 -> report   │
639       │                │              │            │ terminal name    │
640       │                │              │            │ and version, in  │
641       │                │              │            │ the form         │
642       │                │              │            │ \EP>|foot(ver‐   
643       │                │              │            │ sion)\E\.        │
644       ├────────────────┼──────────────┼────────────┼──────────────────┤
645       │\E[ > 4 ; Pv m  │ XTMODKEYS    │ xterm      │ Set level of the │
646       │                │              │            │ modifyOtherKeys
647       │                │              │            │ property to Pv.  │
648       │                │              │            │ Note that foot   │
649       │                │              │            │ only supports    │
650       │                │              │            │ level 1 and 2,   │
651       │                │              │            │ where level 1 is │
652       │                │              │            │ the default set‐ │
653       │                │              │            │ ting.            │
654       ├────────────────┼──────────────┼────────────┼──────────────────┤
655       │\E[ > 4 n       │ <unnamed>    │ xterm      │ Resets the modi‐
656       │                │              │            │ fyOtherKeys
657       │                │              │            │ property to      │
658       │                │              │            │ level 1. Note    │
659       │                │              │            │ that in foot,    │
660       │                │              │            │ this sequence    │
661       │                │              │            │ does not com‐    │
662       │                │              │            │ pletely disable  │
663       │                │              │            │ modifyOtherKeys, │
664       │                │              │            │ since foot only  │
665       │                │              │            │ supports level 1 │
666       │                │              │            │ and level 2 (and │
667       │                │              │            │ not level 0).    │
668       ├────────────────┼──────────────┼────────────┼──────────────────┤
669       │\E[ ? u         │ <unnamed>    │ kitty      │ Query current    │
670       │                │              │            │ values of the    │
671       │                │              │            │ Kitty keyboard   │
672       │                │              │            │ flags.           │
673       ├────────────────┼──────────────┼────────────┼──────────────────┤
674       │\E[ > flags u   │ <unnamed>    │ kitty      │ Push a new en‐   │
675       │                │              │            │ try, flags, to   │
676       │                │              │            │ the Kitty key‐   │
677       │                │              │            │ board stack.     │
678       ├────────────────┼──────────────┼────────────┼──────────────────┤
679       │\E[ < number u  │ <unnamed>    │ kitty      │ Pop number of    │
680       │                │              │            │ entries from the │
681       │                │              │            │ Kitty keyboard   │
682       │                │              │            │ stack.           │
683       ├────────────────┼──────────────┼────────────┼──────────────────┤
684       │\E[ = flags ;   │ <unnamed>    │ kitty      │ Update current   │
685mode u          │              │            │ Kitty keyboard   │
686       │                │              │            │ flags, according │
687       │                │              │            │ to mode.         │
688       └────────────────┴──────────────┴────────────┴──────────────────┘
689

OSC

691       All OSC sequences begin with \E], sometimes abbreviated OSC.
692
693       ┌────────────────────┬────────────┬───────────────────────────┐
694Sequence            Origin     Description               
695       ├────────────────────┼────────────┼───────────────────────────┤
696       │\E] 0 ; Pt \E\      │ xterm      │ Set window icon and       │
697       │                    │            │ title to Pt (foot         │
698       │                    │            │ does not support          │
699       │                    │            │ setting the icon)         │
700       ├────────────────────┼────────────┼───────────────────────────┤
701       │\E] 2 ; Pt \E\      │ xterm      │ Set window title to       │
702       │                    │            │ Pt
703       ├────────────────────┼────────────┼───────────────────────────┤
704       │\E] 4 ; c ; spec    │ xterm      │ Change color number       │
705       │\E\                 │            │ c to spec, where          │
706       │                    │            │ spec is a color in        │
707       │                    │            │ XParseColor format.       │
708       │                    │            │ foot only supports        │
709       │                    │            │ RGB colors; either        │
710       │                    │            │ rgb:<red>/<green>/<blue>, │
711       │                    │            │ or the legacy for‐        │
712       │                    │            │ mat (#rgb).               │
713       ├────────────────────┼────────────┼───────────────────────────┤
714       │\E] 7 ; Uri \E\     │ iTerm2     │ Update the terminal's     │
715       │                    │            │ current working direc‐    │
716       │                    │            │ tory. Newly spawned ter‐  │
717       │                    │            │ minals will launch in     │
718       │                    │            │ this directory. Uri must  │
719       │                    │            │ be in the format          │
720       │                    │            │ file://<hostname>/<path>. │
721       │                    │            │ hostname must refer to    │
722       │                    │            │ your local host.          │
723       ├────────────────────┼────────────┼───────────────────────────┤
724       │\E] 8 ; id=ID ; Uri │ VTE+iTerm2 │ Hyperlink (a.k.a HTML-    │
725       │\E\                 │            │ like anchors). id=ID is   │
726       │                    │            │ optional; if assigned,    │
727       │                    │            │ all URIs with the same ID
728       │                    │            │ will be treated as a sin‐ │
729       │                    │            │ gle hyperlink. An empty   │
730       │                    │            │ URI closes the hyperlink. │
731       ├────────────────────┼────────────┼───────────────────────────┤
732       │\E] 9 ; msg \E\     │ iTerm2     │ Desktop notification,     │
733       │                    │            │ uses notify in            │
734       │                    │            │ foot.ini(5).              │
735       ├────────────────────┼────────────┼───────────────────────────┤
736       │\E] 10 ; spec \E\   │ xterm      │ Change the default fore‐  │
737       │                    │            │ ground color to spec, a   │
738       │                    │            │ color in XParseColor for‐ │
739       │                    │            │ mat.                      │
740       ├────────────────────┼────────────┼───────────────────────────┤
741       │\E] 11 ; spec \E\   │ xterm      │ Change the default back‐  │
742       │                    │            │ ground color to spec, a   │
743       │                    │            │ color in XParseColor for‐ │
744       │                    │            │ mat. Foot implements      │
745       │                    │            │ URxvt's transparency ex‐  │
746       │                    │            │ tension; e.g.             │
747       │                    │            │ spec=[75]#ff00ff or       │
748       │                    │            │ spec=rgba:ff/00/ff/bf     
749       │                    │            │ (pink with 75% alpha).    │
750       ├────────────────────┼────────────┼───────────────────────────┤
751       │\E] 12 ; spec \E\   │ xterm      │ Change cursor color to    │
752       │                    │            │ spec, a color in XParseC‐ │
753       │                    │            │ olor format.              │
754       ├────────────────────┼────────────┼───────────────────────────┤
755       │\E] 17 ; spec \E\   │ xterm      │ Change selection back‐    │
756       │                    │            │ ground color to spec, a   │
757       │                    │            │ color in XParseColor for‐ │
758       │                    │            │ mat.                      │
759       ├────────────────────┼────────────┼───────────────────────────┤
760       │\E] 19 ; spec \E\   │ xterm      │ Change selection fore‐    │
761       │                    │            │ ground color to spec, a   │
762       │                    │            │ color in XParseColor for‐ │
763       │                    │            │ mat.                      │
764       ├────────────────────┼────────────┼───────────────────────────┤
765       │\E] 22 ; xcursor-   │ xterm      │ Sets the xcursor pointer. │
766pointer-name \E\    │            │ An empty name, or an in‐  │
767       │                    │            │ valid name resets it.     │
768       ├────────────────────┼────────────┼───────────────────────────┤
769       │\E] 52 ; Pc ; ? \E\ │ xterm      │ Send clipboard data. Pc
770       │                    │            │ can be either c, s or p.  │
771       │                    │            │ c uses the clipboard as   │
772       │                    │            │ source, and s and p uses  │
773       │                    │            │ the primary selection.    │
774       │                    │            │ The response is \E] 52 ;  
775       │                    │            │ Pc ; <base64-encoded      
776       │                    │            │ data> E\, where Pc de‐    │
777       │                    │            │ notes the source used.    │
778       ├────────────────────┼────────────┼───────────────────────────┤
779       │\E] 52 ; Pc ; Pd    │ xterm      │ Copy Pd (base64 encoded   │
780       │\E\                 │            │ text) to the clipboard.   │
781       │                    │            │ Pc denotes the target: c  
782       │                    │            │ targets the clipboard and │
783       │                    │            │ s and p the primary se‐   │
784       │                    │            │ lection.                  │
785       ├────────────────────┼────────────┼───────────────────────────┤
786       │\E] 104 ; c \E\     │ xterm      │ Reset color number c
787       │                    │            │ (multiple semicolon sepa‐ │
788       │                    │            │ rated c values may be     │
789       │                    │            │ provided), or all colors  │
790       │                    │            │ (excluding the default    │
791       │                    │            │ foreground/background     │
792       │                    │            │ colors) if c is omitted.  │
793       ├────────────────────┼────────────┼───────────────────────────┤
794       │\E] 110 \E\         │ xterm      │ Reset default foreground  │
795       │                    │            │ color                     │
796       ├────────────────────┼────────────┼───────────────────────────┤
797       │\E] 111 \E\         │ xterm      │ Reset default background  │
798       │                    │            │ color                     │
799       ├────────────────────┼────────────┼───────────────────────────┤
800       │\E] 112 \E\         │ xterm      │ Reset cursor color        │
801       ├────────────────────┼────────────┼───────────────────────────┤
802       │\E] 117 \E\         │ xterm      │ Reset selection back‐     │
803       │                    │            │ ground color              │
804       ├────────────────────┼────────────┼───────────────────────────┤
805       │\E] 119 \E\         │ xterm      │ Reset selection fore‐     │
806       │                    │            │ ground color              │
807       ├────────────────────┼────────────┼───────────────────────────┤
808       │\E] 133 ; A \E\     │ FinalTerm  │ Mark start of shell       │
809       │                    │            │ prompt                    │
810       ├────────────────────┼────────────┼───────────────────────────┤
811       │\E] 555 \E\         │ foot       │ Flash the entire terminal │
812       │                    │            │ (foot extension)          │
813       ├────────────────────┼────────────┼───────────────────────────┤
814       │\E] 777;notify;ti‐  │ urxvt      │ Desktop notification,     │
815tle;msg \E\         │            │ uses notify in            │
816       │                    │            │ foot.ini(5).              │
817       └────────────────────┴────────────┴───────────────────────────┘
818

DCS

820       All DCS sequences begin with \EP (sometimes abbreviated DCS), and are
821       terminated by \E\ (ST).
822
823       ┌───────────────────────────┬────────────────────────────┐
824Sequence                   Description                
825       ├───────────────────────────┼────────────────────────────┤
826       │\EP q <sixel data> \E\     │ Emit a sixel image at the  │
827       │                           │ current cursor position    │
828       ├───────────────────────────┼────────────────────────────┤
829       │\P $ q <query> \E\         │ Request selection or set‐  │
830       │                           │ ting (DECRQSS). Imple‐     │
831       │                           │ mented queries: DECSTBM,   │
832       │                           │ SGR and DECSCUSR.          │
833       ├───────────────────────────┼────────────────────────────┤
834       │\EP = C s \E\              │ Begin (C=1) or end (C=2)   │
835       │                           │ application synchronized   │
836       │                           │ updates. This sequence is  │
837       │                           │ supported for compatibil‐  │
838       │                           │ ity reasons, but it's rec‐ │
839       │                           │ ommended to use private    │
840       │                           │ mode 2026 (see above) in‐  │
841       │                           │ stead.                     │
842       ├───────────────────────────┼────────────────────────────┤
843       │\EP + q <hex encoded capa‐ │                            │
844       │bility name> \ET}  T{      │                            │
845       │Query builtin terminfo     │                            │
846       │database (XTGETTCAP)       │                            │
847       └───────────────────────────┴────────────────────────────┘
848

FOOTNOTE

850       Foot does not support 8-bit control characters ("C1").
851
852
853
854                                  2022-08-31                   foot-ctlseqs(7)
Impressum