【合作原创】使用Termux搭建可以使用的生产力环境(九)
前言
在上一篇【合作原创】使用Termux搭建可以使用的生产力环境(八)-CSDN博客中我们讲到了如何安装IDEA社区版,并在Termux中安装VNC服务器,在proot-distro的Debian中启动xfce桌面,并通过这个方式解决了IDEA社区版中无法使用拼音输入法的问题。在这篇我将介绍Debian中启动xfce在Termux中使用Termux-X11来展示桌面环境
组合介绍
该组合可以看本系列的第三篇【合作原创】使用Termux搭建可以使用的生产力环境(三)_termux sftp-CSDN博客,其中的组合e,这也是Termux中常用的组合之一。即在proot-distro的Debian中启动xfce桌面,使用Termux-X11这个APP来展示xfce桌面。

安装Termux-X11 APP
该组合的核心就是Termux-X11这款APP,它可以在Github的termux-x11项目的Releases页面下载到,地址为:Release Nightly Release 20250107 · termux/termux-x11 · GitHub
Android手机下载app-arm64-v8a-debug.apk,这个包,上传到手机后安装即可

安装完成
安装完成后的APP长这样:

打开后是一个未连接状态的界面

Termux中安装并启动termux-x11
为了区分Termux-X11 APP,这里采用的小写
安装
为了与Termux-X11这个APP适配上,在Termux中也需要安装一个程序,在Termux中执行以下命令:
pkg i -y termux-x11-nightly
启动termux-x11
执行下面命令即可启动termux-x11:
termux-x11 :3 >/dev/null &
其中termux-x11就是程序名。:3为显示编号,为了防止与之前的教程中的显示编号冲突,这里采用3号显示。>/dev/null是重定向输出,将日志全部丢弃。&则告诉系统不要阻塞当前终端会话,让termux-x11这个程序在后台执行。
![]()
启动完成后会显示一个进程号,如果想要关闭termux-x11,只需要kill掉该进程号即可
如果我们此时打开Termux-X11 APP,我们会看到未连接画面已经没有了,取而代之的是带有底部软键盘的黑屏界面,这就说明termux-x11已经连接上了。
启动xfce桌面
启动命令
执行以下命令启动:
proot-distro login debian --shared-tmp -- /bin/bash -c 'export GTK_IM_MODULE=fcitx && export QT_IM_MODULE=fcitx && export XMODIFIERS=@im=fcitx && export PULSE_SERVER=127.0.0.1 && export XDG_RUNTIME_DIR=${TMPDIR} && export DISPLAY=:3 && startxfce4'
解释一下这个命令:
proot-distro login debian:用过很多次了,就是用于登录到Debian系统
--shared-tmp:将termux中的临时目录模拟出来给Debian使用,方便Debian和termux之间临时进行数据交互操作
-- /bin/bash -c:使用Debian环境去执行后续命令,后续命令通过单引号囊括
export GTK_IM_MODULE=fcitx && export QT_IM_MODULE=fcitx && export XMODIFIERS=@im=fcitx:用于指定输入法为fcitx,防止输入法出现问题
export PULSE_SERVER=127.0.0.1:使用本地音频服务,防止音频出现问题
export XDG_RUNTIME_DIR=${TMPDIR}:在基于 XDG(X Desktop Group)基本目录规范的 Linux 系统中使用。它主要用于指定用户运行时(runtime)文件和套接字(sockets)的基本目录,指定为TMPDIR,反正配置了不会错
export DISPLAY=:3:设置显示编号为3,需要和termux-x11指定的编号一致才行,不然会无法显示的
startxfce4:这个不用多说了,就是启动xfce桌面环境
打开Termux-X11 APP
打开后Termux-X11 APP就能显示出桌面了

修改Termux-X11 APP设置
进入设置页
点击右下角的齿轮按钮,即可打开设置。

或者在长按APP,会弹出一个Preference(偏好),也就是APP的设置,都能进入Termux-X11的设置页面

进入设置页面

修改Output
其中有几个设置最好改一下,点击第一行的Output。
取消勾选Reseed screen while soft keyboard is open,这个是点击右下角的键盘可以弹出手机的输入法,如果通过OTG外接键盘后建议取消勾选,如果没有的话,还是建议打开状态。
Fullscreen勾选上,这样APP就能全屏显示了,顶部状态栏没了。
Screen orientation(屏幕方向),我建议是改为landscape,也就是横屏显示,这样方向就定死了,不会随屏幕方向而改变了。

