MoonLightOS

De basis van Ubuntu, zonder het bureaublad van Ubuntu

Geen enkele Linux-basis heeft een grotere pakketbron en bredere ondersteuning voor hardware dan Ubuntu. Alleen het pakket linux-firmware al dekt het overgrote deel van de wifi-, bluetooth-, GPU- en chipsethardware die in omloop is, en ubuntu-drivers-common regelt NVIDIA-kaarten zoals het hoort. Secure Boot werkt meteen, omdat de ondertekende shim en GRUB van Canonical in de pakketbron zitten en de kernel ondertekend is. Daar komt bij dat de basis twaalf jaar beveiligingsonderhoud krijgt.

Het bureaublad van Ubuntu is juist het onderdeel dat vervanging verdiende: het is zwaar en het heeft geen startknop, geen pictogrammen op het bureaublad en geen taakbalk. Cinnamon heeft die drie dingen wel. Daarom begint MoonLightOS bij een minimale basis en komt het bureaublad daar bovenop. Van het bureaublad van Ubuntu zelf is niets geïnstalleerd, en in wat je op het scherm ziet, komt de basis nergens terug.

Eén ding blijft met opzet onaangeroerd: de codenaam van de uitgave die apt ziet, blijft “resolute”, want PPA's en alles wat lsb_release aanroept, rekenen daarop. De naam die je zelf in beeld krijgt, komt uit /etc/os-release.

Schermafbeelding van MoonLightOS
Het logo blijft stilstaan terwijl het licht eromheen pulseert. Twee halo-afbeeldingen met een cyclus van 2,6 en 3,1 seconden lopen steeds iets uit elkaar en weer samen, waardoor de gloed nooit mechanisch aandoet. Beide worden tijdens de build uit de bronafbeelding gemaakt, en hetzelfde logo met dezelfde halo zie je terug in het GRUB-menu, op het aanmeldscherm, in het installatieprogramma, op de pagina Over en in de rondleiding van Welkom.

De vormgeving

Eén paneel onderaan, 52 pixels hoog. Links de startknop en het zoekveld, in het midden de programma's die open zijn, met de grootste pictogrammen van het hele paneel, en rechts het systeemvak. Het menu toont je foto, je naam en of je de computer mag beheren, en via het zoekveld in dat menu vind je programma's, instellingen, bestanden en resultaten van het web.

Schermafbeelding van MoonLightOS
Deze schermafbeelding is gemaakt tijdens een echte start van het geïnstalleerde image, dus niets is nagebootst.

Drie indelingen

  • MoonLight

    Eén paneel onderaan. In de dock staan ook je favoriete programma's, dus een tweede rij snelkoppelingen heb je niet nodig.

  • Twee panelen

    Bovenaan een smalle balk met de klok en de statuspictogrammen, onderaan een dock die automatisch verdwijnt.

  • Compact

    Eén smalle balk bovenaan. Deze indeling kost het minste schermruimte en is het lichtst voor oude grafische kaarten.

Licht en donker

Eén script maakt beide thema's uit één kleurenpalet, voor GTK 2, 3 en 4, de Cinnamon-shell en de vensterranden. De GTK-thema's importeren Adwaita en geven dat andere kleuren, waardoor nieuwe widgets en verbeteringen van GTK zelf automatisch meekomen. Het pictogramthema is gebaseerd op Papirus en vervangt alleen de pictogrammen waaraan je de distributie herkent. De accentkleur pas je aan in Bureaublad en dock.

Wisselen op tijd

Standaard licht vanaf 07:00 en donker vanaf 19:00. Een kleine achtergronddienst houdt het thema netjes in de pas met dat schema.

Widgets op het bureaublad

Standaard staan er een grote klok en een meter voor processor, geheugen en schijf. Via de rechtermuisknop kun je er een agenda bij zetten, en memo's die als gewone tekst worden opgeslagen terwijl je typt.

De opstartanimatie

