MoonLightOS

La base d'Ubuntu, sans le bureau d'Ubuntu

Aucune base Linux n'offre un dépôt de paquets aussi vaste ni une prise en charge matérielle aussi large que celle d'Ubuntu. Le paquet linux-firmware couvre à lui seul la grande majorité du matériel Wi-Fi, Bluetooth, graphique et des jeux de puces en circulation, et ubuntu-drivers-common gère correctement les cartes NVIDIA. Secure Boot fonctionne sans configuration, parce que le shim et le GRUB signés par Canonical sont dans le dépôt et que le noyau est signé. La base bénéficie en outre de douze ans de maintenance de sécurité.

Le bureau d'Ubuntu, en revanche, méritait d'être remplacé : il est lourd, et il n'a ni bouton Démarrer, ni icônes sur le bureau, ni barre des tâches. Cinnamon a les trois. MoonLightOS part donc d'une base minimale et construit son bureau par-dessus. Rien du bureau d'Ubuntu n'est installé, et rien de ce que voit l'utilisateur ne mentionne la base.

Un détail reste volontairement intact : le nom de code que voit apt demeure « resolute », parce que les PPA et tout ce qui appelle lsb_release en dépendent. L'identité visible, elle, vient de /etc/os-release.

Capture d'écran de MoonLightOS
Le logo reste immobile pendant que la lumière autour de lui palpite. Deux images de halo, aux cycles de 2,6 et 3,1 secondes, se décalent peu à peu l'une de l'autre, si bien que la lueur ne paraît jamais mécanique. Les deux images sont produites à la construction depuis les visuels sources. On retrouve ce logo et ce halo sur le menu GRUB, l'écran d'ouverture de session, le programme d'installation, la page À propos et la visite guidée de Bienvenue.

L'apparence

Un seul tableau de bord en bas, haut de 52 pixels. À gauche, le bouton Démarrer et le champ de recherche ; au centre, les applications ouvertes, avec les plus grandes icônes du tableau de bord ; à droite, la zone d'état. Le menu affiche votre photo, votre nom et vos droits d'administration sur l'ordinateur, et son champ de recherche trouve applications, paramètres, fichiers et résultats Web.

Capture d'écran de MoonLightOS
Capture faite sur un vrai démarrage du système installé, pas sur une maquette.

Trois dispositions

  • MoonLight

    Un seul tableau de bord en bas. Le dock accueille aussi vos applications favorites : pas de deuxième rangée de lanceurs.

  • Deux tableaux de bord

    Une barre fine en haut pour l'horloge et les icônes d'état, et en bas un dock qui se masque tout seul.

  • Compact

    Une seule barre fine en haut. C'est la disposition la plus économe en écran et la plus légère sur une carte graphique ancienne.

Clair et sombre

Les deux thèmes sortent d'un même script et d'une même palette, et couvrent GTK 2, 3 et 4, l'interface de Cinnamon et les bordures de fenêtres. Les thèmes GTK importent Adwaita et en changent les couleurs : les nouveaux composants et les correctifs amont arrivent donc d'eux-mêmes. Le thème d'icônes repose sur Papirus et ne remplace que les icônes propres à la distribution. La couleur d'accentuation se change dans Bureau et dock.

Changement programmé

Par défaut, le thème clair à partir de 7 h et le thème sombre à partir de 19 h. Un petit service d'arrière-plan veille à ce que le thème suive l'horaire.

Gadgets de bureau

Une grande horloge et un moniteur de processeur, de mémoire et de disque sont affichés par défaut. Un calendrier et des pense-bêtes, enregistrés en texte brut au fil de la frappe, s'ajoutent d'un clic droit.

L'animation de démarrage

Le logo reste immobile pendant que la lumière autour de lui palpite. Deux images de halo, aux cycles de 2,6 et 3,1 secondes, se décalent peu à peu l'une de l'autre, si bien que la lueur ne paraît jamais mécanique. Les deux images sont produites à la construction depuis les visuels sources. On retrouve ce logo et ce halo sur le menu GRUB, l'écran d'ouverture de session, le programme d'installation, la page À propos et la visite guidée de Bienvenue.

Typographie

Inter pour l'interface, JetBrains Mono pour le code et Noto pour tout le reste, chinois, japonais, coréen et émojis en couleur compris.

Sept fonds d'écran

Cinq photographies avec un pingouin, un lac et un croissant de lune, plus une paire jour et nuit générée. À la sortie de cette version, le bureau s'ouvre sur « Coucher de soleil sur le lac ».

Des raccourcis que vous connaissez déjà

Windows et macOS emploient des raccourcis clavier différents pour à peu près tout. Comme ces deux jeux de raccourcis n'entrent presque jamais en conflit, MoonLightOS reconnaît les uns et les autres : la touche Super suit les conventions de Windows, la touche Contrôle celles du Mac.

