Vai al contenuto

DankMaterialShell cambia nome in Dux Shell: cosa cambia con la 2.0

Grafica promozionale con le scritte DMS 2.0 e Heisenberg su sfondo viola.
Immagine: Dux Labs

Con la versione 2.0, nome in codice «Heisenberg», DankMaterialShell cambia nome in Dux Shell e il progetto Dank Linux diventa Dux Labs, come si legge nel post di rilascio sul sito di Dux Labs. Il rilascio porta un nuovo design basato su Material 3 Expressive e un file manager inedito, Dux Files. Per chi usa già la shell c’è una modifica non retrocompatibile: l’ID dell’applicazione cambia, e le regole di finestra scritte a mano vanno aggiornate.

Perché il nome cambia, e cosa resta uguale

Secondo il team, la shell aveva raccolto nel tempo un greeter, un monitor di sistema, un servizio di ricerca, un calendario, un repository di pacchetti e una comunità di plugin, e la 2.0 aggiunge un file manager: troppo per chiamare tutto DankMaterialShell. L’intera suite passa quindi sotto il nome Dux Labs. Il progetto precisa che progetti e squadra sono gli stessi, che la shell resta «DMS» e che il comando resta dms.

«Dux» è il nome della mascotte e un richiamo a Tux. Il team lo giustifica con tre ragioni: è corto, non è usato da grandi progetti software e comincia con la D, così non occorre rinominare i binari (dms, dcal, dgop). Aggiunge che suona più amichevole di «Dank». La nuova organizzazione GitHub è duxlabs-dev; i repository dei pacchetti si spostano poco dopo il lancio.

Prima Ora
Dank Linux Dux Labs
DankMaterialShell Dux Shell
DankGreeter Dux Greeter
DankSearch Dux Search
DankGOP Dux GOP
DankCalendar Dux Calendar
Repository DankLinux Repository Dux Labs

Se usi già DMS: ID dell’app e regole di finestra

L’ID dell’app diventa dev.duxlabs.shell, al posto di com.danklinux.dms. Le regole di finestra che DMS gestisce da sé si aggiornano automaticamente; quelle scritte a mano nel compositor no. Su niri, per esempio, la riga match app-id=r#"^com\.danklinux\.dms$"# diventa match app-id=r#"^dev\.duxlabs\.shell$"#.

La 2.0 introduce anche i canali: dms switch beta passa ai pacchetti beta dopo aver fatto un backup, dms switch stable riporta indietro, e si può indicare un singolo pacchetto per cambiare solo quello. Il comando vale per Arch, Fedora, EL 10, openSUSE, Debian, Ubuntu e Void; su NixOS e Gentoo il canale va cambiato attraverso la configurazione. Tornando alla stabile si possono perdere le opzioni aggiunte o rinominate nella beta: se esiste un backup dell’ultimo utilizzo della stabile, il comando propone di ripristinarlo. Attenzione al greeter: se resta su un canale diverso da quello di DMS, la schermata di accesso può smettere di funzionare. Gli aggiornamenti di sistema hanno ora una finestra flottante, un backend Portage, log evidenziati e una richiesta di riavvio dopo gli aggiornamenti del kernel.

Material 3 Expressive e le novità della shell

Il nuovo design riguarda Settings, Control Center, Dash e i widget condivisi, con controlli nuovi, impostazioni raggruppate, navigazione, colori e animazioni. In Settings i widget della barra hanno le proprie opzioni, Dash ha una pagina dedicata e le impostazioni correlate si aprono in sottopagine.

  • Dash accetta plugin che aggiungono una scheda, una card nella panoramica o entrambe; per gli autori le nuove superfici si chiamano dash e dashCard. Panoramica, player multimediale (il nuovo predefinito si chiama Bento), meteo e sfondi sono stati rifatti.
  • La schermata di blocco usa widget configurabili (orologio, data, notifiche, stato, controlli di alimentazione), con anteprima in Settings → Security → Lock screen.
  • Il Dux Lyrical Engine mostra testi sincronizzati nel player, a livello di parola o di sillaba quando la sorgente fornisce i tempi. Tra le fonti integrate: Better Lyrics, Unison, LyricsPlus, KuGou, LRCLIB e YouTube Music, più i testi locali.
  • Dux Dot è un hub in stile dynamic island costruito attorno a un punto persistente che si trasforma in launcher, dashboard, control center, media, meteo, sfondi e notifiche. Può stare in una barra, fluttuare sullo schermo, essere verticale o in modalità notch.
  • Le barre adottano la stessa animazione a molla dell’isola, con spessore frazionario o adattato ai widget e overflow automatico per sezione; per ogni widget si sceglie fra Auto, Keep in Bar e Always in overflow.
  • Il dock può funzionare come OmegaDock: se ne possono aggiungere più d’uno su qualsiasi bordo, in modalità compatta a icone o taskbar a tutto bordo, con gli stessi widget della barra, plugin compresi.

