Das Unternehmen System76, das die Linux-Distribution Pop!_OS entwickelt, hat einen Bericht über die Entwicklung einer neuen Version der Benutzeroberfläche COSMIC veröffentlicht, die in Rust neu geschrieben wurde (nicht zu verwechseln mit dem alten COSMIC, das auf GNOME Shell basierte). Die Benutzeroberfläche wird als universelles Projekt entwickelt, das nicht an eine bestimmte Distribution gebunden ist und den Freedesktop-Spezifikationen entspricht. Das Projekt entwickelt auch den Kompositionsserver cosmic-comp auf Basis von Wayland.
Zur Erstellung von Benutzeroberflächen in COSMIC wird die Bibliothek Iced verwendet, die sichere Typen, eine modulare Architektur und ein reaktives Programmiermodell nutzt. Sie bietet eine Architektur, die Entwicklern, die mit der deklarativen UI-Sprache Elm vertraut sind, bekannt ist. Mehrere Rendering-Engines werden unterstützt, darunter Vulkan, Metal, DX12, OpenGL 2.1+ und OpenGL ES 2.0+, sowie eine Fensterumgebung und eine Engine zur Integration mit dem Web. Anwendungen, die auf Iced basieren, können für Windows, macOS, Linux erstellt und im Webbrowser ausgeführt werden. Entwicklern steht ein umfassendes Set an Widgets zur Verfügung, es gibt die Möglichkeit, asynchrone Handler zu erstellen und adaptive Layouts je nach Fenster- und Bildschirmgröße zu verwenden. Der Code wird unter der MIT-Lizenz veröffentlicht.

Unter den neuesten Entwicklungen in COSMIC:
- Eine neue Leiste wurde vorgeschlagen, die eine Liste aktiver Fenster anzeigt, Verknüpfungen für den schnellen Zugriff auf Anwendungen bereitstellt und die Platzierung von Applets unterstützt (eingebettete Anwendungen, die in separaten Prozessen ausgeführt werden). Zum Beispiel werden über Applets Anwendungsmenüs, eine Schnittstelle zum Wechseln zwischen Desktops sowie Indikatoren zur Änderung des Tastaturlayouts, zur Steuerung der Medienwiedergabe, zur Anpassung der Lautstärke, zur Verwaltung von Wi-Fi und Bluetooth, zur Anzeige einer Liste von Benachrichtigungen, zur Anzeige der Zeit und zum Aufrufen des Abschaltbildschirms realisiert. In Planung sind Applets mit Wettervorhersagen, Notizen, Clipboard-Management und die Umsetzung benutzerdefinierter Menüs.

Die Leiste kann in Teile unterteilt werden, zum Beispiel in einen oberen Teil mit Menüs und Indikatoren und einen unteren Teil mit einer Liste aktiver Aufgaben und Verknüpfungen für den schnellen Zugriff. Die Leistenbereiche können sowohl vertikal als auch horizontal angeordnet werden, die gesamte Breite des Bildschirms oder nur einen gewählten Bereich einnehmen, Transparenz verwenden und den Stil je nach Wahl des hellen oder dunklen Designs ändern.

- Der Service zur automatischen Optimierung System76 Scheduler 2.0 wurde veröffentlicht. Dieser passt dynamisch die Parameter des Completely Fair Scheduler (CFS) an und ändert die Prioritäten der Prozesse, um Verzögerungen zu minimieren und maximale Leistung für den Prozess zu gewährleisten, der mit dem aktiven Fenster, an dem der Benutzer gerade arbeitet, verbunden ist. In der neuen Version wurde die Integration mit Multimedia dem Server durch Pipewire umgesetzt, um die Priorität der Multimedia-Prozesse zu erhöhen. Es wurde auf ein neues Konfigurationsdateiformat umgestellt, in dem eigene Regeln definiert und die Anwendung verschiedener Optimierungsmodi gesteuert werden kann. Zudem ist es möglich, Einstellungen unter Berücksichtigung des Status von cgroups und übergeordneten Prozessen anzuwenden; der Ressourcenverbrauch im Hauptprozess Scheduler wurde um etwa 75 % reduziert.
- Die Implementierung eines Konfigurators, der mit einer neuen Widget-Bibliothek erstellt wurde, ist verfügbar. Im ersten Version des Konfigurators werden Einstellungen für die Taskleiste, Tastatur und Desktop-Hintergründe angeboten. Zukünftig wird die Anzahl der Seiten mit Einstellungen erweitert. Der Konfigurator hat eine modulare Architektur, die es ermöglicht, zusätzliche Einstellungsseiten problemlos anzuschließen.

- Vorbereitungen zur Integration der Unterstützung für Bildschirme mit hohem dynamischen Helligkeitsbereich (HDR) und Farbmanagement-Tools laufen. Geplant ist die Unterstützung von ICC-Farbprofilen. Die Entwicklung befindet sich noch in der Anfangsphase und wird mit den allgemeinen Arbeiten zur Unterstützung von HDR und Farbmanagement für Linux synchronisiert.
- Im Composite der Server wurde cosmic-comp Unterstützung für die Ausgabe mit 10 Bit Farbkanälen hinzugefügt.
- In der GUI-Bibliothek iced wird an der Unterstützung von Werkzeugen für Menschen mit Behinderungen gearbeitet. Eine experimentelle Integration mit der Bibliothek AccessKit wurde durchgeführt, und die Verwendung des Screenreaders Orca wurde ermöglicht.
Quelle: opennet.ru