Het logo blijft stilstaan terwijl het licht eromheen pulseert. Twee halo-afbeeldingen met een cyclus van 2,6 en 3,1 seconden lopen steeds iets uit elkaar en weer samen, waardoor de gloed nooit mechanisch aandoet. Beide worden tijdens de build uit de bronafbeelding gemaakt, en hetzelfde logo met dezelfde halo zie je terug in het GRUB-menu, op het aanmeldscherm, in het installatieprogramma, op de pagina Over en in de rondleiding van Welkom.

Typografie

Inter voor de interface, JetBrains Mono voor code en Noto voor al het andere, inclusief Chinees, Japans, Koreaans en emoji in kleur.

Zeven achtergronden

Vijf foto's met een pinguïn, een meer en een maansikkel, plus een gegenereerd paar voor dag en nacht. Deze uitgave begint met “Zonsondergang boven het meer”.

Sneltoetsen die je al kent

Windows en macOS gebruiken voor bijna alles andere sneltoetsen. Omdat die twee sets elkaar nauwelijks in de weg zitten, ondersteunt MoonLightOS ze allebei: de Super-toets volgt de gewoonten van Windows, de Control-toets die van de Mac.

ActieVanuit WindowsVanuit macOS
Het menu openenSuperSuper
ZoekenSuper+SpatieSuper+Spatie
BestandenSuper+E—
Het scherm vergrendelenSuper+LCtrl+Super+Q
Het bureaublad tonenSuper+DCtrl+Super+D
Een venster aan een schermhelft vastzettenSuper+Links / Rechts—
Maximaliseren / herstellenSuper+Omhoog / Super+OmlaagAlt+F10 / Alt+F5
MinimaliserenSuper+HAlt+F9
Een venster sluitenAlt+F4Super+Q
Volledig schermSuper+FCtrl+Super+F
Door de vensters lopenAlt+Tab, Super+TabAlt+Tab
Volgend venster van dit programmaAlt+`Super+`
Alle venstersSuper+WCtrl+Omhoog
Alle bureaubladenSuper+SCtrl+Omlaag
Van bureaublad wisselenCtrl+Alt+Links / RechtsCtrl+Links / Rechts
Een venster naar een ander bureaublad verplaatsenCtrl+Shift+Alt+Links / RechtsCtrl+Shift+Links / Rechts
InstellingenSuper+ISuper+,
SysteemmonitorCtrl+Shift+Esc—
Een opdracht uitvoerenSuper+R, Alt+F2—
TerminalCtrl+Alt+TCtrl+Alt+T
BrowserSuper+BSuper+B
RekenmachineSuper+CSuper+C
Mixer en equalizerSuper+ASuper+A
KlembordgeschiedenisSuper+VSuper+V
NotitiesSuper+NSuper+N
Bestanden omzettenSuper+Shift+CSuper+Shift+C
Schermafbeelding van het hele schermPrintShift+Super+3
Schermafbeelding van een deel van het schermShift+PrintShift+Super+4
Schermafbeelding van een vensterAlt+Print—
Paneel voor schermafbeelding en opnameCtrl+Shift+PrintShift+Super+5
AfmeldenCtrl+Alt+Delete—

Breng je de aanwijzer naar de linkerbovenhoek, dan opent het vensteroverzicht. De Super-toets alleen opent het menu; met Super+Spatie staat de cursor meteen in het zoekveld.

Drie pakketformaten, één winkel

apt, snap en Flatpak staan er alle drie op, en GNOME Software toont ze ook alle drie: eerst snaps, dan pakketten uit de pakketbron van Ubuntu, dan Flathub. Een .deb-pakket is altijd de lichtste keuze; voor al het andere is er Flathub.

Het programma Snap Store is zelf een snap, met afhankelijkheden van samen ongeveer een gigabyte. Dat is te veel voor een image dat bedoeld is voor computers met 2 GB RAM. De winkel kan daarom vanaf de eerste start snaps tonen en installeren, en een dienst haalt het programma Snap Store zelf op zodra er een verbinding beschikbaar is.