Dux Files, il file manager standalone

Dux Files arriva insieme alla 2.0 ed è un’applicazione autonoma: un piccolo demone in Go si occupa delle operazioni sui file e sopra c’è una finestra Quickshell. Ne condivide l’aspetto con la shell e ne segue il tema quando girano insieme, ma, precisa il progetto, non richiede DMS.

  • Schede e vista divisa, con due cartelle affiancate e trascinamento dei file; viste a elenco, griglia e colonne, con ordinamento e vista ricordati per ogni cartella.
  • Anteprima con la barra spaziatrice accanto all’elenco; copia, spostamento, rinomina ed eliminazione con avanzamento e annullamento; senza permessi si può riprovare come amministratore.
  • Apertura di archivi zip, tar, 7z e rar e compressione in zip o tar senza strumenti aggiuntivi.
  • Ricerca nella cartella corrente o in tutta la home, con filtri per tipo, data o dimensione.
  • Montaggio di unità USB, sblocco di quelle cifrate e connessione a server SFTP, SMB e WebDAV.
  • «Show in folder» dal browser apre Dux Files, che può anche sostituire le finestre di apertura e salvataggio di altre app; l’interfaccia è utilizzabile interamente da tastiera.

Compositor e distribuzioni supportati

Per Hyprland la 2.0 segue la versione 0.56, con i layout dwindle, master e scrolling, i workspace speciali come scratchpad e i nuovi effetti di blur. MangoWC 0.18 ha rinominato le chiavi di configurazione in snake_case: DMS scrive il nuovo formato e dms config mango-migrate converte una configurazione esistente. Su entrambi, dms setup può avviare la shell da hyprland-session.target o mango-session.target.

Aqueous ottiene un supporto completo e Umbriel uno di base; si aggiungono a niri, Hyprland, MangoWC, Sway, labwc e Miracle. Su niri si può accendere e spegnere il touchpad, con il tasto associato a toggle-touchpad nella configurazione predefinita, e funziona il focus che segue il mouse. Fra le distribuzioni, il progetto elenca il supporto ufficiale a PikaOS ed Enterprise Linux 10 (RHEL, CentOS Stream, Rocky Linux, AlmaLinux) e quello nativo a FreeBSD.

Per chi scrive plugin e per chi pacchettizza

  • I vecchi wrapper dei widget, come DankButton, DankIcon e DankSlider, sono deprecati e verranno rimossi: vanno importati da qs.DCommon.Widgets con i nuovi nomi, per esempio DButton. I wrapper di compatibilità registrano un avviso con il sostituto, e i tipi specifici della shell restano in qs.Widgets.
  • Per i maintainer, file desktop e icona seguono il nuovo ID: assets/dev.duxlabs.shell.desktop, assets/dev.duxlabs.shell.notepad.desktop e assets/dev.duxlabs.shell.svg. Gli asset di Dux Calendar passano a dev.duxlabs.calendar.*.
  • Binari, unità systemd e l’handler URL dms-open.desktop restano invariati. Rinominare i pacchetti non è obbligatorio ma preferito: dms, DankMaterialShell e dms-shell diventano dux-shell, dgop diventa dux-gop, dankcalendar e dank-calendar diventano dux-calendar, dank-greeter diventa dux-greeter.
  • Il registro dei plugin supera i 380 plugin e i 47 temi, contro 337 e 42 della 1.6; il browser dei plugin è stato ricostruito, con una pagina Discover, filtri per compositor e ricerca tollerante agli errori di battitura.

Correzioni e numeri della release

Dux Labs dichiara oltre 90 correzioni e miglioramenti. Tra quelle citate: il lettore di impronte continua a funzionare dopo la chiusura del coperchio o la sospensione, la schermata di blocco compare su tutti i display quando nessuno è selezionato, e la riga di comando va in timeout invece di restare appesa se il server DMS non risponde. Dalla 1.6 il progetto conta più di 600 commit da 65 contributori. La pagina non indica date o numeri di versione dei pacchetti nelle singole distribuzioni.