9 "ttx terminal multiplexer"_tsv,
22 .long_name =
"Automatic right margin"_sv,
23 .short_name =
"am"_tsv,
24 .description =
"Automatic margins (autowrap enabled by default)"_sv,
27 .long_name =
"Background character erase"_sv,
28 .short_name =
"bce"_tsv,
29 .description =
"Clearing the screens sets the background color, instead of resetting the cell fully"_sv,
32 .long_name =
"Modifiable palette"_sv,
33 .short_name =
"ccc"_tsv,
34 .description =
"Terminal allows modifying the color palette dynamically"_sv,
37 .long_name =
"Has status line"_sv,
38 .short_name =
"hs"_tsv,
39 .description =
"Has status line (for displaying window title)"_sv,
42 .long_name =
"Has meta key"_sv,
43 .short_name =
"km"_tsv,
44 .description =
"Keyboard reports include meta key bit on modifiers"_sv,
47 .long_name =
"No built-in echo"_sv,
48 .short_name =
"mc5i"_tsv,
49 .description =
"Terminal won't echo (presumably key presses) automatically"_sv,
52 .long_name =
"Move in insert mode"_sv,
53 .short_name =
"mir"_tsv,
54 .description =
"Cursor can move in insert mode"_sv,
57 .long_name =
"Move in standout mode"_sv,
58 .short_name =
"msgr"_tsv,
59 .description =
"Cursor can move in standout mode (apparently standout mode is inverse (SGR 7))"_sv,
62 .long_name =
"No pad character"_sv,
63 .short_name =
"npc"_tsv,
64 .description =
"? What is a pad character"_sv,
67 .long_name =
"Newline ignored after 80 cols"_sv,
68 .short_name =
"xenl"_tsv,
69 .description =
"? - This is set by xterm"_sv,
72 .long_name =
"Default colors"_sv,
73 .short_name =
"AX"_tsv,
74 .description =
"Supports resetting the foreground/background via SGR 39/49"_sv,
77 .long_name =
"Colored underlines"_sv,
78 .short_name =
"Su"_tsv,
79 .description =
"Supports changing underline color via SGR 58-59"_sv,
82 .long_name =
"Truecolor"_sv,
83 .short_name =
"Tc"_tsv,
84 .description =
"Supports 24 bit true color via SGR 38/38"_sv,
87 .long_name =
"Xterm extnesions"_sv,
88 .short_name =
"XT"_tsv,
89 .description =
"Supports various xterm extensions (tmux uses this to set some default capabilities)"_sv,
92 .long_name =
"Kitty keyboard protocol"_sv,
93 .short_name =
"fullkbd"_tsv,
94 .description =
"Supports kitty keyboard protocol"_sv,
97 .long_name =
"Maximum colors"_sv,
98 .short_name =
"colors"_tsv,
100 .description =
"Number of colors in the palette"_sv,
103 .long_name =
"Columns"_sv,
104 .short_name =
"cols"_tsv,
106 .description =
"Number of columns on screen (this is dynamic)"_sv,
109 .long_name =
"Initial tab spacing"_sv,
110 .short_name =
"it"_tsv,
112 .description =
"Default spacing used for tab characters"_sv,
115 .long_name =
"Lines"_sv,
116 .short_name =
"lines"_tsv,
118 .description =
"Number of lines (rows) on screen (this is dynamic)"_sv,
121 .long_name =
"Maximum color pairs"_sv,
122 .short_name =
"pairs"_tsv,
124 .description =
"Number of different graphics renditions which can co-exist on the screen"_sv,
127 .long_name =
"UTF-8 always"_sv,
128 .short_name =
"U8"_tsv,
131 .description =
"Disable box drawing characters by saying we only support UTF-8"_sv,
134 .long_name =
"Alternate charset pairs"_sv,
135 .short_name =
"acsc"_tsv,
136 .value =
"``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~"_tsv,
137 .description =
"Alternate charset mapping (this is the identity)"_sv,
140 .long_name =
"Bell"_sv,
141 .short_name =
"bel"_tsv,
143 .description =
"Bell character - \\a"_sv,
146 .long_name =
"Blink"_sv,
147 .short_name =
"blink"_tsv,
148 .value =
"\\E[5m"_tsv,
149 .description =
"Set blinking cell via SGR 5"_sv,
152 .long_name =
"Bold"_sv,
153 .short_name =
"bold"_tsv,
154 .value =
"\\E[1m"_tsv,
155 .description =
"Set bold cell via SGR 1"_sv,
158 .long_name =
"Shift tab"_sv,
159 .short_name =
"cbt"_tsv,
160 .value =
"\\E[Z"_tsv,
161 .description =
"Terminal sends CSI Z on shift+tab"_sv,
164 .long_name =
"Invisible cursor"_sv,
165 .short_name =
"civis"_tsv,
166 .value =
"\\E[?25l"_tsv,
167 .description =
"Hide the cursor via CSI ? 25 l"_sv,
170 .long_name =
"Clear"_sv,
171 .short_name =
"clear"_tsv,
172 .value =
"\\E[H\\E[2J"_tsv,
173 .description =
"Clear the scren by sending CSI H (cursor to 0,0) and CSI 2 J (clear full screen)"_sv,
176 .long_name =
"Cursor Normal"_sv,
177 .short_name =
"cnorm"_tsv,
180 .value =
"\\E[?12h\\E[?25h"_tsv,
181 .description =
"Reset the cursor by enabling blinking (CSI ? 12 h) and showing the cursor (CSI ? 25 h)"_sv,
184 .long_name =
"Carriage return"_sv,
185 .short_name =
"cr"_tsv,
187 .description =
"Terminal recognizes \\r as carrigate return"_sv,
190 .long_name =
"Change scroll region"_sv,
191 .short_name =
"csr"_tsv,
192 .value =
"\\E[%i%p1%d;%p2%dr"_tsv,
193 .description =
"Set vertical scroll region via CSI b; t r"_sv,
196 .long_name =
"Paramaterized cursor back"_sv,
197 .short_name =
"cub"_tsv,
198 .value =
"\\E[%p1%dD"_tsv,
199 .description =
"Move cursor left via CSI Ps D"_sv,
202 .long_name =
"Cursor back"_sv,
203 .short_name =
"cub1"_tsv,
205 .description =
"Move cursor left 1 via \\b (^H)"_sv,
208 .long_name =
"Paramaterized cursor down"_sv,
209 .short_name =
"cud"_tsv,
210 .value =
"\\E[%p1%dB"_tsv,
211 .description =
"Move cursor down via CSI Ps B"_sv,
214 .long_name =
"Cursor down"_sv,
215 .short_name =
"cud1"_tsv,
217 .description =
"Move cursor down 1 via \\n"_sv,
220 .long_name =
"Paramaterized cursor right"_sv,
221 .short_name =
"cuf"_tsv,
222 .value =
"\\E[%p1%dC"_tsv,
223 .description =
"Move cursor right via CSI Ps C"_sv,
226 .long_name =
"Cursor right"_sv,
227 .short_name =
"cuf1"_tsv,
228 .value =
"\\E[C"_tsv,
229 .description =
"Move cursor right 1 via CSI C"_sv,
232 .long_name =
"Cursor address"_sv,
233 .short_name =
"cup"_tsv,
234 .value =
"\\E[%i%p1%d;%p2%dH"_tsv,
235 .description =
"Move cursor to r,c via CSI r; c H"_sv,
238 .long_name =
"Paramaterized cursor up"_sv,
239 .short_name =
"cuu"_tsv,
240 .value =
"\\E[%p1%dA"_tsv,
241 .description =
"Move cursor up via CSI Ps A"_sv,
244 .long_name =
"Cursor up"_sv,
245 .short_name =
"cuu1"_tsv,
246 .value =
"\\E[A"_tsv,
247 .description =
"Move cursor up 1 via CSI A"_sv,
250 .long_name =
"Cursor visible"_sv,
251 .short_name =
"cvvis"_tsv,
253 .value =
"\\E[?12;25h"_tsv,
254 .description =
"Make cursor visible via CSI ? 12 ; 25 h"_sv,
257 .long_name =
"Delete characters"_sv,
258 .short_name =
"dch"_tsv,
259 .value =
"\\E[%p1%dP"_tsv,
260 .description =
"Delete characters via CSI Ps P"_sv,
263 .long_name =
"Delete character"_sv,
264 .short_name =
"dch1"_tsv,
265 .value =
"\\E[P"_tsv,
266 .description =
"Delete character via CSI P"_sv,
269 .long_name =
"Dim"_sv,
270 .short_name =
"dim"_tsv,
271 .value =
"\\E[2m"_tsv,
272 .description =
"Dim the cell via SGR 2"_sv,
275 .long_name =
"Delete lines"_sv,
276 .short_name =
"dl"_tsv,
277 .value =
"\\E[%p1%dM"_tsv,
278 .description =
"Delete lines via CSI Ps M"_sv,
281 .long_name =
"Delete line"_sv,
282 .short_name =
"dl1"_tsv,
283 .value =
"\\E[M"_tsv,
284 .description =
"Delete line via CSI M"_sv,
287 .long_name =
"Disable status line"_sv,
288 .short_name =
"dsl"_tsv,
289 .value = R
"(\E]2;\E\\)"_tsv,
290 .description = "Disable window title via blank OSC 2"_sv,
293 .long_name =
"Erase characters"_sv,
294 .short_name =
"ech"_tsv,
295 .value =
"\\E[%p1%dX"_tsv,
296 .description =
"Erase characters via CSI Ps X"_sv,
299 .long_name =
"Erase display"_sv,
300 .short_name =
"ed"_tsv,
301 .value =
"\\E[J"_tsv,
302 .description =
"Erase to screen end via CSI J"_sv,
305 .long_name =
"Erase line"_sv,
306 .short_name =
"el"_tsv,
307 .value =
"\\E[K"_tsv,
308 .description =
"Erase to line end via CSI K"_sv,
311 .long_name =
"Erase line beginning"_sv,
312 .short_name =
"el1"_tsv,
313 .value =
"\\E[1K"_tsv,
314 .description =
"Erase to beginning of line end via CSI 1 K"_sv,
317 .long_name =
"Flash"_sv,
318 .short_name =
"flash"_tsv,
319 .value =
"\\E[?5h$<100/>\\E[?5l"_tsv,
320 .description =
"Flash screen via enabling/disabling video reverse mode (CSI ? 5 h/l), after 100 ms"_sv,
323 .long_name =
"From status line"_sv,
324 .short_name =
"fsl"_tsv,
326 .description =
"Terminate OSC sequence via \\a (^G)"_sv,
329 .long_name =
"Home"_sv,
330 .short_name =
"home"_tsv,
331 .value =
"\\E[H"_tsv,
332 .description =
"Move cursor to home via CSI H"_sv,
335 .long_name =
"Horizontal position absolute"_sv,
336 .short_name =
"hpa"_tsv,
337 .value =
"\\E[%i%p1%dG"_tsv,
338 .description =
"Set cursor col to n via CSI n G"_sv,
341 .long_name =
"Horizontal tab"_sv,
342 .short_name =
"ht"_tsv,
344 .description =
"Terminal recognizes tab as \\t (^I)"_sv,
347 .long_name =
"Horizontal tab set"_sv,
348 .short_name =
"hts"_tsv,
350 .description =
"Set horizontal tab via CI HTS (ESC H)"_sv,
353 .long_name =
"Insert characters"_sv,
354 .short_name =
"ich"_tsv,
355 .value =
"\\E[%p1%d@"_tsv,
356 .description =
"Insert characters via CSI Ps @"_sv,
359 .long_name =
"Insert character"_sv,
360 .short_name =
"ich1"_tsv,
361 .value =
"\\E[@"_tsv,
362 .description =
"Insert character via CSI @"_sv,
365 .long_name =
"Insert lines"_sv,
366 .short_name =
"il"_tsv,
367 .value =
"\\E[%p1%dL"_tsv,
368 .description =
"Insert lines via CSI Ps L"_sv,
371 .long_name =
"Insert line"_sv,
372 .short_name =
"il1"_tsv,
373 .value =
"\\E[L"_tsv,
374 .description =
"Insert line via CSI L"_sv,
377 .long_name =
"Index"_sv,
378 .short_name =
"ind"_tsv,
380 .description =
"Scroll text down via \\n (we auto-scroll when moving the cursor down via \\n)"_sv,
383 .long_name =
"Scroll up"_sv,
384 .short_name =
"indn"_tsv,
385 .value =
"\\E[%p1%dS"_tsv,
386 .description =
"Scroll up via CSI Ps S"_sv,
389 .long_name =
"Initialize color"_sv,
390 .short_name =
"initc"_tsv,
392 R
"(\E]4;%p1%d;rgb:%p2%{255}%*%{1000}%/%2.2X/%p3%{255}%*%{1000}%/%2.2X/%p4%{255}%*%{1000}%/%2.2X\E\\)"_tsv,
393 .description = "Initialize color value via OSC 4"_sv,
396 .long_name =
"Invisible"_sv,
397 .short_name =
"invis"_tsv,
398 .value =
"\\E[8m"_tsv,
399 .description =
"Make cell invisible via CSI 8"_sv,
403#define KEY_CAP(short, v, name) \
405 .long_name = name ""_sv, \
406 .short_name = short ""_tsv, \
408 .description = "Escape terminal sends when " #name " is pressed"_sv, \
412 M("kBEG", "\\E[1;2E", "Shift+Begin") \
413 M("kDC", "\\E[3;2~", "Shift+Delete") \
414 M("kEND", "\\E[1;2F", "Shift+End") \
415 M("kHOM", "\\E[1;2H", "Shift+Home") \
416 M("kIC", "\\E[2;2~", "Shift+Insert") \
417 M("kLFT", "\\E[1;2D", "Shift+Left") \
418 M("kNXT", "\\E[6;2~", "Shift+PageDown") \
419 M("kPRV", "\\E[5;2~", "Shift+PageUp") \
420 M("kRIT", "\\E[1;2C", "Shift+Right") \
421 M("kbeg", "\\EOE", "Begin") \
422 M("kbs", "^?", "Backspace") \
423 M("kcbt", "\\E[Z", "Shift+Tab") \
424 M("kcub1", "\\EOD", "Left") \
425 M("kcud1", "\\EOB", "Down") \
426 M("kcuf1", "\\EOC", "Right") \
427 M("kcuu1", "\\EOA", "Up") \
428 M("kdch1", "\\E[3~", "Delete") \
429 M("kend", "\\EOF", "End") \
430 M("kf1", "\\EOP", "F1") \
431 M("kf10", "\\E[21~", "F10") \
432 M("kf11", "\\E[23~", "F11") \
433 M("kf12", "\\E[24~", "F12") \
434 M("kf13", "\\E[1;2P", "Shift+F1") \
435 M("kf14", "\\E[1;2Q", "Shift+F2") \
436 M("kf15", "\\E[1;2R", "Shift+F3") \
437 M("kf16", "\\E[1;2S", "Shift+F4") \
438 M("kf17", "\\E[15;2~", "Shift+F5") \
439 M("kf18", "\\E[17;2~", "Shift+F6") \
440 M("kf19", "\\E[18;2~", "Shift+F7") \
441 M("kf2", "\\EOQ", "F2") \
442 M("kf20", "\\E[19;2~", "Shift+F8") \
443 M("kf21", "\\E[20;2~", "Shift+F9") \
444 M("kf22", "\\E[21;2~", "Shift+F10") \
445 M("kf23", "\\E[23;2~", "Shift+F11") \
446 M("kf24", "\\E[24;2~", "Shift+F12") \
447 M("kf25", "\\E[1;5P", "Control+F1") \
448 M("kf26", "\\E[1;5Q", "Control+F2") \
449 M("kf27", "\\E[1;5R", "Control+F3") \
450 M("kf28", "\\E[1;5S", "Control+F4") \
451 M("kf29", "\\E[15;5~", "Control+F5") \
452 M("kf3", "\\EOR", "F3") \
453 M("kf30", "\\E[17;5~", "Control+F6") \
454 M("kf31", "\\E[18;5~", "Control+F7") \
455 M("kf32", "\\E[19;5~", "Control+F8") \
456 M("kf33", "\\E[20;5~", "Control+F9") \
457 M("kf34", "\\E[21;5~", "Control+F10") \
458 M("kf35", "\\E[23;5~", "Control+F11") \
459 M("kf36", "\\E[24;5~", "Control+F12") \
460 M("kf37", "\\E[1;6P", "Control+Shift+F1") \
461 M("kf38", "\\E[1;6Q", "Control+Shift+F2") \
462 M("kf39", "\\E[1;6R", "Control+Shift+F3") \
463 M("kf4", "\\EOS", "F4") \
464 M("kf40", "\\E[1;6S", "Control+Shift+F4") \
465 M("kf41", "\\E[15;6~", "Control+Shift+F5") \
466 M("kf42", "\\E[17;6~", "Control+Shift+F6") \
467 M("kf43", "\\E[18;6~", "Control+Shift+F7") \
468 M("kf44", "\\E[19;6~", "Control+Shift+F8") \
469 M("kf45", "\\E[20;6~", "Control+Shift+F9") \
470 M("kf46", "\\E[21;6~", "Control+Shift+F10") \
471 M("kf47", "\\E[23;6~", "Control+Shift+F11") \
472 M("kf48", "\\E[24;6~", "Control+Shift+F12") \
473 M("kf49", "\\E[1;3P", "Alt+F1") \
474 M("kf5", "\\E[15~", "F5") \
475 M("kf50", "\\E[1;3Q", "Alt+F2") \
476 M("kf51", "\\E[1;3R", "Alt+F3") \
477 M("kf52", "\\E[1;3S", "Alt+F4") \
478 M("kf53", "\\E[15;3~", "Alt+F5") \
479 M("kf54", "\\E[17;3~", "Alt+F6") \
480 M("kf55", "\\E[18;3~", "Alt+F7") \
481 M("kf56", "\\E[19;3~", "Alt+F8") \
482 M("kf57", "\\E[20;3~", "Alt+F9") \
483 M("kf58", "\\E[21;3~", "Alt+F10") \
484 M("kf59", "\\E[23;3~", "Alt+F11") \
485 M("kf6", "\\E[17~", "F6") \
486 M("kf60", "\\E[24;3~", "Alt+F12") \
487 M("kf61", "\\E[1;4P", "Alt+Shift+F1") \
488 M("kf62", "\\E[1;4Q", "Alt+Shift+F2") \
489 M("kf63", "\\E[1;4R", "Alt+Shift+F3") \
490 M("kf64", "\\E[1;4S", "Alt+Shift+F4") \
491 M("kf7", "\\E[18~", "F7") \
492 M("kf8", "\\E[19~", "F8") \
493 M("kf9", "\\E[20~", "F9") \
494 M("khome", "\\EOH", "Home") \
495 M("kich1", "\\E[2~", "Insert") \
496 M("kind", "\\E[1;2B", "Shift+Down") \
497 M("kmous", "\\E[M", "Mouse") \
498 M("knp", "\\E[6~", "PageDown") \
499 M("kpp", "\\E[5~", "PageUp") \
500 M("kri", "\\E[1;2A", "Shift+Up")
506 .long_name =
"Original colors"_sv,
507 .short_name =
"oc"_tsv,
508 .value =
"\\E]104\\007"_tsv,
509 .description =
"Reset color palette via OSC 104"_sv,
512 .long_name =
"Original pair"_sv,
513 .short_name =
"op"_tsv,
514 .value =
"\\E[39;49m"_tsv,
515 .description =
"Reset grahics rendition fg/bg via CSI 39;49 m"_sv,
518 .long_name =
"Restore cursor"_sv,
519 .short_name =
"rc"_tsv,
521 .description =
"Reset cursor via ESC 8 (DECRC)"_sv,
524 .long_name =
"Repeat character"_sv,
525 .short_name =
"rep"_tsv,
526 .value =
"%p1%c\\E[%p2%{1}%-%db"_tsv,
527 .description =
"Repeat character via CSI Ps b"_sv,
530 .long_name =
"Reverse video"_sv,
531 .short_name =
"rev"_tsv,
532 .value =
"\\E[7m"_tsv,
533 .description =
"Invert cell via SGR 7"_sv,
536 .long_name =
"Reverse index"_sv,
537 .short_name =
"ri"_tsv,
539 .description =
"Reverse index (scroll down) via C1 RI (ESC M)"_sv,
542 .long_name =
"Scroll down"_sv,
543 .short_name =
"rin"_tsv,
544 .value =
"\\E[%p1%dT"_tsv,
545 .description =
"Scroll down via CSI Ps T"_sv,
548 .long_name =
"Italic"_sv,
549 .short_name =
"ritm"_tsv,
550 .value =
"\\E[23m"_tsv,
551 .description =
"Italicize cell via SGR 23"_sv,
554 .long_name =
"End alternate character set"_sv,
555 .short_name =
"rmacs"_tsv,
556 .value =
"\\E(B"_tsv,
557 .description =
"End altnerate character set via ESC ( B"_sv,
562 .long_name =
"Reset automatic margins"_sv,
563 .short_name =
"rmam"_tsv,
564 .value =
"\\E[?7l"_tsv,
565 .description =
"Disable auto-wrap via CSI ? 7 l"_sv,
568 .long_name =
"Reset alternate screen"_sv,
569 .short_name =
"rmcup"_tsv,
570 .value =
"\\E[?1049l"_tsv,
571 .description =
"Leave alternate screen mode via CSI ? 1049 l"_sv,
574 .long_name =
"Exit insert mode"_sv,
575 .short_name =
"rmir"_tsv,
576 .value =
"\\E[4l"_tsv,
577 .description =
"Leave insert mode via CSI 4 l"_sv,
582 .long_name =
"Exit keyboard transmit mode"_sv,
583 .short_name =
"rmkx"_tsv,
584 .value =
"\\E[?1l\\E>"_tsv,
586 .description =
"Reset keyboard modes via CSI ? 1 l (cursor keys) and ESC > (alternate keypad mode)"_sv,
589 .long_name =
"Exit standout mode"_sv,
590 .short_name =
"rmso"_tsv,
591 .value =
"\\E[27m"_tsv,
592 .description =
"Exit standout mode via SGR 27 (clears inverted graphics rendition)"_sv,
595 .long_name =
"Exit underline"_sv,
596 .short_name =
"rmul"_tsv,
597 .value =
"\\E[24m"_tsv,
598 .description =
"Exit underline via SGR 24"_sv,
601 .long_name =
"Reset string"_sv,
602 .short_name =
"rs1"_tsv,
604 .value = R
"(\E]\E\\\Ec)"_tsv,
605 .description =
"Reset via empty OSC sequence followed by ESC c (full reset)"_sv,
608 .long_name =
"Set cursor"_sv,
609 .short_name =
"sc"_tsv,
611 .description =
"Save the cursor via ESC 7"_sv,
614 .long_name =
"Set background color"_sv,
615 .short_name =
"setab"_tsv,
616 .value =
"\\E[%?%p1%{8}%<%t4%p1%d%e%p1%{16}%<%t10%p1%{8}%-%d%e48;5;%p1%d%;m"_tsv,
617 .description =
"Set the graphics background via CSI 48"_sv,
620 .long_name =
"Set foreground color"_sv,
621 .short_name =
"setaf"_tsv,
622 .value =
"\\E[%?%p1%{8}%<%t3%p1%d%e%p1%{16}%<%t9%p1%{8}%-%d%e38;5;%p1%d%;m"_tsv,
623 .description =
"Set the graphics foregroup via CSI 38"_sv,
626 .long_name =
"Set graphics rendition"_sv,
627 .short_name =
"sgr"_tsv,
632 .value =
"\\E[0%?%p6%t;1%;%?%p5%t;2%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;%?%p7%t;8%;m"_tsv,
633 .description =
"Set the graphics rendition via CSI m, and charset via ESC ( C"_sv,
637 .long_name =
"Reset graphics rendition"_sv,
638 .short_name =
"sgr0"_tsv,
641 .value =
"\\E[m"_tsv,
642 .description =
"Reset the graphics rendition via CSI m and charset via ESC ( B"_sv,
646 .long_name =
"Set italics"_sv,
647 .short_name =
"sitm"_tsv,
648 .value =
"\\E[3m"_tsv,
649 .description =
"Set italics via SGR 3"_sv,
652 .long_name =
"Enter alternate charset"_sv,
653 .short_name =
"smacs"_tsv,
654 .value =
"\\E(0"_tsv,
655 .description =
"Enter box drawing charset via ESC ( 0"_sv,
660 .long_name =
"Set automatic margins"_sv,
661 .short_name =
"smam"_tsv,
662 .value =
"\\E[?7h"_tsv,
663 .description =
"Enable auto-wrap via CSI ? 7 h"_sv,
666 .long_name =
"Set alternate screen"_sv,
667 .short_name =
"smcup"_tsv,
668 .value =
"\\E[?1049h"_tsv,
669 .description =
"Enter alternate screen mode via CSI ? 1049 h"_sv,
672 .long_name =
"Enter insert mode"_sv,
673 .short_name =
"smir"_tsv,
674 .value =
"\\E[4h"_tsv,
675 .description =
"Enter insert mode via CSI 4 h"_sv,
680 .long_name =
"Enter keyboard transmit mode"_sv,
681 .short_name =
"smkx"_tsv,
682 .value =
"\\E[?1h\\E="_tsv,
684 .description =
"Enter keyboard modes via CSI ? 1 h (cursor keys) and ESC = (alternate keypad mode)"_sv,
687 .long_name =
"Enter standout mode"_sv,
688 .short_name =
"smso"_tsv,
689 .value =
"\\E[7m"_tsv,
690 .description =
"Enter standout mode via SGR 7 (inverted graphics rendition)"_sv,
693 .long_name =
"Enter underline"_sv,
694 .short_name =
"smul"_tsv,
695 .value =
"\\E[4m"_tsv,
696 .description =
"Enter underline via SGR 4"_sv,
699 .long_name =
"Clear all tabs"_sv,
700 .short_name =
"tbc"_tsv,
701 .value =
"\\E[3g"_tsv,
702 .description =
"Clear all tabstops via CSI 3 g"_sv,
705 .long_name =
"Move to status line"_sv,
706 .short_name =
"tsl"_tsv,
707 .value =
"\\E]2;"_tsv,
708 .description =
"Enter status line (window title) via OSC 2"_sv,
711 .long_name =
"User string 6"_sv,
712 .short_name =
"u6"_tsv,
713 .value =
"\\E[%i%d;%dR"_tsv,
714 .description =
"String format of cursor position reports CSI Ps ; Ps R"_sv,
717 .long_name =
"User string 7"_sv,
718 .short_name =
"u7"_tsv,
719 .value =
"\\E[6n"_tsv,
720 .description =
"Device status report (cursor position) via CSI 6 n"_sv,
723 .long_name =
"User string 8"_sv,
724 .short_name =
"u8"_tsv,
725 .value =
"\\E[?%[;0123456789]c"_tsv,
726 .description =
"String format of primary device attributes response - CSI ? Ps c"_sv,
729 .long_name =
"User string 9"_sv,
730 .short_name =
"u9"_tsv,
731 .value =
"\\E[c"_tsv,
732 .description =
"Device primary attributes (DA1) via CSI c"_sv,
735 .long_name =
"Vertical position absolute"_sv,
736 .short_name =
"vpa"_tsv,
737 .value =
"\\E[%i%p1%dd"_tsv,
738 .description =
"Set cursor vertical position via CSI Ps d"_sv,
741 .long_name =
"Leave bracketed paste"_sv,
742 .short_name =
"BD"_tsv,
743 .value =
"\\E[?2004l"_tsv,
744 .description =
"Leave bracketed paste via CSI ? 2004 l"_sv,
747 .long_name =
"Enter bracketed paste"_sv,
748 .short_name =
"BE"_tsv,
749 .value =
"\\E[?2004h"_tsv,
750 .description =
"Enter bracketed paste via CSI ? 2004 h"_sv,
753 .long_name =
"Reset horizontal margins"_sv,
754 .short_name =
"Clmg"_tsv,
755 .value =
"\\E[s"_tsv,
756 .description =
"Reset horizontal margins via CSI s"_sv,
761 .long_name =
"Set horizontal margins"_sv,
762 .short_name =
"Cmg"_tsv,
763 .value =
"\\E[%i%p1%d;%p2%ds"_tsv,
764 .description =
"Set horizontal margins via CSI Ps ; Ps s"_sv,
769 .long_name =
"Reset cursor color"_sv,
770 .short_name =
"Cr"_tsv,
771 .value =
"\\E]112\\007"_tsv,
772 .description =
"Reset cursor palette color via OSC 112"_sv,
775 .long_name =
"Set cursor color"_sv,
776 .short_name =
"Cs"_tsv,
777 .value =
"\\E]12;%p1%s\\007"_tsv,
778 .description =
"Set cursor palette color via OSC 12"_sv,
781 .long_name =
"Disable horizontal margins"_sv,
782 .short_name =
"Dsmg"_tsv,
783 .value =
"\\E[?69l"_tsv,
784 .description =
"Disable horizontal margin mode via CSI ? 69 l"_sv,
789 .long_name =
"Clear with scroll back"_sv,
790 .short_name =
"E3"_tsv,
791 .value =
"\\E[3J"_tsv,
792 .description =
"Clear screen including scroll back via CSI 3 J"_sv,
795 .long_name =
"Enable horizontal margins"_sv,
796 .short_name =
"Enmg"_tsv,
797 .value =
"\\E[?69h"_tsv,
798 .description =
"Enable horizontal margin mode via CSI ? 69 h"_sv,
803 .long_name =
"Save clipboard"_sv,
804 .short_name =
"Ms"_tsv,
805 .value =
"\\E]52;%p1%s;%p2%s\\007"_tsv,
806 .description =
"Set clipboard via OSC 52"_sv,
809 .long_name =
"Bracketed paste end"_sv,
810 .short_name =
"PE"_tsv,
811 .value =
"\\E[201~"_tsv,
812 .description =
"Terminal uses CSI 201 ~ to end a bracketed paste"_sv,
815 .long_name =
"Bracketed paste start"_sv,
816 .short_name =
"PS"_tsv,
817 .value =
"\\E[200~"_tsv,
818 .description =
"Terminal uses CSI 200 ~ to start a bracketed paste"_sv,
821 .long_name =
"Report version"_sv,
822 .short_name =
"RV"_tsv,
823 .value =
"\\E[>c"_tsv,
824 .description =
"Request secondary device attributes via CSI > c"_sv,
827 .long_name =
"Reset cursor style"_sv,
828 .short_name =
"Se"_tsv,
829 .value =
"\\E[2 q"_tsv,
830 .description =
"Reset cursor style via CSI 2 SP q (steady block cursor)"_sv,
833 .long_name =
"Set underline color"_sv,
834 .short_name =
"Setulc"_tsv,
835 .value =
"\\E[58:2:%p1%{65536}%/%d:%p1%{256}%/%{255}%&%d:%p1%{255}%&%d%;m"_tsv,
836 .description =
"Set underline color via SGR 58"_sv,
839 .long_name =
"Set extended underline"_sv,
840 .short_name =
"Smulx"_tsv,
841 .value =
"\\E[4:%p1%dm"_tsv,
842 .description =
"Set extended unline mode via SGR 4:Ps"_sv,
845 .long_name =
"Set cursor style"_sv,
846 .short_name =
"Ss"_tsv,
847 .value =
"\\E[%p1%d q"_tsv,
848 .description =
"Set cursor style via CSI Ps SP q"_sv,
851 .long_name =
"Synchronized output"_sv,
852 .short_name =
"Sync"_tsv,
853 .value =
"\\E[?2026%?%p1%{1}%-%tl%eh%;"_tsv,
854 .description =
"Toggle synchronized output via CSI ? 2026 h/l"_sv,
857 .long_name =
"Extended mouse"_sv,
858 .short_name =
"XM"_tsv,
859 .value =
"\\E[?1006;1000%?%p1%{1}%=%th%el%;"_tsv,
860 .description =
"Toggle SGR mouse mode via CSI ? 1006 ; 1000 h/l"_sv,
863 .long_name =
"Extended version"_sv,
864 .short_name =
"XR"_tsv,
865 .value =
"\\E[>0q"_tsv,
866 .description =
"Request XTVERSION via CSI > 0 q"_sv,
871 .long_name =
"Reset focus reports"_sv,
872 .short_name =
"fd"_tsv,
873 .value =
"\\E[?1004l"_tsv,
874 .description =
"Reset focus reports via CSI ? 1004 l"_sv,
877 .long_name =
"Set focus reports"_sv,
878 .short_name =
"fe"_tsv,
879 .value =
"\\E[?1004h"_tsv,
880 .description =
"Set focus reports via CSI ? 1004 h"_sv,
884 M("kBEG3", "\\E[1;3E", "Alt+Begin") \
885 M("kBEG4", "\\E[1;4E", "Alt+Shift+Begin") \
886 M("kBEG5", "\\E[1;5E", "Control+Begin") \
887 M("kBEG6", "\\E[1;6E", "Control+Shift+Begin") \
888 M("kBEG7", "\\E[1;7E", "Control+Alt+Begin") \
889 M("kDC3", "\\E[3;3~", "Alt+Delete") \
890 M("kDC4", "\\E[3;4~", "Alt+Shift+Delete") \
891 M("kDC5", "\\E[3;5~", "Control+Delete") \
892 M("kDC6", "\\E[3;6~", "Control+Shift+Delete") \
893 M("kDC7", "\\E[3;7~", "Control+Alt+Delete") \
894 M("kDN", "\\E[1;2B", "Shift+Down") \
895 M("kDN3", "\\E[1;3B", "Alt+Down") \
896 M("kDN4", "\\E[1;4B", "Alt+Shift+Down") \
897 M("kDN5", "\\E[1;5B", "Control+Down") \
898 M("kDN6", "\\E[1;6B", "Control+Shift+Down") \
899 M("kDN7", "\\E[1;7B", "Control+Alt+Down") \
900 M("kEND3", "\\E[1;3F", "Alt+End") \
901 M("kEND4", "\\E[1;4F", "Alt+Shift+End") \
902 M("kEND5", "\\E[1;5F", "Control+End") \
903 M("kEND6", "\\E[1;6F", "Control+Shift+End") \
904 M("kEND7", "\\E[1;7F", "Control+Alt+End") \
905 M("kHOM3", "\\E[1;3H", "Alt+Home") \
906 M("kHOM4", "\\E[1;4H", "Alt+Shift+Home") \
907 M("kHOM5", "\\E[1;5H", "Control+Home") \
908 M("kHOM6", "\\E[1;6H", "Control+Shift+Home") \
909 M("kHOM7", "\\E[1;7H", "Control+Alt+Home") \
910 M("kIC3", "\\E[2;3~", "Alt+Insert") \
911 M("kIC4", "\\E[2;4~", "Alt+Shift+Insert") \
912 M("kIC5", "\\E[2;5~", "Control+Insert") \
913 M("kIC6", "\\E[2;6~", "Control+Shift+Insert") \
914 M("kIC7", "\\E[2;7~", "Control+Alt+Insert") \
915 M("kLFT3", "\\E[1;3D", "Alt+Left") \
916 M("kLFT4", "\\E[1;4D", "Alt+Shift+Left") \
917 M("kLFT5", "\\E[1;5D", "Control+Left") \
918 M("kLFT6", "\\E[1;6D", "Control+Shift+Left") \
919 M("kLFT7", "\\E[1;7D", "Control+Alt+Left") \
920 M("kNXT3", "\\E[6;3~", "Alt+PageDown") \
921 M("kNXT4", "\\E[6;4~", "Alt+Shift+PageDown") \
922 M("kNXT5", "\\E[6;5~", "Control+PageDown") \
923 M("kNXT6", "\\E[6;6~", "Control+Shift+PageDown") \
924 M("kNXT7", "\\E[6;7~", "Control+Alt+PageDown") \
925 M("kPRV3", "\\E[5;3~", "Alt+PageUp") \
926 M("kPRV4", "\\E[5;4~", "Alt+Shift+PageUp") \
927 M("kPRV5", "\\E[5;5~", "Control+PageUp") \
928 M("kPRV6", "\\E[5;6~", "Control+Shift+PageUp") \
929 M("kPRV7", "\\E[5;7~", "Control+Alt+PageUp") \
930 M("kRIT3", "\\E[1;3C", "Alt+Right") \
931 M("kRIT4", "\\E[1;4C", "Alt+Shift+Right") \
932 M("kRIT5", "\\E[1;5C", "Control+Right") \
933 M("kRIT6", "\\E[1;6C", "Control+Shift+Right") \
934 M("kRIT7", "\\E[1;7C", "Control+Alt+Right") \
935 M("kUP", "\\E[1;2A", "Shift+Up") \
936 M("kUP3", "\\E[1;3A", "Alt+Up") \
937 M("kUP4", "\\E[1;4A", "Alt+Shift+Up") \
938 M("kUP5", "\\E[1;5A", "Control+Up") \
939 M("kUP6", "\\E[1;6A", "Control+Shift+Up") \
940 M("kUP7", "\\E[1;7A", "Control+Alt+Up")
946 .long_name =
"Focus in"_sv,
947 .short_name =
"kxIN"_tsv,
948 .value =
"\\E[I"_tsv,
949 .description =
"Report send by terminal when gaining focus - CSI I"_sv,
952 .long_name =
"Focus out"_sv,
953 .short_name =
"kxOUT"_tsv,
954 .value =
"\\E[O"_tsv,
955 .description =
"Report send by terminal when losing focus - CSI o"_sv,
958 .long_name =
"Reset strikethrough"_sv,
959 .short_name =
"rmxx"_tsv,
960 .value =
"\\E[29m"_tsv,
961 .description =
"Reset strikethrough cell via SGR 29"_sv,
964 .long_name =
"Report version response"_sv,
965 .short_name =
"rv"_tsv,
968 .value = R
"(\E\\[[0-9]+;[0-9]+;[0-9]+c)"_tsv,
969 .description =
"String format of device secondary attirbutes response - CSI < Ps ; Ps ; Ps c"_sv,
972 .long_name =
"Set RGB background"_sv,
973 .short_name =
"setrgbb"_tsv,
974 .value =
"\\E[48:2:%p1%d:%p2%d:%p3%dm"_tsv,
975 .description =
"Set RGB background via SGR 48"_sv,
978 .long_name =
"Set RGB foreground"_sv,
979 .short_name =
"setrgbf"_tsv,
980 .value =
"\\E[38:2:%p1%d:%p2%d:%p3%dm"_tsv,
981 .description =
"Set RGB foreground via SGR 38"_sv,
984 .long_name =
"Strikethrough"_sv,
985 .short_name =
"smxx"_tsv,
986 .value =
"\\E[9m"_tsv,
987 .description =
"Set strikethrough cell via SGR 9"_sv,
990 .long_name =
"Extended mouse report"_sv,
991 .short_name =
"xm"_tsv,
992 .value =
"\\E[<%i%p3%d;%p1%d;%p2%d;%?%p4%tM%em%;"_tsv,
993 .description =
"Format of extended mouse reports - CSI Ps ; Ps ; Ps M/m"_sv,
996 .long_name =
"Extended version report"_sv,
997 .short_name =
"xr"_tsv,
998 .value = R
"(\EP>\|[ -~]+a\E\\)"_tsv,
999 .description =
"Format of XTVERSION response - DCS > version ST"_sv,
#define KEY_CAP(short, v, name)
Definition absolute_position.h:6
constexpr auto ttx_names
Definition capabilities.h:6
constexpr auto ttx_terminfo
Definition capabilities.h:1005
constexpr auto ttx_capabilities
Definition capabilities.h:20
Represents a Termcap capability.
Definition capability.h:10
Represents a terminfo entry.
Definition capability.h:30