MoonLightOS

La base di Ubuntu, senza il desktop di Ubuntu

Ubuntu ha il repository più ampio e il supporto hardware più completo fra tutte le basi Linux. Il solo pacchetto linux-firmware copre la grande maggioranza dell'hardware in circolazione — schede Wi-Fi, Bluetooth, grafiche e chipset — e ubuntu-drivers-common gestisce correttamente le schede NVIDIA. Secure Boot funziona subito perché lo shim e il GRUB firmati da Canonical sono nel repository e il kernel è firmato. In più la base riceve dodici anni di aggiornamenti di sicurezza.

Il desktop di Ubuntu è la parte che valeva la pena sostituire: è pesante e non ha né un pulsante Start, né le icone sulla scrivania, né una barra delle applicazioni. Cinnamon ha tutte e tre le cose. MoonLightOS parte quindi da una base minima e vi costruisce sopra il desktop. Del desktop di Ubuntu non viene installato nulla, e niente di ciò che l'utente vede fa riferimento alla base.

Una cosa è lasciata volutamente com'è: il nome in codice della release che apt vede resta “resolute”, perché i PPA e tutto ciò che usa lsb_release dipendono da quel nome. Il nome con cui il sistema si presenta davvero viene da /etc/os-release.

Schermata di MoonLightOS
Il logo resta fermo mentre la luce intorno pulsa. Due immagini dell'alone, con cicli di 2,6 e 3,1 secondi, si sfasano continuamente, così il bagliore non sembra mai meccanico. Entrambe vengono generate dalla grafica originale durante la build, e lo stesso logo con lo stesso alone compare nel menu di GRUB, nella schermata di accesso, nell'installatore, nella pagina Informazioni e nella presentazione di benvenuto.

L'aspetto

Un solo pannello in basso, alto 52 pixel. Il pulsante Start e la casella di ricerca sono a sinistra, le applicazioni aperte al centro con le icone più grandi del pannello, l'area di stato a destra. Il menu mostra la tua foto, il tuo nome e se puoi amministrare il computer, e la sua casella di ricerca trova applicazioni, impostazioni, file e risultati dal web.

Schermata di MoonLightOS
Schermata catturata durante un avvio reale dell'immagine installata, non un fotomontaggio.

Tre disposizioni

  • MoonLight

    Un solo pannello in basso. Nel dock trovi anche le applicazioni preferite, quindi non c'è una seconda fila di icone di avvio.

  • Due pannelli

    Una barra sottile in alto per l'orologio e le icone di stato, e un dock in basso che si nasconde da solo.

  • Compatta

    Una sola barra sottile in alto. Occupa il minimo di spazio sullo schermo ed è la soluzione più leggera sulle schede grafiche datate.

Chiaro e scuro

Entrambi i temi vengono generati da un unico script a partire da un'unica tavolozza di colori, e coprono GTK 2, 3 e 4, la shell di Cinnamon e i bordi delle finestre. I temi GTK importano Adwaita e ne cambiano i colori, così i nuovi widget e le correzioni upstream arrivano da soli. Il tema delle icone si basa su Papirus e sostituisce solo le icone che identificano la distribuzione. Il colore in evidenza si può cambiare in Scrivania e dock.

Cambio programmato

Chiaro dalle 07:00 e scuro dalle 19:00, come impostazione predefinita. Un piccolo servizio in secondo piano tiene il tema allineato con l'orario.

Widget sulla scrivania

Un orologio grande e un monitor di processore, memoria e disco sono già sulla scrivania. Un calendario e le note adesive, salvate come testo semplice mentre scrivi, si aggiungono con un clic destro.

L'animazione di avvio

Il logo resta fermo mentre la luce intorno pulsa. Due immagini dell'alone, con cicli di 2,6 e 3,1 secondi, si sfasano continuamente, così il bagliore non sembra mai meccanico. Entrambe vengono generate dalla grafica originale durante la build, e lo stesso logo con lo stesso alone compare nel menu di GRUB, nella schermata di accesso, nell'installatore, nella pagina Informazioni e nella presentazione di benvenuto.

Caratteri

Inter per l'interfaccia, JetBrains Mono per il codice e Noto per tutto il resto, compresi cinese, giapponese, coreano ed emoji a colori.

Sette sfondi

Cinque scene fotografiche con un pinguino, un lago e una luna crescente, più una coppia generata, uno sfondo diurno e uno notturno. Questa release esce con “Tramonto sul lago”.

Scorciatoie che conosci già

Windows e macOS usano scorciatoie da tastiera diverse per quasi tutto. Dato che le due serie non vanno quasi mai in conflitto, MoonLightOS le supporta entrambe: il tasto Super segue le convenzioni di Windows e il tasto Ctrl quelle del Mac.

