Matthew Kosarek, sviluppatore di Canonical, ha pubblicato la versione 0.9 del compositore miracle-wm, che utilizza il protocollo Wayland e componenti per la creazione di compositori Mir. Miracle-wm supporta la composizione a mosaico (tiling), simile a quella dei progetti i3 e Sway. Può utilizzare Waybar come pannello. Il codice del progetto è scritto in C++ e distribuito sotto la licenza GPLv3. Le versioni pronte sono confezionate in formato snap, oltre che in pacchetti rpm e deb per Fedora e Ubuntu.
L'obiettivo di miracle-wm è la creazione di un compositore server, che adotta la gestione a mosaico delle finestre, ma è più funzionale e stiloso rispetto a prodotti come Swayfx. Il progetto consente anche l'uso di tecniche tradizionali per lavorare con finestre fluttuanti, ad esempio, è possibile posizionare finestre singole sopra la griglia a mosaico o fissare finestre in una posizione specifica sul desktop. Sono supportati i desktop virtuali con la possibilità di impostare un modo di lavoro predefinito per ogni desktop (layout a mosaico o finestre fluttuanti).
Si prevede che miracle-wm possa risultare utile agli utenti che preferiscono il layout a mosaico, ma desiderano ottenere effetti visivi e un design grafico più vivace con transizioni e colori fluidi. La configurazione è definita in formato YAML. Per installare miracle-wm si può utilizzare il comando «sudo snap install miracle-wm —classic». 
Novità principali:
- È stato aggiunto un sistema di plugin, forniti in codice intermedio WebAssembly e eseguiti come moduli isolati (sandbox). I plugin possono essere utilizzati per modificare ed espandere le funzionalità del compositore, tra cui quelle relative alla logica di posizionamento delle finestre, gestione e ampliamento delle configurazioni, intercettazione di eventi di input e del puntatore del mouse, realizzazione di effetti animati e connessione di gestori che scattano alla creazione, rimozione o cambio dei desktop. I plugin possono essere riavviati singolarmente senza dover riavviare il compositore.
- È stata aggiunta un'API per lo sviluppo di plugin in Rust.
- È stato aggiunto il supporto per temi di cursor.
- Sono state aggiunte nuove icone.
- È stata aggiunta la combinazione di tasti 'Meta + Shift + R' per ricaricare la configurazione.
- Il concetto di 'mini-alberi' (mini tree), utilizzato per raggruppare finestre galleggianti correlate, è stato sostituito da un comportamento più prevedibile con finestre galleggianti separate.
- È stata effettuata un'ottimizzazione delle prestazioni.
- È stato garantito il riavvio automatico delle impostazioni del display dopo una modifica della configurazione.
- È stato modificato il formato per la configurazione dei gestori personalizzati: nella mappatura delle chiavi, invece degli identificatori delle chiavi in stile eventi di input del kernel Linux, ora è necessario utilizzare nomi in stile XKbKeysyms, per esempio, 'D' invece di 'KEY_D' e 'Return' invece di 'KEY_ENTER'.
Fonte: opennet.ru
