Termuxはアプリの設定画面以外に、~/.termux/termux.properties
を編集することでより詳細にカスタマイズできます。
インストール時にテンプレートが生成されるほか、
Termux Wikiにドキュメントがあります。
ソフトキー拡張
ターミナルを物理的なキーボードなしで利用するとキーが不足しがちです。
特殊なキーアサインとして、Androidの戻るボタンをESC
に変更するconfigがあります。
back-key=escape
Termuxには戻る操作がないため、無難なキーアサインです。 viなどの操作時に多少使いやすいキーを利用できるでしょう。
キーボードの上にExtra Keysという領域があり、標準ではCTRL
やTab
キーなどをレイアウトしています。
Extra Keysは
解説のとおり、カスタマイズ可能です。
1行でレイアウトした例は以下のような記述になります。
extra-keys = [[{key: 'TAB', popup: 'ESC'}, {key: 'CTRL', popup: 'ALT'}, {key: '/', popup: '-'}, {key: 'LEFT', popup: 'HOME'}, {key: 'UP', popup: 'PGUP'}, {key: 'DOWN', popup: 'PGDN'}, {key: 'RIGHT', popup: 'END'}]]
標準では使われていない拡張にpopup
があります。これはフリックした場合に別のキーをアサインできるものです。
ソフトキーは表示サイズと押しやすさが比例するため、表示キー数を減らすと使いやすくなるでしょう。macro
もアサインできます。
なお、「SHIFT」キーもmacroなどで想定どおりに使えます。Gboardなどのキーボード上に表示されているShiftのように動作するボタンは、候補の切り替えキーでShiftとしては動作しません。
日本語キーボード入力
これはカスタマイズではなく標準機能ですがText Input View
という入力モードがあり、日本語キーボードなどを利用できます。
実はExtra Keysの表示行は左向きにスワイプでき、Text Input View
に切り替えられます。
Termuxの通常入力は英数字の直接入力ですが、Text Input View
にはIME経由で入力でき、Enterを押すとカーソル位置に文字列を送ります。
Emacsやvi(挿入モード)といったターミナル上で動作するエディタにソフトキーで日本語のまとまった文を入力する際に便利です。
通常の直接入力に戻すにはText Input View
の領域を逆方向にスワイプします。
Spacemacs/vim
Extra KeysとText Input Viewを駆使すると、 Spacemacsなどviキーバインドをソフトキーボードで最低限利用できます。
ESC
は戻るボタンに割り当てられる- Extra Keysのカーソルキーはリピート入力になる
Ctrl
やAlt
(meta)はON/OFF切替え操作で同時押しをエミュレート- Spacemacsの
SPC
リーダーキーはソフトキーボードに適している - ソフトキーの日本語入力はSKKよりText Input Viewの方が適している
サーバー環境と共通になる点は便利です。
ボリュームキーのカスタマイズは難あり
スマートフォンの音量ボリュームキーは音量調節の目的で使う機会が少なく、カスタマイズの余地があります。
Termuxも
既定のキーアサインを提供していますが、プレフィクス動作であり使いやすくはないでしょう。
ボリュームキーをカスタマイズするには別のアプリが必要です。KeyMapperなどで設定は可能ながら、Androidの制約から専用のキーボードを必要とするといった制約があり、キー入力目的には難があります。
MacroDroidなどから スクリプト実行する目的に割り当てた方が使いやすくなるでしょう。
Shebangの互換性
Linuxなどの多くの実行スクリプトは冒頭に#!/bin/bash
といった
shebangを記載して直接実行可能にしています。
termuxの場合、bashが/data/data/com.termux/files/usr/bin/bash
であるためスクリプトの互換性がありません。env
も想定PATHにないため無意味です。
Termuxに同梱されている
Termux-execを利用すると、#!/bin/
が/data/data/com.termux/files/usr/bin/
を探索して一般的なスクリプトを動作させられます。
.bashrc
などでLD_PRELOAD
に追加することで有効になります。
export LD_PRELOAD=${PREFIX}/lib/libtermux-exec.so
LD_PRELOADを変更したくない場合には、 termux-fix-shebungというユーティリティでスクリプトを書き換えます。
OpenSSH
opensshのパッケージをインストールすると、SSH接続できます。
一般的なopensshコマンドであるため~/.ssh
のセットアップを利用できます。
とくに不満がなければ他のSSHアプリが不要化します。SSHトンネルも動作します。
URLをコピー
デスクトップOS向けの多くのターミナルはOSC52という制御シークエンスに対応しており、ターミナル内のコピー操作をローカルOSのクリップボードに引き渡せます。
TermuxはOSC52には対応していないようです。
何でもコピーできるわけではないのですが、URLのみ対応する独自実装を持っており、URL表示状態でマウス右クリック相当の操作(画面長押しなど)メニューからコピーできます。
メニューリストのURLを長押しするとURLに対応するインテント処理となり、たとえばGoogleドキュメントなどはアプリ起動します。
この機能で、期待する操作をそれなりに広くカバーできます。
Chuma Takahiro