MyWebUniversity.com Home Page
 



OpenSolaris man pages main menu


File Formats                                          terminfo(4)



NAME
     terminfo - terminal and printer capability database

SYNOPSIS
     /usr/share/lib/terminfo/?/*


DESCRIPTION
     The terminfo database 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 speci-
     fying character sequences that  affect  particular  results.
     This  database is often used by screen oriented applications
     such as vi and curses-based programs, as  well  as  by  some
     system  commands such as ls and more. This usage allows them
     to work with a variety of devices  without  changes  to  the
     programs.


     terminfo descriptions are located in the  directory  pointed
     to    by   the   environment   variable   TERMINFO   or   in
     /usr/share/lib/terminfo. terminfo descriptions are generated
     by tic(1M).


     terminfo source files consist of one or more device descrip-
     tions.  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. Each device entry has the following format:

       alias1  alias2  ...  aliasn  fullname,
                capability1, capability2,
                .
                .
                .
                capabilityn,




     The first line, commonly referred to  as  the  header  line,
     must  begin  in  column  one  and  must contain at least two



SunOS 5.11           Last change: 9 Jul 1996                    1






File Formats                                          terminfo(4)



     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  ter-
     minfo  database  and they must conform to 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".  Dev-
     ice  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 par-
     ticular 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  sec-
     tions:

         o    PART 1: DEVICE CAPABILITIES

         o    PART 2: PRINTER CAPABILITIES

  PART 1: DEVICE CAPABILITIES
     Capabilities in terminfo are of three types:  Boolean  capa-
     bilities  (which  show  that a device has or does not have a
     particular feature), numeric  capabilities  (which  quantify
     particular  features  of  a device), and string capabilities
     (which provide sequences that can be used to perform partic-
     ular operations on devices).



SunOS 5.11           Last change: 9 Jul 1996                    2






File Formats                                          terminfo(4)



     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 capabil-
     ity 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 speci-
     fied,  with  the  exception  of  those used for input. Input
     capabilities, listed under the Strings section in  the  fol-
     lowing tables, have names beginning with key. The #i symbol
     in the description field of the following tables  refers  to
     the ith parameter.

  Booleans
       
                                 Cap-   Termcap
       Variable                  name   Code     Description
       

       autoleftmargin          bw     bw       cub1 wraps from column 0 to
                                                 last column
       autorightmargin         am     am       Terminal has automatic margins
       backcolorerase          bce    be       Screen erased with background
                                                 color
       canchange                ccc    cc       Terminal can re-define existing
                                                 color
       ceolstandoutglitch      xhp    xs       Standout not erased by
                                                 overwriting (hp)
       coladdrglitch           xhpa   YA       Only positive motion
                                                 for hpa/mhpa caps
       cpichangesres           cpix   YF       Changing character pitch
                                                 changes resolution
       crcancelsmicromode     crxm   YB       Using cr turns off micro mode
       desttabsmagicsmso      xt     xt       Destructive tabs, magic
                                                 smso char (t1061)
       eatnewlineglitch        xenl   xn       Newline ignored after
                                                 80 columns (Concept)
       eraseoverstrike          eo     eo       Can erase overstrikes with a
                                                 blank
       generictype              gn     gn       Generic line type
                                                 (for example, dialup, switch)



SunOS 5.11           Last change: 9 Jul 1996                    3






File Formats                                          terminfo(4)



       hardcopy                 hc     hc       Hardcopy terminal
       hardcursor               chts   HC       Cursor is hard to see
       hasmetakey              km     km       Has a meta key (shift,
                                                 sets parity bit)
       hasprintwheel           daisy  YC       Printer needs operator
                                                 to change character set
       hasstatusline           hs     hs       Has extra "status line"
       huelightnesssaturation  hls    hl       Terminal uses only HLS
                                                 color notation (Tektronix)
       insertnullglitch        in     in       Insert mode distinguishes nulls
       lpichangesres           lpix   YG       Changing line pitch
                                                 changes resolution
       memoryabove              da     da       Display may be retained
                                                 above the screen
       memorybelow              db     db       Display may be retained
                                                 below the screen
       moveinsertmode          mir    mi       Safe to move while in insert
                                                 mode
       movestandoutmode        msgr   ms       Safe to move in standout modes
       needsxonxoff            nxon   nx       Padding won't work,
                                                 xon/xoff required
       noescctlc               xsb    xb       Beehive (f1=escape, f2=ctrl C)
       nopadchar               npc    NP       Pad character doesn't exist
       nondestscrollregion    ndscr  ND       Scrolling region
                                                 is nondestructive
       nonrevrmcup             nrrmc  NR       smcup does not reverse rmcup
       overstrike               os     os       Terminal overstrikes
                                                 on hard-copy terminal
       prtrsilent               mc5i   5i       Printer won't echo on screen
       rowaddrglitch           xvpa   YD       Only positive motion
                                                 for vpa/mvpa caps
       semiautorightmargin    sam    YE       Printing in last column causes
                                                 cr
       statuslineescok        eslok  es       Escape can be used on
                                                 the status line
       tildeglitch              hz     hz       Hazeltine; can't print tilde (~)
       transparentunderline     ul     ul       Underline character overstrikes
       xonxoff                  xon    xo       Terminal uses xon/xoff
                                                 handshaking



  Numbers
       
                             Cap-    Termcap
       Variable              name    Code     Description
       

       bitimageentwining   bitwin  Yo       Number of passes for each
                                              bit-map row
       bitimagetype        bitype  Yp       Type of bit image device
       buffercapacity       bufsz   Ya       Number of bytes buffered



SunOS 5.11           Last change: 9 Jul 1996                    4






File Formats                                          terminfo(4)



                                              before printing
       buttons               btns    BT       Number of buttons on the mouse
       columns               cols    co       Number of columns in a line
       dothorzspacing      spinh   Yc       Spacing of dots horizontally
                                              in dots per inch
       dotvertspacing      spinv   Yb       Spacing of pins vertically
                                              in pins per inch
       inittabs             it      it       Tabs initially every # spaces
       labelheight          lh      lh       Number of rows in each label
       labelwidth           lw      lw       Number of columns in each label
       lines                 lines   li       Number of lines on a screen or
                                              a page
       linesofmemory       lm      lm       Lines of memory if > lines;
                                              0 means varies
       maxattributes        ma      ma       Maximum combined video attributes
                                              terminal can display
       magiccookieglitch   xmc     sg       Number of blank characters
                                              left by smso or rmso
       maxcolors            colors  Co       Maximum number of colors
                                              on the screen
       maxmicroaddress     maddr   Yd       Maximum value in
                                              micro...address
       maxmicrojump        mjump   Ye       Maximum value in parm...micro
       maxpairs             pairs   pa       Maximum number of
                                              color-pairs on the screen
       maximumwindows       Wnum    MW       Maximum number of definable windows
       microcharsize       mcs     Yf       Character step size when
                                              in micro mode
       microlinesize       mls     Yg       Line step size when in micro mode
       nocolorvideo        ncv     NC       Video attributes that
                                              can't be used with colors
       numlabels            nlab    Nl       Number of labels on screen
       numberofpins        npins   Yh       Number of pins in print-head
       outputreschar       orc     Yi       Horizontal resolution in
                                              units per character
       outputresline       orl     Yj       Vertical resolution in units per
                                              line
       outputreshorzinch  orhi    Yk       Horizontal resolution in
                                              units per inch
       outputresvertinch  orvi    Yl       Vertical resolution in
                                              units per inch
       paddingbaudrate     pb      pb       Lowest baud rate
       printrate            cps     Ym       Print rate in characters per second
                                              where padding needed
       virtualterminal      vt      vt       Virtual terminal number (system)
       widecharsize        widcs   Yn       Character step size when
                                              in double wide mode
       widthstatusline     wsl     ws       Number of columns in status line







SunOS 5.11           Last change: 9 Jul 1996                    5






File Formats                                          terminfo(4)



  Strings
       
                                  Cap-   Termcap
       Variable                   name   Code     Description
       

       acschars                  acsc   ac       Graphic charset pairs aAbBcC
       altscancodeesc           scesa  S8       Alternate escape for
                                                  scancode emulation
                                                  (default is for vt100)
       backtab                   cbt    bt       Back tab
       bell                       bel    bl       Audible signal (bell)
       bitimagecarriagereturn  bicr   Yv       Move to beginning of
                                                  same row (use tparm)
       bitimagenewline          binel  Zz       Move to next row of
                                                  the bit image (use tparm)
       bitimagerepeat           birep  Zy       Repeat bit-image cell
                                                  #1 #2 times (use tparm)
       carriagereturn            cr     cr       Carriage return
       changecharpitch          cpi    ZA       Change number of
                                                  characters per inch
       changelinepitch          lpi    ZB       Change number of lines per inch
       changereshorz            chr    ZC       Change horizontal resolution
       changeresvert            cvr    ZD       Change vertical resolution
       changescrollregion       csr    cs       Change to lines #1
                                                  through #2 (vt100)
       charpadding               rmp    rP       Like ip but when in replace
                                                  mode
       charsetnames             csnm   Zy       List of character set names
       clearalltabs             tbc    ct       Clear all tab stops
       clearmargins              mgc    MC       Clear all margins
                                                  (top, bottom, and sides)
       clearscreen               clear  cl       Clear screen and home cursor
       clrbol                    el1    cb       Clear to beginning of
                                                  line, inclusive
       clreol                    el     ce       Clear to end of line
       clreos                    ed     cd       Clear to end of display
       codesetinit              csin   ci       Init sequence
                                                  for multiple codesets
       colornames                colornm  Yw     Give name for color #1
       columnaddress             hpa    ch       Horizontal position
       commandcharacter          cmdch  C       Terminal settable cmd
                                                  character in prototype
       createwindow              cwin   CW       Define win #1 to go
                                                  from #2,#3to #4,#5
       cursoraddress             cup    cm       Move to row #1 col #2
       cursordown                cud1   do       Down one line
       cursorhome                home   ho       Home cursor (if no cup)
       cursorinvisible           civis  vi       Make cursor invisible
       cursorleft                cub1   le       Move left one space.
       cursormemaddress         mrcup  CM       Memory relative cursor
                                                  addressing



SunOS 5.11           Last change: 9 Jul 1996                    6






File Formats                                          terminfo(4)



       cursornormal              cnorm  ve       Make cursor appear
                                                  normal (undo vs/vi)
       cursorright               cuf1   nd       Non-destructive space
                                                  (cursor or carriage right)
       cursortoll               ll     ll       Last line, first
                                                  column (if no cup)
       cursorup                  cuu1   up       Upline (cursor up)
       cursorvisible             cvvis  vs       Make cursor very visible
       definebitimageregion    defbi  Yx       Define rectangular bit-
                                                  image region (use tparm)
       definechar                defc   ZE       Define a character in
                                                  a character set
       deletecharacter           dch1   dc       Delete character
       deleteline                dl1    dl       Delete line
       devicetype                devt   dv       Indicate language/
                                                  codeset support
       dialphone                 dial   DI       Dial phone number #1
       disstatusline            dsl    ds       Disable status line
       displayclock              dclk   DK       Display time-of-day clock
       displaypcchar            dispc  S1       Display PC character
       downhalfline             hd     hd       Half-line down (forward
                                                  1/2 linefeed)
       enaacs                    enacs  eA       Enable alternate character set
       endbitimageregion       endbi  Yy       End a bit-image region
                                                  (use tparm)
       enteraltcharsetmode     smacs  as       Start alternate character set
       enterammode              smam   SA       Turn on automatic margins
       enterblinkmode           blink  mb       Turn on blinking
       enterboldmode            bold   md       Turn on bold (extra
                                                  bright) mode
       entercamode              smcup  ti       String to begin programs
                                                  that use cup
       enterdeletemode          smdc   dm       Delete mode (enter)
       enterdimmode             dim    mh       Turn on half-bright mode
       enterdoublewidemode      swidm  ZF       Enable double wide printing
       enterdraftquality        sdrfq  ZG       Set draft quality print mode
       enterinsertmode          smir   im       Insert mode (enter)
       enteritalicsmode         sitm   ZH       Enable italics
       enterleftwardmode        slm    ZI       Enable leftward carriage
                                                  motion
       entermicromode           smicm  ZJ       Enable micro motion
                                                  capabilities
       enternearletterquality  snlq   ZK       Set near-letter quality print
       enternormalquality       snrmq  ZL       Set normal quality
       enterpccharsetmode      smpch  S2       Enter PC character display mode
       enterprotectedmode       prot   mp       Turn on protected mode
       enterreversemode         rev    mr       Turn on reverse video mode
       enterscancodemode        smsc   S4       Enter PC scancode mode
       enterscancodemode        smsc   S4       Enter PC scancode mode
       entersecuremode          invis  mk       Turn on blank mode
                                                  (characters invisible)
       entershadowmode          sshm   ZM       Enable shadow printing



SunOS 5.11           Last change: 9 Jul 1996                    7






File Formats                                          terminfo(4)



       enterstandoutmode        smso   so       Begin standout mode
       entersubscriptmode       ssubm  ZN       Enable subscript printing
       entersuperscriptmode     ssupm  ZO       Enable superscript printing
       enterunderlinemode       smul   us       Start underscore mode
       enterupwardmode          sum    ZP       Enable upward carriage motion
                                                  mode
       enterxonmode             smxon  SX       Turn on xon/xoff handshaking
       erasechars                ech    ec       Erase #1 characters
       exitaltcharsetmode      rmacs  ae       End alternate character set
       exitammode               rmam   RA       Turn off automatic margins
       exitattributemode        sgr0   me       Turn off all attributes
       exitcamode               rmcup  te       String to end programs
                                                  that use cup
       exitdeletemode           rmdc   ed       End delete mode
       exitdoublewidemode       rwidm  ZQ       Disable double wide printing
       exitinsertmode           rmir   ei       End insert mode
       exititalicsmode          ritm   ZR       Disable italics
       exitleftwardmode         rlm    ZS       Enable rightward (normal)
                                                  carriage motion
       exitmicromode            rmicm  ZT       Disable micro motion
                                                  capabilities
       exitpccharsetmode       rmpch  S3       Disable PC character
                                                  display mode
       exitscancodemode         rmsc   S5       Disable PC scancode mode
       exitshadowmode           rshm   ZU       Disable shadow printing
       exitstandoutmode         rmso   se       End standout mode
       exitsubscriptmode        rsubm  ZV       Disable subscript printing
       exitsuperscriptmode      rsupm  ZW       Disable superscript printing
       exitunderlinemode        rmul   ue       End underscore mode
       exitupwardmode           rum    ZX       Enable downward (normal)
                                                  carriage motion
       exitxonmode              rmxon  RX       Turn off xon/xoff handshaking
       fixedpause                pause  PA       Pause for 2-3 seconds
       flashhook                 hook   fh       Flash the switch hook
       flashscreen               flash  vb       Visible bell (may
                                                  not move cursor)
       formfeed                  ff     ff       Hardcopy terminal page eject
       fromstatusline           fsl    fs       Return from status line
       getmouse                  getm   Gm       Curses should get button events
       gotowindow                wingo  WG       Go to window #1
       hangup                     hup    HU       Hang-up phone
       init1string               is1    i1       Terminal or printer
                                                  initialization string
       init2string               is2    is       Terminal or printer
                                                  initialization string
       init3string               is3    i3       Terminal or printer
                                                  initialization string
       initfile                  if     if       Name of initialization file
       initprog                  iprog  iP       Path name of program
                                                  for initialization
       initializecolor           initc  Ic       Initialize the
                                                  definition of color



SunOS 5.11           Last change: 9 Jul 1996                    8






File Formats                                          terminfo(4)



       initializepair            initp  Ip       Initialize color-pair
       insertcharacter           ich1   ic       Insert character
       insertline                il1    al       Add new blank line
       insertpadding             ip     ip       Insert pad after
                                                  character inserted



  keyStrings
     The ``key'' strings are sent by specific keys. The ``key''
     descriptions  include  the macro, defined in , for
     the code returned by the curses routine getch when  the  key
     is pressed (see cursgetch(3CURSES)).

       
                               Cap-    Termcap
       Variable                name    Code     Description
       

       keya1                  ka1     K1       KEYA1, upper left of keypad
       keya3                  ka3     K3       KEYA3, upper right of keypad
       keyb2                  kb2     K2       KEYB2, center of keypad
       keybackspace           kbs     kb       KEYBACKSPACE, sent by
                                                backspace key
       keybeg                 kbeg    @1       KEYBEG, sent by beg(inning) key
       keybtab                kcbt    kB       KEYBTAB, sent by back-tab key
       keyc1                  kc1     K4       KEYC1, lower left of keypad
       keyc3                  kc3     K5       KEYC3, lower right of keypad
       keycancel              kcan    @2       KEYCANCEL, sent by cancel key
       keycatab               ktbc    ka       KEYCATAB, sent by
                                                clear-all-tabs key
       keyclear               kclr    kC       KEYCLEAR, sent by
                                                clear-screen or erase key
       keyclose               kclo    @3       KEYCLOSE, sent by close key
       keycommand             kcmd    @4       KEYCOMAND, sent by
                                                cmd (command) key
       keycopy                kcpy    @5       KEYCOPY, sent by copy key
       keycreate              kcrt    @6       KEYCREATE, sent by create key
       keyctab                kctab   kt       KEYCTAB, sent by clear-tab key
       keydc                  kdch1   kD       KEYDC, sent by delete-character
                                                key
       keydl                  kdl1    kL       KEYDL, sent by delete-line key
       keydown                kcud1   kd       KEYDOWN, sent by terminal
                                                down-arrow key
       keyeic                 krmir   kM       KEYEIC, sent by rmir or smir in
                                                insert mode
       keyend                 kend    @7       KEYEND, sent by end key
       keyenter               kent    @8       KEYENTER, sent by enter/send
                                                key
       keyeol                 kel     kE       KEYEOL, sent by
                                                clear-to-end-of-line key
       keyeos                 ked     kS       KEYEOS, sent by



SunOS 5.11           Last change: 9 Jul 1996                    9






File Formats                                          terminfo(4)



                                                clear-to-end-of-screen key
       keyexit                kext    @9       KEYEXIT, sent by exit key
       keyf0                  kf0     k0       KEYF(0), sent by function key f0
       keyf1                  kf1     k1       KEYF(1), sent by function key f1
       keyf2                  kf2     k2       KEYF(2), sent by function key f2
       keyf3                  kf3     k3       KEYF(3), sent by function key f3
       keyfB                  kf4     k4       KEYF(4), sent by function key fB
       keyf5                  kf5     k5       KEYF(5), sent by function key f5
       keyf6                  kf6     k6       KEYF(6), sent by function key f6
       keyf7                  kf7     k7       KEYF(7), sent by function key f7
       keyf8                  kf8     k8       KEYF(8), sent by function key f8
       keyf9                  kf9     k9       KEYF(9), sent by function key f9

       keyf10                 kf10    k;       KEYF(10), sent by function key
                                                f10
       keyf11                 kf11    F1       KEYF(11), sent by function key
                                                f11
       keyf12                 kf12    F2       KEYF(12), sent by function key
                                                f12
       keyf13                 kf13    F3       KEYF(13), sent by function key
                                                f13
       keyf14                 kf14    F4       KEYF(14), sent by function key
                                                f14
       keyf15                 kf15    F5       KEYF(15), sent by function key
                                                f15
       keyf16                 kf16    F6       KEYF(16), sent by function key
                                                f16
       keyf17                 kf17    F7       KEYF(17), sent by function key
                                                f17
       keyf18                 kf18    F8       KEYF(18), sent by function key
                                                f18
       keyf19                 kf19    F9       KEYF(19), sent by function key
                                                f19
       keyf20                 kf20    FA       KEYF(20), sent by function key
                                                f20
       keyf21                 kf21    FB       KEYF(21), sent by function key
                                                f21
       keyf22                 kf22    FC       KEYF(22), sent by function key
                                                f22
       keyf23                 kf23    FD       KEYF(23), sent by function key
                                                f23
       keyf24                 kf24    FE       KEYF(24), sent by function key
                                                f24
       keyf25                 kf25    F       KEYF(25), sent by function key
                                                f25
       keyf26                 kf26    FG       KEYF(26), sent by function key
                                                f26
       keyf27                 kf27    FH       KEYF(27), sent by function key
                                                f27
       keyf28                 kf28    FI       KEYF(28), sent by function key
                                                f28
       keyf29                 kf29    FJ       KEYF(29), sent by function key



SunOS 5.11           Last change: 9 Jul 1996                   10






File Formats                                          terminfo(4)



                                                f29
       keyf30                 kf30    FK       KEYF(30), sent by function key
                                                f30
       keyf31                 kf31    FL       KEYF(31), sent by function key
                                                f31
       keyf32                 kf32    FM       KEYF(32), sent by function key
                                                f32
       keyf33                 kf33    FN       KEYF(13), sent by function key
                                                f13
       keyf34                 kf34    FO       KEYF(34), sent by function key
                                                f34
       keyf35                 kf35    FP       KEYF(35), sent by function key
                                                f35
       keyf36                 kf36    FQ       KEYF(36), sent by function key
                                                f36
       keyf37                 kf37    FR       KEYF(37), sent by function key
                                                f37
       keyf38                 kf38    FS       KEYF(38), sent by function key
                                                f38
       keyf39                 kf39    FT       KEYF(39), sent by function key
                                                f39
       keyfB0                 kf40    FU       KEYF(40), sent by function key
                                                fB0
       keyfB1                 kf41    FV       KEYF(41), sent by function key
                                                fB1
       keyfB2                 kf42    FW       KEYF(42), sent by function key
                                                fB2
       keyfB3                 kf43    FX       KEYF(43), sent by function key
                                                fB3
       keyfB4                 kf44    FY       KEYF(44), sent by function key
                                                fB4
       keyfB5                 kf45    FZ       KEYF(45), sent by function key
                                                fB5
       keyfB6                 kf46    Fa       KEYF(46), sent by function key
                                                fB6
       keyfB7                 kf47    Fb       KEYF(47), sent by function key
                                                fB7
       keyfB8                 kf48    Fc       KEYF(48), sent by function key
                                                fB8
       keyfB9                 kf49    Fd       KEYF(49), sent by function key
                                                fB9
       keyf50                 kf50    Fe       KEYF(50), sent by function key
                                                f50
       keyf51                 kf51    Ff       KEYF(51), sent by function key
                                                f51
       keyf52                 kf52    Fg       KEYF(52), sent by function key
                                                f52
       keyf53                 kf53    Fh       KEYF(53), sent by function key
                                                f53
       keyf54                 kf54    Fi       KEYF(54), sent by function key
                                                f54
       keyf55                 kf55    Fj       KEYF(55), sent by function key



SunOS 5.11           Last change: 9 Jul 1996                   11






File Formats                                          terminfo(4)



                                                f55
       keyf56                 kf56    Fk       KEYF(56), sent by function key
                                                f56
       keyf57                 kf57    Fl       KEYF(57), sent by function key
                                                f57
       keyf58                 kf58    Fm       KEYF(58), sent by function key
                                                f58
       keyf59                 kf59    Fn       KEYF(59), sent by function key
                                                f59
       keyf60                 kf60    Fo       KEYF(60), sent by function key
                                                f60
       keyf61                 kf61    Fp       KEYF(61), sent by function key
                                                f61
       keyf62                 kf62    Fq       KEYF(62), sent by function key
                                                f62
       keyf63                 kf63    Fr       KEYF(63), sent by function key
                                                f63
       keyfind                kfnd    @0       KEYFIND, sent by find key
       keyhelp                khlp    %1       KEYHELP, sent by help key
       keyhome                khome   kh       KEYHOME, sent by home key
       keyic                  kich1   kI       KEYIC, sent by ins-char/enter
                                                ins-mode key
       keyil                  kil1    kA       KEYIL, sent by insert-line key
       keyleft                kcub1   kl       KEYLEFT, sent by
                                                terminal left-arrow key
       keyll                  kll     kH       KEYL, sent by home-down key
       keymark                kmrk    %2       KEYMARK, sent by
       keymessage             kmsg    %3       KEYMESAGE, sent by message key
       keymouse               kmous   Km       0631, Mouse event has occured
       keymove                kmov    %4       KEYMOVE, sent by move key
       keynext                knxt    %5       KEYNEXT, sent by next-object
                                                key
       keynpage               knp     kN       KEYNPAGE, sent by next-page
                                                key
       keyopen                kopn    %6       KEYOPEN, sent by open key
       keyoptions             kopt    %7       KEYOPTIONS, sent by options
                                                key
       keyppage               kpp     kP       KEYPAGE, sent by
                                                previous-page key
       keyprevious            kprv    %8       KEYPREVIOUS, sent by
                                                previous-object key
       keyprint               kprt    %9       KEYPRINT, sent by
                                                print or copy key
       keyredo                krdo    %0       KEYREDO, sent by redo key
       keyreference           kref    &1       KEYREFERENCE, sent by
                                                reference key
       keyrefresh             krfr    &2       KEYREFRESH, sent by
                                                refresh key
       keyreplace             krpl    &3       KEYREPLACE, sent by
                                                replace key
       keyrestart             krst    &4       KEYRESTART, sent by
                                                restart key



SunOS 5.11           Last change: 9 Jul 1996                   12






File Formats                                          terminfo(4)



       keyresume              kres    &5       KEYRESUME, sent by resume key
       keyright               kcuf1   kr       KEYRIGHT, sent by terminal
                                                right-arrow key
       keysave                ksav    &6       KEYSAVE, sent by save key
       keysbeg                kBEG    &9       KEYSBEG, sent by
                                                shifted beginning key
       keyscancel             kCAN    &0       KEYSCANCEL, sent by
                                                shifted cancel key
       keyscommand            kCMD    *1       KEYSCOMAND, sent by
                                                shifted command key
       keyscopy               kCPY    *2       KEYSCOPY, sent by
                                                shifted copy key
       keyscreate             kCRT    *3       KEYSCREATE, sent by
                                                shifted create key
       keysdc                 kDC     *4       KEYSDC, sent by
                                                shifted delete-char key
       keysdl                 kDL     *5       KEYSDL, sent by
                                                shifted delete-line key
       keyselect              kslt    *6       KEYSELECT, sent by
                                                select key
       keysend                kEND    *7       KEYSEND, sent by
                                                shifted end key
       keyseol                kEOL    *8       KEYSEOL, sent by
                                                shifted clear-line key
       keysexit               kEXT    *9       KEYSEXIT, sent by
                                                shifted exit key
       keysf                  kind    kF       KEYSF, sent by
                                                scroll-forward/down key
       keysfind               kFND    *0       KEYSFIND, sent by
                                                shifted find key
       keyshelp               kHLP    #1       KEYSHELP, sent by
                                                shifted help key
       keyshome               kHOM    #2       KEYSHOME, sent by
                                                shifted home key
       keysic                 kIC     #3       KEYSIC, sent by
                                                shifted input key
       keysleft               kLFT    #4       KEYSLEFT, sent by
                                                shifted left-arrow key
       keysmessage            kMSG    %a       KEYSMESAGE, sent by
                                                shifted message key
       keysmove               kMOV    %b       KEYSMOVE, sent by
                                                shifted move key
       keysnext               kNXT    %c       KEYSNEXT, sent by
                                                shifted next key
       keysoptions            kOPT    %d       KEYSOPTIONS, sent by
                                                shifted options key
       keysprevious           kPRV    %e       KEYSPREVIOUS, sent by
                                                shifted prev key
       keysprint              kPRT    %f       KEYSPRINT, sent by
                                                shifted print key
       keysr                  kri     kR       KEYSR, sent by
                                                scroll-backward/up key



SunOS 5.11           Last change: 9 Jul 1996                   13






File Formats                                          terminfo(4)



       keysredo               kRDO    %g       KEYSREDO, sent by
                                                shifted redo key
       keysreplace            kRPL    %h       KEYSREPLACE, sent by
                                                shifted replace key
       keysright              kRIT    %i       KEYSRIGHT, sent by shifted
                                                right-arrow key
       keysrsume              kRES    %j       KEYSRSUME, sent by
                                                shifted resume key
       keyssave               kSAV    !1       KEYSAVE, sent by
                                                shifted save key
       keyssuspend            kSPD    !2       KEYSUSPEND, sent by
                                                shifted suspend key
       keystab                khts    kT       KEYSTAB, sent by
                                                set-tab key
       keysundo               kUND    !3       KEYSUNDO, sent by
                                                shifted undo key
       keysuspend             kspd    &7       KEYSUSPEND, sent by
                                                suspend key
       keyundo                kund    &8       KEYUNDO, sent by undo key
       keyup                  kcuu1   ku       KEYUP, sent by
                                                terminal up-arrow key
       keypadlocal            rmkx    ke       Out of
                                                ``keypad-transmit'' mode
       keypadxmit             smkx    ks       Put terminal in
                                                ``keypad-transmit'' mode
       labf0                  lf0     l0       Labels on function key
                                                f0 if not f0
       labf1                  lf1     l1       Labels on function key
                                                f1 if not f1
       labf2                  lf2     l2       Labels on function key
                                                f2 if not f2
       labf3                  lf3     l3       Labels on function key
                                                f3 if not f3
       labfB                  lfB     l4       Labels on function key
                                                fB if not fB
       labf5                  lf5     l5       Labels on function key
                                                f5 if not f5
       labf6                  lf6     l6       Labels on function key
                                                f6 if not f6
       labf7                  lf7     l7       Labels on function key
                                                f7 if not f7
       labf8                  lf8     l8       Labels on function key
                                                f8 if not f8
       labf9                  lf9     l9       Labels on function key
                                                f9 if not f9
       labf10                 lf10    la       Labels on function key
                                                f10 if not f10
       labelformat            fln     Lf       Label format
       labeloff               rmln    LF       Turn off soft labels
       labelon                smln    LO       Turn on soft labels
       metaoff                rmm     mo       Turn off "meta mode"
       metaon                 smm     mm       Turn on "meta mode" (8th bit)



SunOS 5.11           Last change: 9 Jul 1996                   14






File Formats                                          terminfo(4)



       microcolumnaddress    mhpa    ZY       Like columnaddress
                                                for micro adjustment
       microdown              mcud1   Z       Like cursordown
                                                for micro adjustment
       microleft              mcub1   Za       Like cursorleft
                                                for micro adjustment
       microright             mcuf1   Zb       Like cursorright
                                                for micro adjustment
       microrowaddress       mvpa    Zc       Like rowaddress
                                                for micro adjustment
       microup                mcuu1   Zd       Like cursorup
                                                for micro adjustment
       mouseinfo              minfo   Mi       Mouse status information
       newline                 nel     nw       Newline (behaves like
                                                cr followed by lf)
       orderofpins           porder  Ze       Matches software bits
                                                to print-head pins
       origcolors             oc      oc       Set all color(-pair)s
                                                to the original ones
       origpair               op      op       Set default color-pair
                                                to the original one
       padchar                pad     pc       Pad character (rather than null)
       parmdch                dch     DC       Delete #1 chars
       parmdeleteline        dl      DL       Delete #1 lines
       parmdowncursor        cud     DO       Move down #1 lines
       parmdownmicro         mcud    Zf       Like parmdowncursor
                                                for micro adjust
       parmich                ich     IC       Insert #1 blank chars
       parmindex              indn    SF       Scroll forward #1 lines
       parminsertline        il      AL       Add #1 new blank lines
       parmleftcursor        cub     LE       Move cursor left #1 spaces
       parmleftmicro         mcub    Zg       Like parmleftcursor
                                                for micro adjust
       parmrightcursor       cuf     RI       Move right #1 spaces
       parmrightmicro        mcuf    Zh       Like parmrightcursor
                                                for micro adjust
       parmrindex             rin     SR       Scroll backward #1 lines
       parmupcursor          cuu     UP       Move cursor up #1 lines
       parmupmicro           mcuu    Zi       Like parmupcursor
                                                for micro adjust
       pctermoptions         pctrm   S6       PC terminal options
       pkeykey                pfkey   pk       Prog funct key #1 to
                                                type string #2
       pkeylocal              pfloc   pl       Prog funct key #1 to
                                                execute string #2
       pkeyplab               pfxl    xl       Prog key #1 to xmit
                                                string #2 and show string #3
       pkeyxmit               pfx     px       Prog funct key #1 to
                                                xmit string #2
       plabnorm               pln     pn       Prog label #1 to show
                                                string #2
       printscreen            mc0     ps       Print contents of the screen



SunOS 5.11           Last change: 9 Jul 1996                   15






File Formats                                          terminfo(4)



       prtrnon                mc5p    pO       Turn on the printer for #1 bytes
       prtroff                mc4     pf       Turn off the printer
       prtron                 mc5     po       Turn on the printer
       pulse                   pulse   PU       Select pulse dialing
       quickdial              qdial   QD       Dial phone number #1, without
                                                progress detection
       removeclock            rmclk   RC       Remove time-of-day clock
       repeatchar             rep     rp       Repeat char #1 #2 times
       reqforinput           rfi     RF       Send next input char (for ptys)
       reqmousepos           reqmp   RQ       Request mouse position report
       reset1string           rs1     r1       Reset terminal completely to
                                                sane modes
       reset2string           rs2     r2       Reset terminal completely to
                                                sane modes
       reset3string           rs3     r3       Reset terminal completely to
                                                sane modes
       resetfile              rf      rf       Name of file containing
                                                reset string
       restorecursor          rc      rc       Restore cursor to
                                                position of last sc
       rowaddress             vpa     cv       Vertical position absolute
       savecursor             sc      sc       Save cursor position
       scancodeescape         scesc   S7       Escape for scancode emulation
       scrollforward          ind     sf       Scroll text up
       scrollreverse          ri      sr       Scroll text down
       selectcharset         scs     Zj       Select character set
       set0desseq            s0ds    s0       Shift into codeset 0
                                                (EUC set 0, ASCI)
       set1desseq            s1ds    s1       Shift into codeset 1
       set2desseq            s2ds    s2       Shift into codeset 2
       set3desseq            s3ds    s3       Shift into codeset 3
                                                attributes #1-#6
       setabackground        setab   AB       Set background color
                                                using ANSI escape
       setaforeground        setaf   AF       Set foreground color
                                                using ANSI escape
       setattributes          sgr     sa       Define the video
                                                attributes #1-#9
       setbackground          setb    Sb       Set current background color
       setbottommargin       smgb    Zk       Set bottom margin at
                                                current line
       setbottommarginparm  smgbp   Zl       Set bottom margin at
                                                line #1 or #2
                                                lines from bottom
       setclock               sclk    SC       Set time-of-day clock
       setcolorband          setcolor         YzChange to ribbon color #1
       setcolorpair          scp     sp       Set current color-pair
       setforeground          setf    Sf       Set current foreground color1
       setleftmargin         smgl    ML       Set left margin at current line
       setleftmarginparm    smglp   Zm       Set left (right) margin
                                                at column #1 (#2)
       setlrmargin           smglr   ML       Sets both left and right margins



SunOS 5.11           Last change: 9 Jul 1996                   16






File Formats                                          terminfo(4)



       setpagelength         slines  YZ       Set page length to #1 lines
                                                (use tparm) of an inch
       setrightmargin        smgr    MR       Set right margin at
                                                current column
       setrightmarginparm   smgrp   Zn       Set right margin at column #1
       settab                 hts     st       Set a tab in all rows,
                                                current column
       settbmargin           smgtb   MT       Sets both top and bottom margins
       settopmargin          smgt    Zo       Set top margin at current line
       settopmarginparm     smgtp   Zp       Set top (bottom) margin
                                                at line #1 (#2)
       setwindow              wind    wi       Current window is lines
                                                #1-#2 cols #3-#4
       startbitimage         sbim    Zq       Start printing bit image graphics
       startcharsetdef      scsd    Zr       Start definition of a character
                                                set
       stopbitimage          rbim    Zs       End printing bit image graphics
       stopcharsetdef       rcsd    Zt       End definition of a character set
       subscriptcharacters    subcs   Zu       List of ``subscript-able''
                                                characters
       superscriptcharacters  supcs   Zv       List of ``superscript-able''
                                                characters
       tab                     ht      ta       Tab to next 8-space hardware tab
                                                stop
       thesecausecr          docr    Zw       Printing any of these
                                                chars causes cr
       tostatusline          tsl     ts       Go to status line, col #1
       tone                    tone    TO       Select touch tone dialing
       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
       underlinechar          uc      uc       Underscore one char
                                                and move past it
       uphalfline            hu      hu       Half-line up (reverse
                                                1/2 linefeed)
       waittone               wait    WA       Wait for dial tone
       xoffcharacter          xoffc   XF       X-off character
       xoncharacter           xonc    XN       X-on character
       zeromotion             zerom   Zx       No motion for the
                                                subsequent character



  Sample Entry




SunOS 5.11           Last change: 9 Jul 1996                   17






File Formats                                          terminfo(4)



     The following entry, which describes the AT&T 610  terminal,
     is among the more complex entries in the terminfo file as of
     this writing.

       610610bctAT610att610AT&T610;80column;98key keyboard
          am, eslok, hs, mir, msgr, xenl, xon,
          cols#80, it#8, lh#2, lines#24, lw#8, nlab#8, wsl#80,
          acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{}}~~,
          bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z,
          civis=\E[?25l, clear=\E[H\E[J, cnorm=\E[?25h\E[?12l,
          cr=\r, csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=\b,
          cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC, cuf1=\E[C,
          cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
          cvvis=\E[?12;25h, dch=\E[%p1%dP, dch1=\E[P, dim=\E[2m,
          dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[K, el1=\E[1K,
          flash=\E[?5h$<200>\E[?5l, fsl=\E8, home=\E[H, ht=\t,
          ich=\E[%p1%d@, il=\E[%p1%dL, il1=\E[L, ind=\ED, .ind=\ED$<9>,
          invis=\E[8m,
          is1=\E[8;0  \E[?3;4;5;13;15l\E[13;20l\E[?7h\E[12h\E(B\E)0,
          is2=\E[0m^O, is3=\E(B\E)0, kLFT=\E[\s@, kRIT=\E[\sA,
          kbs=^H, kcbt=\E[Z, kclr=\E[2J, kcub1=\E[D, kcud1=\E[B,
          kcuf1=\E[C, kcuu1=\E[A, kf1=\EOc, kf10=\ENp,
          kf11=\ENq, kf12=\ENr, kf13=\ENs, kf14=\ENt, kf2=\EOd,
          kf3=\EOe, kf4=\EOf, kf5=\EOg, kf6=\EOh, kf7=\EOi,
          kf8=\EOj, kf9=\ENo, khome=\E[H, kind=\E[S, kri=\E[T,
          ll=\E[24H, mc4=\E[?4i, mc5=\E[?5i, nel=\E,
          pfxl=\E[%p1%d;%p2%l%02dq%?%p1%{9}%<%t\s\s\sF%p1%1d\s\s\s\s\s
       \s\s\s\s\s\s%%p2%s,
          pln=\E[%p1%d;0;0;0q%p2%:-16.16s, rc=\E8, rev=\E[7m,
          ri=\EM, rmacs=^O, rmir=\E[4l, rmln=\E[2p, rmso=\E[m,
          rmul=\E[m, rs2=\Ec\E[?3l, sc=\E7,
          sgr=\E[0%?%p6%t;1%%?%p5%t;2%%?%p2%t;4%%?%p4%t;5%
       %?%p3%p1%  %t;7%%?%p7%t;8%m%?%p9%t^N%e^O%,
          sgr0=\E[m^O, smacs=^N, smir=\E[4h, smln=\E[p,
          smso=\E[7m, smul=\E[4m, tsl=\E7\E[25;%i%p1%dx,


  Types of Capabilities in the Sample Entry
     The sample entry shows the formats for the  three  types  of
     terminfo capabilities listed:  Boolean, numeric, and string.
     All capabilities specified in the terminfo source file  must
     be  followed by commas, including the last capability in the
     source file. In  terminfo  source  files,  capabilities  are
     referenced by their capability names (as shown in the previ-
     ous tables).


     Boolean capabilities are specified  simply  by  their  comma
     separated cap names.






SunOS 5.11           Last change: 9 Jul 1996                   18






File Formats                                          terminfo(4)



     Numeric capabilities are followed by the character  `#'  and
     then  a  positive  integer  value. Thus, in the sample, cols
     (which shows the number of columns available on a device) is
     assigned  the value 80 for the AT&T 610. (Values for numeric
     capabilities may be specified in decimal, octal, or  hexade-
     cimal, 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 fol-
     lowed by a slash, such as 5/, or a number followed by  both,
     such  as  5*/. A `*' shows that the padding required is pro-
     portional 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  mil-
     liseconds. (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 regard-
     less 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 con-
     trol 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 actu-
     ally  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).






SunOS 5.11           Last change: 9 Jul 1996                   19






File Formats                                          terminfo(4)



     Sometimes individual capabilities must be commented out.  To
     do  this, put a period before the capability name. For exam-
     ple, 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  defini-
     tion.

  Preparing Descriptions
     The most effective way to prepare a device description is by
     imitating  the  description  of a similar device in terminfo
     and building  up  a  description  gradually,  using  partial
     descriptions  with  vi  to  check  that they are correct. Be
     aware that a very unusual device may expose deficiencies  in
     the  ability of the terminfo file to describe it or the ina-
     bility of vi to work with that device. To test a new  device
     description,  set  the  environment variable TERMINFO to the
     pathname of a directory containing the compiled  description
     you  are working on and programs will look there rather than
     in /usr/share/lib/terminfo. To get the padding  for  insert-
     line  correct  (if  the device manufacturer did not document
     it) a severe test is to comment out xon, edit a  large  file
     at  9600 baud with vi, delete 16 or so lines from the middle
     of the screen, and  then  press  the  u  key  several  times
     quickly.  If  the display is corrupted, more padding is usu-
     ally  needed.  A  similar  test  can  be  used  for  insert-
     character.

  Section 1-1: Basic Capabilities
     The number of columns on each line for the device  is  given
     by  the cols numeric capability. If the device has a screen,
     then the number of lines on the screen is given by the lines
     capability.  If  the device wraps around to the beginning of
     the next line when it reaches  the  right  margin,  then  it
     should have the am capability. If the terminal can clear its
     screen, leaving the cursor in the home position,  then  this
     is  given  by  the  clear string capability. If the terminal
     overstrikes (rather than clearing a position when a  charac-
     ter  is  struck over) then it should have the os capability.
     If the device is a printing  terminal,  with  no  soft  copy
     unit,  specify both hc and os. If there is a way to move the
     cursor to the left edge of the current row, specify this  as
     cr.  (Normally  this will be carriage return, control M.) If
     there is a way to produce an audible signal (such as a  bell
     or  a  beep),  specify it as bel. If, like most devices, the
     device uses the xon-xoff flow-control protocol, specify xon.


     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



SunOS 5.11           Last change: 9 Jul 1996                   20






File Formats                                          terminfo(4)



     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 back-
     space  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  respec-
     tive 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.  Back-
     ward  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 dev-
     ice 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:

       5320att5320AT&T 5320 hardcopy terminal,
          am, hc, os,
          cols#132,



SunOS 5.11           Last change: 9 Jul 1996                   21






File Formats                                          terminfo(4)



          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,



  Section 1-2: Parameterized Strings
     Cursor addressing and other strings requiring parameters are
     described   by   a  parameterized  string  capability,  with
     printf-like escapes (%x) in it. For example, to address  the
     cursor,  the  cup capability is given, using two parameters:
     the row and column to address to. (Rows and columns are num-
     bered  from zero and refer to the physical screen visible to
     the user, not to any unseen memory.)  If  the  terminal  has
     memory  relative cursor addressing, that can be indicated by
     mrcup.


     The parameter mechanism uses a stack and special % codes  to
     manipulate  the  stack in the manner of Reverse Polish Nota-
     tion (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:

     %%

         outputs `%'


     %[:]flags][width[.precision][doxXs]

         as in printf, flags are [-]#] and space


     %c

         print pop gives %c



SunOS 5.11           Last change: 9 Jul 1996                   22






File Formats                                          terminfo(4)



     %p[1-9]

         push ith parm


     %P[a-z]

         set dynamic variable [a-z] to pop


     %g[a-z]

         get dynamic variable [a-z] and push it


     %P[A-Z]

         set static variable [a-z] to pop


     %g[A-Z]

         get static variable [a-z] and push it


     %'c'

         push char constant c


     %{nn}

         push decimal constant nn


     %l

         push strlen(pop)


     %] %- %* %/ %m

         arithmetic  (%m  is  mod):   push(pop  integer2  op  pop
         integer1)


     %& % %^

         bit operations:  push(pop integer2 op pop integer1)






