infoterm/index/
string.rs

1impl_enum! {
2    /// String capabilities.
3    ///
4    /// `#[1-9]` indicate parameters that can be passed to [`expand!`][crate::expand!].
5    #[derive(Copy, Clone, Debug, Eq, PartialEq, Hash, Ord, PartialOrd)]
6    #[repr(usize)]
7    #[non_exhaustive]
8    pub enum String {
9        /// `cbt`: Back tab
10        BackTab => ("cbt", "back_tab"),
11        /// `bel`: Audible signal (bell)
12        Bell => ("bel", "bell"),
13        /// `cr`: Carriage-return
14        CarriageReturn => ("cr", "carriage_return"),
15        /// `csr`: Change to lines #1 through #2 (VT100)
16        ChangeScrollRegion => ("csr", "change_scroll_region"),
17        /// `tbc`: Clear all tab stops
18        ClearAllTabs => ("tbc", "clear_all_tabs"),
19        /// `clear`: Clear screen and home cursor
20        ClearScreen => ("clear", "clear_screen"),
21        /// `el`: Clear to end of line
22        ClrEol => ("el", "clr_eol"),
23        /// `ed`: Clear to end of display
24        ClrEos => ("ed", "clr_eos"),
25        /// `hpa`: Set horizontal position to absolute #1
26        ColumnAddress => ("hpa", "column_address"),
27        /// `cmdch`: Terminal settable cmd character in prototype
28        CommandCharacter => ("cmdch", "command_character"),
29        /// `cup`: Move to row #1 col #2
30        CursorAddress => ("cup", "cursor_address"),
31        /// `cud1`: Down one line
32        CursorDown => ("cud1", "cursor_down"),
33        /// `home`: Home cursor (if no `cup`)
34        CursorHome => ("home", "cursor_home"),
35        /// `civis`: Make cursor invisible
36        CursorInvisible => ("civis", "cursor_invisible"),
37        /// `cub1`: Move left one space
38        CursorLeft => ("cub1", "cursor_left"),
39        /// `mrcup`: Memory-relative cursor addressing
40        CursorMemAddress => ("mrcup", "cursor_mem_address"),
41        /// `cnorm`: Make cursor appear normal (undo `cvvis`/`civis`)
42        CursorNormal => ("cnorm", "cursor_normal"),
43        /// `cuf1`: Non-destructive space (cursor or carriage right)
44        CursorRight => ("cuf1", "cursor_right"),
45        /// `ll`: Last line, first column (if no `cup`)
46        CursorToLl => ("ll", "cursor_to_ll"),
47        /// `cuu1`: Upline (cursor up)
48        CursorUp => ("cuu1", "cursor_up"),
49        /// `cvvis`: Make cursor very visible
50        CursorVisible => ("cvvis", "cursor_visible"),
51        /// `dch1`: Delete character
52        DeleteCharacter => ("dch1", "delete_character"),
53        /// `dl1`: Delete line
54        DeleteLine => ("dl1", "delete_line"),
55        /// `dsl`: Disable status line
56        DisStatusLine => ("dsl", "dis_status_line"),
57        /// `hd`: Half-line down (forward 1/2 linefeed)
58        DownHalfLine => ("hd", "down_half_line"),
59        /// `smacs`: Start alternate character set
60        EnterAltCharsetMode => ("smacs", "enter_alt_charset_mode"),
61        /// `blink`: Turn on blinking
62        EnterBlinkMode => ("blink", "enter_blink_mode"),
63        /// `bold`: Turn on bold (extra bright) mode
64        EnterBoldMode => ("bold", "enter_bold_mode"),
65        /// `smcup`: String to begin programs that use `cup`
66        EnterCaMode => ("smcup", "enter_ca_mode"),
67        /// `smdc`: Delete mode (enter)
68        EnterDeleteMode => ("smdc", "enter_delete_mode"),
69        /// `dim`: Turn on half-bright mode
70        EnterDimMode => ("dim", "enter_dim_mode"),
71        /// `smir`: Insert mode (enter)
72        EnterInsertMode => ("smir", "enter_insert_mode"),
73        /// `invis`: Turn on blank mode (characters invisible)
74        EnterSecureMode => ("invis", "enter_secure_mode"),
75        /// `prot`: Turn on protected mode
76        EnterProtectedMode => ("prot", "enter_protected_mode"),
77        /// `rev`: Turn on reverse video mode
78        EnterReverseMode => ("rev", "enter_reverse_mode"),
79        /// `smso`: Begin standout mode
80        EnterStandoutMode => ("smso", "enter_standout_mode"),
81        /// `smul`: Start underscore mode
82        EnterUnderlineMode => ("smul", "enter_underline_mode"),
83        /// `ech`: Erase #1 characters
84        EraseChars => ("ech", "erase_chars"),
85        /// `rmacs`: End alternate character set
86        ExitAltCharsetMode => ("rmacs", "exit_alt_charset_mode"),
87        /// `sgr0`: Turn off all attributes
88        ExitAttributeMode => ("sgr0", "exit_attribute_mode"),
89        /// `rmcup`: String to end programs that use `cup`
90        ExitCaMode => ("rmcup", "exit_ca_mode"),
91        /// `rmdc`: End delete mode
92        ExitDeleteMode => ("rmdc", "exit_delete_mode"),
93        /// `rmir`: End insert mode
94        ExitInsertMode => ("rmir", "exit_insert_mode"),
95        /// `rmso`: End standout mode
96        ExitStandoutMode => ("rmso", "exit_standout_mode"),
97        /// `rmul`: End underscore mode
98        ExitUnderlineMode => ("rmul", "exit_underline_mode"),
99        /// `flash`: Visible bell (may move cursor)
100        FlashScreen => ("flash", "flash_screen"),
101        /// `ff`: Hardcopy terminal page eject
102        FormFeed => ("ff", "form_feed"),
103        /// `fsl`: Return from status line
104        FromStatusLine => ("fsl", "from_status_line"),
105        /// `is1`: Terminal or printer initialization string
106        Init1String => ("is1", "init_1string"),
107        /// `is2`: Terminal or printer initialization string
108        Init2String => ("is2", "init_2string"),
109        /// `is3`: Terminal or printer initialization string
110        Init3String => ("is3", "init_3string"),
111        /// `if`: Name of initialization file
112        InitFile => ("if", "init_file"),
113        /// `ich1`: Insert character
114        InsertCharacter => ("ich1", "insert_character"),
115        /// `il1`: Add new blank line
116        InsertLine => ("il1", "insert_line"),
117        /// `ip`: Insert pad after character inserted
118        InsertPadding => ("ip", "insert_padding"),
119        /// `kbs`: Sent by backspace key
120        KeyBackspace => ("kbs", "key_backspace"),
121        /// `ktbc`: Sent by clear-all-tabs key
122        KeyCatab => ("ktbc", "key_catab"),
123        /// `kclr`: Sent by clear-screen or erase key
124        KeyClear => ("kclr", "key_clear"),
125        /// `kctab`: Sent by clear-tab key
126        KeyCtab => ("kctab", "key_ctab"),
127        /// `kdch1`: Sent by delete-character key
128        KeyDc => ("kdch1", "key_dc"),
129        /// `kdl1`: Sent by delete-line key
130        KeyDl => ("kdl1", "key_dl"),
131        /// `kcud1`: Sent by terminal down-arrow key
132        KeyDown => ("kcud1", "key_down"),
133        /// `krmir`: Sent by `rmir` or `smir` in insert mode
134        KeyEic => ("krmir", "key_eic"),
135        /// `kel`: Sent by clear-to-end-of-line key
136        KeyEol => ("kel", "key_eol"),
137        /// `ked`: Sent by clear-to-end-of-screen key
138        KeyEos => ("ked", "key_eos"),
139        /// `f0`: Sent by function key f0
140        KeyF0 => ("kf0", "key_f0"),
141        /// `f1`: Sent by function key f1
142        KeyF1 => ("kf1", "key_f1"),
143        /// `f10`: Sent by function key f10
144        KeyF10 => ("kf10", "key_f10"),
145        /// `f2`: Sent by function key f2
146        KeyF2 => ("kf2", "key_f2"),
147        /// `f3`: Sent by function key f3
148        KeyF3 => ("kf3", "key_f3"),
149        /// `f4`: Sent by function key f4
150        KeyF4 => ("kf4", "key_f4"),
151        /// `f5`: Sent by function key f5
152        KeyF5 => ("kf5", "key_f5"),
153        /// `f6`: Sent by function key f6
154        KeyF6 => ("kf6", "key_f6"),
155        /// `f7`: Sent by function key f7
156        KeyF7 => ("kf7", "key_f7"),
157        /// `f8`: Sent by function key f8
158        KeyF8 => ("kf8", "key_f8"),
159        /// `f9`: Sent by function key f9
160        KeyF9 => ("kf9", "key_f9"),
161        /// `khome`: Sent by home key
162        KeyHome => ("khome", "key_home"),
163        /// `kich1`: Sent by ins-char/enter ins-mode key
164        KeyIc => ("kich1", "key_ic"),
165        /// `kil1`: Sent by insert-line key
166        KeyIl => ("kil1", "key_il"),
167        /// `kcub1 `: Sent by terminal left-arrow key
168        KeyLeft => ("kcub1", "key_left"),
169        /// `kll`: Sent by home-down key
170        KeyLl => ("kll", "key_ll"),
171        /// `knp`: Sent by next-page key
172        KeyNpage => ("knp", "key_npage"),
173        /// `kpp`: Sent by previous-page key
174        KeyPpage => ("kpp", "key_ppage"),
175        /// `kcuf1`: Sent by terminal right-arrow key
176        KeyRight => ("kcuf1", "key_right"),
177        /// `kind`: Sent by scroll-forward/down key
178        KeySf => ("kind", "key_sf"),
179        /// `kri`: Sent by scroll-backward/up key
180        KeySr => ("kri", "key_sr"),
181        /// `khts`: Sent by set-tab key
182        KeyStab => ("khts", "key_stab"),
183        /// `kcuu1`: Sent by terminal up-arrow key
184        KeyUp => ("kcuu1", "key_up"),
185        /// `rmkx`: Out of "keypad-transmit" mode
186        KeypadLocal => ("rmkx", "keypad_local"),
187        /// `smkx`: Put terminal in "keypad-transmit" mode
188        KeypadXmit => ("smkx", "keypad_xmit"),
189        /// `f0`: Labels on function key f0 if not f0
190        LabF0 => ("lf0", "lab_f0"),
191        /// `f1`: Labels on function key f1 if not f1
192        LabF1 => ("lf1", "lab_f1"),
193        /// `f10`: Labels on function key f10 if not f10
194        LabF10 => ("lf10", "lab_f10"),
195        /// `f2`: Labels on function key f2 if not f2
196        LabF2 => ("lf2", "lab_f2"),
197        /// `f3`: Labels on function key f3 if not f3
198        LabF3 => ("lf3", "lab_f3"),
199        /// `f4`: Labels on function key f4 if not f4
200        LabF4 => ("lf4", "lab_f4"),
201        /// `f5`: Labels on function key f5 if not f5
202        LabF5 => ("lf5", "lab_f5"),
203        /// `f6`: Labels on function key f6 if not f6
204        LabF6 => ("lf6", "lab_f6"),
205        /// `f7`: Labels on function key f7 if not f7
206        LabF7 => ("lf7", "lab_f7"),
207        /// `f8`: Labels on function key f8 if not f8
208        LabF8 => ("lf8", "lab_f8"),
209        /// `f9`: Labels on function key f9 if not f9
210        LabF9 => ("lf9", "lab_f9"),
211        /// `rmm`: Turn off "meta mode"
212        MetaOff => ("rmm", "meta_off"),
213        /// `smm`: Turn on "meta mode" (8th bit)
214        MetaOn => ("smm", "meta_on"),
215        /// `nel`: Newline (behaves like `cr` followed by `lf`)
216        Newline => ("nel", "newline"),
217        /// `pad`: Pad character (rather than null)
218        PadChar => ("pad", "pad_char"),
219        /// `dch`: Delete #1 chars
220        ParmDch => ("dch", "parm_dch"),
221        /// `dl`: Delete #1 lines
222        ParmDeleteLine => ("dl", "parm_delete_line"),
223        /// `cud`: Move down #1 lines
224        ParmDownCursor => ("cud", "parm_down_cursor"),
225        /// `ich`: Insert #1 \<blank\> chars
226        ParmIch => ("ich", "parm_ich"),
227        /// `indn`: Scroll forward #1 lines.
228        ParmIndex => ("indn", "parm_index"),
229        /// `il`: Add #1 new blank lines
230        ParmInsertLine => ("il", "parm_insert_line"),
231        /// `cub`: Move cursor left #1 spaces
232        ParmLeftCursor => ("cub", "parm_left_cursor"),
233        /// `cuf`: Move right #1 spaces.
234        ParmRightCursor => ("cuf", "parm_right_cursor"),
235        /// `rin`: Scroll backward #1 lines.
236        ParmRindex => ("rin", "parm_rindex"),
237        /// `cuu`: Move cursor up #1 lines.
238        ParmUpCursor => ("cuu", "parm_up_cursor"),
239        /// `pfkey`: Prog funct key #1 to type string #2
240        PkeyKey => ("pfkey", "pkey_key"),
241        /// `pfloc`: Prog funct key #1 to execute string #2
242        PkeyLocal => ("pfloc", "pkey_local"),
243        /// `pfx`: Prog label #1 to show string #2
244        PkeyXmit => ("pfx", "pkey_xmit"),
245        /// `mc0`: Print contents of the screen
246        PrintScreen => ("mc0", "print_screen"),
247        /// `mc4`: Turn off the printer
248        PrtrOff => ("mc4", "prtr_off"),
249        /// `mc5` Turn on the printer
250        PrtrOn => ("mc5", "prtr_on"),
251        /// `rep`: Repeat char #1 #2 times
252        RepeatChar => ("rep", "repeat_char"),
253        /// `rs1`: Reset terminal completely to sane modes
254        Reset1String => ("rs1", "reset_1string"),
255        /// `rs2`: Reset terminal completely to sane modes
256        Reset2String => ("rs2", "reset_2string"),
257        /// `rs3`: Reset terminal completely to sane modes
258        Reset3String => ("rs3", "reset_3string"),
259        /// `rf`: Name of file containing reset string
260        ResetFile => ("rf", "reset_file"),
261        /// `rc`: Restore cursor to position of last `sc`
262        RestoreCursor => ("rc", "restore_cursor"),
263        /// `vpa`: Set vertical position to absolute #1
264        RowAddress => ("vpa", "row_address"),
265        /// `sc`: Save cursor position
266        SaveCursor => ("sc", "save_cursor"),
267        /// `ind`: Scroll text up
268        ScrollForward => ("ind", "scroll_forward"),
269        /// `ri`: Scroll text down
270        ScrollReverse => ("ri", "scroll_reverse"),
271        /// `sgr`: Define first set of video attributes #1-#9
272        SetAttributes => ("sgr", "set_attributes"),
273        /// `hts`: Set a tab in all rows, current column
274        SetTab => ("hts", "set_tab"),
275        /// `wind`: Current window is lines #1-#2 cols #3-#4
276        SetWindow => ("wind", "set_window"),
277        /// `ht`: Tab to next 8-space hardware tab stop
278        Tab => ("ht", "tab"),
279        /// `tsl`: Go to status line, col #1
280        ToStatusLine => ("tsl", "to_status_line"),
281        /// `uc`: Underscore one char and move past it
282        UnderlineChar => ("uc", "underline_char"),
283        /// `hu`: Half-line up (reverse 1/2 linefeed)
284        UpHalfLine => ("hu", "up_half_line"),
285        /// `iprog`: Path name of program for initialization
286        InitProg => ("iprog", "init_prog"),
287        /// `ka1`: Upper left of keypad
288        KeyA1 => ("ka1", "key_a1"),
289        /// `ka3`: Upper right of keypad
290        KeyA3 => ("ka3", "key_a3"),
291        /// `kb2`: Center of keypad
292        KeyB2 => ("kb2", "key_b2"),
293        /// `kc1`: Lower left of keypad
294        KeyC1 => ("kc1", "key_c1"),
295        /// `kc3`: Lower right of keypad
296        KeyC3 => ("kc3", "key_c3"),
297        /// `mc5p`: Turn on the printer for #1 bytes
298        PrtrNon => ("mc5p", "prtr_non"),
299        /// `rmp`: Like `ip` but when in replace mode
300        CharPadding => ("rmp", "char_padding"),
301        /// `acsc`: Graphic charset pairs aAbBcC
302        AcsChars => ("acsc", "acs_chars"),
303        /// `pln`: Prog label #1 to show string #2
304        PlabNorm => ("pln", "plab_norm"),
305        /// `kcbt`: Sent by back-tab key
306        KeyBtab => ("kcbt", "key_btab"),
307        /// `smxon`: Turn on xon/xoff handshaking
308        EnterXonMode => ("smxon", "enter_xon_mode"),
309        /// `rmxon`: Turn off xon/xoff handshaking
310        ExitXonMode => ("rmxon", "exit_xon_mode"),
311        /// `smam`: Turn on automatic margins
312        EnterAmMode => ("smam", "enter_am_mode"),
313        /// `rmam`: Turn off automatic margins
314        ExitAmMode => ("rmam", "exit_am_mode"),
315        /// `xonc`: X-on character
316        XonCharacter => ("xonc", "xon_character"),
317        /// `xoffc`: X-off character
318        XoffCharacter => ("xoffc", "xoff_character"),
319        /// `enacs`: Enable alternate character set
320        EnaAcs => ("enacs", "ena_acs"),
321        /// `smln`: Turn on soft labels
322        LabelOn => ("smln", "label_on"),
323        /// `rmln`: Turn off soft labels
324        LabelOff => ("rmln", "label_off"),
325        /// `kbeg`: Sent by beg(inning) key
326        KeyBeg => ("kbeg", "key_beg"),
327        /// `kcan`: Sent by cancel key
328        KeyCancel => ("kcan", "key_cancel"),
329        /// `kclo`: Sent by close key
330        KeyClose => ("kclo", "key_close"),
331        /// `kcmd`: Sent by cmd (command) key
332        KeyCommand => ("kcmd", "key_command"),
333        /// `kcpy`: Sent by copy key
334        KeyCopy => ("kcpy", "key_copy"),
335        /// `kcrt`: Sent by create key
336        KeyCreate => ("kcrt", "key_create"),
337        /// `kend`: Sent by end key
338        KeyEnd => ("kend", "key_end"),
339        /// `kent`: Sent by enter / send key
340        KeyEnter => ("kent", "key_enter"),
341        /// `kext`: Sent by exit key
342        KeyExit => ("kext", "key_exit"),
343        /// `kfnd`: Sent by find key
344        KeyFind => ("kfnd", "key_find"),
345        /// `khlp`: Sent by help key
346        KeyHelp => ("khlp", "key_help"),
347        /// `kmrk`: Sent by mark key
348        KeyMark => ("kmrk", "key_mark"),
349        /// `kmsg`: Sent by message key
350        KeyMessage => ("kmsg", "key_message"),
351        /// `kmov`: Sent by move key
352        KeyMove => ("kmov", "key_move"),
353        /// `knxt`: Sent by next-object key
354        KeyNext => ("knxt", "key_next"),
355        /// `kopn`: Sent by open key
356        KeyOpen => ("kopn", "key_open"),
357        /// `kopt`: Sent by options key
358        KeyOptions => ("kopt", "key_options"),
359        /// `kprv`: Sent by previous-object key
360        KeyPrevious => ("kprv", "key_previous"),
361        /// `kprt`: Sent by print or copy key
362        KeyPrint => ("kprt", "key_print"),
363        /// `krdo`: Sent by redo key
364        KeyRedo => ("krdo", "key_redo"),
365        /// `kref`: Sent by ref(erence) key
366        KeyReference => ("kref", "key_reference"),
367        /// `krfr`: Sent by refresh key
368        KeyRefresh => ("krfr", "key_refresh"),
369        /// `krpl`: Sent by replace key
370        KeyReplace => ("krpl", "key_replace"),
371        /// `krst`: Sent by restart key
372        KeyRestart => ("krst", "key_restart"),
373        /// `kres`: Sent by resume key
374        KeyResume => ("kres", "key_resume"),
375        /// `ksav`: Sent by save key
376        KeySave => ("ksav", "key_save"),
377        /// `kspd`: Sent by suspend key
378        KeySuspend => ("kspd", "key_suspend"),
379        /// `kund`: Sent by undo key
380        KeyUndo => ("kund", "key_undo"),
381        /// `kBEG`: Sent by shifted beginning key
382        KeySBeg => ("kBEG", "key_sbeg"),
383        /// `kCAN`: Sent by shifted cancel key
384        KeySCancel => ("kCAN", "key_scancel"),
385        /// `kCMD`: Sent by shifted command key
386        KeySCommand => ("kCMD", "key_scommand"),
387        /// `kCPY`: Sent by shifted copy key
388        KeySCopy => ("kCPY", "key_scopy"),
389        /// `kCRT`: Sent by shifted create key
390        KeySCreate => ("kCRT", "key_screate"),
391        /// `kDC`: Sent by shifted delete-char key
392        KeySDc => ("kDC", "key_sdc"),
393        /// `kDL`: Sent by shifted delete-line key
394        KeySDl => ("kDL", "key_sdl"),
395        /// `kslt`: Sent by select key
396        KeySelect => ("kslt", "key_select"),
397        /// `kEND`: Sent by shifted end key
398        KeySEnd => ("kEND", "key_send"),
399        /// `kEOL`: Sent by shifted clear-line key
400        KeySEol => ("kEOL", "key_seol"),
401        /// `kEXT`: Sent by shifted exit key
402        KeySExit => ("kEXT", "key_sexit"),
403        /// `kFND`: Sent by shifted find key
404        KeySFind => ("kFND", "key_sfind"),
405        /// `kHLP`: Sent by shifted help key
406        KeySHelp => ("kHLP", "key_shelp"),
407        /// `kHOM`: Sent by shifted home key
408        KeySHome => ("kHOM", "key_shome"),
409        /// `kIC`: Sent by shifted input key
410        KeySIc => ("kIC", "key_sic"),
411        /// `kLFT`: Sent by shifted left-arrow key
412        KeySLeft => ("kLFT", "key_sleft"),
413        /// `kMSG`: Sent by shifted message key
414        KeySMessage => ("kMSG", "key_smessage"),
415        /// `kMOV`: Sent by shifted move key
416        KeySMove => ("kMOV", "key_smove"),
417        /// `kNXT`: Sent by shifted next key
418        KeySNext => ("kNXT", "key_snext"),
419        /// `kOPT`: Sent by shifted options key
420        KeySOptions => ("kOPT", "key_soptions"),
421        /// `kPRV`: Sent by shifted prev key
422        KeySPrevious => ("kPRV", "key_sprevious"),
423        /// `kPRT`: Sent by shifted print key
424        KeySPrint => ("kPRT", "key_sprint"),
425        /// `kRDO`: Sent by shifted redo key
426        KeySRedo => ("kRDO", "key_sredo"),
427        /// `kRPL`: Sent by shifted replace key
428        KeySReplace => ("kRPL", "key_sreplace"),
429        /// `kRIT`: Sent by shifted right-arrow key
430        KeySRight => ("kRIT", "key_sright"),
431        /// `kRES`: Sent by shifted resume key
432        KeySResume => ("kRES", "key_srsume"),
433        /// `kSAV`: Sent by shifted save key
434        KeySSave => ("kSAV", "key_ssave"),
435        /// `kSPD`: Sent by shifted suspend key
436        KeySSuspend => ("kSPD", "key_ssuspend"),
437        /// `kUND`: Sent by shifted undo key
438        KeySUndo => ("kUND", "key_sundo"),
439        /// `rfi`: Sent next input char (for ptys)
440        ReqForInput => ("rfi", "req_for_input"),
441        /// `f11`: Sent by function key f11
442        KeyF11 => ("kf11", "key_f11"),
443        /// `f12`: Sent by function key f12
444        KeyF12 => ("kf12", "key_f12"),
445        /// `f13`: Sent by function key f13
446        KeyF13 => ("kf13", "key_f13"),
447        /// `f14`: Sent by function key f14
448        KeyF14 => ("kf14", "key_f14"),
449        /// `f15`: Sent by function key f15
450        KeyF15 => ("kf15", "key_f15"),
451        /// `f16`: Sent by function key f16
452        KeyF16 => ("kf16", "key_f16"),
453        /// `f17`: Sent by function key f17
454        KeyF17 => ("kf17", "key_f17"),
455        /// `f18`: Sent by function key f18
456        KeyF18 => ("kf18", "key_f18"),
457        /// `f19`: Sent by function key f19
458        KeyF19 => ("kf19", "key_f19"),
459        /// `f20`: Sent by function key f20
460        KeyF20 => ("kf20", "key_f20"),
461        /// `f21`: Sent by function key f21
462        KeyF21 => ("kf21", "key_f21"),
463        /// `f22`: Sent by function key f22
464        KeyF22 => ("kf22", "key_f22"),
465        /// `f23`: Sent by function key f23
466        KeyF23 => ("kf23", "key_f23"),
467        /// `f24`: Sent by function key f24
468        KeyF24 => ("kf24", "key_f24"),
469        /// `f25`: Sent by function key f25
470        KeyF25 => ("kf25", "key_f25"),
471        /// `f26`: Sent by function key f26
472        KeyF26 => ("kf26", "key_f26"),
473        /// `f27`: Sent by function key f27
474        KeyF27 => ("kf27", "key_f27"),
475        /// `f28`: Sent by function key f28
476        KeyF28 => ("kf28", "key_f28"),
477        /// `f29`: Sent by function key f29
478        KeyF29 => ("kf29", "key_f29"),
479        /// `f30`: Sent by function key f30
480        KeyF30 => ("kf30", "key_f30"),
481        /// `f31`: Sent by function key f31
482        KeyF31 => ("kf31", "key_f31"),
483        /// `f32`: Sent by function key f32
484        KeyF32 => ("kf32", "key_f32"),
485        /// `f33`: Sent by function key f33
486        KeyF33 => ("kf33", "key_f33"),
487        /// `f34`: Sent by function key f34
488        KeyF34 => ("kf34", "key_f34"),
489        /// `f35`: Sent by function key f35
490        KeyF35 => ("kf35", "key_f35"),
491        /// `f36`: Sent by function key f36
492        KeyF36 => ("kf36", "key_f36"),
493        /// `f37`: Sent by function key f37
494        KeyF37 => ("kf37", "key_f37"),
495        /// `f38`: Sent by function key f38
496        KeyF38 => ("kf38", "key_f38"),
497        /// `f39`: Sent by function key f39
498        KeyF39 => ("kf39", "key_f39"),
499        /// `f40`: Sent by function key f40
500        KeyF40 => ("kf40", "key_f40"),
501        /// `f41`: Sent by function key f41
502        KeyF41 => ("kf41", "key_f41"),
503        /// `f42`: Sent by function key f42
504        KeyF42 => ("kf42", "key_f42"),
505        /// `f43`: Sent by function key f43
506        KeyF43 => ("kf43", "key_f43"),
507        /// `f44`: Sent by function key f44
508        KeyF44 => ("kf44", "key_f44"),
509        /// `f45`: Sent by function key f45
510        KeyF45 => ("kf45", "key_f45"),
511        /// `f46`: Sent by function key f46
512        KeyF46 => ("kf46", "key_f46"),
513        /// `f47`: Sent by function key f47
514        KeyF47 => ("kf47", "key_f47"),
515        /// `f48`: Sent by function key f48
516        KeyF48 => ("kf48", "key_f48"),
517        /// `f49`: Sent by function key f49
518        KeyF49 => ("kf49", "key_f49"),
519        /// `f50`: Sent by function key f50
520        KeyF50 => ("kf50", "key_f50"),
521        /// `f51`: Sent by function key f51
522        KeyF51 => ("kf51", "key_f51"),
523        /// `f52`: Sent by function key f52
524        KeyF52 => ("kf52", "key_f52"),
525        /// `f53`: Sent by function key f53
526        KeyF53 => ("kf53", "key_f53"),
527        /// `f54`: Sent by function key f54
528        KeyF54 => ("kf54", "key_f54"),
529        /// `f55`: Sent by function key f55
530        KeyF55 => ("kf55", "key_f55"),
531        /// `f56`: Sent by function key f56
532        KeyF56 => ("kf56", "key_f56"),
533        /// `f57`: Sent by function key f57
534        KeyF57 => ("kf57", "key_f57"),
535        /// `f58`: Sent by function key f58
536        KeyF58 => ("kf58", "key_f58"),
537        /// `f59`: Sent by function key f59
538        KeyF59 => ("kf59", "key_f59"),
539        /// `f60`: Sent by function key f60
540        KeyF60 => ("kf60", "key_f60"),
541        /// `f61`: Sent by function key f61
542        KeyF61 => ("kf61", "key_f61"),
543        /// `f62`: Sent by function key f62
544        KeyF62 => ("kf62", "key_f62"),
545        /// `f63`: Sent by function key f63
546        KeyF63 => ("kf63", "key_f63"),
547        /// `el1`: Clear to beginning of line, inclusive
548        ClrBol => ("el1", "clr_bol"),
549        /// `mgc`: Clear all margins (top, bottom, and sides)
550        ClearMargins => ("mgc", "clear_margins"),
551        /// `smgl`: Set left margin at current column
552        SetLeftMargin => ("smgl", "set_left_margin"),
553        /// `smgr`: Set right margin at current column
554        SetRightMargin => ("smgr", "set_right_margin"),
555        /// `fln`: Label format
556        LabelFormat => ("fln", "label_format"),
557        /// `sclk`: Set clock to hours (#1), minutes (#2), seconds (#3)
558        SetClock => ("sclk", "set_clock"),
559        /// `dclk`: Display time-of-day clock
560        DisplayClock => ("dclk", "display_clock"),
561        /// `rmclk`: Remove time-of-day clock
562        RemoveClock => ("rmclk", "remove_clock"),
563        /// `cwin`: Define win #1 to go from #2, #3 to #4, #5
564        CreateWindow => ("cwin", "create_window"),
565        /// `wingo`: Go to window #1
566        GotoWindow => ("wingo", "goto_window"),
567        /// `hup`: Hang-up phone
568        Hangup => ("hup", "hangup"),
569        /// `dial`: Dial phone number #1
570        DialPhone => ("dial", "dial_phone"),
571        /// `qdial`: Dial phone number #1, without progress detection
572        QuickDial => ("qdial", "quick_dial"),
573        /// `tone`: Select touch tone dialing
574        Tone => ("tone"),
575        /// `pulse`: Select pulse dialing
576        Pulse => ("pulse"),
577        /// `hook`: Flash the switch hook
578        FlashHook => ("hook", "flash_hook"),
579        /// `pause`: Pause for 2-3 seconds
580        FixedPause => ("pause", "fixed_pause"),
581        /// `wait`: Wait for dial tone
582        WaitTone => ("wait", "wait_tone"),
583        /// `u0`: User string 0
584        User0 => ("u0", "user0"),
585        /// `u1`: User string 1
586        User1 => ("u1", "user1"),
587        /// `u2`: User string 2
588        User2 => ("u2", "user2"),
589        /// `u3`: User string 3
590        User3 => ("u3", "user3"),
591        /// `u4`: User string 4
592        User4 => ("u4", "user4"),
593        /// `u5`: User string 5
594        User5 => ("u5", "user5"),
595        /// `u6`: User string 6
596        User6 => ("u6", "user6"),
597        /// `u7`: User string 7
598        User7 => ("u7", "user7"),
599        /// `u8`: User string 8
600        User8 => ("u8", "user8"),
601        /// `u9`: User string 9
602        User9 => ("u9", "user9"),
603        /// `op`: Set default color-pair to the original one
604        OrigPair => ("op", "orig_pair"),
605        /// `oc`: Set all color(-pair)s to the original ones
606        OrigColors => ("oc", "orig_colors"),
607        /// `initc`: Set color #1 to RGB #2, #3, #4
608        InitializeColor => ("initc", "initialize_color"),
609        /// `initp`: Set color-pair #1 to fg #2, bg #3
610        InitializePair => ("initp", "initialize_pair"),
611        /// `scp`: Set current color pair to #1
612        SetColorPair => ("scp", "set_color_pair"),
613        /// `setf`: Set foreground color to #1
614        SetForeground => ("setf", "set_foreground"),
615        /// `setb`: Set background color to #1
616        SetBackground => ("setb", "set_background"),
617        /// `cpi`: Change number of characters per inch
618        ChangeCharPitch => ("cpi", "change_char_pitch"),
619        /// `lpi`: Change number of lines per inch
620        ChangeLinePitch => ("lpi", "change_line_pitch"),
621        /// `chr`: Change horizontal resolution
622        ChangeResHorz => ("chr", "change_res_horz"),
623        /// `cvr`: Change vertical resolution
624        ChangeResVert => ("cvr", "change_res_vert"),
625        /// `defc`: Define a character in a character set
626        DefineChar => ("defc", "define_char"),
627        /// `swidm`: Enable double wide printing
628        EnterDoublewideMode => ("swidm", "enter_doublewide_mode"),
629        /// `sdrfq`: Set draft quality print
630        EnterDraftQuality => ("sdrfq", "enter_draft_quality"),
631        /// `sitm`: Enable italics
632        EnterItalicsMode => ("sitm", "enter_italics_mode"),
633        /// `slm`: Enable leftward carriage motion
634        EnterLeftwardMode => ("slm", "enter_leftward_mode"),
635        /// `smicm`: Enable micro motion capabilities
636        EnterMicroMode => ("smicm", "enter_micro_mode"),
637        /// `snlq`: Set near-letter quality print
638        EnterNearLetterQuality => ("snlq", "enter_near_letter_quality"),
639        /// `snrmq`: Set normal quality print
640        EnterNormalQuality => ("snrmq", "enter_normal_quality"),
641        /// `sshm`: Enable shadow printing
642        EnterShadowMode => ("sshm", "enter_shadow_mode"),
643        /// `ssubm`: Enable subscript printing
644        EnterSubscriptMode => ("ssubm", "enter_subscript_mode"),
645        /// `ssupm`: Enable superscript printing
646        EnterSuperscriptMode => ("ssupm", "enter_superscript_mode"),
647        /// `sum`: Enable upward carriage motion
648        EnterUpwardMode => ("sum", "enter_upward_mode"),
649        /// `rwidm`: Disable double wide printing
650        ExitDoublewideMode => ("rwidm", "exit_doublewide_mode"),
651        /// `ritm`: Disable italics
652        ExitItalicsMode => ("ritm", "exit_italics_mode"),
653        /// `rlm`: Enable rightward (normal) carriage motion
654        ExitLeftwardMode => ("rlm", "exit_leftward_mode"),
655        /// `rmicm`: Disable micro motion capabilities
656        ExitMicroMode => ("rmicm", "exit_micro_mode"),
657        /// `rshm`: Disable shadow printing
658        ExitShadowMode => ("rshm", "exit_shadow_mode"),
659        /// `rsubm`: Disable subscript printing
660        ExitSubscriptMode => ("rsubm", "exit_subscript_mode"),
661        /// `rsupm`: Disable superscript printing
662        ExitSuperscriptMode => ("rsupm", "exit_superscript_mode"),
663        /// `rum`: Enable downward (normal) carriage motion
664        ExitUpwardMode => ("rum", "exit_upward_mode"),
665        /// `mhpa`: Like `column_address` for micro adjustment
666        MicroColumnAddress => ("mhpa", "micro_column_address"),
667        /// `mcud1`: Like `cursor_down` for micro adjustment
668        MicroDown => ("mcud1", "micro_down"),
669        /// `mcub1`: Like `cursor_left` for micro adjustment
670        MicroLeft => ("mcub1", "micro_left"),
671        /// `mcuf1`: Like `cursor_right` for micro adjustment
672        MicroRight => ("mcuf1", "micro_right"),
673        /// `mvpa`: Like `row_address` for micro adjustment
674        MicroRowAddress => ("mvpa", "micro_row_address"),
675        /// `mcuu1`: Like `cursor_up` for micro adjustment
676        MicroUp => ("mcuu1", "micro_up"),
677        /// `porder`: Matches software bits to print-head pins
678        OrderOfPins => ("porder", "order_of_pins"),
679        /// `mcud`: Like `parm_down_cursor` for micro adjust.
680        ParmDownMicro => ("mcud", "parm_down_micro"),
681        /// `mcub`: Like `parm_left_cursor` for micro adjust.
682        ParmLeftMicro => ("mcub", "parm_left_micro"),
683        /// `mcuf`: Like `parm_right_cursor` for micro adjust.
684        ParmRightMicro => ("mcuf", "parm_right_micro"),
685        /// `mcuu`: Like `parm_up_cursor` for micro adjust.
686        ParmUpMicro => ("mcuu", "parm_up_micro"),
687        /// `scs`: Select character set
688        SelectCharSet => ("scs", "select_char_set"),
689        /// `smgb`: Set bottom margin at current line
690        SetBottomMargin => ("smgb", "set_bottom_margin"),
691        /// `smgbp`: Set bottom margin at line #1 or #2 lines from bottom
692        SetBottomMarginParm => ("smgbp", "set_bottom_margin_parm"),
693        /// `smglp`: Set left (right) margin at column #1 (#2)
694        SetLeftMarginParm => ("smglp", "set_left_margin_parm"),
695        /// `smgrp`: Set right margin at column #1
696        SetRightMarginParm => ("smgrp", "set_right_margin_parm"),
697        /// `smgt`: Set top margin at current line
698        SetTopMargin => ("smgt", "set_top_margin"),
699        /// `smgtp`: Set top (bottom) margin at line #1 (#2)
700        SetTopMarginParm => ("smgtp", "set_top_margin_parm"),
701        /// `sbim`: Start printing bit image graphics
702        StartBitImage => ("sbim", "start_bit_image"),
703        /// `scsd`: Start definition of a character set
704        StartCharSetDef => ("scsd", "start_char_set_def"),
705        /// `rbim`: End printing bit image graphics
706        StopBitImage => ("rbim", "stop_bit_image"),
707        /// `rcsd`: End definition of a character set
708        StopCharSetDef => ("rcsd", "stop_char_set_def"),
709        /// `subcs`: List of "subscript-able" characters
710        SubscriptCharacters => ("subcs", "subscript_characters"),
711        /// `supcs`: List of "superscript-able" characters
712        SuperscriptCharacters => ("supcs", "superscript_characters"),
713        /// `docr`: Printing any of these chars causes `cr`
714        TheseCauseCr => ("docr", "these_cause_cr"),
715        /// `zerom`: No motion for the subsequent character
716        ZeroMotion => ("zerom", "zero_motion"),
717        /// `csnm`: Returns a list of character set names
718        CharSetNames => ("csnm", "char_set_names"),
719        /// `kmous`: 0631, Mouse event has occured
720        KeyMouse => ("kmous", "key_mouse"),
721        /// `minfo`: Mouse status information
722        MouseInfo => ("minfo", "mouse_info"),
723        /// `reqmp`: Request mouse position report
724        ReqMousePos => ("reqmp", "req_mouse_pos"),
725        /// `getm`: Curses should get button events
726        GetMouse => ("getm", "get_mouse"),
727        /// `setaf`: Set foreground color to #1 using ANSI escape
728        SetAForeground => ("setaf", "set_a_foreground"),
729        /// `setab`: Set foreground color to #1 using ANSI escape
730        SetABackground => ("setab", "set_a_background"),
731        /// `pfxl`: Prog key #1 to xmit string #2 and show string #3
732        PkeyPlab => ("pfxl", "pkey_plab"),
733        /// `devt`: Indicate language/codeset support
734        DeviceType => ("devt", "device_type"),
735        /// `csin`: Init sequence for multiple codesets
736        CodeSetInit => ("csin", "code_set_init"),
737        /// `s0ds`: Shift into codeset 0 (EUC set 0, ASCII)
738        Set0DesSeq => ("s0ds", "set0_des_seq"),
739        /// `s1ds`: Shift into codeset 1
740        Set1DesSeq => ("s1ds", "set1_des_seq"),
741        /// `s2ds`: Shift into codeset 2
742        Set2DesSeq => ("s2ds", "set2_des_seq"),
743        /// `s3ds`: Shift into codeset 3
744        Set3DesSeq => ("s3ds", "set3_des_seq"),
745        /// `smglr`: Set both left and right margins
746        SetLrMargin => ("smglr", "set_lr_margin"),
747        /// `smgtb`: Set both top and bottom margins
748        SetTbMargin => ("smgtb", "set_tb_margin"),
749        /// `birep`: Repeat bit-image cell #1 #2 times
750        BitImageRepeat => ("birep", "bit_image_repeat"),
751        /// `binl`: Move to next row of the bit image
752        BitImageNewline => ("binel", "bit_image_newline"),
753        /// `bicr`: Move to beginning of same row
754        BitImageCarriageReturn => ("bicr", "bit_image_carriage_return"),
755        /// `colornm`: Give name for color #1
756        ColorNames => ("colornm", "color_names"),
757        /// `defbi`: Define rectangular bit-image region
758        DefineBitImageRegion => ("defbi", "define_bit_image_region"),
759        /// `endbi`: End a bit-image region
760        EndBitImageRegion => ("endbi", "end_bit_image_region"),
761        /// `setcolor`: Change to ribbon color #1
762        SetColorBand => ("setcolor", "set_color_band"),
763        /// `slines`: Set page length to #1 lines
764        SetPageLength => ("slines", "set_page_length"),
765        /// `dispc`: Display PC character
766        DisplayPcChar => ("dispc", "display_pc_char"),
767        /// `smpch`: Enter PC character display mode
768        EnterPcCharsetMode => ("smpch", "enter_pc_charset_mode"),
769        /// `rmpch`: Disable PC character display mode
770        ExitPcCharsetMode => ("rmpch", "exit_pc_charset_mode"),
771        /// `smsc`: Enter PC scancode mode
772        EnterScancodeMode => ("smsc", "enter_scancode_mode"),
773        /// `rmsc`: Disable PC scancode mode
774        ExitScancodeMode => ("rmsc", "exit_scancode_mode"),
775        /// `pctrm`: PC terminal options
776        PcTermOptions => ("pctrm", "pc_term_options"),
777        /// `scesc`: Escape for scancode emulation
778        ScancodeEscape => ("scesc", "scancode_escape"),
779        /// `scesa`: Alternate escape for scancode emulation (default is for VT100)
780        AltScancodeEsc => ("scesa", "alt_scancode_esc"),
781        /// `ehhlm`: Turn on horizontal highlight mode
782        EnterHorizontalHlMode => ("ehhlm", "enter_horizontal_hl_mode"),
783        /// `elhlm`: Turn on left highlight mode
784        EnterLeftHlMode => ("elhlm", "enter_left_hl_mode"),
785        /// `elohlm`: Turn on low highlight mode
786        EnterLowHlMode => ("elohlm", "enter_low_hl_mode"),
787        /// `erhlm`: Turn on right highlight mode
788        EnterRightHlMode => ("erhlm", "enter_right_hl_mode"),
789        /// `ethlm`: Turn on top highlight mode
790        EnterTopHlMode => ("ethlm", "enter_top_hl_mode"),
791        /// `evhlm`: Turn on vertical highlight mode
792        EnterVerticalHlMode => ("evhlm", "enter_vertical_hl_mode"),
793        /// `sgr1`: Define second set of video attributes #1-#6
794        SetAAttributes => ("sgr1", "set_a_attributes"),
795        /// `slength`: Set page length to #1 hundredth of an inch
796        SetPglenInch => ("slength", "set_pglen_inch"),
797    }
798}