tmux 與 Mosh
tmux 滑鼠模式整合、Mosh 穩定連線及即時動態
tmux 與 Mosh
MTerm 與 tmux 深度整合,並原生實作了 Mosh 協定,為你提供兩款強大的遠端工作階段管理工具。本指南介紹兩者的運作原理以及如何充分利用它們。
tmux 整合
如果你在遠端伺服器上使用 tmux,MTerm 會讓它感覺像應用程式的原生功能,而不是終端內執行的獨立工具。
滑鼠模式自動偵測
MTerm 自動偵測 tmux 是否啟用了滑鼠模式,並將你的觸控手勢轉換為相應的滑鼠事件。MTerm 端無需任何設定 — 只需確保你的 ~/.tmux.conf 包含:
set -g mouse on
啟用後,你的觸控操作會直接對應到 tmux 操作:
- 輕觸 tmux 窗格可切換焦點
- 滑動 觸控或觸控板可捲動瀏覽 tmux 歷史
三種滑鼠模式設定
你可以在 MTerm 的設定中控制此行為:
| 模式 | 行為 |
|---|---|
| 自動(預設) | 僅當 tmux 滑鼠模式處於啟用狀態時傳送滑鼠事件。當滑鼠模式關閉時,捲動使用 MTerm 自身的捲動緩衝區。 |
| 始終開啟 | 始終將觸控事件轉發給 tmux,即使未明確啟用滑鼠模式。適用於希望所有捲動和輕觸操作直接傳送到 tmux 的情況。 |
| 關閉 | 從不向 tmux 傳送滑鼠事件。所有捲動使用 MTerm 的本機捲動緩衝區。 |
備用螢幕自動偵測
MTerm 會偵測終端何時進入備用螢幕模式(Vim、less、htop 和 tmux 本身等應用程式使用)。這會影響捲動行為 — 當備用螢幕處於啟用狀態時,捲動會轉發給正在執行的應用程式,而不是捲動 MTerm 的本機緩衝區。
tmux 工作階段和視窗管理
由於 MTerm 原生處理 tmux 滑鼠事件,你可以:
- 點擊狀態列中的 tmux 視窗分頁切換視窗
- 點擊 tmux 窗格切換焦點
- 在各個 tmux 窗格內捲動
- 透過拖曳窗格邊框使用 tmux 的滑鼠調整窗格大小功能
OSC 1212 處理器
MTerm 實作了 OSC 1212 跳脫序列處理器,用於 tmux 和應用程式之間的上下文共享和通知。這支援進階整合情境,tmux 可以將狀態變更回饋給 MTerm。
Mosh 連線
Mosh(Mobile Shell)解決了從行動裝置使用 SSH 時最大的困擾之一:連線中斷。標準的基於 TCP 的 SSH 在網路變化時會立即斷開 — 從 Wi-Fi 切換到行動網路、在存取點之間移動,或遇到短暫的網路中斷。Mosh 優雅地處理所有這些情況。
Mosh 的運作原理
與使用持久 TCP 連線的 SSH 不同,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 完全可以滿足需求,並且具有支援連接埠轉發和其他基於 TCP 功能的優勢。
Mosh 需要 Pro 方案
即時動態(鎖定畫面和動態島)
MTerm 使用 iOS 即時動態功能,即使應用程式在背景執行,也能讓你了解活躍工作階段的狀態。
鎖定畫面小工具
當你有活躍的 SSH 或 Mosh 工作階段時,鎖定畫面上會出現一個即時動態小工具顯示連線狀態。你可以一目瞭然地看到工作階段是否仍然連線、正在重新連線還是已中斷 — 無需解鎖裝置或開啟應用程式。
動態島
在配備動態島的裝置上(iPhone 14 Pro 及更新機型),MTerm 會顯示精簡的連線狀態指示器。點擊動態島可直接跳轉回終端工作階段。
為什麼這很重要
如果你正在執行較長的 Claude Code 任務並切換到其他應用程式查看郵件或瀏覽文件,即時動態讓你無需反覆切回 MTerm 即可監控連線。結合 Webhook 通知,你可以放心離開應用程式,確信任務完成或連線中斷時會收到通知。