Last updated

Icon of XTerm (from 2012).svg
A sample xterm, running the Bash shell, showing a listing of /etc.
Original author(s) Mark Vandevoorde
Developer(s) Thomas Dickey
Initial release1984;37 years ago (1984)
Stable release
Patch #367 / March 26, 2021;2 months ago (2021-03-26) [1]
Repository OOjs UI icon edit-ltr-progressive.svg
Operating system X Window System
Type Terminal emulator
License MIT/X Consortium License
Website invisible-island.net/xterm/ OOjs UI icon edit-ltr-progressive.svg

In computing, xterm is the standard terminal emulator for the X Window System. A user can have many different invocations of xterm running at once on the same display, each of which provides independent input/output for the process running in it (normally the process is a Unix shell). [2] [3]


xterm originated prior to the X Window System. It was originally written as a stand-alone terminal emulator for the VAXStation 100 (VS100) by Mark Vandevoorde, a student of Jim Gettys, in the summer of 1984, when work on X started. It rapidly became clear that it would be more useful as part of X than as a standalone program, so it was retargeted to X. As Gettys tells the story, "part of why xterm's internals are so horrifying is that it was originally intended that a single process be able to drive multiple VS100 displays." [4]

After many years as part of the X reference implementation, around 1996 the main line of development then shifted to XFree86 (which itself forked from X11R6.3), and it is now maintained by Thomas Dickey.

Many xterm variants are also available. [5] Most terminal emulators for X started as variations on xterm.


Terminal emulation

Early versions emulated the VT102 and Tektronix 4014. [6]

Later versions added control sequences for DEC and other terminals such as:


Example showing xterm's toolbar. XtermMenus.png
Example showing xterm's toolbar.
Chart of the 256 colors available in an xterm with color support. xterm color numbers and RGB values are shown for each. Xterm 256color chart.svg
Chart of the 256 colors available in an xterm with color support. xterm color numbers and RGB values are shown for each.

As with most X applications, xterm can be customized via global X resources files (e.g. /usr/lib/X11/app-defaults/XTerm), per-user resource files (e.g. ~/XTerm, ~/.Xresources), or command-line arguments. Most of the command-line options correspond to resource settings, as noted in the manual page.

While the name of the program is xterm, the X resource class is XTerm. The uxterm script overrides this, using the UXTerm resource class.

xterm normally does not have a menu bar. To access xterm's three menus, users hold the control key and press the left, middle, or right mouse button. Support for a "toolbar" can be compiled-in, which invokes the same menus.


Supported terminal control functions include:

In addition to protocols used in commercially available terminal machines, xterm added a few protocols that have been adopted by other terminal emulators, such as:

See also

Related Research Articles

Cygwin Unix subsystem for Windows machines

Cygwin is a POSIX-compatible programming and runtime environment that runs natively on Microsoft Windows. Under Cygwin, source code designed for Unix-like operating systems may be compiled with minimal modification and executed.

X Window System Windowing system for bitmap displays on UNIX-like systems

The X Window System is a windowing system for bitmap displays, common on Unix-like operating systems.

Terminal emulator Program that emulates a video terminal

A terminal emulator, terminal application, or term, is a computer program that emulates a video terminal within some other display architecture. Though typically synonymous with a shell or text terminal, the term terminal covers all remote terminals, including graphical interfaces. A terminal emulator inside a graphical user interface is often called a terminal window.

ANSI escape code Method using in-band signaling to control the formatting, color, and other output options on video text terminals

ANSI escape sequences are a standard for in-band signaling to control cursor location, color, font styling, and other options on video text terminals and terminal emulators. Certain sequences of bytes, most starting with an ASCII escape character and a bracket character, are embedded into text. The terminal interprets these sequences as commands, rather than text to display verbatim.

Computer terminal Computer input/output device; an electronic or electromechanical hardware device that is used for entering data into, and displaying data from, a computer or a computing system update programming

A computer terminal is an electronic or electromechanical hardware device that can be used for entering data into, and transcribing data from, a computer or a computing system. The teletype was an example of an early day hardcopy terminal, and predated the use of a computer screen by decades.

The X.Org Foundation is a non-profit corporation chartered to research, develop, support, organize, administrate, standardize, promote, and defend a free and open accelerated graphics stack. This includes, but is not limited to, the following projects: DRM, Mesa 3D, Wayland and the X Window System.

Text-based user interface Type of interface based on outputting to or controlling a text display

In computing, text-based user interfaces (TUI), is a retronym describing a type of user interface (UI) common as an early form of human–computer interaction, before the advent of graphical user interfaces (GUIs). Like GUIs, they may use the entire screen area and accept mouse and other inputs. They may also use color and often structure the display using special graphical characters such as ┌ and ╣, referred to in Unicode as the "box drawing" set. The modern context of use is usually a terminal emulator.

X.Org Server is the free and open-source implementation of the X Window System display server stewarded by the X.Org Foundation.

PuTTY Free and open-source terminal emulator, serial console and network file transfer application