ActionDepuis WindowsDepuis macOS
Ouvrir le menuSuperSuper
RechercherSuper+EspaceSuper+Espace
Gestionnaire de fichiersSuper+E—
Verrouiller l'écranSuper+LCtrl+Super+Q
Afficher le bureauSuper+DCtrl+Super+D
Ancrer une fenêtre sur une moitié d'écranSuper+Gauche / Droite—
Agrandir ou restaurerSuper+Haut / Super+BasAlt+F10 / Alt+F5
RéduireSuper+HAlt+F9
Fermer la fenêtreAlt+F4Super+Q
Plein écranSuper+FCtrl+Super+F
Passer d'une fenêtre à l'autreAlt+Tab, Super+TabAlt+Tab
Fenêtre suivante de la même applicationAlt+`Super+`
Toutes les fenêtresSuper+WCtrl+Haut
Tous les bureauxSuper+SCtrl+Bas
Changer de bureauCtrl+Alt+Gauche / DroiteCtrl+Gauche / Droite
Envoyer la fenêtre sur un autre bureauCtrl+Maj+Alt+Gauche / DroiteCtrl+Maj+Gauche / Droite
ParamètresSuper+ISuper+,
Moniteur systèmeCtrl+Maj+Échap—
Exécuter une commandeSuper+R, Alt+F2—
TerminalCtrl+Alt+TCtrl+Alt+T
NavigateurSuper+BSuper+B
CalculatriceSuper+CSuper+C
Mixeur et égaliseurSuper+ASuper+A
Historique du presse-papiersSuper+VSuper+V
NotesSuper+NSuper+N
Convertir des fichiersSuper+Maj+CSuper+Maj+C
Capture de tout l'écranImpr écranMaj+Super+3
Capture d'une zoneMaj+Impr écranMaj+Super+4
Capture d'une fenêtreAlt+Impr écran—
Panneau de capture et d'enregistrementCtrl+Maj+Impr écranMaj+Super+5
Fermer la sessionCtrl+Alt+Suppr—

Amener le pointeur dans le coin supérieur gauche ouvre la vue d'ensemble des fenêtres. La touche Super seule ouvre le menu, et Super+Espace l'ouvre avec le curseur déjà dans le champ de recherche.

Trois formats de paquets, une seule logithèque

apt, snap et Flatpak sont tous installés, et GNOME Logiciels présente les trois : les snaps d'abord, puis les paquets du dépôt Ubuntu, puis Flathub. Un paquet .deb reste l'option la plus légère, et Flathub couvre tout le reste.

L'application Snap Store est elle-même un snap dont les dépendances pèsent près d'un gigaoctet : beaucoup trop pour une image destinée à des ordinateurs de 2 Go de RAM. La logithèque sait donc lister et installer des snaps dès le premier démarrage, et un service télécharge l'application Snap Store elle-même dès qu'une connexion se présente.

La page de paramètres Applications montre ce qui est installé, de quel format vient chaque application et si quelque chose est installé deux fois.

Les applications présentes sur l'image

Choisies pour qu'un bureau polyvalent soit opérationnel dès le premier démarrage, même sans connexion Internet.

Internet

Firefox (la version compilée par Mozilla, avec uBlock Origin fourni comme extension locale, donc disponible même hors connexion), Thunderbird, Geary, Transmission

Bureautique et documents

LibreOffice Writer, Calc, Impress et Draw ; Evince ; Éditeur de texte de GNOME ; Xournal++ ; PDF Arranger ; MoonLight PDF ; Agenda ; Horloges ; Météo ; Cartes ; Calculatrice

Multimédia

VLC ; Celluloid ; Rhythmbox ; GStreamer avec libav, les jeux de greffons « bad » et « ugly » et VA-API, pour que H.264, H.265 et AAC se lisent dans toutes les applications

Graphisme et numérisation

GIMP ; Dessin ; Eye of GNOME ; MoonLight Export ; Simple Scan ; Visionneuse de polices ; Capture d'écran

Système

GNOME Logiciels ; Moniteur système ; Disques ; GParted ; Analyseur d'utilisation des disques ; Timeshift ; Redshift ; File Roller ; Seahorse ; Blueman ; Imprimantes ; MoonLight Tweaks

Réseau et VPN

NetworkManager avec OpenVPN, OpenConnect (Cisco AnyConnect, GlobalProtect, Fortinet), L2TP, PPTP, SSH et la prise en charge native de WireGuard

Développement

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

Terminal

GNOME Terminal ; bash, zsh et 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é Windows

