Xterm

Last updated
xterm
Original author(s) Mark Vandevoorde
Developer(s) Thomas Dickey
Initial release1984;40 years ago (1984)
Stable release
395 [1]   OOjs UI icon edit-ltr-progressive.svg / 24 October 2024;33 days ago (24 October 2024)
Repository
Operating system Unix, Unix-like, MVS OpenVMS, OS/2
Type Terminal emulator
License MIT/X Consortium License
Website invisible-island.net/xterm/ OOjs UI icon edit-ltr-progressive.svg

xterm is the standard terminal emulator for the X Window System. It allows users to run programs which require a command-line interface.

Contents

If no particular program is specified, xterm runs the user's shell. An X display can show one or more user's xterm windows output at the same time. [2] [3] Each xterm window is a separate process, but all share the same keyboard, taking turns as each xterm process acquires focus. Normally focus switches between X applications as the user moves the pointer (e.g., a mouse cursor) about the screen, but xterm provides options to grab focus (the Secure Keyboard feature) as well as accept input events sent without using the keyboard (the Allow SendEvents feature). Those options have limitations, as discussed in the xterm manual. [4]

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." [5]

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, such as hanterm, a variant tailored to Korean speakers, and kterm, which is designed for Japanese speakers. [6] Most terminal emulators for X started as variations on xterm.[ discuss ] [7]

Features

Terminal emulation

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

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

Customization

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. (Updated 2024) Xterm-256color.svg
Chart of the 256 colors available in an xterm with color support. XTerm color numbers and RGB values are shown for each. (Updated 2024)

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.

Protocols

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:

Fonts

Initially Xterm supported only Portable Compiled Format (PCF) bitmap font until 2000 when Xft library was introduced to support modern stroke-based fonts like TrueType. [18]

See also

Related Research Articles

<span class="mw-page-title-main">X Window System</span> 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.

<span class="mw-page-title-main">Terminal emulator</span> Program that emulates a video terminal

A terminal emulator, or terminal application, 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.

<span class="mw-page-title-main">ANSI escape code</span> Method used for display 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.

<span class="mw-page-title-main">Computer terminal</span> Computer input/output device for users

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. Most early computers only had a front panel to input or display bits and had to be connected to a terminal to print or input text through a keyboard. Teleprinters were used as early-day hard-copy terminals and predated the use of a computer screen by decades. The computer would typically transmit a line of data which would be printed on paper, and accept a line of data from a keyboard over a serial or other interface. Starting in the mid-1970s with microcomputers such as the Sphere 1, Sol-20, and Apple I, display circuitry and keyboards began to be integrated into personal and workstation computer systems, with the computer handling character generation and outputting to a CRT display such as a computer monitor or, sometimes, a consumer TV, but most larger computers continued to require terminals.

<span class="mw-page-title-main">VT220</span> Computer terminal from Digital Equipment Corporation

The VT200 series is a family of computer terminals introduced by Digital Equipment Corporation (DEC) in November 1983. The VT220 was the basic version, a text-only version with multi-lingual capabilities. The VT240 added monochrome ReGIS vector graphics support to the base model, while the VT241 did the same in color. The 200 series replaced the successful VT100 series, providing more functionality in a much smaller unit with a much smaller and lighter keyboard. Like the VT100, the VT200 series implemented a large subset of ANSI X.364. Among its major upgrades was a number of international character sets, as well as the ability to define new character sets.

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

<span class="mw-page-title-main">PuTTY</span> 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.

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.

<span class="mw-page-title-main">X terminal</span> Computing device

In computing, an X terminal is a display/input terminal for X Window System client applications. X terminals enjoyed a period of popularity in the early 1990s when they offered a lower total cost of ownership alternative to a full Unix workstation.

<span class="mw-page-title-main">Midnight Commander</span> Orthodox file manager

GNU Midnight Commander is a free cross-platform orthodox file manager. It was started by Miguel de Icaza in 1994 as a clone of the then-popular Norton Commander.

<span class="mw-page-title-main">Tektronix 4010</span> Text and graphics computer terminals

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.

