Терминал
DR-Terminal поставляется с собственным эмулятором VT100/xterm, написанным с нуля на Kotlin — без WebView. Он поддерживает xterm-256color, альтернативный буфер (vim/less/nano), буфер обмена OSC 52, события фокуса и отслеживание мыши (mc, htop).
Клавиатура и горячие клавиши
| Сочетание | Действие |
|---|---|
| Ctrl+C — когда выделен текст | Скопировать выделение в буфер обмена. Без выделения обычный SIGINT доходит до удалённого процесса. |
| Enter — когда выделен текст | Альтернативное сочетание для копирования (удобно на клавиатурах без Ctrl). |
| Правый клик / меню «Копировать» | Контекстное меню после выделения — доступно всегда. |
| Ctrl+V | Вставка. Многострочное содержимое буфера обмена открывает диалог подтверждения многострочной вставки. |
| Shift+Insert | Вставка — классическая привычка X11/Windows. Обычный Insert по-прежнему доходит до оболочки. |
| Shift+Delete | Скопировать выделение и очистить его (в стиле «вырезать»). |
| Ctrl+F | Открыть панель поиска (см. Поиск в выводе). Оболочка нажатия не видит. |
| Ctrl+Shift+S | Открыть окно выбора сниппета (см. Сниппеты). Обычный Ctrl+S по-прежнему доходит до оболочки. |
| Панель быстрых клавиш | esc, ctrl, tab, стрелки, частые символы shell, клавиша snip и переключатель ⌨ — полезно на мобильных. Функциональные и навигационные клавиши находятся на слое fn клавиатуры DevOps и в необязательном ряду F-клавиш. |
| Размер шрифта | Регулятор A- / A+ в меню терминала; диапазон 8–32 pt. |
На macOS Cmd работает везде, где выше указан Ctrl: Cmd+C, Cmd+V, Cmd+F и Cmd+Shift+S ведут себя так же, как их варианты с Ctrl.
Клавиатура DevOps (Android и iOS)
Системные клавиатуры мешают работать в терминале: автозамена корёжит sudo -rf, символы shell спрятаны на два слоя глубже, а нелатинские раскладки часто вовсе не имеют ASCII. В DR-Terminal есть собственная всегда-ASCII клавиатура DevOps: её рисует само приложение, а клавиши идут прямо в терминал — системный IME их вообще не видит.
- Портрет — классическая панель внизу экрана.
- Ландшафт — режим split: два кластера под большие пальцы у левого и правого краёв, нарисованные как полупрозрачное стекло поверх терминала, так что сессия остаётся видна на всю ширину.
Слои: строчные, прописные (Shift), цифры, символы shell (| ~ $ & ' " \ …`) и слой fn/nav (F1–F12, стрелки, Home/End, PgUp/PgDn). Ctrl/Alt/Shift «залипают»: одно касание взводит их на следующую клавишу, двойное — фиксирует. Удерживайте ⌫, стрелки или пробел для автоповтора; долгое нажатие на клавишах с меткой в углу даёт альтернативный символ.
- Граббер (пилюля) сверху переключает FULL ↔ MINI — MINI оставляет только необходимое (Esc, Tab, Ctrl, стрелки, ⌫, ↵) для сессий с htop/логами. Ландшафт помнит собственное состояние и стартует в MINI.
- Перетащите граббер, чтобы сдвинуть кластер; он примагничивается к ближайшему краю. Отпустите один кластер на другом, чтобы слить их в одну плавающую клавиатуру; пилюля разделения снова их разводит.
- Свайп вниз по клавишам прячет клавиатуру; плавающая кнопка ⌨ возвращает её. Клавиша ⌨ переключает на системную клавиатуру, когда нужны диакритика или эмодзи.
Настройки → Клавиатура (мобильные): Клавиатура по умолчанию — Auto выбирает клавиатуру DevOps, если системная локаль нелатинская (арабский, иврит, CJK…), иначе системный IME; Раскладка — Auto/QWERTY/QWERTZ/AZERTY; ползунки Непрозрачность и Размер клавиш; Показывать F-клавиши — постоянно видимый ряд F1–F10 над клавиатурой, удобно для работы с mc/htop. Все настройки клавиатуры переносятся в зашифрованной резервной копии конфигурации, экспортированной с телефона или планшета.
Выделение, копирование, вставка
Desktop: проведите мышью, чтобы выделить. Двойной клик выделяет слово, тройной — строку. Отпускание копирует через сочетания выше; правый клик открывает меню.
Android и iOS: долгое нажатие в любом месте терминала начинает выделение, затем проведите, чтобы расширить, и отпустите, чтобы скопировать — текст попадает в системный буфер обмена. Короткое касание по-прежнему проходит в оболочку; смахивание по-прежнему прокручивает историю, так что привычные жесты продолжают работать.
- Значок вставки в верхней панели терминала — одно касание вставляет содержимое буфера обмена в позицию курсора. Если буфер пуст, показывается нейтральный снэкбар Нечего вставить.
- Выделить текст в меню терминала — флажок, который держит режим выделения включённым, пока вы его не выключите, так что каждое проведение выделяет, а не прокручивает и не проходит касанием в оболочку.
- Долгое нажатие на строке приглашения (строка, на которой находится курсор, и только когда вы не прокрутили историю) выполняет вставку вместо начала выделения — естественно, когда вы просто хотите вставить буфер туда, где набираете.
OSC 52 позволяет удалённым программам (tmux, vim, fzf) копировать в ваш системный буфер обмена через escape-последовательность — двунаправленно.
Многострочная вставка: когда буфер обмена содержит переводы строк, вы видите диалог предпросмотра многострочной вставки — защищает от вставки команд, которые вы не проверили.
Прокрутка и история
Буфер прокрутки хранит до 1000 строк. Колесо или касание-перетаскивание прокручивают; курсор корректно покидает область просмотра (поведение xterm), и любое выделение прокручивается вместе с текстом.
Очистить историю находится на вкладке «История» боковой панели и стирает сохранённую историю команд этого подключения — буфер прокрутки на экране она не трогает.
У правого края терминала появляется полоса прокрутки (Desktop) — захватите её мышью, чтобы пролистать историю; Android и iOS прокручиваются касанием. Скорость прокрутки колесом настраивается в Настройки → Терминал (строк на один щелчок колеса).
Альтернативный буфер (полноэкранные приложения)
Программы вроде vim, less, nano, htop, mc переключаются в альтернативный буфер — отдельный экран, который исчезает при выходе, не засоряя основной буфер прокрутки.
Поиск в выводе
Нажмите Ctrl+F (Cmd+F на macOS), чтобы открыть панель поиска. Она ищет в буфере прокрутки в реальном времени, подсвечивая каждое совпадение и переходя между ними. Подсветка — это наложение на этапе отрисовки, она никогда не вставляет ничего в поток SSH.
Шрифт, тема, подсветка
- Размер шрифта — регулятор A-/A+ в меню терминала или ползунок в Настройки → Внешний вид; диапазон 8–32 pt. В разделе Пользовательское на вкладке «Тема» боковой панели размер шрифта задаётся отдельно для каждого псевдонима — в диапазоне 6–72 pt.
- Тема интерфейса — светлая / тёмная / системная (всё приложение, не терминал).
- Тема терминала — см. раздел Тема ниже; тема задаётся для каждого псевдонима.
- Правила подсветки — Настройки → Терминал → Подсветка вывода. Добавьте регулярное выражение + цвет, например, окрашивайте
ERRORв красный.
Сниппеты
Сниппеты — это многоразовые шаблоны команд, которые можно отправить в любой сеанс. Шаблон может содержать типизированные плейсхолдеры — ping -c {count:int=4} {host:ip} — и запуск такого сниппета открывает небольшой диалог с запросом значений (плейсхолдеры int, ip, bool и enum получают соответствующие поля ввода и валидацию). Сниппет без плейсхолдеров выполняется сразу. Выполнить сразу решает, отправляется ли Enter за вас или команда просто появляется в приглашении для редактирования.
Способы запуска:
- Ctrl+Shift+S (Cmd+Shift+S на macOS) — окно выбора с поиском по мере ввода; Enter запускает первое совпадение.
- Сниппеты в меню терминала — то же окно выбора без клавиатуры.
- Вкладка Сниппеты на боковой панели терминала — недавно использованные первыми, один клик для запуска, плюс ссылка на редактор.
- Закреплённая клавиша snip на мобильной панели быстрых клавиш и на клавиатуре DevOps. В пристыкованном режиме клавиатура DevOps также предлагает слой плиток сниппетов — удобную для касаний сетку, где недавние сниппеты видны сразу.
У каждого сниппета есть область видимости: виден для всех хостов, одной группы или одного хоста. Необязательный фильтр Системы (Debian, RHEL, Arch, macOS…) сужает её дополнительно, так что сниппеты с apt появляются только на хостах, определённых как семейство Debian, — определение приходит из проверки при входе (см. Сведения о хосте ниже). Показывать только при наличии дополнительно скрывает сниппет, когда его команда подтверждённо отсутствует на хосте. Сеансы без SSH-хоста (локальные, serial, Telnet) видят только глобальные сниппеты.
Управляйте сниппетами в Настройки → Терминал → Сниппеты: добавляйте, редактируйте, дублируйте и удаляйте, задавайте область видимости, системы и флаг немедленного выполнения. Встроенный каталог из более чем сотни готовых сниппетов — по системам (Debian, RHEL, Arch, Alpine, SUSE, BSD, macOS) плюс наборы Docker, сеть, хранилище и инструменты — загружается при первом запуске; редактируйте и удаляйте их как свои собственные.
История команд и автодополнение
Каждое сохранённое подключение запоминает свою историю команд (если включено Сохранять историю). Стрелка вверх вызывает ранее введённые команды, а поле автодополнения предлагает имена команд, доступных на сервере, — живое дополнение оболочки, отдельное от истории того, что вы набирали.
Сведения о хосте (живые показатели)
После входа в SSH-сеанс приложение незаметно опрашивает хост — имя ОС, модель CPU и число ядер — и начинает периодически считывать живые показатели: load average, память, swap и использование диска по точкам монтирования; каждый показатель рисуется полосой использования, которая становится янтарной выше 75% и красной выше 90%.
- Вкладка Host боковой панели терминала (крайняя левая и вкладка по умолчанию для SSH-сеансов) показывает всё сразу.
- Те же строки появляются в диалоге Информация о подключении.
- Настройки → Терминал → Мониторинг ресурсов (CPU/RAM/диск) включает и выключает опрос глобально и задаёт интервал обновления (5–300 с). Форма подключения может переопределить интервал для конкретного хоста, а её выпадающий список Проверка системы при входе выбирает, как часто выполняется полная проверка: каждое подключение, раз в день, раз в неделю или отключено.
Вкладки сеансов
Каждый сеанс — SSH, SFTP, локальный, serial, Telnet — живёт во вкладке. Долгое нажатие (мобильные) или правый клик (desktop) по вкладке либо по карточке в списке «Активные сессии» открывает её меню: Переименовать, Информация о подключении, Перезапустить сессию и Закрыть вкладку. Перезапустить сессию разрывает соединение и подключается заново с нуля, сохраняя вкладку — удобно после перезагрузки сервера. Когда удалённый сеанс обрывается, в меню терминала также появляется пункт Переподключиться, восстанавливающий соединение на месте (локальные терминалы его не предлагают — откройте новый).
Боковая панель (правая) — Host / История / Дополнение / Сниппеты / Тема
Справа от терминала (Desktop / планшет) находится сворачиваемая панель с пятью вкладками. Откройте её стрелкой у правого края; измените размер, перетаскивая левый край. Состояние для каждого псевдонима — каждое сохранённое подключение запоминает свою вкладку и ширину.
- Host — вкладка по умолчанию для SSH-сеансов: определённая система, CPU и живые показатели. См. Сведения о хосте выше.
- История — недавно набранные команды. Клик вписывает команду в терминал; переключатель рядом решает, отправлять ли её автоматически с Enter. Очистить историю тоже находится здесь.
- Дополнение — живые подсказки имён команд из дополнения оболочки сервера. Можно приглушить для каждого псевдонима (значок колокольчика).
- Сниппеты — ваши сниппеты для этого хоста, недавно использованные первыми. См. Сниппеты выше.
- Тема — внешний вид терминала. См. раздел ниже.
Тема — темы терминала (435 схем)
Тема задаётся для каждого псевдонима — у каждого подключения свой фон, цвет текста и 16-цветная палитра ANSI (те же индексы, что использует ls --color: стандартные 0–7 + яркие 8–15).
- Встроенный каталог из 435 тем — поле Поиск… фильтрует по имени. В каждой строке показаны фон, цвет текста и полоса из 16 образцов. Клик применяет тему мгновенно.
- Пользовательское (этот псевдоним) — на desktop боковая панель также позволяет вручную редактировать шрифт, фон, цвет текста и 16 слотов ANSI. У каждого слота есть свой сброс (⟲); у всей палитры — отдельный сброс.
- Синие каталоги в
ls --color— это ANSI 4 (BLUE) или 12 (BRIGHT_BLUE) — чтобы изменить их, выберите другую тему или отредактируйте эти два образца.
Android и iOS: вся боковая панель desktop заменена единственным значком палитры в верхней панели терминала. Коснитесь его для нижнего листа с тем же каталогом из 435 тем, с поиском и живым предпросмотром образцов. Касание строки применяет тему и закрывает лист, чтобы вы сразу увидели результат; кнопка Сброс вверху сбрасывает все переопределения, и псевдоним возвращается к своим значениям по умолчанию.
435 встроенных тем взяты из коллекции с открытым исходным кодом edcet/terminal-themes (MIT).