Открыть сервис

GNOME Terminal

GNOME Terminal — это эмулятор терминала для графической среды рабочего стола GNOME, предоставляющий пользователю интерфейс командной строки в оконной среде. Является стандартным терминальным приложением в окружении GNOME, входящим в состав пакета gnome-terminal. GNOME Terminal предназначен для запуска команд, выполнения скриптов, управления файловой системой и взаимодействия с текстовыми консольными программами, поддерживая современные возможности эмуляции терминалов, такие как вкладки, профили и настройка внешнего вида.

История

Разработка GNOME Terminal началась в рамках проекта GNOME, который стартовал в 1997 году. Первая версия терминала была выпущена в составе GNOME 1.0 в 1999 году. Изначально проект назывался gnome-terminal и был написан на языке C с использованием библиотеки GTK+. Основной целью было создание простого и функционального эмулятора терминала, интегрированного в среду GNOME, в отличие от более сложных и ресурсоёмких решений, таких как xterm.

В последующие годы GNOME Terminal активно развивался. В версии 2.0, выпущенной в 2002 году, была добавлена поддержка вкладок, что стало важным нововведением для пользователей, работающих с несколькими сессиями одновременно. В версии 2.22 (2008 год) появилась возможность настройки профилей, позволяющая сохранять различные конфигурации терминала (например, для разных языков или рабочих сред). С переходом на GTK+ 3 в GNOME 3 (2011 год) интерфейс терминала был переработан в соответствии с новым дизайном, включая использование заголовков окон и интеграцию с системой уведомлений.

В 2020-х годах развитие GNOME Terminal замедлилось в пользу нового проекта — Console (также известного как kgx), который представляет собой более минималистичный эмулятор терминала, ориентированный на использование в GNOME 40 и новее. Однако GNOME Terminal остаётся основным и наиболее распространённым терминалом в дистрибутивах Linux, использующих GNOME, таких как Fedora, Ubuntu (до версии 22.04) и Debian.

Функциональные возможности

GNOME Terminal предоставляет широкий набор функций, характерных для современных эмуляторов терминала.

Поддержка вкладок и окон

GNOME Terminal позволяет открывать несколько сессий терминала в одном окне с помощью вкладок. Каждая вкладка может иметь собственный профиль, заголовок и рабочий каталог. Поддерживается перетаскивание вкладок между окнами, а также их объединение.

Профили

Профили — это наборы настроек, которые можно создавать, редактировать и переключать между ними. Профиль включает в себя:

  • Цветовую схему: фоновый цвет, цвет текста, цвета для 16 стандартных цветов ANSI.
  • Шрифт: тип, размер, начертание.
  • Поведение: команда, выполняемая при запуске, размер окна, прозрачность фона.
  • Дополнительные параметры: разрешение на использование звукового сигнала, включение/отключение мигающего курсора, настройка скроллинга.

Настройка внешнего вида

Пользователь может изменять:

  • Прозрачность фона: от полностью непрозрачного до полупрозрачного (с использованием композитного менеджера).
  • Цвета: выбор из предустановленных схем (Solarized, Tango, Linux и др.) или ручная настройка каждого цвета.
  • Шрифт: любой моноширинный шрифт, установленный в системе.
  • Границы и отступы: настройка отступов между текстом и краями окна.

Поддержка Unicode и локалей

GNOME Terminal полностью поддерживает Unicode (UTF-8), что позволяет отображать символы различных языков, включая кириллицу, иероглифы и специальные символы. Настройка кодировки выполняется через профиль.

Управление буфером обмена

Поддерживается копирование и вставка текста как с использованием стандартных комбинаций клавиш (Ctrl+C, Ctrl+V), так и через контекстное меню. Также доступна вставка выделенного текста средней кнопкой мыши (в соответствии с традициями X Window System).

Поиск

Встроенная функция поиска (Ctrl+Shift+F) позволяет искать текст в текущем буфере терминала. Поддерживается поиск как в прямом, так и в обратном направлении, а также с учётом регистра.

Уведомления

GNOME Terminal может отправлять уведомления через систему уведомлений GNOME (например, при завершении длительной команды или при появлении нового вывода в фоновой вкладке). Эта функция настраивается в профиле.

