tmux и Mosh
Интеграция режима мыши tmux, Mosh для устойчивых соединений и Live Activities
tmux и Mosh
MTerm глубоко интегрируется с tmux и реализует протокол Mosh нативно, предоставляя тебе два мощных инструмента для управления удалёнными сессиями. Это руководство рассказывает, как они работают и как получить от них максимум.
Интеграция с tmux
Если ты используешь tmux на удалённом сервере, MTerm делает его частью приложения, а не отдельным инструментом, работающим внутри терминала.
Автоматическое определение режима мыши
MTerm автоматически определяет, когда tmux имеет включённый режим мыши, и преобразует твои жесты касания в соответствующие события мыши. Никакой настройки со стороны MTerm не требуется — просто убедись, что твой ~/.tmux.conf содержит:
set -g mouse on
С этой настройкой твои сенсорные взаимодействия напрямую соответствуют действиям tmux:
- Нажми на панель tmux, чтобы переключить на неё фокус
- Прокручивай касанием или трекпадом для навигации по истории tmux
Три настройки режима мыши
Ты можешь управлять этим поведением в настройках MTerm:
| Режим | Поведение |
|---|---|
| Auto (по умолчанию) | Отправляет события мыши только когда tmux имеет активный режим мыши. Когда режим мыши выключен, прокрутка использует собственный буфер MTerm. |
| Always ON | Всегда пересылает сенсорные события в tmux, даже если режим мыши не активирован явно. Полезно, если ты хочешь, чтобы все взаимодействия прокрутки и нажатия шли напрямую в tmux. |
| Off | Никогда не отправляет события мыши в tmux. Вся прокрутка использует локальный буфер MTerm. |
Автоматическое определение альтернативного экрана
MTerm определяет, когда терминал переходит в режим альтернативного экрана (используемый приложениями вроде Vim, less, htop и самого tmux). Это влияет на поведение прокрутки — когда альтернативный экран активен, прокрутка передаётся запущенному приложению, а не прокручивает локальный буфер MTerm.
Управление сессиями и окнами tmux
Поскольку MTerm обрабатывает события мыши tmux нативно, ты можешь:
- Нажимать на вкладки окон tmux в строке состояния для переключения окон
- Нажимать на панели tmux для переключения фокуса
- Прокручивать внутри отдельных панелей tmux
- Использовать изменение размера панелей tmux мышью, перетаскивая границы
Обработчик OSC 1212
MTerm реализует обработчик escape-последовательности OSC 1212 для обмена контекстом и уведомлениями между tmux и приложением. Это позволяет реализовать продвинутые сценарии интеграции, где tmux может передавать изменения состояния обратно в MTerm.
Подключение Mosh
Mosh (Mobile Shell) решает одну из самых больших проблем использования SSH с мобильного устройства: обрывы соединения. Стандартный SSH по TCP прекращает работу в момент смены сети — переключение с Wi-Fi на сотовую связь, перемещение между точками доступа или кратковременное прерывание сети. Mosh справляется со всем этим элегантно.
Как работает Mosh
В отличие от SSH, который использует постоянное TCP-соединение, Mosh использует UDP. Это означает:
- Смена сети незаметна. Переключайся с Wi-Fi на сотовую связь и обратно. Твоя сессия никогда не прерывается.
- Кратковременные перебои обрабатываются автоматически. Если ты теряешь связь на несколько секунд (или даже минут), Mosh переподключается без потери состояния.
- Меньшая задержка. Mosh предсказывает твои нажатия клавиш локально и отображает их сразу, корректируя позже, если предсказание было неверным. Это делает набор отзывчивым даже на соединениях с высокой задержкой.
- Нет зависших сессий. TCP-соединения могут зависать на минуты до тайм-аута. Соединения Mosh либо работают, либо сразу сообщают, что отключены.
Настройка Mosh
-
Установи mosh-server на удалённом хосте:
# Ubuntu/Debian sudo apt install mosh # macOS brew install mosh # CentOS/RHEL sudo yum install mosh -
В MTerm отредактируй настройки хоста и измени метод подключения с SSH на Mosh.
-
Подключайся как обычно. MTerm установит начальное SSH-соединение для инициализации сессии Mosh, затем переключится на UDP для реальной терминальной сессии.
Когда использовать Mosh
Mosh идеален, когда ты:
- Работаешь из мест с ненадёжным Wi-Fi (кафе, аэропорты, поезда)
- Часто переключаешься между сетями
- Используешь мобильные данные с переменным уровнем сигнала
- Запускаешь долгоживущие сессии, которые должны пережить перебои сети
Для стабильных соединений в надёжной сети стандартный SSH работает отлично и имеет преимущество в виде поддержки port forwarding и других функций на базе TCP.
Mosh требует план Pro
Live Activities (экран блокировки и Dynamic Island)
MTerm использует iOS Live Activities, чтобы держать тебя в курсе активных сессий, даже когда приложение в фоне.
Виджет на экране блокировки
Когда у тебя есть активная SSH или Mosh сессия, виджет Live Activity появляется на экране блокировки, показывая состояние подключения. Ты можешь с одного взгляда увидеть, подключена ли сессия, переподключается или отключена — без разблокировки устройства и открытия приложения.
Dynamic Island
На устройствах с Dynamic Island (iPhone 14 Pro и новее) MTerm отображает компактный индикатор состояния подключения. Нажми на Dynamic Island, чтобы сразу перейти к терминальной сессии.
Почему это важно
Если ты выполняешь длительную задачу Claude Code и переключаешься на другое приложение, чтобы проверить почту или просмотреть документацию, Live Activities позволяют следить за соединением, не переключаясь постоянно обратно в MTerm. Совмести это с Webhook-уведомлениями, и ты сможешь уверенно выйти из приложения, зная, что тебя уведомят, когда задача завершится или соединение прервётся.