Fedora 折腾记
Fedora + Gnome 坑很多,这里是我在使用 Fedora 中遇到的一些坑和解决的方案
这其中的很多 bug 都具有一定的随机性(很多是我在 Google 上使用英文寻找了半天才找到同样的问题,有的甚至需要亲自向开发者反映)。
所以这仍然仅仅是个人记录,其中的解决方案仅供日后备查,不保证可用,请读者(如果有的话)谨慎辨析
分数缩放 (fractional scaling)
Gnome 至今仍不正式支持分数缩放,仅有一个实验性功能提供了Wayland 应用程序的分数缩放(开启方法:gsettings set org.gnome.mutter experimental-features "['scale-monitor-framebuffer']"
)
但是在这种情况下 Xwayland app 会变得非常模糊(包括著名的 vlc
),这显然不是我们需要的
于是我们就需要安装 taaem/mutter-xwayland-fractional-scaling
COPR 中 Patch 过的 mutter
(Patch 来源于 mutter
的一个尚未 merge 的 PR),根据COPR的描述就可以了
2024/11/3 Updated: 该 MR 已经正式合并进 mutter 47,包含于最近发布的 Fedora 41,不再需要该 COPR,直接
gsettings set org.gnome.mutter experimental-features "['scale-monitor-framebuffer', 'xwayland-native-scaling']"
启用该功能即可
仍然存在的问题
实际上,Gnome 至今都不支持真正的分数缩放,目前的分数缩放其实是先将显示器分辨率拉伸,以200%渲染后再缩小(P.S. GTK4 似乎正在支持真·分数缩放),这不仅会导致 GPU 资源的浪费,还会使virt-manager
gnome-box
等需要像素对齐的应用程序出现问题(如 virt-manager
中的虚拟机分辨率过高等)
xwayland-native-scaling
feature 也存在同样的问题(这似乎与 KDE 上同样功能的行为不同),这导致我在 wine
上运行的游戏以3072×1728的分辨率渲染(1920×1080,125%缩放),而且导致某些比较老旧游戏由于窗口过小而完全不能玩(例如东方几乎全系列)
Upd: 找到了一种解决方法:
安装gamescope
,使用gamescope -W 800 -H 600 -F fsr wine [东方游戏文件名]
运行游戏即可
上述方案会使用 AMD 的 FSR 拉伸游戏分辨率,如果想要保持原有的像素风格,可以使用-F nearest
选项(话说东方是像素风游戏吗?)
2024/11/3 Upd: 以上解决方案失效
gamescope
3.14.2 以上版本添加了 Wayland 支持,但是存在问题,直接导致游戏崩溃。对于 Fedora 40 可以使用dnf downgrade gamescope
来降级至3.14.2
版本,但是在 Fedora 41 上不可用。可以尝试自行编译安装旧版本(反正我这由于依赖问题编译失败了)
美化
确切的说其实不是美化,只是让系统的 UI 更加统一
Gtk3 主题
adw-gtk3-theme
图标主题
papirus-icon-theme
, papirus-icon-theme-dark
Qt 应用程序
使用 qt5ct
qt6ct
加上 kvantum
配合 Colloid-kde
主题(一个很像 Libadwaita 的 Kvantum Qt 主题,虽然很多 UI 元素的样式不同,但是整体风格很搭)
- 为什么不用
KvLibdwaita
:这个主题目前的版本存在很大的问题,行编辑器和下拉框的颜色和窗口背景颜色完全相同,导致了很多应用程序不可用 - 为什么不用
QGnomePlatform
:首先这个项目已经不再开发也没有适配 Libadwaita 主题,仍然需要自己搞主题;而且会导致其他问题
字体问题
所有 Qt 应用程序中应该上粗体字的地方字体字重都过大,导致文本(尤其是中文文本)几乎不可读
经调查,发现这似乎是 Cantarell 字体(Gnome的默认字体)的问题,与可变字重(VF)有关,而且是2020年就出现的老bug(似乎是由于不能在所有情况下都能复现而没有修复,不知道为什么我碰上了),当时的解决方案是更换系统字体。然而我经过测试,Noto CJK 似乎也存在同样问题,无奈之下只能使用上古字体文泉驿微米黑(正黑也行,但是太丑)
这时就需要祭出 qt5ct
和 qt6ct
了,如果使用默认的 qgnomeplatform
则不能单独更改 Qt 应用程序的字体(将文泉驿应用为系统默认字体也不是不行,但是我觉得很丑)
编辑 ~\.config\environment.d\qt.conf
并修改 qt5ct
和 qt6ct
中的字体设置后,重启就可以了
1 | # QT_QPA_PLATFORMTHEME='gnome' # 需要更改全局字体 |
窗口圆角
可以使用这个扩展
但是似乎有不少bug
杂项
VScode 貌似默认使用 XWayland,可以启用实验性功能来支持 Wayland,但是在我这输入法没法用(XWayland 下候选框会到处乱飘,但是能用)
似乎有人已经解决了这个问题,但是在我这里没有成功
2024/11/3 Upd: 上文提到的 MR(已合并)已经解决这一问题