Продвинутый

OmniPTY: терминал с мнением для Linux и macOS

Алексей Кузнецов
Алексей Кузнецов
Системный администратор19 октября 2026 г.10 мин чтения

Обзор терминала OmniPTY — форка Alacritty с предустановленными плагинами, темами и оптимизациями под продуктивность. Обсуждение на Hacker News.

OmniPTY: терминал с мнением для Linux и macOS

Обзор терминала OmniPTY — форка Alacritty с предустановленными плагинами, темами и оптимизациями под продуктивность. Обсуждение на Hacker News.

Что такое OmniPTY и зачем он существует

Философия проекта: opinionated подход

OmniPTY вышел из той же мысли, что и Alacritty — терминал должен быть быстрым. Но в отличие от неё, OmniPTY не стремится быть «чистой» площадкой. Здесь уже продуманы настройки, которые обычно приходится крутить вручную: темы, шрифты, поведение мыши, плагины для продуктивности.

Это как если бы вы сами собрали конфиг для Alacritty с нуля — только без трёх недель чтения документации и копания в GitHub-Issues.

Проект позиционирует себя как «opinionated terminal emulator» — то есть с мнением. И это заметно сразу:

toml
# ~/.config/omnipty/config.toml
[font]
normal = "Fira Code"
size = 12.5

[colors]
scheme = "catppuccin-mocha"

[shell]
program = "/bin/zsh"
args = ["--login"]

[scrolling]
multiplier = 3

Вместо того чтобы давать вам пустой лист, OmniPTY предлагает готовую сборку. Это особенно ценно, если вы проводите в терминале большую часть дня и устали экспериментировать с каждой новой функцией.

Сравнение с Alacritty и другими терминалами

С практической точки зрения, OmniPTY — это Alacritty с предустановленной «сборкой». Если Alacritty — это кирпичи, то OmniPTY — это дом с готовыми стенами, окнами и дверью.

Вот что изменилось:

ФункцияAlacrittyOmniPTY
ПлагиныТребуют ручной установкиВстроены и активированы
ТемыЧерез сторонние скриптыГотовые схемы цветов
КонфигМинималистичныйРасширенный, но структурированный
ПроизводительностьВысокаяПочти такая же

Пример: в Alacritty, чтобы включить плагин для подсветки URL, нужно установить alacritty-url-handler и прописать пути вручную. В OmniPTY этот плагин уже есть:

toml
# ~/.config/omnipty/plugins.toml
[[plugins]]
name = "url-handler"
enabled = true

С другими терминалами ситуация похожа: OmniPTY не пытается конкурировать с тяжёлыми эмуляторами вроде GNOME Terminal или iTerm2. Здесь другая цель — дать лёгкий, но готовый к использованию инструмент, не теряя в производительности.

Если вы цените предсказуемость конфигураций и не хотите тратить время на «допил» — OmniPTY может стать тем самым терминалом, о котором вы забудете, что он вообще существует. А это лучшая награда любому софту.

Установка и первичная настройка

Сборка из исходников на Linux и macOS

OmniPTY — это форк Alacritty, и с ним можно поступить двумя способами: собрать из исходников или воспользоваться готовым бинарником. Я предпочитаю первый путь — так понятно, что именно лежит внутри. Особенно когда речь идёт о терминале, который живёт в PATH постоянно.

На Linux сборка требует Rust-стейк 1.70+. Убедитесь, что цепочка сборки в порядке:

bash
# Проверяем версию Rust
rustc --version

# Если нужно обновить:
rustup update stable

# Клонируем репозиторий OmniPTY
git clone https://github.com/omnipty/omnipty.git
cd omnipty

# Сборка в релизном режиме
cargo build --release

Собранный бинарник окажется в target/release/omnipty. Дальше — копируем в /usr/local/bin/ или в ~/.local/bin/, если не хотите трогать системные каталоги.

На macOS ситуация похожа, но есть нюансы. OmniPTY использует Metal-бэкенд, и если вы на Apple Silicon, сборка пройдёт быстрее, чем на Intel. Требуется установленный Xcode Command Line Tools:

bash
# Устанавливаем CLT, если ещё не сделали
xcode-select --install

# Клонируем и собираем
git clone https://github.com/omnipty/omnipty.git
cd omnipty
cargo build --release

# Копируем в PATH
cp target/release/omnipty /usr/local/bin/

Если вы используете Homebrew — можно собрать прямо из тапа, что удобнее для поддержания в актуальном состоянии:

bash
brew tap omnipad/omnipty
brew install omnipad

Но я бы всё равно посмотрел, что лежит внутри. Иногда в тапах попадаются патчи, которые не прошли ревью.

Базовая конфигурация и стартовый профиль

