Das NetBSD-Projekt über den Wechsel des standardmäßig im X11-Sitzung verwendeten Fenstermanagers zu findet man . CTWM ist ein Fork von twm, der 1992 entstanden ist und sich in Richtung eines leichtgewichtigen und vollständig anpassbaren Fenstermanagers entwickelt hat, der es ermöglicht, das Aussehen und Verhalten nach Belieben zu ändern.
Der Fenstermanager twm wurde in NetBSD seit 20 Jahren angeboten und wirkte unter modernen Bedingungen veraltet. Die negative Reaktion der Nutzer auf das standardmäßig angebotene twm veranlasste die Entwickler, die Standardoberfläche zu überdenken und einen funktionelleren Fenstermanager CTWM zu implementieren, um eine benutzerfreundliche Umgebung für Nutzer zu schaffen, die Erfahrungen mit anderen Betriebssystemen haben.
CTWM unterstützt virtuelle Desktops, entwickelt sich aktiv und wird unter einer mit NetBSD kompatiblen Lizenz bereitgestellt. Zu den neuen Funktionen, die auf CTWM basieren, gehört ein automatisch generiertes Anwendungsmenü, nützliche Tastenkombinationen für eine vollständige Steuerung ohne Maus, Anpassung für unterschiedliche Bildschirmauflösungen (einschließlich HiDPI nach der Hinzufügung großer Schriftarten) sowie die Möglichkeit, sowohl sehr langsame als auch sehr schnelle Systeme mithilfe einer einzigen Konfigurationsdatei zu unterstützen.
War:
Ist geworden:
Zusätzlich Hinweis zum Stand des Projekts, das die Funktionalität des Kompositors in NetBSD gewährleisten soll. auf Basis des Wayland-Protokolls. Der Port ist derzeit noch nicht für den täglichen Gebrauch bereit, eignet sich jedoch bereits für Experimente und das Starten von Anwendungen, die Qt5, GTK3 oder SDL2 verwenden. Zu den Problemen gehört die Inkompatibilität mit einigen Anwendungen, einschließlich Firefox, das Fehlen der Unterstützung für das Starten von X11-Anwendungen und die Möglichkeit, nur mit Intel-GPU zu arbeiten, für die Treiber vorhanden sind, um die Videomodi auf Kernel-Ebene umzuschalten.
Zu den Besonderheiten von Wayland, die die Portierung nach NetBSD erschweren, gehört der Umfang des betriebssystemspezifischen Codes in den Compositoren, die für die Verwaltung von Bildschirmen, Eingaben und Fenstern verantwortlich sind. Wayland bietet keine vorgefertigten Protokolle für Funktionen wie das Erstellen von Screenshots, das Sperren des Bildschirms und die Fensterverwaltung, und bleibt in Bereichen wie Portabilität, Modularität und Standardisierung hinter dem X-Server zurück.
Zusätzliche Funktionen werden durch den Compositor selbst oder durch die Definition von Erweiterungen zu den Protokollen realisiert. Der Referenz-Compositor-Server Weston ist stark an die Linux-Kernel-API gebunden. Beispielsweise erfordert die Bindung an das Eingabe-/Ausgabe-Multiplexing-Mechanismus epoll eine Überarbeitung zur Unterstützung von kqueue. Patches zur Verwendung von kqueue wurden bereits von den Entwicklern der BSD-Systeme erstellt, sind jedoch noch nicht in den Hauptzweig aufgenommen worden.
Der Code des Referenzkompositservers wurde ursprünglich nur mit Blick auf Linux geschrieben und berücksichtigt nicht die Besonderheiten anderer Systeme (zum Beispiel wird im Code «#include » verwendet und eine Abhängigkeit von libinput besteht). In FreeBSD wurde eine Klon-API für die Eingabe von Linux implementiert, während in NetBSD ein prinzipiell anderes API für die Eingabesteuerung — wscons — verwendet wird. Derzeit wurde die Unterstützung von wscons bereits in swc hinzugefügt und ist für die Übertragung in andere Kompositmanager geplant.
Vertreter von NetBSD beabsichtigen, die Entwickler von Wayland davon zu überzeugen, keine strikte Bindung an epoll zu verwenden, sondern auf eine universelle Schicht wie libevent zu wechseln. Zu den geplanten Arbeiten gehört auch die Aktualisierung des DRM/KMS-Stacks des NetBSD-Kerns und der Grafiktreiber, einschließlich der Portierung von Code aus dem Linux-Kernel sowie die Hinzufügung von Unterstützung für atomare Umschaltung von Video-Modi, neuen Versionen von DRM und dem API Glamor (um X11-Anwendungen unter xwayland auszuführen). Der Kompositserver auf Basis von Wayland soll Unterstützung für Framesbuffer erhalten.
Quelle: opennet.ru