AzioneSe vieni da WindowsSe vieni da macOS
Aprire il menuSuperSuper
CercareSuper+SpazioSuper+Spazio
FileSuper+E—
Bloccare lo schermoSuper+LCtrl+Super+Q
Mostrare la scrivaniaSuper+DCtrl+Super+D
Affiancare una finestra a metà schermoSuper+Sinistra / Destra—
Massimizzare / ripristinareSuper+Su / Super+GiùAlt+F10 / Alt+F5
MinimizzareSuper+HAlt+F9
Chiudere una finestraAlt+F4Super+Q
Schermo interoSuper+FCtrl+Super+F
Passare da una finestra all'altraAlt+Tab, Super+TabAlt+Tab
Finestra successiva della stessa applicazioneAlt+`Super+`
Tutte le finestreSuper+WCtrl+Su
Tutte le aree di lavoroSuper+SCtrl+Giù
Cambiare area di lavoroCtrl+Alt+Sinistra / DestraCtrl+Sinistra / Destra
Spostare una finestra in un'altra area di lavoroCtrl+Maiusc+Alt+Sinistra / DestraCtrl+Maiusc+Sinistra / Destra
ImpostazioniSuper+ISuper+,
Monitor di sistemaCtrl+Maiusc+Esc—
Eseguire un comandoSuper+R, Alt+F2—
TerminaleCtrl+Alt+TCtrl+Alt+T
BrowserSuper+BSuper+B
CalcolatriceSuper+CSuper+C
Mixer ed equalizzatoreSuper+ASuper+A
Cronologia degli appuntiSuper+VSuper+V
NoteSuper+NSuper+N
Convertire fileSuper+Maiusc+CSuper+Maiusc+C
Schermata di tutto lo schermoStampMaiusc+Super+3
Schermata di un'areaMaiusc+StampMaiusc+Super+4
Schermata di una finestraAlt+Stamp—
Pannello di cattura e registrazioneCtrl+Maiusc+StampMaiusc+Super+5
Terminare la sessioneCtrl+Alt+Canc—

Portando il puntatore nell'angolo in alto a sinistra si apre la panoramica delle finestre. Il tasto Super da solo apre il menu, e Super+Spazio lo apre con il cursore già nella casella di ricerca.

Tre formati di pacchetti, un solo store

apt, snap e Flatpak sono tutti installati, e GNOME Software li elenca tutti e tre: prima gli snap, poi i pacchetti del repository di Ubuntu, infine Flathub. Un pacchetto .deb è sempre la scelta più leggera, e Flathub copre tutto il resto.

L'applicazione Snap Store è a sua volta uno snap, con dipendenze che arrivano a circa un gigabyte: troppo per un'immagine pensata per computer con 2 GB di RAM. Lo store può quindi elencare e installare gli snap fin dal primo avvio, e un servizio scarica l'applicazione Snap Store non appena c'è una connessione.

La pagina Applicazioni nelle impostazioni mostra che cosa è installato, da quale dei tre formati proviene ogni applicazione e se qualcosa è installato due volte.

Le applicazioni incluse

Scelte perché un desktop per tutti gli usi funzioni fin dal primo avvio, anche senza connessione a internet.

Internet

Firefox (la versione ufficiale di Mozilla, con uBlock Origin incluso come estensione locale, quindi disponibile anche offline), Thunderbird, Geary, Transmission

Ufficio e documenti

LibreOffice Writer, Calc, Impress e Draw; Evince; Editor di testo di GNOME; Xournal++; PDF Arranger; MoonLight PDF; Calendario; Orologi; Meteo; Mappe; Calcolatrice

Multimedia

VLC; Celluloid; Rhythmbox; GStreamer con libav, i set di plugin “bad” e “ugly” e VA-API, così H.264, H.265 e AAC si riproducono in ogni applicazione

Grafica e scansione

GIMP; Drawing; Eye of GNOME; MoonLight Export; Simple Scan; Visualizzatore di caratteri; Schermata

Sistema

GNOME Software; Monitor di sistema; Dischi; GParted; Analizzatore di utilizzo del disco; Timeshift; Redshift; File Roller; Seahorse; Blueman; Stampanti; MoonLight Tweaks

Rete e VPN

NetworkManager con OpenVPN, OpenConnect (Cisco AnyConnect, GlobalProtect, Fortinet), L2TP, PPTP, SSH e supporto WireGuard integrato

Sviluppo

Visual Studio Code; gcc, g++, make, gdb; git, git-lfs; cmake, meson, ninja; Python 3 con pip, venv, NumPy e OpenCV; Node.js e npm; Rust e Cargo; Go; OpenJDK 21 con Maven e Gradle; Docker Engine, Compose v2 e Buildx; SQLite