SunOS 5.11           Last change: 9 Jul 1996                   23






File Formats                                          terminfo(4)



     %= %> %<

         logical operations:  push(pop integer2 op pop integer1)


     %A %O

         logical operations:  and, or


     %! %~

         unary operations:  push(op pop)


     %i

         (for ANSI terminals) add 1 to first parm,  if  one  parm
         present,  or  first  two  parms,  if  more than one parm
         present


     %? expr %t thenpart %e elsepart %

         if-then-else, %e elsepart  is  optional;  else-if's  are
         possible  ala  Algol 68: %? 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 condi-
         tions, b(i) are bodies.



     If the ``-'' flag is used with ``%[doxXs]'',  then  a  colon
     (:)  must  be placed between the ``%'' and the ``-'' to dif-
     ferentiate 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 mil-
     liseconds. 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



SunOS 5.11           Last change: 9 Jul 1996                   24






File Formats                                          terminfo(4)



     dealing  with  terminfo set tty modes so that tabs are never
     expanded, so \t is safe to send. This turns out to be essen-
     tial 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 ASCI 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.

  Section 1-3: Cursor Motions
     If the terminal has a fast way to home the cursor  (to  very
     upper left corner of screen) then this can be given as home;
     similarly a fast way  of  getting  to  the  lower  left-hand
     corner  can  be  given as ll; this may involve going up with
     cuu1 from the home position, but a program should  never  do
     this  itself (unless ll does) because it can make no assump-
     tion about the effect of moving up from the  home  position.
     Note  that  the  home  position is the same as addressing to
     (0,0): to the top left corner of the screen, not of  memory.
     (Thus,  the \EH sequence on Hewlett-Packard terminals cannot
     be used for home without losing some of the  other  features
     on the terminal.)


     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 rela-
     tive  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



