Termux配置及优化

安装

当前 Google Play 中的版本不再更新,最新版在 F-Droid 中,版本为0.108。

termux-chroot 和 sshfs

termux-chroot 对 linux 环境相关的目录进行映射,比如 /usr,/etc 等。但是开启了 termux-chroot 后,使用 sshfs 会直接断线,看 logcat 是 spft 发生了错误。

当本地没有运行 termux-chroot 的时候,sshfs 正常连接使用,之后再开启就不会有问题。

如果想在通过 ssh 连接的时候开启 termux-chroot 而本地不运行该工具,可以在 .bashrc 中进行判断:

if [[ -n $SSH_CONNECTION && -z "$TERMUX_CHROOT" ]]; then
export TERMUX_CHROOT=1
exec termux-chroot
fi

zsh 和 exec

当你把 shell 切换成 zsh,上述脚本在某些设备上会遇到一些问题。据反映在 Android 10 的系统上,exec 在 zsh 的交互模式下运行会导致 crash 而退出 zsh。当然,zsh -c "exec termux-chroot" 是正常的,但是这样就失去了 exec 替换 shell 的功能,导致的结果就是需要 exit 两次,第一次是退出 termux-chroot。

termux-api 和 系统后台管理

termux-api 的安装分两个部分进行,第一个部分是app 的安装,需要在 F-Droid 上获取最新版本进行安装。

第二部分,需要在 termux app 中使用命令 apt install termux-api进行安装,安装后才可以在系统中看到 api 相关的命令。

当执行相关命令时,如果长时间没有返回,大概率是 termux-api 的 app 没有运行后台运行,需要手动在系统的启动权限设置中进行修改。

额外键盘配置

额外键盘配置文件在 ~/.termux/termux.properties 文件中,我修改的配置为:

extra-keys-style = default

## Two rows with more keys
# extra-keys = [[{key: 'ESC', display: '⎋'},'/','-',{key:'HOME', display: '|<-'},{key: 'UP', display: '👆'},{key: 'END', display: '->|'}, {key: 'PGUP', display: '⩠'},'DRAWER'], \
# ['TAB',{key: 'CTRL', display: '⌃'},{key: 'ALT', display: '⌥'},{key:'LEFT', display: '👈'},{key:'DOWN', display:'👇'},{key:'RIGHT', display:'👉'},{key: 'PGDN', display: '⩢'},'KEYBOARD']]
extra-keys = [ \
[ \
{key: 'ESC', popup: 'pkill sshd;exit', display: '⎋'}, \
{key: 'ping deskangel.com', display: 'p'}, \
'-', \
'/', \
{key:'HOME', display: '|<-'},'UP',{key: 'END', display: '->|'}, \
{key: 'PGUP', display: '⩠'}, \
'DRAWER' \
], \
[ \
'TAB', \
{key: 'CTRL', popup: {macro: 'CTRL c', display: 'ctrl+c'}, display: '⌃'}, \
{key: 'ALT', display: '⌥'}, \
'|', \
'LEFT', \
'DOWN', \
'RIGHT', \
{key: 'PGDN', display: '⩢'},'KEYBOARD' \
] \
]

放出两张效果图。这张是我最终使用的版本:
extra keyboard

这张是支持 emoji 的版本:
extra keyboard with emoji