MoonLightOS

Ubuntus grundlag, uden Ubuntus skrivebord

Ubuntu har det største pakkearkiv og den bredeste hardwareunderstøttelse af alle Linux-grundlag. Alene pakken linux-firmware dækker langt de fleste af de wi-fi-, bluetooth-, GPU- og chipsætkomponenter, der er i brug, og ubuntu-drivers-common håndterer NVIDIA-kort ordentligt. Secure Boot virker fra starten, fordi Canonicals signerede shim og GRUB ligger i arkivet, og fordi kernen er signeret. Grundlaget får desuden sikkerhedsvedligeholdelse i tolv år.

Ubuntus skrivebord var til gengæld værd at skifte ud: det er tungt, og det har hverken startknap, ikoner på skrivebordet eller en proceslinje. Cinnamon har alle tre. Derfor starter MoonLightOS fra en minimal base og bygger skrivebordet oven på den. Intet af Ubuntus eget skrivebord bliver installeret, og intet af det, du ser, nævner grundlaget.

Én ting er bevidst ikke ændret: det udgivelsesnavn, apt ser, er stadig »resolute«, fordi PPA'er og alt, der kalder lsb_release, afhænger af det. Den branding, folk faktisk ser, kommer fra /etc/os-release.

Skærmbillede af MoonLightOS
Logoet står stille, mens lyset omkring det pulserer. To lysringe med cyklusser på 2,6 og 3,1 sekunder glider ind og ud af fase, så gløden aldrig virker mekanisk. Begge bliver genereret ud fra kildegrafikken, når systemet bygges, og det samme logo og den samme lysring går igen i GRUB-menuen, på logindskærmen, i installationsprogrammet, på Om-siden og i Velkommen-rundturen.

Udseendet

Ét panel i bunden, 52 pixel højt. Startknappen og søgefeltet er til venstre, de åbne programmer står i midten med de største ikoner på panelet, og statusområdet er til højre. Menuen viser dit billede, dit navn og om du kan administrere computeren, og søgefeltet i menuen finder programmer, indstillinger, filer og resultater fra nettet.

Skærmbillede af MoonLightOS
Skærmbilledet er taget under en rigtig opstart af det installerede system – det er ikke en mockup.

Tre opsætninger

  • MoonLight

    Ét panel i bunden. Docken rummer også dine favoritprogrammer, så der er ingen ekstra række med genveje.

  • To paneler

    En smal bjælke øverst til uret og statusikonerne og en dock i bunden, der skjuler sig selv.

  • Kompakt

    Én smal bjælke øverst. Den tager mindst plads på skærmen og er det letteste valg på gammel grafikhardware.

Lyst og mørkt

Begge temaer bliver genereret af ét script ud fra én farvepalet og dækker GTK 2, 3 og 4, Cinnamon-skallen og vinduesrammerne. GTK-temaerne importerer Adwaita og farver det om, så nye widgets og rettelser fra GTK selv følger med automatisk. Ikontemaet bygger på Papirus og udskifter kun de ikoner, der kendetegner distributionen. Fremhævningsfarven kan ændres under Skrivebord og dock.

Skift efter tidsplan

Som standard lyst fra 07:00 og mørkt fra 19:00. En lille baggrundstjeneste holder temaet i takt med tidsplanen.

Widgets på skrivebordet

Et stort ur og en måler for processor, hukommelse og disk vises fra starten. En kalender og gule sedler, der gemmes som almindelig tekst, mens du skriver, kan lægges til med et højreklik.

Opstartsanimationen

Logoet står stille, mens lyset omkring det pulserer. To lysringe med cyklusser på 2,6 og 3,1 sekunder glider ind og ud af fase, så gløden aldrig virker mekanisk. Begge bliver genereret ud fra kildegrafikken, når systemet bygges, og det samme logo og den samme lysring går igen i GRUB-menuen, på logindskærmen, i installationsprogrammet, på Om-siden og i Velkommen-rundturen.

Typografi

Inter til brugerfladen, JetBrains Mono til kode og Noto til resten – også til kinesisk, japansk, koreansk og emoji i farver.

Syv tapeter

Fem fotografier med en pingvin, en sø og en halvmåne, plus et genereret par til dag og nat. Udgivelsen starter med »Solnedgang over søen«.

Genveje, du kender i forvejen

Windows og macOS bruger forskellige tastaturgenveje til næsten alt. Fordi de to sæt næsten aldrig støder sammen, understøtter MoonLightOS dem begge: Super-tasten følger Windows-traditionen, og Ctrl-tasten følger Mac-traditionen.