修改Pointer
抱歉,这个页面没有内容需要修改哦。唯一要说明一下的就是第一个Touchscreen input mode,它有三个选项
Trackpad:触摸板模式,整个手机屏幕当成类似于电脑的触摸板使用,操作习惯也和触摸板一致,比如滑动触摸板就是移动鼠标光标。单指单击就是鼠标左键单机。两指单击,就是单击鼠标右键。两指滑动就是滚轮键滚动。
Simulated touchscreen:模拟触控屏,点哪里就是哪里,非常生硬,大家试了就知道了,反正我认为是不好用,我甚至不知道如何执行拖动操作
Direct touch:直触模式,点哪里就是哪里,可以用于直接拖动,但是也不好用,如果通过OTG外接了鼠标,可以使用这个模式
修改Keyboard
这里修改的就是底部的黑色软键盘了

需要修改这几项设置
点击Show additional keyboard右边的齿轮。(我不建议将这个软键盘彻底关闭,除非使用OTG连接了物理键盘)

将Opacity of extra keys bar的100%改为30%,这里这个软键盘就是透明的了,不再是漆黑一片,挡住底部的任务栏

Prefer scancodes when possible:使用OTG连接物理键盘的时候建议打开,这样能保证键位映射不会出现问题(使用Termux-X11+物理键盘玩我的世界的时候必须打开,否则键位映射有问题,这是后话了,我可能会出Termux-X11玩我的世界的教程)
目前写到这已经2700多字了,我打算余下内容放到下一篇中,哈哈!
完成这些设置后,当前显示的内容如下:

APP下载地址
怕大家下载不到Termux-X11 APP,我这里放一下下载地址:
termux-x11-app-arm64-v8a-debug-2025-1-7.apk官方版下载丨最新版下载丨绿色版下载丨APP下载-123云盘
结语
本篇带大家初识了Termux-X11这款APP,并将Debian中的xfce4桌面显示在这个APP中了,并对Termux-X11进行了简单的设置,让它能够更好的使用。在下一篇中我还会继续向大家介绍Termux-X11这款APP,并真正通过手机来编写代码,作为代码生产力工具,而不是借助另一台电脑。
最后和之前一样,有问题大家可以在评论区指出,另外想要和作者吹水可以来群170618278,另外给up:qwe5283的Termux视频多多三连,谢谢各位!
相关文章:
【合作原创】使用Termux搭建可以使用的生产力环境(九)
前言 在上一篇【合作原创】使用Termux搭建可以使用的生产力环境(八)-CSDN博客中我们讲到了如何安装IDEA社区版,并在Termux中安装VNC服务器,在proot-distro的Debian中启动xfce桌面,并通过这个方式解决了IDEA社区版中无…...
使用Supervisor在Ubuntu中实现后台自启动服务
在Ubuntu系统中,Supervisor是一个非常实用的进程管理工具,它可以让你的应用程序在后台运行,并且在系统启动时自动启动这些应用程序。下面,我将详细介绍如何在Ubuntu中使用Supervisor来实现后台自启动服务,并以一个具体…...
AIDD-人工智能药物设计-人工智能驱动的罕见病药物发现
JCIM | 人工智能驱动的罕见病药物发现 **罕见病(Rare Diseases,RDs)**是全球公共卫生领域的重大挑战,其特点是疾病种类繁多、症状复杂且诊断困难。尽管过去几十年出台了如《孤儿药法案》等法规推动研发,但超过90%的罕…...
安卓硬件加速hwui
安卓硬件加速 本文基于安卓11。 从 Android 3.0 (API 级别 11) 开始,Android 2D 渲染管道支持硬件加速,这意味着在 View 的画布上执行的所有绘图操作都使用 GPU。由于启用硬件加速所需的资源增加,你的应用程序将消耗更多内存。 软件绘制&am…...
TDv2:一种用于离线数学表达式识别的新型树形结构解码器
TDv2:一种用于离线数学表达式识别的新型树形结构解码器 本文提出了一种针对手写数学表达式识别(HMER)任务的新型树形解码器(TDv2) ,旨在充分利用数学表达式的树结构标签进行更有效的建模和预测。相较于传统的LaTeX字符串解码器,该模型通过采用一个节点分类模块和一个分…...
Golang学习笔记_23——error补充
Golang学习笔记_20——error Golang学习笔记_21——Reader Golang学习笔记_22——Reader示例 文章目录 error补充1. 基本错误处理2. 自定义错误3. 错误类型判断3.1 类型断言3.2 类型选择 4. panic && recover 源码 error补充 1. 基本错误处理 在Go中,函数…...
邯郸地标美食导游平台的设计与实现
标题:邯郸地标美食导游平台的设计与实现 内容:1.摘要 摘要:本文介绍了邯郸地标美食导游平台的设计与实现。该平台旨在为游客提供邯郸地标美食的详细信息和导航服务,帮助游客更好地了解和品尝邯郸的特色美食。文章首先介绍了项目的背景和目的,…...
滑动窗口限流算法:基于Redis有序集合的实现与优化
滑动窗口限流算法是一种基于时间窗口的流量控制策略,它将时间划分为固定大小的窗口,并在每个窗口内记录请求次数。通过动态滑动窗口,算法能够灵活调整限流速率,以应对流量的波动。 算法核心步骤 统计窗口内的请求数量࿱…...
Angular 最新版本和 Vue 对比完整指南
1. Angular 最新版本 当前 Angular 最新稳定版本是 Angular 17(2024年初) 2. 主要区别对比表 特性 | Angular | Vue 框架类型 | 完整框架 | 渐进式框架 默认语言 | TypeScript | JavaScript/TypeScript 数据处理 | RxJS | Promise/async/await 架构特点 | 依赖注入,…...
DAY39|动态规划Part07|LeetCode:198.打家劫舍、213.打家劫舍II、337.打家劫舍III
目录 LeetCode:198.打家劫舍 基本思路 C代码 LeetCode:213.打家劫舍II 基本思路 C代码 LeetCode:337.打家劫舍III 基本思路 C代码 LeetCode:198.打家劫舍 力扣题目链接 文字讲解:LeetCode:198.打家劫舍 视频讲解:动态规划,偷不偷这个…...
MYSQL----------------sql 优化
优化 SQL 语句的一般步骤 1. 了解 SQL 的执行频率 SHOW STATUS LIKE Com_%;代码解释: SHOW STATUS LIKE Com_%;:此命令可以查看各种 SQL 语句的执行频率,例如 Com_select 表示 SELECT 语句的执行次数,Com_insert 表示 INSERT 语…...
深度学习中的正则化方法
最近看到了正则化的内容,发现自己对正则化的理解已经忘得差不多了,这里在整理一下,方便以后查阅。 深度学习中的正则化方法 1. L2 正则化(L2 Regularization)2. L1 正则化(L1 Regularization)3.…...
前端报告 2024:全新数据,深度解析未来趋势
温馨提示: 此报告为国际版全球报告,其中所涉及的技术应用、工具偏好、开发者习惯等情况反映的是全球前端开发领域的综合态势。由于国内外技术发展环境、行业生态以及企业需求等存在差异,可能有些内容并不完全契合国内的实际情况,请大家理性阅读,批判性地吸收其中的观点与信…...
计算机网络之---子网划分与IP地址
子网划分与IP地址的关系 在计算机网络中,子网划分(Subnetworking)是将一个网络划分为多个子网络的过程。通过子网划分,可以有效地管理和利用IP地址空间,提高网络的性能、安全性和管理效率。 子网划分的基本目的是通过…...
计算机网络 (31)运输层协议概念
一、概述 从通信和信息处理的角度看,运输层向它上面的应用层提供通信服务,它属于面向通信部分的最高层,同时也是用户功能中的最低层。运输层的一个核心功能是提供从源端主机到目的端主机的可靠的、与实际使用的网络无关的信息传输。它向高层用…...
代码随想录算法训练营day28
代码随想录算法训练营 —day28 文章目录 代码随想录算法训练营前言一、122.买卖股票的最佳时机II二、55. 跳跃游戏三、跳跃游戏 II方法一方法二 1005. K 次取反后最大化的数组和总结 前言 今天是算法营的第28天,希望自己能够坚持下来! 今日任务&#x…...
建立时间和保持时间
建立时间 在时钟有效沿到来之前,数据必须维持一段时间保持不变,这段时间就是建立时间 Tsetup 1 基本概念 建立时间(Setup Time): 在 SystemVerilog 中,建立时间是指在时钟信号的有效边沿(例如…...
vue,router路由传值问题,引用官方推荐
参考贴https://blog.csdn.net/m0_57033755/article/details/129927829 根据官方文档的更新日志,建议使用state传值 官方文档更新日志 实际的console结果 传值 router.push({ name: KnowledgeDetail, state: { params } });接收值 const historyParams histor…...
AIDD-人工智能药物设计-AlphaFold系列:年终回顾,AlphaFold迄今为止的实际应用案例
AlphaFold系列:年终回顾,AlphaFold迄今为止的实际应用案例 01 引言 AlphaFold由 DeepMind 团队开发,最初在蛋白质结构预测竞赛 CASP 中惊艳亮相。随着 AlphaFold2 和后续版本的迭代进步,其精度和通用性不断提升,逐渐走…...
Scala语言的面向对象编程
Scala语言的面向对象编程 引言 在当今的软件开发中,面向对象编程(OOP)是一种非常强大且广泛使用的编程范式。Scala是一种现代编程语言,结合了面向对象编程和函数式编程的特性,非常适合用于大规模软件的开发。本文将介…...
Objective-C常用命名规范总结
【OC】常用命名规范总结 文章目录 【OC】常用命名规范总结1.类名(Class Name)2.协议名(Protocol Name)3.方法名(Method Name)4.属性名(Property Name)5.局部变量/实例变量(Local / Instance Variables&…...
React Native在HarmonyOS 5.0阅读类应用开发中的实践
一、技术选型背景 随着HarmonyOS 5.0对Web兼容层的增强,React Native作为跨平台框架可通过重新编译ArkTS组件实现85%以上的代码复用率。阅读类应用具有UI复杂度低、数据流清晰的特点。 二、核心实现方案 1. 环境配置 (1)使用React Native…...
高危文件识别的常用算法:原理、应用与企业场景
高危文件识别的常用算法:原理、应用与企业场景 高危文件识别旨在检测可能导致安全威胁的文件,如包含恶意代码、敏感数据或欺诈内容的文档,在企业协同办公环境中(如Teams、Google Workspace)尤为重要。结合大模型技术&…...
零基础在实践中学习网络安全-皮卡丘靶场(第九期-Unsafe Fileupload模块)(yakit方式)
本期内容并不是很难,相信大家会学的很愉快,当然对于有后端基础的朋友来说,本期内容更加容易了解,当然没有基础的也别担心,本期内容会详细解释有关内容 本期用到的软件:yakit(因为经过之前好多期…...
c++第七天 继承与派生2
这一篇文章主要内容是 派生类构造函数与析构函数 在派生类中重写基类成员 以及多继承 第一部分:派生类构造函数与析构函数 当创建一个派生类对象时,基类成员是如何初始化的? 1.当派生类对象创建的时候,基类成员的初始化顺序 …...
tauri项目,如何在rust端读取电脑环境变量
如果想在前端通过调用来获取环境变量的值,可以通过标准的依赖: std::env::var(name).ok() 想在前端通过调用来获取,可以写一个command函数: #[tauri::command] pub fn get_env_var(name: String) -> Result<String, Stri…...
springboot 日志类切面,接口成功记录日志,失败不记录
springboot 日志类切面,接口成功记录日志,失败不记录 自定义一个注解方法 import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target;/***…...
SQL Server 触发器调用存储过程实现发送 HTTP 请求
文章目录 需求分析解决第 1 步:前置条件,启用 OLE 自动化方式 1:使用 SQL 实现启用 OLE 自动化方式 2:Sql Server 2005启动OLE自动化方式 3:Sql Server 2008启动OLE自动化第 2 步:创建存储过程第 3 步:创建触发器扩展 - 如何调试?第 1 步:登录 SQL Server 2008第 2 步…...
Docker拉取MySQL后数据库连接失败的解决方案
在使用Docker部署MySQL时,拉取并启动容器后,有时可能会遇到数据库连接失败的问题。这种问题可能由多种原因导致,包括配置错误、网络设置问题、权限问题等。本文将分析可能的原因,并提供解决方案。 一、确认MySQL容器的运行状态 …...
快速排序算法改进:随机快排-荷兰国旗划分详解
随机快速排序-荷兰国旗划分算法详解 一、基础知识回顾1.1 快速排序简介1.2 荷兰国旗问题 二、随机快排 - 荷兰国旗划分原理2.1 随机化枢轴选择2.2 荷兰国旗划分过程2.3 结合随机快排与荷兰国旗划分 三、代码实现3.1 Python实现3.2 Java实现3.3 C实现 四、性能分析4.1 时间复杂度…...
