GNOME Terminalis aterminal emulatorfor theGNOMEdesktop environmentwritten byHavoc Penningtonand others. Terminal emulators allow users to access aUNIX shellwhile remaining on their graphical desktop.[2]
Developer(s) | The GNOME Project |
---|---|
Stable release | 3.52.2[1]
/ 30 April 2024 |
Repository | |
Written in | C |
Operating system | LinuxandUnix-like |
Type | Terminal Emulator |
License | GPL-3.0-or-later |
Website | wiki |
Features
editGNOME Terminal (gnome-terminal
from the command line orGNOME's Alt-F2 launcher) emulates thextermterminal emulator and provides some of the same features.[3]
Profiles
editGNOME Terminal supports multiple profiles.[4]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 throughSSH,and finally a profile that opens aGNU Screensession.
Compatibility
editGNOME 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 (seeASCII). GNOME Terminal allows the user specify which control character or escape sequence the delete and the backspace keys should generate.[2]Users can specify this option on a per-profile basis.
Colored text
editColored 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.[2]Furthermore, GNOME Terminal has support for a palette of 256 colors by default. Some programs, such asvim,can use that many colors.[5]
As of version 3.12, it also supports RGB direct true colors.
Background
editGNOME Terminal allows changing background settings on per profile basis. Available options are solid color.
Older versions also includedtransparent backgroundoption, which allowed to see windows beneath terminal window. Although this option was dropped shortly after 3.6 release, severalLinux distributionsincludingUbuntuandFedorapatchtheir packages of GNOME Terminal to re-enable this feature.[6][7]
Mouse events
editAlthough 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.[2][better source needed]Presently, it cannot detect the location of the mouse, but some terminal applications can utilize the mouse events, such asaptitudeorvim.At this time, there is no support for touch based gestures.
Text rewrapping on resizing
editSince 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 ofGNU Screenand othercurses-basedapplications such asless.[8]
URL detection
editGNOME Terminal parses the output and automatically detects snippets of text that appear to be URLs or email addresses.[2]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
editMultiple terminal sessions may be organized within single GNOME Terminal window astabs.[2]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
editIn 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.[2]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.tcshandbash,offer similar[original research?]functionality and will notify the user that there are stopped jobs.
Development
editGNOME Terminal is largely based on the VTE widget (which replaced the older zvt widget).[9]VTE, part of the GNOME project, has widgets that implement a fully functional terminal emulator. GNOME Terminal and VTE are both written inC.[10]
VTE is a library (libvte) implementing a terminal emulator widget forGTK,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,ROXTerm, evilvte,guake,sakura, terminator and vala-terminal rely on VTE.
GNOME Console
editGNOME Consoleis a terminal emulator for the GNOME Desktop Environment. It originated as a terminal emulator specifically for thePhoshmobile interface, which needed an adaptive terminal emulator.[11]Since GNOME version 42 it has been a part of the default app set for GNOME, replacing GNOME Terminal.[12][13]
See also
editReferences
edit- ^"3.52.2".30 April 2024.Retrieved1 July2024.
- ^abcdefgSun GNOME Documentation Team."GNOME Terminal Manual".
- ^Thomas E. Dickey."XTERM - Frequently Asked Questions".
- ^"Get To Know Linux: gnome-terminal".6 February 2009.
- ^"More than 8 Color Vim Syntax Highlighting in GNOME Terminal".Archived fromthe originalon 9 July 2013.
- ^"GNOME-terminal package changelog".Ubuntu.Retrieved2014-07-02.[better source needed]
- ^Debarshi, Ray (2014-05-15)."Transparent terminals are back in Fedora".Debarshi's den.Retrieved2014-07-02.
- ^Clasen, M. (9 December 2013)."A Terminal Surprise".blogs.gnome.org.Retrieved13 October2014.
- ^"Additional Widgets - Terminal Widget".2003-10-18. Archived fromthe originalon 2008-05-21.Retrieved2008-05-02.
- ^"VTE Reference Manual".Archived fromthe originalon 4 September 2018.Retrieved12 January2016.
- ^"core: Swap gnome-terminal out in favor of console (!1404) · Merge requests · GNOME / gnome-build-meta · GitLab".GitLab.2021-12-09.Retrieved2024-05-06.
- ^"Hands On With GNOME's New Terminal for Linux Users".It's FOSS.2022-04-30.Retrieved2024-05-06.
- ^"GNOME Release Notes".GNOME Release Notes.Retrieved2024-05-06.