De instellingenpagina Programma's laat zien wat er geïnstalleerd is, uit welk van de drie formaten elk programma komt en of er iets dubbel op staat.

De programma's op het image

Zo gekozen dat een bureaublad voor alledaags gebruik vanaf de eerste start werkt, ook zonder internetverbinding.

Internet

Firefox (de eigen versie van Mozilla, met uBlock Origin als lokale extensie erbij, zodat die ook zonder verbinding beschikbaar is), Thunderbird, Geary, Transmission

Kantoor en documenten

LibreOffice Writer, Calc, Impress en Draw; Evince; GNOME Teksteditor; Xournal++; PDF Arranger; MoonLight PDF; Agenda; Klokken; Weer; Kaarten; Rekenmachine

Media

VLC; Celluloid; Rhythmbox; GStreamer met libav, de pluginsets “bad” en “ugly” en VA-API, zodat H.264, H.265 en AAC in elk programma spelen

Afbeeldingen en scannen

GIMP; Drawing; Eye of GNOME; MoonLight Export; Simple Scan; Lettertypen; Schermafdruk

Systeem

GNOME Software; Systeemmonitor; Schijven; GParted; Schijfgebruik; Timeshift; Redshift; Archiefbeheer; Seahorse; Blueman; Printers; MoonLight Tweaks

Netwerk en VPN

NetworkManager met OpenVPN, OpenConnect (Cisco AnyConnect, GlobalProtect, Fortinet), L2TP, PPTP, SSH en ingebouwde ondersteuning voor WireGuard

Ontwikkeling

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

Terminal

GNOME Terminal; bash, zsh en 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

Compatibiliteit met Windows

Wine met 32-bitsondersteuning, winetricks, DXVK (Direct3D 9 tot en met 11) en VKD3D (Direct3D 12)

Hardware en stuurprogramma's

Firmware

De complete set linux-firmware, microcode voor Intel en AMD, en fwupd voor firmware-updates.

Grafische kaarten

Mesa met Vulkan, VA-API en VDPAU voor Intel en AMD. Het stuurprogramma van NVIDIA staat op de ISO, dus je kunt het ook zonder internetverbinding aanzetten op de pagina Stuurprogramma's.

Wifi en ethernet

Meer dan vijftig stuurprogramma's voor draadloze adapters in de kernel, plus broadcom-sta en r8168, met DKMS gebouwd voor de chips waar de standaardstuurprogramma's slecht mee omgaan.

Printers en scanners

CUPS met de volledige set stuurprogramma's, afdrukken naar PDF, SANE en Simple Scan.

Bluetooth

BlueZ, Blueman en de bluetooth-codecs van PipeWire, met een instellingenpagina die duidelijk meldt wanneer de computer geen bluetooth-hardware heeft.

Geluid

PipeWire met WirePlumber, compatibiliteit met PulseAudio en een ingebouwde equalizer met tien banden.

Laptops

power-profiles-daemon, thermald, het batterijpercentage in het paneel, tikken om te klikken en natuurlijk scrollen staan standaard aan, en er is ondersteuning voor Wacom- en Synaptics-invoer.

Virtuele machines

De gasthulpprogramma's voor VirtualBox, QEMU/SPICE en VMware zitten erbij, zodat het beeld meeschaalt en het klembord wordt gedeeld.

Vingerafdruklezers

fprintd, libfprint en de TOD-loader zijn geïnstalleerd en met PAM geïntegreerd. Vingerafdruk herkent de sensor en begeleidt je bij het registreren van je vinger.

Gezichtsontgrendeling

Ontgrendelen met je gezicht op basis van OpenCV, voor het aanmeldscherm, het vergrendelscherm en sudo. Staat uit tot je het zelf aanzet.

Beveiliging

