Galaxy Z Fold 4でrootを取らずにTermuxを快適運用する話。
Galaxy Z Fold 4を開いたときの大画面は、外出先やリビングでターミナルを叩いたり、AIと対話してコードを書かせたりする環境として非常に見通しが良い。
ただ、Android上で本格的なCLI環境を構築しようとすると、「root化しないと不便なのではないか」「画面のソフトウェアキーボードだとミスタイプが頻発してストレスが溜まる」「スリープで接続が切れる」といった実用上の壁に直面しやすい。
今回は、セキュリティや日常利用の利便性を損なわない完全「非root」環境を前提に、Termuxを母艦サーバー(ThinkStation PGX)直結の超快適ターミナルとして仕立て上げた。その構成と設定手順を記録しておく。
環境と全体構成
今回の構成は以下の通りである。
| 項目 |
構成 |
役割・備考 |
| クライアント端末 |
Galaxy Z Fold 4(Android 14 / One UI 6) |
完全非root。メイン機として通常運用 |
| ターミナル環境 |
Termux(F-Droid版) |
Google Play版は更新停止のためF-Droid版が必須 |
| ネットワーク |
Tailscale |
メッシュVPN経由で外出先からも母艦に直結 |
| 作業母艦サーバー |
ThinkStation PGX(Ubuntu Linux) |
LLM推論・開発環境・tmuxセッションのホスト |
root化は一切行わない。F-Droid版のTermuxとTailscale、そして適切な設定を組み合わせるだけで、母艦との双方向接続や快適な操作感は十分に確立できる。
課題1:文字入力ストレスを根絶する「8×3完全整列キーバー」
スマートフォンでCLIを運用する際、最大のストレスになるのが「画面上のソフトウェアキーボード(Gboard等)でのタイピング」である。物理的な突起がないためミスタイプが多発し、特にAIエージェントとの対話で頻出する番号選択や定型指示を毎回手打ちするのは耐え難い。
そこで、Termuxの拡張キーバー(Extra Keys)を「8×3=24キー」の完全整列グリッドに再構築した。各行のキー数を8個に統一することで、幅の不揃いによる視認性の悪化を防ぎ、さらに右親指が最も自然に届く右端エリアに最重要アクションを集約している。

