从 KDocker 迁移到 KWin Minimize to Tray:KDE Plasma Wayland 下的托盘化改造
在 KDE Plasma 从 X11 迁移到 Wayland 之后,一些曾经依赖 X11 窗口属性的工具会逐渐失去作用。KDocker 就是典型例子:它可以在 X11 环境中把普通窗口“塞进”系统托盘,但面对原生 Wayland 窗口时,这种外部包装方式已经不再可靠。 本文记录一次完整迁移过程,目标是让两个应用在 KDE Plasma Wayland 下获得统一的托盘行为: 涉及的应用类型包括: 整个迁移过程遵循三个原则: 一、旧方案的问题在哪里 旧方案的结构大致如下: KDocker 在 X11 下通常通过窗口类、窗口 ID 和窗口管理协议操作应用窗口,达到以下效果: 这种方式在 X11 中相对直接,但 Wayland 的安全模型不同: 因此,在原生 Wayland 环境中继续维护 KDocker,不仅效果不稳定,还会引入额外的 XWayland 依赖和窗口识别问题。 正确方向不是继续修补 KDocker,而是: 二、迁移顺序非常重要 这类迁移最危险的操作顺序是: 一旦原有 Desktop entry 直接调用 KDocker,先卸载软件包就会让应用入口失效。 …