Den Scrollable-Tiling-Wayland-Compositor Niri konfigurieren und nutzen

Aus LinuxUser 03/2025

Den Scrollable-Tiling-Wayland-Compositor Niri konfigurieren und nutzen

© Asiful Hasan Munna / 123RF.com

Endloser Schreibtisch

Der relativ einfach zu konfigurierende Wayland-Compositor Niri setzt das innovative Bedienkonzept des Scrollabe Tiling auf beeindruckende Weise um.

Tiling-Windowmanager und Tiling-Wayland-Compositoren wie Sway oder Qtile sind vor allem bei Entwicklern, Hackern und Power-Usern beliebt, die viel mit der Tastatur arbeiten. Im Gegensatz zu traditionellen Fenstermanagern, bei denen der Benutzer die Anwendungen frei verschiebt und einander überlappend anordnet, arrangieren sie die Fenster automatisch in einem rasterartigen Layout, was den verfügbaren Bildschirmplatz optimal ausnutzt.

Eine interessante Neuentwicklung ist in diesem Kontext der Wayland-Compositor Niri, dessen Schöpfer sich ursprünglich vom Gnome-Plugin PaperWM inspirieren ließ. Klassische Tiling-Compositoren wie Hyprland passen die Größe der Fenster an, sobald der Platz knapp wird. Bei Scrollable-Tiling-Wayland-Compositoren wie Niri bleiben die einzelnen Fenster dagegen stets in ihrer ursprünglichen Größe erhalten, und die Arbeitsfläche erweitert sich bei Bedarf automatisch über den sichtbaren Bildschirm hinaus.

Virtuelle Desktops stehen hier also nicht nebeneinander, sondern unter- beziehungsweise übereinander. Der Benutzer kann somit in horizontaler und vertikaler Richtung durch die Fenster scrollen, ähnlich wie bei einem unendlich großen Arbeitstisch. Dieser neue Ansatz hat naturgemäß vor allem bei sehr breiten Bildschirmen und Setups mit mehreren Monitoren Vorteile.

Installation

Die Installation von Niri gelingt unter Arch Linux und seinen Derivaten am einfachsten. Sie finden das Paket namens niri im Extra-Repository von Arch Linux. Zusätzlich sollten Sie die Programme Fuzzel und Alacritty einspielen, die Niri in der Standardkonfiguration als Programmstarter und Terminalemulator nutzt. Bevorzugen Sie andere Komponenten, müssen Sie die Konfigurationsdatei des Wayland-Compositors entsprechend ändern (siehe Abschnitt “Grundlegende Einstellungen”). Fedora-Nutzer finden das neueste stabile Release [1] und die Entwicklerversion [2] von Niri in den COPR-Repos von yalter.

Für Debian und darauf basierende Distributionen müssen Sie Niri derzeit allerdings noch selbst kompilieren. Das gelingt jedoch dank der Anweisungen aus dem Kapitel Getting started [3] im offiziellen Wiki sehr einfach und klappt bei Debian Stable ohne Probleme (Abbildung 1). Installieren Sie zunächst die Abhängigkeiten (Listing 1, erste Zeile) und danach eine aktuelle Version der Programmiersprache Rust (zweite Zeile).

Abbildung 1: Unter Ubuntu und Debian müssen Sie Niri zwar selbst kompilieren, doch das klappt selbst unter Debian 12 Stable meist problemlos.

Abbildung 1: Unter Ubuntu und Debian müssen Sie Niri zwar selbst kompilieren, doch das klappt selbst unter Debian 12 Stable meist problemlos.

Listing 1

Abhängigkeiten für das Kompilieren

$ sudo apt-get install -y gcc clang libudev-dev libgbm-dev libxkbcommon-dev libegl1-mesa-dev libwayland-dev libinput-dev libdbus-1-dev libsystemd-dev libseat-dev libpipewire-0.3-dev libpango1.0-dev libdisplay-info-dev
$ curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

Laden Sie dann das neueste stabile Release von Niri herunter [4], und entpacken Sie das Archiv. Ändern Sie den Namen des beim Entpacken entstandenen Ordners auf niri/ – das erleichtert das Navigieren auf der Textkonsole. Öffnen Sie ein Terminalfenster und wechseln Sie mit cd /Downloads/niri/ in das Verzeichnis, in dem sich der Quellcode befindet. Das tatsächliche Kompilieren erledigen Sie dann mit dem Kommando cargo build --release. Während dieses Vorgangs sehen Sie wahrscheinlich ein paar Warnungen, die Sie getrost ignorieren können. Zum Schluss können Sie die kompilierten Dateien in die vom Entwickler empfohlenen Verzeichnisse verschieben, insbesondere dann, wenn mehrere Nutzer Zugriff auf den Compositor haben sollen. Zum Ausprobieren von Niri ist dieser Schritt jedoch nicht unbedingt nötig.

Falls Niri die einzige grafische Bedienoberfläche auf Ihrem System sein soll, benötigen Sie noch weitere Programme wie einen Datei- und einen Display-Manager, einen Bildbetrachter und einen Webbrowser. Nützlich sind auch Tools wie Pavucontrol und Brightnessctl zum Regulieren der Lautstärke und der Bildschirmhelligkeit.

In unseren Tests arbeitete Niri (ebenso wie andere Wayland-Compositoren) grundsätzlich gut mit Nvidia-Hardware und deren proprietären Treibern zusammen. Allerdings erfordert das bei den meisten Distributionen einige zusätzliche Konfigurationsschritte, die wir bereits im Artikel über Kubuntu 24.10 in LU 12/2024 genauer beschrieben haben [5].

Erste Schritte

Unter Arch und Fedora starten Sie Niri anschließend direkt vom Login-Manager aus, sofern Sie die Dateien niri, niri-session sowie niri.desktop nach /usr/bin/ beziehungsweise /usr/share/wayland-sessions/ verschoben haben.

Ansonsten können Sie den Wayland-Compositor nach dem Kompilieren bei Debian/Ubuntu zunächst nur von einer Textkonsole aus aufrufen. Melden Sie sich dazu von Ihrer alten Desktop-Umgebung ab und schalten Sie mit [Strg]+[Alt]+[F3] in den Textmodus um. Navigieren Sie dann in das Verzeichnis, in dem Sie Niri kompiliert haben, und wechseln Sie dort in das Unterverzeichnis target/release/. Dort rufen Sie Niri mit dem Befehl ./niri --session auf.

Ein Start von der Textkonsole wird auch notwendig, wenn der verwendete Display-Manager den Start von Niri beziehungsweise anderen Wayland-Compositoren nicht unterstützt. Das trifft zum Beispiel auf ältere Versionen von LightDM zu. In diesem Fall starten Sie Niri mit dem Kommando niri-session oder eben niri --session.

Nach dem Start sehen Sie zunächst einen leeren, dunkelgrauen Desktop. Ein kleines Fenster in der Mitte informiert Sie über die wichtigsten Tastaturkombinationen (Abbildung 2). Rufen Sie mit [Super]+[D] den Anwendungsstarter Fuzzel auf. In der Mitte des Bildschirms erscheint daraufhin ein kleines, hell hinterlegtes Anwendungsmenü, in dem Ihnen Fuzzel häufig verwendete Programme wie Firefox zum Starten vorschlägt (Abbildung 3).

Abbildung 2: Beim ersten Start zeigt Niri lediglich einen dunkelgrauen Desktop-Hintergrund an. In der Mitte erscheint ein kleines Fenster mit den wichtigsten Tastaturkombinationen.

Abbildung 2: Beim ersten Start zeigt Niri lediglich einen dunkelgrauen Desktop-Hintergrund an. In der Mitte erscheint ein kleines Fenster mit den wichtigsten Tastaturkombinationen.

Abbildung 3: Die Systemleiste Waybar und der Anwendungsstarter Fuzzel sind die optimale Ergänzung zu Niri.

Abbildung 3: Die Systemleiste Waybar und der Anwendungsstarter Fuzzel sind die optimale Ergänzung zu Niri.

Wählen Sie mit [Pfeil-unten]+ oder [Pfeil-oben] eine Anwendung aus, und bestätigen Sie den Start durch einen Druck auf die Eingabetaste. Alternativ tippen Sie den Namen des Programms direkt ein. Für den Standard-Terminalemulator Alacritty ist die Tastaturkombination [Super]+[T] vordefiniert. Allerdings startet Alacritty unter Debian 12 Stable (“Bookworm”) wahrscheinlich nicht. Rufen Sie bei diesem System stattdessen einen bereits vorhandenen Terminalemulator wie KDE Konsole mithilfe von Fuzzel auf.

Standardmäßig nimmt bei Niri ein Fenster die Hälfte des Bildschirms ein. Neue Fenster platziert der Wayland-Compositor immer rechts vom zuletzt geöffneten Fenster (Abbildung 4). Öffnen Sie ein drittes Fenster, verschwindet das erste. Um zur ersten Anwendung zurückzukehren, halten Sie [Super]+ gedrückt, und drücken Sie zweimal [Pfeil-links]. Um zum Programm rechts vom derzeit fokussierten Fenster zu wechseln, drücken Sie [Super]+[Pfeil-rechts]. Mit [Super]+[Q] schließen Sie das Programm. Mit [Super]+[Umschalt]+[E] beenden Sie die Niri-Sitzung und kehren zur Textkonsole oder zum Display-Manager zurück.

Abbildung 4: Standardmäßig weist Niri jedem Fenster die Hälfte der Bildschirmbreite zu.

Abbildung 4: Standardmäßig weist Niri jedem Fenster die Hälfte der Bildschirmbreite zu.

Für weitere wichtige Tastenkombinationen sowie Maus- und Touchpad-Gesten verweisen wir hier aus Platzgründen auf den Abschnitt binds in der Standardkonfiguration config.kdl von Niri, die der Compositor beim ersten Start nach ~/.config/niri/ kopiert.

Grundlegende Einstellungen

