Termuxのインストール
次の方法があります。
必ずしもF-Droidアプリは必要なくTermuxパッケージのページから直接apkをダウンロードすることもできます。GitHubからも(Debug版ですが)apkファイルをダウンロードできます。ビルドはそれほど難しくは無いと思います。
署名の問題があるので別の供給元から入手したものは共存できません。切り替えるにはいったんアンインストールが必要です(必要に応じてバックアップすること)。
私は最終的に次の二つを自分でビルドしてインストールしました。
ソースをgit cloneで入手し、既にPCに入っていたAndroid Studioでプロジェクトを開いてRunボタンを押したらすんなり成功しました。
Termuxの分かりにくそうな操作
ドロワー
画面左端から右へスワイプすると、ドロワー(サイドバー)が出てきます。
KEYBOARDを 長押し すると、下部ツールバーの表示状態を切り替えられます。
ツールバーの左スワイプ
下部ツールバーを左スワイプすると、Text Input Viewが出てきます。ここはInput Methodが効くので日本語を入力するのに使えます。私は上部で入力できるように改造したので今はほぼ使っていません。
Volume Up+ソフトキーボード
色々ショートカットが割り当てられています。
キーボードまわりの設定
先日書きました。
Termuxでハードウェアキーボードからスムーズに日本語入力したい | Misohena Blog
- .termux/termux-properties
- soft-keyboard-toggle-behaviour = enable/disable
- disable-hardware-keyboard-shortcuts = true
- bell-character = ignore
- ctrl-space-workaround = true
- キーレイアウト問題(CtrlとCaps、BACKSLASH、無変換)
- shiftrot/caps2ctrl を修正・ビルド・インストール
- Input Methodがらみは独自ビルドで解決
Emacsのインストール
pkg upgrade pkg install emacs emacs
普通に起動します!
SSHとGitのインストール
自分の設定を持ってくるためにsshとgitをインストールしました。
pkg install openssh pkg install git
鍵を作ってサーバに設定。
ssh-agentは .bashrcに . source-ssh-agent を追加するだけ。簡単!
(https://www.reddit.com/r/termux/comments/b8il5p/sshagent_want_to_start_again_when_new_terminal_is/ より)
Emacsの設定を持ってくる
Gitで自分の設定を持ってきて……
git clone --recursive ssh://hogehoge/my-emacs-config.git cp my-emacs-config/.emacs.el ~/.emacs.d/init.el emacs
エラー箇所を修正。最近色々判定をサボっていたので少し出ましたが、それほど多くはありませんでした。(display-graphic-p)はnilなのでそのあたりの機能はごっそり無効化。
Termux上で動いているかの判別は次のようにしました。
(setq my-termux-p (not (null (executable-find "termux-info"))))
How to detect in a BASH script that I'm in Termux? : termux によればtermux-toolsパッケージは常に存在すると考えて良いみたいです。他にもパスにcom.termuxという特徴的な文字列が含まれているのでそれをチェックするのも(コマンドを検索するより速くて)良さそうです。
パッケージのインストール。
M-x package-refresh M-x package-install-selected-packages C-x C-c emacs
その他Emacsの修正
emacsclientが動かない
TMPDIR
が "/data/data/com.termux/files/usr/tmp"
なのに server-socket-dir
のデフォルト値が "/data/data/com.termux/files/usr/var/run/<uid>"
になっているのが原因みたいです。次のようにします。
(setq server-socket-dir (and (featurep 'make-network-process '(:family local)) (format "%s/emacs%d" (or (getenv "TMPDIR") "/data/data/com.termux/files/usr/var/run") (user-uid))))
(emacsclient can not find server socket · Issue #4230 · termux/termux-packagesより)
パッチが当たらなくなったのかな?
browse-urlでブラウザが開かない
(setq browse-url-browser-function 'browse-url-xdg-open)
browse-url-xdg-open
は xdg-open
コマンドを使います。Termuxから使えるようです。 termux-open-url
というコマンドもあります。
Androidのクリップボードと連携する
事前にtermux-apiアプリの導入が必要です。私はtermux-appを自分でビルドしてしまったので、こちらも自分でビルドする必要がありました。
その上でTermux内にもパッケージのインストールが必要です。
pkg install termux-api
そうすると次の二つのコマンドが使えるようになります。
termux-clipboard-set <text> termux-clipboard-get
Emacsからは xclip というパッケージを導入するとこれらのコマンドを使ってくれるようになります。
M-x package-install xclip M-x xclip-mode
(Copy/paste between apps and Emacs in Termux · Issue #6266 · termux/termux-packagesより)
sdcardの読み書き
termux-setup-storage
を実行し権限を許可。すると ~/storage
が追加され、 /sdcard
にもアクセスできるようになりました。
曖昧幅文字の修正
その他インストールしたツール
pkg install ripgrep
: Emacsから検索の際に使用pkg install wget
: ファイルをダウンロードするときに使用