Guide

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

  1. Установи mosh-server на удалённом хосте:

    # Ubuntu/Debian
    sudo apt install mosh
    
    # macOS
    brew install mosh
    
    # CentOS/RHEL
    sudo yum install mosh
  2. В MTerm отредактируй настройки хоста и измени метод подключения с SSH на Mosh.

  3. Подключайся как обычно. 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-уведомлениями, и ты сможешь уверенно выйти из приложения, зная, что тебя уведомят, когда задача завершится или соединение прервётся.