From ArchWiki
Revision as of 22:47, 3 March 2013 by Thisoldman (Talk | contribs) (Scrolling: Still sandboxing)

Jump to: navigation, search


xterm is the standard terminal emulator for the X Window System. It is highly configurable and has many useful and some unusual features.

The ultimate authorities for using and customizing xterm are the man pages for xterm, uxterm, koi8rxterm, and resize; the XTerm FAQ and the XTerm ChangeLog.


Xterm is used with different hardware on a variety of operating systems, not just with a PC keyboard on a GNU/Linux system. There are several options to set in your X resources files that make this terminal emulator much easier to use with Linux.

  • Allow xterm to report the TERM variable correctly. Do not set the TERM variable from your ~/.bashrc or ~/.bash_profile or similar file. The terminal itself should report the correct TERM to the system so that the proper terminfo file will be used. Two usable terminfo files are xterm, and xterm-256color. The XTerm FAQ state, "The xterm-color value for $TERM is a bad choice..."
– Without setting TERM explicitly, xterm should report $TERM as xterm. You can check this with either of these commands:
$ echo $TERM
$ tset -q
– When TERM is not set explicitly, color schemes for some programs, such as vim, may not appear until a key is pressed or some other input occurs. This can be remedied by setting the resource termName, either from the command line with xterm -tn xterm-256color, or by setting the resource value:
xterm*termName: xterm-256color
  • Use UTF-8. First make certain your locale settings are correct for UTF-8, then add this to your resource file so that xterm interprets all incoming data as UTF-8 encoded:
XTerm*locale: true
XTerm*vt100.metaSendsEscape: true


As new lines are written to the bottom of the xterm window, older lines disappear from the top. Xterm saves these lines and they can be redisplayed by scrolling. By default, 1024 lines are saved. You can change the number of saved lines with the saveLines resource,

Xterm*saveLines: 4096

Normally, as new lines are produced, old lines would be scrolled off the top one by one. This could cause some delay when a command produces a lot of output. The resource jumpScroll is set to true by default so that multiple lines at a time are scrolled.

Two other resources that affect scrolling speed are multiScroll, which allows asynchronous scrolling when set to true, and fastScroll, which suppresses refreshing the display when there is a large amount of output. Both are set to false by default.

For manual scrolling, one can use the mouse wheel, or the key combinations of Template:Keypress and Template:Keypress to scroll a half page at a time, or one can use the scrollbar.

The Scrollbar

The scrollbar is not shown by default. It can be toggled by a menu selection, by command line options, or by setting resource values. It can be made to appear to the left or right of the window and its visual appearance can be modified through resource settings.

The scrollbar operates differently from what we are accustomed to using. When you move the mouse pointer to the scrollbar, the cursor becomes a double-headed arrow. The text can be scrolled in small increments: with the pointer positioned within the scrollbar, scroll up by clicking the right mouse button and scroll down by clicking the left button.

You can also scroll by clicking on the scroll bar with your middle mouse button. Middle-clicking at the top of the scrollbar scrolls up, moving both the text and the "thumb" toward the first saved line; middle-clicking at the bottom of the scrollbar scrolls down, toward the last line displayed. The thumb can also be "grabbed" and the text positioned within the window by using a click-and-drag motion with the middle mouse button.