SunOS 5.11           Last change: 9 Jul 1996                   25






File Formats                                          terminfo(4)



     sequence will not restore the screen after an rmcup sequence
     is  output (to the state prior to outputting rmcup), specify
     nrrmc.

  Section 1-4: Area Clears
     If the terminal can clear from the current position  to  the
     end of the line, leaving the cursor where it is, this should
     be given as el. If the terminal can clear from the beginning
     of  the  line to the current position inclusive, leaving the
     cursor where it is, this should be given as el1. If the ter-
     minal  can clear from the current position to the end of the
     display, then this should be given as ed. ed is only defined
     from  the first column of a line. (Thus, it can be simulated
     by a request to delete a large number of lines, if a true ed
     is not available.)

  Section 1-5: Insert/Delete Line
     If the terminal can open a new blank line  before  the  line
     where  the  cursor  is, this should be given as il1; this is
     done only from the first position of a line. The cursor must
     then  appear  on  the  newly blank line. If the terminal can
     delete the line which the cursor is on, then this should  be
     given  as  dl1; this is done only from the first position on
     the line to be deleted. Versions of il1 and dl1 which take a
     single parameter and insert or delete that many lines can be
     given as il and dl.


     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 posi-
     tion 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)  com-
     mands  are also useful. Inserting lines at the top or bottom
     of the screen can also be done using ri or ind on many  ter-
     minals  without a true insert/delete line, and is often fas-
     ter 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



