# termux-x11
**Repository Path**: nmrs/termux-x11
## Basic Information
- **Project Name**: termux-x11
- **Description**: Termux X11附加应用程序。
Termux X11 add-on application.
- **Primary Language**: Unknown
- **License**: GPL-3.0
- **Default Branch**: master
- **Homepage**: https://github.com/termux/termux-x11
- **GVP Project**: No
## Statistics
- **Stars**: 1
- **Forks**: 0
- **Created**: 2024-10-08
- **Last Updated**: 2025-02-07
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# Termux:X11
[](https://github.com/termux/termux-x11/actions/workflows/debug_build.yml) [](https://gitter.im/termux/termux) [](https://discord.gg/HXpF69X)
一个 [Termux](https://termux.com) X11 服务器附加应用程序。
## 关于
Termux:X11 是一个完整的 X 服务器。它是用 Android NDK 构建的,并针对与 Termux 使用进行了优化。
## Submodules 警告
此仓库使用了子模块。使用
```
~ $ git clone --recurse-submodules https://github.com/termux/termux-x11
```
或者
```
~ $ git clone https://github.com/termux/termux-x11
~ $ cd termux-x11
~ $ git submodule update --init --recursive
```
## 它如何工作?
就像任何其他 X 服务器一样。
## 设置说明
Termux:X11 需要 Android 8 或更高版本。它由一个 Android 应用程序和一个配套的 termux 软件包组成,你必须安装这两者。
Android 应用程序可以通过此仓库的 [nightly release tag](https://github.com/termux/termux-x11/releases/tag/nightly) 获取。下载并安装与您的设备 CPU 架构相匹配的 `app-$ARCHITECTURE-debug.apk`。(如果您不确定选择哪种架构,可以选择 `app-universal-debug.apk`,它将多使用一些 MB 的存储空间。)
配套的 termux 软件包可从 termux 图形仓库获取。您可以使用 `pkg i x11-repo && pkg i termux-x11-nightly` 确保启用它并安装此软件包。如果需要,您也可以从上述相同的夜间发布标签下载 `.deb` 或 `*.tar.xz`。
最后,大多数人希望与 Termux:X11 一起使用桌面环境。如果您不知道这意味着什么或不知道选择哪一个,请运行 `pkg i xfce`(也来自 `x11-repo`)以安装一个不错的起点。以下说明将假设您的目标是运行 XFCE 桌面,或者您可以在实际目标中按照说明进行修改。
## 运行图形应用程序
您可以通过以下方式启动所需的图形应用程序:
```
~ $ termux-x11 :1 -xstartup "dbus-launch --exit-with-session xfce4-session"
```
或者
```
~ $ 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 TERMUX_X11_XSTARTUP="xfce4-session"
termux-x11 :1
```
在这种情况下,您可以在 `.bashrc` 或其他脚本中保存 TERMUX_X11_XSTARTUP,每次调用 termux-x11 时不必输入。
如果您完成使用 Termux:X11,只需通过展开 Termux:X11 通知然后 "退出" 来简单地退出它。
但您应该注意 `termux-x11` 命令仍在运行,不能通过这种方式杀死。
出于某种原因,一些设备只输出带有光标的黑屏,而不是正常输出,所以您应该传递 `-legacy-drawing` 选项。
```
~ $ termux-x11 :1 -legacy-drawing -xstartup "xfce4-session"
```
出于某种原因,一些设备显示的屏幕颜色颠倒,在这种情况下,您应该传递 `-force-bgra` 选项。
```
~ $ termux-x11 :1 -force-bgra -xstartup "xfce4-session"
```
## 使用 proot 环境
如果您计划与 proot 一起使用该程序,请记住您需要使用 --shared-tmp 选项启动 proot/proot-distro。
如果传递此选项不可能,请将 TMPDIR 环境变量设置为指向目标容器中与 /tmp 对应的目录。
如果您使用 proot-distro,您应该知道可以从 proot 容器内部启动 `termux-x11` 命令。
## 使用 chroot 环境
如果您计划与 chroot 或 unshare 一起使用该程序,您必须以 root 身份运行它,并将 TMPDIR 环境变量设置为指向目标容器中与 /tmp 对应的目录。
此目录必须可以从启动 termux-x11 的 shell 访问,即它必须在相同的 SELinux 上下文、相同的挂载命名空间等中。
同时,您必须设置 `XKB_CONFIG_ROOT` 环境变量指向容器的 `/usr/share/X11/xkb` 目录,否则您将有与 `xkbcomp` 相关的错误。
您可以从 [上一次成功构建](https://github.com/termux/termux-x11/actions/workflows/debug_build.yml) 的工件中获取夜间构建的加载器。
不要忘记禁用 SELinux
```
setenforce 0
export TMPDIR=/path/to/chroot/container/tmp
export CLASSPATH=$(/system/bin/pm path com.termux.x11 | cut -d: -f2)
/system/bin/app_process / com.termux.x11.CmdEntryPoint :0
```
### 强制停止 X 服务器(在 termux 后台运行,不是活动)
termux-x11 的 X 服务器在名为 "app_process" 的进程中运行,而不是 "termux-x11"。但您可以通过命令行搜索 "com.termux.x11" 来杀死它。
所以杀死它看起来像
```
pkill -f com.termux.x11
```
### 关闭 Android 活动(在前台运行,不是 X 服务器)
```
am broadcast -a com.termux.x11.ACTION_STOP -p com.termux.x11
```
### 日志
如果您需要从 `com.termux.x11` 应用程序获取日志,
将 `TERMUX_X11_DEBUG` 环境变量设置为 1,如下所示:
`TERMUX_X11_DEBUG=1 termux-x11 :0`
通过这种方式获得的日志可能相当长。
最好立即将命令的输出重定向到文件。
### 通知
在 Android 13 中,发布通知受到限制,所以您应该明确允许 Termux:X11 向您显示通知。
视频
[img_enable-notifications.webm](https://user-images.githubusercontent.com/9674930/227760411-11d440eb-90b8-451e-9024-d5a194d10b16.webm)
首选项:
您可以通过以下三种方式访问首选项菜单:
在没有客户端连接时,单击主屏幕上的 "PREFERENCES" 按钮。

如果可用,在通知中单击 "Preferences" 按钮。

通过单击 "Preferences" 应用程序快捷方式(在启动器上长按 `Termux:X11` 图标)。

## 切换键盘
只需按 "Back" 按钮。
## 触摸手势
### 触摸板仿真模式。
在触摸板仿真模式下,您可以使用以下手势:
* 点击为单击
* 双击为双击
* 两根手指点击为右键单击
* 三根手指点击为中键单击
* 两根手指垂直滑动为垂直滚动
* 两根手指水平滑动为水平滚动
* 三根手指向下滑动显示/隐藏附加键栏。
### 模拟触摸屏模式。
在模拟触摸屏模式下,您可以使用以下手势:
* 单击为左键单击。
* 长按为鼠标按住。
* 双击为双击
* 两根手指点击为右键单击
* 三根手指点击为中键单击
* 两根手指垂直滑动为垂直滚动
* 两根手指水平滑动为水平滚动
* 三根手指向下滑动显示/隐藏附加键栏。
## 字体或缩放太大!
一些应用程序可能在 DPI 方面与 X 服务器存在问题。请参见 https://wiki.archlinux.org/title/HiDPI 了解如何覆盖特定应用程序的 DPI 或缩放。
您可以在窗口管理器设置中修复此问题(在 xfce4 和 lxqt 的情况下,通过应用程序菜单 > 设置 > 外观)。查找 DPI 值,如果它被禁用,请启用它并调整其值,直到字体大小合适。
屏幕截图
./.github/static/dpi-scale.png
同时您可以使用 -dpi 选项启动 termux-x11 。
```
~ $ termux-x11 :1 -xstartup "xfce4-session" -dpi 120
```
## 从命令行更改、转储和恢复首选项
您可以从命令行更改 termux-x11 的首选项。
termux-x11-nightly 软件包包含 termux-x11-preference 工具,可以使用
```shell
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 活动应该在后台或前台可用,否则 termux-x11-preferences 工具将无限期挂起。
如果存在 Store preferences for secondary displays separately 首选项活动 termux-x11-preference 将使用/修改 Termux:X11 活动当前打开的显示的首选项。
## 与第三方应用程序一起使用
您可以与第三方应用程序一起使用 Termux:X11。
检查 `shell-loader/src/main/java/com/termux/x11/Loader.java` 的工作原理。
# 许可证
根据 [GPLv3 license](https://www.gnu.org/licenses/gpl-3.0.html) 发布。