Gnome(Wayland)相关问题

目录

Gnome输入法和分数缩放问题

前情提要:

迫于核显用Hyprland经常掉帧(关闭gaps会好些,但是Emmm…),偶发窗口输入焦点定位错误,换了Sway,然而Sway甚至输入法候选框也弹不出来(需要用sway-im替换),界面也十分简陋,一通设置后还是放弃了。

这类WM还是太小众了,经常需要自己捣鼓来实现功能/解决问题,比如切换暗黑主题得自己实现,QT应用不跟随系统主题,总之各类自定义操作乱七八糟,也不优雅。还有就是界面整体风格也不统一,要实现想要的效果需要花费大量精力。加上Wayland的各种Debuff,日常就是在折腾…

最后换成了Gnome(最早用的KDE,自由度比较高,但也要自己捣鼓,还有一些小Bug,感觉不太稳定),网上很多人反馈说Gnome社区一意孤行,过于霸道,我倒是也没太多自定义需求,少折腾也挺好,用起来舒服就行。

问题概述

遇到的问题主要是输入法XWayland分数缩放,其实是Wayland环境下各方实现的问题,涉及混成器、text-input协议、软件支持。

具体来说,部分软件会出现以下问题。

部分软件界面模糊、卡顿

Electron软件和其他QT软件在启用HIDPI分数缩放(如125%)后么,界面变得模糊,字体模糊尤为明显。目前碰到的应用有:VSCode、Spotify、微信UOS版。

Electron软件界面卡顿,如VSCode。

原因其实是因为这些软件默认运行在XWayland下(VSCode、Spotify),有的不支持Wayland(微信)。终端运行xprop,将光标放到软件界面,如变成十字则软件运行在Xwayland。

Xwayland下卡顿问题可能是兼容性问题,而界面模糊问题是因为Gnome(46)环境下Xwayland应用无法真正缩放到整数。这应该是Wayland通病,需要DE/WM额外解决,目前KDE已解决了这个问题,Hyprland可以手动启用所谓强制零缩放(force_zero_scaling)解决,Gnome据说下个版本(47)解决。

部分软件无法使用输入法(Fcitx5)

在Gnome上,这个问题主要是因为Wayland Compositor支持的text-input协议版本有限(Gnome只支持v3),而各类应用程序支持的text-input协议版本五花八门。

  • GTK3/4 原生支持 text-input-v3,
  • Qt5/6 支持text-input-v2,v4(QT_IM_MODULE=fcitx可启用内置im模块),
  • Electron支持text-input-v1(Chrome可通过开启gtk4特性支持v3)

更多详细信息可以看下fcitx作者的文章: 参考1

解决方法

整数缩放并放大字体

针对缩放模糊问题,目前最好的方法就是不进行分数缩放,而是通过整数缩放+字放大体的方式调整(试过打分数缩放补丁,会有输入法偏移的BUG,且不能和输入协议的补丁同时使用)

将缩放调整为100%,安装gnome-tweaks,调整字体缩放比例(如1.25),GDM登录页的字体缩放可安装gdm-settings调整。

gnome-tweak
gnome-tweak
gdm-settings
gdm-settings

大部分应用会跟随系统的字体设置,部分其他界面的缩放可能也需要自己调整,如VSCode,可调整Window: zoom level

mutter输入协议补丁

打上mutter-text-input-v1补丁即可支持text-input-v1,把大量Electron应用的输入问题解决了。

还有个办法就是在Xwayland下运行应用,但是经常出现卡顿,输入跳字无法连续输入,尽量还是用Wayland吧。

参考

  1. Chrome/Chromium 今日 Wayland 输入法支持现状
  2. Using Fcitx 5 on Wayland
  3. Wayland+Gnome环境下的缩放和输入法问题
  4. mutter-xwayland-scaling (aur)