SunOS 5.11           Last change: 9 Jul 1996                   26






File Formats                                          terminfo(4)



     scrolling  regions,  unless  ind, ri, indn, rin, dl, and dl1
     all simulate destructive scrolling.


     If the terminal has the ability to define a window  as  part
     of  memory, which all commands affect, it should be given as
     the parameterized string wind. The four parameters  are  the
     starting  and  ending  lines  in memory and the starting and
     ending columns in memory, in that order.


     If the terminal can retain display memory above, then the da
     capability  should  be  given;  if  display  memory  can  be
     retained below, then db should be given. These indicate that
     deleting  a  line  or scrolling a full screen may bring non-
     blank lines up from below or that scrolling back with ri may
     bring down non-blank lines.

  Section 1-6: Insert/Delete Character
     There are two basic  kinds  of  intelligent  terminals  with
     respect  to  insert/delete character operations which can be
     described using  terminfo.  The  most  common  insert/delete
     character  operations  affect  only  the  characters  on the
     current line and shift characters off the end  of  the  line
     rigidly.  Other  terminals,  such as the Concept 100 and the
     Perkin Elmer Owl,  make  a  distinction  between  typed  and
     untyped  blanks  on  the  screen, shifting upon an insert or
     delete only to an untyped  blank  on  the  screen  which  is
     either  eliminated,  or  expanded to two untyped blanks. You
     can determine the kind of terminal you have by clearing  the
     screen  and  then  typing  text separated by cursor motions.
     Type ``abc def'' using local  cursor  motions  (not  spaces)
     between the abc and the def. Then position the cursor before
     the abc and put the terminal in insert mode. If typing char-
     acters  causes  the  rest  of  the line to shift rigidly and
     characters to fall off the end, then your terminal does  not
     distinguish between blanks and untyped positions. If the abc
     shifts over to the def which then move together  around  the
     end of the current line and onto the next as you insert, you
     have the second type of terminal, and should give the  capa-
     bility in, which stands for ``insert null.'' While these are
     two logically separate attributes (one line versus multiline
     insert  mode,  and  special  treatment of untyped spaces) we
     have seen no terminals whose insert mode cannot be described
     with the single attribute.


     terminfo can describe both terminals  that  have  an  insert
     mode  and  terminals  which send a simple sequence to open a
     blank position  on  the  current  line.  Give  as  smir  the
     sequence  to get into insert mode. Give as rmir the sequence
     to leave insert mode. Now give as ich1 any  sequence  needed



SunOS 5.11           Last change: 9 Jul 1996                   27






File Formats                                          terminfo(4)



     to be sent just before sending the character to be inserted.
     Most terminals with a true insert mode will not  give  ich1;
     terminals  that  send  a  sequence to open a screen position
     should give it here. (If your terminal has both, insert mode
     is  usually  preferable to ich1. Do not give both unless the
     terminal actually requires both to be used in  combination.)
     If  post-insert  padding is needed, give this as a number of
     milliseconds padding in ip  (a  string  option).  Any  other
     sequence which may need to be sent after an insert of a sin-
     gle character may also be given  in  ip.  If  your  terminal
     needs  both to be placed into an `insert mode' and a special
     code to precede each inserted character, then both smir/rmir
     and  ich1 can be given, and both will be used. The ich capa-
     bility, with one parameter, n, will insert n blanks.


     If padding is necessary between characters typed  while  not
     in  insert  mode, give this as a number of milliseconds pad-
     ding in rmp.


     It is occasionally necessary to move around while in  insert
     mode  to delete characters on the same line (for example, if
     there is a tab after the insertion position). If your termi-
     nal  allows  motion  while  in  insert mode you can give the
     capability mir to speed up inserting in this case.  Omitting
     mir   will   affect  only  speed.  Some  terminals  (notably
     Datamedia's) must not have mir  because  of  the  way  their
     insert mode works.


     Finally, you can specify dch1 to delete a single  character,
     dch  with  one  parameter,  n,  to  delete n characters, and
     delete mode by giving smdc and rmdc to enter and exit delete
     mode  (any  mode the terminal needs to be placed in for dch1
     to work).


     A command to erase n characters (equivalent to outputting  n
     blanks  without  moving the cursor) can be given as ech with
     one parameter.

  Section 1-7: Highlighting, Underlining, and Visible Bells
     Your device may have one or more kinds of display attributes
     that  allow  you  to highlight selected characters when they
     appear on the screen. The  following  display  modes  (shown
     with  the  names  by which they are set) may be available: a
     blinking screen (blink),  bold  or  extra-bright  characters
     (bold),  dim  or  half-bright  characters (dim), blanking or
     invisible text (invis), protected text  (prot),  a  reverse-
     video screen (rev), and an alternate character set (smacs to
     enter this mode and rmacs to exit  it).  (If  a  command  is



SunOS 5.11           Last change: 9 Jul 1996                   28






File Formats                                          terminfo(4)



     necessary before you can enter alternate character set mode,
     give the sequence in enacs or  "enable  alternate-character-
     set"  mode.) Turning on any of these modes singly may or may
     not turn off other modes.


     sgr0 should be used to turn off all video enhancement  capa-
     bilities.   It   should   always  be  specified  because  it
     represents the only way to turn off some capabilities,  such
     as dim or blink.


     You should choose one display method as  standout  mode  and
     use  it  to highlight error messages and other kinds of text
     to which you want  to  draw  attention.  Choose  a  form  of
     display  that  provides  strong contrast but that is easy on
     the eyes. (We recommend reverse-video  plus  half-bright  or
     reverse-video  alone.) The sequences to enter and exit stan-
     dout mode are given as smso and rmso, respectively.  If  the
     code  to  change  into or out of standout mode leaves one or
     even two blank spaces on the screen,  as  the  TVI  912  and
     Teleray  1061  do, then xmc should be given to tell how many
     spaces are left.


     Sequences to begin underlining and end  underlining  can  be
     specified as smul and rmul , respectively. If the device has
     a sequence to underline the current character  and  to  move
     the  cursor  one  space to the right (such as the Micro-Term
     MIME), this sequence can be specified as uc.


     Terminals with the ``magic  cookie''  glitch  (xmc)  deposit
     special   ``cookies''   when   they   receive   mode-setting
     sequences, which affect the display  algorithm  rather  than
     having  extra  bits for each character. Some terminals, such
     as the Hewlett-Packard 2621,  automatically  leave  standout
     mode  when  they  move  to  a  new  line  or  the  cursor is
     addressed. Programs using standout mode should exit standout
     mode  before  moving the cursor or sending a newline, unless
     the msgr capability, asserting that it is safe  to  move  in
     standout mode, is present.


     If the terminal has a way of flashing the screen to indicate
     an  error  quietly  (a  bell  replacement), then this can be
     given as flash; it must not move the cursor.  A  good  flash
     can  be  done by changing the screen into reverse video, pad
     for 200 ms, then return the screen to normal video.






SunOS 5.11           Last change: 9 Jul 1996                   29






File Formats                                          terminfo(4)



     If the cursor needs to be made more visible than normal when
     it  is  not on the bottom line (to make, for example, a non-
     blinking underline into an easier to find block or  blinking
     underline)  give  this  sequence  as cvvis. The boolean chts
     should also be given. If there is a way to make  the  cursor
     completely  invisible,  give  that  as civis. The capability
     cnorm should be given which undoes the effects of either  of
     these modes.


     If your terminal generates underlined  characters  by  using
     the  underline  character (with no special sequences needed)
     even though it does  not  otherwise  overstrike  characters,
     then  you  should  specify the capability ul. For devices on
     which a character overstriking another leaves  both  charac-
     ters  on  the  screen,  specify  the capability os. If over-
     strikes are erasable with a blank, then this should be indi-
     cated by specifying eo.


     If there is a sequence  to  set  arbitrary  combinations  of
     modes,  this should be given as sgr (set attributes), taking
     nine parameters. Each parameter is either 0 or non-zero,  as
     the  corresponding  attribute is on or off. The nine parame-
     ters are, in order:  standout,  underline,  reverse,  blink,
     dim,  bold, blank, protect, alternate character set. Not all
     modes need to be supported by  sgr;  only  those  for  which
     corresponding  separate  attribute  commands exist should be
     supported. For example, let's assume that  the  terminal  in
     question  needs  the  following  escape sequences to turn on
     various modes.



           tparm
         parameter             attribute         escape sequence
     
                                 none                 \E[0m
             p1                standout             \E[0;4;7m
             p2                underline             \E[0;3m
             p3                 reverse              \E[0;4m
             p4                  blink               \E[0;5m
             p5                   dim                \E[0;7m
             p6                  bold               \E[0;3;4m
             p7                  invis               \E[0;8m
             p8                 protect           not available
             p9               altcharset         ^O (off) ^N (on)



     Note that each escape sequence requires  a  0  to  turn  off
     other modes before turning on its own mode.  Also note that,



SunOS 5.11           Last change: 9 Jul 1996                   30






File Formats                                          terminfo(4)



     as suggested above, standout is set up to be the combination
     of  reverse and dim. Also, because this terminal has no bold
     mode, bold is set up  as  the  combination  of  reverse  and
     underline.  In  addition,  to  allow  combinations,  such as
     underline]blink, the sequence to use would be \E[0;3;5m. The
     terminal  doesn't have protect mode, either, but that cannot
     be simulated in any way, so p8 is  ignored.  The  altcharset
     mode  is  different in that it is either ^O or ^N, depending
     on whether it is off or on. If all modes were to  be  turned
     on, the sequence would be \E[0;3;4;5;7;8m^N.


     Now look at when different sequences are output.  For  exam-
     ple,  ;3 is output when either p2 or p6 is true, that is, if
     either underline or bold modes are turned  on.  Writing  out
     the  above  sequences,  along with their dependencies, gives
     the following:



        sequence          when to output      terminfo translation
     
     \E[0              always                 \E[0
     ;3                if p2 or p6            %?%p2%p6%%t;3%
     ;4                if p1 or p3 or p6      %?%p1%p3%%p6%%t;4%
     ;5                if p4                  %?%p4%t;5%
     ;7                if p1 or p5            %?%p1%p5%%t;7%
     ;8                if p7                  %?%p7%t;8%
     m                 always                 m
     ^N or ^O          if p9 ^N, else ^O      %?%p9%t^N%e^O%



     Putting this all together into the sgr sequence gives:


     sgr=\E[0%?%p2%p6%%t;3%%?%p1%p3%%p6%
     %t;4%%?%p5%t;5%%?%p1%p5% %t;7%%?%p7%t;8%m%?%p9%t^N%e^O%,


     Remember that sgr and sgr0 must always be specified.

  Section 1-8: Keypad
     If the device has a keypad that transmits sequences when the
     keys  are  pressed,  this information can also be specified.
     Note that it is not possible to  handle  devices  where  the
     keypad  only  works  in local (this applies, for example, to
     the unshifted Hewlett-Packard 2621 keys). If the keypad  can
     be  set to transmit or not transmit, specify these sequences
     as smkx and rmkx. Otherwise the keypad is assumed to  always
     transmit.




SunOS 5.11           Last change: 9 Jul 1996                   31






File Formats                                          terminfo(4)



     The sequences sent by the left arrow, right arrow, up arrow,
     down  arrow,  and  home  keys  can be given as kcub1, kcuf1,
     kcuu1, kcud1,and khome, respectively. If there are  function
     keys  such  as f0, f1, ..., f63, the sequences they send can
     be specified as kf0, kf1, ..., kf63. If the  first  11  keys
     have  labels  other  than  the  default  f0 through f10, the
     labels can be given  as  lf0,  lf1,  ...,  lf10.  The  codes
     transmitted  by certain other special keys can be given: kll
     (home down), kbs (backspace), ktbc (clear all  tabs),  kctab
     (clear  the  tab stop in this column), kclr (clear screen or
     erase key), kdch1 (delete character),  kdl1  (delete  line),
     krmir  (exit  insert  mode), kel (clear to end of line), ked
     (clear to end of screen), kich1 (insert character  or  enter
     insert mode), kil1 (insert line), knp (next page), kpp (pre-
     vious  page),  kind  (scroll  forward/down),   kri   (scroll
     backward/up), khts (set a tab stop in this column). In addi-
     tion, if the keypad has a 3 by 3 array of keys including the
     four  arrow  keys,  the other five keys can be given as ka1,
     ka3, kb2, kc1, and kc3.  These  keys  are  useful  when  the
     effects of a 3 by 3 directional pad are needed. Further keys
     are defined above in the capabilities list.


     Strings to program function keys can be specified as  pfkey,
     pfloc,  and pfx. A string to program screen labels should be
     specified as pln. Each of these strings  takes  two  parame-
     ters:  a  function key identifier and a string to program it
     with. pfkey causes pressing the given key to be the same  as
     the user typing the given string; pfloc causes the string to
     be executed by the terminal in local mode;  and  pfx  causes
     the  string to be transmitted to the computer. The capabili-
     ties nlab, lw and  lh  define  the  number  of  programmable
     screen  labels and their width and height. If there are com-
     mands to turn the labels on and off, give them in  smln  and
     rmln.  smln  is  normally  output  after  one  or  more  pln
     sequences to make sure that the change becomes visible.

  Section 1-9: Tabs and Initialization
     If the device has hardware tabs, the command to  advance  to
     the  next tab stop can be given as ht (usually control I). A
     ``backtab'' command that moves leftward to the next tab stop
     can  be  given as cbt. By convention, if tty modes show that
     tabs are being expanded by the computer  rather  than  being
     sent  to the device, programs should not use ht or cbt (even
     if they are present) because the user may not have  the  tab
     stops properly set. If the device has hardware tabs that are
     initially set every n spaces when the device is powered  up,
     the  numeric  parameter  it  is given, showing the number of
     spaces the tabs are set to. This is normally  used  by  tput
     init  (see tput(1)) to determine whether to set the mode for
     hardware tab expansion and whether to set the tab stops.  If
     the  device  has  tab stops that can be saved in nonvolatile



SunOS 5.11           Last change: 9 Jul 1996                   32






File Formats                                          terminfo(4)



     memory, the terminfo description can assume  that  they  are
     properly  set.  If  there  are commands to set and clear tab
     stops, they can be given as tbc (clear all  tab  stops)  and
     hts (set a tab stop in the current column of every row).


     Other capabilities include: is1, is2, and  is3,  initializa-
     tion  strings for the device; iprog, the path name of a pro-
     gram to be run to initialize the device; and if, the name of
     a file containing long initialization strings. These strings
     are expected to set the device into  modes  consistent  with
     the  rest  of the terminfo description. They must be sent to
     the device each time the user logs in and be output  in  the
     following  order:  run the program iprog; output is1; output
     is2; set the margins using mgc, smgl and smgr; set the  tabs
     using  tbc  and  hts;  print the file if; and finally output
     is3. This is usually done using the init option of tput.


     Most initialization is done with is2. Special  device  modes
     can  be  set  up  without duplicating strings by putting the
     common sequences in is2 and special cases in  is1  and  is3.
     Sequences  that  do a reset from a totally unknown state can
     be given as rs1, rs2, rf, and rs3, analogous  to  is1,  is2,
     is3, and if. (The method using files, if and rf, is used for
     a few terminals, from /usr/share/lib/tabset/*; however,  the
     recommended  method  is  to use the initialization and reset
     strings.) These strings are output by tput reset,  which  is
     used  when  the  terminal gets into a wedged state. Commands
     are normally placed in rs1, rs2, rs3, and rf  only  if  they
     produce annoying effects on the screen and are not necessary
     when logging in. For example, the command to set a  terminal
     into  80-column  mode  would normally be part of is2, but on
     some terminals it causes an annoying glitch  on  the  screen
     and  is  not normally needed because the terminal is usually
     already in 80-column mode.


     If a more complex sequence is needed to set  the  tabs  than
     can  be  described by using tbc and hts, the sequence can be
     placed in is2 or if.


     Any margin can be cleared with mgc. (For instructions on how
     to  specify commands to set and clear margins, see "Margins"
     below under "PRINTER CAPABILITIES".)

  Section 1-10: Delays
     Certain capabilities control  padding  in  the  tty  driver.
     These  are  primarily needed by hard-copy terminals, and are
     used by tput init to set  tty  modes  appropriately.  Delays
     embedded  in the capabilities cr, ind, cub1, ff, and tab can



SunOS 5.11           Last change: 9 Jul 1996                   33






File Formats                                          terminfo(4)



     be used to set the appropriate delay bits to be set  in  the
     tty driver. If pb (padding baud rate) is given, these values
     can be ignored at baud rates below the value of pb.

  Section 1-11: Status Lines
     If the terminal has an extra ``status  line''  that  is  not
     normally  used  by  software, this fact can be indicated. If
     the status line is viewed as an extra line below the  bottom
     line,  into  which  one can cursor address normally (such as
     the Heathkit h19's 25th line, or the 24th line  of  a  VT100
     which  is set to a 23-line scrolling region), the capability
     hs should be given. Special  strings  that  go  to  a  given
     column  of  the  status line and return from the status line
     can be given as tsl and fsl.  (fsl  must  leave  the  cursor
     position  in the same place it was before tsl. If necessary,
     the sc and rc strings can be included in tsl and fsl to  get
     this  effect.) The capability tsl takes one parameter, which
     is the column number of the status line the cursor is to  be
     moved to.


     If escape sequences and other special commands, such as tab,
     work  while in the status line, the flag eslok can be given.
     A string which turns  off  the  status  line  (or  otherwise
     erases its contents) should be given as dsl. If the terminal
     has commands to save and restore the position of the cursor,
     give  them as sc and rc. The status line is normally assumed
     to be the same width as the rest of the screen, for example,
     cols.  If  the  status  line  is a different width (possibly
     because the terminal does not allow an  entire  line  to  be
     loaded)  the  width,  in  columns, can be indicated with the
     numeric parameter wsl.

  Section 1-12: Line Graphics
     If the device has a line drawing  alternate  character  set,
     the  mapping  of  glyph to character would be given in acsc.
     The definition of this string  is  based  on  the  alternate
     character  set  used  in  the  DEC  VT100 terminal, extended
     slightly with some characters from the AT&T 4410v1 terminal.



             Glyph Name                  vt100] Character
     
     arrow pointing right          ]
     arrow pointing left           ,
     arrow pointing down           .
     solid square block            0
     lantern symbol                I
     arrow pointing up             -
     diamond                       `
     checker board (stipple)       a



