Projekt labwc 0.20 (Lab Wayland Compositor), który rozwija serwer kompozycji dla Waylanda o możliwościach zbliżonych do menedżera okien Openbox, został wydany. Projekt jest prezentowany jako próba stworzenia alternatywy dla Waylanda dla Openboxa. Kod projektu jest napisany w języku C i rozpowszechniany na licencji GPLv2. Znaczny wzrost numeracji wersji (z 0.9 do 0.20) wynika z synchronizacji z numeracją wersji biblioteki wlroots.
Labwc jest używany w środowisku graficznym dystrybucji Raspberry Pi OS i jest opcjonalnie obsługiwany w środowiskach graficznych Xfce i LXQt. Cele projektu labwc obejmują minimalizm, kompaktową implementację, szerokie możliwości personalizacji i wysoką wydajność. Efekty animowane, gradienty i ikony nie są w ogóle obsługiwane, z wyjątkiem przycisków okien. Opiera się na bibliotece wlroots, opracowanej przez twórców środowiska użytkownika Sway i zapewniającej podstawową funkcjonalność menedżera kompozycji opartego na Waylandzie.
Dodatki można podłączyć, aby wdrożyć funkcje takie jak zrzuty ekranu, wyświetlanie tapet pulpitu oraz rozmieszczenie paneli i menu. Komponent XWayland DDX jest obsługiwany do uruchamiania aplikacji X11 w środowisku opartym na Wayland. Motyw, menu podstawowe i klawisze skrótu można konfigurować za pomocą plików konfiguracyjnych XML. Wbudowana jest obsługa ekranów o wysokiej rozdzielczości (HiDPI).
Oprócz wbudowanego menu podstawowego, konfigurowalnego za pomocą pliku menu.xml, można zintegrować implementacje menu aplikacji zewnętrznych, takich jak bemenu, fuzzel i wofi. Jako panel można użyć Waybar, sfwbar, Yambar lub LavaLauncher. Do zarządzania połączeniami monitorów i zmiany ich ustawień zaleca się użycie wlr-randr lub kanshi. Blokowanie ekranu odbywa się za pomocą swaylock.
W nowej wersji:
- Zakończono przejście na wersję biblioteki wlroots 0.20, która wprowadza obsługę zarządzania kolorami, HDR, dostosowywania wyglądu kursora i pulpitów wirtualnych.
- Wprowadzono częściową obsługę przechwytywania zawartości wyświetlanej na powierzchniach Wayland najwyższego poziomu (toplevel-capture), co umożliwia tworzenie zrzutów ekranu i nagrywanie screencastów zawartości poszczególnych okien. Implementacja ta nie obejmuje jeszcze okien podrzędnych i wyskakujących aplikacji uruchamianych za pośrednictwem XWayland ani zagnieżdżonych powierzchni Wayland xdg.
- Dodano obsługę rozszerzonego zakresu jasności z możliwością przesyłania obrazu na monitory obsługujące HDR10 (działa tylko w przypadku korzystania z zaplecza renderującego opartego na technologii Vulkan).
- Szybszy sposób dostępu do pozycji menu jest teraz dostępny poprzez naciśnięcie pierwszej litery ich nazwy. Na przykład, aby uruchomić przeglądarkę Firefox, wystarczy nacisnąć „Meta+a”, aby otworzyć menu, a następnie nacisnąć „f”.
- Dodano skrót klawiaturowy Super-d do ukrywania i pokazywania okien. Ustawienie ToggleShowDesktop pozwala dostosować własne skróty klawiaturowe dla tej akcji.
- Dodano opcję wiersza poleceń „-t” (--title) w celu ustawienia tytułu okna podczas uruchamiania labwc w sposób zagnieżdżony.
- Narzędzie labnag zostało zaktualizowane o opcje „--details-border-color” i „--details-margin” umożliwiające ustawienie koloru i marginesu obszaru wokół zawartości.
- Jednostka systemd labwc-session.target jest teraz instalowana, gdy obecny jest systemd.
- Ustawienie „ zostało dodane do pliku konfiguracyjnego. wprowadzenie opóźnienia przed zmianą fokusu.
- W opcji „ Dodano obsługę metody przewijania „naciśnij przycisk” i zaimplementowano osobną „opcję”. » aby przewijać zawartość za pomocą przycisków.
- Dodano opcję aby dostosować zakres czułości nacisku tabletu graficznego.
- Do pliku konfiguracyjnego dodano opcję. aby ograniczyć dostęp do protokołów uprzywilejowanych.
- Dodano parametr debugowania DebugToggleKeyStateIndicator w celu wyświetlania nakładki z informacjami o stanie klucza.
- Dodano obsługę protokołów zarządzania kolorami Wayland: color-representation-v1 i color-management-v1.
- Interfejs wl_fixes został zaimplementowany w celu rozwiązania problemów z innymi podstawowymi interfejsami API protokołów, których nie da się rozwiązać za pomocą natywnych możliwości tych interfejsów. Na przykład:
Żądanie „wl_fixes::destroy_registry” umożliwia zniszczenie obiektu wl_registry. Po tym fakcie klient nie będzie mógł z niego korzystać, a serwer złożony przestanie przesyłać przez niego zdarzenia.




Źródło: opennet.ru
