unixdev.net


Switch to SpeakEasy.net DSL

The Modular Manual Browser

Home Page
Manual: (OSF1-V5.1-alpha)
Page:
Section:
Apropos / Subsearch:
optional field



tset(1)								      tset(1)



NAME

  tset,	reset -	Initializes terminals

SYNOPSIS

  tset [-echaracter | -Echaracter] [-icharacter] [-kcharacter] [-IQrsS]	[-]
  [-m] ['port_type] [baud_rate]	[:type...']

  reset	[-echaracter | -Echaracter] [-icharacter] [-kcharacter]	[-IQrsS] [-]
  [-m] ['port_type] [baud_rate]	[:type...']

  The tset command initializes your terminal when you first log	in to a	sys-
  tem.

OPTIONS

  -echaracter
      Sets the Erase character to character on all terminals, the default
      being the	Backspace character (on	many systems, <&lt;Ctrl-h>&gt;). The charac-
      ter can be typed directly	or entered using circumflex notation, for
      example, ^H.

  -Echaracter
      Sets the Erase character to character only if the	terminal can back-
      space.

  -icharacter
      Sets the Interrupt character to character	for all	terminals, the
      default being <Ctrl-c> on	many systems.  character can be	typed
      directly or entered using	circumflex notation, for example, ^C.

  -I  Suppresses transmission of terminal initialization strings.

  -kcharacter
      Sets the line Kill character to character	on all terminals, the default
      being <Ctrl-x> on	many systems. The Kill character is left alone if -k
      is not specified.	 character can be typed	directly or entered using
      circumflex notation, for example,	^X.

  -m port_type [baud_rate]:type
      Maps port	type port_type,	baud rate baud_rate, and terminal type type
      at startup.  (See	DESCRIPTION.)

  -Q  Suppresses printing of Erase set to and Kill set to messages.

  -r  Prints the terminal type on the diagnostic output.

  -s, -S
      Prints the sequence of csh or sh commands	to initialize the TERM and
      TERMCAP environment variables, The shell for which commands are pro-
      duced depends on the setting of the SHELL	variable.

  -   Writes the name of the terminal finally decided upon to standard out-
      put. This	is intended to be captured by the shell	and placed in the
      TERM environment variable.