Terminale

Terminale di GNOME; bash, zsh e fish; tmux, screen; Neovim, nano; ripgrep, fd, jq, yq, htop, btop, ncdu, tree; nmap, dig, whois, traceroute, httpie, socat; rsync, rclone, aria2; shellcheck; inxi, fastfetch

Compatibilità con Windows

Wine con supporto a 32 bit, winetricks, DXVK (da Direct3D 9 a 11) e VKD3D (Direct3D 12)

Hardware e driver

Firmware

Il set completo di linux-firmware, i microcodici Intel e AMD e fwupd per aggiornare il firmware.

Grafica

Mesa con Vulkan, VA-API e VDPAU per Intel e AMD. Il driver NVIDIA è incluso nella ISO, quindi si può attivare dalla pagina Driver anche senza connessione a internet.

Wi-Fi ed Ethernet

Più di cinquanta driver wireless nel kernel, più i driver broadcom-sta e r8168 compilati con DKMS per i chip che i driver standard gestiscono male.

Stampanti e scanner

CUPS con il set completo di driver, stampa su PDF, SANE e Simple Scan.

Bluetooth

BlueZ, Blueman e i codec Bluetooth di PipeWire, con una pagina delle impostazioni che dice chiaramente quando il computer non ha un modulo Bluetooth.

Audio

PipeWire con WirePlumber, compatibilità con PulseAudio e un equalizzatore a dieci bande integrato.

Portatili

power-profiles-daemon, thermald, la percentuale della batteria nel pannello, tocco per fare clic e scorrimento naturale già attivi, supporto per dispositivi Wacom e Synaptics.

Macchine virtuali

Gli strumenti guest per VirtualBox, QEMU/SPICE e VMware sono inclusi, così lo schermo si ridimensiona e gli appunti sono condivisi.

Lettori di impronte

fprintd, libfprint e il loader TOD sono installati e integrati con PAM. MoonLight Impronta digitale riconosce il sensore e ti guida nella registrazione.

Sblocco con il volto

Sblocco con il volto basato su OpenCV per la schermata di accesso, il blocco schermo e sudo. Disattivato finché non lo attivi tu.

Sicurezza

Tutto ciò che segue è già attivo su un sistema MoonLightOS installato.

  • Secure Boot

    Firmware → shim di Canonical → GRUB firmato → kernel firmato. Impostazioni → Informazioni mostra se è attivo sul tuo computer.

  • Cifratura del disco

    La cifratura dell'intero disco con LUKS2 è una semplice casella da spuntare nell'installatore.

  • Firewall

    ufw è attivo: le connessioni in entrata sono bloccate e quelle in uscita sono consentite.

  • AppArmor

    In modalità enforcing, anche per gli snap.

  • Aggiornamenti di sicurezza automatici

    Dal repository di sicurezza di Ubuntu e da packages.mozilla.org, ogni giorno. I kernel e le dipendenze non più usati vengono rimossi, e il computer non si riavvia mai da solo.

  • Root bloccato, sudo tracciabile

    Il primo account amministra il computer tramite sudo. Non viene mai impostata una password di root.

  • Qualità delle password e blocco dell'account

    Almeno otto caratteri di due tipi diversi. Dopo otto tentativi sbagliati l'account resta bloccato per quindici minuti.

  • Protezioni del kernel

    Il kernel è configurato per limitare ciò che i programmi senza privilegi possono scoprire sul sistema e gli uni sugli altri: i puntatori del kernel e i messaggi di avvio sono nascosti, il debug di un altro processo è bloccato e non è possibile caricare un kernel sostitutivo a sistema avviato. Lo stack di rete è irrobustito contro percorsi falsificati e raffiche di connessioni, e gli indirizzi IPv6 vengono ruotati.

  • Superficie di attacco ridotta

    FireWire e una serie di moduli per file system e protocolli di rete raramente necessari non possono essere caricati automaticamente: un dispositivo collegato o un pacchetto in arrivo non possono così portare in memoria codice che questo computer non usa mai.

  • Unico al primo avvio

    L'identificativo della macchina e le chiavi SSH dell'host vengono generati sul computer installato. Una chiave dell'host condivisa da tutte le installazioni renderebbe inutile la verifica dell'host.

  • Nessuna telemetria

    I servizi di segnalazione degli errori e delle statistiche d'uso non sono presenti nell'immagine. La telemetria di Firefox, gli studi, Pocket e i contenuti sponsorizzati sono disattivati da criterio e la protezione dal tracciamento è attiva.

  • Protezione USB

    USBGuard è installato, quindi un dispositivo collegato mentre lo schermo è bloccato non viene considerato attendibile. Disattivato per impostazione predefinita; si attiva con un pulsante nella pagina Sicurezza.

  • Password di emergenza

    Una seconda password che fa qualcosa di diverso dal farti entrare. In modalità cancellazione distrugge le chiavi LUKS del disco e spegne il computer; in modalità esca apre una sessione vuota e la blocca dopo cinque minuti. Disattivata per impostazione predefinita, richiede la tua password vera per essere impostata e non può coincidere con quella.

  • Password del menu di avvio

    Proposta nella pagina Sicurezza, perché altrimenti chiunque possa riavviare il computer potrebbe modificare il menu di avvio e aprire una shell di root.

  • Richieste di autenticazione chiare

    Ogni programma di servizio di MoonLight ha un'azione polkit con un nome, così la richiesta della password dice a che cosa stai acconsentendo.

