MoonLightOS

La base de Ubuntu, sin el escritorio de Ubuntu

Ubuntu tiene el repositorio de paquetes más amplio y la compatibilidad con hardware más extensa de todas las bases Linux. Solo el paquete linux-firmware cubre la gran mayoría del hardware de wifi, Bluetooth, GPU y chipset que hay en uso, y ubuntu-drivers-common se ocupa como es debido de las tarjetas NVIDIA. El Arranque seguro funciona sin tocar nada, porque el shim y el GRUB firmados por Canonical están en el repositorio y el núcleo viene firmado. La base recibe además doce años de mantenimiento de seguridad.

El escritorio de Ubuntu era justo la pieza que merecía la pena sustituir: pesa mucho y no tiene botón de inicio, ni iconos en el escritorio, ni barra de tareas. Cinnamon tiene las tres cosas. Por eso MoonLightOS parte de una base mínima y levanta el escritorio sobre ella. Del escritorio propio de Ubuntu no se instala nada, y nada de lo que ve el usuario menciona la base.

Hay algo que se deja igual a propósito: el nombre de versión que ve apt sigue siendo «resolute», porque de él dependen los PPA y todo lo que consulta lsb_release. La identidad que la gente ve de verdad sale de /etc/os-release.

Captura de pantalla de MoonLightOS
El logotipo se queda quieto mientras late la luz que lo rodea. Dos imágenes de halo con ciclos de 2,6 y 3,1 segundos se van desfasando, así que el resplandor nunca parece mecánico. Las dos se generan durante la compilación a partir del material gráfico de origen, y el mismo logotipo y el mismo halo aparecen en el menú de GRUB, en la pantalla de inicio de sesión, en el instalador, en la página Acerca de y en el recorrido de Bienvenida.

El aspecto

Un solo panel abajo, de 52 píxeles de alto. A la izquierda, el botón de Inicio y el cuadro de búsqueda; en el centro, las aplicaciones abiertas, con los iconos más grandes del panel; a la derecha, el área de estado. El menú muestra su foto, su nombre y si puede administrar el equipo, y su cuadro de búsqueda encuentra aplicaciones, opciones de configuración, archivos y resultados de la web.

Captura de pantalla de MoonLightOS
Captura hecha en un arranque real de la imagen instalada; no es una maqueta.

Tres disposiciones

  • MoonLight

    Un solo panel abajo. El dock recoge también sus aplicaciones favoritas, así que no hace falta una segunda fila de lanzadores.

  • Dos paneles

    Una barra estrecha arriba para el reloj y los iconos de estado, y abajo un dock que se oculta solo.

  • Compacta

    Una única barra estrecha en la parte superior. Es la que menos pantalla ocupa y la más ligera en equipos con gráficos antiguos.

Claro y oscuro

Un único script genera los dos temas a partir de una sola paleta de colores y cubre GTK 2, 3 y 4, el shell de Cinnamon y los bordes de las ventanas. Los temas GTK importan Adwaita y le cambian los colores, así que los widgets nuevos y las correcciones del proyecto original llegan por su cuenta. El tema de iconos parte de Papirus y solo sustituye los iconos que identifican a la distribución. El color de acento se cambia en Escritorio y dock.

Cambio por horario

De serie, claro a partir de las 7:00 y oscuro a partir de las 19:00. Un pequeño servicio en segundo plano se encarga de que el tema siga ese horario.

Widgets de escritorio

De serie se muestran un reloj grande y un monitor de procesador, memoria y disco. Con el botón derecho se añaden un calendario y notas adhesivas, que se guardan como texto plano mientras escribe.

La animación de arranque

El logotipo se queda quieto mientras late la luz que lo rodea. Dos imágenes de halo con ciclos de 2,6 y 3,1 segundos se van desfasando, así que el resplandor nunca parece mecánico. Las dos se generan durante la compilación a partir del material gráfico de origen, y el mismo logotipo y el mismo halo aparecen en el menú de GRUB, en la pantalla de inicio de sesión, en el instalador, en la página Acerca de y en el recorrido de Bienvenida.

Tipografía

Inter para la interfaz, JetBrains Mono para el código y Noto para todo lo demás, incluidos el chino, el japonés, el coreano y los emoji en color.

Siete fondos de escritorio

Cinco escenas fotográficas con un pingüino, un lago y una luna en cuarto creciente, más una pareja de fondos generados, uno de día y otro de noche. La distribución se entrega con «Atardecer sobre el lago» puesto.

Los atajos que ya conoce

