L'azienda System76, sviluppatrice della distribuzione Linux Pop!_OS, ha pubblicato un rapporto sullo sviluppo della nuova versione dell'ambiente desktop COSMIC, riscritto in Rust (da non confondere con il vecchio COSMIC, che era basato su GNOME Shell). L'ambiente si evolve come un progetto universale, non legato a una distribuzione specifica e conforme alle specifiche di Freedesktop. Il progetto sta anche sviluppando il server composito cosmic-comp basato su Wayland.
Per la creazione dell'interfaccia in COSMIC è stata utilizzata la libreria Iced, che impiega tipi sicuri, un'architettura modulare e un modello di programmazione reattiva, offrendo anche un'architettura familiare per gli sviluppatori che conoscono il linguaggio dichiarativo per la creazione di interfacce Elm. Sono disponibili diversi motori di rendering che supportano Vulkan, Metal, DX12, OpenGL 2.1+ e OpenGL ES 2.0+, oltre a un'interfaccia finestra e a un motore per l'integrazione con il web. Le applicazioni basate su Iced possono essere compilate per Windows, macOS, Linux e eseguite in un browser web. Gli sviluppatori hanno a disposizione un set predefinito di widget, la possibilità di creare gestori asincroni e di utilizzare layout adattivi degli elementi dell'interfaccia a seconda della dimensione della finestra e dello schermo. Il codice è distribuito con licenza MIT.

Tra le ultime innovazioni nello sviluppo di COSMIC:
- È stata proposta una nuova barra che visualizza un elenco di finestre attive, icone per un accesso rapido alle applicazioni e supporta il posizionamento di applet (applicazioni integrate eseguite in processi separati). Ad esempio, attraverso gli applet vengono implementati i menu delle applicazioni, un'interfaccia per la commutazione tra desktop, indicatori per il cambio della disposizione della tastiera, il controllo della riproduzione dei file multimediali, della regolazione del volume, la gestione del Wi-Fi e del Bluetooth, la visualizzazione dell'elenco delle notifiche accumulate, la visualizzazione dell'orario e l'apertura dello schermo per il termine del lavoro. Sono pianificati applet per le previsioni del tempo, note, gestione degli appunti e implementazione di menu personalizzati.

La barra può essere suddivisa in sezioni, ad esempio, la parte superiore con i menu e gli indicatori, e la parte inferiore con l'elenco delle attività attive e le icone per l'accesso rapido. Le parti della barra possono essere disposte sia verticalmente che orizzontalmente, occupare l'intera larghezza dello schermo o solo un'area selezionata, utilizzare la trasparenza e cambiare stile a seconda della scelta del tema chiaro o scuro.

- È stato pubblicato il servizio di ottimizzazione automatica System76 Scheduler 2.0, che regola dinamicamente i parametri del pianificatore di processi CFS (Completely Fair Scheduler) e modifica le priorità di esecuzione dei processi per ridurre i ritardi e garantire la massima performance del processo associato alla finestra attiva con cui l'utente sta attualmente lavorando. Nella nuova versione è stata implementata l'integrazione con il multimédia server Pipewire per aumentare la priorità dei processi che producono contenuti multimediali; è stato effettuato il passaggio a un nuovo formato di file di configurazione, che consente di definire regole personalizzate e gestire l'applicazione di diverse modalità di ottimizzazione; è stata fornita la possibilità di applicare impostazioni tenendo conto dello stato dei cgroups e dei processi genitori; il consumo di risorse nel processo principale Scheduler è stato ridotto di circa il 75%.
- È disponibile l'implementazione di un configuratore preparato utilizzando una nuova libreria di widget. Nella prima versione del configuratore sono offerte impostazioni per la barra degli strumenti, la tastiera e gli sfondi del desktop. In seguito, il numero di pagine con impostazioni sarà aumentato. Il configuratore ha un'architettura modulare che consente di collegare facilmente pagine aggiuntive con impostazioni.

- Sono in fase di preparazione per l'integrazione del supporto per schermi ad alta gamma dinamica (HDR) e strumenti per il controllo del colore (ad esempio, si prevede di aggiungere il supporto per i profili colore ICC). Lo sviluppo è ancora nelle fasi iniziali e viene sincronizzato con il lavoro generale per garantire il supporto HDR e gli strumenti di gestione del colore per Linux.
- Nel composito un server cosmic-comp è stata aggiunta la supporto all'output con rappresentazione del colore a 10 bit per canale.
- Nella libreria GUI iced si sta lavorando per supportare strumenti per persone con disabilità. È stata effettuata un'integrazione sperimentale con la libreria AccessKit e aggiunta la possibilità di utilizzare lettori di schermo come Orca.
Fonte: opennet.ru



