2020 年底,Collabora 宣布打算為 Wine 創建控制器 為了與 Wayland 一起工作,因為在 Linux 上,Wine 使用 X11 與 X11 顯示服務器交互。 在許多現代系統中,與 X11 和 win32 等更傳統的顯示系統相比,Wayland 協議在設計上受到更多限制,這在將 Wayland 與 Wine 集成時提出了一系列獨特的挑戰。
三個月後,Collabora 展示了第一次更新 控制器的改進是 Wine 和 Wayland 之間最基本的雙向工作,儘管控制器出現了許多錯誤,尤其是窗口的縮放。
在過去的幾個月裡,我們一直在改進 Wine 的實驗性 Wayland 驅動程序,它允許 Windows 應用程序直接在 Wayland composers 中運行。 我們的目標是最終消除許多用例對 XWayland 的需求,從而降低系統的整體複雜性,同時消除潛在的低效率點。
現在經過近 7 個月的工作,已經提出了改進版本 Wayland 驅動程序允許在基於 Wayland 的環境中直接通過 Wine 運行使用 GDI 和 OpenGL/DirectX 的應用程序,而無需使用 XWayland 層並擺脫 Wine 與 X11 協議的綁定。
關於新版控制器
在這個新版本中 引入了 Vulkan 支持 並且 帶有窗口管理處理 改變大小、全屏、最小化等操作不再是問題,除此之外,還可以直接使用或通過 WineD3D 或 DXVK 實現 Direct3D。
Collabora 開發人員提到 Wayland 的控制器 現在支持在 Wine 的多個顯示器上工作 並支持動態添加和刪除監視器。 它還支持更改每個監視器的應用程序感知分辨率(通過作曲家縮放,請參閱上面的更新)以實現每個監視器的模式更改。
還 支持更改每台顯示器的分辨率和模式 並提供了 HiDPI 縮放和使用高像素密度 (HiDPI) 顯示器。
最後,還提到在 Wayland 中實現了鍵盤佈局的處理,並添加了對剪切和相對光標移動的支持。
在這個新版本中,除了與 Wine 開發人員就在 Wine staging 分支中包含 Wayland 幫助以及隨後轉移到 Wine 的主要組成部分的主題進行對話之外,控制器越來越接近於可用於一般用途的功能。
關於它 Alexandros Frantzis(Collabora 開發人員)分享了:
»我認為控制器已經達到了一個地步,它具有足夠的功能以適用於許多用例,並且也提供了足夠的信心,使其成為未來可行的選擇。 我現在的計劃主要是專注於修復/增強,並通過創建一系列更適合修訂版/上游補丁集來開始為暫存做準備。
終於 如果您有興趣了解更多信息,您可以檢查 以下鏈接中提供了詳細信息。
構建控制器
對於那些有興趣獲得、構建和/或使用 Wine 的 Wayland 驅動程序的人,他們應該知道需要安裝 Wayland 以及 wayland-client、wayland-egl 和 xkbcommon 開發。
控制器的構建可以通過打開一個終端來完成,他們將在其中輸入以下命令:
git clone -b wayland https://gitlab.collabora.com/alf/wine/ cd wine ./configure --with-wayland [--with-vulkan --with-vkd3d] make [-jN] DISPLAY= WAYLAND_DISPLAY=wayland-0 ./wine ...
想了解更多編譯過程或者獲取源碼,可以 在下面的鏈接中。