Wine avec la prise en charge 32 bits, winetricks, DXVK (Direct3D 9 à 11) et VKD3D (Direct3D 12)

Matériel et pilotes

Micrologiciels

Le jeu linux-firmware complet, les microcodes Intel et AMD, et fwupd pour les mises à jour de micrologiciel.

Carte graphique

Mesa avec Vulkan, VA-API et VDPAU pour Intel et AMD. Le pilote NVIDIA se trouve sur l'ISO : il s'active depuis la page Pilotes même sans connexion Internet.

Wi-Fi et Ethernet

Plus de cinquante pilotes sans fil dans le noyau, auxquels s'ajoutent les pilotes broadcom-sta et r8168 compilés avec DKMS, pour les puces que les pilotes standards gèrent mal.

Imprimantes et scanners

CUPS avec le jeu de pilotes complet, l'impression vers PDF, SANE et Simple Scan.

Bluetooth

BlueZ, Blueman et les codecs Bluetooth de PipeWire, avec une page de paramètres qui dit clairement quand l'ordinateur n'a pas de matériel Bluetooth.

Audio

PipeWire avec WirePlumber, la compatibilité PulseAudio et un égaliseur à dix bandes intégré.

Ordinateurs portables

power-profiles-daemon, thermald, le pourcentage de batterie dans le tableau de bord, le clic par tapotement et le défilement naturel actifs par défaut, la prise en charge des périphériques Wacom et Synaptics.

Machines virtuelles

Les outils invité pour VirtualBox, QEMU/SPICE et VMware sont inclus : l'affichage se redimensionne et le presse-papiers est partagé.

Lecteurs d'empreinte digitale

fprintd, libfprint et le chargeur TOD sont installés et intégrés à PAM. Empreinte digitale reconnaît le capteur et vous guide pendant l'enregistrement.

Déverrouillage par le visage

Un déverrouillage par le visage fondé sur OpenCV, pour l'écran d'ouverture de session, l'écran verrouillé et sudo. Inactif tant que vous ne l'activez pas.

Sécurité

Tout ce qui suit est actif par défaut sur un MoonLightOS installé.

  • Secure Boot

    Micrologiciel → shim de Canonical → GRUB signé → noyau signé. Paramètres → À propos indique s'il est actif sur votre ordinateur.

  • Chiffrement du disque

    Le chiffrement intégral LUKS2 tient dans une case à cocher du programme d'installation.

  • Pare-feu

    ufw est actif : les connexions entrantes sont bloquées, les sortantes autorisées.

  • AppArmor

    En mode strict, y compris pour les snaps.

  • Mises à jour de sécurité automatiques

    Depuis le dépôt de sécurité d'Ubuntu et depuis packages.mozilla.org, chaque jour. Les noyaux et les dépendances inutilisés sont supprimés, et l'ordinateur ne redémarre jamais de lui-même.

  • Compte root verrouillé, sudo traçable

    Le premier compte créé administre l'ordinateur au travers de sudo. Aucun mot de passe root n'est jamais défini.

  • Qualité des mots de passe et blocage

    Huit caractères au minimum, puisés dans deux catégories. Au bout de huit tentatives erronées, le compte est bloqué quinze minutes.

  • Durcissement du noyau

    Le noyau est configuré pour limiter ce que les programmes sans privilèges peuvent apprendre du système et les uns des autres : les pointeurs du noyau et les messages de démarrage sont masqués, le débogage d'un autre processus est bloqué et le chargement d'un noyau de remplacement en cours d'exécution est désactivé. La pile réseau est renforcée contre les routes falsifiées et les vagues de connexions, et les adresses IPv6 sont renouvelées.

  • Surface d'attaque réduite

    FireWire et une série de modules de systèmes de fichiers et de protocoles réseau rarement utiles ne peuvent pas être chargés automatiquement : un périphérique branché ou un paquet reçu ne peut donc pas faire entrer en mémoire du code que cet ordinateur n'utilise jamais.

  • Unique dès le premier démarrage

    L'identifiant de la machine et les clés d'hôte SSH naissent sur l'ordinateur installé. Une clé d'hôte commune à toutes les installations ôterait tout sens à la vérification de l'hôte.

  • Aucune télémétrie

    Les services de rapport d'erreurs et de statistiques d'usage ne figurent pas dans l'image. La télémétrie de Firefox, les études, Pocket et les contenus sponsorisés sont désactivés par stratégie, et la protection contre le pistage est active.

  • Protection USB

    USBGuard est installé : un périphérique branché pendant que l'écran est verrouillé n'est pas considéré comme fiable. Inactif par défaut ; un bouton de la page Sécurité suffit à l'activer.

  • Mot de passe d'urgence

    Un second mot de passe qui fait tout autre chose que vous connecter. Le mode effacement détruit les clés LUKS du disque et éteint l'ordinateur ; le mode leurre ouvre une session vide et la fige au bout de cinq minutes. Inactif par défaut, il réclame votre vrai mot de passe pour être configuré et ne peut pas être identique à celui-ci.

  • Mot de passe du menu de démarrage

    Proposé sur la page Sécurité, car quiconque peut redémarrer l'ordinateur pourrait sans cela modifier le menu de démarrage et ouvrir un shell root.

  • Des demandes d'authentification explicites

    Chaque utilitaire MoonLight possède une action polkit nommée : la demande de mot de passe dit donc à quoi vous consentez.

