終端機
Mobile SSH 終端機係為手機同平板操作而設計。佢結合咗終端機畫布、額外按鍵列、多工作階段窗格、捲動處理同重新連線行為。
終端機基礎
- 終端機採用 xterm 風格行為,支援顏色同游標鍵處理。
- 捲動緩衝區預設保留 5000 行,喺 Settings 亦可以設做 1,000、10,000 或者 50,000 行。
- 輸入之前先撳窗格去選取佢。
- 喺終端機窗格上面用兩指捏合可以更改文字大細。手勢穩定之後,Mobile SSH 會調整遠端 PTY 嘅大細。
- 雙撳窗格(或者用佢嘅展開控制項)進入全螢幕模式。喺 Android 用返回鍵,喺 iOS 用收合控制項,返去格網。
多工作階段格網
Mobile SSH 最多可以同時執行八個 SSH 工作階段。每個工作階段以窗格形式顯示喺終端機格網。撳窗格去選取佢,或者用 + Add Session 開始另一個連線。
窗格標題會話你知你身處邊度。喺 Android,佢顯示嗰個窗格真正嘅工作目錄 —— 由 tmux 問返嚟或者由 shell 經 OSC 7 報上嚟,而且喺應用程式開住嗰陣會不斷更新;喺 iOS,佢顯示遠端設定嘅標題,冇嘅話就退返做 user@host:port。
關閉窗格就會斷開嗰個 SSH 連線。返到主畫面後仍然可以經活動工作階段開返連線。標題會顯示連線停頓;設定入面可顯示傳輸速度,亦可揀連線冇回應時調暗畫面或震動。
Eternal Terminal(ET)
兩個平台喺新增或者編輯伺服器時,都可以喺傳輸方式揀以下選項:
- SSH —— 標準 SSH 連線(預設)。
- Eternal Terminal —— ET 工作階段,喺斷網、裝置休眠同 IP 位址轉變之後都唔使重開你個 shell。
ET 會喺伺服器嗰邊令工作階段繼續生存,所以當你部電話轉網絡或者由休眠醒返嗰陣,Mobile SSH 會重新附加返落同一個執行緊嘅 shell,而唔係開一個新嘅。所以佢好啱流動數據、Wi-Fi/流動網絡切換,同埋長時間執行嘅指令。
ET 需要主機執行 etserver。如果冇安裝,Mobile SSH 可以提議透過 SSH 安裝同啟動。睇過並批准設定指令後,揀 Eternal Terminal 連線。跳板機路由一定要用 SSH 傳輸方式。
額外按鍵列
兩個平台都將十三個終端機按鍵擺喺你手指可及嘅位置 —— 就係喺觸控鍵盤上唔方便或者根本冇嘅嗰啲。喺 Android 佢係工作階段底部嘅一條長條(接咗硬件鍵盤嗰陣會自己收埋);喺 iOS 佢就浮喺軟鍵盤上面。
兩套預設按鍵數目一樣,但唔完全相同:
| Android | iOS | |
|---|---|---|
| 預設鍵 | 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+Tab、Shift+方向鍵)。
撳住方向鍵或者 PGDN 呢類鍵唔放,佢會重複輸入。
鍵盤行為
Android 一般終端輸入會直接送去遠端 shell,預設關閉自動更正同預測建議。語音聽寫仍然可以經鍵盤提交文字。
iOS 預設開啟設定 → 終端 → 聽寫同建議,輸入目前一行時可用聽寫、預測文字同更正。想逐個原始按鍵傳送,就關閉呢項,保持鍵盤建議關閉,再開新窗格。
輕觸顯示鍵盤決定撳畫面會唔會彈出軟件鍵盤。Android 預設關閉,iOS 預設開啟;工具列嘅鍵盤掣照樣可用。
硬件鍵盤
外接同 Bluetooth 鍵盤喺 Android 同 iOS 上面都可以直接操控終端機。除咗普通字元,Mobile SSH 仲對應方向鍵、Home/End、PgUp/PgDn、Insert、Delete、Esc、功能鍵 F1–F12、Ctrl+按鍵同 Alt/Option 作為 Meta 嘅組合鍵,以及 Shift+Tab。修飾鍵會同額外按鍵列嘅黏性修飾鍵一齊組合。
貼上
當你貼上落一個有要求嘅程式(bash、Vim 同其他支援 bracketed-paste 嘅應用程式),內容會用括號貼上標記包住,所以多行剪貼簿內容會以文字方式插入,而唔會逐行被自動執行。只有真正嘅貼上先會咁包住;輸入同聽寫嘅文字唔會受影響。
選取、複製、分享
長按終端入面嘅字詞去選取,再拖動控制點調整範圍。選取工具列有:
- 複製 —— 將所選文字放入系統剪貼簿。複製之後選取仍然保持 highlight,方便你分享、重新複製或者延伸範圍。
- 分享 —— 將所選文字傳俾系統分享面板(電郵、筆記、訊息等)。
- 全選 —— 將選取擴展到整個可見終端機緩衝區,然後複製或分享。
- 貼上——將剪貼簿文字插入終端。
喺終端機入面尋找
搜尋成個終端機緩衝區 —— 包括捲動緩衝區同可見畫面 —— 並喺各個匹配之間跳轉。喺終端機控制項打開搜尋,輸入查詢字串,再逐個匹配去睇。Android 同 iOS 都用得。
色彩、斜體同遠端剪貼簿
- 終端機會顯示 24-bit 真彩色 同 斜體,令主題化嘅提示符、語法高亮同 TUI 睇落同桌面上一樣。
- **OSC 52 剪貼簿:**遠端程式可以複製文字去手機剪貼簿。想讀取手機剪貼簿就要另外喺設定明確允許,預設關閉。
- 喺 Android 同 iOS 上,寬 CJK、emoji 同組合字元(字素叢集同零寬連接符)都會正確量度同繪製,而內置嘅 Nerd Font 仲會顯示 powerline、starship、devicon 同 Material Design 圖示字形 —— 系統字型本來會將佢哋顯示成空白方格。
Shell 整合同內嵌圖片
- Shell 整合(OSC 133): 當你嘅 shell 送出 OSC 133 提示符標記時,Mobile SSH 可以喺各個提示符之間逐個跳,並喺長時間指令完成時提示你。Android 同 iOS 都用得。兩個 App 都唔會自己注入啲標記 —— 要你嘅 shell 送出(例如
PROMPT_COMMAND/precmdhook,或者 starship)。喺 Android,提示符導覽要你喺 Settings → Shell integration 開咗先有;喺 iOS,一有標記入到嚟,個選單就會自己出現。 - 揀選輸出: 喺一個指令嘅輸出入面任何位置撳一下,就可以揀選成段輸出 —— 譬如 300 行之前嗰個 build 錯誤,唔止係最後一個指令 —— 然後複製、分享或者延伸範圍。
- **內嵌圖片:**Android 同 iOS 都可以直接畫出 Kitty graphics 協定圖片。圖片用字元格量度,跟住所在行移動,捏合縮放同重新換行後都保留,唔會留低空白。全螢幕程式亦可顯示圖片,位置同普通回捲紀錄分開管理。
- **拼格字形:**方塊、點字、六分格同八分格都由應用程式自己畫,唔使靠字型;所以
chafa、timg同 ANSI 字符畫用邊款字型都可以準確鋪滿網格,冇縫隙同空方框。 - **圖片解像度:**圖片設定可向終端圖片程式報告完整、二分之一或者三分之一顯示解像度,減少流動網絡要傳送嘅像素。
- 真正嘅工作目錄(Android): 窗格標題顯示嗰個窗格實際身處嘅位置,由 tmux 問返嚟或者由 shell 經 OSC 7 報上嚟,而唔係上一個提示符啱啱印咗啲乜。
外觀同按鍵
喺 Android 同 iOS,Settings 可以俾你自訂終端機:
- 字型: 揀系統等寬字型、JetBrains Mono 或者 Source Code Pro。
- 配色: Default、Solarized Dark 或 Light、Gruvbox、Dracula,或者 Nord —— 即時套用到開住嘅窗格。
- 額外按鍵列: 新增、移除、重新排序同隱藏按鍵,自訂你自己嘅跳脫序列按鍵,並重設做預設,仲有即時預覽,會顯示你實際會得到嘅分行結果。Android 將呢啲擺喺 Keys 分頁;iOS 就喺 Extra keys → Customize keys 下面。
- 由預設加入: 大約 45 個按鍵、分做六組嘅面板 ——
F1–F12、^C^D^Z^R^L呢類 Ctrl 組合鍵、|~/_:等符號,同埋修飾鍵。F1–F12係以普通跳脫序列送出,所以唔使FN組合鍵。Android 仲提供一個 📎 Attach a file 鍵,撳咗會打開檔案選擇器並上載入運行緊嘅工作階段;iOS 就提供INS、DEL,同埋一個會展開數字列嘅FN鍵。 - 捲動緩衝區大細: 1,000、5,000、10,000 或者 50,000 行(預設 5,000)。套用喺新開嘅窗格。
- 文字大細: 一個滑桿,同捏合縮放並存。
- 主題: 成個 App 可以揀 System、Light 或者 Dark。
重設係還原到出廠預設,而唔係將今日呢份清單凍結咗,所以之後版本嘅改良一樣去到你度。改動會即時套用到已經開住嘅窗格。
捲動
Mobile SSH 會根據終端機狀態路由捲動手勢:
- 喺正常 shell 輸出,滑動會捲動本機捲動緩衝區。
- 喺滑鼠模式嘅終端機應用程式,捲動會傳送滑鼠滾輪跳脫序列。
- 喺冇滑鼠模式嘅備用畫面應用程式(例如好多 tmux 工作階段),捲動會進入 tmux 複製模式並傳送逐行捲動指令。
兩個平台喺追蹤滑鼠嘅程式入面,輕觸預設係左鍵單擊。iOS 嘅輕觸放置游標可以改為移動游標;Shift 加輕觸就做另一個動作。按住再拖曳嘅滑鼠輸入預設關閉,一般掃動畫面只會捲動。
如果你喺向後捲動嘅狀態下輸入,Mobile SSH 會返去即時終端機檢視。
tmux 行為
Mobile SSH 會觀察送出嘅 tmux attach 同新工作階段指令,例如:
tmux attach -t work
tmux a -t work
tmux new -A -s work
連線中斷時,應用程式會記住附加緊嘅 tmux 工作階段同 socket,重連後可以返去同一個目標。同一主機嘅唔同窗格各自保留附加位置。工作階段唔再存在時,shell 仍然可用。
iOS 轉 socket 時會讀取目前 tmux 前綴,唔會當一定係 Ctrl+B。前綴唔支援或者查詢失敗就顯示提示並停止。輸入、關閉窗格或者斷線都會取消未完成嘅附加步驟;唔會向未能辨認嘅全螢幕程式發送附加指令。
Tmux 管理器
Mobile SSH 有 tmux 管理器,唔使輸入前綴組合鍵就可以瀏覽同控制 tmux。喺已連線工作階段嘅多工器控制掣開啟;有幾個管理器時,長按再揀 tmux。內容分三部分:
- Sessions —— 伺服器上面每一個 tmux 工作階段。
- Windows —— 所選工作階段入面嘅視窗。
- Panes —— 所選視窗入面嘅窗格。
喺管理器入面你可以:
- 將一個工作階段 Attach 落目前嘅終端機。
- Create 新工作階段或視窗,同埋 rename 佢哋。
- 將窗格橫向或縱向 Split、將窗格 zoom,以及 kill 工作階段、視窗或窗格。
- 按最近使用(預設)、名稱或者建立日期排序。
🔔 標示任何代理等緊輸入嘅工作階段,等你一眼就見到停低咗嘅 Claude Code 或者 Codex,並附加落去。呢個同上面嘅 reattach 提示互補:reattach 邏輯喺重新連線時自動還原你上一個工作階段,而管理器就俾你完全手動控制。
兩個平台都可以管理同一主機嘅多個 tmux 伺服器(socket)。管理器嘅附加標記指你而家用緊嘅終端,唔係伺服器上其他客戶端。
Herdr 同 Zellij
Android 同 iOS 都支援 Herdr 同 Zellij。一個工具列控制掣開啟主要已偵測多工器,長按可揀其他程式。只會提供嗰部伺服器搵到嘅程式。管理器內撳伺服器標題可以轉伺服器,多工器選擇器就用嚟轉管理器。
- Herdr 顯示工作階段、工作區、分頁、窗格同智能體狀態。可以喺清單預覽或者回覆等緊輸入嘅智能體。回覆會留喺所選窗格同具名工作階段;傳送提交文字,只按 Enter發送空白確認。支援時可精確聚焦窗格,否則用上層分頁嘅聚焦操作。Herdr 唔使額外 hook 就提供智能體狀態。
- Zellij 列出工作階段、分頁同窗格,並支援 attach、rename、kill 同 split。被 kill 咗嘅工作階段仍然會列出,所以 attach 就會令佢哋復活,而 delete 就會永久忘記佢哋。分頁同窗格嘅詳細資料要 Zellij 0.44 或以上;舊版本嘅話,個頁面會顯示分頁名稱並解釋原因。Split 要有 client 附加咗喺個工作階段度,個頁面會照直解釋,而唔係俾粒一定失敗嘅掣你撳。
如果 herdr 或者 Zellij 裝咗但唔喺登入 shell 嘅 PATH 入面,個頁面會提議幫你加返。
每部儲存咗嘅伺服器都有連線時附加設定:自動偵測、唔附加、tmux、herdr 或者 Zellij。自動模式按偵測同使用紀錄,先揀之前用過嘅多工器,再揀有活動工作階段嘅,最後揀已安裝嘅。冇快取偵測結果就開普通 shell;之後探測只影響下次連線,唔會打斷而家輸入。
Agent alerts
當遠端 AI 編碼代理 —— Claude Code、Codex、Gemini —— 卡住咗等緊你,Mobile SSH 會話你知。佢唔會靠讀你嘅終端機輸出去估。有兩條路徑,佢哋提供嘅詳細程度唔同。
響鈴
終端響鈴可觸發智能體提示,預設忽略啱啱輸入完嘅響鈴。遠端通知序列(OSC 9、OSC 777)同 OSC 133 指令完成提示分開設定;iOS 預設兩者都關閉,要自己開啟。
呢個唔使任何設定,不過應用程式淨係知有嘢響咗。
Agent hook
要應用程式知道係邊個代理等緊、佢做緊乜,就要喺伺服器上面裝 agent hook:
- iOS: Settings → Agent alerts → Install Agent Hook。如果連咗多過一部伺服器,佢會問你揀邊部。
- Android: 長撳工作階段嘅窗格標題,揀 Install agent hooks。
呢個會喺嗰部伺服器寫入一個細細嘅 shell 腳本,位置係 ~/.mobile-ssh/agent-hook.sh。佢唔綁定任何代理 —— 佢收命令列參數,而唔係去解析某一間供應商嘅格式 —— 所以任何識行指令嘅嘢都可以經佢報告。刪咗個檔案就係乾淨咁解除安裝。
一旦代理經個 hook 報告:
- 窗格標題會顯示
claude · needs you,或者寫住佢跑緊嘅工具。 - 代理卡住咗嘅窗格會有琥珀色邊框。你而家已經睇緊嗰個窗格就唔會加 —— 個提問就喺你眼前。
- 工具列一個徽章會數住所有連線上面等緊嘅代理,上限係
9+。 - Agents 畫面會列出每條連線上面嘅每個代理,連同佢做緊乜同等咗幾耐。
唔使打字都答到
當代理問一條有固定選項嘅問題,應用程式會喺 Agents 清單為每個選項顯示一粒掣 —— 最多六個。喺 Android,你亦可以撳窗格標題入面嘅代理標籤。
你嘅答案唔會打入個工作階段。佢係經另一條通道寫入檔案,再由個 hook 讀返,所以回覆唔會搞亂畫面上面嘅嘢。如果個提問根本冇提供某個選項,應用程式會拒絕送出;如果連線之後斷咗,佢會照直話你知,而唔會靜雞雞失敗。
設定
兩個平台預設開啟智能體提示,通知、聲音、震動同活動窗格提示各有開關。iOS 預設都會提示活動窗格,亦可揀只喺背景通知。iOS 只喺應用程式獲准執行時接收呢啲事件;長時間背景暫停會中斷即時 SSH 提示。
有個預設值值得知:聲音只限耳機。如果冇插線亦冇配對耳機,提示會出通知同震,但唔會出聲。如果你想電話喇叭都聽到,就熄咗佢。
冇靈敏度設定,亦冇提示音選擇器 —— 啲控制項就只係開/關。
全螢幕終端機程式
對於 Vim、less、htop、ncurses 工具同 tmux 窗格等程式:
- iOS 想用原始終端輸入,就關閉聽寫同建議及鍵盤建議,再開新窗格。
- 用額外按鍵列輸入
ESC、方向鍵、PGUP同PGDN。 - 如果文字太細,用捏合縮放,然後等一陣等遠端終端機大細穩定。
遠端桌面
兩個平台都可以經 SSH 入面嘅 VNC 連線開遠端桌面。可以重用現有共享螢幕,包括 macOS 螢幕共享,或者批准設定支援嘅 Linux 桌面。遠端伺服器要提供桌面,單有 SSH 權限唔會建立圖形工作階段。Linux 螢幕鏡像需要 X11,唔支援 Wayland;macOS 用現有共享螢幕,唔會建立獨立桌面。
用觸控單擊、拖曳同縮放,再用軟件或實體鍵盤輸入。剪貼簿控制可將手機文字貼去桌面,桌面亦可以複製文字返手機。
螢幕大小有預設同自訂尺寸,會按伺服器記住。iOS 每邊要喺 320–5120 像素之間。伺服器支援時可即時改大小,保留執行緊嘅程式。只有本應用程式建立嘅獨立桌面,先可以確認後透過重新啟動改大小。重用桌面同共享主控台唔會為咗改大小而重啟;Mac 唔支援即時調整時,去佢嘅顯示器設定改解像度。