tset(1B)




NAME

     tset, reset - establish or restore terminal characteristics


SYNOPSIS

     tset [-InQrs] [-ec]  [-kc]  [  -m  [  port-ID  [baudrate]  :
     type...]] [type]

     reset [-] [-ec] [-I] [-kc] [-n] [-Q] [-r] [-s] [ -m [indent]
     [ test  baudrate] :  type...] [type]


DESCRIPTION

     The tset utility sets up your terminal, typically  when  you
     first  log in. It does terminal dependent processing such as
     setting erase and  kill  characters,  setting  or  resetting
     delays, sending any sequences needed to properly initialized
     the terminal, and the like. tset first determines  the  type
     of  terminal  involved,  and then does necessary initializa-
     tions and mode settings. If a port is not wired  permanently
     to  a  specific  terminal  (not  hardwired)  it  is given an
     appropriate generic identifier such as dialup.

     reset clears the terminal settings by  turning  off   CBREAK
     and   RAW modes, output delays and parity checking, turns on
     NEWLINE translation, echo and TAB  expansion,  and  restores
     undefined  special  characters  to their default state.   It
     then sets the modes as usual, based  on  the  terminal  type
     (which  will  probably  override  some  of  the  above). See
     stty(1) for more information. All arguments to tset  may  be
     used  with  reset. reset also uses  rs= and rf= to reset the
     initialization string and file. This is useful after a  pro-
     gram dies and leaves the terminal in a funny state. Often in
     this situation, characters will not echo as you  type  them.
     You  may  have  to type LINEFEED reset LINEFEED since RETURN
     may not work.

     When no arguments are specified,  tset  reads  the  terminal
     type  from  the TERM environment variable and re-initializes
     the terminal, and performs initialization of mode,  environ-
     ment and other options at login time to determine the termi-
     nal type and set up terminal modes.

     When used in a startup script (.profile for sh(1)  users  or
     .login for csh(1) users) it is desirable to give information
     about the type of terminal you will  usually  use  on  ports
     that  are  not hardwired. Any of the alternate generic names
     given in the file  /etc/termcap  are  possible  identifiers.
     Refer  to  the  -m  option below for more information. If no
     mapping applies and a final type option, not preceded  by  a
     -m, is given on the command line then that type is used.

     It is usually desirable to  return  the  terminal  type,  as
     finally  determined  by  tset,  and  information  about  the
     terminal's capabilities, to a shell's environment. This  can
     be done using the -, -s, or -S options.

     For the Bourne shell, put  this  command  in  your  .profile
     file:

     eval `tset -s options...`

     or using the C shell, put  these  commands  in  your  .login
     file:

     set noglob
     eval `tset -s options...`
     unset noglob

     With the C shell, it is also convenient to make an alias  in
     your .cshrc file:

     alias ts 'eval `tset -s \!*`'

     This also allows the command:

     ts 2621

     to be invoked at any time to set the terminal  and  environ-
     ment.  It is not possible to get this aliasing effect with a
     Bourne shell script, because shell scripts  cannot  set  the
     environment  of  their  parent.  If  a process could set its
     parent's environment, none of this nonsense would be  neces-
     sary in the first place.

     Once the terminal type is  known,  tset  sets  the  terminal
     driver  mode.  This normally involves sending an initializa-
     tion sequence to the terminal, setting the single  character
     erase (and optionally the line-kill (full line erase)) char-
     acters, and setting special character delays. TAB  and  NEW-
     LINE  expansion  are  turned  off during transmission of the
     terminal initialization sequence.

     On terminals that can backspace but not overstrike (such  as
     a CRT), and when the erase character is `#', the erase char-
     acter is changed as if -e had been used.


OPTIONS

     -     The name of the terminal finally decided upon is  out-
           put  on  the  standard  output. This is intended to be
           captured by the shell and placed in the TERM  environ-
           ment variable.

     -ec   Set the erase character to be the named character c on
           all  terminals.  Default  is  the BACKSPACE key on the
           keyboard, usually ^H (CTRL-H).  The  character  c  can
           either   be  typed  directly,  or  entered  using  the
           circumflex-character notation used here.

     -ic   Set the interrupt character to be the named  character
           c  on all terminals. Default is ^C (CTRL-C). The char-
           acter c can either be typed directly, or entered using
           the circumflex-character notation used here.

     -I    Suppress transmitting terminal-initialization strings.

     -kc   Set the line kill character to be the named  character
           c  on  all terminals. Default is ^U (CTRL-U). The kill
           character is left alone if -k is not  specified.  Con-
           trol  characters  can  be  specified  by prefixing the
           alphabetical character with a circumflex (as in  CTRL-
           U)  instead of entering the actual control key itself.
           This allows you  to  specify  control  keys  that  are
           currently assigned.

     -n    Specify that the new tty driver modes should  be  ini-
           tialized  for  this  terminal.  Probably useless since
           stty new is the default.

     -Q    Suppress printing the `Erase set to' and `Kill set to'
           messages.

     -r    In addition to other  actions,  reports  the  terminal
           type.

     -s    Output commands to set and export TERM.  This  can  be
           used with

           set noglob
           eval `tset -s ...`
           unset noglob

           to bring the terminal information  into  the  environ-
           ment.  Doing  so makes programs such as vi(1) start up
           faster. If the SHELL environment  variable  ends  with
           csh,  C  shell  commands  are output, otherwise Bourne
           shell commands are output.

     -m [ port-ID [ baudrate ] : type ] ...
           Specify (map) a terminal type when connected to a gen-
           eric  port (such as dialup or plugboard) identified by
           port-ID. The baudrate argument can be  used  to  check
           the  baudrate  of  the  port and set the terminal type
           accordingly.  The target rate is prefixed by any  com-
           bination  of  the  following  operators to specify the
           conditions under which the mapping is made:

     >     Greater than

     @     Equals or ``at''

     <     Less than

     !     It is not the case that (negates the above operators)

     ?     Prompt for the  terminal  type.   If  no  response  is
           given, then type is selected by default.

     In the following example, the terminal type is set to  adm3a
     if  the port is a dialup with a speed of greater than 300 or
     to dw2 if the port is a dialup at 300 baud or less.  In  the
     third  case,  the  question mark preceding the terminal type
     indicates that the user is to verify the  type  desired.   A
     NULL response indicates that the named type is correct. Oth-
     erwise, the user's response is taken to be the type desired.

     tset -m 'dialup>300:adm3a' -m 'dialup:dw2' -m 'plugboard:?adm3a'

     To prevent  interpretation  as  metacharacters,  the  entire
     argument  to  -m should be enclosed in single quotes.   When
     using the C shell, exclamation points should be preceded  by
     a backslash (\).