<span class="mw-page-title-main">GNOME Terminal</span> 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 developed at the National Center for Supercomputing Applications of the University of Illinois at Urbana-Champaign, first released 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 with support for multiple simultaneous connections and an FTP client. NCSA Telnet was the first implementation of telnet for the Macintosh or PC that provided the ability to connect to multiple hosts simultaneously.

<span class="mw-page-title-main">Software feature</span> Distinguishing characteristic of a program

In software, a feature is an identifiable characteristic of a computer program.

AbsoluteTelnet is a software terminal client for Windows that implements Telnet, SSH 1 and 2, SFTP, TAPI Dialup and direct COM port connections. It is commercial software, originally released in 1999 and is still in regular development by Brian Pence of Celestial Software.

<span class="mw-page-title-main">ZOC (software)</span>

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.

<span class="mw-page-title-main">SecureCRT</span>

SecureCRT is a commercial SSH and Telnet client and terminal emulator by VanDyke Software. Originally a Windows product, VanDyke later added a Mac OS X version in 2010 with release v6.6 and a Linux version in 2011 with release v6.7.

<span class="mw-page-title-main">VT320</span> Computer terminal from Digital Equipment Corporation

The VT320 is an ANSI standard computer terminal introduced by Digital Equipment Corporation (DEC) in 1987. The VT320 is the text-only version, while the VT330 adds monochrome ReGIS, Sixel and Tektronix 4010 graphics, and the VT340 adds color.

The VT1000 was a monochrome X Window System computer terminal introduced by Digital Equipment Corporation (DEC) in April 1990. The VT1200 replaced the VT1000 later that year, consisting of a code update and a bump in the RAM from 1 to 2 MB. All of the VT1000 series communicated with their host computers over Ethernet, supporting TCP/IP as well as DEC's terminal-oriented Local Area Transport (LAT) protocol. They also included standard serial ports to allow basic terminal emulation, built into the ROM.

Bracketed paste is a mode of some terminal emulators which allows programs running in the terminal to treat pasted text differently from text typed normally.

References

  1. https://invisible-island.net/xterm/xterm.log.html#xterm_395.{{cite web}}: Missing or empty |title= (help)
  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. "O'Reilly Media, Inc.". ISBN   978-0596555191.
  3. Wagner, Bill (1998). The Complete Idiot's Guide to UNIX . Penguin. ISBN   978-0789718051.
  4. "xterm(1)". Security. Retrieved December 21, 2021.
  5. Thomas E. Dickey. "XTerm – Frequently Asked Questions (FAQ), Who wrote XTerm?". Archived from the original on 2018-06-24. Retrieved 2018-06-04.
  6. Thomas E. Dickey. "XTerm – Frequently Asked Questions (FAQ), What versions are available?". Archived from the original on 2018-06-24. Retrieved 2018-06-04.
  7. Ric Lister (27 October 1999). "How to change the title of an xterm". 6. Appendix: escapes for other terminal types.
  8. Thomas E. Dickey. "What is XTerm?". Archived from the original on 2018-06-24. Retrieved 2018-06-04.
  9. 1 2 "Patch #24 - 1996/8/11 - XFree86 3.1.2Ee". Archived from the original on 2001-12-22. Retrieved 2008-02-25.
  10. "Patch #34 - 1997/1/5 - XFree86 3.2o". Archived from the original on 2001-12-22. Retrieved 2008-02-25.
  11. "Patch #280 - 2012/06/24". Archived from the original on 2012-09-26. Retrieved 2021-12-21.
  12. "Why not emulate VT520?". Archived from the original on 2012-03-25. Retrieved 2007-01-06.
  13. "Patch #254 - 2010/1/6". Archived from the original on 2011-04-12. Retrieved 2021-12-21.
  14. "Patch #120 - 1999/10/28 - XFree86 3.9.16c".
  15. "Patch #39 - 1997/5/24 - XFree86 3.2Xl".
  16. 1 2 "Patch #111 - 1999/7/10 - XFree86 3.9Pw".
  17. "Patch #115 - 1999/9/18 - XFree86 3.9.16a".
  18. "XTERM - Change Log". invisible-island.net. Retrieved 2022-11-17.