Capture d'écran de MoonLightOS
Capture faite sur un vrai démarrage du système installé, pas sur une maquette.

Tourner sur un ordinateur peu doté en mémoire

Mémoire compressée (zram)La moitié de la RAM, jusqu'à 8 Go, compression zstd, priorité 100. Environ 3:1 sur les pages mémoire d'un bureau.
Réglage de l'échangeLa valeur par défaut du noyau, 60, suppose qu'échanger veut dire accéder au disque. Avec zram, il s'agit d'une copie en mémoire.
Protection contre le manque de mémoireAgit à 4 % de mémoire libre et envoie SIGKILL à 2 %. N'arrête jamais Cinnamon, Xorg, LightDM ni Nemo ; arrête d'abord Firefox, Thunderbird, Code, LibreOffice et les compilateurs.
Aucun indexeurPas de tracker, aucune analyse du disque en arrière-plan.
Réglage graphique automatiqueÀ l'ouverture de session, le système regarde le moteur de rendu OpenGL. S'il s'agit de llvmpipe ou d'un autre moteur logiciel, les animations sont désactivées. Un choix que vous faites ensuite n'est jamais écrasé.
GRUBDemande un mode graphique modeste, avec des solutions de repli, pour que le menu apparaisse même dans une machine virtuelle dotée de peu de mémoire vidéo.
SquashfsComprimé en zstd, pour que la session live se charge vite depuis une clé USB.

Langues

L'assistant de premier démarrage propose dans une courte liste l'anglais (États-Unis et Royaume-Uni), l'italien, le français, l'allemand, l'espagnol, le portugais du Brésil, le néerlandais, le polonais et le russe, et toutes les autres locales sous « Plus de langues ». La disposition du clavier suit la langue retenue : la deuxième étape se résume donc le plus souvent à cliquer sur Suivant.

Tous les MoonTools, soit 774 chaînes, sont traduits dans ces huit langues en plus de l'anglais, et la construction échoue si un programme contient une chaîne visible non traduite. Le pack de langue italien et les dictionnaires LibreOffice sont présents sur l'image, si bien qu'une installation hors connexion en Italie est entièrement localisée ; les autres packs de langue se téléchargent d'un clic.

Les outils en ligne de commande restent volontairement en anglais : leur sortie se lit à côté de la documentation et se colle dans des rapports de bogue, ce qui est plus simple dans une seule langue.

Capture d'écran de MoonLightOS

Quelques choix techniques et leurs raisons

  • Les thèmes GTK importent Adwaita et le recolorent.

    Un thème écrit à la main casse à chaque nouveau composant GTK. Celui-ci hérite des correctifs amont.

  • La page Informations système de Cinnamon est détournée, pas supprimée.

    Ainsi, une mise à jour de Cinnamon ne peut pas la rétablir en silence à côté de la nôtre, et la désinstallation des paquets MoonLightOS la ramènerait proprement.

  • Le squashfs garde sa propre copie du noyau.

    C'est ce même squashfs que le programme d'installation copie sur le disque. En lui retirant /boot, on installerait un système incapable de démarrer.

  • Le thème de démarrage s'appelle moonlightos, pas moonlight.

    Le paquet desktop-base de Debian fournit déjà un thème Plymouth nommé moonlight, et une mise à jour remplacerait l'animation sans prévenir.

  • uBlock Origin est fourni, pas téléchargé.

    Une stratégie qui pointe vers addons.mozilla.org n'installe l'extension qu'au premier lancement de Firefox avec une connexion qui fonctionne. L'extension est donc dans l'image, et vous pouvez toujours la retirer.

  • Docker Engine plutôt que Docker Desktop.

    Sous Linux, Docker Desktop fait tourner le moteur dans sa propre machine virtuelle : cela fait un deuxième noyau et un deuxième budget mémoire sur un portable.

  • Les environnements de développement lourds restent facultatifs.

    Machines virtuelles, PHP avec bases de données et LaTeX s'installent d'un clic depuis Bienvenue, plutôt que de peser un gigaoctet sur chaque installation.