HandlingFra WindowsFra macOS
Åbn menuenSuperSuper
SøgSuper+SpaceSuper+Space
FilhåndteringSuper+E—
Lås skærmenSuper+LCtrl+Super+Q
Vis skrivebordetSuper+DCtrl+Super+D
Læg et vindue i halv skærmSuper+Left / Right—
Maksimér / gendanSuper+Up / Super+DownAlt+F10 / Alt+F5
MinimérSuper+HAlt+F9
Luk et vindueAlt+F4Super+Q
Fuld skærmSuper+FCtrl+Super+F
Skift mellem vinduerAlt+Tab, Super+TabAlt+Tab
Næste vindue i samme programAlt+`Super+`
Alle vinduerSuper+WCtrl+Up
Alle skrivebordeSuper+SCtrl+Down
Skift skrivebordCtrl+Alt+Left / RightCtrl+Left / Right
Flyt et vindue til et andet skrivebordCtrl+Shift+Alt+Left / RightCtrl+Shift+Left / Right
IndstillingerSuper+ISuper+,
SystemovervågningCtrl+Shift+Esc—
Kør en kommandoSuper+R, Alt+F2—
TerminalCtrl+Alt+TCtrl+Alt+T
BrowserSuper+BSuper+B
LommeregnerSuper+CSuper+C
Mixer og equalizerSuper+ASuper+A
Historik i udklipsholderenSuper+VSuper+V
NoterSuper+NSuper+N
Konvertér filerSuper+Shift+CSuper+Shift+C
Skærmbillede af hele skærmenPrintShift+Super+3
Skærmbillede af et udsnitShift+PrintShift+Super+4
Skærmbillede af et vindueAlt+Print—
Panel til skærmbilleder og optagelseCtrl+Shift+PrintShift+Super+5
Log udCtrl+Alt+Delete—

Fører du markøren op i øverste venstre hjørne, åbner vinduesoversigten. Super-tasten alene åbner menuen, og Super+Space åbner den med markøren klar i søgefeltet.

Tre pakkeformater, ét softwarecenter

Både apt, snap og Flatpak er installeret, og GNOME Software viser alle tre: snaps først, så pakker fra Ubuntu-arkivet og til sidst Flathub. En .deb-pakke er altid den letteste løsning, og Flathub dækker resten.

Snap Store er selv en snap, og dens afhængigheder fylder omkring en gigabyte – for meget til en ISO, der er tænkt til computere med 2 GB RAM. Derfor kan softwarecentret vise og installere snaps fra første opstart, mens en tjeneste henter selve Snap Store-programmet, så snart der er en forbindelse.

Indstillingssiden Programmer viser, hvad der er installeret, hvilket af de tre formater hvert program kom fra, og om noget er installeret to gange.

Programmerne på ISO-filen

Valgt, så et almindeligt skrivebord virker fra første opstart – også uden internetforbindelse.

Internet

Firefox (Mozillas egen udgave, med uBlock Origin indlejret som lokal udvidelse, så den også virker uden netforbindelse), Thunderbird, Geary, Transmission

Kontor og dokumenter

LibreOffice Writer, Calc, Impress og Draw; Evince; GNOME Tekstredigering; Xournal++; PDF Arranger; MoonLight PDF; Kalender; Ure; Vejr; Kort; Lommeregner

Medier

VLC; Celluloid; Rhythmbox; GStreamer med libav, »bad«- og »ugly«-pluginsættene og VA-API, så H.264, H.265 og AAC spiller i alle programmer

Grafik og scanning

GIMP; Tegning; Eye of GNOME; MoonLight Export; Simple Scan; Skriftfremviser; Skærmbillede

System

GNOME Software; Systemovervågning; Diske; GParted; Diskforbrug; Timeshift; Redshift; Arkivhåndtering; Seahorse; Blueman; Printere; MoonLight Tweaks

Netværk og VPN

NetworkManager med OpenVPN, OpenConnect (Cisco AnyConnect, GlobalProtect, Fortinet), L2TP, PPTP, SSH og indbygget understøttelse af WireGuard

Udvikling

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

Terminal

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

Windows-kompatibilitet

Wine med 32-bit-understøttelse, winetricks, DXVK (Direct3D 9 til 11) og VKD3D (Direct3D 12)

Hardware og drivere

Firmware

Hele linux-firmware-sættet, mikrokode til Intel og AMD og fwupd til firmwareopdateringer.

Grafik

