終端機

Mobile SSH 終端機係為手機同平板操作而設計。佢結合咗終端機畫布、額外按鍵列、多工作階段窗格、捲動處理同重新連線行為。

終端機基礎

多工作階段格網

Mobile SSH 最多可以同時執行八個 SSH 工作階段。每個工作階段以窗格形式顯示喺終端機格網。撳窗格去選取佢,或者用 + Add Session 開始另一個連線。

窗格標題會話你知你身處邊度。喺 Android,佢顯示嗰個窗格真正嘅工作目錄 —— 由 tmux 問返嚟或者由 shell 經 OSC 7 報上嚟,而且喺應用程式開住嗰陣會不斷更新;喺 iOS,佢顯示遠端設定嘅標題,冇嘅話就退返做 user@host:port

關閉窗格會中斷嗰個 SSH 工作階段。返起始畫面嗰陣,使用中工作階段仍然可以透過 Active Sessions 使用。

Eternal Terminal(ET)

每部已儲存伺服器可以揀兩種傳輸方式之一,喺新增或編輯伺服器嗰陣用 Transport 選擇器揀:

ET 會喺伺服器嗰邊令工作階段繼續生存,所以當你部電話轉網絡或者由休眠醒返嗰陣,Mobile SSH 會重新附加返落同一個執行緊嘅 shell,而唔係開一個新嘅。所以佢好啱流動數據、Wi-Fi/流動網絡切換,同埋長時間執行嘅指令。

ET 需要主機上有 etserver 程序。如果伺服器冇,Mobile SSH 可以經現有嘅 SSH 連線幫你安裝同啟動佢 —— 唔使你手動設定伺服器。ET 一得,就揀 Eternal Terminal 傳輸方式連線。

額外按鍵列

兩個平台都將十三個終端機按鍵擺喺你手指可及嘅位置 —— 就係喺觸控鍵盤上唔方便或者根本冇嘅嗰啲。喺 Android 佢係工作階段底部嘅一條長條(接咗硬件鍵盤嗰陣會自己收埋);喺 iOS 佢就浮喺軟鍵盤上面。

兩套預設按鍵數目一樣,但唔完全相同:

AndroidiOS
預設鍵ESC TAB CTRL 方向鍵 HOME PGUP END PGDN ESC TAB CTRL 方向鍵 HOME END PGUP PGDN
分別有退格鍵,冇 Shift有黏性 Shift,冇退格鍵

呢一列永遠唔會滑動。 當啲鍵放唔晒落個闊度,佢哋會平均分配空間並換去第二行;仲有剩嘅就收入 溢出選單。冇任何鍵會匿喺滑動手勢後面或者被螢幕邊緣切走,而已經扳起咗嘅修飾鍵,一樣會作用喺你由溢出選單揀出嚟嘅鍵上面。

CTRL 係黏性修飾鍵:撳 CTRL,再輸入 C,就會傳送 Ctrl-C。Shift 喺 iOS 比喺 Android 黏啲 —— 喺 iOS 佢仲會將你喺軟鍵盤打嘅下一個字元變大階,而喺 Android 佢淨係作用喺呢條列自己嘅鍵上面(Shift+TabShift+方向鍵)。

㩒住方向鍵或者 PGDN 呢類鍵唔放,佢會重複輸入。

鍵盤行為

終端機同螢幕鍵盤採用原生直通連接:你打字嗰陣,每個字元即刻傳去遠端 shell,自動更正同預測建議都關咗,所以鍵盤永遠唔會喺輸入到達 shell 之前改寫佢。噉樣令 Vim、tmux、htop、less、用特殊組合鍵嘅 shell 同遠端密碼提示都保持可預期 —— 冇任何建議緩衝需要關閉。

螢幕鍵盤嘅語音聽寫照樣用得:聽寫嘅文字會好似其他輸入一樣,直接送入 shell。

硬件鍵盤

外接同 Bluetooth 鍵盤喺 Android 同 iOS 上面都可以直接操控終端機。除咗普通字元,Mobile SSH 仲對應方向鍵、Home/EndPgUp/PgDnInsertDeleteEsc、功能鍵 F1F12Ctrl+按鍵同 Alt/Option 作為 Meta 嘅組合鍵,以及 Shift+Tab。修飾鍵會同額外按鍵列嘅黏性修飾鍵一齊組合。

貼上

當你貼上落一個有要求嘅程式(bash、Vim 同其他支援 bracketed-paste 嘅應用程式),內容會用括號貼上標記包住,所以多行剪貼簿內容會以文字方式插入,而唔會逐行被自動執行。只有真正嘅貼上先會咁包住;輸入同聽寫嘅文字唔會受影響。

選取、複製、分享

喺終端機入面長撳可以選取手指下面嗰個詞語,再拉動控制點去調整範圍。選取工具列提供三個操作:

喺終端機入面尋找

搜索成個終端機緩衝區 —— 包括回滾緩衝同可見畫面 —— 並喺各個匹配之間跳轉。喺終端機控制項打開搜索,輸入查詢字串,再逐個匹配去睇。Android 同 iOS 都用得。

色彩、斜體同遠端剪貼簿

Shell 整合同內嵌圖片

外觀同按鍵

喺 Android 同 iOS,Settings 可以俾你自訂終端機:

重設係還原到出廠預設,而唔係將今日呢份清單凍結咗,所以之後版本嘅改良一樣去到你度。改動會即時套用到已經開住嘅窗格。

捲動

Mobile SSH 會根據終端機狀態路由捲動手勢:

喺 Android,喺追蹤滑鼠嘅程式入面㩒一下,會當成喺嗰個字元格上面㩒咗左掣,所以 htop、vim 同㩒一下就聚焦嘅窗格都響應到觸控。喺 iOS,喺同一類程式入面㩒一下係彈鍵盤而唔係㩒滑鼠;淨係滾輪捲動會報上去。

如果你喺向後捲動嘅狀態下輸入,Mobile SSH 會返去即時終端機檢視。

tmux 行為

Mobile SSH 會觀察送出嘅 tmux attach 同新工作階段指令,例如:

tmux attach -t work
tmux a -t work
tmux new -A -s work

當你喺 tmux 入面時連線中斷,應用程式可以記住嗰部伺服器最後嘅 tmux 工作階段名稱,並喺重新連線之後嘗試重新附加。如果冇觀察到明確嘅工作階段名稱,但應用程式知道你曾經喺備用畫面嘅類 tmux 工作階段,佢可能會嘗試通用嘅 tmux attach

呢個行為係盡力而為。如果遠端 tmux 工作階段已經唔存在,遠端 shell 仍然可用。

Tmux 管理器

Mobile SSH 內置咗一個 tmux 管理器,等你唔使打 prefix 組合鍵都可以瀏覽同控制 tmux。喺已連線嘅工作階段撳 Tmux 掣打開佢。佢分三欄列出:

喺管理器入面你可以:

🔔 標示任何代理等緊輸入嘅工作階段,等你一眼就見到停低咗嘅 Claude Code 或者 Codex,並附加落去。呢個同上面嘅 reattach 提示互補:reattach 邏輯喺重新連線時自動還原你上一個工作階段,而管理器就俾你完全手動控制。

兩個平台都可以喺同一部主機上管理多過一個 tmux 伺服器(socket),亦可以按名稱或建立日期排序工作階段。

Herdr 同 Zellij(Android)

Android 為另外兩個多工器提供咗同樣嘅嘢。每個都有自己嘅工具列圖示,而且要應用程式真係喺伺服器上面搵到嗰個程式,個圖示先會出現 —— 所以個工具列會話你知嗰邊裝咗乜,唔使你自己行 which

如果 herdr 或者 Zellij 裝咗但唔喺登入 shell 嘅 PATH 入面,個頁面會提議幫你加返。

每部已儲存伺服器都有一個 Attach on connect 設定:Auto (detect)Nothingtmuxherdr 或者 Zellij。Auto 會揀你喺嗰部伺服器上次用嗰個,跟住揀有活躍工作階段嗰個,再跟住揀裝咗嗰個 —— 如果佢仲未探測過部伺服器,佢寧願咩都唔 attach,都唔會亂估。

iOS 應用程式今日淨係支援 tmux。

Agent alerts

當遠端 AI 編碼代理 —— Claude Code、Codex、Gemini —— 卡住咗等緊你,Mobile SSH 會話你知。佢唔會靠讀你嘅終端機輸出去估。有兩條路徑,佢哋提供嘅詳細程度唔同。

響鈴

開箱即用:由一個你冇睇緊嘅工作階段傳嚟嘅終端機響鈴會觸發提示,好多工具已經送出嘅桌面通知跳脫序列(OSC 9、OSC 777)亦一樣。喺你啱啱打完嘢之後即刻嚟嘅響鈴會被忽略,所以平時 shell 自動補全嗰啲聲唔會嘈你。

呢個唔使任何設定,不過應用程式淨係知有嘢響咗。

Agent hook

要應用程式知道係邊個代理等緊、佢做緊乜,就要喺伺服器上面裝 agent hook:

呢個會喺嗰部伺服器寫入一個細細嘅 shell 腳本,位置係 ~/.mobile-ssh/agent-hook.sh。佢唔綁定任何代理 —— 佢收命令列參數,而唔係去解析某一間供應商嘅格式 —— 所以任何識行指令嘅嘢都可以經佢報告。刪咗個檔案就係乾淨咁解除安裝。

一旦代理經個 hook 報告:

唔使打字都答到

當代理問一條有固定選項嘅問題,應用程式會喺 Agents 清單為每個選項顯示一粒掣 —— 最多六個。喺 Android,你亦可以撳窗格標題入面嘅代理標籤。

你嘅答案唔會打入個工作階段。佢係經另一條通道寫入檔案,再由個 hook 讀返,所以回覆唔會搞亂畫面上面嘅嘢。如果個提問根本冇提供某個選項,應用程式會拒絕送出;如果連線之後斷咗,佢會照直話你知,而唔會靜雞雞失敗。

設定

兩個平台嘅提示預設都係開嘅,通知、聲音、震動,同埋「你而家睇緊嗰個工作階段要唔要都提示」各有獨立開關。

有個預設值值得知:聲音只限耳機。如果冇插線亦冇配對耳機,提示會出通知同震,但唔會出聲。如果你想電話喇叭都聽到,就熄咗佢。

冇靈敏度設定,亦冇提示音選擇器 —— 啲控制項就只係開/關。

全螢幕終端機程式

對於 Vim、less、htop、ncurses 工具同 tmux 窗格等程式: