Na drie maanden ontwikkeling is de uitgave van de composietserver Niri 26.04 gepubliceerd, die de mozaĆÆek (tiling) lay-outmethode implementeert in de stijl van de GNOME-extensie PaperWM, waarin vensters worden gegroepeerd in een eindeloos scrollende band op het scherm. Het openen van een nieuw venster leidt tot het uitbreiden van de band, terwijl eerder toegevoegde vensters hun grootte niet wijzigen. Het project is gebaseerd op het gebruik van het Wayland-protocol, maar stelt ook in staat om X11-applicaties uit te voeren met behulp van de DDX-server Xwayland. De code van het project is geschreven in Rust en wordt verspreid onder de GPLv3-licentie. Pakketten worden gevormd voor Fedora, NixOS, Arch Linux en FreeBSD.
Het belangrijkste verschil tussen Niri en PaperWM is de toewijzing van een eigen vensterstrip aan elke monitor, die niet overlapt met de strips op andere monitors (in PaperWM kan gescheiden werken met monitors niet worden gerealiseerd vanwege de toewijzing aan globale venstercoördinaten in GNOME Shell). Niri ondersteunt HiDPI en kan draaien op systemen met meerdere GPU's (bijvoorbeeld hybride systemen met een discrete grafische kaart en een geïntegreerde GPU). Er is een ingebouwde interface voor het maken van screenshots en het opnemen van screencasts, met als kenmerk de mogelijkheid om specifieke vensters met vertrouwelijke informatie uit de opname te uitsluiten.
Virtuele desktops in Niri worden dynamisch aangemaakt en zijn, vergelijkbaar met GNOME, verticaal geplaatst (de vensterbalk draait horizontaal, terwijl de bureaubladbalk verticaal draait). Op elke monitor kan een onafhankelijke set virtuele desktops. Voor het schakelen tussen bureaubladen en vensters kunnen besturing gebaren op het touchpad worden gebruikt. Bij het uitschakelen van de monitor wordt de indeling van de virtuele bureaubladen onthouden en overgezet naar de resterende monitor, en wanneer de monitor wordt hersteld, wordt deze weer in de oorspronkelijke staat hersteld. De configuratie wordt uitgevoerd via een configuratiebestand, waarmee parameters zoals de breedte van randen, marges, uitvoermodi en venstergroottes kunnen worden gewijzigd. Wijzigingen in het configuratiebestand worden automatisch toegepast zonder de samengestelde. de server.
In de nieuwe versie:
- De mogelijkheid om de achtergrond van semi-transparante vensters te vervagen is toegevoegd. Applicaties en componenten van de gebruikersomgeving kunnen de transparantie beheren met behulp van het Wayland-protocol ext-background-effect, en voor programma's die dit protocol niet ondersteunen, kan de transparantie worden ingesteld via een binding in het configuratiebestand. Ingebouwde ondersteuning voor het vervagen van de achtergrond is geĆÆmplementeerd in de omhulsels Dank Material Shell en Noctalia, de launcher Vicinae, de terminalemulators foot, kitty en Ghostty, en de toolkits Quickshell en winit. Er zijn twee vervaging modi beschikbaar: 'xray' (de vervaging wordt eenmaal berekend en vervolgens wordt een statische afbeelding weergegeven) en 'normal' (de vervaging vindt live plaats).

- In de configuratiebestanddirective 'include', die wordt gebruikt om de inhoud van andere bestanden in te voegen, is de optie 'optional=true' toegevoegd, waarmee optionele configuratiecomponenten kunnen worden gedefinieerd. Als het te koppelen bestand ontbreekt, zal er bij de optie 'optional=true' in plaats van een foutmelding een waarschuwing worden weergegeven. Binnen de configuratie is de mogelijkheid toegevoegd om het pad '~/' te gebruiken, dat geassocieerd is met de thuismap.
- Om de navigatie door meerdere vensters te vereenvoudigen, is er bij het horizontaal scrollen met de muis over de werkruimte een automatische sprong van de cursor van de ene rand van het scherm naar de andere geĆÆmplementeerd, vergelijkbaar met Blender.
- Bij het opnemen van screencasts is er in PipeWire metadata over de cursor apart van de videostream doorgegeven, wat bijvoorbeeld mogelijk maakt om de cursor zelfstandig in OBS te tekenen. In IPC zijn commando's toegevoegd voor het volgen van de screencast-opname, het stoppen van de screencast en het ontvangen van gebeurtenissen over de start/stop van de opname (voor het weergeven van een indicator in de balk).
- De animatie van scrollen en het openen/sluiten van vensters is verbeterd.
- De mogelijkheid om de drag & drop-operatie te annuleren door op de Escape-toets te drukken is toegevoegd.
- De ondersteuning voor tablets en trackballs is verbeterd.
- De mogelijkheden voor GPU-profilering zijn uitgebreid met het Tracy-pakket. Er is een mogelijkheid toegevoegd om de prestaties van rendering en vervaging te volgen. Ondersteuning voor systemen met hybride grafica (integrated GPU + discrete videokaart) is geĆÆmplementeerd.
- De rendering is geoptimaliseerd. De opbouw van de lijst van objecten die op het scherm worden weergegeven, is 2-3 keer versneld op moderne systemen en tot 8 keer op oudere systemen.
Bron: opennet.ru