Ändern Sie als Nächstes einige Konfigurationsoptionen, um den Wayland-Compositor sinnvoll nutzen zu können. Das können Sie direkt unter Niri erledigen, die Änderungen greifen meist sofort nach dem Speichern ohne Neustart.

Bearbeiten Sie zuerst das Tastaturlayout. Da es standardmäßig auf amerikanisches Englisch eingestellt ist, funktionieren viele vordefinierte Tastaturkürzel bei deutschsprachigen Tastaturen nicht. Navigieren Sie nach ~/.config/niri/, und Sie öffnen dort die Datei config.kdl mit einem Texteditor. Den Abschnitt input finden Sie am Anfang der Datei in der Zeile 9. Etwas darunter sehen Sie die Zeile // layout "us,ru". Entfernen Sie dort die beiden Schrägstriche, die die Zeile auskommentieren, und ersetzen Sie us,ru durch de.

Im Abschnitt touchpad möchten Sie möglicherweise die Option natural-scroll deaktivieren. Ist sie eingeschaltet, funktioniert das Scrollen nach unten durch das Schieben von zwei Fingern nach oben und umgekehrt. Das Touchpad verhält sich dann also wie ein Touchscreen, was die meisten Laptop-Nutzer wohl eher irritiert. Setzen Sie daher zwei Schrägstriche vor die Zeile natural-scroll, um diese Konfigurationsoption auszukommentieren.

Es empfiehlt sich jedoch, die Schrägstriche vor dwt zu entfernen. Die Einstellung steht für “disable while typing” und schaltet das Touchpad ab, während Sie tippen. Das vermeidet unabsichtliche Klicks und ein versehentliches Verschieben des Cursors durch Berührungen des Touchpads mit dem Handballen.

Weiter unten finden Sie den Abschnitt binds mit den Definitionen für die Tastaturkombinationen. Auch hier sollten Sie einige Einstellungen anpassen. Die erste, nicht auskommentierte Zeile (Listing 2, erste Zeile) bezieht sich hier auf das Einblenden der wichtigsten Tastaturkombinationen (show-hotkey-overlay). Das dafür vorgesehene Kürzel Mod+Shift+Slash funktioniert mit deutschsprachigen Tastaturlayouts nicht, da sich der Schrägstrich (Slash) dort über der 7 befindet und somit das Drücken der Umschalttaste (Shift) erfordert. Das Standardkürzel enthält jedoch bereits Shift, und Sie können die Taste ja nicht doppelt drücken.

Ändern Sie diese Tastaturkombination also beispielsweise auf Mod+Shift+T (Listing 2, Zeile 2). Dasselbe gilt analog für das Kürzel zum Vergrößern von Fenstern. Hier ist das Ist-gleich-Zeichen (Equal) zusammen mit Shift Bestandteil der Shortcuts. Auch das erweist sich bei deutschsprachigen Layouts als problematisch, weil das Ist-gleich-Zeichen sich über der 0 befindet. Ersetzen Sie daher in der Zeile zum Vergrößern der Fensterhöhe Equal durch Plus (Zeile 6), und machen Sie konsequenterweise in der Zeile zum Vergrößern der Spaltenweite (ebenfalls mit Equal vordefiniert) dasselbe (Zeile 4).

Listing 2

Tastenkürzel modifizieren

// Mod+Shift+Slash { show-hotkey-overlay; }
   Mod+Shift+T { show-hotkey-overlay; }
// Mod+Equal { set-column-width "+10%"; }
   Mod+Plus { set-column-width "+10%"; }
// Mod+Shift+Equal { set-window-height "+10%"; }
   Mod+Shift+Equal { set-window-height "+10%"; }
// Mod+T { spawn "alacritty"; }
   Mod+T { spawn "foot"; }

Passen Sie das Tastaturkürzel zum Starten des Terminalemulators Alacritty (Listing 2, Zeile 7) an, wenn Sie einen anderen Terminalemulator verwenden oder das Starten von Alacritty wie bei Debian “Bookworm” nicht funktioniert. Ersetzen Sie hier alacritty durch den Namen des von Ihnen verwendeten Terminalemulators, also zum Beispiel foot (Zeile 8).

Niri besitzt ein eingebautes Tool zum Erstellen von Screenshots. Den Pfad, unter dem es sie speichert, sollten Sie ebenfalls anpassen. Diese Konfigurationsoption finden Sie in Zeile 223, sie beginnt mit screenshot-path. Haben Sie das Betriebssystem deutsch lokalisiert, ersetzen Sie in dieser Zeile Pictures durch Bilder, denn dann gibt es Pictures auf Ihrem System nicht.

Bildschirme konfigurieren

Obwohl Niri angeschlossene Bildschirme automatisch erkennt und die richtigen Einstellungen auswählt, ist es oft nötig, die sogenannten Outputs manuell zu konfigurieren. Häufig gibt es vor allem mit dem Skalierungsfaktor Probleme, sodass Schriften und andere grafische Elemente der Bedienoberfläche zu klein aussehen. Bei unserem Test war dies bei einem 16 Zoll kleinen 4K-Bildschirm sowie bei einem über HDMI angeschlossenen 4K-TV-Gerät der Fall.