Windows y macOS usan atajos de teclado distintos para casi todo. Como los dos conjuntos apenas chocan entre sí, MoonLightOS admite los dos: la tecla Super sigue las convenciones de Windows y la tecla Control, las de Mac.

AcciónSi viene de WindowsSi viene de macOS
Abrir el menúSuperSuper
BuscarSuper+EspacioSuper+Espacio
Gestor de archivosSuper+E—
Bloquear la pantallaSuper+LCtrl+Super+Q
Mostrar el escritorioSuper+DCtrl+Super+D
Ajustar una ventana a media pantallaSuper+Izquierda / Derecha—
Maximizar o restaurarSuper+Arriba / Super+AbajoAlt+F10 / Alt+F5
MinimizarSuper+HAlt+F9
Cerrar la ventanaAlt+F4Super+Q
Pantalla completaSuper+FCtrl+Super+F
Pasar de una ventana a otraAlt+Tab, Super+TabAlt+Tab
Siguiente ventana de la misma aplicaciónAlt+`Super+`
Todas las ventanasSuper+WCtrl+Arriba
Todos los escritoriosSuper+SCtrl+Abajo
Cambiar de escritorioCtrl+Alt+Izquierda / DerechaCtrl+Izquierda / Derecha
Mover una ventana a otro escritorioCtrl+Mayús+Alt+Izquierda / DerechaCtrl+Mayús+Izquierda / Derecha
ConfiguraciónSuper+ISuper+,
Monitor del sistemaCtrl+Mayús+Esc—
Ejecutar un comandoSuper+R, Alt+F2—
TerminalCtrl+Alt+TCtrl+Alt+T
NavegadorSuper+BSuper+B
CalculadoraSuper+CSuper+C
Mezclador y ecualizador de sonidoSuper+ASuper+A
Historial del portapapelesSuper+VSuper+V
NotasSuper+NSuper+N
Convertir archivosSuper+Mayús+CSuper+Mayús+C
Captura de toda la pantallaImpr PantMayús+Super+3
Captura de una zonaMayús+Impr PantMayús+Super+4
Captura de una ventanaAlt+Impr Pant—
Panel de captura y grabaciónCtrl+Mayús+Impr PantMayús+Super+5
Cerrar la sesiónCtrl+Alt+Supr—

Si lleva el puntero a la esquina superior izquierda, se abre la vista general de ventanas. La tecla Super sola abre el menú, y Super+Espacio lo abre con el cursor ya puesto en el cuadro de búsqueda.

Tres formatos de paquete, una sola tienda

apt, snap y Flatpak están los tres instalados, y GNOME Software los lista juntos: primero los snaps, después los paquetes del repositorio de Ubuntu y luego Flathub. Un paquete .deb es siempre la opción más ligera, y Flathub cubre todo lo demás.

La aplicación Snap Store es a su vez un snap cuyas dependencias rondan el gigabyte: demasiado para una imagen pensada para equipos con 2 GB de RAM. Por eso la tienda puede mostrar e instalar snaps desde el primer arranque, y un servicio descarga la propia aplicación Snap Store en cuanto hay conexión.

La página de configuración Aplicaciones muestra qué hay instalado, de cuál de los tres formatos viene cada aplicación y si algo está instalado dos veces.

Las aplicaciones de la imagen

Elegidas para que un escritorio de uso general funcione desde el primer arranque, incluso sin conexión a internet.

Internet

Firefox (la compilación de Mozilla, con uBlock Origin incluido como extensión local, así que está disponible aunque no haya conexión), Thunderbird, Geary, Transmission

Ofimática y documentos

LibreOffice Writer, Calc, Impress y Draw; Evince; Editor de textos de GNOME; Xournal++; PDF Arranger; MoonLight PDF; Calendario; Relojes; Meteorología; Mapas; Calculadora

Multimedia

VLC; Celluloid; Rhythmbox; GStreamer con libav, los conjuntos de complementos «bad» y «ugly» y VA-API, para que H.264, H.265 y AAC se reproduzcan en cualquier aplicación

Gráficos y escaneo

GIMP; Dibujos; Eye of GNOME; MoonLight Export; Escáner simple; Visor de tipografías; Captura de pantalla

Sistema

GNOME Software; Monitor del sistema; Discos; GParted; Analizador de uso de disco; Timeshift; Redshift; Gestor de archivadores; Seahorse; Blueman; Impresoras; MoonLight Tweaks

Redes y VPN

NetworkManager con OpenVPN, OpenConnect (Cisco AnyConnect, GlobalProtect, Fortinet), L2TP, PPTP, SSH y compatibilidad nativa con WireGuard