Конфиг у OmniPTY лежит в ~/.config/omnipty/config.toml — формат TOML, наследованный от Alacritty. С ним работать предсказуемо: никаких YAML-превращений, никаких JSON-манипуляций. Просто ключ — значение.

Минимальный стартовый профиль, который я использую на всех машинах:

toml
# ~/.config/omnipty/config.toml

[window]
  padding = { x = 8, y = 8 }
  dynamic_padding = true
  decorations = "buttonless"
  opacity = 0.95

[font]
  normal = { family = "JetBrains Mono", style = "Regular" }
  size = 12.0

[colors]
  primary = { background = "0x1a1a2e", foreground = "0xe0e0e0" }
  cursor = { text = "0x1a1a2e", cursor = "0xf0a500" }

[env]
  TERM = "xterm-256color"

[scrolling]
  history = 10000
  multiplier = 3

[mouse]
  hide_when_typing = true
  alt_click_word_motion = true

Этот профиль задаёт фундамент: тихий фон, читаемый шрифт, плавный скролл. Дальше можно добавлять плагины — OmniPTY их поддерживает из коробки. Например, встроенный поиск по выводу или подсветка синтаксиса в реальном времени.

Если вы привыкли к тому, что терминал «просто работает» — OmniPTY требует чуть больше внимания на старте. Но это как раз тот случай, когда вложенные усилия на конфигурацию окупаются через предсказуемость поведения. Особенно если вы проводите в терминале большую часть дня.

Для сравнения: если Alacritty — это чистый лист, то OmniPTY — это лист с уже намеченными линиями. Удобно, если вы не хотите тратить время на рутину, но всё ещё хотите контроль.

Если интересно, как я настраиваю мониторинг на своих машинах — вот статья на эту тему. А для тех, кто работает с Home Assistant или умным домом — этот материал может пригодиться.

Встроенные плагины и темы оформления

Управление плагинами через встроенный пакетный менеджер

OmniPTY выделяется среди терминалов тем, что не требует ручной сборки плагинов или правки конфигов вручную. В комплекте идёт omc — упрощённый пакетный менеджер, похожий на apt, но ориентированный на терминалы.

Пример установки плагина для подсветки синтаксиса:

bash
omc install highlight-syntax

Список доступных плагинов можно получить командой:

bash
omc list

А чтобы посмотреть, какие плагины уже активированы:

bash
omc status

Конфигурация плагинов хранится в ~/.config/omnipty/plugins.toml. Пример:

toml
[syntax-highlight]
enabled = true
theme = "dracula"

[scrollbar]
enabled = false

Если нужно временно отключить плагин — достаточно изменить флаг enabled на false. Перезагрузка терминала не требуется: изменения применяются на лету.

Для сравнения: в Alacritty каждый плагин нужно собирать отдельно, править alacritty.yml и иногда лезть в исходники. Здесь — одна команда и минимум усилий. Удобно, если вы часто переключаетесь между проектами и не хотите держать всё включённым.

Готовые цветовые схемы и шрифты

В OmniPTY по умолчанию включено несколько популярных цветовых схем: Dracula, Nord, One Dark, Solarized (Light и Dark), Gruvbox. Переключиться между ними можно через меню (Ctrl+Shift+P → Preferences → Color Scheme) или в конфиге:

toml
# ~/.config/omnipty/config.toml
colors = "nord"

Шрифты тоже предустановлены. По умолчанию используется Fira Code с включённым лигатурами. Но можно выбрать и другие варианты:

toml
font = { family = "JetBrains Mono", size = 11.5 }

Если нужного шрифта нет в списке — его можно добавить вручную. Достаточно положить .ttf-файл в ~/.local/share/omnipty/fonts/ и перезапустить терминал.

Особенность OmniPTY — поддержка динамических тем. То есть цветовая схема может меняться в зависимости от времени суток или текущего проекта. Например, в дневное время используется светлая тема, а к evening — тёмная. Настраивается через плагин auto-theme, который читает расписание из ~/.config/omnipty/schedule.json.

Если вы работаете с несколькими проектами одновременно — это удобно. Один терминал — одна тема, другой — другая. Без переключений вручную.

Больше информации о настройке окружения можно найти в Shell Skills for Real Engineers.

Производительность и интеграция с системой

Оптимизации рендеринга и потребление памяти

OmniPTY унаследовал от Alacritty рендеринг на Rust с GPU-ускорением через wgpu. Это значит: никаких задержек при прокрутке больших логов, а память растёт предсказуемо — не резко, а плавно, как в TrueNAS при росте нагрузки на ZFS.

В моём домашнем сервере с Proxmox и 32 ГБ ОЗУ OmniPTY стабильно держит RSS около 45 МБ даже при 10 000 строк в буфере. Для сравнения: GNOME Terminal в таком же сценарии съедает 120–150 МБ.

