目录
1.你知道吗,即使不用容器Termux也能运行桌面应用
- 启用X11仓库。
pkg install x11-repo
也可以添加一些其它有GUI应用的源,如tur源
pkg install tur-repo
然后我们就可以安装我们想要的软件了,r提示,可以通过以下指令在当前目录生成目前apt 和pkg可以安装的应用的TXT列表。
apt list >> aptlist.txt pkg list-all >> pkglist.txt
- 安装应用并运行
1.使用VNC远程桌面
安装vncserver
pkg install tigervnc
安装完成配置一下密码
#输入密码不会显示
Passwork:
Verify:
#看到以下提示是问你要不要设置一个vnc只读密码,根据自己需要选择即可(如果选择y需要再为只读vnc设置一个密码)
Would you like to enter a view-only password (y/n)? n
以Firefox为例,
安装
pkg install firefox
启动
其它软件也是同理,不过一些软件的名称和它们的启动命令并不相同。
另外可以运行的一些常用软件
chromium (tur-repo)
code-oss (tur-repo) #没有微软依赖的vscode
thunar (x11-repo)
wine (x11-repo)
...
2.使用Termux-x11
这些应用当然也可以使用Termux-x11来显示
pkg install termux-x11-nightly #包含在x11-repo中,所以执行前别忘了pkg install x11-repo
安装完后执行
termux-x11 $prefix -xstartup "firefox"
^
| 此处切换为你要启动的应用
Termux-x11 Android apk下载Releases · termux/termux-x11
启动
2.没有桌面总感觉怪怪的,不是吗
1.安装桌面环境
pkg install xfce4
这样就可以安装xfce4的基础套件,如果你安装完后发现少了一些重要功能,可以使用
apt list xfce4*
查找需要安装的组件并自行补全,或者直接安装所有xfce4的组件
apt install xfce4*
Termux还支持以下桌面环境
LXQT MATE OpenBox i3wm Weston
...
现在我们需要配置一下我们的远程桌面环境了(以xfce4为例)
2.VNC配置
nano .vnc/xstartup
#xstartup的绝对路径是/data/data/com.termux/files/home/.vnc/startup
你应该会看到这样的配置文件
#!/data/data/com.termux/files/usr/bin/sh
## This files is executed during VNC server
## startup.
# Launch terminal emulator Aterm.
# Requires package 'aterm'.
aterm -geometry 80x24+10+10 -ls &
# Launch Tab Window Manager.
# Requires package 'xorg-tw'.
twm &
保存原始的配置文件对我们总没有坏处对吧?
我们需要在它的代码前加上几段,改成这样
#!/data/data/com.termux/files/usr/bin/sh
## This files is executed during VNC server
## startup.
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
exec startxfce4
# Launch terminal emulator Aterm.
# Requires package 'aterm'.
aterm -geometry 80x24+10+10 -ls &
# Launch Tab Window Manager.
# Requires package 'xorg-tw'.
twm &
当然如果你不想改配置文件的话,你也可以通过以下命令来启动xfce4及其组件
export DISPLAY=:1 && vncserver :1 && startxfce4
请注意,如果你选择通过把上述代码保存为.sh文件来运行它时你不应该通过./name.sh或sh name.sh来运行它,而是通过source name.sh来运行它。
在电脑上的tigervnc是可以自动调整分辨率的,看起来就像一台真正运行着Linux的电脑。
3.Termux-x11配置
unset SESSION_MANAGER & unset DBUS_SESSION_BUS_ADDRESS & termux-x11 $prefix -startup "xfce4-session"
或者你安装了xwayland则只需要使用
termux-x11 $prefix -startup "xfce4-session"
我记的termux-x11关闭时不会把xserver的锁给删掉,导致再运行vncserver或termux-x11时端口数字会不断的往后蹦,你也可以写一个小脚本让termux-x11关闭时把锁给删掉
#!/data/data/com.termux/files/usr/bin/bash
handle_interrupt() {
num=$(echo $prefix | cut -d ':' -f 2)
file1="/data/data/com.termux/files/usr/tmp/.X11-unix/X${num}"
file2="/data/data/com.termux/files/usr/tmp/.X${num}-lock"
rm "${file1}" "${file2}"
}
trap="$1"
if [[ $prefix =~ ^:+[0-9]+$ ]]; then
(unset SESSION_MANAGER & unset DBUS_SESSION_BUS_ADDRESS & termux-x11 $prefix -startup "xfce4-session")
elif [ "$1" = "-kill" ]; then
if [[ $2 =~ ^:+[0-9]+$ ]]; then
num=$(echo $2 | cut -d ':' -f 2)
file1="/data/data/com.termux/files/usr/tmp/.X11-unix/X${num}"
file2="/data/data/com.termux/files/usr/tmp/.X${num}-lock"
rm "${file1}" "${file2}"
fi
else
echo "Usage: $0"
echo " [:<number>]
echo " [-kill :<number>]"
fi
使用方法
<脚本名称> :<数字> #启动服务
<脚本名称> -kill :<数字> #停止服务
3.使用虚拟GPU驱动
软件是装上了,但是图像处理能力约等于没有呢
1.安装 virglrenderer-android
pkg install virglrenderer-android
2.启动virglrenderer-android
virgl_test_server_android & export DISPLAY=:1 GALLIUM_DRIVER=virpipe MESA_GL_VERSION_OVERRIDE=3.2
记住export DISPLAY=:1 <---这里的数字要和你的远程桌面的数字一致
如果你新开了一个会话,并打算在新会话中开启远程桌面服务,那么你得重新导入一遍环境变量
export DISPLAY=:1 GALLIUM_DRIVER=virpipe MESA_GL_VERSION_OVERRIDE=3.2
这是WebGL的测试结果,基本可以稳定在60fpsWebGL
你问我为什么没有前后对照?因为在此之前WebGL在Firefox上根本跑不了,在Chromium上倒是可以显示个位数的帧率,但是没有图像.....刷新网页会卡死。
说实话这个帧率已经很不错了,让我来告诉你我们学校机房电脑的运行这个测试的情况,即使把数量拉到一个,棱面拉到最多它还是只有20fps左右。(我知道这样对比多少有点不公平,对于那台装着英伟达的显卡,但是英伟达的驱动却不认它,右键快捷方式反而有AMD GPU驱动快捷方式残留(好吧,好像是核显))
3.virglrenderer-android的缺陷
为什么这一节不跟安装桌面那一节一块讲呢?看看使用这个虚拟GPU后Chromium出了什么问题吧当然,基于Chromium的应用也是,这可不仅仅只有浏览器code-oss
3.使用说明
进入桌面你会发现用户名为Termux 的UID,所以一些文件无法访问,你也不能像在Linux上那样用sudo来以root权限打开应用,要使用root权限打开应用,请使用tsu启动远程桌面服务。
pkg install tsu
#安装完成后
tsu
然后再通过以上任意一种方式运行你的应用即可。
标签:termux,安装,GUI,Termux,pkg,x11,GPU,data From: https://blog.csdn.net/qingting_flying/article/details/143450554