Alles hieronder staat standaard aan op een geïnstalleerd MoonLightOS.

  • Secure Boot

    Firmware → shim van Canonical → ondertekende GRUB → ondertekende kernel. In Instellingen → Over zie je of het op jouw computer aanstaat.

  • Schijfversleuteling

    Volledige schijfversleuteling met LUKS2 is één vinkje in het installatieprogramma.

  • Firewall

    ufw staat aan: inkomende verbindingen worden geblokkeerd, uitgaande zijn toegestaan.

  • AppArmor

    In de modus enforcing, ook voor snaps.

  • Automatische beveiligingsupdates

    Elke dag, uit de beveiligingspakketbron van Ubuntu en van packages.mozilla.org. Ongebruikte kernels en afhankelijkheden worden opgeruimd, en de computer start nooit op eigen initiatief opnieuw op.

  • Root zit op slot, sudo is te herleiden

    Het eerste gebruikersaccount beheert de computer via sudo. Er wordt nooit een root-wachtwoord ingesteld.

  • Eisen aan wachtwoorden en een blokkade

    Minstens acht tekens uit twee soorten tekens. Na acht verkeerde pogingen gaat het account vijftien minuten op slot.

  • Een dichtgezette kernel

    De kernel is zo ingesteld dat programma's zonder rechten zo min mogelijk over het systeem en over elkaar te weten komen: kernelpointers en opstartmeldingen blijven verborgen, het debuggen van een ander proces is geblokkeerd en een vervangende kernel laden tijdens het draaien is uitgeschakeld. De netwerklaag is gehard tegen vervalste routes en vloeden van verbindingen, en IPv6-adressen wisselen regelmatig.

  • Minder aanvalsoppervlak

    FireWire en een reeks zelden benodigde modules voor bestandssystemen en netwerkprotocollen kunnen niet automatisch worden geladen, zodat een aangesloten apparaat of een binnenkomend pakket geen code kan binnenhalen die deze computer nooit gebruikt.

  • Eigen gegevens bij de eerste start

    De machine-ID en de SSH-hostsleutels worden op de geïnstalleerde computer aangemaakt. Een hostsleutel die elke installatie deelt, maakt het controleren van hosts zinloos.

  • Geen telemetrie

    De diensten voor foutmeldingen en gebruiksstatistieken staan niet op de image. De telemetrie van Firefox, studies, Pocket en gesponsorde inhoud staan via beleid uit, en bescherming tegen volgen staat aan.

  • Bescherming tegen USB-apparaten

    USBGuard is geïnstalleerd, dus een apparaat dat je aansluit terwijl het scherm vergrendeld is, wordt niet vertrouwd. Staat standaard uit; één knop op de pagina Beveiliging zet het aan.

  • Noodwachtwoord

    Een tweede wachtwoord dat iets anders doet dan je aanmelden. In de wismodus worden de LUKS-sleutels van de schijf vernietigd en gaat de computer uit; in de schijnmodus gaat er een lege sessie open die na vijf minuten vastloopt. Staat standaard uit, je echte wachtwoord is nodig om het in te stellen, en het mag niet hetzelfde zijn als dat echte wachtwoord.

  • Wachtwoord voor het opstartmenu

    Te vinden op de pagina Beveiliging, want wie de computer opnieuw kan opstarten, kan anders het opstartmenu aanpassen en een root-shell starten.

  • Duidelijke wachtwoordvragen

    Elk MoonLight-hulpprogramma heeft een eigen polkit-actie met naam, zodat een wachtwoordvraag vertelt waarmee je instemt.

Schermafbeelding van MoonLightOS
Deze schermafbeelding is gemaakt tijdens een echte start van het geïnstalleerde image, dus niets is nagebootst.

Draaien op computers met weinig geheugen

