GNOME Terminal is a
terminal emulator
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 termin ...
for the
GNOME
A gnome is a mythological creature and diminutive spirit in Renaissance magic and alchemy, first introduced by Paracelsus in the 16th century and later adopted by more recent authors including those of modern fantasy literature. Its characte ...
desktop environment
In computing, a desktop environment (DE) is an implementation of the desktop metaphor made of a bundle of programs running on top of a computer operating system that share a common graphical user interface (GUI), sometimes described as a graphica ...
written by
Havoc Pennington
Robert Sanford Havoc Pennington (born c. 1976) is an American computer engineer and entrepreneur. He is known in the free software movement due to his work on HAL, GNOME, Metacity, GConf, and D-Bus.
History
Havoc Pennington graduated from th ...
and others. Terminal emulators allow users to access a
UNIX shell
A Unix shell is a command-line Interpreter (computing), interpreter or shell (computing), shell that provides a command line user interface for Unix-like operating systems. The shell is both an interactive command language and a scripting langua ...
while remaining on their graphical desktop.
Features
GNOME Terminal (
gnome-terminal
from the command line or
GNOME
A gnome is a mythological creature and diminutive spirit in Renaissance magic and alchemy, first introduced by Paracelsus in the 16th century and later adopted by more recent authors including those of modern fantasy literature. Its characte ...
's Alt-F2 launcher) emulates the
xterm
In computing, 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 shell. An X display can show ...
terminal emulator and provides some of the same features.
Profiles
GNOME Terminal supports multiple profiles. A user can create multiple profiles for their account. Users can then set configuration options on a per-profile basis and assign a name to each profile. The available configuration options range from different fonts, different colors, emission of the terminal bell, the behavior of scrolling, and how the terminal handles compatibility with the backspace and delete key.
When GNOME Terminal starts, it can be configured to launch the user's default shell or run a custom command. These options can be configured per profile, allowing users to execute different commands depending on the profile. For example, some users may have one profile to launch their default shell, another profile that connects to another computer remotely through
SSH
The Secure Shell Protocol (SSH) is a cryptographic network protocol for operating network services securely over an unsecured network. Its most notable applications are remote login and command-line execution.
SSH applications are based on ...
, and finally a profile that opens a
GNU Screen
GNU Screen is a terminal multiplexer, a software application that can be used to multiplex several virtual consoles, allowing a user to access multiple separate login sessions inside a single terminal window, or detach and reattach sessions fro ...
session.
Compatibility
GNOME Terminal supports a couple of different compatibility options for interfacing with older software that depends on varying keyboard-to-ASCII assignments. In computing, there has been ambiguity between the backspace key and delete key. When the user presses the backspace key, the computer can either delete the character before the cursor, or the character at the cursor, which introduces this ambiguity (see
ASCII
ASCII ( ), abbreviated from American Standard Code for Information Interchange, is a character encoding standard for electronic communication. ASCII codes represent text in computers, telecommunications equipment, and other devices. Because of ...
). GNOME Terminal allows the user specify which control character or escape sequence the delete and the backspace keys should generate.
Users can specify this option on a per-profile basis.
Colored text
![Linux command-line](https://upload.wikimedia.org/wikipedia/commons/2/29/Linux_command-line._Bash._GNOME_Terminal._screenshot.png)
Colored text is available in GNOME Terminal, although users may turn this feature off. GNOME Terminal supports a basic set of 16 colors, which the user can choose.
Furthermore, GNOME Terminal has support for a palette of 256 colors by default. Some programs, such as
vim, can use that many colors.
As of version 3.12, it also supports RGB direct true colors.
Background
GNOME Terminal allows changing background settings on per profile basis. Available options are solid color.
Older versions also included
transparent background option, which allowed to see windows beneath terminal window. Although this option was dropped shortly after 3.6 release, several
Linux distribution
A Linux distribution (often abbreviated as distro) is an operating system made from a software collection that includes the Linux kernel and, often, a package management system. Linux users usually obtain their operating system by downloading one ...
s including
Ubuntu
Ubuntu ( ) is a Linux distribution based on Debian and composed mostly of free and open-source software. Ubuntu is officially released in three editions: ''Desktop'', ''Server'', and ''Core'' for Internet of things devices and robots. All the ...
and
Fedora
A fedora () is a hat with a soft brim and indented crown.Kilgour, Ruth Edwards (1958). ''A Pageant of Hats Ancient and Modern''. R. M. McBride Company. It is typically creased lengthwise down the crown and "pinched" near the front on both sides ...
patch
Patch or Patches may refer to:
Arts, entertainment and media
* Patch Johnson, a fictional character from ''Days of Our Lives''
* Patch (''My Little Pony''), a toy
* "Patches" (Dickey Lee song), 1962
* "Patches" (Chairmen of the Board song) ...
their packages of GNOME Terminal to re-enable this feature.
Mouse events
Although GNOME Terminal is primarily a command-line interface and uses the keyboard for most input, GNOME Terminal has limited support for mouse events. GNOME Terminal can capture mouse scrolls and both left and right clicks.
Presently, it cannot
detect the location of the mouse, but some terminal applications can utilize the mouse events, such as
aptitude
An aptitude is a component of a competence to do a certain kind of work at a certain level. Outstanding aptitude can be considered "talent". Aptitude is inborn potential to perform certain kinds of activities, whether physical or mental, and ...
or
vim. At this time, there is no support for touch based gestures.
Text rewrapping on resizing
Since version 3.12 (incorporating version 0.35 of the VTE widget), GNOME Terminal supports text re-wrapping on re-sizing (long lines of text already printed to the terminal's standard out are reflowed to fit the new line width when the dimensions of the terminal window are resized). This behaviour is similar to that of
GNU Screen
GNU Screen is a terminal multiplexer, a software application that can be used to multiplex several virtual consoles, allowing a user to access multiple separate login sessions inside a single terminal window, or detach and reattach sessions fro ...
and other
curses-based applications such as
less
Less or LESS may refer to: fewer than,: not as much.
Computing
* less (Unix), a Unix utility program
* Less (stylesheet language), a dynamic stylesheet language
* Large-Scale Scrum (LeSS), a product development framework that extends Scrum
Othe ...
.
URL detection
GNOME Terminal parses the output and automatically detects snippets of text that appear to be URLs or email addresses.
When a user points to a URL, the text is automatically underlined, indicating that the user may click. Upon clicking, the appropriate application will open to access that resource.
Tabs
Multiple terminal sessions may be organized within single GNOME Terminal window as
tabs.
Switching between active session is possible either by using keyboard shortcuts or by using tab bar – a row of buttons, each corresponding to active session, that appears on top of GNOME Terminal window when multiple tabs are used. Similar to the profile feature, each tab can be assigned a name.
Safe quit
![GNOME Terminal 3](https://upload.wikimedia.org/wikipedia/commons/b/ba/GNOME_Terminal_3.32_quit_warning_screenshot.png)
In recent versions, when the user attempts to quit the entire graphical application, GNOME Terminal will prompt the user with a dialog box asking for confirmation.
This feature is intended to reduce the risk of accidentally closing a terminal window (e.g., by clicking the window's close button) with a job still running. If a job is running and the user closes the window, the job will quit and the user will have to restart the job if exiting was an accident.
This feature is only present when the user closes the application through the graphical interface. If the user attempts to quit with the exit shell command, it is the responsibility of the user's shell to confirm the exit. Although not a GNOME Terminal feature, some shells, e.g.
tcsh
tcsh ( “tee-see-shell”, “tee-shell”, or as “tee see ess aitch”, tcsh) is a Unix shell based on and backward compatible with the C shell (csh).
Shell
It is essentially the C shell with programmable command-line completion, command-l ...
and
bash
Bash or BASH may refer to:
Arts and entertainment
* ''Bash!'' (Rockapella album), 1992
* ''Bash!'' (Dave Bailey album), 1961
* '' Bash: Latter-Day Plays'', a dramatic triptych
* ''BASH!'' (role-playing game), a 2005 superhero game
* "Bash" ('' ...
, offer similar functionality and will notify the user that there are stopped jobs.
Development
GNOME Terminal is largely based on the VTE widget (which replaced the older zvt widget).
VTE, part of the GNOME project, has widgets that implement a fully functional terminal emulator. GNOME Terminal and VTE are both written in
C.
VTE is a library (libvte) implementing a terminal emulator widget for
GTK
GTK (formerly GIMP ToolKit and GTK+) is a free and open-source cross-platform widget toolkit for creating graphical user interfaces (GUIs). It is licensed under the terms of the GNU Lesser General Public License, allowing both free and propriet ...
, and a minimal sample application (vte) using that. Vte is mainly used in gnome-terminal, but can also be used to embed a console/terminal in games, editors, IDEs, etc.
The VTE library provides a terminal emulator widget VteTerminal for applications using the GTK toolkit. It also provides the VtePTY object containing functions for starting a new process on a new pseudo-terminal and for manipulating pseudo-terminals.
At least GNOME terminal,
XFCE terminal, ROX terminal, evilvte,
guake, sakura, terminator and vala-terminal rely on vte.
GNOME Console
GNOME Console is a minimal terminal emulator for the GNOME Desktop Environment. It originated with the
Phosh
Phosh (portmanteau of '' phone'' and ''shell'') is a graphical user interface designed for mobile and touch-based devices. It is the default shell used on several mobile Linux operating systems including PureOS, Mobian, and Fedora Mobility. It ...
mobile interface, which needed an adaptive terminal emulator.
See also
*
List of terminal emulators
This is a list of notable terminal emulators. Most used terminal emulators on Linux and Unix-like systems are GNOME Terminal on GNOME and GTK-based environments, Konsole on KDE, and xfce4-terminal on Xfce as well as xterm.
Character-oriented te ...
*
ANSI escape code
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 charac ...
References
External links
Page at Free Software FoundationGit Repository of GNOME TerminalGit Repository of the VTE Widgetwiki.gnome.org
{{GNOME
Free software programmed in C
Free terminal emulators
GNOME Core Applications
Terminal emulator software that uses GTK