SunOS 5.11           Last change: 9 Jul 1996                   34






File Formats                                          terminfo(4)



     degree symbol                 f
     plus/minus                    g
     board of squares              h
     lower right corner            j
     upper right corner            k
     upper left corner             l
     lower left corner             m
     plus                          n
     scan line 1                   o
     horizontal line               q
     scan line 9                   s
     left tee                      t
     right tee                     u
     bottom tee                    v
     top tee                       w
     vertical line                 x
     bullet                        ~



     The best way to describe a new device's line graphics set is
     to add a third column to the above table with the characters
     for the new device that produce the appropriate  glyph  when
     the device is in the alternate character set mode. For exam-
     ple,



         Glyph Name           vt100] Char          New tty Char
     
     upper left corner    l                     R
     lower left corner    m                     F
     upper right corner   k                     T
     lower right corner   j                     G
     horizontal line      q                     ,
     vertical line        x                     .



     Now  write  down  the  characters  left  to  right,  as   in
     ``acsc=lRmFkTjGq\,x.''.


     In addition, terminfo allows you to define multiple  charac-
     ter sets. See Section 2-5 for details.

  Section 1-13: Color Manipulation
     Let us define two methods of color manipulation:   the  Tek-
     tronix method and the HP method. The Tektronix method uses a
     set of N predefined colors (usually 8) from which a user can
     select  "current"  foreground  and background colors. Thus a
     terminal can support up to N colors mixed  into  N*N  color-



SunOS 5.11           Last change: 9 Jul 1996                   35






File Formats                                          terminfo(4)



     pairs  to  be displayed on the screen at the same time. When
     using an HP method the user  cannot  define  the  foreground
     independently of the background, or vice-versa. Instead, the
     user must define an entire  color-pair  at  once.  Up  to  M
     color-pairs,  made from 2*M different colors, can be defined
     this way. Most existing color terminals  belong  to  one  of
     these two classes of terminals.


     The numeric variables colors and pairs define the number  of
     colors  and  color-pairs that can be displayed on the screen
     at the same time. If a terminal can change the definition of
     a  color  (for  example,  the Tektronix 4100 and 4200 series
     terminals), this should be specified with  ccc  (can  change
     color).  To change the definition of a color (Tektronix 4200
     method), use initc  (initialize  color).  It  requires  four
     arguments:   color  number  (ranging from 0 to colors-1) and
     three RGB (red, green, and blue) values or three HLS  colors
     (Hue,  Lightness,  Saturation). Ranges of RGB and HLS values
     are terminal dependent.


     Tektronix 4100 series terminals only use HLS color notation.
     For such terminals (or dual-mode terminals to be operated in
     HLS mode) one must define a boolean variable hls; that would
     instruct  the  curses  initcolor routine to convert its RGB
     arguments to HLS before sending them to  the  terminal.  The
     last  three  arguments to the initc string would then be HLS
     values.


     If a terminal can change the definitions of colors, but uses
     a  color  notation  different from RGB and HLS, a mapping to
     either RGB or HLS must be developed.


     To set current foreground or background to  a  given  color,
     use  setaf  (set  ANSI foreground) and setab (set ANSI back-
     ground). They require one  parameter:   the  number  of  the
     color.  To  initialize  a  color-pair (HP method), use initp
     (initialize pair). It requires seven parameters:  the number
     of  a  color-pair  (range=0 to pairs-1), and six RGB values:
     three for the foreground followed by  three  for  the  back-
     ground.  (Each  of  these  groups  of three should be in the
     order RGB.) When initc or initp are used, RGB or  HLS  argu-
     ments  should  be  in  the order "red, green, blue" or "hue,
     lightness, saturation"), respectively. To make a  color-pair
     current,  use  scp (set color-pair). It takes one parameter,
     the number of a color-pair.






SunOS 5.11           Last change: 9 Jul 1996                   36






File Formats                                          terminfo(4)



     Some terminals (for example, most color  terminal  emulators
     for  PCs)  erase areas of the screen with current background
     color. In such cases, bce (background color erase) should be
     defined. The variable op (original pair) contains a sequence
     for setting the foreground and the background colors to what
     they were at the terminal start-up time. Similarly, oc (ori-
     ginal colors) contains a control sequence  for  setting  all
     colors (for the Tektronix method) or color-pairs (for the HP
     method) to the values they  had  at  the  terminal  start-up
     time.


     Some color terminals substitute color for video  attributes.
     Such  video  attributes  should not be combined with colors.
     Information about these video attributes  should  be  packed
     into  the  ncv (no color video) variable. There is a one-to-
     one correspondence between the nine least  significant  bits
     of  that  variable  and  the video attributes. The following
     table depicts this correspondence.



         Attribute           Bit Position         Decimal Value
     
     ASTANDOUT           0                     1
     AUNDERLINE          1                     2
     AREVERSE            2                     4
     ABLINK              3                     8
     ADIM                4                     16
     ABOLD               5                     32
     AINVIS              6                     64
     APROTECT            7                     128
     ALTCHARSET         8                     256



     When a particular video attribute should not  be  used  with
     colors, the corresponding ncv bit should be set to 1; other-
     wise it should be set to zero. To determine the  information
     to  pack  into  the  ncv variable, you must add together the
     decimal values corresponding to those attributes that cannot
     coexist  with  colors.  For  example,  if  the terminal uses
     colors to simulate reverse video (bit number 2  and  decimal
     value  4)  and bold (bit number 5 and decimal value 32), the
     resulting value for ncv will be 36 (4 ] 32).

  Section 1-14: Miscellaneous
     If the terminal requires other than a null (zero)  character
     as  a  pad,  then  this  can be given as pad. Only the first
     character of the pad string is used. If  the  terminal  does
     not have a pad character, specify npc.