DESCRIPTION

  The tset command first determines the	type of	terminal involved, and then
  does necessary initializations and mode settings, including terminal-
  dependent processing such as setting Erase and Kill characters, setting or
  resetting delays, and	sending	any sequences needed to	properly initialize
  the terminal.

  The type of terminal attached	to each	port is	specified by a parameter to
  the getty running on that port, and passed to	subprocesses through the TERM
  environment variable.	 Type names for	terminals can be found in the termcap
  database.  If	a port is not permanently wired	to a specific terminal (not
  hardwired), it is given an appropriate generic identifier, such as dialup.

  When no arguments are	specified, tset	simply reads the terminal type out of
  the TERM variable and	reinitializes the terminal.

  When used in a start-up script ( .profile for	sh users or .login for csh
  users), it is	desirable to give information about the	type of	terminal you
  usually use on ports that are	not hardwired. To specify the terminal type
  for these ports, specify the -m (map)	option,	followed by the	appropriate
  port type identifier,	an optional baud rate specification, and the terminal
  type.	 (The effect is	to map from some conditions to a terminal type,	that
  is, to tell tset "If I am on this kind of port, guess	that I am on that
  kind of terminal.") If more than one mapping is specified, the first appli-
  cable	mapping	prevails. A missing port type identifier matches all identif-
  iers.	Any of the alternate generic names given in the	termcap	database can
  be used for the identifier.

  A baud rate is specified as with stty, and is	compared with the speed	of
  the diagnostic output	(which should be the control terminal).	 The baud
  rate test can	be any combination of the following characters:	. (dot), @
  (at sign), relational	operators such as <&lt; (left angle	bracket), and !	(exc-
  lamation point).  (@ is the same as "equals",	and ! inverts the sense	of
  the test.)  To avoid problems	with metacharacters, place the entire argu-
  ment to -m within ' '	(single	quotes); users of csh must also	put a \
  (backslash) before any ! (exclamation	point) used here.

  Therefore, entering the following example causes the terminal	type to	be
  set to an adm3a if the port in use is	a dialup at a speed greater than 300
  baud;	it is set to a dw2 if the port is a dialup at 300 baud or less:

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

  If the type finally determined by tset begins	with a ? (question mark),
  users	are asked if they want that type. A null response means	to use that
  type;	otherwise, another type	can be entered.	 Thus, in the preceding	case,
  you are queried on a plugboard port as to whether you	are actually using an
  adm3a.

  If no	mapping	applies	and a final type argument not preceded by a -m is
  given	on the command line, then that type is used; otherwise,	the type
  passed to getty is taken to be the terminal type. This should	always be the
  case for hardwired ports.

  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. Returning the terminal type can be done using the - option, if
  you are using	the Bourne shell, as follows:

       export TERM; TERM= `tset	- option ...`

  or if	you are	using the C shell, as follows:


       set noglob; eval	`tset -s option	...`

  It is	also convenient	to make	an alias in your .cshrc	file by	entering:

       alias ts	'set noglob; eval `tset	-s \!*`'

  The -s option	allows the tset	command	to be invoked at any time to set the
  terminal and environment. A similar effect can be achieved using a shell
  function.

  These	commands cause tset to place the name of your terminal in the TERM
  environment variable.

  Once the terminal type is known, tset	engages	in terminal driver mode	set-
  ting.	This normally involves sending an initialization sequence to the ter-
  minal, setting the single-character Erase and	(optionally) line Kill
  (full-line erase) characters,	and setting special character delays.  Tab
  and newline expansion	are turned off during transmission of the terminal
  initialization sequence.

  If tset is invoked as	reset, it sets cooked and echo modes, turns off
  cbreak and RAW modes,	turns on newline translation, and restores special
  characters to	a sensible state before	any terminal-dependent processing is
  done.	Any special character that is found to be NUL or -1 is reset to	its
  default value.  All options to tset can be used with reset.

  The reset command is most useful after a program dies, leaving a terminal
  in a state where characters are not echoed or	the terminal does not respond
  when you press <&lt;Return>&gt;, but the prompt is displayed.	 You might have	to
  enter	<&lt;LF>&gt;reset<&lt;LF>&gt; to get reset to work, since carriage-return might	not
  work in this state. Often, none of this will echo.

NOTES

  The tset command was designed	to use the termcap database.

  The following	options	are accepted for compatibility with earlier versions
  of tset, but the use of these	options	is discouraged:

  -d type
      Equivalent to -m dialup:type.

  -p type
      Equivalent to -m plugboard:type.

  -a :type
      Equivalent to -m arpanet:type.

EXAMPLES

  These	examples all assume the	use of Bourne shell and	the - option. If you
  use csh, use one of the variations previously	described.  Note that a	typi-
  cal use of tset in a .profile	or .login file also uses the -e	and -k
  options, and often uses the -n or -Q option as well. These options were not
  included here	to keep	the examples short.

  Note that some of these take up more than one	line; however, you must	enter
  tset commands	entirely on one	line.

   1.  Assuming	you are	on a 2621, the following command line is suitable for
       use in an interactive shell, but	not for	a .profile file, unless	you
       are always on a 2621:
	    export TERM; TERM=`tset - 2621`

   2.  You have	an h19 at home that you	dial up	on, but	your office terminal
       is hardwired:
	    export TERM; TERM=`tset - -m dialup:h19"`

   3.  You have	a switch that connects everything to everything, making	it
       nearly impossible to key	on what	port you are coming in on. You use a
       VT100 terminal in your office that runs at 9600 baud, and you dial up
       to switch ports at 1200 baud from home on a 2621. Sometimes you use
       someone else's terminal at work,	so you want it to ask you to make
       sure what terminal type you have	at high	speeds,	but at 1200 baud you
       are always on a 2621.  Note the placement of the	question mark, and
       the quotes to protect the <&lt; (left angle bracket)	and ? (question	mark)
       characters from interpretation by the shell.
	    export TERM; TERM=`tset - -m 'switch>&gt;1200:?vt100' \
		    m- 'switch<&lt;=1200:2621'`

       (Enter the command entirely on one line,	not on two lines as shown
       above.)

       All of the preceding entries fall back, if none of the conditions
       hold, on	the terminal type specified by the value of the	TERM variable
       when tset is invoked.

   4.  The following entry is appropriate if you always	dial up	at the same
       baud rate on many different kinds of terminals. Your most common	ter-
       minal is	an adm3a. It always asks you what kind of terminal you are
       on, defaulting to adm3a:
	    export TERM; TERM=`tset - ?adm3a`

   5.  If you want to key entirely on the baud rate, the following entry can
       be used:
	    export TERM; TERM=`tset - -m 'switch>&gt;1200:?vt100' \
		    -m 'switch<&lt;=1200:2621'`

       (Enter the command entirely on one line,	not on two lines as shown
       above.)

   6.  You dial	up at 1200 baud	or less	on a concept100, sometimes over
       switch ports and	sometimes over regular dialups.	You use	various	ter-
       minals at speeds	higher than 1200 over switch ports, most often the
       terminal	in your	office,	which is a VT100. However, sometimes you log
       in from the university you used to attend over the ARPANET; in this
       case, you are on	an ALTO	emulating a dm2500. You	also often log in on
       various hardwired ports,	such as	the console.  You want your Erase
       character set to	<&lt;Ctrl-h>&gt; and your Kill character set to	<&lt;Ctrl-u>&gt;, and
       you do not want tset to print the Erase set to Backspace, Kill set to
       Control U message.
	    export TERM
	    TERM=`tset -e -k^U -Q - "-m	'switch<&lt;=1200:concept100' \
		    "-m	'switch:?vt100'	-m dialup:concept100  \
		    "-m	arpanet: dm2500"`

       (Enter the command entirely on one line,	not on three lines as shown
       above.)









FILES

  /usr/share/lib/termcap
      Terminal information database.


SEE ALSO

  Commands:  csh(1), sh(1), stty(1), tty(1)

  Files:  termcap(4)