KDE + Archlinux @ Termux 安装美化之路

Warning

因为不太可能有人像我一样傻买个国产平板搭 termux 环境打代码,所以本篇语言不会很干练,更像吐槽 :)

TLDR: 最后失败了,别想着在 arm 架构的平板上搭开发环境😭😭

前情提要

咱就是说勒紧裤头攒钱买了个平板,想着游戏本续航是根本带不到课室的,一个平板又能无纸化,又能 termux 敲代码,还能画个画啥的。结果 termux 面对 ColorOS 当场碰壁,详见 archlinux @ termux @ ColorOS。没错,ColorOS 的 termux 一直处于瘫痪状态。经过 ColorOS 15 后的第二次更新,OnePlus Pad Pro 终于不会再一直在你安装包的时候弹窗还删你包了 🎉

美中不足是 ColorOS (或者说所有 Android 14+?) 权限越缩越紧,导致 lspci 会被 Permission Denied。从而就导致一大批 Wayland Compositor 没办法在 unrooted termux 上运行。。(NO~ 我的 Hyprland 😭😭)

你知道的,我勒紧裤头才省钱省出来买个平板,不想随随便便 root,真怕变板砖。。。所以只好委屈一下用 x11 的 window manger 了。。为了避免太多 hacking,最终选定了比较成熟的 KDE

安装 termux & archlinux

因为 xfce 不是很好看,也不太好定制,所以后面管关于 vncxfce4 的部分不看,转而使用 kde plasma 和更新更好的 termux-x11

安装 KDE Plasma

1
yay -S plasma-meta

然后在 termux 下写个快捷脚本,借鉴 https://github.com/LinuxDroidMaster/Termux-Desktops/blob/main/scripts/proot_arch/startkde_arch.sh

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#!/data/data/com.termux/files/usr/bin/bash

# Kill open X11 processes
kill -9 $(pgrep -f "termux.x11") 2>/dev/null

# Enable PulseAudio over Network
pulseaudio --start --load="module-native-protocol-tcp auth-ip-acl=127.0.0.1 auth-anonymous=1" --exit-idle-time=-1

# Prepare termux-x11 session
export XDG_RUNTIME_DIR=${TMPDIR}
termux-x11 :1 >/dev/null &

# Wait a bit until termux-x11 gets started.
sleep 3

# Launch Termux X11 main activity
am start --user 0 -n com.termux.x11/com.termux.x11.MainActivity > /dev/null 2>&1
sleep 1

# Login in PRoot Environment. Do some initialization for PulseAudio, /tmp directory
# and run KDE as user droidmaster.
# See also: https://github.com/termux/proot-distro
# Argument -- acts as terminator of proot-distro login options processing.
# All arguments behind it would not be treated as options of PRoot Distro.
proot-distro login archlinux --shared-tmp -- /bin/bash -c  'export PULSE_SERVER=127.0.0.1 && export XDG_RUNTIME_DIR=${TMPDIR} && su - dvdbr3o -c "DISPLAY=:1 dbus-launch startplasma-x11"'

exit 0

然后用这个脚本进 arch 就可以看到 KDE 了!!

修改分辨率

默认分辨率是 3000x15__,忘了,但是不重要,这么宽,这么大的分辨率在我平板上我怎么看?而且它还强制默认只有这一种分辨率。。所以要手动缩小分辨率,用到 xrandr

不知道是啥蜜汁问题,startplasma-x11 进系统竟然没有加载 ~/.xprofile / ~/.xsession / ~/.xinitrc ??浪费我一下午时间 😅 问我为什么不用 /etc/profile?要是 profilekde 之后执行那我能不乐意😅 但想想就是不可能,必须找个能在 plasma 启动后的 startup script 方案。

最后解决方案是用 kde-workspace。在 ~/.config/plasma-workspace/env/ 下的脚本都会在 plasma 启动后执行。于是在 ~/.config/plasma-workspace/env/display.sh

1
2
3
4
5
6
7
8
#!/bin/bash
# Display Resolution
xrandr --newmode "1920x1080_60.00"  173.00  1920 2048 2248 2576  1080 1083 1088 1120 -hsync +vsync
xrandr --newmode "1280x768_60.00"   79.50  1280 1344 1472 1664  768 771 781 798 -hsync +vsync
xrandr --addmode "Builtin Display" "1920x1080_60.00"
xrandr --addmode "Builtin Display" "1280x768_60.00"

xrandr --output "Builtin Display" --mode "1920x1080_60.00"

最后发现 termux-x11 设置里 Output > Display resolution mode 改为 exact 并指定分辨率好像就可以解决。。。😅

浪费了周末的一个下午。。😭😭😭😭

中文支持

前面的 blog 提到了本地化而且讲的很清楚,但是要注意的是一定要先下一个中文字体,否则中文还是都是问号乱码:

1
yay -S ttf-harmonyos-sans # 鸿蒙一般般,但是它字体确实好看

(话说本来还想在 ColorOS 也全局用 HarmonyOS Sans,这何尝不是一种 NTR,结果你懂的,什么叫做主题商店啊😅)

  • TODO: 今晚好晚了,明天还要上课,现在先去洗澡。还有好多好多美化工作,最后还有重量级就是看能不能支持 Vulkan 开发了。。。要是不能我还不如直接买个轻薄本,买个 Surface Book 不比平板好?但不管怎么说游戏本性能不如台式机,还不能承担笔记本功能的逆天事实已经被证实了。。。到底是谁在怂恿我买游戏本啊啊啊啊啊😤😤 🛫 2024-12-08 ✅ 2024-12-09

鼠标 & 触控板支持

平板 TouchPad 感觉不是很顺手,双指滑动没有预期的 scroll 操作。而且按键盘上的搜索键 plasma 提示 Touchpad off,明显是收到了 keycode 但是 Touchpad 或者 Keyboard 哪里设置不正常。自然想到去 System Settings > Mouse & Touchpad 排查,但是竟然闪退了??查看 log 定位到是 xcb_mouse: unable to select appropriate backend,应该是 xinput 的锅。但是调用 xinput list 输出的 device list 看起来却很正常,又有 Mouse 又有 Touchpad 。。。

找不到解决方案。。感觉是权限问题。不管了。。。

输入法

fctix5

主题

动态壁纸

vscode

1
yay -S visual-studio-code-bin

Vulkan

屁嘞,我在想什么。。首先基于 vnc 的方案屏幕那么卡我搞个蛋的图形学。。其次权限这么严怎么可能 gpu passthrough。。最后,你平板是 arm 架构连 clangd 都装不上 😅😅😅 我 ctrl 那么依赖模板没有 language server 我怎么活??心累,,随时随地开发 Vulkan 的梦破灭了。。。vulkan 的开发门槛还挺高的,,这平板只能拿来写写 server 或者前端了。。。打代码也用不上 termux 那么完全的环境,那屏幕投影卡的不如原生的阉割版 vscode 的 Marscode Web IDE 啊啊。。但是哪怕是写 server 和前端 Marscode 体验也比 termux-x11 好啊 😭😭 白买了白买了。。

总结

大家千万别以为平板可以当生产力工具,尤其是 unrooted pads。。 有打代码需求老老实实买个轻薄本,装 windows (with wsl2),特别是避开 arm 架构 QAQ 现在已经改变方向了,准备入手一台二合一笔记本,就是不知道手写笔+Obsidian 在 Windows 上体验如何。目前看中的是 xiaomi book air 13,生态什么的已经无所谓了,能在宿舍外打 vulkan 已经很满足了 QAQ