SunOS 5.11           Last change: 9 Jul 1996                   37






File Formats                                          terminfo(4)



     If the terminal can move up or down half a line, this can be
     indicated  with  hu  (half-line up) and hd (half-line down).
     This is primarily useful for superscripts and subscripts  on
     hardcopy  terminals. If a hardcopy terminal can eject to the
     next page (form feed), give this as ff (usually control L).


     If there is a command to repeat a given  character  a  given
     number of times (to save time transmitting a large number of
     identical  characters)  this  can  be  indicated  with   the
     parameterized string rep. The first parameter is the charac-
     ter to be repeated and the second is the number of times  to
     repeat  it. Thus, tparm(repeatchar, 'x', 10) is the same as
     xxxxxxxxxx.


     If the terminal has a settable command  character,  such  as
     the Tektronix 4025, this can be indicated with cmdch. A pro-
     totype command character is chosen  which  is  used  in  all
     capabilities.  This character is given in the cmdch capabil-
     ity to identify it. The following convention is supported on
     some  systems:  If  the  environment variable C exists, all
     occurrences of the prototype character are replaced with the
     character in C.


     Terminal descriptions that do not represent a specific  kind
     of  known  terminal, such as switch, dialup, patch, and net-
     work, should include the gn  (generic)  capability  so  that
     programs  can  complain that they do not know how to talk to
     the terminal. (This capability does  not  apply  to  virtual
     terminal  descriptions  for  which  the escape sequences are
     known.) If the terminal is one of  those  supported  by  the
     system virtual terminal protocol, the terminal number can be
     given as vt. A line-turn-around sequence to  be  transmitted
     before doing reads should be specified in rfi.


     If the device uses xon/xoff handshaking  for  flow  control,
     give  xon.  Padding  information should still be included so
     that routines can make better  decisions  about  costs,  but
     actual  pad characters will not be transmitted. Sequences to
     turn on and off xon/xoff handshaking may be given  in  smxon
     and rmxon. If the characters used for handshaking are not ^S
     and ^Q, they may be specified with xonc and xoffc.


     If the terminal has a ``meta key'' which  acts  as  a  shift
     key,  setting the 8th bit of any character transmitted, this
     fact can be indicated  with  km.  Otherwise,  software  will
     assume  that  the  8th  bit is parity and it will usually be
     cleared. If strings exist to turn this ``meta mode'' on  and



SunOS 5.11           Last change: 9 Jul 1996                   38






File Formats                                          terminfo(4)



     off, they can be given as smm and rmm.


     If the terminal has more lines of memory than  will  fit  on
     the  screen  at  once,  the number of lines of memory can be
     indicated with lm. A value of lm#0 indicates that the number
     of  lines  is not fixed, but that there is still more memory
     than fits on the screen.


     Media copy strings which control an auxiliary  printer  con-
     nected  to  the terminal can be given as mc0: print the con-
     tents of the screen, mc4: turn off  the  printer,  and  mc5:
     turn  on  the printer. When the printer is on, all text sent
     to the terminal will be sent to the  printer.  A  variation,
     mc5p,  takes one parameter, and leaves the printer on for as
     many characters as the value of the  parameter,  then  turns
     the printer off. The parameter should not exceed 255. If the
     text is not  displayed  on  the  terminal  screen  when  the
     printer  is  on,  specify  mc5i  (silent printer). All text,
     including mc4, is transparently passed to the printer  while
     an mc5p is in effect.

  Section 1-15: Special Cases
     The working model used by terminfo fits most terminals  rea-
     sonably  well.  However,  some  terminals  do not completely
     match that model, requiring  special  support  by  terminfo.
     These  are  not meant to be construed as deficiencies in the
     terminals; they are just  differences  between  the  working
     model  and  the actual hardware. They may be unusual devices
     or, for some reason, do not have all  the  features  of  the
     terminfo model implemented.


     Terminals that cannot display tilde (~) characters, such  as
     certain Hazeltine terminals, should indicate hz.


     Terminals that ignore a linefeed  immediately  after  an  am
     wrap,  such  as the Concept 100, should indicate xenl. Those
     terminals whose cursor  remains  on  the  right-most  column
     until another character has been received, rather than wrap-
     ping immediately upon receiving  the  right-most  character,
     such as the VT100, should also indicate xenl.


     If el is required to get rid of standout (instead of writing
     normal text on top of it), xhp should be given.


     Those Teleray terminals whose tabs turn all characters moved
     over  to blanks, should indicate xt (destructive tabs). This



SunOS 5.11           Last change: 9 Jul 1996                   39






File Formats                                          terminfo(4)



     capability is also taken to mean that it is not possible  to
     position the cursor on top of a ``magic cookie.'' Therefore,
     to erase standout mode, it is  necessary,  instead,  to  use
     delete and insert line.


     Those Beehive Superbee terminals which do not  transmit  the
     escape or control-C characters, should specify xsb, indicat-
     ing that the f1 key is to be used for escape and the f2  key
     for control C.

  Section 1-16: Similar Terminals
     If there are two very similar terminals, one can be  defined
     as  being  just  like the other with certain exceptions. The
     string capability use can be given  with  the  name  of  the
     similar terminal. The capabilities given before use override
     those in the terminal type invoked by use. A capability  can
     be  canceled  by  placing  xx@ to the left of the capability
     definition, where xx is the  capability.  For  example,  the
     entry

       att4424-2Teletype4424 in display function group ii,
       rev@, sgr@, smul@, use=att4424,




     defines an AT&T4424 terminal that does  not  have  the  rev,
     sgr,  and  smul capabilities, and hence cannot do highlight-
     ing. This is useful for different modes for a  terminal,  or
     for different user preferences. More than one use capability
     may be given.

  PART 2: PRINTER CAPABILITIES
     The terminfo database allows you to define  capabilities  of
     printers as well as terminals. To find out what capabilities
     are available for printers as well as for terminals, see the
     two lists under "DEVICE CAPABILITIES" that list capabilities
     by variable and by capability name.

  Section 2-1: Rounding Values
     Because parameterized string  capabilities  work  only  with
     integer  values, we recommend that terminfo designers create
     strings that expect numeric values that have  been  rounded.
     Application  designers  should  note  this and should always
     round values to the nearest integer before using them with a
     parameterized string capability.

  Section 2-2: Printer Resolution
     A printer's resolution is defined to be the smallest spacing
     of  characters  it  can  achieve.  In  general printers have
     independent resolution horizontally and vertically. Thus the



SunOS 5.11           Last change: 9 Jul 1996                   40






File Formats                                          terminfo(4)



     vertical  resolution  of  a  printer  can  be  determined by
     measuring the smallest achievable distance between  consecu-
     tive printing baselines, while the horizontal resolution can
     be determined by measuring the smallest achievable  distance
     between  the left-most edges of consecutive printed, identi-
     cal, characters.


     All printers are assumed to be capable of  printing  with  a
     uniform  horizontal  and  vertical  resolution.  The view of
     printing that terminfo currently presents is one of printing
     inside a uniform matrix: All characters are printed at fixed
     positions relative to each ``cell'' in the matrix;  further-
     more, each cell has the same size given by the smallest hor-
     izontal and vertical step sizes dictated by the  resolution.
     (The cell size can be changed as will be seen later.)


     Many printers  are  capable  of  ``proportional  printing,''
     where  the  horizontal  spacing  depends  on the size of the
     character last printed. terminfo does not make use  of  this
     capability,  although  it  does  provide  enough  capability
     definitions to allow an application to simulate proportional
     printing.


     A printer must not only be able to print characters as close
     together as the horizontal and vertical resolutions suggest,
     but also of ``moving'' to a position an integral multiple of
     the  smallest  distance  away from a previous position. Thus
     printed characters can be spaced apart a distance that is an
     integral multiple of the smallest distance, up to the length
     or width of a single page.


     Some printers can have different  resolutions  depending  on
     different  ``modes.''  In ``normal mode,'' the existing ter-
     minfo capabilities are assumed to work on columns and lines,
     just  like  a  video terminal. Thus the old lines capability
     would give the length of a page in lines, and the cols capa-
     bility would give the width of a page in columns. In ``micro
     mode,'' many terminfo capabilities  work  on  increments  of
     lines  and columns. With some printers the micro mode may be
     concomitant with normal mode, so that all  the  capabilities
     work at the same time.

  Section 2-3: Specifying Printer Resolution
     The printing resolution of a printer  is  given  in  several
     ways.  Each  specifies the resolution as the number of smal-
     lest steps per distance:

          Specification of Printer Resolution



SunOS 5.11           Last change: 9 Jul 1996                   41






File Formats                                          terminfo(4)



           Characteristic Number of Smallest Steps

            orhi    Steps per inch horizontally
            orvi    Steps per inch vertically
            orc     Steps per column
            orl     Steps per line




     When printing in normal mode, each character printed  causes
     movement  to  the  next  column,  except  in  special  cases
     described later; the distance moved is the same as the  per-
     column resolution. Some printers cause an automatic movement
     to the next line when a character is printed in  the  right-
     most  position; the distance moved vertically is the same as
     the per-line resolution. When printing in micro mode,  these
     distances  can  be  different,  and  may  be  zero  for some
     printers.

           Specification of Printer Resolution
            Automatic Motion after Printing

            Normal Mode:

            orc     Steps moved horizontally
            orl     Steps moved vertically

            Micro Mode:

            mcs     Steps moved horizontally
            mls     Steps moved vertically




     Some printers are capable of printing wide  characters.  The
     distance  moved  when  a wide character is printed in normal
     mode may be different from when a regular width character is
     printed. The distance moved when a wide character is printed
     in micro mode may also be  different  from  when  a  regular
     character  is printed in micro mode, but the differences are
     assumed to be related: If the distance moved for  a  regular
     character  is  the same whether in normal mode or micro mode
     (mcs=orc), then the distance moved for a wide  character  is
     also  the  same  whether  in normal mode or micro mode. This
     doesn't mean the normal character  distance  is  necessarily
     the  same as the wide character distance, just that the dis-
     tances don't change with a change in normal to  micro  mode.
     However,  if  the  distance moved for a regular character is
     different in micro mode from the distance  moved  in  normal
     mode (mcs
OpenSolaris man pages main menu

Contact us      |       About us      |       Term of use      |       Copyright © 2000-2010 MyWebUniversity.com ™