Termux:X11
Downcodes小编:Termux:X11 是一个完整的 X 服务器,它使用 Android NDK 构建并针对 Termux 进行了优化。它允许您在 Termux 中运行图形应用程序。
关于
Downcodes小编:Termux:X11 是一款功能齐全的 X 服务器。它使用 Android NDK 构建,并针对 Termux 进行了优化。
子模块注意事项
Downcodes小编:该仓库使用子模块。请使用以下命令克隆仓库:
1. git clone --recurse-submodules https://github.com/termux/termux-x11
2. 或者
* git clone https://github.com/termux/termux-x11
* cd termux-x11
* git submodule update --init --recursive
工作原理
Downcodes小编:与其他 X 服务器的工作原理相同。
安装说明
Downcodes小编:Termux:X11 需要 Android 8 或更高版本。它包含一个 Android 应用程序和一个配套的 Termux 包,您需要安装这两个部分。
1. Android 应用程序:从该仓库的 nightly 发布标签获取 Android 应用程序。下载并安装与您的设备 CPU 架构匹配的 app-$ARCHITECTURE-debug.apk 文件。如果您不确定选择哪个架构,可以选择 app-universal-debug.apk,它将使用额外的存储空间。
2. 配套 Termux 包:从 Termux 图形仓库获取配套的 Termux 包。您可以确保它已启用并使用 pkg i x11-repo && pkg i termux-x11-nightly 命令安装此包。如果需要,您也可以从上面提到的 nightly 发布标签下载 .deb 或 *.tar.xz 文件。
3. 桌面环境:大多数用户希望在 Termux:X11 上使用桌面环境。如果您不知道这意味着什么或者不知道选择哪个,请运行 pkg i xfce(也来自 x11-repo)来安装一个良好的桌面环境作为起点。以下说明将假定您的目标是运行 XFCE 桌面,或者您可以根据自己的目标修改说明。
运行图形应用程序
Downcodes小编:您可以使用以下命令启动所需的图形应用程序:
1. termux-x11 :1 -xstartup "dbus-launch --exit-with-session xfce4-session"
2. 或者
* termux-x11 :1 &
* env DISPLAY=:1 dbus-launch --exit-with-session xfce4-session
如果您使用的是除 XFCE 之外的其他桌面环境,则可以将 xfce4-session 替换为相应的命令。
对于某些用户来说,dbus-launch 不起作用,您可以使用以下命令启动会话:
termux-x11 :1 -xstartup "xfce4-session"
您也可以使用以下命令:
export TERMUXX11XSTARTUP="xfce4-session"
termux-x11 :1
在这种情况下,您可以将 TERMUXX11XSTARTUP 变量保存到 .bashrc 或其他脚本中,这样每次调用 termux-x11 时就不需要手动输入了。
退出 Termux:X11
Downcodes小编:如果您已完成使用 Termux:X11,只需通过通知抽屉退出即可。展开 Termux:X11 通知,然后点击 "退出" 按钮。
但是,请注意,termux-x11 命令仍在运行,无法通过这种方式结束。
解决常见问题
Downcodes小编:如果您遇到以下问题,请尝试以下解决方案:
1. 黑屏:某些设备可能会显示黑屏和光标,而不是正常的输出。在这种情况下,请传递 -legacy-drawing 选项:
termux-x11 :1 -legacy-drawing -xstartup "xfce4-session"
2. 颜色交换:某些设备可能会显示颜色交换的屏幕。在这种情况下,请传递 -force-bgra 选项:
termux-x11 :1 -force-bgra -xstartup "xfce4-session"
与 proot 环境配合使用
Downcodes小编:如果您打算将 Termux:X11 与 proot 环境配合使用,请注意,您需要使用 --shared-tmp 选项启动 proot 或 proot-distro。
如果您无法传递此选项,请将 TMPDIR 环境变量设置为指向目标容器中对应于 /tmp 的目录。
如果您使用的是 proot-distro,您应该知道可以在 proot 容器内部启动 termux-x11 命令。
与 chroot 环境配合使用
Downcodes小编:如果您打算将 Termux:X11 与 chroot 或 unshare 环境配合使用,您必须以 root 身份运行它,并将 TMPDIR 环境变量设置为指向目标容器中对应于 /tmp 的目录。
此目录必须从启动 termux-x11 的 shell 访问,也就是说,它必须在相同的 SELinux 上下文中,相同的挂载命名空间中,等等。
您还必须设置 XKBCONFIGROOT 环境变量,使其指向容器的 /usr/share/X11/xkb 目录,否则您将遇到 xkbcomp 相关的错误。
强制停止 X 服务器
Downcodes小编:termux-x11 的 X 服务器在名为 "app_process" 的进程中运行,而不是 "termux-x11"。您可以通过搜索 "com.termux.x11" 命令来结束它。
您可以使用以下命令结束 X 服务器:
pkill -f com.termux.x11
关闭 Android 活动
Downcodes小编:您可以使用以下命令关闭 Android 活动:
am broadcast -a com.termux.x11.ACTION_STOP -p com.termux.x11
日志
Downcodes小编:如果您需要获取 com.termux.x11 应用程序的日志,请将 TERMUXX11DEBUG 环境变量设置为 1,例如:
TERMUXX11DEBUG=1 termux-x11 :0
通过这种方式获得的日志可能很长。最好立即将命令的输出重定向到一个文件。
通知
Downcodes小编:在 Android 13 中,对后置通知进行了限制,因此您需要明确允许 Termux:X11 显示通知。
偏好设置
Downcodes小编:您可以通过以下三种方式访问偏好设置菜单:
1. 切换键盘:只需按下 "后退" 按钮。
2. 触摸手势:触摸板模拟模式。
在触摸板模拟模式下,您可以使用以下手势:
* 模拟触摸屏模式
在模拟触摸屏模式下,您可以使用以下手势:
3. 从命令行更改、转储和恢复偏好设置
可以使用 termux-x11-preference 工具从命令行更改 termux-x11 的偏好设置。termux-x11-nightly 包含 termux-x11-preference 工具,可以使用以下命令:
* termux-x11-preference [list] {key:value} [{key2:value2}]...
使用 termux-x11-preference 转储当前偏好设置。
使用 termux-x11-preference > file 将当前偏好设置转储到文件。
使用 termux-x11-preferences < file 从文件恢复偏好设置。
使用 termux-x11-preferences "fullscreen"="false" "showAdditionalKbd"="true" 禁用全屏并启用额外的按键栏。您可以使用 termux-x11-preference list 命令查看可以修改的所有偏好设置。您可以在此处指定一个或多个偏好设置。
* termux-x11-preference list
列出所有可用的偏好设置。
* termux-x11-preference "fullscreen"="false"
将 "fullscreen" 偏好设置更改为 "false"。
* termux-x11-preference "showAdditionalKbd"="true"
将 "showAdditionalKbd" 偏好设置更改为 "true"。
* termux-x11-preference > preferences.txt
将当前偏好设置转储到名为 "preferences.txt" 的文件。
* termux-x11-preference < preferences.txt
从名为 "preferences.txt" 的文件恢复偏好设置。
* termux-x11-preference "fullscreen"="false" "showAdditionalKbd"="true" > preferences.txt
将 "fullscreen" 偏好设置更改为 "false",将 "showAdditionalKbd" 偏好设置更改为 "true",并将结果保存到名为 "preferences.txt" 的文件。
Termux:X11 活动应该在后台或前台可用,否则 termux-x11-preferences 工具将无限期挂起。
如果存在 "Store preferences for secondary displays separately" 偏好设置,则 termux-x11-preference 工具将使用或修改当前打开 Termux:X11 活动的显示器的偏好设置。
与第三方应用程序配合使用
Downcodes小编:可以使用 Termux:X11 与第三方应用程序配合使用。
请查看 shell-loader/src/main/java/com/termux/x11/Loader.java 的工作原理。
许可证
Downcodes小编:根据 GPLv3 许可证发布。