Suchen Sie in der Konfigurationsdatei von Niri den Abschnitt, der mit output beginnt. Er ist zunächst mit /- auskommentiert; entfernen Sie zuerst diese Kommentarzeichen. Dann öffnen Sie ein Terminalfenster und geben dort den Befehl niri msg outputs ein. Oder navigieren Sie in das Verzeichnis, in dem Sie Niri kompiliert haben, und tippen ./niri msg outputs. Die Ausgabe liefert eine Reihe von Informationen über die angeschlossenen Bildschirme, ein Beispiel zeigt Listing 3.

Listing 3

Niri-Outputs

$ niri msg outputs
Output "AU Optronics 0x87A8 Unknown" (eDP-1)
  Current mode: 3840x2400 @ 60.002 Hz (preferred)
  Variable refresh rate: not supported
  Physical size: 340x220 mm
  Logical position: 1920, 0
  Logical size: 1536x960
  Scale: 2.5
  Transform: normal
  Available modes:
    3840x2400@120.001 (preferred)
    3840x2400@60.002 (current, preferred)

Modifizieren Sie nun den Text im Abschnitt output, indem Sie einige Werte durch Infos aus der Ausgabe von niri msg outputs ersetzen. Der Name des Outputs entspricht nicht dem Namen des Bildschirms, sondern dem des Anschlusses, den der Monitor nutzt. In Listing 3 ist der Name des Anschlusses (eDP-1) identisch mit dem Namen in der Beispielkonfiguration und muss daher nicht ersetzt werden. Hier könnte aber auch ein Wert wie HDMI-A-1 stehen.

Auf jeden Fall müssen Sie aber den Modus des Bildschirms (mode) anpassen. Die Angabe dafür besteht aus der Auflösung und der Bildwiederholfrequenz des Monitors. Ersetzen Sie daher in der Zeile der config.kdl, die mit mode beginnt, die Vorgabe 1920x1080@120.030 durch den tatsächlichen Modus (in Listing 3: 3840x2400@60.002). Dasselbe gilt für den Skalierungsfaktor (Vorgabe: scale 2) zur Vergrößerung der Schriften und anderer grafischer Elemente. Ersetzen Sie den Wert durch den aus der Ausgabe (im Listing 2.5). Eventuell müssen Sie hier noch ein wenig experimentieren.

Falls Sie zwei oder mehrere Bildschirme nutzen, ist außerdem auch die position relevant, im Beispiel x=1920 y=0. Der Wert legt fest, wo sich der zweite (virtuelle) Bildschirm im Verhältnis zum ersten befindet. Bei einem Bildschirm mit einer horizontalen Auflösung von 1920 bei einem Skalierungsfaktor von 1 bewirken x=1920 und y=0, dass Niri das zweite Display unmittelbar rechts vom ersten anordnet. Bei einem 4K-Bildschirm im 16:9-Format (3840 x 2160 Pixel) mit einem Skalierungsfaktor von 2 hat die gleiche Angabe dasselbe zur Folge. Sie dividieren also die horizontalen und vertikalen Auflösungswerte durch den gewählten Skalierungsfaktor. Um bei einem 4K-Monitor mit 16 Zoll Diagonale den zweiten Bildschirm unterhalb des ersten anzuordnen, müsste die Konfigurationszeile daher x=0 y=960 lauten.

Zum Konfigurieren des zweiten Monitors kopieren Sie den gesamten Abschnitt output, fügen ihn unmittelbar darunter noch einmal ein und modifizieren die einzelnen Werte entsprechend der Ausgabe von niri msg outputs. Allerdings fanden wir im Test keine eingebaute Möglichkeit, auf beiden oder mehreren Bildschirmen dasselbe anzuzeigen, was zum Beispiel bei Vorträgen nötig wäre. Für diesen Fall empfiehlt sich als Alternative das Werkzeug wl-mirror.

Waybar konfigurieren

Niri bringt als reiner Wayland-Compositor keine Systemleiste oder andere Hilfsprogramme mit, es liefert also keine Infos zu virtuellen Desktops, aktiven Tray-Programmen, dem Akkustand und so weiter. Die Entwickler empfehlen daher als Ergänzung zum Anwendungsmenü Fuzzel Waybar, die Quasi-Standard-Systemleiste für Wayland-Compositoren.

Allerdings legt die Standardkonfiguration von Niri keine Einstellungen für Waybar fest. Sie können die Leiste beispielsweise mithilfe von Fuzzel aufrufen, indem Sie [Super]+[D] drücken, waybar eingeben und dann die Eingabetaste drücken. Sinnvoller ist es freilich, Waybar zusammen mit Niri zu starten. Tragen Sie dafür die Zeile spawn-at-startup "waybar" in die Konfigurationsdatei von Niri ein.

In Kombination mit Niri lässt sich Waybar auch als Systemd-Dienst starten. Erstellen Sie dazu einen Ordner namens niri.service.wants/ unterhalb von ~/.config/systemd/user/, und erzeugen Sie dort Symlinks zur Systemd-Einheit von Waybar (Listing 4).