Mesa med Vulkan, VA-API og VDPAU til Intel og AMD. NVIDIA-driveren ligger på ISO-filen, så den kan slås til fra Drivere-siden, også uden internetforbindelse.

Wi-fi og ethernet

Mere end halvtreds trådløse drivere i kernen, og oven i dem broadcom-sta og r8168, der bygges med DKMS til de chips, standarddriverne klarer dårligt.

Printere og scannere

CUPS med hele driversamlingen, udskrift til PDF, SANE og Simple Scan.

Bluetooth

BlueZ, Blueman og bluetooth-codecs fra PipeWire – og en indstillingsside, der siger klart, når computeren slet ikke har bluetooth.

Lyd

PipeWire med WirePlumber, kompatibilitet med PulseAudio og en indbygget equalizer med ti bånd.

Bærbare

power-profiles-daemon, thermald, batteriprocenten i panelet, tryk-for-klik og naturlig rulning slået til fra starten samt understøttelse af Wacom- og Synaptics-enheder.

Virtuelle maskiner

Gæsteværktøjerne til VirtualBox, QEMU/SPICE og VMware er med, så skærmen tilpasser sig størrelsen, og udklipsholderen deles.

Fingeraftrykslæsere

fprintd, libfprint og TOD-indlæseren er installeret og koblet sammen med PAM. Fingeraftryk finder ud af, hvilken sensor du har, og fører dig gennem registreringen.

Ansigtsoplåsning

Ansigtsoplåsning bygget på OpenCV til logindskærmen, låseskærmen og sudo. Slået fra, indtil du selv tænder for den.

Sikkerhed

Alt herunder er slået til fra starten på et installeret MoonLightOS.

  • Secure Boot

    Firmware → Canonical-shim → signeret GRUB → signeret kerne. Under Indstillinger → Om kan du se, om det er slået til på din computer.

  • Diskkryptering

    LUKS2-kryptering af hele disken er ét flueben i installationsprogrammet.

  • Firewall

    ufw er slået til: indgående forbindelser blokeres, udgående slipper igennem.

  • AppArmor

    Håndhævende tilstand – også for snaps.

  • Automatiske sikkerhedsopdateringer

    Hver dag fra Ubuntus sikkerhedsarkiv og packages.mozilla.org. Ubrugte kerner og afhængigheder bliver ryddet væk, og computeren genstarter aldrig af sig selv.

  • Låst root-konto og sporbar sudo

    Den første brugerkonto administrerer computeren gennem sudo. Der bliver aldrig sat en root-adgangskode.

  • Krav til adgangskoder og spærretid

    Mindst otte tegn fra to tegnklasser. Efter otte forkerte forsøg bliver kontoen spærret i et kvarter.

  • Hærdet kerne

    Kernen er sat op til at begrænse, hvad programmer uden rettigheder kan få at vide om systemet og om hinanden: kernepegere og opstartsbeskeder er skjult, fejlsøgning af andre processer er spærret, og det er slået fra at indlæse en erstatningskerne under drift. Netværksdelen er hærdet mod forfalskede ruter og strømme af forbindelser, og IPv6-adresser skiftes løbende.

  • Mindre angrebsflade

    FireWire og en række sjældent nødvendige moduler til filsystemer og netværksprotokoller kan ikke indlæses automatisk, så en enhed, der sættes til, eller en pakke, der kommer ind, ikke kan hente kode, som denne computer aldrig bruger.

  • Nyt ved første opstart

    Maskin-id'et og SSH-værtsnøglerne bliver dannet på den installerede computer. En værtsnøgle, som alle installationer delte, ville gøre værtskontrollen meningsløs.

  • Ingen telemetri

    Tjenesterne til fejlrapporter og brugsstatistik findes ikke på aftrykket. Telemetri, undersøgelser, Pocket og sponsoreret indhold i Firefox er slået fra via politik, og sporingsbeskyttelsen er slået til.

  • USB-beskyttelse

    USBGuard er installeret, så en enhed, der sættes i, mens skærmen er låst, ikke bliver stolet på. Slået fra som standard – én knap på Sikkerhed-siden tænder for den.

  • Nødadgangskode

    En ekstra adgangskode, der gør noget andet end at lukke dig ind. I sletningstilstand ødelægger den diskens LUKS-nøgler og slukker computeren; i vildsporstilstand åbner den en tom session og låser den fast efter fem minutter. Slået fra som standard. Du skal bruge din rigtige adgangskode for at sætte den op, og de to må aldrig være de samme.

  • Adgangskode til opstartsmenuen

    Tilbydes på Sikkerhed-siden, fordi enhver, der kan genstarte computeren, ellers kunne rette i opstartsmenuen og starte en root-skal.

  • Tydelige godkendelsesbeskeder

    Hver MoonLight-hjælper har sin egen navngivne polkit-handling, så det altid står klart, hvad du siger ja til, når du bliver bedt om din adgangskode.