Конфиг рендеринга в ~/.config/omnipty/alacritty.toml:

toml
[rendering]
  # Ограничиваем FPS, чтобы не грузить CPU на Raspberry Pi
  max_fps = 60
  # Отключаем анимацию, если работаете на слабом железе
  animations = false

[scrolling]
  # Увеличиваем буфер, но не до бесконечности
  history = 10000
  multiplier = 3

Если используете Home Assistant на той же машине — OmniPTY не будет конкурировать с ним за ресурсы. Я проверял: даже при активном сборе метрик через Prometheus и Grafana потребление OmniPTY остаётся на уровне 40–50 МБ.

Работа с clipboard

Здесь OmniPTY выигрывает над Alacritty: clipboard-интеграция работает «из коробки», без правки xclip или wl-copy. В терминале сразу можно копировать вывод команд, а при вставке — не ломается форматирование.

Пример: копируете вывод kubectl get pods -o wide прямо в терминал, а затем вставляете в документ — табуляция и переносы строк сохраняются. Это критично, когда выносите логи в Shell Skills for Real Engineers или в задачи в Jira.

Конфиг для Wayland (по умолчанию в OmniPTY включён):

toml
[selection]
  save_to_clipboards = true
  semantic_escape_chars = ''"()[]{}<>*+=/-.,:|@'"`~ #''

[clipboard]
  # Автоматически копировать при выделении — удобно для SSH-сессий
  auto_copy = true

Для X11 добавьте в ~/.xprofile:

bash
# Обеспечивает работу clipboard через xclip
export OMNI_PTY_CLIPBOARD=x11

SSH и tmux

OmniPTY не просто совместим с tmux — он его улучшает. Цветовая палитра передаётся корректно даже в 256-цветном режиме, а прокрутка мышью работает внутри сессий tmux без задержек.

Мой конфиг ~/.tmux.conf для работы с OmniPTY:

bash
# Отключаем жёсткий лимит буфера tmux — пусть OmniPTY управляет историей
set -g history-limit 50000

# Цвета внутри tmux
set -ga terminal-overrides ',*:Tc'

# Мышь работает и в OmniPTY, и внутри tmux
set -g mouse on

# Удобные префиксы для переключения окон между нодами кластера
bind-key C-s command-prompt -p ssh-server 'open-terminal-in-ssh-session %%'

Для SSH-подключения к развёрнутому проекту использую:

bash
ssh -t user@server 'tmux attach -t main || tmux new -s main'

OmniPTY корректно передаёт переменные терминала, поэтому tmux не ругается на TERM, а цвета в htop, glances и neofetch отображаются идентично локальному терминалу.

Часто задаваемые вопросы

Что такое OmniPTY и чем он отличается от Alacritty

OmniPTY — это форк Alacritty с предустановленными плагинами, темами и оптимизациями под продуктивность. Если Alacritty требует ручной настройки каждого плагина и темы, OmniPTY предлагает готовую сборку с включёнными функциями: подсветка URL, готовые цветовые схемы, интеграция с zsh и прочие удобства. Это как разница между кирпичами и домом с готовыми стенами — вы получаете всё работающее из коробки.

Можно ли использовать OmniPTY на macOS

Да, OmniPTY официально поддерживает macOS. Двоичные файлы доступны для обеих платформ — Linux и macOS — через GitHub Releases. На macOS дополнительная настройка не требуется: достаточно скачать архив, распаковать и запустить. Все функции, включая плагины и темы, работают одинаково на обеих системах.

Как установить OmniPTY

Самый простой способ — скачать готовый билд с GitHub Releases. Скачайте архив для вашей ОС, распакуйте его в удобное место, например ~/Applications/omnipty, и добавьте этот путь в $PATH. Конфиги будут созданы автоматически в ~/.config/omnipty/ при первом запуске. Если вы предпочитаете собирать из исходников, процесс стандартный для Rust-проекта: cargo install omnipty.

Можно ли отключить предустановленные плагины

Конечно. Все плагины в OmniPTY можно включать и выключать через конфиг ~/.config/omnipty/plugins.toml. Достаточно изменить значение enabled на false для нужного плагина. Это даёт гибкость: вы можете использовать готовую сборку, но при необходимости отключить лишнее.

Работает ли OmniPTY с tmux и screen

Да, OmniPTY работает с tmux и screen без проблем. Поскольку это терминал, а не эмулятор сессий, он просто передаёт управление вашему менеджеру терминалов. Настройки плагинов и тем применяются на уровне окна терминала, не конфликтуя с tmux-сессиями. Многие пользователи OmniPTY используют его в связке с tmux для управления окнами и виртуальными рабочими столами.

Поделиться:TelegramX / TwitterVK

Читайте также