Schermata di MoonLightOS
Schermata catturata durante un avvio reale dell'immagine installata, non un fotomontaggio.

Su computer con poca memoria

Memoria compressa (zram)Metà della RAM, fino a 8 GB, compressione zstd, priorità 100. Circa 3:1 di compressione sulle pagine di memoria di un desktop.
Regolazione dello scambioIl valore predefinito del kernel, 60, presuppone che lo swap comporti un accesso al disco. Con zram comporta una copia in memoria.
Protezione dall'esaurimento della memoriaInterviene al 4 % di memoria libera e invia SIGKILL al 2 %. Non chiude mai Cinnamon, Xorg, LightDM o Nemo; chiude per primi Firefox, Thunderbird, Code, LibreOffice e i compilatori.
Nessun indicizzatoreNiente tracker e nessuna scansione del disco in secondo piano.
Regolazione grafica automaticaAll'accesso il sistema controlla il renderer OpenGL. Se è llvmpipe o un altro renderer software, le animazioni vengono disattivate. Una tua scelta successiva non viene mai sovrascritta.
GRUBRichiede una modalità grafica modesta con alternative di riserva, così il menu compare anche in una macchina virtuale con poca memoria video.
SquashfsCompresso con zstd, così la sessione live si carica velocemente da una chiavetta USB.

Lingue

La configurazione iniziale propone un elenco breve con inglese (Stati Uniti e Regno Unito), italiano, francese, tedesco, spagnolo, portoghese brasiliano, olandese, polacco e russo, e raccoglie tutte le altre lingue sotto “Altre lingue”. La disposizione della tastiera segue la lingua scelta, quindi al secondo passaggio di solito basta premere Avanti.

Tutti i MoonTools, 774 stringhe in totale, sono tradotti in queste otto lingue oltre all'inglese, e la build fallisce se un programma contiene una stringa visibile non tradotta. Il pacchetto della lingua italiana e i dizionari di LibreOffice sono inclusi nell'immagine, quindi un'installazione offline in Italia è completamente in italiano; gli altri pacchetti di lingua si scaricano con un clic.

Gli strumenti a riga di comando restano volutamente in inglese: il loro output si legge accanto alla documentazione e si incolla nelle segnalazioni di problemi, e tutto questo è più semplice in una lingua sola.

Schermata di MoonLightOS

Scelte di progetto che vale la pena conoscere

  • I temi GTK importano Adwaita e ne cambiano i colori.

    Un tema scritto a mano si rompe ogni volta che GTK aggiunge un widget. Il nostro eredita le correzioni che arrivano da upstream.

  • La pagina Informazioni di sistema di Cinnamon viene deviata, non eliminata.

    Un aggiornamento di Cinnamon non può rimetterla di nascosto accanto alla nostra, e se si rimuovono i pacchetti di MoonLightOS la pagina torna al suo posto senza problemi.

  • Lo squashfs conserva una copia del kernel.

    Lo stesso squashfs è quello che l'installatore copia sul disco. Togliergli /boot vorrebbe dire installare un sistema che non si avvia.

  • Il tema di avvio si chiama moonlightos, non moonlight.

    Il pacchetto desktop-base di Debian include già un tema Plymouth chiamato moonlight, e un aggiornamento sostituirebbe l'animazione senza avvisare.

  • uBlock Origin è incluso, non scaricato.

    Una policy che punta ad addons.mozilla.org installa l'estensione solo la prima volta che Firefox si avvia con una connessione funzionante. L'estensione è inclusa nell'immagine, e resti libero di rimuoverla.

  • Docker Engine, non Docker Desktop.

    Su Linux, Docker Desktop esegue il motore dentro una macchina virtuale propria, cioè un secondo kernel e una seconda quota di memoria su un portatile.

  • Gli stack di sviluppo più pesanti sono opzionali.

    Macchine virtuali, PHP con i database e LaTeX si installano con un clic da Benvenuto, invece di un gigabyte che ogni installazione si porterebbe dietro.