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,
34 .long_name =
"Modifiable palette"_sv,
35 .short_name =
"ccc"_tsv,
36 .description =
"Terminal allows modifying the color palette dynamically"_sv,
42 .long_name =
"Has status line"_sv,
43 .short_name =
"hs"_tsv,
44 .description =
"Has status line (for displaying window title)"_sv,
48 .long_name =
"Has meta key"_sv,
49 .short_name =
"km"_tsv,
50 .description =
"Keyboard reports include meta key bit on modifiers"_sv,
53 .long_name =
"No built-in echo"_sv,
54 .short_name =
"mc5i"_tsv,
55 .description =
"Terminal won't echo (presumably key presses) automatically"_sv,
58 .long_name =
"Move in insert mode"_sv,
59 .short_name =
"mir"_tsv,
60 .description =
"Cursor can move in insert mode"_sv,
63 .long_name =
"Move in standout mode"_sv,
64 .short_name =
"msgr"_tsv,
65 .description =
"Cursor can move in standout mode (apparently standout mode is inverse (SGR 7))"_sv,
68 .long_name =
"No pad character"_sv,
69 .short_name =
"npc"_tsv,
70 .description =
"? What is a pad character"_sv,
73 .long_name =
"Newline ignored after 80 cols"_sv,
74 .short_name =
"xenl"_tsv,
75 .description =
"? - This is set by xterm"_sv,
78 .long_name =
"Default colors"_sv,
79 .short_name =
"AX"_tsv,
80 .description =
"Supports resetting the foreground/background via SGR 39/49"_sv,
83 .long_name =
"Colored underlines"_sv,
84 .short_name =
"Su"_tsv,
85 .description =
"Supports changing underline color via SGR 58-59"_sv,
88 .long_name =
"Truecolor"_sv,
89 .short_name =
"Tc"_tsv,
90 .description =
"Supports 24 bit true color via SGR 38/38"_sv,
93 .long_name =
"Xterm extnesions"_sv,
94 .short_name =
"XT"_tsv,
95 .description =
"Supports various xterm extensions (tmux uses this to set some default capabilities)"_sv,
100 .long_name =
"Kitty keyboard protocol"_sv,
101 .short_name =
"fullkbd"_tsv,
102 .description =
"Supports kitty keyboard protocol"_sv,
105 .long_name =
"Maximum colors"_sv,
106 .short_name =
"colors"_tsv,
108 .description =
"Number of colors in the palette"_sv,
111 .long_name =
"Columns"_sv,
112 .short_name =
"cols"_tsv,
114 .description =
"Number of columns on screen (this is dynamic)"_sv,
117 .long_name =
"Initial tab spacing"_sv,
118 .short_name =
"it"_tsv,
120 .description =
"Default spacing used for tab characters"_sv,
123 .long_name =
"Lines"_sv,
124 .short_name =
"lines"_tsv,
126 .description =
"Number of lines (rows) on screen (this is dynamic)"_sv,
129 .long_name =
"Maximum color pairs"_sv,
130 .short_name =
"pairs"_tsv,
132 .description =
"Number of different graphics renditions which can co-exist on the screen"_sv,
135 .long_name =
"UTF-8 always"_sv,
136 .short_name =
"U8"_tsv,
139 .description =
"Disable box drawing characters by saying we only support UTF-8"_sv,
142 .long_name =
"Alternate charset pairs"_sv,
143 .short_name =
"acsc"_tsv,
144 .value =
"``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~"_tsv,
145 .description =
"Alternate charset mapping (this is the identity)"_sv,
148 .long_name =
"Bell"_sv,
149 .short_name =
"bel"_tsv,
151 .description =
"Bell character - \\a"_sv,
154 .long_name =
"Blink"_sv,
155 .short_name =
"blink"_tsv,
156 .value =
"\\E[5m"_tsv,
157 .description =
"Set blinking cell via SGR 5"_sv,
160 .long_name =
"Bold"_sv,
161 .short_name =
"bold"_tsv,
162 .value =
"\\E[1m"_tsv,
163 .description =
"Set bold cell via SGR 1"_sv,
166 .long_name =
"Shift tab"_sv,
167 .short_name =
"cbt"_tsv,
168 .value =
"\\E[Z"_tsv,
169 .description =
"Terminal sends CSI Z on shift+tab"_sv,
172 .long_name =
"Invisible cursor"_sv,
173 .short_name =
"civis"_tsv,
174 .value =
"\\E[?25l"_tsv,
175 .description =
"Hide the cursor via CSI ? 25 l"_sv,
178 .long_name =
"Clear"_sv,
179 .short_name =
"clear"_tsv,
180 .value =
"\\E[H\\E[2J"_tsv,
181 .description =
"Clear the scren by sending CSI H (cursor to 0,0) and CSI 2 J (clear full screen)"_sv,
184 .long_name =
"Cursor Normal"_sv,
185 .short_name =
"cnorm"_tsv,
188 .value =
"\\E[?12h\\E[?25h"_tsv,
189 .description =
"Reset the cursor by enabling blinking (CSI ? 12 h) and showing the cursor (CSI ? 25 h)"_sv,
192 .long_name =
"Carriage return"_sv,
193 .short_name =
"cr"_tsv,
195 .description =
"Terminal recognizes \\r as carrigate return"_sv,
198 .long_name =
"Change scroll region"_sv,
199 .short_name =
"csr"_tsv,
200 .value =
"\\E[%i%p1%d;%p2%dr"_tsv,
201 .description =
"Set vertical scroll region via CSI b; t r"_sv,
204 .long_name =
"Paramaterized cursor back"_sv,
205 .short_name =
"cub"_tsv,
206 .value =
"\\E[%p1%dD"_tsv,
207 .description =
"Move cursor left via CSI Ps D"_sv,
210 .long_name =
"Cursor back"_sv,
211 .short_name =
"cub1"_tsv,
213 .description =
"Move cursor left 1 via \\b (^H)"_sv,
216 .long_name =
"Paramaterized cursor down"_sv,
217 .short_name =
"cud"_tsv,
218 .value =
"\\E[%p1%dB"_tsv,
219 .description =
"Move cursor down via CSI Ps B"_sv,
222 .long_name =
"Cursor down"_sv,
223 .short_name =
"cud1"_tsv,
225 .description =
"Move cursor down 1 via \\n"_sv,
228 .long_name =
"Paramaterized cursor right"_sv,
229 .short_name =
"cuf"_tsv,
230 .value =
"\\E[%p1%dC"_tsv,
231 .description =
"Move cursor right via CSI Ps C"_sv,
234 .long_name =
"Cursor right"_sv,
235 .short_name =
"cuf1"_tsv,
236 .value =
"\\E[C"_tsv,
237 .description =
"Move cursor right 1 via CSI C"_sv,
240 .long_name =
"Cursor address"_sv,
241 .short_name =
"cup"_tsv,
242 .value =
"\\E[%i%p1%d;%p2%dH"_tsv,
243 .description =
"Move cursor to r,c via CSI r; c H"_sv,
246 .long_name =
"Paramaterized cursor up"_sv,
247 .short_name =
"cuu"_tsv,
248 .value =
"\\E[%p1%dA"_tsv,
249 .description =
"Move cursor up via CSI Ps A"_sv,
252 .long_name =
"Cursor up"_sv,
253 .short_name =
"cuu1"_tsv,
254 .value =
"\\E[A"_tsv,
255 .description =
"Move cursor up 1 via CSI A"_sv,
258 .long_name =
"Cursor visible"_sv,
259 .short_name =
"cvvis"_tsv,
261 .value =
"\\E[?12;25h"_tsv,
262 .description =
"Make cursor visible via CSI ? 12 ; 25 h"_sv,
265 .long_name =
"Delete characters"_sv,
266 .short_name =
"dch"_tsv,
267 .value =
"\\E[%p1%dP"_tsv,
268 .description =
"Delete characters via CSI Ps P"_sv,
271 .long_name =
"Delete character"_sv,
272 .short_name =
"dch1"_tsv,
273 .value =
"\\E[P"_tsv,
274 .description =
"Delete character via CSI P"_sv,
277 .long_name =
"Dim"_sv,
278 .short_name =
"dim"_tsv,
279 .value =
"\\E[2m"_tsv,
280 .description =
"Dim the cell via SGR 2"_sv,
283 .long_name =
"Delete lines"_sv,
284 .short_name =
"dl"_tsv,
285 .value =
"\\E[%p1%dM"_tsv,
286 .description =
"Delete lines via CSI Ps M"_sv,
289 .long_name =
"Delete line"_sv,
290 .short_name =
"dl1"_tsv,
291 .value =
"\\E[M"_tsv,
292 .description =
"Delete line via CSI M"_sv,
295 .long_name =
"Disable status line"_sv,
296 .short_name =
"dsl"_tsv,
297 .value = R
"(\E]2;\E\\)"_tsv,
298 .description = "Disable window title via blank OSC 2"_sv,
303 .long_name =
"Erase characters"_sv,
304 .short_name =
"ech"_tsv,
305 .value =
"\\E[%p1%dX"_tsv,
306 .description =
"Erase characters via CSI Ps X"_sv,
309 .long_name =
"Erase display"_sv,
310 .short_name =
"ed"_tsv,
311 .value =
"\\E[J"_tsv,
312 .description =
"Erase to screen end via CSI J"_sv,
315 .long_name =
"Erase line"_sv,
316 .short_name =
"el"_tsv,
317 .value =
"\\E[K"_tsv,
318 .description =
"Erase to line end via CSI K"_sv,
321 .long_name =
"Erase line beginning"_sv,
322 .short_name =
"el1"_tsv,
323 .value =
"\\E[1K"_tsv,
324 .description =
"Erase to beginning of line end via CSI 1 K"_sv,
327 .long_name =
"Flash"_sv,
328 .short_name =
"flash"_tsv,
329 .value =
"\\E[?5h$<100/>\\E[?5l"_tsv,
330 .description =
"Flash screen via enabling/disabling video reverse mode (CSI ? 5 h/l), after 100 ms"_sv,
333 .long_name =
"From status line"_sv,
334 .short_name =
"fsl"_tsv,
336 .description =
"Terminate OSC sequence via \\a (^G)"_sv,
341 .long_name =
"Home"_sv,
342 .short_name =
"home"_tsv,
343 .value =
"\\E[H"_tsv,
344 .description =
"Move cursor to home via CSI H"_sv,
347 .long_name =
"Horizontal position absolute"_sv,
348 .short_name =
"hpa"_tsv,
349 .value =
"\\E[%i%p1%dG"_tsv,
350 .description =
"Set cursor col to n via CSI n G"_sv,
353 .long_name =
"Horizontal tab"_sv,
354 .short_name =
"ht"_tsv,
356 .description =
"Terminal recognizes tab as \\t (^I)"_sv,
359 .long_name =
"Horizontal tab set"_sv,
360 .short_name =
"hts"_tsv,
362 .description =
"Set horizontal tab via CI HTS (ESC H)"_sv,
365 .long_name =
"Insert characters"_sv,
366 .short_name =
"ich"_tsv,
367 .value =
"\\E[%p1%d@"_tsv,
368 .description =
"Insert characters via CSI Ps @"_sv,
371 .long_name =
"Insert character"_sv,
372 .short_name =
"ich1"_tsv,
373 .value =
"\\E[@"_tsv,
374 .description =
"Insert character via CSI @"_sv,
377 .long_name =
"Insert lines"_sv,
378 .short_name =
"il"_tsv,
379 .value =
"\\E[%p1%dL"_tsv,
380 .description =
"Insert lines via CSI Ps L"_sv,
383 .long_name =
"Insert line"_sv,
384 .short_name =
"il1"_tsv,
385 .value =
"\\E[L"_tsv,
386 .description =
"Insert line via CSI L"_sv,
389 .long_name =
"Index"_sv,
390 .short_name =
"ind"_tsv,
392 .description =
"Scroll text down via \\n (we auto-scroll when moving the cursor down via \\n)"_sv,
395 .long_name =
"Scroll up"_sv,
396 .short_name =
"indn"_tsv,
397 .value =
"\\E[%p1%dS"_tsv,
398 .description =
"Scroll up via CSI Ps S"_sv,
401 .long_name =
"Initialize color"_sv,
402 .short_name =
"initc"_tsv,
404 R
"(\E]4;%p1%d;rgb:%p2%{255}%*%{1000}%/%2.2X/%p3%{255}%*%{1000}%/%2.2X/%p4%{255}%*%{1000}%/%2.2X\E\\)"_tsv,
405 .description = "Initialize color value via OSC 4"_sv,
410 .long_name =
"Invisible"_sv,
411 .short_name =
"invis"_tsv,
412 .value =
"\\E[8m"_tsv,
413 .description =
"Make cell invisible via CSI 8"_sv,
417#define KEY_CAP(short, v, name) \
419 .long_name = name ""_sv, \
420 .short_name = short ""_tsv, \
422 .description = "Escape terminal sends when " #name " is pressed"_sv, \
426 M("kBEG", "\\E[1;2E", "Shift+Begin") \
427 M("kDC", "\\E[3;2~", "Shift+Delete") \
428 M("kEND", "\\E[1;2F", "Shift+End") \
429 M("kHOM", "\\E[1;2H", "Shift+Home") \
430 M("kIC", "\\E[2;2~", "Shift+Insert") \
431 M("kLFT", "\\E[1;2D", "Shift+Left") \
432 M("kNXT", "\\E[6;2~", "Shift+PageDown") \
433 M("kPRV", "\\E[5;2~", "Shift+PageUp") \
434 M("kRIT", "\\E[1;2C", "Shift+Right") \
435 M("kbeg", "\\EOE", "Begin") \
436 M("kbs", "^?", "Backspace") \
437 M("kcbt", "\\E[Z", "Shift+Tab") \
438 M("kcub1", "\\EOD", "Left") \
439 M("kcud1", "\\EOB", "Down") \
440 M("kcuf1", "\\EOC", "Right") \
441 M("kcuu1", "\\EOA", "Up") \
442 M("kdch1", "\\E[3~", "Delete") \
443 M("kend", "\\EOF", "End") \
444 M("kf1", "\\EOP", "F1") \
445 M("kf10", "\\E[21~", "F10") \
446 M("kf11", "\\E[23~", "F11") \
447 M("kf12", "\\E[24~", "F12") \
448 M("kf13", "\\E[1;2P", "Shift+F1") \
449 M("kf14", "\\E[1;2Q", "Shift+F2") \
450 M("kf15", "\\E[1;2R", "Shift+F3") \
451 M("kf16", "\\E[1;2S", "Shift+F4") \
452 M("kf17", "\\E[15;2~", "Shift+F5") \
453 M("kf18", "\\E[17;2~", "Shift+F6") \
454 M("kf19", "\\E[18;2~", "Shift+F7") \
455 M("kf2", "\\EOQ", "F2") \
456 M("kf20", "\\E[19;2~", "Shift+F8") \
457 M("kf21", "\\E[20;2~", "Shift+F9") \
458 M("kf22", "\\E[21;2~", "Shift+F10") \
459 M("kf23", "\\E[23;2~", "Shift+F11") \
460 M("kf24", "\\E[24;2~", "Shift+F12") \
461 M("kf25", "\\E[1;5P", "Control+F1") \
462 M("kf26", "\\E[1;5Q", "Control+F2") \
463 M("kf27", "\\E[1;5R", "Control+F3") \
464 M("kf28", "\\E[1;5S", "Control+F4") \
465 M("kf29", "\\E[15;5~", "Control+F5") \
466 M("kf3", "\\EOR", "F3") \
467 M("kf30", "\\E[17;5~", "Control+F6") \
468 M("kf31", "\\E[18;5~", "Control+F7") \
469 M("kf32", "\\E[19;5~", "Control+F8") \
470 M("kf33", "\\E[20;5~", "Control+F9") \
471 M("kf34", "\\E[21;5~", "Control+F10") \
472 M("kf35", "\\E[23;5~", "Control+F11") \
473 M("kf36", "\\E[24;5~", "Control+F12") \
474 M("kf37", "\\E[1;6P", "Control+Shift+F1") \
475 M("kf38", "\\E[1;6Q", "Control+Shift+F2") \
476 M("kf39", "\\E[1;6R", "Control+Shift+F3") \
477 M("kf4", "\\EOS", "F4") \
478 M("kf40", "\\E[1;6S", "Control+Shift+F4") \
479 M("kf41", "\\E[15;6~", "Control+Shift+F5") \
480 M("kf42", "\\E[17;6~", "Control+Shift+F6") \
481 M("kf43", "\\E[18;6~", "Control+Shift+F7") \
482 M("kf44", "\\E[19;6~", "Control+Shift+F8") \
483 M("kf45", "\\E[20;6~", "Control+Shift+F9") \
484 M("kf46", "\\E[21;6~", "Control+Shift+F10") \
485 M("kf47", "\\E[23;6~", "Control+Shift+F11") \
486 M("kf48", "\\E[24;6~", "Control+Shift+F12") \
487 M("kf49", "\\E[1;3P", "Alt+F1") \
488 M("kf5", "\\E[15~", "F5") \
489 M("kf50", "\\E[1;3Q", "Alt+F2") \
490 M("kf51", "\\E[1;3R", "Alt+F3") \
491 M("kf52", "\\E[1;3S", "Alt+F4") \
492 M("kf53", "\\E[15;3~", "Alt+F5") \
493 M("kf54", "\\E[17;3~", "Alt+F6") \
494 M("kf55", "\\E[18;3~", "Alt+F7") \
495 M("kf56", "\\E[19;3~", "Alt+F8") \
496 M("kf57", "\\E[20;3~", "Alt+F9") \
497 M("kf58", "\\E[21;3~", "Alt+F10") \
498 M("kf59", "\\E[23;3~", "Alt+F11") \
499 M("kf6", "\\E[17~", "F6") \
500 M("kf60", "\\E[24;3~", "Alt+F12") \
501 M("kf61", "\\E[1;4P", "Alt+Shift+F1") \
502 M("kf62", "\\E[1;4Q", "Alt+Shift+F2") \
503 M("kf63", "\\E[1;4R", "Alt+Shift+F3") \
504 M("kf64", "\\E[1;4S", "Alt+Shift+F4") \
505 M("kf7", "\\E[18~", "F7") \
506 M("kf8", "\\E[19~", "F8") \
507 M("kf9", "\\E[20~", "F9") \
508 M("khome", "\\EOH", "Home") \
509 M("kich1", "\\E[2~", "Insert") \
510 M("kind", "\\E[1;2B", "Shift+Down") \
511 M("kmous", "\\E[M", "Mouse") \
512 M("knp", "\\E[6~", "PageDown") \
513 M("kpp", "\\E[5~", "PageUp") \
514 M("kri", "\\E[1;2A", "Shift+Up")
520 .long_name =
"Original colors"_sv,
521 .short_name =
"oc"_tsv,
522 .value =
"\\E]104\\007"_tsv,
523 .description =
"Reset color palette via OSC 104"_sv,
528 .long_name =
"Original pair"_sv,
529 .short_name =
"op"_tsv,
530 .value =
"\\E[39;49m"_tsv,
531 .description =
"Reset grahics rendition fg/bg via CSI 39;49 m"_sv,
534 .long_name =
"Restore cursor"_sv,
535 .short_name =
"rc"_tsv,
537 .description =
"Reset cursor via ESC 8 (DECRC)"_sv,
540 .long_name =
"Repeat character"_sv,
541 .short_name =
"rep"_tsv,
542 .value =
"%p1%c\\E[%p2%{1}%-%db"_tsv,
543 .description =
"Repeat character via CSI Ps b"_sv,
546 .long_name =
"Reverse video"_sv,
547 .short_name =
"rev"_tsv,
548 .value =
"\\E[7m"_tsv,
549 .description =
"Invert cell via SGR 7"_sv,
552 .long_name =
"Reverse index"_sv,
553 .short_name =
"ri"_tsv,
555 .description =
"Reverse index (scroll down) via C1 RI (ESC M)"_sv,
558 .long_name =
"Scroll down"_sv,
559 .short_name =
"rin"_tsv,
560 .value =
"\\E[%p1%dT"_tsv,
561 .description =
"Scroll down via CSI Ps T"_sv,
564 .long_name =
"Italic"_sv,
565 .short_name =
"ritm"_tsv,
566 .value =
"\\E[23m"_tsv,
567 .description =
"Italicize cell via SGR 23"_sv,
570 .long_name =
"End alternate character set"_sv,
571 .short_name =
"rmacs"_tsv,
572 .value =
"\\E(B"_tsv,
573 .description =
"End altnerate character set via ESC ( B"_sv,
578 .long_name =
"Reset automatic margins"_sv,
579 .short_name =
"rmam"_tsv,
580 .value =
"\\E[?7l"_tsv,
581 .description =
"Disable auto-wrap via CSI ? 7 l"_sv,
584 .long_name =
"Reset alternate screen"_sv,
585 .short_name =
"rmcup"_tsv,
586 .value =
"\\E[?1049l"_tsv,
587 .description =
"Leave alternate screen mode via CSI ? 1049 l"_sv,
590 .long_name =
"Exit insert mode"_sv,
591 .short_name =
"rmir"_tsv,
592 .value =
"\\E[4l"_tsv,
593 .description =
"Leave insert mode via CSI 4 l"_sv,
598 .long_name =
"Exit keyboard transmit mode"_sv,
599 .short_name =
"rmkx"_tsv,
600 .value =
"\\E[?1l\\E>"_tsv,
602 .description =
"Reset keyboard modes via CSI ? 1 l (cursor keys) and ESC > (alternate keypad mode)"_sv,
605 .long_name =
"Exit standout mode"_sv,
606 .short_name =
"rmso"_tsv,
607 .value =
"\\E[27m"_tsv,
608 .description =
"Exit standout mode via SGR 27 (clears inverted graphics rendition)"_sv,
611 .long_name =
"Exit underline"_sv,
612 .short_name =
"rmul"_tsv,
613 .value =
"\\E[24m"_tsv,
614 .description =
"Exit underline via SGR 24"_sv,
617 .long_name =
"Reset string"_sv,
618 .short_name =
"rs1"_tsv,
620 .value = R
"(\E]\E\\\Ec)"_tsv,
621 .description =
"Reset via empty OSC sequence followed by ESC c (full reset)"_sv,
624 .long_name =
"Set cursor"_sv,
625 .short_name =
"sc"_tsv,
627 .description =
"Save the cursor via ESC 7"_sv,
630 .long_name =
"Set background color"_sv,
631 .short_name =
"setab"_tsv,
632 .value =
"\\E[%?%p1%{8}%<%t4%p1%d%e%p1%{16}%<%t10%p1%{8}%-%d%e48;5;%p1%d%;m"_tsv,
633 .description =
"Set the graphics background via CSI 48"_sv,
636 .long_name =
"Set foreground color"_sv,
637 .short_name =
"setaf"_tsv,
638 .value =
"\\E[%?%p1%{8}%<%t3%p1%d%e%p1%{16}%<%t9%p1%{8}%-%d%e38;5;%p1%d%;m"_tsv,
639 .description =
"Set the graphics foregroup via CSI 38"_sv,
642 .long_name =
"Set graphics rendition"_sv,
643 .short_name =
"sgr"_tsv,
648 .value =
"\\E[0%?%p6%t;1%;%?%p5%t;2%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;%?%p7%t;8%;m"_tsv,
649 .description =
"Set the graphics rendition via CSI m, and charset via ESC ( C"_sv,
653 .long_name =
"Reset graphics rendition"_sv,
654 .short_name =
"sgr0"_tsv,
657 .value =
"\\E[m"_tsv,
658 .description =
"Reset the graphics rendition via CSI m and charset via ESC ( B"_sv,
662 .long_name =
"Set italics"_sv,
663 .short_name =
"sitm"_tsv,
664 .value =
"\\E[3m"_tsv,
665 .description =
"Set italics via SGR 3"_sv,
668 .long_name =
"Enter alternate charset"_sv,
669 .short_name =
"smacs"_tsv,
670 .value =
"\\E(0"_tsv,
671 .description =
"Enter box drawing charset via ESC ( 0"_sv,
676 .long_name =
"Set automatic margins"_sv,
677 .short_name =
"smam"_tsv,
678 .value =
"\\E[?7h"_tsv,
679 .description =
"Enable auto-wrap via CSI ? 7 h"_sv,
682 .long_name =
"Set alternate screen"_sv,
683 .short_name =
"smcup"_tsv,
684 .value =
"\\E[?1049h"_tsv,
685 .description =
"Enter alternate screen mode via CSI ? 1049 h"_sv,
688 .long_name =
"Enter insert mode"_sv,
689 .short_name =
"smir"_tsv,
690 .value =
"\\E[4h"_tsv,
691 .description =
"Enter insert mode via CSI 4 h"_sv,
696 .long_name =
"Enter keyboard transmit mode"_sv,
697 .short_name =
"smkx"_tsv,
698 .value =
"\\E[?1h\\E="_tsv,
700 .description =
"Enter keyboard modes via CSI ? 1 h (cursor keys) and ESC = (alternate keypad mode)"_sv,
703 .long_name =
"Enter standout mode"_sv,
704 .short_name =
"smso"_tsv,
705 .value =
"\\E[7m"_tsv,
706 .description =
"Enter standout mode via SGR 7 (inverted graphics rendition)"_sv,
709 .long_name =
"Enter underline"_sv,
710 .short_name =
"smul"_tsv,
711 .value =
"\\E[4m"_tsv,
712 .description =
"Enter underline via SGR 4"_sv,
715 .long_name =
"Clear all tabs"_sv,
716 .short_name =
"tbc"_tsv,
717 .value =
"\\E[3g"_tsv,
718 .description =
"Clear all tabstops via CSI 3 g"_sv,
721 .long_name =
"Move to status line"_sv,
722 .short_name =
"tsl"_tsv,
723 .value =
"\\E]2;"_tsv,
724 .description =
"Enter status line (window title) via OSC 2"_sv,
729 .long_name =
"User string 6"_sv,
730 .short_name =
"u6"_tsv,
731 .value =
"\\E[%i%d;%dR"_tsv,
732 .description =
"String format of cursor position reports CSI Ps ; Ps R"_sv,
735 .long_name =
"User string 7"_sv,
736 .short_name =
"u7"_tsv,
737 .value =
"\\E[6n"_tsv,
738 .description =
"Device status report (cursor position) via CSI 6 n"_sv,
741 .long_name =
"User string 8"_sv,
742 .short_name =
"u8"_tsv,
743 .value =
"\\E[?%[;0123456789]c"_tsv,
744 .description =
"String format of primary device attributes response - CSI ? Ps c"_sv,
747 .long_name =
"User string 9"_sv,
748 .short_name =
"u9"_tsv,
749 .value =
"\\E[c"_tsv,
750 .description =
"Device primary attributes (DA1) via CSI c"_sv,
753 .long_name =
"Vertical position absolute"_sv,
754 .short_name =
"vpa"_tsv,
755 .value =
"\\E[%i%p1%dd"_tsv,
756 .description =
"Set cursor vertical position via CSI Ps d"_sv,
759 .long_name =
"Leave bracketed paste"_sv,
760 .short_name =
"BD"_tsv,
761 .value =
"\\E[?2004l"_tsv,
762 .description =
"Leave bracketed paste via CSI ? 2004 l"_sv,
765 .long_name =
"Enter bracketed paste"_sv,
766 .short_name =
"BE"_tsv,
767 .value =
"\\E[?2004h"_tsv,
768 .description =
"Enter bracketed paste via CSI ? 2004 h"_sv,
771 .long_name =
"Reset horizontal margins"_sv,
772 .short_name =
"Clmg"_tsv,
773 .value =
"\\E[s"_tsv,
774 .description =
"Reset horizontal margins via CSI s"_sv,
779 .long_name =
"Set horizontal margins"_sv,
780 .short_name =
"Cmg"_tsv,
781 .value =
"\\E[%i%p1%d;%p2%ds"_tsv,
782 .description =
"Set horizontal margins via CSI Ps ; Ps s"_sv,
787 .long_name =
"Reset cursor color"_sv,
788 .short_name =
"Cr"_tsv,
789 .value =
"\\E]112\\007"_tsv,
790 .description =
"Reset cursor palette color via OSC 112"_sv,
795 .long_name =
"Set cursor color"_sv,
796 .short_name =
"Cs"_tsv,
797 .value =
"\\E]12;%p1%s\\007"_tsv,
798 .description =
"Set cursor palette color via OSC 12"_sv,
803 .long_name =
"Disable horizontal margins"_sv,
804 .short_name =
"Dsmg"_tsv,
805 .value =
"\\E[?69l"_tsv,
806 .description =
"Disable horizontal margin mode via CSI ? 69 l"_sv,
811 .long_name =
"Clear with scroll back"_sv,
812 .short_name =
"E3"_tsv,
813 .value =
"\\E[3J"_tsv,
814 .description =
"Clear screen including scroll back via CSI 3 J"_sv,
817 .long_name =
"Enable horizontal margins"_sv,
818 .short_name =
"Enmg"_tsv,
819 .value =
"\\E[?69h"_tsv,
820 .description =
"Enable horizontal margin mode via CSI ? 69 h"_sv,
825 .long_name =
"Save clipboard"_sv,
826 .short_name =
"Ms"_tsv,
827 .value =
"\\E]52;%p1%s;%p2%s\\007"_tsv,
828 .description =
"Set clipboard via OSC 52"_sv,
831 .long_name =
"Bracketed paste end"_sv,
832 .short_name =
"PE"_tsv,
833 .value =
"\\E[201~"_tsv,
834 .description =
"Terminal uses CSI 201 ~ to end a bracketed paste"_sv,
837 .long_name =
"Bracketed paste start"_sv,
838 .short_name =
"PS"_tsv,
839 .value =
"\\E[200~"_tsv,
840 .description =
"Terminal uses CSI 200 ~ to start a bracketed paste"_sv,
843 .long_name =
"Report version"_sv,
844 .short_name =
"RV"_tsv,
845 .value =
"\\E[>c"_tsv,
846 .description =
"Request secondary device attributes via CSI > c"_sv,
849 .long_name =
"Reset cursor style"_sv,
850 .short_name =
"Se"_tsv,
851 .value =
"\\E[2 q"_tsv,
852 .description =
"Reset cursor style via CSI 2 SP q (steady block cursor)"_sv,
855 .long_name =
"Set underline color"_sv,
856 .short_name =
"Setulc"_tsv,
857 .value =
"\\E[58:2:%p1%{65536}%/%d:%p1%{256}%/%{255}%&%d:%p1%{255}%&%d%;m"_tsv,
858 .description =
"Set underline color via SGR 58"_sv,
861 .long_name =
"Set extended underline"_sv,
862 .short_name =
"Smulx"_tsv,
863 .value =
"\\E[4:%p1%dm"_tsv,
864 .description =
"Set extended unline mode via SGR 4:Ps"_sv,
867 .long_name =
"Set cursor style"_sv,
868 .short_name =
"Ss"_tsv,
869 .value =
"\\E[%p1%d q"_tsv,
870 .description =
"Set cursor style via CSI Ps SP q"_sv,
873 .long_name =
"Synchronized output"_sv,
874 .short_name =
"Sync"_tsv,
875 .value =
"\\E[?2026%?%p1%{1}%-%tl%eh%;"_tsv,
876 .description =
"Toggle synchronized output via CSI ? 2026 h/l"_sv,
879 .long_name =
"Extended mouse"_sv,
880 .short_name =
"XM"_tsv,
881 .value =
"\\E[?1006;1000%?%p1%{1}%=%th%el%;"_tsv,
882 .description =
"Toggle SGR mouse mode via CSI ? 1006 ; 1000 h/l"_sv,
885 .long_name =
"Extended version"_sv,
886 .short_name =
"XR"_tsv,
887 .value =
"\\E[>0q"_tsv,
888 .description =
"Request XTVERSION via CSI > 0 q"_sv,
893 .long_name =
"Reset focus reports"_sv,
894 .short_name =
"fd"_tsv,
895 .value =
"\\E[?1004l"_tsv,
896 .description =
"Reset focus reports via CSI ? 1004 l"_sv,
899 .long_name =
"Set focus reports"_sv,
900 .short_name =
"fe"_tsv,
901 .value =
"\\E[?1004h"_tsv,
902 .description =
"Set focus reports via CSI ? 1004 h"_sv,
906 M("kBEG3", "\\E[1;3E", "Alt+Begin") \
907 M("kBEG4", "\\E[1;4E", "Alt+Shift+Begin") \
908 M("kBEG5", "\\E[1;5E", "Control+Begin") \
909 M("kBEG6", "\\E[1;6E", "Control+Shift+Begin") \
910 M("kBEG7", "\\E[1;7E", "Control+Alt+Begin") \
911 M("kDC3", "\\E[3;3~", "Alt+Delete") \
912 M("kDC4", "\\E[3;4~", "Alt+Shift+Delete") \
913 M("kDC5", "\\E[3;5~", "Control+Delete") \
914 M("kDC6", "\\E[3;6~", "Control+Shift+Delete") \
915 M("kDC7", "\\E[3;7~", "Control+Alt+Delete") \
916 M("kDN", "\\E[1;2B", "Shift+Down") \
917 M("kDN3", "\\E[1;3B", "Alt+Down") \
918 M("kDN4", "\\E[1;4B", "Alt+Shift+Down") \
919 M("kDN5", "\\E[1;5B", "Control+Down") \
920 M("kDN6", "\\E[1;6B", "Control+Shift+Down") \
921 M("kDN7", "\\E[1;7B", "Control+Alt+Down") \
922 M("kEND3", "\\E[1;3F", "Alt+End") \
923 M("kEND4", "\\E[1;4F", "Alt+Shift+End") \
924 M("kEND5", "\\E[1;5F", "Control+End") \
925 M("kEND6", "\\E[1;6F", "Control+Shift+End") \
926 M("kEND7", "\\E[1;7F", "Control+Alt+End") \
927 M("kHOM3", "\\E[1;3H", "Alt+Home") \
928 M("kHOM4", "\\E[1;4H", "Alt+Shift+Home") \
929 M("kHOM5", "\\E[1;5H", "Control+Home") \
930 M("kHOM6", "\\E[1;6H", "Control+Shift+Home") \
931 M("kHOM7", "\\E[1;7H", "Control+Alt+Home") \
932 M("kIC3", "\\E[2;3~", "Alt+Insert") \
933 M("kIC4", "\\E[2;4~", "Alt+Shift+Insert") \
934 M("kIC5", "\\E[2;5~", "Control+Insert") \
935 M("kIC6", "\\E[2;6~", "Control+Shift+Insert") \
936 M("kIC7", "\\E[2;7~", "Control+Alt+Insert") \
937 M("kLFT3", "\\E[1;3D", "Alt+Left") \
938 M("kLFT4", "\\E[1;4D", "Alt+Shift+Left") \
939 M("kLFT5", "\\E[1;5D", "Control+Left") \
940 M("kLFT6", "\\E[1;6D", "Control+Shift+Left") \
941 M("kLFT7", "\\E[1;7D", "Control+Alt+Left") \
942 M("kNXT3", "\\E[6;3~", "Alt+PageDown") \
943 M("kNXT4", "\\E[6;4~", "Alt+Shift+PageDown") \
944 M("kNXT5", "\\E[6;5~", "Control+PageDown") \
945 M("kNXT6", "\\E[6;6~", "Control+Shift+PageDown") \
946 M("kNXT7", "\\E[6;7~", "Control+Alt+PageDown") \
947 M("kPRV3", "\\E[5;3~", "Alt+PageUp") \
948 M("kPRV4", "\\E[5;4~", "Alt+Shift+PageUp") \
949 M("kPRV5", "\\E[5;5~", "Control+PageUp") \
950 M("kPRV6", "\\E[5;6~", "Control+Shift+PageUp") \
951 M("kPRV7", "\\E[5;7~", "Control+Alt+PageUp") \
952 M("kRIT3", "\\E[1;3C", "Alt+Right") \
953 M("kRIT4", "\\E[1;4C", "Alt+Shift+Right") \
954 M("kRIT5", "\\E[1;5C", "Control+Right") \
955 M("kRIT6", "\\E[1;6C", "Control+Shift+Right") \
956 M("kRIT7", "\\E[1;7C", "Control+Alt+Right") \
957 M("kUP", "\\E[1;2A", "Shift+Up") \
958 M("kUP3", "\\E[1;3A", "Alt+Up") \
959 M("kUP4", "\\E[1;4A", "Alt+Shift+Up") \
960 M("kUP5", "\\E[1;5A", "Control+Up") \
961 M("kUP6", "\\E[1;6A", "Control+Shift+Up") \
962 M("kUP7", "\\E[1;7A", "Control+Alt+Up")
968 .long_name =
"Focus in"_sv,
969 .short_name =
"kxIN"_tsv,
970 .value =
"\\E[I"_tsv,
971 .description =
"Report send by terminal when gaining focus - CSI I"_sv,
974 .long_name =
"Focus out"_sv,
975 .short_name =
"kxOUT"_tsv,
976 .value =
"\\E[O"_tsv,
977 .description =
"Report send by terminal when losing focus - CSI o"_sv,
980 .long_name =
"Reset strikethrough"_sv,
981 .short_name =
"rmxx"_tsv,
982 .value =
"\\E[29m"_tsv,
983 .description =
"Reset strikethrough cell via SGR 29"_sv,
986 .long_name =
"Report version response"_sv,
987 .short_name =
"rv"_tsv,
990 .value = R
"(\E\\[[0-9]+;[0-9]+;[0-9]+c)"_tsv,
991 .description =
"String format of device secondary attirbutes response - CSI < Ps ; Ps ; Ps c"_sv,
994 .long_name =
"Set RGB background"_sv,
995 .short_name =
"setrgbb"_tsv,
996 .value =
"\\E[48:2:%p1%d:%p2%d:%p3%dm"_tsv,
997 .description =
"Set RGB background via SGR 48"_sv,
1000 .long_name =
"Set RGB foreground"_sv,
1001 .short_name =
"setrgbf"_tsv,
1002 .value =
"\\E[38:2:%p1%d:%p2%d:%p3%dm"_tsv,
1003 .description =
"Set RGB foreground via SGR 38"_sv,
1006 .long_name =
"Strikethrough"_sv,
1007 .short_name =
"smxx"_tsv,
1008 .value =
"\\E[9m"_tsv,
1009 .description =
"Set strikethrough cell via SGR 9"_sv,
1012 .long_name =
"Extended mouse report"_sv,
1013 .short_name =
"xm"_tsv,
1014 .value =
"\\E[<%i%p3%d;%p1%d;%p2%d;%?%p4%tM%em%;"_tsv,
1015 .description =
"Format of extended mouse reports - CSI Ps ; Ps ; Ps M/m"_sv,
1018 .long_name =
"Extended version report"_sv,
1019 .short_name =
"xr"_tsv,
1020 .value = R
"(\EP>\|[ -~]+a\E\\)"_tsv,
1021 .description =
"Format of XTVERSION response - DCS > version ST"_sv,
#define KEY_CAP(short, v, name)
Definition capability.h:8
constexpr auto ttx_names
Definition capabilities.h:6
constexpr auto ttx_terminfo
Definition capabilities.h:1027
constexpr auto ttx_capabilities
Definition capabilities.h:20
Represents a Termcap capability.
Definition capability.h:10
Represents a terminfo entry.
Definition capability.h:30