EXAMPLES

     These examples all use the `-' option.   A  typical  use  of
     tset  in  a  .profile  or .login will also use the -e and -k
     options, and often the -n  or  -Q  options  as  well.  These
     options have been omitted here to keep the examples short.

     Example 1: Selecting a terminal

     To select a 2621, you might put the  following  sequence  of
     commands  in  your .login file (or .profile for Bourne shell
     users).

     set noglob
     eval `tset -s 2621`
     unset noglob

     If you want to make the selection based  only  on  the  baud
     rate, you might use the following:

     set noglob
     eval `tset -s -m '>1200:wy' 2621`
     unset noglob

     Example 2: Selecting terminals according to  speed  or  baud
     rate

     If you have a switch which connects to various ports (making
     it  impractical  to identify which port you may be connected
     to), and use various terminals from time to  time,  you  can
     select  from among those terminals according to the speed or
     baud rate. In the example below, tset will prompt you for  a
     terminal  type  if  the baud rate is greater than 1200 (say,
     9600 for a terminal connected by an RS-232 line), and use  a
     WyseO 50 by default.  If the baud rate is less than or equal
     to 1200, it will select a 2621. Note the  placement  of  the
     question  mark,  and  the quotes to protect the > and ? from
     interpretation by the shell.

     set noglob
     eval `tset -s -m 'switch>1200:?wy' -m 'switch<=1200:2621'`
     unset noglob

     Example 3: Selecting the terminal used most often

     The following entry is appropriate if you  always  dial  up,
     always  at  the  same  baud rate, on many different kinds of
     terminals, and the terminal you use most often is an adm3a.

     set noglob
     eval `tset -s ?adm3a`
     unset noglob

     Example 4: Selecting a terminal with specific settings

     The following example quietly sets the  erase  character  to
     BACKSPACE,  and  kill to CTRL-U. If the port is switched, it
     selects a Concept 100 for speeds less than or equal to 1200,
     and  asks  for  the  terminal type otherwise (the default in
     this case is a Wyse 50). If the port is a direct dialup,  it
     selects  Concept  100  as  the terminal type.  If logging in
     over the ARPANET, the terminal type selected is a DatamediaO
     2500  terminal or emulator.  Note the backslash escaping the
     NEWLINE at the end of the first line in the example.

     set noglob
     eval `tset -e -k^U -Q -s -m 'switch<=1200:concept100' -m\
        'switch:?wy' -m dialup:concept100 -m arpanet:dm2500`
     unset noglob


FILES

     .login

     .profile

     /etc/termcap


ATTRIBUTES

     See attributes(5) for descriptions of the  following  attri-
     butes:

     ____________________________________________________________
    |       ATTRIBUTE TYPE        |       ATTRIBUTE VALUE       |
    |_____________________________|_____________________________|
    | Availability                | SUNWscpu                    |
    |_____________________________|_____________________________|


SEE ALSO

     csh(1), sh(1), stty(1), vi(1), attributes(5), environ(5)


NOTES

     The tset command is one of the first commands  a  user  must
     master when getting started on a UNIX system. Unfortunately,
     it is one of the most complex, largely because of the  extra
     effort  the  user  must go through to get the environment of
     the login shell set. Something needs to be done to make  all
     this simpler, either the login program should do this stuff,
     or a default shell alias should be made, or a way to set the
     environment of the parent should exist.

     This program  cannot  intuit  personal  choices  for  erase,
     interrupt  and  line kill characters, so it leaves these set
     to the local system standards.

     It could well be argued that the shell should be responsible
     for ensuring that the terminal remains in a sane state; this
     would eliminate the need for the reset program.


Man(1) output converted with man2html