Desarrollo

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

Terminal

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

Compatibilidad con Windows

Wine con compatibilidad de 32 bits, winetricks, DXVK (de Direct3D 9 a 11) y VKD3D (Direct3D 12)

Hardware y controladores

Firmware

El conjunto completo de linux-firmware, el microcódigo de Intel y AMD, y fwupd para las actualizaciones de firmware.

Gráficos

Mesa con Vulkan, VA-API y VDPAU para Intel y AMD. El controlador de NVIDIA viaja en la ISO, así que se activa desde la página Controladores aunque no haya conexión a internet.

Wifi y Ethernet

Más de cincuenta controladores inalámbricos en el núcleo, además de broadcom-sta y r8168 compilados con DKMS para los chips que los controladores estándar llevan mal.

Impresoras y escáneres

CUPS con el juego completo de controladores, impresión a PDF, SANE y Escáner simple.

Bluetooth

BlueZ, Blueman y los códecs Bluetooth de PipeWire, con una página de configuración que avisa con claridad cuando el equipo no tiene hardware Bluetooth.

Sonido

PipeWire con WirePlumber, compatibilidad con PulseAudio y un ecualizador de diez bandas integrado.

Portátiles

power-profiles-daemon, thermald, el porcentaje de batería en el panel, toque para hacer clic y desplazamiento natural activados de serie, y compatibilidad con los dispositivos de entrada Wacom y Synaptics.

Máquinas virtuales

Se incluyen las herramientas de invitado de VirtualBox, QEMU/SPICE y VMware, de modo que la pantalla se adapta de tamaño y el portapapeles se comparte.

Lectores de huella

fprintd, libfprint y el cargador TOD vienen instalados e integrados con PAM. Huella dactilar identifica el sensor y le acompaña durante el registro.

Desbloqueo facial

Reconocimiento de cara basado en OpenCV para la pantalla de inicio de sesión, la pantalla de bloqueo y sudo. Permanece desactivado hasta que usted lo active.

Seguridad

Todo lo que sigue viene activado de serie en un MoonLightOS instalado.

  • Arranque seguro

    Firmware → shim de Canonical → GRUB firmado → núcleo firmado. En Configuración → Acerca de se ve si está activado en su equipo.

  • Cifrado del disco

    El cifrado LUKS2 de todo el disco se reduce a una casilla del instalador.

  • Cortafuegos

    ufw está activado: se bloquean las conexiones entrantes y se permiten las salientes.

  • AppArmor

    En modo de obligado cumplimiento, también para los snaps.

  • Actualizaciones de seguridad automáticas

    A diario, desde el repositorio de seguridad de Ubuntu y desde packages.mozilla.org. Se retiran los núcleos y las dependencias que ya no se usan, y el equipo nunca se reinicia por su cuenta.

  • Root bloqueado y sudo con nombre y apellidos

    La primera cuenta de usuario administra el equipo a través de sudo. Nunca se establece una contraseña de root.

  • Calidad de las contraseñas y bloqueo por intentos

    Ocho caracteres como mínimo, de dos clases distintas. A los ocho intentos fallidos, la cuenta queda bloqueada quince minutos.

  • Refuerzo del núcleo

    El núcleo está configurado para limitar lo que los programas sin privilegios pueden averiguar del sistema y unos de otros: los punteros del núcleo y los mensajes de arranque quedan ocultos, se bloquea la depuración de otro proceso y se desactiva la carga de un núcleo de reemplazo con el sistema en marcha. La pila de red se refuerza frente a rutas falsificadas y avalanchas de conexiones, y las direcciones IPv6 se renuevan.

  • Menos superficie de ataque

    FireWire y una serie de módulos de sistemas de archivos y protocolos de red que rara vez hacen falta no pueden cargarse automáticamente, así que un dispositivo que se conecte o un paquete que llegue no puede traer consigo código que este equipo nunca utiliza.

  • Único desde el primer arranque

    El identificador de la máquina y las claves de host de SSH se generan en el equipo ya instalado. Una clave de host compartida por todas las instalaciones dejaría sin sentido la verificación del servidor.

  • Sin telemetría

    Los servicios de informe de errores y de estadísticas de uso no están en la imagen. La telemetría de Firefox, los estudios, Pocket y el contenido patrocinado están desactivados por directiva, y la protección contra el rastreo está activada.

  • Protección de los puertos USB

    USBGuard viene instalado, así que un dispositivo que se conecte con la pantalla bloqueada no se da por fiable. Está desactivado de serie: un botón de la página Seguridad lo pone en marcha.

  • Contraseña de emergencia

    Una segunda contraseña que hace algo distinto de iniciar la sesión. El modo de borrado destruye las claves LUKS del disco y apaga el equipo; el modo señuelo abre una sesión vacía y la congela a los cinco minutos. Viene desactivada, hace falta su contraseña real para configurarla y no puede coincidir con ella.

  • Contraseña del menú de arranque

    Se ofrece en la página Seguridad, porque de lo contrario cualquiera que pueda reiniciar el equipo podría editar el menú de arranque y abrir una consola de root.

  • Avisos de autenticación claros

    Cada auxiliar de MoonLight tiene su propia acción de polkit con nombre, de modo que, cuando se pide la contraseña, queda claro a qué se está dando permiso.

