|
|
/usr/share/lib/terminfo/?/*
terminfo is a database produced by tic that describes the capabilities of devices such as terminals and printers. Devices are described in terminfo source files by specifying a set of capabilities, by quantifying certain aspects of the device, and by specifying character sequences that affect particular results. This database is often used by screen oriented applications such as vi and curses programs, as well as by some UNIX system commands such as ls and more. This usage allows them to work with a variety of devices without changes to the programs.
terminfo source files consist of one or more device descriptions. Each description consists of a header (beginning in column 1) and one or more lines that list the features for that particular device. Every line in a terminfo source file must end in a comma (``,''). Every line in a terminfo source file except the header must be indented with one or more white spaces (either spaces or tabs).
Entries in terminfo source files consist of a number of comma-separated fields. White space after each comma is ignored. Embedded commas must be escaped by using a backslash. The following example shows the format of a terminfo source file.
alias[1] | alias[2] | . . . | alias[n] | longname, <white space> am, lines #24, <white space> home=\Eeh,
The first line, commonly referred to as the header line, must begin in column one and must contain at least two aliases separated by vertical bars. The last field in the header line must be the long name of the device and it may contain any string. Alias names must be unique in the terminfo database and they must conform to UNIX system file naming conventions [see tic(1M)]; they cannot, for example, contain white space or slashes.
Every device must be assigned a name, such as vt100. Device names (except the long name) should be chosen using the following conventions. The name should not contain hyphens because hyphens are reserved for use when adding suffixes that indicate special modes.
These special modes may be modes that the hardware can be in, or user preferences. To assign a special mode to a particular device, append a suffix consisting of a hyphen and an indicator of the mode to the device name. For example, the -w suffix means ``wide mode''; when specified, it allows for a width of 132 columns instead of the standard 80 columns. Therefore, if you want to use a vt100 device set to wide mode, name the device vt100-w. Use the following suffixes where possible.
| Suffix | Meaning | Example | |
|---|---|---|---|
| -w | Wide mode (more than 80 columns) | 5410-w | |
| -am | With auto. margins (usually default) | vt100-am | |
| -nam | Without automatic margins | vt100-nam | |
| -n | Number of lines on the screen | 2300-40 | |
| -na | No arrow keys (leave them in local) | c100-na | |
| -np | Number of pages of memory | c100-4p | |
| -rv | Reverse video | 4415-rv |
The terminfo reference manual page is organized in two sections: ``DEVICE CAPABILITIES'' and ``PRINTER CAPABILITIES.''
In the following table, a Variable is the name by which a C programmer accesses a capability (at the terminfo level). A Capname is the short name for a capability specified in the terminfo source file. It is used by a person updating the source file and by the tput command. A Termcap Code is a two-letter sequence that corresponds to the termcap capability name. (Note that termcap is no longer supported.)
Capability names have no real length limit, but an informal limit of five characters has been adopted to keep them short. Whenever possible, capability names are chosen to be the same as or similar to those specified by the ANSI X3.64-1979 standard. Semantics are also intended to match those of the ANSI standard.
All string capabilities listed below may have padding specified, with the exception of those used for input. Input capabilities, listed under the ``Strings'' section in the following tables, have names beginning with key_. The ``#i'' symbol in the description field of the following tables refers to the ith parameter.
| Cap- | Termcap | ||
|---|---|---|---|
| Variable | name | Code | Description |
| auto_left_margin | bw | bw | cub1 wraps from column 0 to |
| last column | |||
| auto_right_margin | am | am | Terminal has automatic margins |
| back_color_erase | bce | be | Screen erased with background color |
| can_change | ccc | cc | Terminal can re-define existing color |
| ceol_standout_glitch | xhp | xs | Standout not erased by overwriting (hp) |
| col_addr_glitch | xhpa | YA | Only positive motion for hpa/mhpa caps |
| cpi_changes_res | cpix | YF | Changing character pitch changes |
| resolution | |||
| cr_cancels_micro_mode | crxm | YB | Using cr turns off micro mode |
|
| |||
|
| |||
| eat_newline_glitch | xenl | xn | Newline ignored after 80 columns |
| (Concept) | |||
| erase_overstrike | eo | eo | Can erase overstrikes with a blank |
| generic_type | gn | gn | Generic line type (e.g., dialup, switch) |
| hard_copy | hc | hc | Hardcopy terminal |
| hard_cursor | chts | HC | Cursor is hard to see |
| has_meta_key | km | km | Has a meta key (shift, sets parity bit) |
| has_print_wheel | daisy | YC | Printer needs operator to change |
| character set | |||
| has_status_line | hs | hs | Has extra ``status line'' |
| hue_lightness_saturation | hls | hl | Terminal uses only HLS color |
| notation (Tektronix) | |||
| insert_null_glitch | in | in | Insert mode distinguishes nulls |
| lpi_changes_res | lpix | YG | Changing line pitch changes resolution |
| memory_above | da | da | Display may be retained above the screen |
| memory_below | db | db | Display may be retained below the screen |
| move_insert_mode | mir | mi | Safe to move while in insert mode |
| move_standout_mode | msgr | ms | Safe to move in standout modes |
| needs_xon_xoff | nxon | nx | Padding won't work, xon/xoff required |
| no_esc_ctlc | xsb | xb | Beehive (f1=escape, f2=ctrl C) |
| non_dest_scroll_region | ndscr | ND | Scrolling region is |
| nondestructive | |||
| non_rev_rmcup | nrrmc | NR | smcup does not reverse rmcup |
| no_pad_char | npc | NP | Pad character doesn't exist |
| over_strike | os | os | Terminal overstrikes on hard-copy |
| terminal | |||
| prtr_silent | mc5i | 5i | Printer won't echo on screen |
| row_addr_glitch | xvpa | YD | Only positive motion for vpa/mvpa caps |
| semi_auto_right_margin | sam | YE | Printing in last column causes cr |
| status_line_esc_ok | eslok | es | Escape can be used on the status line |
| dest_tabs_magic_smso | xt | xt | Destructive tabs, magic smso char (t1061) |
| tilde_glitch | hz | hz | Hazeltine; can't print tilde (~) |
| transparent_underline | ul | ul | Underline character overstrikes |
| xon_xoff | xon | xo | Terminal uses xon/xoff handshaking |
| Cap- | Termcap | ||
|---|---|---|---|
| Variable | name | Code | Description |
| bit_image_entwining | bitwin | Yo | Number of passes for each bit-map row |
| bit_image_type | bitype | Yp | Type of bit image device |
| buffer_capacity | bufsz | Ya | Number of bytes buffered before printing |
| buttons | btns | BT | Number of buttons on the mouse |
| columns | cols | co | Number of columns in a line |
| dot_vert_spacing | spinv | Yb | Spacing of pins vertically in pins per inch |
| dot_horz_spacing | spinh | Yc | Spacing of dots horizontally in dots per inch |
| init_tabs | it | it | Tabs initially every # spaces |
| label_height | lh | lh | Number of rows in each label |
| label_width | lw | lw | Number of columns in each label |
| lines | lines | li | Number of lines on a screen or a page |
| lines_of_memory | lm | lm | Lines of memory if > lines; 0 means varies |
| magic_cookie_glitch | xmc | sg | Number of blank characters left by |
| max_attributes | ma | ma | Maximum combined video attributes terminal can display |
| smso or rmso | |||
| max_colors | colors | Co | Maximum number of colors on the screen |
| maximum_windows | Wnum | MW | Maximum number of definable |
| windows | |||
| max_micro_address | maddr | Yd | Maximum value in micro_..._address |
| max_micro_jump | mjump | Ye | Maximum value in parm_..._micro |
| max_pairs | pairs | pa | Maximum number of color-pairs on the |
| screen | |||
| micro_col_size | mcs | Yf | Character step size when in micro mode |
| micro_line_size | mls | Yg | Line step size when in micro mode |
| no_color_video | ncv | NC | Video attributes that can't be used |
| with colors | |||
| number_of_pins | npins | Yh | Number of pins in print-head |
| num_labels | nlab | Nl | Number of labels on screen (start at 1) |
| output_res_char | orc | Yi | Horizontal resolution in units per character |
| output_res_line | orl | Yj | Vertical resolution in units per line |
| output_res_horz_inch | orhi | Yk | Horizontal resolution in units per inch |
| output_res_vert_inch | orvi | Yl | Vertical resolution in units per inch |
| padding_baud_rate | pb | pb | Lowest baud rate where padding needed |
| print_rate | cps | Ym | Print rate in characters per |
| inch | |||
| virtual_terminal | vt | vt | Virtual terminal number (UNIX system) |
| wide_char_size | widcs | Yn | Character step size when in double |
| wide mode | |||
| width_status_line | wsl | ws | Number of columns in status line |
| Cap- | Termcap | ||
|---|---|---|---|
| Variable | name | Code | Description |
| acs_chars | acsc | ac | Graphic charset pairs aAbBcC |
| alt_scancode_esc | scesca | S8 | Alternate escape for scancode emulation |
| (default is for vt100) | |||
| back_tab | cbt | bt | Back tab |
| bell | bel | bl | Audible signal (bell) |
| bit_image_carriage_return | bicr | Yv | Move to beginning of same row (use tparm) |
| bit_image_newline | binel | Zz | Move to next row of the bit image (use tparm) |
| bit_image_repeat | birep | Zy | Repeat bit-image cell #1 #2 times (use tparm) |
| carriage_return | cr | cr | Carriage return |
| change_char_pitch | cpi | ZA | Change number of characters per inch |
| change_line_pitch | lpi | ZB | Change number of lines per inch |
| change_res_horz | chr | ZC | Change horizontal resolution |
| change_res_vert | cvr | ZD | Change vertical resolution |
| change_scroll_region | csr | cs | Change to lines #1 through #2 (vt100) |
| char_padding | rmp | rP | Like ip but when in replace mode |
| char_set_names | csnm | Zy | List of character set names |
| clear_all_tabs | tbc | ct | Clear all tab stops |
| clear_margins | mgc | MC | Clear all margins (top, bottom, |
| and sides) | |||
| clear_screen | clear | cl | Clear screen and home cursor |
| clr_bol | el1 | cb | Clear to beginning of line, inclusive |
| clr_eol | el | ce | Clear to end of line |
| clr_eos | ed | cd | Clear to end of display |
| code_set_init | csin | ci | Init sequence for multiple codesets |
| color_names | colornm | Yw | Give name for color #1 |
| column_address | hpa | ch | Horizontal position absolute |
| command_character | cmdch | CC | Terminal settable cmd character |
| in prototype | |||
| create_window | cwin | CW | Define win #1 to go from #2, #3 to #4, #5 |
| cursor_address | cup | cm | Move to row #1 col #2 |
| cursor_down | cud1 | do | Down one line |
| cursor_home | home | ho | Home cursor (if no cup) |
| cursor_invisible | civis | vi | Make cursor invisible |
| cursor_left | cub1 | le | Move left one space. |
| cursor_mem_address | mrcup | CM | Memory relative cursor addressing |
| cursor_normal | cnorm | ve | Make cursor appear normal |
| (undo vs/vi) | |||
| cursor_right | cuf1 | nd | Non-destructive space (cursor or |
| carriage right) | |||
| cursor_to_ll | ll | ll | Last line, first column (if no cup) |
| cursor_up | cuu1 | up | Upline (cursor up) |
| cursor_visible | cvvis | vs | Make cursor very visible |
| define_bit_image_region | defbi | Yx | Define rectangular bit-image region |
| (use tparm) | |||
| define_char | defc | ZE | Define a character in a character set |
| delete_character | dch1 | dc | Delete character |
| delete_line | dl1 | dl | Delete line |
| device_type | devt | dv | Indicate language/codeset support |
| dial_phone | dial | DI | Dial phone number #1 |
| dis_status_line | dsl | ds | Disable status line |
| display_clock | dclk | DK | Display time-of-day clock |
| display_pc_char | dispc | S1 | Display PC character |
| down_half_line | hd | hd | Half-line down (forward 1/2 linefeed) |
| ena_acs | enacs | eA | Enable alternate character set |
| end_bit_image_region | endbi | Yy | End a bit-image region (use tparm) |
| enter_alt_charset_mode | smacs | as | Start alternate character set |
| enter_am_mode | smam | SA | Turn on automatic margins |
| enter_blink_mode | blink | mb | Turn on blinking |
| enter_bold_mode | bold | md | Turn on bold (extra bright) mode |
| enter_ca_mode | smcup | ti | String to begin programs that use cup |
| enter_delete_mode | smdc | dm | Delete mode (enter) |
| enter_dim_mode | dim | mh | Turn on half-bright mode |
| enter_doublewide_mode | swidm | ZF | Enable double wide printing |
| enter_draft_quality | sdrfq | ZG | Set draft quality print |
| enter_insert_mode | smir | im | Insert mode (enter) |
| enter_italics_mode | sitm | ZH | Enable italics |
| enter_leftward_mode | slm | ZI | Enable leftward carriage motion |
| enter_micro_mode | smicm | ZJ | Enable micro motion capabilities |
| enter_near_letter_quality | snlq | ZK | Set near-letter quality print |
| enter_normal_quality | snrmq | ZL | Set normal quality print |
| enter_pc_charset_mode | smpch | S2 | Enter PC character display mode |
| enter_protected_mode | prot | mp | Turn on protected mode |
| enter_reverse_mode | rev | mr | Turn on reverse video mode |
| enter_scancode_mode | smsc | S4 | Enter PC scancode mode |
| enter_secure_mode | invis | mk | Turn on blank mode |
| (characters invisible) | |||
| enter_shadow_mode | sshm | ZM | Enable shadow printing |
| enter_standout_mode | smso | so | Begin standout mode |
| enter_subscript_mode | ssubm | ZN | Enable subscript printing |
| enter_superscript_mode | ssupm | ZO | Enable superscript printing |
| enter_underline_mode | smul | us | Start underscore mode |
| enter_upward_mode | sum | ZP | Enable upward carriage motion |
| enter_xon_mode | smxon | SX | Turn on xon/xoff handshaking |
| erase_chars | ech | ec | Erase #1 characters |
| exit_alt_charset_mode | rmacs | ae | End alternate character set |
| exit_am_mode | rmam | RA | Turn off automatic margins |
| exit_attribute_mode | sgr0 | me | Turn off all attributes |
| exit_ca_mode | rmcup | te | String to end programs that use cup |
| exit_delete_mode | rmdc | ed | End delete mode |
| exit_doublewide_mode | rwidm | ZQ | Disable double wide printing |
| exit_insert_mode | rmir | ei | End insert mode |
| exit_italics_mode | ritm | ZR | Disable italics |
| exit_leftward_mode | rlm | ZS | Enable rightward (normal) |
| carriage motion | |||
| exit_micro_mode | rmicm | ZT | Disable micro motion capabilities |
| exit_pc_charset_mode | rmpch | S3 | Disable PC character display mode |
| exit_scancode_mode | rmsc | S5 | Disable PC scancode mode |
| exit_shadow_mode | rshm | ZU | Disable shadow printing |
| exit_standout_mode | rmso | se | End standout mode |
| exit_subscript_mode | rsubm | ZV | Disable subscript printing |
| exit_superscript_mode | rsupm | ZW | Disable superscript printing |
| exit_underline_mode | rmul | ue | End underscore mode |
| exit_upward_mode | rum | ZX | Enable downward (normal) |
| carriage motion | |||
| exit_xon_mode | rmxon | RX | Turn off xon/xoff handshaking |
| fixed_pause | pause | PA | Pause for 2-3 seconds |
| flash_hook | hook | fh | Flash the switch hook |
| flash_screen | flash | vb | Visible bell (may not move cursor) |
| form_feed | ff | ff | Hardcopy terminal page eject |
| from_status_line | fsl | fs | Return from status line |
| get_mouse | getm | Gm | Curses should get button events |
| goto_window | wingo | WG | Goto window #1 |
| hangup | hup | HU | Hang-up phone |
| init_1string | is1 | i1 | Terminal or printer initialization string |
| init_2string | is2 | is | Terminal or printer initialization string |
| init_3string | is3 | i3 | Terminal or printer initialization string |
| init_file | if | if | Name of initialization file |
| init_prog | iprog | iP | Path name of program for initialization |
| initialize_color | initc | Ic | Initialize the definition of color |
| initialize_pair | initp | Ip | Initialize color-pair |
| insert_character | ich1 | ic | Insert character |
| insert_line | il1 | al | Add new blank line |
| insert_padding | ip | ip | Insert pad after character inserted |
| keypad_local | rmkx | ke | Out of ``keypad-transmit'' mode |
| keypad_xmit | smkx | ks | Put terminal in ``keypad-transmit'' mode |
| lab_f0 | lf0 | l0 | Labels on function key f0 if not f0 |
| lab_f1 | lf1 | l1 | Labels on function key f1 if not f1 |
| lab_f10 | lf10 | la | Labels on function key f10 if not f10 |
| lab_f2 | lf2 | l2 | Labels on function key f2 if not f2 |
| lab_f3 | lf3 | l3 | Labels on function key f3 if not f3 |
| lab_f4 | lf4 | l4 | Labels on function key f4 if not f4 |
| lab_f5 | lf5 | l5 | Labels on function key f5 if not f5 |
| lab_f6 | lf6 | l6 | Labels on function key f6 if not f6 |
| lab_f7 | lf7 | l7 | Labels on function key f7 if not f7 |
| lab_f8 | lf8 | l8 | Labels on function key f8 if not f8 |
| lab_f9 | lf9 | l9 | Labels on function key f9 if not f9 |
| label_format | fln | Lf | Label format |
| label_off | rmln | LF | Turn off soft labels |
| label_on | smln | LO | Turn on soft labels |
| meta_off | rmm | mo | Turn off ``meta mode'' |
| meta_on | smm | mm | Turn on ``meta mode'' (8th bit) |
| micro_column_address | mhpa | ZY | Like column_address for micro |
| adjustment | |||
| micro_down | mcud1 | ZZ | Like cursor_down for micro adjustment |
| micro_left | mcub1 | Za | Like cursor_left for micro adjustment |
| micro_right | mcuf1 | Zb | Like cursor_right for micro |
| adjustment | |||
| micro_row_address | mvpa | Zc | Like row_address for micro adjustment |
| micro_up | mcuu1 | Zd | Like cursor_up for micro adjustment |
| mouse_info | minfo | Mi | Mouse status information |
| newline | nel | nw | Newline (behaves like cr followed |
| by lf) | |||
| order_of_pins | porder | Ze | Matches software bits to print-head pins |
| orig_colors | oc | oc | Set all color(-pair)s to the original ones |
| orig_pair | op | op | Set default color-pair to the original one |
| pad_char | pad | pc | Pad character (rather than null) |
| parm_dch | dch | DC | Delete #1 chars |
| parm_delete_line | dl | DL | Delete #1 lines |
| parm_down_cursor | cud | DO | Move down #1 lines. |
| parm_down_micro | mcud | Zf | Like parm_down_cursor for micro |
| adjust. | |||
| parm_ich | ich | IC | Insert #1 blank chars |
| parm_index | indn | SF | Scroll forward #1 lines. |
| parm_insert_line | il | AL | Add #1 new blank lines |
| parm_left_cursor | cub | LE | Move cursor left #1 spaces |
| parm_left_micro | mcub | Zg | Like parm_left_cursor for micro |
| adjust. | |||
| parm_right_cursor | cuf | RI | Move right #1 spaces. |
| parm_right_micro | mcuf | Zh | Like parm_right_cursor for micro |
| adjust. | |||
| parm_rindex | rin | SR | Scroll backward #1 lines. |
| parm_up_cursor | cuu | UP | Move cursor up #1 lines. |
| parm_up_micro | mcuu | Zi | Like parm_up_cursor for micro adjust. |
| pc_term_options | pctrm | S6 | PC terminal options |
| pkey_key | pfkey | pk | Prog funct key #1 to type string #2 |
| pkey_local | pfloc | pl | Prog funct key #1 to execute string #2 |
| pkey_plab | pfxl | xl | Prog key #1 to xmit string #2 and show string #3 |
| pkey_xmit | pfx | px | Prog funct key #1 to xmit string #2 |
| plab_norm | pln | pn | Prog label #1 to show string #2 |
| print_screen | mc0 | ps | Print contents of the screen |
| prtr_non | mc5p | pO | Turn on the printer for #1 bytes |
| prtr_off | mc4 | pf | Turn off the printer |
| prtr_on | mc5 | po | Turn on the printer |
| pulse | pulse | PU | Select pulse dialing |
| quick_dial | qdial | QD | Dial phone number #1, without progress detection |
| remove_clock | rmclk | RC | Remove time-of-day clock |
| repeat_char | rep | rp | Repeat char #1 #2 times |
| req_for_input | rfi | RF | Send next input char (for ptys) |
| req_mouse_pos | reqmp | RQ | Request mouse position report |
| reset_1string | rs1 | r1 | Reset terminal completely to sane modes |
| reset_2string | rs2 | r2 | Reset terminal completely to sane modes |
| reset_3string | rs3 | r3 | Reset terminal completely to sane modes |
| reset_file | rf | rf | Name of file containing reset string |
| restore_cursor | rc | rc | Restore cursor to position of last sc |
| row_address | vpa | cv | Vertical position absolute |
| save_cursor | sc | sc | Save cursor position |
| scancode_escape | scesc | S7 | Escape for scancode emulation |
| scroll_forward | ind | sf | Scroll text up |
| scroll_reverse | ri | sr | Scroll text down |
| select_char_set | scs | Zj | Select character set |
| set0_des_seq | s0ds | s0 | Shift into codeset 0 (EUC set 0, ASCII) |
| set1_des_seq | s1ds | s1 | Shift into codeset 1 |
| set2_des_seq | s2ds | s2 | Shift into codeset 2 |
| set3_des_seq | s3ds | s3 | Shift into codeset 3 |
| set_a_background | setab | AB | Set background color using ANSI escape |
| set_a_foreground | setaf | AF | Set foreground color using ANSI escape |
| set_attributes | sgr | sa | Define the video attributes #1-#9 |
| set_background | setb | Sb | Set current background color |
| set_bottom_margin | smgb | Zk | Set bottom margin at current line |
| set_bottom_margin_parm | smgbp | Zl | Set bottom margin at line #1 or #2 |
| lines from bottom | |||
| set_clock | sclk | SC | Set time-of-day clock. |
| set_color_band | setcolor | Yz | Change to ribbon color #1 |
| set_color_pair | scp | sp | Set current color-pair |
| set_foreground | setf | Sf | Set current foreground color1 |
| set_left_margin | smgl | ML | Set left margin at current line |
| set_left_margin_parm | smglp | Zm | Set left (right) margin at column #1 (#2) |
| set_lr_margin | smglr | ML | Sets both left and right margins |
| set_page_length | slines | YZ | Set page length to #1 lines (use tparm) |
| set_pglen_inch | slength | YI | Set page length to #1 hundredths of an inch (use tparm) |
| set_right_margin | smgr | MR | Set right margin at current column |
| set_right_margin_parm | smgrp | Zn | Set right margin at column #1 |
| set_tab | hts | st | Set a tab in all rows, current column |
| set_tb_margin | smgtb | MT | Sets both top and bottom margins |
| set_top_margin | smgt | Zo | Set top margin at current line |
| set_top_margin_parm | smgtp | Zp | Set top (bottom) margin at line #1 (#2) |
| set_window | wind | wi | Current window is lines #1-#2 cols #3-#4 |
| start_bit_image | sbim | Zq | Start printing bit image graphics |
| start_char_set_def | scsd | Zr | Start definition of a character set |
| stop_bit_image | rbim | Zs | End printing bit image graphics |
| stop_char_set_def | rcsd | Zt | End definition of a character set |
| subscript_characters | subcs | Zu | List of ``subscript-able'' characters |
| superscript_characters | supcs | Zv | List of ``superscript-able'' characters |
| tab | ht | ta | Tab to next 8-space hardware tab stop |
| these_cause_cr | docr | Zw | Printing any of these chars causes cr |
| to_status_line | tsl | ts | Go to status line, col #1 |
| tone | tone | TO | Select touch tone dialing |
| underline_char | uc | uc | Underscore one char and move past it |
| up_half_line | hu | hu | Half-line up (reverse 1/2 linefeed) |
| user0 | u0 | u0 | User string 0 |
| user1 | u1 | u1 | User string 1 |
| user2 | u2 | u2 | User string 2 |
| user3 | u3 | u3 | User string 3 |
| user4 | u4 | u4 | User string 4 |
| user5 | u5 | u5 | User string 5 |
| user6 | u6 | u6 | User string 6 |
| user7 | u7 | u7 | User string 7 |
| user8 | u8 | u8 | User string 8 |
| user9 | u9 | u9 | User string 9 |
| wait_tone | wait | WA | Wait for dial tone. |
| xoff_character | xoffc | XF | X-off character |
| xon_character | xonc | XN | X-on character |
| zero_motion | zerom | Zx | No motion for the subsequent character |
| Cap- | Termcap | ||
|---|---|---|---|
| Variable | name | Code | Description |
| key_a1 | ka1 | K1 | KEY_A1, upper left of keypad |
| key_a3 | ka3 | K3 | KEY_A3, upper right of keypad |
| key_b2 | kb2 | K2 | KEY_B2, center of keypad |
| key_backspace | kbs | kb | KEY_BACKSPACE, sent by backspace key |
| key_beg | kbeg | @1 | KEY_BEG, sent by beg(inning) key |
| key_btab | kcbt | kB | KEY_BTAB, sent by back-tab key |
| key_c1 | kc1 | K4 | KEY_C1, lower left of keypad |
| key_c3 | kc3 | K5 | KEY_C3, lower right of keypad |
| key_cancel | kcan | @2 | KEY_CANCEL, sent by cancel key |
| key_catab | ktbc | ka | KEY_CATAB, sent by clear-all-tabs key |
| key_clear | kclr | kC | KEY_CLEAR, sent by clear-screen or |
| erase key | |||
| key_close | kclo | @3 | KEY_CLOSE, sent by close key |
| key_command | kcmd | @4 | KEY_COMMAND, sent by cmd (command) |
| key | |||
| key_copy | kcpy | @5 | KEY_COPY, sent by copy key |
| key_create | kcrt | @6 | KEY_CREATE, sent by create key |
| key_ctab | kctab | kt | KEY_CTAB, sent by clear-tab key |
| key_dc | kdch1 | kD | KEY_DC, sent by delete-character key |
| key_dl | kdl1 | kL | KEY_DL, sent by delete-line key |
| key_down | kcud1 | kd | KEY_DOWN, sent by terminal |
| down-arrow key | |||
| key_eic | krmir | kM | KEY_EIC, sent by rmir or smir in |
| insert mode | |||
| key_end | kend | @7 | KEY_END, sent by end key |
| key_enter | kent | @8 | KEY_ENTER, sent by enter/send key |
| key_eol | kel | kE | KEY_EOL, sent by clear-to-end-of-line |
| key | |||
| key_eos | ked | kS | KEY_EOS, sent by clear-to-end-of-screen |
| key | |||
| key_exit | kext | @9 | KEY_EXIT, sent by exit key |
| key_f0 | kf0 | k0 | KEY_F(0), sent by function key f0 |
| key_f1 | kf1 | k1 | KEY_F(1), sent by function key f1 |
| key_f2 | kf2 | k2 | KEY_F(2), sent by function key f2 |
| key_f3 | kf3 | k3 | KEY_F(3), sent by function key f3 |
| key_f4 | kf4 | k4 | KEY_F(4), sent by function key f4 |
| key_f5 | kf5 | k5 | KEY_F(5), sent by function key f5 |
| key_f6 | kf6 | k6 | KEY_F(6), sent by function key f6 |
| key_f7 | kf7 | k7 | KEY_F(7), sent by function key f7 |
| key_f8 | kf8 | k8 | KEY_F(8), sent by function key f8 |
| key_f9 | kf9 | k9 | KEY_F(9), sent by function key f9 |
| key_f10 | kf10 | k; | KEY_F(10), sent by function key f10 |
| key_f11 | kf11 | F1 | KEY_F(11), sent by function key f11 |
| key_f12 | kf12 | F2 | KEY_F(12), sent by function key f12 |
| key_f13 | kf13 | F3 | KEY_F(13), sent by function key f13 |
| key_f14 | kf14 | F4 | KEY_F(14), sent by function key f14 |
| key_f15 | kf15 | F5 | KEY_F(15), sent by function key f15 |
| key_f16 | kf16 | F6 | KEY_F(16), sent by function key f16 |
| key_f17 | kf17 | F7 | KEY_F(17), sent by function key f17 |
| key_f18 | kf18 | F8 | KEY_F(18), sent by function key f18 |
| key_f19 | kf19 | F9 | KEY_F(19), sent by function key f19 |
| key_f20 | kf20 | FA | KEY_F(20), sent by function key f20 |
| key_f21 | kf21 | FB | KEY_F(21), sent by function key f21 |
| key_f22 | kf22 | FC | KEY_F(22), sent by function key f22 |
| key_f23 | kf23 | FD | KEY_F(23), sent by function key f23 |
| key_f24 | kf24 | FE | KEY_F(24), sent by function key f24 |
| key_f25 | kf25 | FF | KEY_F(25), sent by function key f25 |
| key_f26 | kf26 | FG | KEY_F(26), sent by function key f26 |
| key_f27 | kf27 | FH | KEY_F(27), sent by function key f27 |
| key_f28 | kf28 | FI | KEY_F(28), sent by function key f28 |
| key_f29 | kf29 | FJ | KEY_F(29), sent by function key f29 |
| key_f30 | kf30 | FK | KEY_F(30), sent by function key f30 |
| key_f31 | kf31 | FL | KEY_F(31), sent by function key f31 |
| key_f32 | kf32 | FM | KEY_F(32), sent by function key f32 |
| key_f33 | kf33 | FN | KEY_F(13), sent by function key f13 |
| key_f34 | kf34 | FO | KEY_F(34), sent by function key f34 |
| key_f35 | kf35 | FP | KEY_F(35), sent by function key f35 |
| key_f36 | kf36 | FN | KEY_F(36), sent by function key f36 |
| key_f37 | kf37 | FR | KEY_F(37), sent by function key f37 |
| key_f38 | kf38 | FS | KEY_F(38), sent by function key f38 |
| key_f39 | kf39 | FT | KEY_F(39), sent by function key f39 |
| key_f40 | kf40 | FU | KEY_F(40), sent by function key f40 |
| key_f41 | kf41 | FV | KEY_F(41), sent by function key f41 |
| key_f42 | kf42 | FW | KEY_F(42), sent by function key f42 |
| key_f43 | kf43 | FX | KEY_F(43), sent by function key f43 |
| key_f44 | kf44 | FY | KEY_F(44), sent by function key f44 |
| key_f45 | kf45 | FZ | KEY_F(45), sent by function key f45 |
| key_f46 | kf46 | Fa | KEY_F(46), sent by function key f46 |
| key_f47 | kf47 | Fb | KEY_F(47), sent by function key f47 |
| key_f48 | kf48 | Fc | KEY_F(48), sent by function key f48 |
| key_f49 | kf49 | Fd | KEY_F(49), sent by function key f49 |
| key_f50 | kf50 | Fe | KEY_F(50), sent by function key f50 |
| key_f51 | kf51 | Ff | KEY_F(51), sent by function key f51 |
| key_f52 | kf52 | Fg | KEY_F(52), sent by function key f52 |
| key_f53 | kf53 | Fh | KEY_F(53), sent by function key f53 |
| key_f54 | kf54 | Fi | KEY_F(54), sent by function key f54 |
| key_f55 | kf55 | Fj | KEY_F(55), sent by function key f55 |
| key_f56 | kf56 | Fk | KEY_F(56), sent by function key f56 |
| key_f57 | kf57 | Fl | KEY_F(57), sent by function key f57 |
| key_f58 | kf58 | Fm | KEY_F(58), sent by function key f58 |
| key_f59 | kf59 | Fn | KEY_F(59), sent by function key f59 |
| key_f60 | kf60 | Fo | KEY_F(60), sent by function key f60 |
| key_f61 | kf61 | Fp | KEY_F(61), sent by function key f61 |
| key_f62 | kf62 | Fq | KEY_F(62), sent by function key f62 |
| key_f63 | kf63 | Fr | KEY_F(63), sent by function key f63 |
| key_find | kfnd | @0 | KEY_FIND, sent by find key |
| key_help | khlp | %1 | KEY_HELP, sent by help key |
| key_home | khome | kh | KEY_HOME, sent by home key |
| key_ic | kich1 | kI | KEY_IC, sent by ins-char/enter |
| ins-mode key | |||
| key_il | kil1 | kA | KEY_IL, sent by insert-line key |
| key_left | kcub1 | kl | KEY_LEFT, sent by terminal left-arrow |
| key | |||
| key_ll | kll | kH | KEY_LL, sent by home-down key |
| key_mark | kmrk | %2 | KEY_MARK, sent by mark key |
| key_message | kmsg | %3 | KEY_MESSAGE, sent by message key |
| key_mouse | kmous | Km | Mouse event has occurred |
| key_move | kmov | %4 | KEY_MOVE, sent by move key |
| key_next | knxt | %5 | KEY_NEXT, sent by next-object key |
| key_npage | knp | kN | KEY_NPAGE, sent by next-page key |
| key_open | kopn | %6 | KEY_OPEN, sent by open key |
| key_options | kopt | %7 | KEY_OPTIONS, sent by options key |
| key_ppage | kpp | kP | KEY_PPAGE, sent by previous-page key |
| key_previous | kprv | %8 | KEY_PREVIOUS, sent by previous-object |
| key | |||
| key_print | kprt | %9 | KEY_PRINT, sent by print or copy key |
| key_redo | krdo | %0 | KEY_REDO, sent by redo key |
| key_reference | kref | &1 | KEY_REFERENCE, sent by ref(erence) key |
| key_refresh | krfr | &2 | KEY_REFRESH, sent by refresh key |
| key_replace | krpl | &3 | KEY_REPLACE, sent by replace key |
| key_restart | krst | &4 | KEY_RESTART, sent by restart key |
| key_resume | kres | &5 | KEY_RESUME, sent by resume key |
|
| |||
|
| |||
| key_right | kcuf1 | kr | KEY_RIGHT, sent by terminal |
| right-arrow key | |||
| key_save | ksav | &6 | KEY_SAVE, sent by save key |
| key_sbeg | kBEG | &9 | KEY_SBEG, sent by shifted beginning key |
| key_scancel | kCAN | &0 | KEY_SCANCEL, sent by shifted cancel key |
| key_scommand | kCMD | *1 | KEY_SCOMMAND, sent by shifted |
| command key | |||
| key_scopy | kCPY | *2 | KEY_SCOPY, sent by shifted copy key |
| key_screate | kCRT | *3 | KEY_SCREATE, sent by shifted create key |
| key_sdc | kDC | *4 | KEY_SDC, sent by shifted delete-char key |
| key_sdl | kDL | *5 | KEY_SDL, sent by shifted delete-line key |
| key_select | kslt | *6 | KEY_SELECT, sent by select key |
| key_send | kEND | *7 | KEY_SEND, sent by shifted end key |
| key_seol | kEOL | *8 | KEY_SEOL, sent by shifted clear-line key |
| key_sexit | kEXT | *9 | KEY_SEXIT, sent by shifted exit key |
| key_sf | kind | kF | KEY_SF, sent by scroll-forward/down |
| key | |||
| key_sfind | kFND | *0 | KEY_SFIND, sent by shifted find key |
| key_shelp | kHLP | #1 | KEY_SHELP, sent by shifted help key |
| key_shome | kHOM | #2 | KEY_SHOME, sent by shifted home key |
| key_sic | kIC | #3 | KEY_SIC, sent by shifted input key |
| key_sleft | kLFT | #4 | KEY_SLEFT, sent by shifted left-arrow |
| key | |||
| key_smessage | kMSG | %a | KEY_SMESSAGE, sent by shifted message |
| key | |||
| key_smove | kMOV | %b | KEY_SMOVE, sent by shifted move key |
| key_snext | kNXT | %c | KEY_SNEXT, sent by shifted next key |
| key_soptions | kOPT | %d | KEY_SOPTIONS, sent by shifted options |
| key | |||
| key_sprevious | kPRV | %e | KEY_SPREVIOUS, sent by shifted prev |
| key | |||
| key_sprint | kPRT | %f | KEY_SPRINT, sent by shifted print key |
| key_sr | kri | kR | KEY_SR, sent by scroll-backward/up |
| key | |||
| key_sredo | kRDO | %g | KEY_SREDO, sent by shifted redo key |
| key_sreplace | kRPL | %h | KEY_SREPLACE, sent by shifted replace |
| key | |||
| key_sright | kRIT | %i | KEY_SRIGHT, sent by shifted |
| right-arrow key | |||
| key_srsume | kRES | %j | KEY_SRSUME, sent by shifted resume |
| key | |||
| key_ssave | kSAV | !1 | KEY_SSAVE, sent by shifted save key |
| key_ssuspend | kSPD | !2 | KEY_SSUSPEND, sent by shifted suspend |
| key | |||
| key_stab | khts | kT | KEY_STAB, sent by set-tab key |
| key_sundo | kUND | !3 | KEY_SUNDO, sent by shifted undo key |
| key_suspend | kspd | &7 | KEY_SUSPEND, sent by |
| suspend key | |||
| key_undo | kund | &8 | KEY_UNDO, sent by undo key |
| key_up | kcuu1 | ku | KEY_UP, sent by terminal up-arrow key |
# The following terminfo entries are directly from:
# Wyse Technology
# 3571 North First Street
# San Jose, CA 95134
#
# WYSE
wy30|wyse30|Wyse 30,
acsc=0wa_h[jukslrmqnxqzttuyv]wpxv, am, bel=^G, blink=\EG2, bw,
cbt=\EI, civis=\E`0, clear=\E*$<80>, cnorm=\E`1, cols#80, cr=^M,
cub1=^H, cud1=^J, cuf1=^L, cup=\E=%p1%' '%+%c%p2%' '%+%c, cuu1=^K,
dch1=\EW$<10>, dim=\EGp, dl1=\ER$<1>, dsl=\EF^M,
ed=\Ey$<80>, el=\Et, fsl=^M,
home=^^, hs, ht=^I$<1>, hts=\E1,
.ich1=\EQ, il1=\EE$<2>, ind=^J$<2>, invis=\EG1, ip=$<2>,
is2=\E'\E(\E3\E`9^N^T,
kbs=^H, kcbt=\EI, kcub1=^H, kcud1=^J, kcuf1=^L, kcuu1=^K, kdch1=\EW,
kdl1=\ER, kent=\E7, ked=\EY, kel=\ET, kf1=^A@^M, kf2=^AA^M,
kf3=^AB^M, kf4=^AC^M, kf5=^AD^M, kf6=^AE^M, kf7=^AF^M, kf8=^AG^M,
kHOM=\E{, khome=^^, kich1=\EQ, kil1=\EE, knp=\EK, kpp=\EJ, krpl=\Er,
lh#1, lines#24, ll=^^^K, lw#8,
mc0=\EP, mc4=^T, mc5=^R, mir, nel=^M^J, nlab#8,
pfx=\Ez%p1%'?'%+%c%p2%s\177, pln=\Ez%p1%'/'%+%c%p2%s^M, prot=\EG0\E),
rev=\EG4, ri=\Ej$<3>, rmacs=\EG0\EH^C, rmir=\Er, rmln=\EA11,
rmso=\EG0, rmul=\EG0,
sgr=\EG%'0'%?%p2%p6%|%t%{8}%|%;%?%p1%p3%|%p6%|%t%{4}%|%;%?%p4%t%{2}%|%;%?
%p5%t%{64} %|%;%?%p7%t%{1}%|%;%c%?%p8%t\E)%e\E(%;%?%p9%t\EH^B%e\EH^C%;,
sgr0=\EG0\E(\EH^C, smacs=\EG0\EH^B, smir=\Eq, smln=\EA10, smso=\EG4,
smul=\EG8, tbc=\E0, tsl=\EF, wsl#45, xmc#1, xon,
# The mandatory pause used by flash does not work with
# older versions of terminfo. If you see this effect then
# unset xon and delete the / from the delay.
# i.e. change $<100/> to $<100>
wy30-vb|wyse30-vb|wyse 30 Visible bell,
flash=\E`8$<100/>\E`9, use=wy30,
wy30n|wy30nam|wy30-nam|Wyse 30 with no auto margins,
am@, use=wy30,
#
Boolean capabilities are specified simply by their comma separated Capnames.
Numeric capabilities are followed by the character `#' and then a positive integer value. (Values for numeric capabilities may be specified in decimal, octal, or hexadecimal, using normal C programming language conventions.)
Finally, string-valued capabilities such as el (clear to end of line sequence) are listed by a two- to five-character capname, an `=', and a string ended by the next occurrence of a comma. A delay in milliseconds may appear anywhere in such a capability, preceded by ``$'' and enclosed in angle brackets, as in el=\EK$<3>. Padding characters are supplied by tput. The delay can be any of the following: a number, a number followed by an asterisk, such as 5*, a number followed by a slash, such as 5/, or a number followed by both, such as 5*/. A ``*'' shows that the padding required is proportional to the number of lines affected by the operation, and the amount given is the per-affected-unit padding required. (In the case of insert characters, the factor is still the number of lines affected. This is always 1 unless the device has in and the software uses it.) When a ``*'' is specified, it is sometimes useful to give a delay of the form 3.5 to specify a delay per unit to tenths of milliseconds. (Only one decimal place is allowed.)
A `/' indicates that the padding is mandatory. If a device has xon defined, the padding information is advisory and will only be used for cost estimates or when the device is in raw mode. Mandatory padding will be transmitted regardless of the setting of xon. If padding (whether advisory or mandatory) is specified for bel or flash, however, it will always be used, regardless of whether xon is specified.
terminfo offers notation for encoding special characters. Both \E and \e map to an ESCAPE character, ^x maps to a control x for any appropriate x, and the sequences \n, \l, \r, \t, \b, \f, and \s give a newline, linefeed, return, tab, backspace, formfeed, and space, respectively. Other escapes include: \^ for caret (^); \\ for backslash (\); \, for comma (,); \: for colon (:); and \0 for null. (\0 will actually produce \200, which does not terminate a string but behaves as a null character on most devices, providing CS7 is specified. [See stty(1).] Finally, characters may be given as three octal digits after a backslash (for example, \123).
Sometimes individual capabilities must be commented out.
To do this, put a period before the capability name.
For example, see the second
ind
in the example above.
Note that capabilities are defined in a
left-to-right order and, therefore,
a prior definition will override a later
definition.
If there is a way to move the cursor one position to the left (such as backspace), that capability should be given as cub1. Similarly, sequences to move to the right, up, and down should be given as cuf1, cuu1, and cud1, respectively. These local cursor motions must not alter the text they pass over; for example, you would not normally use ``cuf1=\s'' because the space would erase the character moved over.
A very important point here is that the local cursor motions encoded in terminfo are undefined at the left and top edges of a screen terminal. Programs should never attempt to backspace around the left edge, unless bw is specified, and should never attempt to go up locally off the top. To scroll text up, a program goes to the bottom left corner of the screen and sends the ind (index) string.
To scroll text down, a program goes to the top left corner of the screen and sends the ri (reverse index) string. The strings ind and ri are undefined when not on their respective corners of the screen.
Parameterized versions of the scrolling sequences are indn and rin. These versions have the same semantics as ind and ri, except that they take one parameter and scroll the number of lines specified by that parameter. They are also undefined except at the appropriate edge of the screen.
The am capability tells whether the cursor sticks at the right edge of the screen when text is output, but this does not necessarily apply to a cuf1 from the last column. Backward motion from the left edge of the screen is possible only when bw is specified. In this case, cub1 will move to the right edge of the previous row. If bw is not given, the effect is undefined. This is useful for drawing a box around the edge of the screen, for example. If the device has switch selectable automatic margins, am should be specified in the terminfo source file. In this case, initialization strings should turn on this option, if possible. If the device has a command that moves to the first column of the next line, that command can be given as nel (newline). It does not matter if the command clears the remainder of the current line, so if the device has no cr and lf it may still be possible to craft a working nel out of one or both of them.
These capabilities suffice to describe hardcopy and screen terminals. Thus the AT&T 5320 hardcopy terminal is described as follows:
5320|att5320|AT&T 5320 hardcopy terminal, am, hc, os, cols#132, bel=^G, cr=\r, cub1=\b, cnd1=\n, dch1=\E[P, dl1=\E[M, ind=\n,
while the Lear Siegler ADM-3 is described as
adm3|lsi adm3,
am, bel=^G, clear=^Z, cols#80, cr=^M, cub1=^H,
cud1=^J, ind=^J, lines#24,
The parameter mechanism uses a stack and special % codes to manipulate the stack in the manner of Reverse Polish Notation (postfix). Typically a sequence will push one of the parameters onto the stack and then print it in some format. Often more complex operations are necessary. Operations are in postfix form with the operands in the usual order. That is, to subtract 5 from the first parameter, one would use %p1%{5}%-.
The % encodings have the following meanings:
%? c[1] %t b[1] %e c[2] %t b[2] %e c[3] %t b[3] %e c[4] %t b[4] %e b[5]%;
c[i] are conditions, b[i] are bodies.
If the ``-'' flag is used with ``%[doxXs]'', then a colon (:) must be placed between the ``%'' and the ``-'' to differentiate the flag from the binary ``%-'' operator, for example, ``%:-16.16s''.
Consider the Hewlett-Packard 2645, which, to get to row 3 and column 12, needs to be sent \E&a12c03Y padded for 6 milliseconds. Note that the order of the rows and columns is inverted here, and that the row and column are zero-padded as two digits. Thus its cup capability is:
cup=\E&a%p2%2.2dc%p1%2.2dY$<6>
The Micro-Term ACT-IV needs the current row and column sent preceded by a ^T, with the row and column simply encoded in binary, ``cup=^T%p1%c%p2%c''. Devices that use ``%c'' need to be able to backspace the cursor (cub1), and to move the cursor up one line on the screen (cuu1). This is necessary because it is not always safe to transmit \n, ^D, and \r, as the system may change or discard them. (The library routines dealing with terminfo set tty modes so that tabs are never expanded, so \t is safe to send. This turns out to be essential for the Ann Arbor 4080.)
A final example is the LSI ADM-3a, which uses row and column offset by a blank character, thus ``cup=\E=%p1%'\s'%+%c%p2%'\s'%+%c''. After sending ``\E='', this pushes the first parameter, pushes the ASCII value for a space (32), adds them (pushing the sum on the stack in place of the two previous values), and outputs that value as a character. Then the same is done for the second parameter. More complex arithmetic is possible using the stack.
If the device has row or column absolute-cursor addressing, these can be given as single parameter capabilities hpa (horizontal position absolute) and vpa (vertical position absolute). Sometimes these are shorter than the more general two-parameter sequence (as with the Hewlett-Packard 2645) and can be used in preference to cup. If there are parameterized local motions (for example, move n spaces to the right) these can be given as cud, cub, cuf, and cuu with a single parameter indicating how many spaces to move. These are primarily useful if the device does not have cup, such as the Tektronix 4025.
If the device needs to be in a special mode when running a program that uses these capabilities, the codes to enter and exit this mode can be given as smcup and rmcup. This arises, for example, from terminals, such as the Concept, with more than one page of memory. If the device has only memory relative cursor addressing and not screen relative cursor addressing, a one screen-sized window must be fixed into the device for cursor addressing to work properly. This is also used for the Tektronix 4025, where smcup sets the command character to be the one used by terminfo. If the smcup sequence will not restore the screen after an rmcup sequence is output (to the state prior to outputting rmcup), specify nrrmc.
If the terminal has a settable destructive scrolling region (like the VT100) the command to set this can be described with the csr capability, which takes two parameters: the top and bottom lines of the scrolling region. The cursor position is, alas, undefined after using this command. It is possible to get the effect of insert or delete line using this command -- the sc and rc (save and restore cursor) commands are also useful. Inserting lines at the top or bottom of the screen can also be done using ri or ind on many terminals without a true insert/delete line, and is often faster even on terminals with those features.
To determine whether a terminal has destructive scrolling regions or non-destructive scrolling regions, create a scrolling region in the middle of the screen, place data on the bottom line of the scrolling region, move the cursor to the top line of the scrolling region, and do a reverse index (ri) followed by a delete line (dl1) or index (ind). If the data that was originally on the bottom line of the scrolling region was restored into the scrolling region by the dl1 or ind, then the terminal has non-destructive scrolling regions. Otherwise, it has destructive scrolling regions. Do not specify csr if the terminal has non-destructive scrolling regions, unless ind,