GNOME Terminal

Last updated
GNOME Terminal
Developer(s) The GNOME Project
Stable release
3.52.2 [1]   OOjs UI icon edit-ltr-progressive.svg / 30 April 2024
Repository
Written in C
Operating system Linux and Unix-like
Type Terminal Emulator
License GPL-3.0-or-later
Website wiki.gnome.org/Apps/Terminal

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. [2]

Contents

Features

GNOME Terminal (gnome-terminal from the command line or GNOME's Alt-F2 launcher) emulates the xterm terminal emulator and provides some of the same features. [3]

Profiles

GNOME 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 through SSH, and finally a profile that opens a GNU Screen 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). 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

GNOME Terminal 3.43 with the theme set to Adwaita-dark GNOME Terminal 3.43 Adwaita-dark.png
GNOME Terminal 3.43 with the theme set to Adwaita-dark
Colored texts in GNOME Terminal 3 Linux command-line. Bash. GNOME Terminal. screenshot.png
Colored texts in GNOME Terminal 3

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. [2] Furthermore, GNOME Terminal has support for a palette of 256 colors by default. Some programs, such as vim, can use that many colors. [5]

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 distributions including Ubuntu and Fedora patch their packages of GNOME Terminal to re-enable this feature. [6] [7]

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. [2] [ better source needed ] Presently, it cannot detect the location of the mouse, but some terminal applications can utilize the mouse events, such as aptitude 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 and other curses-based applications such as less. [8]

URL detection

GNOME 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