Gecomprimeerd geheugen (zram)De helft van het RAM, tot maximaal 8 GB, zstd-compressie, prioriteit 100. Geheugenpagina's van een bureaublad gaan ruwweg 3:1 in compressie.
Afstemming van het wisselenDe standaardwaarde 60 van de kernel gaat ervan uit dat swappen een schijfbenadering kost. Met zram is het een kopie in het geheugen.
Bescherming tegen geheugentekortGrijpt in bij 4 % vrij geheugen en stuurt SIGKILL bij 2 %. Beëindigt nooit Cinnamon, Xorg, LightDM of Nemo; Firefox, Thunderbird, Code, LibreOffice en compilers gaan er als eerste uit.
Geen indexeringGeen tracker en geen achtergrondscan van de schijf.
Grafische instellingen automatischBij het aanmelden kijkt het systeem welke OpenGL-renderer actief is. Is dat llvmpipe of een andere renderer in software, dan gaan de animaties uit. Een keuze die je daarna zelf maakt, wordt nooit overschreven.
GRUBVraagt een bescheiden grafische modus aan, met terugvalopties, zodat het menu ook in een virtuele machine met weinig videogeheugen in beeld komt.
SquashfsMet zstd gecomprimeerd, zodat de livesessie snel van een USB-stick laadt.

Talen

Instellen zet Engels (VS en VK), Italiaans, Frans, Duits, Spaans, Braziliaans Portugees, Nederlands, Pools en Russisch in een korte lijst; alle andere taalinstellingen staan onder “Meer talen”. De toetsenbordindeling volgt de taal die je kiest, dus bij de tweede stap hoef je meestal alleen op Volgende te klikken.

Alle MoonTools, samen 774 teksten, zijn naast het Engels in die acht talen vertaald, en de build mislukt zodra een programma een zichtbare tekst bevat die niet vertaald is. Het Italiaanse taalpakket en de woordenboeken van LibreOffice staan op het image, zodat een installatie zonder internet in Italië volledig in het Italiaans is; andere taalpakketten haal je met één klik binnen.

De hulpprogramma's voor de opdrachtregel blijven met opzet Engels: je leest de uitvoer naast de documentatie en plakt die in foutrapporten, en dat gaat makkelijker in één taal.

Schermafbeelding van MoonLightOS

Keuzes die het vermelden waard zijn

  • De GTK-thema's importeren Adwaita en geven dat andere kleuren.

    Een thema dat helemaal met de hand is geschreven, breekt elke keer dat GTK er een widget bij krijgt. Dit thema erft de verbeteringen van GTK zelf.

  • De pagina Systeeminfo van Cinnamon wordt omgeleid, niet verwijderd.

    Zo kan een update van Cinnamon hem niet stilletjes naast de onze terugzetten, en haal je de MoonLightOS-pakketten weg, dan komt hij netjes terug.

  • De squashfs houdt zijn eigen kopie van de kernel.

    Het installatieprogramma kopieert precies die squashfs naar de schijf. Haal je /boot eruit, dan installeer je een systeem dat niet kan opstarten.

  • Het opstartthema heet moonlightos en niet moonlight.

    Het pakket desktop-base van Debian bevat al een Plymouth-thema met de naam moonlight, en een update zou de animatie dan ongemerkt vervangen.

  • uBlock Origin wordt meegeleverd, niet gedownload.

    Een beleidsregel die naar addons.mozilla.org wijst, installeert de extensie alleen bij de eerste start van Firefox met een werkende verbinding. Daarom zit de extensie in het image. Verwijderen mag natuurlijk nog steeds.

  • Docker Engine in plaats van Docker Desktop.

    Op Linux draait Docker Desktop de engine in zijn eigen virtuele machine, en dat betekent op een laptop een tweede kernel en een tweede hap uit het geheugen.

  • De zware ontwikkelpakketten zijn optioneel.

    Virtuele machines, PHP met databases en LaTeX zitten op één klik afstand in Welkom, in plaats van een gigabyte die elke installatie met zich mee zou dragen.