Dostępne jest wydanie projektu labwc 0.6 (Lab Wayland Compositor), który rozwija kompozytowy serwer dla Wayland z funkcjami przypominającymi menedżera okien Openbox (projekt jest przedstawiany jako próba stworzenia alternatywy dla Openbox na Wayland). Do cech labwc należy minimalizm, zwarta implementacja, szerokie możliwości konfiguracji i wysok wydajność. Kod projektu jest napisany w języku C i jest dystrybuowany na licencji GPLv2.
Jako podstawę wykorzystuje się bibliotekę wlroots, rozwijaną przez twórców środowiska użytkownika Sway i zapewniającą podstawowe funkcje do organizacji pracy menedżera kompozytora na bazie Wayland. Z rozszerzonych protokołów Wayland wspierane są wlr-output-management do konfiguracji urządzeń wyjściowych, layer-shell do organizacji pracy środowiska pulpitu oraz foreign-toplevel do podłączania własnych paneli i przełączników okien.
Możliwe jest podłączenie dodatków implementujących takie funkcje jak robienie zrzutów ekranowych, wyświetlanie tapet na pulpicie, umieszczanie panelu i menu. Animowane efekty, gradienty i ikony (z wyjątkiem przycisków dla okien) nie są zasadniczo wspierane. Aby uruchomić aplikacje X11 w środowisku opartym na protokole Wayland, wspierane jest użycie komponentu DDX XWayland. Temat graficzny, podstawowe menu i skróty klawiszowe są konfigurowane za pomocą plików konfiguracyjnych w formacie xml. Wbudowane wsparcie dla ekranów o wysokiej gęstości pikseli (HiDPI).

Oprócz wbudowanego menu głównego, konfigurowanego przez menu.xml, można podłączyć zewnętrzne realizacje menu aplikacji, takie jak bemenu, fuzzel i wofi. Jako panel można wykorzystać Waybar, sfwbar, Yambar lub LavaLauncher. Do zarządzania połączeniem monitorów i zmianą ich parametrów proponuje się użycie wlr-randr lub kanshi. Zablokowanie ekranu odbywa się za pomocą swaylock.
Kluczowe zmiany w nowym wydaniu:
- Zostało znacznie przekształcone użycie API sceny grafowej dostarczanego przez wlroots. Przebudowa wpłynęła na renderowanie, dekorowanie okien, menu i implementację interfejsu ekranowego. Przetwarzanie obrazów i czcionek przed wyświetleniem na ekranie zostało przeniesione na użycie buforów zamiast tekstur (struktura wlr_texture), co umożliwiło odpowiednie skalowanie wyjścia. Uproszczono kod do łączenia obsługi zdarzeń z węzłami wlr_scene_nodes. Rozszerzono możliwości debugowania.
- Dodano wsparcie dla wirtualnych pulpitów.
- Dodano wsparcie dla używania różnych języków w menu klienta.
- Wprowadzono wsparcie dla protokołu presentation-time, stosowanego do wyświetlania wideo.
- Dodano wsparcie dla urządzeń dotykowych.
- Wprowadzono wsparcie dla protokołu drm_lease_v1, stosowanego do generowania obrazu stereoskopowego z różnymi buforami dla lewego i prawego oka podczas wyświetlania na hełmach rzeczywistości wirtualnej.
- Zrealizowano protokoły do zastosowania wirtualnej klawiatury i wskaźnika.
- Dodano tryb do przypinania okna nad innymi oknami (ToggleAlwaysOnTop).
- Dodano ustawienia osd.border.color i osd.border.width do definiowania szerokości i koloru ramki okna.
- Dodano ustawienia do zmiany parametrów opóźnienia i powtarzania wejścia z klawiatury.
- Dodano możliwość przypisania operacji do przewijania kółkiem myszy (domyślnie podczas przewijania na pulpicie następuje przełączanie między wirtualnymi pulpitami).
- Dodano wsparcie dla płynnego i poziomego przewijania.
- Zapewniono testowanie w systemie ciągłej integracji kompilacji dla Debian, FreeBSD, Arch i Void, w tym kompilacji bez xwayland.
- Dodano wsparcie dla ustawienia nachylenia i grubości czcionek (do użycia czcionek pochylonych i pogrubionych).
- Dodano ustawienie do zarządzania włączeniem podglądu konturów.
- Zapewniono rysowanie strzałek dla podmenu. W menu dodano wsparcie dla separatorów.
- Zapewniono działanie protokołu xdg-desktop-portal-wlr bez dodatkowych ustawień (zrealizowano inicjalizację dbus i aktywację przez systemd), co rozwiązało problemy z uruchamianiem OBS Studio.

Źródło: opennet.ru
