“KiCad 開(kāi)發(fā)團(tuán)隊(duì)經(jīng)常收到關(guān)于我們對(duì) Wayland 支持情況的詢問(wèn)。鑒于Fedora和Ubuntu都計(jì)劃在不久的將來(lái)從其主要桌面環(huán)境中放棄對(duì) X11 的支持,我們希望就 KiCad 對(duì) Wayland 的支持現(xiàn)狀,為用戶提供清晰、透明的指引。”

當(dāng)前狀態(tài):功能可用,但體驗(yàn)降級(jí)
KiCad 可以在 Wayland 系統(tǒng)上運(yùn)行,但存在嚴(yán)重的限制和已知問(wèn)題,這些問(wèn)題會(huì)極大地降低用戶體驗(yàn)。雖然您可以在 Wayland 上使用 KiCad 設(shè)計(jì) PCB,但會(huì)遇到許多我們無(wú)法在應(yīng)用程序?qū)用嫘迯?fù)的問(wèn)題。
以下問(wèn)題是 Wayland 協(xié)議本身、或其在桌面合成器 (compositor)、窗口管理器或其他顯示堆棧層中的實(shí)現(xiàn)所存在的已知問(wèn)題,這些問(wèn)題超出了我們團(tuán)隊(duì)的解決能力范圍:
窗口管理問(wèn)題
-
窗口位置與恢復(fù):Wayland 目前不允許應(yīng)用程序控制窗口位置。這意味著當(dāng)您打開(kāi) KiCad 時(shí),它無(wú)法記住您上次放置窗口的地方。
-
??棵姘宥ㄎ唬?/span>??康拿姘搴凸ぞ邫跓o(wú)法被妥善管理或恢復(fù)其位置。
-
多窗口協(xié)調(diào):同時(shí)管理多個(gè) KiCad 窗口時(shí)存在問(wèn)題。
-
窗口拖動(dòng)限制:在不同區(qū)域之間拖動(dòng)標(biāo)簽頁(yè)和面板的功能已損壞或不可靠。
輸入與交互問(wèn)題
-
光標(biāo)/指針?biāo)惨?(Warping):這項(xiàng)對(duì)許多 CAD 操作至關(guān)重要的功能,在某些 Wayland 實(shí)現(xiàn)中僅為“有條件可用”,具體取決于其是否支持可選的協(xié)議擴(kuò)展。
-
焦點(diǎn)管理:不可預(yù)測(cè)的窗口焦點(diǎn)行為,可能會(huì)打斷工作流程。
-
輸入設(shè)備處理:使用特殊輸入設(shè)備和快捷鍵時(shí)會(huì)遇到各種問(wèn)題。
性能與穩(wěn)定性問(wèn)題
-
OpenGL 調(diào)用節(jié)流:當(dāng)窗口被遮擋時(shí),某些合成器會(huì)限制 (throttle) OpenGL 調(diào)用,導(dǎo)致程序凍結(jié),而不是僅僅通知客戶端窗口狀態(tài)已改變。
-
CPU/GPU 占用率高:出現(xiàn)資源消耗飆升的情況,這在 X11 下不會(huì)發(fā)生,通常是為解決上述 OpenGL 調(diào)用節(jié)流問(wèn)題而采取的一種“繞路”方法。
-
圖形渲染異常:出現(xiàn)渲染瑕疵和顯示錯(cuò)亂。
-
應(yīng)用程序凍結(jié)與崩潰:存在 Wayland 環(huán)境特有的不穩(wěn)定性問(wèn)題。
-
剪貼板功能:應(yīng)用程序之間的復(fù)制/粘貼操作不可靠。
對(duì)話框與 UI 限制
-
模態(tài)對(duì)話框行為:對(duì)話框的定位、焦點(diǎn)和交互存在問(wèn)題。
-
外部工具集成:啟動(dòng)和管理外部應(yīng)用程序時(shí)存在問(wèn)題。
為什么這些問(wèn)題遲遲無(wú)法解決?
這些問(wèn)題的存在,是因?yàn)?Wayland 的設(shè)計(jì)理念本身就有意地省略了一些桌面應(yīng)用程序(包括 X11、Windows 和 macOS 平臺(tái))依賴了幾十年的基礎(chǔ)功能,例如定位窗口或瞬移鼠標(biāo)光標(biāo)的能力。這不是疏忽,而是其設(shè)計(jì)哲學(xué)的一部分。
生態(tài)碎片化也讓情況雪上加霜。GNOME 對(duì)協(xié)議的解釋是一種方式,KDE 是另一種,而其他小眾的合成器又有自己的方式。作為應(yīng)用開(kāi)發(fā)者,我們無(wú)法依賴一個(gè)統(tǒng)一、一致的 Wayland 協(xié)議及其實(shí)驗(yàn)性擴(kuò)展的實(shí)現(xiàn)。Linux 本身就只占 KiCad 用戶群的一小部分,如果再因窗口管理器而進(jìn)一步碎片化,將會(huì)帶來(lái)難以承受的維護(hù)負(fù)擔(dān)。
最令人沮喪的是,這些問(wèn)題我們自己無(wú)法修復(fù)。問(wèn)題的根源在于 Wayland 協(xié)議、窗口管理器和合成器。這些都不是我們作為應(yīng)用程序開(kāi)發(fā)者能夠通過(guò)編寫代碼或打補(bǔ)丁來(lái)規(guī)避的。
我們不是唯一面臨這些挑戰(zhàn)的應(yīng)用程序。我們希望 Wayland 生態(tài)系統(tǒng)能夠逐漸成熟,并發(fā)展出一種更平衡、更一致的方法,讓應(yīng)用程序能夠高效地運(yùn)行。但目前,我們還沒(méi)到那一步。
我們的方針與策略
KiCad 團(tuán)隊(duì)已經(jīng)做出了戰(zhàn)略性決定:
-
避免針對(duì)特定窗口管理器的“繞路”方案,因?yàn)檫@需要為不同的桌面環(huán)境維護(hù)獨(dú)立的代碼路徑。
-
在可能的情況下,繼續(xù)構(gòu)建和測(cè)試與 Wayland 的兼容性,但不會(huì)為此投入核心開(kāi)發(fā)資源。
-
將我們有限的開(kāi)發(fā)時(shí)間,集中在能讓所有用戶受益的功能和改進(jìn)上。
-
維護(hù)關(guān)于 Wayland 限制的清晰文檔,以便用戶建立合理的預(yù)期。
針對(duì) Wayland 用戶的錯(cuò)誤報(bào)告政策
我們不會(huì)調(diào)查或支持與 Wayland 特定問(wèn)題相關(guān)的錯(cuò)誤報(bào)告。這包括以下問(wèn)題:
-
窗口的定位、大小調(diào)整或焦點(diǎn)問(wèn)題。
-
在 X11 上不會(huì)發(fā)生,僅在 Wayland 上出現(xiàn)的應(yīng)用程序凍結(jié)或崩潰。
-
Wayland 環(huán)境下特有的高 CPU/GPU 占用率。
-
Wayland 環(huán)境下特有的輸入設(shè)備問(wèn)題。
-
圖形渲染異?;蝻@示問(wèn)題。
-
剪貼板功能問(wèn)題。
-
任何其他無(wú)法在 X11 系統(tǒng)上復(fù)現(xiàn)的問(wèn)題。
關(guān)于 KiCad 內(nèi)部功能(不涉及窗口管理)的錯(cuò)誤報(bào)告,我們依然歡迎并會(huì)正常調(diào)查。
給用戶的建議
專業(yè)用途
如果您將 KiCad 用于專業(yè)工作或需要一個(gè)可靠、功能完整的體驗(yàn),我們強(qiáng)烈建議您:
-
使用基于 X11 的桌面環(huán)境,例如:
-
XFCE (使用 X11 模式)
-
KDE Plasma (使用 X11 模式)
-
MATE
-
-
選擇其他仍維護(hù) X11 支持的傳統(tǒng)桌面環(huán)境。
-
如果您的發(fā)行版默認(rèn)僅提供 Wayland,請(qǐng)安裝兼容 X11 的顯示管理器(如 LightDM 或 KDM),而不是 GDM。
-
選擇仍然維護(hù) X11 支持的 Linux 發(fā)行版,一些發(fā)行版正在轉(zhuǎn)向“僅 Wayland”的配置,可能無(wú)法滿足您的需求。
日常/非專業(yè)用途
如果您愿意接受這些限制和偶爾的挫敗感,KiCad 可以在 Wayland 上運(yùn)行。但是,請(qǐng)做好以下心理準(zhǔn)備:
-
無(wú)法恢復(fù)您偏好的窗口布局。
-
偶爾會(huì)崩潰或凍結(jié)。
-
因界面限制導(dǎo)致生產(chǎn)力下降。
-
需要想辦法繞過(guò)各種 UI 怪癖。
展望未來(lái)
我們認(rèn)識(shí)到 Linux 桌面生態(tài)系統(tǒng)正在演進(jìn),我們無(wú)意阻止這一進(jìn)程。然而,我們堅(jiān)信用戶生產(chǎn)力第一。我們的用戶需要的是設(shè)計(jì)電路板,而不是與實(shí)驗(yàn)性的桌面技術(shù)作斗爭(zhēng)。對(duì)于專業(yè)工作而言,穩(wěn)定性和可靠性至關(guān)重要,我們有限的開(kāi)發(fā)資源應(yīng)該集中在核心功能上,而不是去繞過(guò)協(xié)議的限制。
我們將繼續(xù)關(guān)注 Wayland 的發(fā)展,并歡迎上游項(xiàng)目提供的修復(fù)。我們已在 FOSDEM 等會(huì)議上與桌面環(huán)境的開(kāi)發(fā)者進(jìn)行了交流,并就我們的需求提供了詳細(xì)反饋。雖然已經(jīng)取得了一些進(jìn)展(例如指針?biāo)惨茀f(xié)議終于在開(kāi)發(fā)中),但許多根本性問(wèn)題仍未解決。
為解決方案做出貢獻(xiàn)
如果您是一名有興趣改善 KiCad 在 Wayland 上支持情況的開(kāi)發(fā)者,可以通過(guò)以下幾種方式提供幫助:
-
為上游項(xiàng)目做貢獻(xiàn):幫助修復(fù) Wayland 協(xié)議、窗口管理器或 wxWidgets 中的問(wèn)題。
-
贊助開(kāi)發(fā):同時(shí)依賴 Wayland 和 KiCad 的公司可以資助特定的功能改進(jìn)。
-
測(cè)試并提供反饋:幫助我們確定哪些問(wèn)題對(duì)您的工作流程最為關(guān)鍵。
我們資助了一部分 wxWidgets 的開(kāi)發(fā)工作以幫助改善 Wayland 的兼容性,但許多問(wèn)題需要 Wayland 生態(tài)系統(tǒng)中更廣泛的變革。我們鼓勵(lì)那些能夠讓所有應(yīng)用程序(而不僅僅是 KiCad)受益的貢獻(xiàn)。
總結(jié)
我們努力保持務(wù)實(shí)。我們支持能用的技術(shù),我們記錄下不能用的問(wèn)題,然后將開(kāi)發(fā)精力集中在能為用戶帶來(lái)最大利益的地方。隨著 Wayland 的改進(jìn),我們會(huì)調(diào)整我們的立場(chǎng),但我們不會(huì)在 KiCad 的可靠性和功能性上妥協(xié)。
就目前而言,如果您需要在 Linux 上使用 KiCad,請(qǐng)使用 X11。
-
KiCAD
+關(guān)注
關(guān)注
5文章
313瀏覽量
10210
發(fā)布評(píng)論請(qǐng)先 登錄
KiCad 項(xiàng)目動(dòng)態(tài)與 KiCad 10 版本亮點(diǎn)
KiCad 終于支持平鋪的原理圖結(jié)構(gòu)了
KiCad 9.0.5 正式發(fā)布!
KiCad 9.0.4 正式發(fā)布
kicadStepUp:KiCad 與 FreeCAD 之間的機(jī)電協(xié)同
KiCad 已支持導(dǎo)入 Altium 工程(Project)
KiCad 9.0.3 正式發(fā)布!
華秋DFM支持KiCad PCB了
KiCad 9.0.2 正式發(fā)布!
KiCad 與 Altium Designer 圖紙互轉(zhuǎn)詳解
KiCad 教程:集成電路測(cè)試 LoadBoard 設(shè)計(jì)指南
在 Windows 上編譯 KiCad
KiCad直播活動(dòng)(三):在 Windows上編譯KiCad 手把手教您編譯/構(gòu)建 KiCad 源碼
KiCad 直播系列活動(dòng)預(yù)告(一):KiCad 9 新功能揭秘
KiCad 9.0.0 正式發(fā)布

KiCad 與 Wayland 支持聲明
評(píng)論