実際に運用している最終設定(`~/.termux/termux.properties`)は以下の通りである。
# ~/.termux/termux.properties on Galaxy Z Fold 4
allow-external-apps = true
bell-character = ignore
enforce-char-based-input = true
ctrl-space-workaround = true
disable-hardware-keyboard-shortcuts = true
# キーバー(Extra Keys)の高さスケーリング(誤タップ防止のため最大値)
terminal-toolbar-height = 3.0
# セッション操作ショートカット
shortcut.create-session = ctrl + t
shortcut.previous-session = ctrl + 1
shortcut.next-session = ctrl + 2
# 8×3 完全整列グリッド(実戦投入の最終レイアウト)
extra-keys = [ \
[{macro: "1 ENTER", display: "1"}, {macro: "2 ENTER", display: "2"}, {macro: "3 ENTER", display: "3"}, {macro: "4 ENTER", display: "4"}, {macro: "agy ENTER", display: "agy"}, {macro: "ar ENTER", display: "ar"}, {key: ENTER, display: "Enter"}, {macro: "keepして次のセッション ENTER", display: "KEEP"}], \
["ESC", {macro: "CTRL 1", display: "◀"}, {macro: "CTRL t", display: "+"}, {macro: "CTRL 2", display: "▶"}, "HOME", "UP", "END", {macro: "ブログ記事にして ENTER", display: "BLOG"}], \
[{key: PASTE, display: "PASTE"}, {macro: "CTRL e CTRL u", display: "CLR"}, {macro: "CTRL c", display: "C-c"}, {macro: "e ENTER", display: "EXIT"}, "LEFT", "DOWN", "RIGHT", {key: KEYBOARD, display: "KB"}] \
]
# URLタップで直接ブラウザを開く
terminal-onclick-url-open = trueこのレイアウトにより、ガラス面にキーボードを広げることなく、親指タップだけで以下の操作が完結する。
- `1` 〜 `4`: AIエージェントからの選択肢提示で頻出する1〜4をワンタップで番号送信。
- `AGY`: Antigravity CLIを即時起動(`agy` マクロ)。
- `AR`: CLIセッションの再開・リロード(`ar` マクロ)。
- `ENTER`: ソフトウェアキーボードを開かずにコマンドを即実行できる物理Enterキー。
- `[ KEEP ]`: 会話ログの永続化と引き継ぎマクロ(`keepして次のセッション`)を一発実行。
- 右上 `[ KEEP ]`: セッション記録&引き継ぎ。
- 右中 `[ BLOG ]`: ブログ記事執筆マクロ(`ブログ記事にして`)。
- 右下 `[ KB ]`: 必要な時だけソフトウェアキーボードを開閉。
- タブ(ウィンドウ)の新規作成(`+`)や巡回(`◀` `▶`)、HOME / END / 十字キー、クリップボード貼り付け(`PASTE`)、行クリア(`CLR`)、シグナル中断(`C-c`)、セッション終了(`EXIT`)を網羅。
通常時はソフトウェアキーボードを完全に閉じ、キーバーのボタンをタップするだけで対話や運用が進むため、ガラス面タイピングによる疲労とミスタイプを物理的に根絶できる。
画面分割は不要。大画面は「1画面フル活用」と「タブ切り替え」が正解
大画面の折りたたみスマホを手に入れると、ついPCと同じようにtmuxで画面を縦横に分割(ペイン分割)したくなる。
しかし、実際に運用してみると画面分割は全く使わなくなった。
いくら大画面といってもスマートフォンである。画面を半分に割ってしまうと一行あたりの文字数が極端に減り、コードやログが激しく折り返されてかえって視認性が落ちる。
結論として、「1つの作業画面を画面いっぱいに広々と表示し、並行作業が必要な場合はtmuxのウィンドウ(タブ)を増やして切り替える」という運用が最も合理的だった。
キーバー中段にある `+`(新規タブ作成)、`◀`(前タブ)、`▶`(次タブ)を親指でポチポチ切り替えるだけで、大画面の視認性を100%活かしたまま快適にマルチタスクをこなすことができる。
課題2:WezTermライクな起動・終了ライフサイクル
PC上のWezTermのように、「アプリを開いた瞬間に母艦のtmuxセッションに直結し、画面は常にまっさらな新品状態から始まり、終了時はアプリごと綺麗に消える」という挙動をTermuxで実現した。
Termux側の `~/.bashrc` を以下のように記述している。
# ~/.bashrc on Galaxy Z Fold 4
# sshd の常時生存を保証
pgrep -f sshd >/dev/null || sshd
# スリープ中も切断されないよう常駐ロックを保証
termux-wake-lock 2>/dev/null || true
# 画面をクリアして、母艦側の古いセッションを破棄&新品作成
clear
ssh -t pgx "tmux kill-session -t zfold 2>/dev/null; tmux new-session -s zfold"
# SSHセッション終了時にTermuxアプリごと完全自動終了
exit
アプリをタップして起動した瞬間に画面がクリアされ、ThinkStation PGX上で `zfold` 専用のtmuxセッションが新規に立ち上がる。そして作業が終わったら `exit`(または下段キーバーの `EXIT` ボタン)を押すだけで、tmuxセッションが破棄され、SSHが閉じ、Termuxアプリ自体も自動で終了する。
課題3:クリップボード貼り付け時の書式崩れ対策
AndroidのTermux上で公開鍵や設定ファイルを投入する際、複数行テキストやヒアドキュメントをクリップボードから貼り付けると、改行が飛んで1行に結合されたり、スペースが欠落して文字列が破壊されるトラブルが起きやすい。
これを回避するため、初期設定や鍵の登録は「エスケープシーケンスを用いた単一行ワンライナー(printf)」で完結させる手法をとった。
# Termux側で実行:鍵登録とSSH config生成を1行で完結させる
printf "Host pgx\n HostName <PGX_TAILSCALE_IP>\n User <SERVER_USER>\n" > ~/.ssh/config && printf "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAINgElS1KoYDMd/sU3RGBHK20uVNoAazKClpkjQQwjRBF <SERVER_USER>@<SERVER_HOST>\n" > ~/.ssh/authorized_keys && sshd
途中の改行判定や対話的プロンプトを挟まないため、貼り付け事故を決定論的に防止できる。
課題4:母艦からのスマホ遠隔操作と常駐の安定化
スマホから母艦に繋ぐだけでなく、母艦(PGX)側からもZ Fold 4のTermuxにいつでもSSHログインして設定変更やファイル同期ができるようにした。
1. TermuxのWake Lock確保:
`termux-wake-lock` を実行し、通知エリアに常駐させてスリープ時のCPU休止を防ぐ。
2. One UIのバッテリー最適化解除:
Androidの「設定」>「アプリ」>「Termux」>「バッテリー」を開き、「制限なし」に設定する。
3. 母艦側のSSH設定:
ThinkStation PGX側の `~/.ssh/config` に以下を登録する。Termuxのsshdはデフォルトでポート8022を使用する。
# ~/.ssh/config on ThinkStation PGX
Host zfold4 z-fold4
HostName <ZFOLD4_TAILSCALE_IP>
Port 8022
User <ZFOLD4_USER>
IdentityFile ~/.ssh/id_ed25519
PreferredAuthentications publickeyこれにより、母艦のターミナルから `ssh zfold4` を叩くだけで、スマホ内のTermuxシェルに直接入れるようになる。キーバー設定ファイル(`termux.properties`)の編集や更新もすべて母艦のキーボードから遠隔で行える。
タッチ操作・スクロール・URLタップの設定
画面分割は不要だが、大画面を活かしたタッチ操作やスクロールは非常に便利である。母艦側の `~/.tmux.conf` に以下の設定を追加した。
# ~/.tmux.conf on ThinkStation PGX
# タッチ・マウス操作の有効化(スクロール、コピー)
set -g mouse on
set -s set-clipboard on
# ウィンドウ(タブ)作成ショートカット
bind c new-window -c "#{pane_current_path}"
# 256色・TrueColor対応
set -g default-terminal "screen-256color"
set -ga terminal-overrides ",xterm-256color:Tc"画面を指でスワイプするだけで過去ログのスクロールバックができる。また、ターミナル上に表示されたURLは、Termux側の `terminal-onclick-url-open = true` と組み合わせることで、タップするだけでAndroid標準のブラウザで開くことができる。
まとめ
Galaxy Z Fold 4のTermux環境を、root化を一切行わずに「母艦直結の快適ターミナル」として仕立て上げた。
- 8×3完全整列キーバーにより、ソフトウェアキーボードを出さずにAI対話・選択肢送信を完結。
- 画面分割はあえて使わず、大画面フル活用+タブ(ウィンドウ)切り替えに純化。
- .bashrcの自動接続・終了スクリプトにより、起動時は即座に新品tmuxセッションへ直結し、終了時はTermuxごと自動消滅。
- TailscaleとWake Lockにより、外出先からも双方向で安定したSSH接続を確保。
「大画面だからといってPCのようにペイン分割するのではなく、フルスクリーンの視認性とタブ切り替えを活かす」という割り切りを含め、実体験に基づく極めて合理的で実用的な開発環境に落ち着いた。
じゃあね。