Efter næsten et års udvikling er der blevet offentliggjort en version af compositing manager Sway 1.12, bygget ved hjælp af Wayland-protokollen og kompatibel med den mosaiske vinduesmanager i3 og i3bar-panelet. Projektkoden er skrevet i C og distribueres under MIT-licensen. Projektet er rettet mod brug i Linux og FreeBSD.
Sway giver mulighed for logisk placering af vinduer (vinduesmanageren vælger dynamisk position og størrelse på vinduet med hensyn til andre åbne vinduer og undgår overlapning af vinduer) i stedet for traditionel rumlig placering (brugeren vælger en vilkårlig placering og størrelse på vinduet, hvilket kan føre til overlapning af vinduer). Vinduerne placeres, så de danner et gitter, der optimalt udnytter skærmpladsen og giver mulighed for hurtigt at manipulere vinduer kun med tastaturet. Kompatibilitet med i3 sikres på niveau med kommandoer, konfigurationsfiler og IPC, hvilket gør det muligt at bruge Sway som en gennemsigtig erstatning for i3, der bruger Wayland i stedet for X11.
For at etablere et fuldt brugergrænseflade tilbydes tilknyttede komponenter: swayidle (baggrundsproces med implementering af dvaletilstand), swaylock (skærmsaver), mako (meddelelseshåndterer), grim (skærmbilleder), slurp (markere område på skærmen), wf-recorder (optagelse af video), waybar (programpanel), virtboard (skærmtastatur), wl-clipboard (arbejde med udklipsholder), wallutils (administration af skrivebordsbaggrunde).
Sway udvikles som et modulært projekt bygget over biblioteket wlroots, som inkorporerer alle grundlæggende primitive til at organisere arbejdet i en compositing manager. Wlroots inkluderer backends til
abstrahering af adgang til skærme, inputenheder, rendering uden direkte adgang til OpenGL, interaktion med KMS/DRM, libinput, Wayland og X11 (der leveres et lag til at køre X11-applikationer baseret på Xwayland). Ud over Sway anvendes wlroots-biblioteket aktivt i andre projekter. Udover støtte til C/C++-sprog tilbydes der bindings til sprog som Scheme, Common Lisp, Go, Haskell, OCaml, Zig, Python og Rust.
I den nye version:
- Muligheden for at fange enkelte vinduer er blevet tilføjet.
- Der er implementeret understøttelse af output i det udvidede dynamiske lysstyrkeområde HDR10 ved brug af rendering baseret på Vulkan-API'et.
- Understøttelse af Wayland-protokoller er blevet tilføjet:
- color-management-v1 til farvestyring og understøttelse af det udvidede dynamiske lysstyrkeområde (HDR, High Dynamic Range).
- color-representation-v1 til at definere farvepræsentationen for Wayland-overflader.
- xdg-toplevel-tag-v1 til at vedhæfte tags fra Wayland-klienter til overflader i topniveau, som compositing server kan bruge til at genoprette position, størrelse og egenskaber for vinduer efter genstart samt til at definere særlige regler for bestemte typer vinduer.
- ext-workspace-v1 til at oprette paneler eller indikatorer, der viser listen over tilgængelige for virtuelle skriveborde og som gør det muligt at skifte imellem dem.
- wl_fixes til at løse problemer med andre APIer for grundlæggende protokoller, som ikke kan løses med disse interfaces egne muligheder.
- Funktionen "—device-primaries" er implementeret, hvor farveprofilen dannes baseret på data, der hentes af monitoren via EDID.
- Tilføjet support til at registrere tilstedeværelsen af en keypad ved at bruge flaget LIBINPUT_SWITCH_KEYPAD_SLIDE i libinput.
- Specielle bindings for multimedietaster (pause, genoptag, næste sang osv.) er inkluderet i konfigurationsfilen til at styre afspilning af multimedieindhold ved hjælp af værktøjet playerctl.
- Farveprofilen for output srgb er ændret til at bruge en stykkevis (piece-wise) overførselsfunktion sRGB i stedet for gamma 2.2 (for gamma 2.2 skal der bruges en separat gamma22-profil, som anvendes som standard).
- Start i systemer med usupporterede GPUer (fx ved brug af proprietære NVIDIA-drivere) giver nu en advarsel i stedet for at afslutte med en fejl. Advarslen kan deaktiveres med flaget "—unsupported-gpu" eller miljøvariablen SWAY_UNSUPPORTED_GPU.
- Officiel support til brug af display managers til at starte Sway er tilføjet.
- Nye funktioner i wlroots 0.20 er aktiveret. Blandt ændringerne i den nye version af wlroots: Support til at bestemme farvepræsentation af Wayland-overfladen, farvestyring og brug af HDR via protokoller color-representation-v1 og color-management-v1. Support for Wayland-protokoller cursor-shape-v1 til at tilpasse udseendet af cursoren,
ext-workspace-v1 til brug af konceptet med virtuelle skriveborde og xdg-toplevel-tag-v1 til identifikation af vinduer/overflader via tag-binding.

Kilde: opennet.ru
