KDE Plasma: KWin-Wayland wird Libinput und Logind verwenden

Der KWin-Maintainer Martin Gräßlin ist dem Ziel, eine komplette Plasma-Sitzung unter Wayland zu benutzen, näher gekommen: Er integrierte die Bibliothek Libinput in den Wayland-Bestandteil von KWin. Gräßlin selbst bezeichnet dies in seinem Blog(öffnet im neuen Fenster) als Meilenstein. Mit Hilfe der Bibliothek, die auch von anderen Wayland-Compositoren genutzt wird, ist es möglich, Eingabeereignisse in der Fensterverwaltung zu verarbeiten. So lassen sich einfach globale Tastaturkürzel oder eventuell auch Touch-Gesten umsetzen.
Dank dem Code ist es nun zum Beispiel einfacher für KWin, komplette Kontrolle über den Mauszeiger zu erlangen und dabei den Wayland-Compositor zu umgehen. Darüber hinaus ist der Code den Angaben zufolge wichtig, um eine Wayland-Session umzusetzen, die keinen anderen Compositor benötigt. Bisher konnte KWin unter Wayland nur in einem Szenario benutzt werden, in dem die Anwendung in einem laufenden Compositor gestartet wurde.
Für eine selbstständig gestartete Sitzung muss auch die Eingabeverwaltung selbst übernommen werden. Die dafür ebenfalls notwendige Interaktion mit DRM ist in Arbeit. Noch werden jedoch nicht alle von Libinput bereitgestellten Ereignisse unterstützt, das gilt vor allem für Touch-Gesten. Gemeinsam mit Entwicklern, die über die notwendigen Geräte verfügen, sowie mit der Designgruppe werde diese Funktion aber noch umgesetzt, schreibt Gräßlin.
Sicherheit durch Logind
Theoretisch müsste KWin mit Root-Rechten ausgeführt werden, um direkt auf die Geräteereignisse zugreifen zu können, was Gräßlin nachvollziehbarer Weise vermeiden möchte. Die Lösung dafür bietet Logind(öffnet im neuen Fenster) , das als Teil des Systemd-Projekts erstellt wird. Damit ist es möglich, ein Gerät über einen File-Descriptor(öffnet im neuen Fenster) (FD) anzusprechen. Wechselt ein Nutzer das virtuelle Terminal wird zudem der FD von Logind geschlossen. Die Verwendung lässt sich darüber hinaus einfach umsetzen, da hierfür nur sehr wenige D-Bus-Aufrufe notwendig seien.
Die Libinput-Integration in KWin-Wayland wird eine Laufzeitabhängigkeit zu einer Logind D-Bus-Schnittstelle verwenden. Davon sind laut Gräßlin weder die X11-Unterstützung noch KWin-Wayland ohne Libinput betroffen. Noch ist die Unterstützung aber optional, da noch keine stabile Veröffentlichung von Libinput existiert.
Andere Plattformen und Systemd
Nach Einschätzung von Gräßlin wird Libinput langfristig auch unter anderen Plattformen als Linux, also vor allem den verschiedenen BSDs, bereitstehen, da vor allem auch DRM und KMS dort mittlerweile gut unterstützt werden. Aus Sicht des KWin-Maintainers ist dies wichtig, da so nur eine Bibliothek verwendet werden müsse und plattformabhängiger Code vermieden werden könne. Immerhin sei letzterer schwer zu entwickeln und schwierig zu testen. Gräßlin ruft Interessierte deshalb dazu auf, die notwendigen Arbeiten dafür zu übernehmen.
Für Logind ergibt sich eine ähnliche Situation, da Systemd nicht auf allen Plattformen genutzt werden kann, auf denen auch KWin läuft. Laut Gräßlin können die klar definierten D-Bus-Schnittstellen, die KWin benutzt, aber auch unabhängig von Systemd implementiert werden. Etwas derartiges ist in einem GSoC-Projekt dieses Jahr für OpenBSD begonnen worden. KWin würde dies benutzen, wenn sich jemand findet, der den Code schreibt. Wenn sich genügend Leute darum bemühen, wird dies nach Meinung von Gräßlin auch passieren.
Um möglichen kritischen oder gar ungehaltenen Kommentaren vorzubeugen, stellt Gräßlin in einem FAQ klar, dass KWin nicht von Systemd abhängen werde. Es werde lediglich eine D-Bus-Schnittstelle benutzt, die derzeit nur in Logind bereitsteht. Für die BSD-Systeme ist dies aber derzeit das geringste Problem, denn dort fehlt noch der komplette Input-Stack.



