BOB CHEN

POST  ·  2026-07-11

GNOME
→ KDE

LOG FILE / SAVE 003

GNOME 太难用了,所以换 KDE

这台机器是 7 月 8 日装的,GNOME 在上面只活了两天。

而且它还是装错的。装 Debian 选软件那一步,我记得勾的是 KDE Plasma,重启后迎面而来的却是 GNOME。最可疑的是安装器那屏复选框:GNOME 默认勾着,KDE 要另外选,两行还长得差不多。到底是我手抖,还是安装器没认,现在已经无从验尸。系统都装完了,我决定先忍。

换 KDE 不是心血来潮。严格说也不算「换」,KDE 才是我一开始想装的桌面。GNOME 只用了两天就让我开始修桌面本身,而不是用这台机器。这就足够了。

先把 KDE 装上再说

Debian 13 里最省事的入口是 kde-standard,它会带上 Plasma 和一组常用应用。我没在这一步就删 GNOME。先把新桌面装好、登录验证,不然很容易顺手把显示管理器也拆了。

安装 Debian 的 KDE 标准桌面SHELL
sudo apt update
sudo apt install kde-standard

安装时如果问默认显示管理器,选 SDDM。装完注销,在登录界面选 Plasma Wayland。进桌面后先看两个变量,不要凭壁纸猜自己进了哪个会话:

确认桌面和会话类型SHELL
printf 'desktop=%s\nsession=%s\n' "$XDG_CURRENT_DESKTOP" "$XDG_SESSION_TYPE"
# desktop=KDE
# session=wayland

桌面、显示管理器和 Wayland 会话都是宿主机的图形栈,这里不用 Docker。真把 Plasma 塞进容器,显卡、输入法、D-Bus 和登录会话只会一起变成新坑。

GNOME 这两天都干了什么

  • 桌面基本功能靠扩展拼。默认没有任务栏,窗口连最小化按钮都没有,装了 dash-to-panel 和 arcmenu 才拼出一个正常人能用的桌面。而这些全是第三方扩展,GNOME 一升级就可能集体阵亡。
  • 想调个外观,libadwaita 应用根本不理你的主题,改了等于没改。
  • 最离谱的一条:这台机器不接显示器,24 小时开着当 Sunshine 串流主机。GNOME 闲置 15 分钟后却会自动挂起,所有远程访问一起断。最后改了 gsettings 里的空闲策略,又把四个 suspend target 全 mask 掉,它才肯保持清醒。至于为什么一台插着墙电的台式机会套上这条策略,我没查到可靠结论,就不替它编理由了。

一台台式机要靠 mask 系统服务才能保证不睡着,这日子没法过了。所以昨天把桌面换成了 KDE Plasma,Wayland 会话。

换完第一关:Telegram 候选框在闪

KDE 刚装好,输中文的时候 Telegram 候选框开始闪。不是偶尔闪一下,是那种“我到底有没有选中这个字”的闪。打字本来是输入内容,最后变成了观察候选框刷新频率。

元凶是 GNOME / X11 时代留下来的环境变量。以前的教程都让你加这三行:

X11 时代教程的老三样ENV
QT_IM_MODULE=fcitx
GTK_IM_MODULE=fcitx
XMODIFIERS=@im=fcitx

fcitx5 官方文档,KDE Plasma Wayland 的推荐配置是全局只留 XMODIFIERS,让原生 Wayland 的 Qt / GTK 应用走 text-input 协议;只有少数仍跑 X11 / XWayland 的程序,才按应用单独补 QT_IM_MODULEGTK_IM_MODULE。这台机器全局再设 QT_IM_MODULE,Telegram 就同时挂上了两条输入通道。

坑的地方在于:配置文件删干净了,闪烁照旧。因为 systemd 的用户会话把旧值攥在手里不放:

配置文件删干净之后SHELL
$ systemctl --user show-environment | grep IM_MODULE
QT_IM_MODULE=fcitx      # 文件已经删了,值还活着
GTK_IM_MODULE=fcitx

KWin 拉起来的 fcitx5 和 Telegram 都继承了这个脏值。用 fcitx5 的 DebugInfo 一看,同一个 Telegram 同时挂着 frontend:dbusfrontend:wayland 两个 InputContext。两条通道抢一个候选框,难怪会闪:

看每个应用挂了几条输入通道SHELL
$ dbus-send --print-reply --dest=org.fcitx.Fcitx5 /controller \
    org.fcitx.Fcitx.Controller1.DebugInfo
# 这里要看当前焦点是否被两条前端同时接管

修法三步。~/.config/environment.d/im-fcitx.conf 只留一行:

~/.config/environment.d/im-fcitx.confENV
XMODIFIERS=@im=fcitx

fcitx5 的启动交给 KWin,不再用 ~/.xprofile 之类的自启:

~/.config/kwinrcINI
[Wayland]
InputMethod=/usr/share/applications/org.fcitx.Fcitx5.desktop
VirtualKeyboardEnabled=true

最后把会话里缓存的脏值清掉,注销重登:

清脏值,然后注销重登SHELL
$ systemctl --user unset-environment QT_IM_MODULE GTK_IM_MODULE \
    SDL_IM_MODULE GLFW_IM_MODULE

重新登录之后,Telegram 不闪了,Ctrl+Space 切中文正常。口诀:候选框行为不对,先看 systemctl --user show-environment 里有没有脏值,别急着怪 fcitx5。

GNOME 留下的其他遗产

输入法只是第一关。GNOME 的 ~/.config/monitors.xml KDE 不认,显示器分辨率、位置和缩放要看 KDE 自己的 ~/.config/kwinoutputconfig.json

Sunshine 的显示器切换脚本也得换,gnome-display-switch 改成了 plasma-display-switch。客户端连进来切虚拟屏、断开切回物理屏,逻辑没变,变的是桌面环境背后的命令。

还有一个 GNOME 留下的 IBus 服务。KDE 下它一般不至于跳出来捣乱,但既然不用了,就在用户级别 mask 掉,免得以后排查输入法时多一个幽灵选项。

KDE 本身装得很快。麻烦的是旧桌面留下的配置还在生效:显示器配置、输入法变量、自启项、服务和脚本,每个都得单独查。

重启后的检查清单

  • 自动登录直接进 KDE Plasma Wayland 会话
  • pgrep fcitx5 有进程,随便找个输入框能切中文
  • Telegram 候选框不闪
  • Sunshine 客户端连上切虚拟屏,断开切回物理输出
  • 本地那几个服务和端口都还在监听

目前全绿。剩下的就是慢慢发现 KDE 还有哪些地方不认识 GNOME 留下来的东西。

KDE 当然也会有自己的毛病。至少现在,它肯把任务栏、最小化按钮和设置选项直接给我。等它也把我惹毛了,再写下一篇。

02

COMMENTS 留言

PLAYER MESSAGES 留言

READING MEMORY CARD…