Listing 4

Symlinks anlegen

$ ln -s /usr/lib/systemd/user/waybar.service ~/.config/systemd/user/niri.service.wants/

Waybar besitzt drei Niri-spezifische Module: Workspaces, Window und Language. Das Modul Taskbar ist zwar nicht speziell für Niri programmiert, funktioniert jedoch auch im Zusammenspiel mit diesem Wayland-Compositor.

Workspaces

Workspaces zeigt die vorhandenen virtuellen Arbeitsflächen an. Sie sehen, welche Niri im Moment belegt und auf welcher Sie sich gerade befinden. Um das Modul in der Leiste einzublenden, nehmen Sie ein paar kleine Änderungen an der Standardkonfiguration von Waybar vor.

Die Waybar-Konfigurationsdatei config.jsonc finden Sie im Verzeichnis /etc/xdg/waybar/. Kopieren Sie sie nach ~/.config/waybar/, und öffnen Sie sie mit einem Texteditor. Suchen Sie die Zeile 9, die den Text "modules-left": [ enthält. Die Zeilen darunter legen fest, welche Module Waybar am linken Ende der Leiste anzeigt.

In der Zeile 10 steht "sway/workspaces". Das zeigt an, dass das Modul Workspaces geladen wird, wenn Sie Waybar zusammen mit dem Wayland-Compositor Sway verwenden. Läuft ein anderer Compositor, ignoriert Waybar diese Zeile. Ersetzen Sie hier einfach sway durch niri, damit Waybar das Arbeitsflächenmodul von Niri anzeigt.

Wenn Sie nun ein Terminal öffnen, Waybar mit dem Befehl killall waybar beenden und die Leiste anschließend neu starten, sehen Sie in der linken oberen Ecke die Zahlen 1 und 2, wobei Waybar die 1 grau hinterlegt. Das bedeutet, dass Sie sich auf der ersten virtuellen Arbeitsfläche befinden. Das Modul niri/workspaces besitzt die Eigenheit, immer eine Arbeitsfläche mehr anzuzeigen, als Niri belegt. Die letzte angezeigte Arbeitsfläche ist also immer leer.

Window und Language

Das Modul niri/window zeigt den Namen des gerade fokussierten Fensters an. Fügen Sie die Zeile "niri/window" in die Konfigurationsdatei von Waybar ein, um es zu laden. Es empfiehlt sich, das Modul entweder in der Mitte der Leiste oder auf der linken Seite anzuordnen. Fügen Sie "niri/window" also unterhalb von "modules-left": [ oder nach "modules-center": [ ein.

Wenn Sie die Window-Anzeige in der Mitte platzieren wollen, sollten Sie allerdings einige Module auf der rechten Seite löschen, damit die Leiste halbwegs symmetrisch aussieht. Aus unserer Sicht macht das Anzeigen dieses Moduls aber nur dann wirklich Sinn, wenn man die Titelleisten der Fenster ausblendet, die ja die Fensternamen enthalten. Wie das funktioniert, erklären wir im Abschnitt “Weitere Optionen”.

Schließlich gibt es auch noch das Modul niri/language, das die Sprache des Tastaturlayouts anzeigt. Um es einzublenden, fügen Sie "niri/language" gleich nach "modules-left": [ am linken Ende der Leiste ein. Sobald Sie die Leiste neu starten, sehen Sie links oben ein türkis hinterlegtes Feld der Sprache, die Sie für Ihr Tastaturlayout festgelegt haben – in der Regel also German.

Taskbar

Eventuell ist es sinnvoll, das Modul wlr/taskbar statt niri/window zu nutzen. Es handelt sich um eine Art Task-Leiste, die die Namen aller geöffneten Fenster als Schaltflächen anzeigt (Abbildung 5). Dabei erscheint je nach Konfiguration das gerade aktive farblich hervorgehoben. Durch Klicken auf eine der Schaltflächen wechseln Sie zum betreffenden Fenster.

Abbildung 5: Das Waybar-Modul <code>wlr/taskbar</code> zeigt alle offenen Fenster als Schaltfl&auml;chen in der Systemleiste an.

Abbildung 5: Das Waybar-Modul wlr/taskbar zeigt alle offenen Fenster als Schaltflächen in der Systemleiste an.

Um das Modul anzuzeigen, ergänzen Sie in der Waybar-Konfiguration die Zeile "wlr/taskbar". Außerdem müssen Sie einige Konfigurationsoptionen für das Modul festlegen. Fügen Sie dazu die Zeilen aus Listing 5 weiter unten in die Konfigurationsdatei ein, zum Beispiel zwischen den Zeilen }, und "custom/power": {. Sie definieren unter anderem, dass jeder Task-Button den Namen des Programms und dessen Icon enthält und dass das Fenster aktiviert wird, wenn Sie mit der linken Maustaste darauf klicken.

Listing 5

Konfiguration für wlr/taskbar

"wlr/taskbar": {
  "format": "{icon} {app_id}",
  "on-click": "activate"
},

Gestaltungsvorgaben

Oft lohnt es sich, für die gerade beschriebenen Module Gestaltungsvorgaben zu definieren. So lassen sich zum Beispiel in der Task-Leiste zunächst die Namen der Programme nicht lesen, weil wlr/taskbar sowohl die Schrift als auch den Hintergrund dunkel anzeigt.

Die Anpassung erfordert eine zweite Konfigurationsdatei. Kopieren Sie dafür die Datei style.css von /etc/xdg/waybar/ nach ~/.config/waybar/, und öffnen Sie sie mit einem Texteditor. Fügen Sie anschließend am Ende der Standard-Konfiguration den Text aus Listing 6 ein. Damit legen Sie fest, dass die Beschriftung normaler, nicht aktiver Task-Schaltflächen in Weiß erscheint und die fokussierter Fenster in Rot.

Listing 6

Gestaltung für wlr/taskbar

#taskbar button {
  color: white;
}
#taskbar button.active {
  color: red;
}

Bei Bedarf definieren Sie auch für die anderen, Niri-spezifischen Module Gestaltungsvorgaben. So stehen etwa für niri/workspaces nicht weniger als sieben Style-Tags zur Verfügung. Allerdings sind die zum Großteil identisch mit denen für sway/workspaces, und so gibt es in der Standardkonfiguration bereits Stilvorgaben für dieses Modul. Möchten Sie etwa die Schriftfarbe der Workspace-Buttons auf ein helles Himmelblau ändern, suchen Sie den Abschnitt in style.css, der mit der Zeile #workspaces button { beginnt. Einige Zeilen darunter sehen Sie color: #ffffff;. Ersetzen Sie die Angabe #ffffff durch lightskyblue.

Waybar ermöglicht eine sehr weitgehende Konfiguration des Inhalts und des Aussehens der Leiste. Aus Platzgründen verweisen wir hier lediglich auf die offizielle Dokumentation des Programms [6] sowie auf unseren Artikel über die Konfiguration von Waybar und Wofi aus LU 07/2024 [7].

WLAN-Verbindung

Das Herstellen einer WLAN-Verbindung funktioniert am einfachsten mithilfe von Waybar. Das klappt unter Niri nur mit dem Programm nm-applet oder im Textmodus in einem Terminalfenster. Bei Nm-applet handelt es sich um ein grafisches Frontend für den Network-Manager, das sich nach dem Start im Tray-Modul von Waybar einnistet. Die Anwendung findet sich bei Debian/Ubuntu im Paket network-manager-gnome, unter Arch Linux heißt das Paket network-manager-applet.

Tragen Sie nach der Installation von Nm-applet zunächst in der Konfigurationsdatei config.kdl von Niri die Zeile spawn-at-startup "nm-applet" ein. Wechseln Sie danach zur Konfigurationsdatei config.jsonc von Waybar, und entfernen Sie dort in der dritten Zeile die beiden Schrägstriche vor "layer": "top",. Die Einstellung bewirkt, dass sich Waybar immer im Vordergrund über allen anderen grafischen Desktop-Elementen befindet. Anderenfalls würde das Kontextmenü von Nm-applet nicht richtig funktionieren, und Sie könnten beispielsweise die Liste der verfügbaren Netzwerke nicht anzeigen.

Wenn Sie nun Niri neu starten, sollten Sie am rechten Ende der Waybar das kleine Tray-Symbol von Nm-applet sehen und es anklicken können, um sich mit einem Netzwerk zu verbinden. Unter Debian 12 “Bookworm” scheint das Programm jedoch defekt zu sein. Dort empfehlen wir die Installation des Pakets mithilfe des Paketmanagers Nix.

Xwayland

Niri bringt keine Unterstützung für Xwayland mit. Programme, die nicht nativ unter Wayland laufen, können Sie daher zunächst nicht ausführen. Um Software zu nutzen, die einen X-Server erfordert, installieren Sie zuerst das Programm xwayland-satellite. Bei Arch Linux liegt es im Arch User Repository, die Installation klappt dort mit dem Befehl yay -S xwayland-satellite relativ problemlos. Bei vielen anderen Distributionen müssen Sie Xwayland-satellite jedoch selbst kompilieren [8].

Öffnen Sie danach ein Terminalfenster, und starten Sie das Tool mit dem Aufruf xwayland-satellite. Sie sehen nun mehrere Warn- und Info-Meldungen. Eine davon enthält die Nummer des Displays, auf dem Xwayland-satellite mit Xwayland verbunden ist, beispielsweise Connected to Xwayland on :1. Schließen Sie dieses Terminalfenster auf keinen Fall. Um ein Programm zu starten, das Xwayland erfordert, öffnen Sie ein weiteres Terminalfenster. Setzen Sie dort die Umgebungsvariable DISPLAY=:Nummer, wobei Sie Nummer durch die in der Info-Meldung von Xwayland-satellite enthaltene Zahl ersetzen.

Starten Sie danach das Xwayland-Programm vom selben Terminal aus, indem Sie seinen Namen eintippen und die Eingabetaste drücken (Abbildung 6). Falls die Bedienoberfläche der Xwayland-Programme verschwommen erscheint, setzen Sie den Skalierungsfaktor bei der Konfiguration der Outputs gegebenenfalls auf eine Ganzzahl wie 1, 2 oder 3.

Abbildung 6: Mithilfe des Programms Xwayland-satellite lassen sich unter Niri auch Anwendungen wie Krita nutzen, die derzeit noch nicht nativ unter Wayland laufen.

Abbildung 6: Mithilfe des Programms Xwayland-satellite lassen sich unter Niri auch Anwendungen wie Krita nutzen, die derzeit noch nicht nativ unter Wayland laufen.

Desktop-Hintergrund

Um ein Bild auf dem Desktop-Hintergrund zu zeichnen, gibt es mit dem Kommandozeilenprogramm Swaybg bisher eigentlich nur ein Tool, das alle gängigen Distributionen mitbringen. Erstellen Sie zuerst ein Shell-Skript mit dem Inhalt von Listing 7, wobei Sie /Pfad/zum/wallpaper.jpg durch den Dateipfad des gewünschten Hintergrundbilds ersetzen.

Listing 7

Shell-Skript für Swaybg

#!/bin/bash
swaybg -m fill -i /Pfad/zum/wallpaper.jpg

Speichern Sie die Datei unter dem Namen swaybg.sh in Ihrem Benutzerverzeichnis, und machen Sie sie ausführbar. Tragen Sie danach in der Konfigurationsdatei von Niri die Zeile spawn-at-startup "$HOME/swaybg.sh" ganz am Ende nach der letzten geschwungenen Klammer beziehungsweise nach spawn-at-startup "waybar" ein. Passen Sie dabei gegebenenfalls den Dateipfad zu swaybg.sh an.

Der Befehl spawn-at-startup ist zum Aufrufen von Programmen beim Start von Niri zuständig. Allerdings kann er anscheinend nicht mit komplexeren Kommandos umgehen, denn im Test funktionierte das Einstellen des Hintergrundbilds mit spawn-at-startup "swaybg -m fill -i bild.jpg" nicht. Ebenso wie bei Waybar könnten Sie für Swaybg einen Systemd-Prozess erstellen [9]. Der Einfachheit halber ziehen wir jedoch spawn-at-statup vor.

Bildschirmsperre

Auch für das automatische Sperren des Bildschirms sowie das Versetzen des PCs in den Standby-Modus nach einer bestimmten Dauer der Inaktivität installieren Sie die Programme Swayidle und Swaylock. Dann erstellen Sie ein Shell-Skript mit den Zeilen aus Listing 8, speichern es und machen es ausführbar.

Listing 8

Swayidle-Skript

#!/bin/bash
swayidle -w \
  timeout 300 \
    'swaylock -f -c 000000' \
  timeout 600 \
    'systemctl suspend' \
  before-sleep \
    'swaylock -f -c 000000' &

Das Skript bewirkt das automatische Sperren des Bildschirms nach 5 Minuten (300 Sekunden) und das Wechseln des Systems in den Standby-Modus nach weiteren 5 Minuten. Um es einzubinden, tragen Sie die Zeile spawn-at-startup "home/Benutzer/swayidle.sh" in die config.kdl ein.

Als weitere nützliche Hilfsprogramme kommen ein Benachrichtigungsmanager wie Mako, verschiedene sogenannte Portale wie xdg-desktop-portal-gtk oder ein Polkit-Agent infrage. Sie können sie ebenfalls als Autostart-Programme definieren.

Window Rules

Niri unterstützt unter anderem Transparenzeffekte. Um bestimmte Fenster transparent erscheinen zu lassen, müssen Sie eine sogenannte Window Rule erstellen. Dabei handelt es sich um eine Regel, die Niri bei bestimmten oder allen Fenstern anwendet. Die Window Rule aus der ersten Zeile von Listing 9 zum Beispiel bewirkt, dass alle nicht fokussierten Fenster den Desktop-Hintergrund zu einem Drittel durchscheinen lassen (Abbildung 7).

Listing 9

Window Rule für Transparenz

window-rule { match is-focused=false opacity 0.7 }
window-rule { match app-id="firefox" default-column-width { proportion 0.7; } }
window-rule { geometry-corner-radius 12 clip-to-geometry true }
Abbildung 7: Zwei interessante visuelle Effekte, die Niri bereits beherrscht, sind Transparenz und abgerundete Fensterecken.

Abbildung 7: Zwei interessante visuelle Effekte, die Niri bereits beherrscht, sind Transparenz und abgerundete Fensterecken.

Window Rules können viele Eigenschaften eines Fensters steuern und lassen sich auf zahlreiche unterschiedliche Arten von Fenstern anwenden. Sinnvoll ist etwa das Öffnen bestimmter Fenster in einer definierten Größe. Die Regel in der zweiten Zeile des Listings hat beispielsweise zur Folge, dass Firefox immer zwei Drittel der Bildschirmbreite einnimmt. Bereits in der Standardkonfiguration vorhanden, jedoch auskommentiert ist die Window Rule für abgerundete Fensterecken (dritte Zeile).

Weitere Optionen

Wenn Sie die Standardkonfiguration von Niri überfliegen, sehen Sie, dass sich noch zahlreiche weitere Eigenschaften der Fensterdarstellung und des Layouts anpassen lassen.

So ergibt es etwa bei kleineren Bildschirmen Sinn, die Standardbreite der Spalten zu vergrößern. Suchen Sie dafür die Zeile default-column-width { proportion 0.5; }, und ersetzen Sie den Wert für proportion zum Beispiel durch 0.7.

Bei Bedarf blenden Sie außerdem die Titelleisten der Fenster aus. Entfernen Sie dafür die beiden Schrägstriche vor // prefer-no-csd. Außerdem können Sie unter anderem auch die Lücke zwischen den einzelnen Fenstern, den Abstand zu den Bildschirmrändern und die Breite und Farbe des Rahmens um fokussierte und nicht fokussierte Fenster präzise steuern.

Abbildung 8: Mithilfe der Tastenkombination <span class="key-combo">[Super]+[,]</span> ordnen Sie ein Fenster unterhalb desjenigen an, das sich links davon befindet.

Abbildung 8: Mithilfe der Tastenkombination [Super]+[,] ordnen Sie ein Fenster unterhalb desjenigen an, das sich links davon befindet.

Abbildung 9: Mit <span class="key-combo">[Super]+[Umschalt]+[R]</span> &auml;ndern Sie die H&ouml;he der Fenster.

Abbildung 9: Mit [Super]+[Umschalt]+[R] ändern Sie die Höhe der Fenster.

Fazit

Niri ist ein interessanter neuer Wayland-Compositor mit einer verhältnismäßig einfachen Konfiguration. Er lässt sich aber dennoch sehr weitgehend an die Bedürfnisse des Benutzers anpassen. Positiv fällt auch die ausgezeichnete englischsprachige Dokumentation des Projekts auf. Allerdings hat die Software bisher lediglich eine Github-Seite, eine eigene Website fehlt offenbar.

Obwohl die Entwicklung von Niri erst vor wenigen Jahren begonnen hat, läuft der Compositor bereits ziemlich stabil und eignet sich grundsätzlich für den produktiven Einsatz. Für Nutzer von Tiling-Window-Managern und Tiling-Wayland-Compositoren ist die Bedienung eventuell ein wenig gewöhnungsbedürftig, die Vorteile von Niri erschließen sich möglicherweise nicht sofort. Da man bei Tiling-Compositoren aber auf einem virtuellen Desktop ohnehin meist nur zwei Programme öffnet, entfällt bei Niri eigentlich nur das manuelle Wechseln und Verschieben auf die zweite oder dritte Arbeitsfläche.

Ein kleines Manko bleibt allerdings: Es gibt für Waybar noch kein Modul, das anzeigt, ob sich ein Programm auf einem anderen virtuellen Desktop oder nur außerhalb des sichtbaren Bereichs befindet. In dieser Hinsicht bieten Tiling-Compositoren wie Sway oder Hyprland mit aktiviertem Scrollable-Tiling-Plugin mehr Bedienkomfort und Funktionalität. Außerdem gehören offenbar auch Schlagschatten zu den visuellen Effekten, die Niri noch fehlen.

Insgesamt steckt im Konzept des Scrollable Tiling zweifellos noch viel Entwicklungspotenzial. Für neugierige Nutzer sind daher Projekte wie Niri auf jeden Fall einen genaueren Blick wert. (jlu)

Infos:

  1. Stabiles COPR-Repository für Niri: https://copr.fedorainfracloud.org/coprs/yalter/niri/
  2. Entwicklerversion von Niri für Fedora: https://copr.fedorainfracloud.org/coprs/yalter/niri-git/
  3. “Getting started”: https://github.com/YaLTeR/niri/wiki/Getting-Started
  4. Quellcode für das stabile Release von Niri: https://github.com/YaLTeR/niri/releases
  5. Kubuntu 24.10: Anna Simon, “Gefällige Optik”, LU 12/2024, S. 32, https://www.linux-community.de/51377
  6. Offizielles Waybar-Wiki: https://github.com/Alexays/Waybar/wiki
  7. Waybar & Wofi: Anna Simon, “Effizientes Duo”, LU 07/2024, S. 20, https://www.linux-community.de/50830
  8. Xwayland-satellite: https://github.com/Supreeeme/xwayland-satellite
  9. Beispiel für Systemd-Setup mit Niri: https://github.com/YaLTeR/niri/wiki/Example-systemd-Setup
DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDF
LinuxUser 03/2025 KAUFEN
EINZELNE AUSGABE
ABONNEMENTS
TABLET & SMARTPHONE APPS
E-Mail Benachrichtigung
Benachrichtige mich zu:

Hinweis: Dieser Artikel ist älter als ein Jahr, enthaltene Informationen sind möglicherweise veraltet.

0 Kommentare
Älteste
Neuste Beste Bewertung
Nach oben