Multiple terminal sessions may be organized within single GNOME Terminal window as tabs. [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

Quit warning in GNOME Terminal 3.32 GNOME Terminal 3.32 quit warning screenshot.png
Quit warning in GNOME Terminal 3.32

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. [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. tcsh and bash, offer similar[ original research? ] 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). [9] VTE, part of the GNOME project, has widgets that implement a fully functional terminal emulator. GNOME Terminal and VTE are both written in C. [10]

VTE is a library (libvte) implementing a terminal emulator widget for GTK, 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
Original author(s) Zander Brown[ citation needed ]
Developer(s) The GNOME Project
Repository gitlab.gnome.org/GNOME/console/
Operating system Linux and Unix-like
Type Terminal Emulator
License GPL-3.0-or-later
Website apps.gnome.org/app/org.gnome.Console/

GNOME Console

Screenshot of GNOME Terminal GNOME Terminal screenshot.png
Screenshot of GNOME Terminal

GNOME Console is a terminal emulator for the GNOME Desktop Environment. It originated as a terminal emulator specifically for the Phosh mobile 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

Related Research Articles

<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">Xfce</span> Desktop environment

Xfce or XFCE is a free and open-source desktop environment for Linux and other Unix-like operating systems.

gedit Linux text editor

gedit is a text editor designed for the GNOME desktop environment. It was GNOME's default text editor and part of the GNOME Core Applications until GNOME version 42 in March 2022, which changed the default text editor to GNOME Text Editor. Designed as a general-purpose text editor, gedit emphasizes simplicity and ease of use, with a clean and simple GUI, according to the philosophy of the GNOME project. It includes tools for editing source code and structured text such as markup languages.

The taskbar is a graphical user interface element that has been part of Microsoft Windows since Windows 95, displaying and facilitating switching between running programs. The taskbar and the associated Start Menu were created and named in 1993 by Daniel Oran, a program manager at Microsoft who had previously collaborated on great ape language research with the behavioral psychologist B.F. Skinner at Harvard.

<span class="mw-page-title-main">Text-based user interface</span> 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 bitmapped displays and modern conventional graphical user interfaces (GUIs). Like modern GUIs, they can use the entire screen area and may accept mouse and other inputs. They may also use color and often structure the display using box-drawing characters such as ┌ and ╣. The modern context of use is usually a terminal emulator.

<span class="mw-page-title-main">Konsole</span> Terminal emulator

Konsole is a free and open-source terminal emulator graphical application which is part of KDE Applications and ships with the KDE desktop environment. Konsole was originally written by Lars Doelle. It ls licensed under the GPL-2.0-or-later and the GNU Free Documentation License.

<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.

<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.

xterm Standard terminal emulator for the X Window system

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

This article provides basic comparisons for notable text editors. More feature details for text editors are available from the Category of text editor features and from the individual products' articles. This article may not be up-to-date or necessarily all-inclusive.

In computing, a keyboard shortcut is a sequence or combination of keystrokes on a computer keyboard which invokes commands in software.

<span class="mw-page-title-main">Trash (computing)</span> Temporary storage for deleted files

In computing, the trash, also known by other names such as dustbin, wastebasket, and others, is a graphical user interface desktop metaphor for temporary storage for files set aside by the user for deletion, but not yet permanently erased. The concept and name is part of Mac operating systems, a similar implementation is called the Recycle Bin in Microsoft Windows, and other operating systems use other names.

<span class="mw-page-title-main">WindowLab</span> Window manager for Unix-like systems

WindowLab is an X window manager for Unix-like systems. It is based on aewm and retains that window manager's lightweight aesthetic. In many aspects, WindowLab has looked to the Amiga's user interface for inspiration without cloning it completely. Its top-level menu bar is accessed by a right click as on the Amiga and it follows Fitts's law of usability in that once the mouse enters the menu area it is constrained there in both the horizontal and vertical directions. Unlike on the Amiga, the menu bar is not controlled by applications; it is a global launcher menu which is populated by a dot file in the user's home directory containing a list of menu titles and commands.

Twin is a windowing environment with mouse support, window manager, terminal emulator and networked clients, all inside a text mode display. Twin is tested on Linux, FreeBSD, and macOS.

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.

<span class="mw-page-title-main">Windows Terminal</span> Terminal emulator for Windows 10 and later

Windows Terminal is a multi-tabbed terminal emulator developed by Microsoft for Windows 10 and later as a replacement for Windows Console. It can run any command-line app in a separate tab. It is preconfigured to run Command Prompt, PowerShell, WSL and Azure Cloud Shell Connector, and can also connect to SSH by manually configuring a profile. Windows Terminal comes with its own rendering back-end; starting with version 1.11 on Windows 11, command-line apps can run using this newer back-end instead of the old Windows Console.

<span class="mw-page-title-main">GNOME Terminator</span> Terminal emulator influenced by GNOME Terminal

GNOME Terminator is a free and open-source terminal emulator for Linux programmed in Python, licensed under GPL-2.0-only. The goal of the project is to produce a useful tool for arranging terminals. It is inspired by programs such as gnome-multi-term, QuadKonsole, etc. In that the main focus is arranging terminals in grids. Terminator packages exist for Arch, Debian/Ubuntu, Fedora, OpenSUSE, Gentoo, Snap, FreeBSD, OpenBSD. In 2017 took second place in voting at opensource.com, after Gnome Terminal.

<span class="mw-page-title-main">Termux</span> Terminal emulator for Android

Termux is a free and open-source terminal emulator for Android which allows for running a Linux environment on an Android device. Termux installs a minimal base system automatically; additional packages are available using its package manager, based on Debian's.

References

  1. "3.52.2". 30 April 2024. Retrieved 1 July 2024.
  2. 1 2 3 4 5 6 7 Sun GNOME Documentation Team. "GNOME Terminal Manual".
  3. Thomas E. Dickey. "XTERM - Frequently Asked Questions".
  4. "Get To Know Linux: gnome-terminal". 6 February 2009.
  5. "More than 8 Color Vim Syntax Highlighting in GNOME Terminal". Archived from the original on 9 July 2013.
  6. "GNOME-terminal package changelog". Ubuntu. Retrieved 2014-07-02.[ better source needed ]
  7. Debarshi, Ray (2014-05-15). "Transparent terminals are back in Fedora". Debarshi's den. Retrieved 2014-07-02.
  8. Clasen, M. (9 December 2013). "A Terminal Surprise". blogs.gnome.org. Retrieved 13 October 2014.
  9. "Additional Widgets - Terminal Widget". 2003-10-18. Archived from the original on 2008-05-21. Retrieved 2008-05-02.
  10. "VTE Reference Manual". Archived from the original on 4 September 2018. Retrieved 12 January 2016.
  11. "core: Swap gnome-terminal out in favor of console (!1404) · Merge requests · GNOME / gnome-build-meta · GitLab". GitLab. 2021-12-09. Retrieved 2024-05-06.
  12. "Hands On With GNOME's New Terminal for Linux Users". It's FOSS. 2022-04-30. Retrieved 2024-05-06.
  13. "GNOME Release Notes". GNOME Release Notes. Retrieved 2024-05-06.