KiCad 与 Wayland 支持声明 “ KiCad 开发团队经常收到关于我们对 Wayland 支持情况的询问。鉴于 Fedora 和 Ubuntu 都计划在不久的将来从其主要桌面环境中放弃对 X11 的支持,我们希望就 KiCad 对 Wayland 的支持现状,为用户提供清晰、透明的指引。 ”

KiCad 可以在 Wayland 系统上运行,但存在严重的限制和已知问题,这些问题会极大地降低用户体验。虽然您可以在 Wayland 上使用 KiCad 设计 PCB,但会遇到许多我们无法在应用程序层面修复的问题。
以下问题是 Wayland 协议本身、或其在桌面合成器 (compositor)、窗口管理器或其他显示堆栈层中的实现所存在的已知问题,这些问题超出了我们团队的解决能力范围:
窗口位置与恢复: Wayland 目前不允许应用程序控制窗口位置。这意味着当您打开 KiCad 时,它无法记住您上次放置窗口的地方。
停靠面板定位: 停靠的面板和工具栏无法被妥善管理或恢复其位置。
多窗口协调: 同时管理多个 KiCad 窗口时存在问题。
窗口拖动限制: 在不同区域之间拖动标签页和面板的功能已损坏或不可靠。
光标/指针瞬移 (Warping): 这项对许多 CAD 操作至关重要的功能,在某些 Wayland 实现中仅为“有条件可用”,具体取决于其是否支持可选的协议扩展。
焦点管理: 不可预测的窗口焦点行为,可能会打断工作流程。
输入设备处理: 使用特殊输入设备和快捷键时会遇到各种问题。
OpenGL 调用节流: 当窗口被遮挡时,某些合成器会限制 (throttle) OpenGL 调用,导致程序冻结,而不是仅仅通知客户端窗口状态已改变。
CPU/GPU 占用率高: 出现资源消耗飙升的情况,这在 X11 下不会发生,通常是为解决上述 OpenGL 调用节流问题而采取的一种“绕路”方法。
图形渲染异常: 出现渲染瑕疵和显示错乱。
应用程序冻结与崩溃: 存在 Wayland 环境特有的不稳定性问题。
剪贴板功能: 应用程序之间的复制/粘贴操作不可靠。
模态对话框行为: 对话框的定位、焦点和交互存在问题。
外部工具集成: 启动和管理外部应用程序时存在问题。
这些问题的存在,是因为 Wayland 的设计理念本身就有意地省略了一些桌面应用程序(包括 X11、Windows 和 macOS 平台)依赖了几十年的基础功能,例如定位窗口或瞬移鼠标光标的能力。这不是疏忽,而是其设计哲学的一部分。
生态碎片化也让情况雪上加霜。GNOME 对协议的解释是一种方式,KDE 是另一种,而其他小众的合成器又有自己的方式。作为应用开发者,我们无法依赖一个统一、一致的 Wayland 协议及其实验性扩展的实现。Linux 本身就只占 KiCad 用户群的一小部分,如果再因窗口管理器而进一步碎片化,将会带来难以承受的维护负担。
最令人沮丧的是,这些问题我们自己无法修复。问题的根源在于 Wayland 协议、窗口管理器和合成器。这些都不是我们作为应用程序开发者能够通过编写代码或打补丁来规避的。
我们不是唯一面临这些挑战的应用程序。我们希望 Wayland 生态系统能够逐渐成熟,并发展出一种更平衡、更一致的方法,让应用程序能够高效地运行。但目前,我们还没到那一步。
KiCad 团队已经做出了战略性决定:
避免针对特定窗口管理器的“绕路”方案,因为这需要为不同的桌面环境维护独立的代码路径。
在可能的情况下,继续构建和测试与 Wayland 的兼容性,但不会为此投入核心开发资源。
将我们有限的开发时间,集中在能让所有用户受益的功能和改进上。
维护关于 Wayland 限制的清晰文档,以便用户建立合理的预期。
我们不会调查或支持与 Wayland 特定问题相关的错误报告。 这包括以下问题:
窗口的定位、大小调整或焦点问题。
在 X11 上不会发生,仅在 Wayland 上出现的应用程序冻结或崩溃。
Wayland 环境下特有的高 CPU/GPU 占用率。
Wayland 环境下特有的输入设备问题。
图形渲染异常或显示问题。
剪贴板功能问题。
任何其他无法在 X11 系统上复现的问题。
关于 KiCad 内部功能(不涉及窗口管理)的错误报告,我们依然欢迎并会正常调查。
如果您将 KiCad 用于专业工作或需要一个可靠、功能完整的体验,我们强烈建议您:
使用基于 X11 的桌面环境,例如:
XFCE (使用 X11 模式)
KDE Plasma (使用 X11 模式)
MATE
选择其他仍维护 X11 支持的传统桌面环境。
如果您的发行版默认仅提供 Wayland,请安装兼容 X11 的显示管理器(如 LightDM 或 KDM),而不是 GDM。
选择仍然维护 X11 支持的 Linux 发行版,一些发行版正在转向“仅 Wayland”的配置,可能无法满足您的需求。
如果您愿意接受这些限制和偶尔的挫败感,KiCad 可以在 Wayland 上运行。但是,请做好以下心理准备:
无法恢复您偏好的窗口布局。
偶尔会崩溃或冻结。
因界面限制导致生产力下降。
需要想办法绕过各种 UI 怪癖。
我们认识到 Linux 桌面生态系统正在演进,我们无意阻止这一进程。然而,我们坚信用户生产力第一。我们的用户需要的是设计电路板,而不是与实验性的桌面技术作斗争。对于专业工作而言,稳定性和可靠性至关重要,我们有限的开发资源应该集中在核心功能上,而不是去绕过协议的限制。
我们将继续关注 Wayland 的发展,并欢迎上游项目提供的修复。我们已在 FOSDEM 等会议上与桌面环境的开发者进行了交流,并就我们的需求提供了详细反馈。虽然已经取得了一些进展(例如指针瞬移协议终于在开发中),但许多根本性问题仍未解决。
如果您是一名有兴趣改善 KiCad 在 Wayland 上支持情况的开发者,可以通过以下几种方式提供帮助:
为上游项目做贡献:帮助修复 Wayland 协议、窗口管理器或 wxWidgets 中的问题。
赞助开发:同时依赖 Wayland 和 KiCad 的公司可以资助特定的功能改进。
测试并提供反馈:帮助我们确定哪些问题对您的工作流程最为关键。
我们资助了一部分 wxWidgets 的开发工作以帮助改善 Wayland 的兼容性,但许多问题需要 Wayland 生态系统中更广泛的变革。我们鼓励那些能够让所有应用程序(而不仅仅是 KiCad)受益的贡献。
我们努力保持务实。我们支持能用的技术,我们记录下不能用的问题,然后将开发精力集中在能为用户带来最大利益的地方。随着 Wayland 的改进,我们会调整我们的立场,但我们不会在 KiCad 的可靠性和功能性上妥协。
就目前而言,如果您需要在 Linux 上使用 KiCad,请使用 X11。
全部0条评论
快来发表一下你的评论吧 !