Wayland 1.24 現已發布:穩定性、新功能等等

韋蘭侏儒

經過十三個月的持續開發,Wayland 1.24 正式發布,這是該協議的最新穩定版本,除了修復各種錯誤外,還實現了各種改進。

與先前的版本不同,Wayland 1.24 的新版本沒有引入任何顛覆性的變化,而是鞏固了先前的工作,提高了穩定性,增強了協議,並在 API 和 ABI 層級實現了完全向後相容。

Wayland 1.24 的新功能

在 Wayland 1.24 的新版本中,最顯著的新特性之一是實現了 wl_fixes 接口,旨在修正協議其他核心接口的局限性。其功能之一是 destroy_registry,允許明確終止對 wl_registry 物件的使用。

Wayland 1.24 中引入的另一個有趣的新功能是wl_keyboard::key API 新增了一個函數,該函數現在包含一個名為「repeated 」的新偽狀態。這項改進提升了持續按鍵的表示方式,尤其是在鍵盤輸入精度至關重要的環境中,例如透過 Wayland 進行的遠端桌面或 VNC 會話。

使用 `wl_keyboard::key`,可以在按鍵按下後、釋放前將其設定為「重複」狀態。在按鍵保持此狀態期間,伺服器可以明確產生多個「重複」事件,這些事件與「按下」狀態不同。此變更在需要區分單次按下和長按的場景中尤其有用,例如輸入長字元或遠端控制圖形介面時,傳統行為有所不同。

Wayland 1.24也包含一些新功能,例如:

  • wl_display_dispatch_queue_timeout() 和 wl_display_dispatch_timeout():處理逾時事件。
  • wl_shm_buffer_ref() 和 wl_shm_buffer_unref():允許存取共享記憶體緩衝區,即使它們已被銷毀。
  • wl_proxy_get_interface() 和 wl_resource_get_interface():促進介面的動態檢索。
  • wl_resource_post_error_vargs():使用變數參數清單改進錯誤處理。

新擴展

值得一提的是,Wayland 生態系統在過去一年中新增了許多擴展,大大增強了其功能,尤其是在色彩管理、視覺特效和輸入處理方面。雖然大多數新擴充功能並非最新版本獨有,但值得重點介紹的是近幾個月來推出的一些重要擴充:

  • 色彩管理與色彩表現-v1:啟用色彩管理和 HDR 支援。
  • xdg-頂級標籤: 使得重啟後識別視窗變得更容易。
  • 外部背景效果: 允許在透明區域產生模糊和效果。
  • 指針扭曲: 可以立即重新定位指針。
  • xx-會話管理: 意外關閉後恢復視窗的狀態。
  • xx-輸入法: 新輸入法系統的進步。
  • 外部資料控制: 允許特權客戶端操作資料(非常適合剪貼簿)。
  • 外部工作區: 管理虛擬桌面及其狀態。
  • xdg 系統鈴聲: 允許系統發出警報信號。
  • xdg-頂層圖示: 將圖示與頂層視窗關聯。
  • ext-image-capture-source 與 ext-image-copy-capture: 允許您捕獲螢幕內容。
  • FIFO 和提交時間: 管理顯示內容的更新時間和優先順序。

最後,如果您有興趣了解更多信息,可以點擊以下鏈接查看詳情

如果我的發行版中沒有 Wayland,我該如何安裝?

Wayland 不是作為獨立應用程式安裝的,因為它是一種協議,需要相容的顯示伺服器(例如 Wayfire、Weston、Sway 或 wlroots)和合成器(例如 GNOME、KDE ​​Plasma 等)來支援它。

值得一提的是,大多數現代發行版都預設安裝了 Wayland,至少可以作為選項。但如果您不確定它是否存在或想要更新,可以按照以下步驟操作。

我如何知道我是否正在使用 Wayland?

要檢查您的發行版中是否有 Wayland,只需輸入:

回顯 $XDG_SESSION_TYPE

如果顯示為 wayland,則表示您正在使用 Wayland。

如果顯示 x11,則表示您正在使用 X11。

您也可以檢查這個變數:

loginctl show-session $(loginctl | grep $(whoami) | awk '{print $1}') -p 型

如果您已經檢查過是否擁有 Wayland,而您沒有,則可以使用以下命令之一進行安裝:

於Debian / Ubuntu

sudo apt install libwayland-client0 libwayland-server0

Fedora

sudo dnf 安裝 wayland

Arch Linux及其衍生版本:

sudo pacman -S wayland

openSUSE的

sudo zypper 安裝 wayland libwayland-egl1 libwayland-client0 libwayland-server0

在 Google 中將其新增為首選來源