记录一下如何解决Gmod在Linux下显示不出汉字的问题

这几天刷了一堆高松灯企鹅视频,搞得我又想玩GMod了,于是乎下载回来。装好打开,初看没有问题,进地图一看,我去,汉字怎么全变成大方块了?到网上搜了好些时间,都说是老问题。用proton虽然能正常玩,但是字体忽大忽小的,看着实在不习惯。

想着是不是兼容性的问题,在兼容性里将runtime改成了Legacy runtime 1.0,然后症状变了,方块没了,成空白了。又是一通搜索过后,找到了这个issue,里面说可以通过配置FONTCONFIG_FILE解决汉字变成空白的问题,跟着试了一下,终于可以正常显示汉字了。

以下是fontconfig文件的内容(来自另一个issue):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
<match target="pattern">
<test name="family" qual="any">
<string>Helvetica</string>
</test>
<edit name="family" mode="assign" binding="same">
<string>WenQuanYi Micro Hei</string>
<string>Noto Sans CJK TC</string>
<string>Noto Sans CJK JP</string>
<string>Noto Sans CJK KR</string>
<string>Noto Sans</string>
<string>Noto Color Emoji</string>
<string>sans-serif</string>
</edit>
</match>
<dir>/usr/share/fonts</dir>
</fontconfig>

将fontconfig保存之后,将gmod的启动参数修改成FONTCONFIG_FILE=/path/to/source.conf %command%,这样就能正常显示汉字了。
似乎必须使用Legacy runtime 1.0作为兼容性工具,用新的运行时不起作用。

更新一下

因为i386的库阻碍了系统更新,昨天将Steam用flatpak重装了一下,设置的迁移参考这篇文章,<dir>/usr/share/fonts</dir>要修改成一个flatpak中能读取的路径,我选的是~/.var/app/com.valvesoftware.Steam/fonts,将/usr/share/fonts整个复制到~/.var/app/com.valvesoftware.Steam/就行,其他的像菜单之类的问题网上一搜就有,不再赘述了。

给自己的一加 Ace 3 刷了 Pixel OS

前一段时间家长同意给我换手机(之前的手机的电池已经不耐用了而且内存有点小,家长说换电池的收益不如换一台新手机)。原本选的是一加 Ace 3V。家长心情好加预算给我换了Ace 3
最开始只是解开bl锁把手机root了,但是发现oppo浏览器和快应用啥的还是治不了,昨天干脆给它刷了 Pixel OS
刷机前用Swift Backup备份了常用应用的数据,并且提前在备用机上登陆了自己的微信,防止刷机失败失联。

刷机时遇到的问题

跟着移植者给的步骤刷机,结果不停遇到error 7,用了fastboot wipe-super super_empty.img也没用(super_empty.img是从维护者的另一个帖子里找到的),最后在维护者的群里找到了fastboot package的下载地址,改用fastboot刷了进去。之后格式化了data分区,成功进入系统

使用时遇到的问题

不能用KernelSU来 root ,只能从 recovery 刷入 magisk
不能用手机当门禁卡了 (在网上找到了模拟门禁卡的应用)
改完分辨率之后开机动画的位置会偏移,吓死我了
没有通话录音(现在刷了BCR模块,能录音了)
没有接入FCM的应用的通知可能会收不到(现在安装了HMS Push,兜兜转转最后还是安装了HMS Core)
无法使用ARCore(我的一个ar应用用不了了)

先继续用着,等遇到无法忍受的问题再刷回 colorOS 吧

辅助脚本

切换分辨率

这个ROM默认的分辨率是最大分辨率,用这个脚本可以在电脑上手动切换分辨率

1
2
3
4
5
6
7
8
9
10
11
12
#!/bin/bash
case $1 in
low)
adb shell wm size 1080x2376
;;
high)
adb shell wm size reset
;;
*)
echo "Usage: switch_size.sh <low|high>"
;;
esac

设置DPI

ROM里默认的dpi是400,从一加官网上查到的dpi是450,改一下
adb shell wm density 450。改完之后显示效果正常了不少。

给自己的Surface 3装上了Chrome OS

最近自己的 Sufrace 3 越来越卡了,想起来以前听说 Chrome OS 适合老机子,于是就想试一下。
最开始我选择了国内的改版 Fyde OS ,但是发现这个驱动没有,那个驱动没有,搜索一番找到了如何给Fyde OS换内核,换完内核之后没问题了,但是用不了安卓子系统。
看了一下内核的来源,知道了 Brunch 这个项目。

跟着 Brunch 官方提供的教程烧写U盘,插到 Surface 3 上无法启动,发现已经不支持 Surface 3 的cpu了,搜索后发现可以使用 r109 版本,再次烧写U盘,安装,正常启动,安卓子系统也能用了。
现在触屏和 Surface Pen 能正常工作,蓝牙用不了,耳机有点问题,自己修好了。

耳机插上之后系统不会自己解除耳机通道的静音,于是自己写了一个脚本

1
2
3
4
5
6
#!/bin/sh
while true
do
amixer -c 0 sset "Headphone Channel" unmute > /dev/null
sleep 0.6
done

每0.6秒解除一次静音,之后根据 这份文档 做了开机启动,就没问题了

在 Ubuntu 22.04 上安装 deb 版 Firefox

方法参考: 这里
如果你不准备使用英文版,那么在完成步骤3之后要再加一步,运行

1
2
3
4
5
echo '
Package: *
Pin: release o=LP-PPA-mozillateam
Pin-Priority: 1001
' | sudo tee /etc/apt/preferences.d/firefox-locale-zh-hans

这样才能正常更新firefox的简中语言包,否则系统会尝试安装snap版的语言包,从而引发冲突
如果你不是简体中文用户,请将firefox-locale-zh-hans中的zh-hans换成你的语言

忘了备份博客了

重装系统,忘了备份博客,加上之前忘了push,博文少了几篇,只好自己手动复制
顺带一提,ipfs的文件也忘了备份,要换dnslink了

在树莓派上安装PVE

最近在自己的树莓派4B上装了PVE,流程参照了这篇文章,然后按照自己的需求做了些修改,也记录一下遇到的坑

自己的修改

我没有按照文章中的做法,直接在 /etc/network/interfaces 创建一个网桥,而是在安装完PVE之后在PVE里新建的网桥
并且桥接了eth0,方便自己局域网里的其他设备访问

遇到的坑

调整完 /etc/network/interfaces 后重启不生效

忘了 sudo systemctl enable networking

被桥接的eth0被分配了IP

忘了 sudo systemctl disable dhcpcd

无法安装 zfs-dkmsceph-dkms

Raspberry Pi OS 的内核版本太高,自行降级到5.10即可

B站直播开放平台使用记录

B站最近开放了直播API,开始允许第三方开发互动玩法和插件了,自己也申请了开发者,
现在可以用官方的API,不用再担心弹幕协议换了不知道该怎么办了
现在弹幕处理除了事件名变了,其余和以前基本一样

记录一下使用B站直播开放平台使用时遇到的问题

1:用https请求测试环境域名报错
原因:测试环境域名没有https

2:用测试环境报4001
原因:不知道
测试环境已经不存在了

3:报错4002
原因:
1、签名字符串多了一个换行符
2、复制accessKeySecret时多了一个空格