Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Xterm
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
{{short description|Standard terminal emulator for the X Window system}} {{lowercase}} {{distinguish|text=[[X terminal]] display/input terminal hardware}} {{Infobox software | name = <code>xterm</code> | logo = Icon of XTerm (from 2012).svg | screenshot = Xterm.png | caption = A sample xterm, running the Bash shell, showing a listing of /etc. | author = Mark Vandevoorde | developer = Thomas Dickey | released = {{Start date and age|1984}} | genre = [[Terminal emulator]] | license = [[MIT License|MIT]]/X Consortium License | website = {{Official URL}} | latest release version = {{wikidata|property|edit|reference|P348}} | latest release date = {{start date and age|{{wikidata|qualifier|P348|P577}}}} | operating_system = [[Unix]], [[Unix-like]], [[MVS]] [[OpenVMS]], [[OS/2]] }} '''xterm''' is the standard [[terminal emulator]] for the [[X Window System]]. It allows users to run programs which require a [[command-line interface]]. If no particular program is specified, xterm runs the user's [[Unix shell|shell]]. An X [[display device|display]] can show one or more user's xterm windows [[input/output|output]] at the same time.<ref>{{cite book|isbn=978-0596555191|title=Mac OS X for Unix Geeks (Leopard): Demistifying the Geekier Side of Mac OS X|last1=Rothman|first1=Ernest E|last2=Jepson|first2=Brian|last3=Rosen|first3=Rich|date=2008-09-18|publisher="O'Reilly Media, Inc." }}</ref><ref>{{cite book|isbn=978-0789718051|title=The Complete Idiot's Guide to UNIX|last1=Wagner|first1=Bill|year=1998|publisher=Penguin |url-access=registration|url=https://archive.org/details/completeidiots00wagn}}</ref> Each xterm window is a separate [[Process (computing)|process]], but all share the same [[Computer keyboard|keyboard]], taking turns as each xterm process acquires [[Focus (computing)|''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.<ref>{{cite web |url=https://invisible-island.net/xterm/manpage/xterm.html#h2-SECURITY |title=xterm(1) |at=Security |accessdate=December 21, 2021 }}</ref> 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."<ref>{{cite web | url = https://invisible-island.net/xterm/xterm.faq.html#who_did_it | title = XTerm β Frequently Asked Questions (FAQ), Who wrote XTerm? | author = Thomas E. Dickey | access-date = 2018-06-04 | archive-url = https://web.archive.org/web/20180624104926/https://invisible-island.net/xterm/xterm.faq.html#who_did_it | archive-date = 2018-06-24 | url-status = live}}</ref> 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.<ref>{{cite web | url = https://invisible-island.net/xterm/xterm.faq.html#other_versions | title = XTerm β Frequently Asked Questions (FAQ), What versions are available? | author = Thomas E. Dickey | access-date = 2018-06-04 | archive-url = https://web.archive.org/web/20180624104926/https://invisible-island.net/xterm/xterm.faq.html#other_versions | archive-date = 2018-06-24 | url-status = live}}</ref> Most terminal emulators for X started as variations on xterm.{{dubious|most terminal emulators for X|date=July 2024}}<ref>{{cite web |url=https://tldp.org/HOWTO/Xterm-Title-6.html |title=How to change the title of an xterm |author=Ric Lister |date=27 October 1999 |at=6. Appendix: escapes for other terminal types}}</ref> ==Features== ===Terminal emulation=== Early versions emulated the [[VT102]] and [[Tektronix 4014]]. <ref>{{cite web|url=https://invisible-island.net/xterm/xterm.faq.html#what_is_it|title=What is XTerm?|author=Thomas E. Dickey|access-date=2018-06-04|archive-url=https://web.archive.org/web/20180624104926/https://invisible-island.net/xterm/xterm.faq.html#what_is_it|archive-date=2018-06-24|url-status=live}}</ref> Later versions added control sequences for [[Digital Equipment Corporation|DEC]] and other terminals such as: * [[VT220]]: Added in patch 24.<ref name=p24>{{Cite web|url=https://invisible-island.net/xterm/xterm.log.html#xterm_24 |title=Patch #24 - 1996/8/11 - XFree86 3.1.2Ee |access-date=2008-02-25 |archive-url=https://web.archive.org/web/20011222194057/http://invisible-island.net/xterm/xterm.log.html#xterm_24 |archive-date=2001-12-22 |url-status=live}}</ref> Later, in 1998, xterm added support for VT220 features, such as extending its support of [[ISO-2022]] [[ISO-2022#Shift functions|''shift functions'']] to provide the [[National Replacement Character Set]] feature. * [[VT320]]: Added in patch 24.<ref name=p24 /> * [[VT420]]: DECSTR (soft terminal reset) was added in patch 34.<ref name=p34>{{Cite web |url=https://invisible-island.net/xterm/xterm.log.html#xterm_34 |title=Patch #34 - 1997/1/5 - XFree86 3.2o |access-date=2008-02-25 |archive-url=https://web.archive.org/web/20011222194057/http://invisible-island.net/xterm/xterm.log.html#xterm_34 |archive-date=2001-12-22 |url-status=live }}</ref> In 2012, xterm's default emulation was changed to [[VT420]] to allow [[tmux]] to assume the corresponding left/right margin support.<ref name=p280>{{Cite web|url=https://invisible-island.net/xterm/xterm.log.html#xterm_280 |title=Patch #280 - 2012/06/24 |access-date=2021-12-21 |archive-url=https://web.archive.org/web/20120926050154/https://invisible-island.net/xterm/xterm.log.html#xterm_280 |archive-date=2012-09-26 |url-status=live}}</ref> * [[VT520]]: Although not officially emulated, parts of VT520 features were implemented.<ref>{{Cite web |url=https://invisible-island.net/xterm/xterm.faq.html#why_not_vt520 |title=Why not emulate VT520? |access-date=2007-01-06 |archive-url=https://web.archive.org/web/20120325084746/http://invisible-island.net/xterm/xterm.faq.html#why_not_vt520 |archive-date=2012-03-25 |url-status=live }}</ref> Controls DECSMBV and DECSWBV for setting the margin- and warning-bell volume were added in patch 254.<ref name=p254>{{Cite web |url=https://invisible-island.net/xterm/xterm.log.html#xterm_254 |title=Patch #254 - 2010/1/6 |access-date=2021-12-21 |archive-url=https://web.archive.org/web/20110412000243/http://invisible-island.net/xterm/xterm.log.html#xterm_254 |archive-date=2011-04-12 |url-status=live }}</ref> ===Customization=== [[Image:XtermMenus.png|thumb|right|Example showing xterm's toolbar.]] [[Image:Xterm-256color.svg|thumb|right|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 Window System|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 argument]]s. 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: * [[ANSI X3.64]] * [[Sixel]] * Digital Equipment Corporation VT family: ** [[VT52]] ** [[VT102]] ** [[VT220]] ** [[VT420]] * Tektronix family: ** [[Tektronix 4014]] 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: * Mouse tracking: Support for buttons 4 and 5 was added in patch 120.<ref name=p120>{{Cite web|url=https://invisible-island.net/xterm/xterm.log.html#xterm_120 |title=Patch #120 - 1999/10/28 - XFree86 3.9.16c}}</ref> * 16-color terminal protocol: Added in patch 39.<ref name=p39>{{Cite web|url=https://invisible-island.net/xterm/xterm.log.html#xterm_39 |title=Patch #39 - 1997/5/24 - XFree86 3.2Xl}}</ref> * [[256 colors]] terminal protocol: Added in patch 111.<ref name=p111>{{Cite web|url=https://invisible-island.net/xterm/xterm.log.html#xterm_111 |title=Patch #111 - 1999/7/10 - XFree86 3.9Pw}}</ref> * 88-color terminal protocol: Added in patch 115.<ref name=p115>{{Cite web|url=https://invisible-island.net/xterm/xterm.log.html#xterm_115 |title=Patch #115 - 1999/9/18 - XFree86 3.9.16a}}</ref> * Custom color palette: Ability to specifying the RGB values for palette entries was added in patch 111.<ref name=p111 /> {{clearleft}} === Fonts === Initially Xterm supported only [[Portable Compiled Format]] (PCF) [[bitmap font]] until 2000 when [[Xft]] library was introduced to support modern [[Computer font|stroke-based fonts]] like [[TrueType]].<ref>{{Cite web |title=XTERM - Change Log |url=https://invisible-island.net/xterm/xterm.log.html#xterm_148 |access-date=2022-11-17 |website=invisible-island.net}}</ref> ==See also== {{Portal|Free and open-source software}} * [[List of terminal emulators]] * [[luit]], a character set converter invoked automatically by xterm when necessary * [[Vttest]], vt100/vt220/xterm test utility ==References== {{Reflist}} ==External links== {{Commons|xterm}} * {{Official website}} {{Terminal emulator}} {{XWinSys}} [[Category:Free software programmed in C]] [[Category:Free terminal emulators]] [[Category:Software using the MIT license]] [[Category:X Window programs]]
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)
Pages transcluded onto the current version of this page
(
help
)
:
Template:Cite book
(
edit
)
Template:Cite web
(
edit
)
Template:Clearleft
(
edit
)
Template:Commons
(
edit
)
Template:Distinguish
(
edit
)
Template:Dubious
(
edit
)
Template:Fix
(
edit
)
Template:Infobox
(
edit
)
Template:Infobox software
(
edit
)
Template:Lowercase
(
edit
)
Template:Main other
(
edit
)
Template:Official website
(
edit
)
Template:Portal
(
edit
)
Template:Reflist
(
edit
)
Template:Short description
(
edit
)
Template:Sister project
(
edit
)
Template:Template other
(
edit
)
Template:Terminal emulator
(
edit
)
Template:XWinSys
(
edit
)