http://invisible-island.net/
Copyright © 1996-2022,2023 by Thomas E. Dickey
Thexterm program is a terminal emulator for the X Window System. It was originally developed in the mid-1980s to provide DEC VT102 and Tektronix 4014 compatible terminals for programs that cannot use the window system directly.
Eachxterm window runs as a separate process. Some may run on remote machines, using the X protocol to display on a local machine, while others may run and display on the same local machine. X allows applications to update their windows independently, but the local machine's keyboard and mouse are shared, i.e., only delivering input events to the window which currently hasfocus.
This version implements ISO/ANSI colors using the "new"color model (i.e., background color erase). It also implements most of the control sequences for VT220, as well as selected features from other DEC terminals such as VT320, VT420 and VT520.
I decided to work onxterm in early 1995, to supportded andadd (and incidentallyncurses) in the X environment. Several people had made modifications toxterm to support color, but none (except for the completely independentrxvt) implemented background color erase. That is rather like preferring MS-DOS to UNIX. Completely mystifying.
Being bogged down in ncurses, I didn't get involved inxterm until the very end of 1995, after working onatac.
I implemented a workable version of colorizedxterm just at the point where XFree86 3.1.2B was announced, complete with a color xterm. As luck would have it, they'd incorporated the "old" color model. So I joined the XFree86 project to fix it.
As I learned more aboutxterm, I realized that it implemented part of VT220 (i.e., the locking shifts for extended character sets). Since a number of people on the Internet are looking for a good VT220 emulator, it seemed a natural follow-on project to makexterm a good VT220 emulator. By the release of XFree86 3.2, I had implemented most of the control sequences, except for a handful (DECSTR, the KAM and SRM modes, the ones pertaining to doublesize and soft characters, and of course, blink).
Programs that run in a terminal (emulator or not) use terminal descriptions to tell them how to use the terminal's capabilities. Whilexterm and each model of DEC terminal have features not found in the other,xterm is “complete” within the scope of those terminal descriptions. The preferred terminal description forxterm has evolved over time, so that programs can use more advanced features:
For the first ten years ofxterm's history (until 1996), the preferred terminal description was based on the VT102.
The following eighteen years (until 2012) preferred a description based on VT220.
Since 2012, the preferred description is based on VT420.
TheXTerm FAQ gives more information, showing how to resolve problems with it, as well as contrastingxterm with other terminals.
TheCHANGE LOG shows when and why features were added or changed.
See thisdiscussion of the icons used forxterm.
To supportxterm, I also work onvttest.
luit allowsxterm to support character encodings other than ISO-8859-1 and UTF-8.
X Toolkit providesxterm with support for X resources.
Xft providesxterm with support for TrueType fonts.
Xcursor provides cursor-themes for X applications.
Likevile,xterm works with the different flavors of theAthena widgets.
There are numerous references on the net toxterm. Here are a few of the more interesting ones:
Packages for XTerm:
OSWatershed.org (archived 2014)
OpenCSW and UnixPackages (Solaris)
Discussion of XTerm's features:
Historical sources:
Archive of snapshots (seediscussion).
I export to this on completing a patch update.
I began the archive withpatch #50 (1997/8/22).
While I have the earlierpatches and mail, the XFree86 mailing list archives are not available.
XFree86 archives have commits for my patches from 1996 to 2006.
I made my own commits to XFree86 CVS forpatch #149 through#215.
These developers have copies of the XFree86 CVS (see mailing list):
Prior to XFree86, the X Consortium maintained RCS archives.
Alan Coopersmith has a copy of that (seen here).
X11 release versions of xterm, from the distribution tarballs.