Captura de pantalla de MoonLightOS
Captura hecha en un arranque real de la imagen instalada; no es una maqueta.

Funcionamiento en equipos con poca memoria

Memoria comprimida (zram)La mitad de la RAM, hasta 8 GB, compresión zstd y prioridad 100. En torno a 3:1 con las páginas de memoria de un escritorio.
Ajuste del intercambioEl valor que trae el núcleo, 60, da por supuesto que intercambiar implica acceder al disco. Con zram implica copiar memoria.
Protección frente a la falta de memoriaActúa con un 4 % de memoria libre y envía SIGKILL con un 2 %. Nunca cierra Cinnamon, Xorg, LightDM ni Nemo; cierra antes Firefox, Thunderbird, Code, LibreOffice y los compiladores.
Sin indexadorNi tracker ni rastreos del disco en segundo plano.
Ajuste gráfico automáticoAl iniciar la sesión, el sistema comprueba el renderizador de OpenGL. Si es llvmpipe u otro renderizador por software, desactiva las animaciones. Si luego usted decide otra cosa, su elección se respeta.
GRUBPide un modo gráfico modesto, con alternativas, para que el menú aparezca también en una máquina virtual con poca memoria de vídeo.
SquashfsComprimido con zstd, de modo que la sesión en vivo carga rápido desde una memoria USB.

Idiomas

El asistente de primer arranque presenta una lista corta con inglés (de EE. UU. y del Reino Unido), italiano, francés, alemán, español, portugués de Brasil, neerlandés, polaco y ruso, y deja el resto de las configuraciones regionales en «Más idiomas». La distribución del teclado sigue al idioma elegido, así que el segundo paso suele resolverse con un clic en Siguiente.

Todas las MoonTools, 774 cadenas en total, están traducidas a esos ocho idiomas además del inglés, y la compilación falla si algún programa contiene una cadena visible sin traducir. El paquete de idioma italiano y los diccionarios de LibreOffice vienen en la imagen, de modo que una instalación sin conexión queda completamente localizada en Italia; los demás paquetes de idioma se descargan con un clic.

Las herramientas de línea de comandos se quedan en inglés a propósito: su salida se lee junto a la documentación y se pega en los informes de fallo, y eso resulta más cómodo en un solo idioma.

Captura de pantalla de MoonLightOS

Decisiones de diseño que conviene conocer

  • Los temas GTK importan Adwaita y lo recolorean.

    Un tema escrito a mano se rompe cada vez que GTK añade un widget. Este hereda las correcciones del proyecto original.

  • La página de información del sistema de Cinnamon se desvía, no se borra.

    Así, una actualización de Cinnamon no puede colarla de nuevo al lado de la nuestra, y al desinstalar los paquetes de MoonLightOS vuelve a su sitio sin dejar restos.

  • El squashfs conserva su propia copia del núcleo.

    Ese mismo squashfs es lo que el instalador copia al disco. Quitarle /boot supondría instalar un sistema incapaz de arrancar.

  • El tema de arranque se llama moonlightos, no moonlight.

    El paquete desktop-base de Debian ya incluye un tema de Plymouth llamado moonlight, y una actualización sustituiría la animación sin avisar.

  • uBlock Origin viene incluido, no se descarga.

    Una directiva que apunte a addons.mozilla.org instala la extensión solo la primera vez que Firefox se ejecuta con conexión. La extensión viaja en la imagen, y aun así usted puede quitarla.

  • Docker Engine en lugar de Docker Desktop.

    En Linux, Docker Desktop ejecuta el motor dentro de su propia máquina virtual, lo que supone un segundo núcleo y un segundo consumo de memoria en un portátil.

  • Los entornos de desarrollo pesados son opcionales.

    Las máquinas virtuales, PHP con bases de datos y LaTeX están a un clic en Bienvenida, en lugar de ser un gigabyte que cargaría cada instalación.