Skærmbillede af MoonLightOS
Skærmbilledet er taget under en rigtig opstart af det installerede system – det er ikke en mockup.

På computere med lidt hukommelse

Komprimeret hukommelse (zram)Halvdelen af RAM, højst 8 GB, zstd-komprimering, prioritet 100. Omkring 3:1 på hukommelsessider fra et skrivebord.
Indstilling af swapKernens standard på 60 går ud fra, at swap betyder et diskopslag. Med zram betyder det en kopiering i hukommelsen.
Beskyttelse mod manglende hukommelseGriber ind ved 4 % fri hukommelse og sender SIGKILL ved 2 %. Stopper aldrig Cinnamon, Xorg, LightDM eller Nemo; tager Firefox, Thunderbird, Code, LibreOffice og compilere først.
Ingen indekseringIngen tracker og ingen baggrundsskanning af disken.
Automatisk grafiktilpasningVed logind ser systemet på, hvilken OpenGL-renderer der er i brug. Er det llvmpipe eller en anden softwarerenderer, bliver animationerne slået fra. Vælger du selv noget senere, bliver det aldrig overskrevet.
GRUBBeder om en beskeden grafiktilstand og har flere reserveløsninger, så menuen stadig kommer frem i en virtuel maskine med lidt videohukommelse.
SquashfsKomprimeret med zstd, så live-sessionen indlæses hurtigt fra en USB-nøgle.

Sprog

Førstegangsopsætningen viser engelsk (USA og Storbritannien), italiensk, fransk, tysk, spansk, brasiliansk portugisisk, nederlandsk, polsk og russisk på en kort liste, og alle andre sprog ligger under »Flere sprog«. Tastaturlayoutet følger det sprog, du vælger, så næste trin oftest kun kræver et klik på Næste.

Alle MoonTools, i alt 774 tekster, er oversat til de otte sprog ud over engelsk, og bygningen fejler, hvis et program indeholder en synlig tekst, der ikke er oversat. Den italienske sprogpakke og LibreOffice-ordbøgerne ligger på ISO-filen, så en installation i Italien er oversat hele vejen igennem, også uden netforbindelse; andre sprogpakker kan hentes med ét klik.

Kommandolinjeværktøjerne er bevidst på engelsk: deres output bliver læst sammen med dokumentationen og klistret ind i fejlrapporter, og det er nemmere, når det hele er på ét sprog.

Skærmbillede af MoonLightOS

Beslutninger, det er værd at kende

  • GTK-temaerne importerer Adwaita og farver det om.

    Et tema, der er skrevet i hånden, går i stykker, hver gang GTK får en ny widget. Det her arver rettelserne fra GTK selv.

  • Cinnamons systeminfo-side er omdirigeret, ikke slettet.

    En opdatering af Cinnamon kan ikke i al stilhed sætte den tilbage ved siden af vores, og fjerner man MoonLightOS-pakkerne, kommer den pænt tilbage.

  • Squashfs beholder sin egen kopi af kernen.

    Det er den samme squashfs, installationsprogrammet kopierer over på disken. Fjernede man /boot fra den, ville man installere et system, der ikke kan starte.

  • Opstartstemaet hedder moonlightos, ikke moonlight.

    Debians pakke desktop-base har allerede et Plymouth-tema, der hedder moonlight, og en opdatering ville erstatte animationen i al stilhed.

  • uBlock Origin ligger på ISO-filen i stedet for at blive hentet.

    En politik, der peger på addons.mozilla.org, installerer kun udvidelsen den første gang, Firefox kører med en forbindelse, der virker. Udvidelsen er med på ISO-filen, og du kan stadig fjerne den.

  • Docker Engine frem for Docker Desktop.

    På Linux kører Docker Desktop selve motoren inde i sin egen virtuelle maskine, og det betyder en kerne mere og et hukommelsesbudget mere på en bærbar.

  • De tunge udviklingsmiljøer er valgfrie.

    Virtuelle maskiner, PHP med databaser og LaTeX er ét klik væk i Velkommen, i stedet for at hver installation skal slæbe en gigabyte rundt.