Дополнительные возможности

  • Управление размером окна: возможность установить фиксированный размер в символах или в пикселях.
  • Скроллинг: настройка количества строк в буфере прокрутки (от 0 до неограниченного).
  • Режим совместимости: поддержка эмуляции терминалов xterm, vt100 и других, что обеспечивает совместимость с большинством консольных приложений.
  • Горячие клавиши: полный набор настраиваемых сочетаний клавиш для управления вкладками, окнами и функциями.

Архитектура и внутреннее устройство

GNOME Terminal основан на библиотеке VTE (Virtual Terminal Emulator), которая обеспечивает эмуляцию терминала. VTE — это виджет GTK+, реализующий полную эмуляцию терминала, включая обработку управляющих последовательностей ANSI, поддержку цветов, Unicode и буфера прокрутки. VTE используется не только в GNOME Terminal, но и в других эмуляторах, таких как terminator, tilix и guake.

Приложение написано на языке C с использованием библиотек GTK+ и GLib. Графический интерфейс строится с помощью GTK+, а логика работы (управление вкладками, профилями, настройками) — с помощью GLib. Конфигурация хранится в формате GSettings (на основе dconf), что позволяет легко синхронизировать настройки между сессиями.

Сравнение с другими эмуляторами терминала

GNOME Terminal занимает нишу стандартного, универсального эмулятора терминала для среды GNOME. Его основные конкуренты:

  • Konsole: эмулятор терминала для KDE Plasma, обладает схожей функциональностью, но ориентирован на интеграцию с KDE.
  • xterm: классический эмулятор, минималистичный и быстрый, но с устаревшим интерфейсом и меньшим количеством настроек.
  • terminator: эмулятор, основанный на VTE, специализирующийся на разделении окна на несколько панелей (сетка терминалов).
  • tilix: эмулятор с поддержкой разделения на панели, написанный на D, также использующий VTE.
  • Console (kgx): новый минималистичный эмулятор для GNOME, не поддерживающий вкладки и профили, но более простой и быстрый.

GNOME Terminal выигрывает за счёт полной интеграции с GNOME, поддержки вкладок и профилей, а также широких возможностей настройки. Однако для пользователей, которым требуется только базовый терминал, Console может быть более лёгким решением.

Применение

GNOME Terminal используется в следующих сценариях:

  • Разработка и администрирование: выполнение команд, компиляция кода, управление серверами.
  • Обучение: работа с командной строкой в учебных курсах по Linux.
  • Повседневное использование: запуск скриптов, управление файлами, работа с текстовыми редакторами (vim, nano).
  • Интеграция с IDE: многие интегрированные среды разработки (например, GNOME Builder) используют GNOME Terminal как встроенный терминал.

Критика и ограничения

Несмотря на популярность, GNOME Terminal имеет ряд недостатков, отмечаемых пользователями:

  • Отсутствие разделения окна на панели: в отличие от terminator или tilix, GNOME Terminal не позволяет разделить окно на несколько независимых областей без использования вкладок.
  • Зависимость от GNOME: для полноценной работы требуются библиотеки GNOME, что делает его менее подходящим для других сред рабочего стола.
  • Производительность: на слабых системах или при большом объёме вывода (например, при просмотре логов) может наблюдаться задержка из-за использования VTE.
  • Ограниченная кастомизация: по сравнению с некоторыми другими эмуляторами, настройка внешнего вида (например, использование изображений в качестве фона) недоступна без сторонних патчей.

Интересные факты

  • GNOME Terminal поддерживает режим «полупрозрачности», который работает только при включённом композитном менеджере (например, Mutter).
  • В версии 3.0 была удалена поддержка прозрачности фона из-за перехода на GTK+ 3, но позже она была возвращена в виде опции «Прозрачный фон».
  • Исходный код GNOME Terminal распространяется под лицензией GPL-2.0-or-later, что делает его свободным программным обеспечением.

Источники

  • Документация проекта GNOME: «GNOME Terminal Manual».
  • Официальный сайт проекта GNOME: «GNOME Terminal».
  • Статья «VTE — Virtual Terminal Emulator» на сайте freedesktop.org.
  • Код проекта на GitLab: «GNOME Terminal».
  • Статья «Terminal emulator comparison» на сайте Wikipedia.

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →