Gli sviluppatori della distribuzione Nitrux, che offre il proprio desktop NX Desktop, hanno annunciato la creazione di un nuovo ambiente utente chiamato Maui Shell, che può essere utilizzato su sistemi desktop, dispositivi mobili e tablet, adattandosi automaticamente alla dimensione dello schermo e ai metodi di input disponibili. Il codice del progetto è scritto in C++ e QML, ed è distribuito sotto la licenza LGPL 3.0.
L'ambiente sviluppa il concetto di 'Convergenza', che implica la possibilità di utilizzare le stesse applicazioni sia su schermi touch di smartphone e tablet, sia su schermi più grandi di laptop e PC. Ad esempio, con Maui Shell è possibile creare un'interfaccia per smartphone che, una volta collegato un monitor, una tastiera e un mouse, permette di trasformare lo smartphone in una workstation portatile. La stessa interfaccia può essere utilizzata per sistemi desktop, smartphone e tablet, senza la necessità di creare versioni separate per dispositivi con fattori di forma diversi.

L'interfaccia utilizza componenti per la creazione di interfacce grafiche MauiKit e il framework Kirigami, sviluppati dalla comunità KDE. Kirigami è un'estensione degli elementi di Qt Quick Controls 2, mentre MauiKit offre modelli di elementi dell'interfaccia pronti all'uso, permettendo di creare applicazioni che si adattano rapidamente alle dimensioni dello schermo e ai metodi di input disponibili.
L'ambiente utente Maui Shell è composto da due componenti:
- Il contenitore Cask, che fornisce un contenitore che copre tutto il contenuto dello schermo. Questa shell include anche modelli di base per elementi come la barra superiore, le finestre di dialogo, le schede dello schermo, le aree di notifica, una dock panel, icone di accesso rapido, interfaccia di avvio delle applicazioni, ecc.
- Il gestore dei compositi Zpace, responsabile della visualizzazione e del posizionamento delle finestre nel contenitore Cask, elaborando scrivanie virtuali. Il protocollo principale utilizzato è Wayland, con il quale si interagisce tramite l'API Qt Wayland Compositor. Il posizionamento e la gestione delle finestre dipendono dal form factor del dispositivo.

La barra superiore contiene un'area di notifiche, un calendario e interruttori per un accesso rapido a diverse funzionalità tipiche, come l'accesso alle impostazioni di rete, la modifica del volume, la regolazione della luminosità dello schermo, il controllo della riproduzione e la gestione delle sessioni. Nella parte inferiore dello schermo si trova una dock-bar, che mostra le icone delle applicazioni fissate, le informazioni sui programmi in esecuzione e un pulsante per navigare tra le applicazioni installate (launcher). I programmi disponibili sono suddivisi in categorie o raggruppati in base a un filtro specificato.
Quando si utilizza monitor standard, l'interfaccia funziona in modalità desktop, con una barra laterale fissa in alto che non viene coperta dalle finestre a schermo intero, mentre gli elementi della barra si chiudono automaticamente quando si fa clic al di fuori. L'interfaccia di selezione delle applicazioni si apre al centro dello schermo. La gestione è progettata per l'uso del mouse. È possibile aprire un numero qualsiasi di finestre, che possono avere dimensioni diverse, sovrapporsi, essere spostate su un altro desktop e ingrandite a schermo intero. Le finestre hanno bordi e titoli, visualizzati tramite il componente WindowControls. La decorazione delle finestre avviene sul lato server.


Se il dispositivo dispone di uno schermo touchscreen, l'interfaccia operativa funziona in modalità tablet con un layout verticale degli elementi. Le finestre aperte occupano l'intero schermo e vengono visualizzate senza elementi decorativi. Su un singolo desktop virtuale è possibile aprire al massimo due finestre, disposte affiancate o in forma impilata, simile ai gestori di finestre a mosaico. È possibile ridimensionare le finestre con il gesto dello «pinch» o spostarle scorrendo con tre dita; quando si sposta una finestra oltre il bordo dello schermo, questa viene trasferita su un altro desktop virtuale. L'interfaccia di selezione delle applicazioni occupa tutto lo spazio disponibile dello schermo.


Sui telefoni, gli elementi della barra e l'elenco delle applicazioni si aprono a schermo intero. Un gesto di scorrimento dal lato sinistro della barra superiore apre il pannello con l'elenco delle notifiche e del calendario, mentre da destra si apre il pannello delle impostazioni rapide. Se il contenuto dell'elenco delle app, delle notifiche o delle impostazioni non può essere visualizzato su un solo schermo, si utilizza lo scorrimento. È consentita la visualizzazione di una sola finestra per ciascun desktop virtuale, che occupa tutto lo spazio disponibile e sovrappone la barra inferiore. Grazie ai gesti di scorrimento sullo schermo, è possibile richiamare la barra inferiore o passare tra le applicazioni aperte.


Il progetto è attualmente in fase di sviluppo attivo. Tra le funzionalità non ancora implementate si segnala il supporto per configurazioni multi-monitor, un gestore di sessioni, un configuratore e l'utilizzo di XWayland per eseguire applicazioni X11 in una sessione basata su Wayland. Le funzionalità su cui gli sviluppatori stanno attualmente concentrando l'attenzione includono il supporto per l'estensione XDG-shell, pannelli, desktop virtuali, meccanismi di trascinamento e rilascio, output audio tramite Pulseaudio, interazione con dispositivi Bluetooth tramite Bluedevil, indicatori di gestione della rete e controllo dei lettori multimediali tramite MPRI.
Una prima versione sperimentale come opzione è stata inclusa nell'aggiornamento di dicembre della distribuzione Nitrux 1.8. Sono forniti due modi per avviare Maui Shell: con il proprio compositore server Zpace, che utilizza Wayland, e l'avvio separato della shell Cask all'interno di una sessione basata su X-server. Il rilascio della prima versione alpha è previsto per marzo, le versioni beta per giugno e il primo rilascio stabile per settembre 2022.
Fonte: opennet.ru