PuTTY is a free and open-source terminal emulator, serial console and network file transfer application. It supports several network protocols, including SCP, SSH, Telnet, rlogin, and raw socket connection. It can also connect to a serial port. The name "PuTTY" has no official meaning.

Tektronix American test and measurement devices company

Tektronix, Inc., historically widely known as Tek, is an American company best known for manufacturing test and measurement devices such as oscilloscopes, logic analyzers, and video and mobile test protocol equipment.

rxvt Terminal emulator for the X Window System

Rxvt is a terminal emulator for the X Window System, and in the form of a Cygwin port, for Windows.

Tektronix 4010

The Tektronix 4010 series was a family of text-and-graphics computer terminals based on storage-tube technology created by Tektronix. Several members of the family were introduced during the 1970s, the best known being the 11-inch 4010 and 19-inch 4014, along with the less popular 25-inch 4016. They were widely used in the computer-aided design market in the 1970s and early 1980s.

Terminal (macOS)

Terminal (Terminal.app) is the terminal emulator included in the macOS operating system by Apple. Terminal originated in NeXTSTEP and OPENSTEP, the predecessor operating systems of macOS.

GNOME Terminal Terminal emulator from GNOME

GNOME Terminal is a terminal emulator for the GNOME desktop environment written by Havoc Pennington and others. Terminal emulators allow users to access a UNIX shell while remaining on their graphical desktop.

NCSA Telnet is an implementation of the Telnet protocol created at the University of Illinois at Urbana-Champaign National Center for Supercomputing Applications in 1986 and continuously developed until 1995. The initial implementation ran under Mac OS and Microsoft MS-DOS and provided basic DEC VT102 terminal emulation as well as support for multiple simultaneous connections and an internal FTP server. At the time, NCSA Telnet was the first implementation of telnet for the Macintosh or a PC that provided the ability to connect to multiple hosts simultaneously.

ZOC (software)

ZOC is a popular computer-based terminal emulator and Telnet software client for the Microsoft Windows and Apple Macintosh macOS operating systems that supports telnet, modem, SSH 1 and 2, ISDN, serial, TAPI, Rlogin and other means of communication. Its terminal emulator supports Xterm emulation with full colors, meta-keys and local printing, VT102, VT220 and several types of ANSI as well as Wyse, TVI, TN3270, and Sun's CDE. It supports full keyboard remapping, scripting in REXX and other languages, and support for named pipes.


SecureCRT is a commercial SSH and Telnet client and terminal emulator by VanDyke Software. Originally a Windows product, VanDyke added a Mac OS X version and Linux version.

A terminal multiplexer is a software application that can be used to multiplex several separate pseudoterminal-based login sessions inside a single terminal display, terminal emulator window, PC/workstation system console, or remote login session, or to detach and reattach sessions from a terminal. It is useful for dealing with multiple programs from a command line interface, and for separating programs from the session of the Unix shell that started the program, particularly so a remote process continues running even when the user is disconnected.


luit is a utility program used to translate the character set of a computer program so that its output can be displayed correctly on a terminal emulator that uses a different character set. Whereas iconv converts the character set of strings or text files at rest, luit converts the input and output of programs running interactively.


  1. Dickey, Thomas E. "XTERM – Change Log". Thomas E. Dickey. Archived from the original on 2017-12-29. Retrieved 2018-01-04.
  2. Rothman, Ernest E; Jepson, Brian; Rosen, Rich (2008-09-18). Mac OS X for Unix Geeks (Leopard): Demistifying the Geekier Side of Mac OS X. ISBN   978-0596555191.
  3. Wagner, Bill (1998). The Complete Idiot's Guide to UNIX . ISBN   978-0789718051.
  4. Thomas E. Dickey. "XTerm – Frequently Asked Questions (FAQ), Who wrote XTerm?". Archived from the original on 2018-06-24. Retrieved 2018-06-04.
  5. Thomas E. Dickey. "XTerm – Frequently Asked Questions (FAQ), What versions are available?". Archived from the original on 2018-06-24. Retrieved 2018-06-04.
  6. Thomas E. Dickey. "What is XTerm?". Archived from the original on 2018-06-24. Retrieved 2018-06-04.
  7. 1 2 "Patch #24 - 1996/8/11 - XFree86 3.1.2Ee". Archived from the original on 2001-12-22. Retrieved 2008-02-25.
  8. "Patch #34 - 1997/1/5 - XFree86 3.2o". Archived from the original on 2001-12-22. Retrieved 2008-02-25.
  9. "Why not emulate VT520?". Archived from the original on 2012-03-11. Retrieved 2007-01-06.
  10. "Patch #254 - 2010/1/6". Archived from the original on 2001-12-22. Retrieved 2008-02-25.
  11. "Patch #120 - 1999/10/28 - XFree86 3.9.16c".
  12. "Patch #39 - 1997/5/24 - XFree86 3.2Xl".
  13. 1 2 "Patch #111 - 1999/7/10 - XFree86 3.9Pw".
  14. "Patch #115 - 1999/9/18 - XFree86 3.9.16a".