X-Git-Url: https://ncurses.scripts.mit.edu/?a=blobdiff_plain;f=doc%2Fhtml%2Fman%2Ftset.1.html;h=2cb5a4b071e52807901944b2e003facfa73fc43d;hb=06b5ef53baf520efffbf26929b29d3994af8dfb1;hp=8d2b4e3edd4fe746e46f5172898fec0e833f07b5;hpb=b11cef1e315b58820ea0cde239ebf2f741ef8948;p=ncurses.git diff --git a/doc/html/man/tset.1.html b/doc/html/man/tset.1.html index 8d2b4e3e..2cb5a4b0 100644 --- a/doc/html/man/tset.1.html +++ b/doc/html/man/tset.1.html @@ -1,6 +1,6 @@
- +-tset(1) tset(1) +tset(1) General Commands Manual tset(1) --
+
tset, reset - terminal initialization --
- tset [-IQVcqrsw] [-] [-e ch] [-i ch] [-k ch] [-m mapping] - [terminal] - reset [-IQVcqrsw] [-] [-e ch] [-i ch] [-k ch] [-m mapping] - [terminal] +
+ tset [-IQVcqrsw] [-] [-e ch] [-i ch] [-k ch] [-m mapping] [terminal] + reset [-IQVcqrsw] [-] [-e ch] [-i ch] [-k ch] [-m mapping] [terminal] --
- Tset initializes terminals. Tset first determines the - type of terminal that you are using. This determination - is done as follows, using the first terminal type found. +
+ +
+ This program initializes terminals. + + First, tset retrieves the current terminal mode settings for your ter- + minal. It does this by successively testing + + o the standard error, + + o standard output, + + o standard input and + + o ultimately "/dev/tty" + + to obtain terminal settings. Having retrieved these settings, tset + remembers which file descriptor to use when updating settings. + + Next, tset determines the type of terminal that you are using. This + determination is done as follows, using the first terminal type found. 1. The terminal argument specified on the command line. 2. The value of the TERM environmental variable. - 3. (BSD systems only.) The terminal type associated with - the standard error output device in the /etc/ttys file. - (On System-V-like UNIXes and systems using that conven- - tion, getty does this job by setting TERM according to the - type passed to it by /etc/inittab.) + 3. (BSD systems only.) The terminal type associated with the standard + error output device in the /etc/ttys file. (On System-V-like UNIXes + and systems using that convention, getty does this job by setting TERM + according to the type passed to it by /etc/inittab.) 4. The default terminal type, "unknown". - If the terminal type was not specified on the command- - line, the -m option mappings are then applied (see the - section TERMINAL TYPE MAPPING for more information). - Then, if the terminal type begins with a question mark - ("?"), the user is prompted for confirmation of the termi- - nal type. An empty response confirms the type, or, - another type can be entered to specify a new type. Once - the terminal type has been determined, the terminfo entry - for the terminal is retrieved. If no terminfo entry is - found for the type, the user is prompted for another ter- - minal type. - - Once the terminfo entry is retrieved, the window size, - backspace, interrupt and line kill characters (among many - other things) are set and the terminal and tab initializa- - tion strings are sent to the standard error output. - Finally, if the erase, interrupt and line kill characters - have changed, or are not set to their default values, - their values are displayed to the standard error output. - Use the -c or -w option to select only the window sizing - versus the other initialization. If neither option is - given, both are assumed. - - When invoked as reset, tset sets cooked and echo modes, - turns off cbreak and raw modes, turns on newline transla- - tion and resets any unset special characters to their - default values before doing the terminal initialization - described above. This is useful after a program dies - leaving a terminal in an abnormal state. Note, you may - have to type - - <LF>reset<LF> - - (the line-feed character is normally control-J) to get the - terminal to work, as carriage-return may no longer work in - the abnormal state. Also, the terminal will often not - echo the command. + If the terminal type was not specified on the command-line, the -m + option mappings are then applied (see the section TERMINAL TYPE MAPPING + for more information). Then, if the terminal type begins with a ques- + tion mark ("?"), the user is prompted for confirmation of the terminal + type. An empty response confirms the type, or, another type can be + entered to specify a new type. Once the terminal type has been deter- + mined, the terminal description for the terminal is retrieved. If no + terminal description is found for the type, the user is prompted for + another terminal type. + + Once the terminal description is retrieved, + + o if the "-w" option is enabled, tset may update the terminal's win- + dow size. + + If the window size cannot be obtained from the operating system, + but the terminal description (or environment, e.g., LINES and COL- + UMNS variables specify this), use this to set the operating sys- + tem's notion of the window size. + + o if the "-c" option is enabled, the backspace, interrupt and line + kill characters (among many other things) are set + + o unless the "-I" option is enabled, the terminal and tab initializa- + tion strings are sent to the standard error output, and tset waits + one second (in case a hardware reset was issued). + + o Finally, if the erase, interrupt and line kill characters have + changed, or are not set to their default values, their values are + displayed to the standard error output. + + +
+ When invoked as reset, tset sets the terminal modes to "sane" values: + + o sets cooked and echo modes, + + o turns off cbreak and raw modes, + + o turns on newline translation and + + o resets any unset special characters to their default values + before doing the terminal initialization described above. Also, rather + than using the terminal initialization strings, it uses the terminal + reset strings. + + The reset command is useful after a program dies leaving a terminal in + an abnormal state: + + o you may have to type + + <LF>reset<LF> + + (the line-feed character is normally control-J) to get the terminal + to work, as carriage-return may no longer work in the abnormal + state. + + o Also, the terminal will often not echo the command. + + +
The options are as follows: -c Set control characters and modes. -e Set the erase character to ch. - -I Do not send the terminal or tab initialization - strings to the terminal. + -I Do not send the terminal or tab initialization strings to the ter- + minal. -i Set the interrupt character to ch. -k Set the line kill character to ch. - -m Specify a mapping from a port type to a terminal. - See the section TERMINAL TYPE MAPPING for more infor- - mation. + -m Specify a mapping from a port type to a terminal. See the section + TERMINAL TYPE MAPPING for more information. - -Q Do not display any values for the erase, interrupt - and line kill characters. Normally tset displays the - values for control characters which differ from the - system's default values. + -Q Do not display any values for the erase, interrupt and line kill + characters. Normally tset displays the values for control charac- + ters which differ from the system's default values. - -q The terminal type is displayed to the standard out- - put, and the terminal is not initialized in any way. - The option `-' by itself is equivalent but archaic. + -q The terminal type is displayed to the standard output, and the + terminal is not initialized in any way. The option "-" by itself + is equivalent but archaic. -r Print the terminal type to the standard error output. - -s Print the sequence of shell commands to initialize - the environment variable TERM to the standard output. - See the section SETTING THE ENVIRONMENT for details. - - -V reports the version of ncurses which was used in this - program, and exits. - - -w Resize the window to match the size deduced via - setupterm. Normally this has no effect, unless - setupterm is not able to detect the window size. - - The arguments for the -e, -i, and -k options may either be - entered as actual characters or by using the `hat' nota- - tion, i.e., control-h may be specified as "^H" or "^h". - + -s Print the sequence of shell commands to initialize the environment + variable TERM to the standard output. See the section SETTING THE + ENVIRONMENT for details. --
- It is often desirable to enter the terminal type and - information about the terminal's capabilities into the - shell's environment. This is done using the -s option. - - When the -s option is specified, the commands to enter the - information into the shell's environment are written to - the standard output. If the SHELL environmental variable - ends in "csh", the commands are for csh, otherwise, they - are for sh. Note, the csh commands set and unset the - shell variable noglob, leaving it unset. The following - line in the .login or .profile files will initialize the - environment correctly: + -V reports the version of ncurses which was used in this program, and + exits. - eval `tset -s options ... ` + -w Resize the window to match the size deduced via setupterm(3x). + Normally this has no effect, unless setupterm is not able to + detect the window size. + The arguments for the -e, -i, and -k options may either be entered as + actual characters or by using the "hat" notation, i.e., control-h may + be specified as "^H" or "^h". --
- When the terminal is not hardwired into the system (or the - current system information is incorrect) the terminal type - derived from the /etc/ttys file or the TERM environmental - variable is often something generic like network, dialup, - or unknown. When tset is used in a startup script it is - often desirable to provide information about the type of - terminal used on such ports. - - The purpose of the -m option is to map from some set of - conditions to a terminal type, that is, to tell tset "If - I'm on this port at a particular speed, guess that I'm on - that kind of terminal". - - The argument to the -m option consists of an optional port - type, an optional operator, an optional baud rate specifi- - cation, an optional colon (":") character and a terminal - type. The port type is a string (delimited by either the - operator or the colon character). The operator may be any - combination of ">", "<", "@", and "!"; ">" means greater - than, "<" means less than, "@" means equal to and "!" - inverts the sense of the test. The baud rate is specified - as a number and is compared with the speed of the standard - error output (which should be the control terminal). The - terminal type is a string. - - If the terminal type is not specified on the command line, - the -m mappings are applied to the terminal type. If the - port type and baud rate match the mapping, the terminal - type specified in the mapping replaces the current type. - If more than one mapping is specified, the first applica- - ble mapping is used. - - For example, consider the following mapping: - dialup>9600:vt100. The port type is dialup , the operator - is >, the baud rate specification is 9600, and the termi- - nal type is vt100. The result of this mapping is to spec- - ify that if the terminal type is dialup, and the baud rate - is greater than 9600 baud, a terminal type of vt100 will - be used. - - If no baud rate is specified, the terminal type will match - any baud rate. If no port type is specified, the terminal - type will match any port type. For example, -m - dialup:vt100 -m :?xterm will cause any dialup port, - regardless of baud rate, to match the terminal type vt100, - and any non-dialup port type to match the terminal type - ?xterm. Note, because of the leading question mark, the - user will be queried on a default port as to whether they - are actually using an xterm terminal. - - No whitespace characters are permitted in the -m option - argument. Also, to avoid problems with meta-characters, - it is suggested that the entire -m option argument be - placed within single quote characters, and that csh users - insert a backslash character ("\") before any exclamation - marks ("!"). + If neither -c or -w is given, both options are assumed. --
- The tset command appeared in BSD 3.0. The ncurses imple- - mentation was lightly adapted from the 4.4BSD sources for - a terminfo environment by Eric S. Raymond <esr@snark.thyr- - sus.com>. +
+ It is often desirable to enter the terminal type and information about + the terminal's capabilities into the shell's environment. This is done + using the -s option. + When the -s option is specified, the commands to enter the information + into the shell's environment are written to the standard output. If + the SHELL environmental variable ends in "csh", the commands are for + csh, otherwise, they are for sh. Note, the csh commands set and unset + the shell variable noglob, leaving it unset. The following line in the + .login or .profile files will initialize the environment correctly: --
- The tset utility has been provided for backward-compati- - bility with BSD environments (under most modern UNIXes, - /etc/inittab and getty(1) can set TERM appropriately for - each dial-up line; this obviates what was tset's most - important use). This implementation behaves like 4.4BSD - tset, with a few exceptions specified here. - - The -S option of BSD tset no longer works; it prints an - error message to stderr and dies. The -s option only sets - TERM, not TERMCAP. Both of these changes are because the - TERMCAP variable is no longer supported under terminfo- - based ncurses, which makes tset -S useless (we made it die - noisily rather than silently induce lossage). - - There was an undocumented 4.4BSD feature that invoking - tset via a link named `TSET` (or via any other name begin- - ning with an upper-case letter) set the terminal to use - upper-case only. This feature has been omitted. - - The -A, -E, -h, -u and -v options were deleted from the - tset utility in 4.4BSD. None of them were documented in - 4.3BSD and all are of limited utility at best. The -a, - -d, and -p options are similarly not documented or useful, - but were retained as they appear to be in widespread use. - It is strongly recommended that any usage of these three - options be changed to use the -m option instead. The -n - option remains, but has no effect. The -adnp options are - therefore omitted from the usage summary above. - - It is still permissible to specify the -e, -i, and -k - options without arguments, although it is strongly recom- - mended that such usage be fixed to explicitly specify the - character. - - As of 4.4BSD, executing tset as reset no longer implies - the -Q option. Also, the interaction between the - option - and the terminal argument in some historic implementations - of tset has been removed. + eval `tset -s options ... ` --
+
+ When the terminal is not hardwired into the system (or the current sys- + tem information is incorrect) the terminal type derived from the + /etc/ttys file or the TERM environmental variable is often something + generic like network, dialup, or unknown. When tset is used in a + startup script it is often desirable to provide information about the + type of terminal used on such ports. + + The -m options maps from some set of conditions to a terminal type, + that is, to tell tset "If I'm on this port at a particular speed, guess + that I'm on that kind of terminal". + + The argument to the -m option consists of an optional port type, an + optional operator, an optional baud rate specification, an optional + colon (":") character and a terminal type. The port type is a string + (delimited by either the operator or the colon character). The opera- + tor may be any combination of ">", "<", "@", and "!"; ">" means greater + than, "<" means less than, "@" means equal to and "!" inverts the sense + of the test. The baud rate is specified as a number and is compared + with the speed of the standard error output (which should be the con- + trol terminal). The terminal type is a string. + + If the terminal type is not specified on the command line, the -m map- + pings are applied to the terminal type. If the port type and baud rate + match the mapping, the terminal type specified in the mapping replaces + the current type. If more than one mapping is specified, the first + applicable mapping is used. + + For example, consider the following mapping: dialup>9600:vt100. The + port type is dialup , the operator is >, the baud rate specification is + 9600, and the terminal type is vt100. The result of this mapping is to + specify that if the terminal type is dialup, and the baud rate is + greater than 9600 baud, a terminal type of vt100 will be used. + + If no baud rate is specified, the terminal type will match any baud + rate. If no port type is specified, the terminal type will match any + port type. For example, -m dialup:vt100 -m :?xterm will cause any + dialup port, regardless of baud rate, to match the terminal type vt100, + and any non-dialup port type to match the terminal type ?xterm. Note, + because of the leading question mark, the user will be queried on a + default port as to whether they are actually using an xterm terminal. + + No whitespace characters are permitted in the -m option argument. + Also, to avoid problems with meta-characters, it is suggested that the + entire -m option argument be placed within single quote characters, and + that csh users insert a backslash character ("\") before any exclama- + tion marks ("!"). + + +
+ A reset command appeared in 2BSD (April 1979), written by Kurt Shoens. + This program set the erase and kill characters to ^H (backspace) and @ + respectively. Mark Horton improved that in 3BSD (October 1979), adding + intr, quit, start/stop and eof characters as well as changing the pro- + gram to avoid modifying any user settings. + + Later in 4.1BSD (December 1980), Mark Horton added a call to the tset + program using the -I and -Q options, i.e., using that to improve the + terminal modes. With those options, that version of reset did not use + the termcap database. + + A separate tset command was provided in 2BSD by Eric Allman. While the + oldest published source (from 1979) provides both tset and reset, All- + man's comments in the 2BSD source code indicate that he began work in + October 1977, continuing development over the next few years. + + In September 1980, Eric Allman modified tset, adding the code from the + existing "reset" feature when tset was invoked as reset. Rather than + simply copying the existing program, in this merged version, tset used + the termcap database to do additional (re)initialization of the termi- + nal. This version appeared in 4.1cBSD, late in 1982. + + Other developers (e.g., Keith Bostic and Jim Bloom) continued to modify + tset until 4.4BSD was released in 1993. + + The ncurses implementation was lightly adapted from the 4.4BSD sources + for a terminfo environment by Eric S. Raymond <esr@snark.thyrsus.com>. + + +
+ Neither IEEE Std 1003.1/The Open Group Base Specifications Issue 7 + (POSIX.1-2008) nor X/Open Curses Issue 7 documents tset or reset. + + The AT&T tput utility (AIX, HPUX, Solaris) incorporated the terminal- + mode manipulation as well as termcap-based features such as resetting + tabstops from tset in BSD (4.1c), presumably with the intention of mak- + ing tset obsolete. However, each of those systems still provides tset. + In fact, the commonly-used reset utility is always an alias for tset. + + The tset utility provides for backward-compatibility with BSD environ- + ments (under most modern UNIXes, /etc/inittab and getty(1) can set TERM + appropriately for each dial-up line; this obviates what was tset's most + important use). This implementation behaves like 4.4BSD tset, with a + few exceptions specified here. + + A few options are different because the TERMCAP variable is no longer + supported under terminfo-based ncurses: + + o The -S option of BSD tset no longer works; it prints an error mes- + sage to the standard error and dies. + + o The -s option only sets TERM, not TERMCAP. + + There was an undocumented 4.4BSD feature that invoking tset via a link + named "TSET" (or via any other name beginning with an upper-case let- + ter) set the terminal to use upper-case only. This feature has been + omitted. + + The -A, -E, -h, -u and -v options were deleted from the tset utility in + 4.4BSD. None of them were documented in 4.3BSD and all are of limited + utility at best. The -a, -d, and -p options are similarly not docu- + mented or useful, but were retained as they appear to be in widespread + use. It is strongly recommended that any usage of these three options + be changed to use the -m option instead. The -a, -d, and -p options + are therefore omitted from the usage summary above. + + Very old systems, e.g., 3BSD, used a different terminal driver which + was replaced in 4BSD in the early 1980s. To accommodate these older + systems, the 4BSD tset provided a -n option to specify that the new + terminal driver should be used. This implementation does not provide + that choice. + + It is still permissible to specify the -e, -i, and -k options without + arguments, although it is strongly recommended that such usage be fixed + to explicitly specify the character. + + As of 4.4BSD, executing tset as reset no longer implies the -Q option. + Also, the interaction between the - option and the terminal argument in + some historic implementations of tset has been removed. + + The -c and -w options are not found in earlier implementations. How- + ever, a different window size-change feature was provided in 4.4BSD. + + o In 4.4BSD, tset uses the window size from the termcap description + to set the window size if tset is not able to obtain the window + size from the operating system. + + o In ncurses, tset obtains the window size using setupterm, which may + be from the operating system, the LINES and COLUMNS environment + variables or the terminal description. + + Obtaining the window size from the terminal description is common to + both implementations, but considered obsolescent. Its only practical + use is for hardware terminals. Generally speaking, a window size would + be unset only if there were some problem obtaining the value from the + operating system (and setupterm would still fail). For that reason, + the LINES and COLUMNS environment variables may be useful for working + around window-size problems. Those have the drawback that if the win- + dow is resized, those variables must be recomputed and reassigned. To + do this more easily, use the resize(1) program. + + +
The tset command uses these environment variables: SHELL - tells tset whether to initialize TERM using sh or csh - syntax. + tells tset whether to initialize TERM using sh or csh syntax. - TERM Denotes your terminal type. Each terminal type is - distinct, though many are similar. + TERM Denotes your terminal type. Each terminal type is distinct, + though many are similar. TERMCAP - may denote the location of a termcap database. If it - is not an absolute pathname, e.g., begins with a `/', - tset removes the variable from the environment before - looking for the terminal description. + may denote the location of a termcap database. If it is not an + absolute pathname, e.g., begins with a "/", tset removes the vari- + able from the environment before looking for the terminal descrip- + tion. --
+
/etc/ttys - system port name to terminal type mapping database - (BSD versions only). + system port name to terminal type mapping database (BSD versions + only). /usr/share/terminfo terminal capability database --
- csh(1), sh(1), stty(1), curs_terminfo(3x), tty(4), - terminfo(5), ttys(5), environ(7) +
+ csh(1), sh(1), stty(1), curs_terminfo(3x), tty(4), terminfo(5), + ttys(5), environ(7) - This describes ncurses version 6.0 (patch 20151205). + This describes ncurses version 6.1 (patch 20190921). - tset(1) + tset(1)