MoonLightOS

A base do Ubuntu, sem a área de trabalho do Ubuntu

Nenhuma base Linux tem um repositório tão amplo nem reconhece tanto hardware quanto o Ubuntu. Só o pacote linux-firmware cobre a grande maioria dos dispositivos de Wi-Fi, Bluetooth, GPU e chipset em uso, e o ubuntu-drivers-common cuida das placas NVIDIA como se deve. O Secure Boot funciona de imediato porque o shim e o GRUB assinados pela Canonical estão no repositório e o kernel é assinado. A base ainda recebe doze anos de manutenção de segurança.

A área de trabalho do Ubuntu é justamente a parte que valia a pena substituir: é pesada e não tem botão Iniciar, ícones na área de trabalho nem barra de tarefas. O Cinnamon tem as três coisas. Por isso o MoonLightOS parte de uma base mínima e monta a área de trabalho sobre ela. Nada da área de trabalho original do Ubuntu é instalado, e nenhuma tela que o usuário vê menciona a base.

Uma coisa ficou de propósito como estava: o codinome da versão que o apt enxerga continua “resolute”, porque PPAs e qualquer programa que chame o lsb_release dependem dele. A identidade que aparece na tela vem do /etc/os-release.

Captura de tela do MoonLightOS
O logotipo fica imóvel enquanto a luz ao redor pulsa. Dois halos, com ciclos de 2,6 e 3,1 segundos, entram e saem de fase, e por isso o brilho nunca parece mecânico. Os dois são gerados na compilação a partir da arte original, e o mesmo logotipo e o mesmo halo aparecem no menu do GRUB, na tela de login, no instalador, na página Sobre o MoonLightOS e na apresentação de Boas-vindas.

A aparência

Um único painel embaixo, com 52 pixels de altura. À esquerda ficam o botão Iniciar e o campo de busca; no centro, os aplicativos abertos, com os maiores ícones do painel; à direita, a área de status. O menu mostra a sua foto, o seu nome e se você pode administrar o computador, e o campo de busca do menu encontra aplicativos, configurações, arquivos e resultados da web.

Captura de tela do MoonLightOS
Captura de tela de uma inicialização real da imagem instalada. Não é montagem.

Três layouts

  • MoonLight

    Um único painel embaixo. A dock também guarda os seus aplicativos favoritos, então não existe uma segunda fileira de atalhos.

  • Dois painéis

    Uma barra fina no alto para o relógio e os ícones de status, e uma dock embaixo que se esconde sozinha.

  • Compacto

    Uma única barra fina no alto. É o que ocupa menos tela e o mais leve em placas de vídeo antigas.

Claro e escuro

Um único script gera os dois temas a partir de uma só paleta de cores, cobrindo GTK 2, 3 e 4, a interface do Cinnamon e as bordas das janelas. Os temas GTK importam o Adwaita e apenas trocam as cores dele, então controles novos e correções do projeto original chegam sozinhos. O tema de ícones parte do Papirus e substitui só os ícones que identificam a distribuição. A cor de destaque pode ser trocada em Área de trabalho e dock.

Troca por horário

Por padrão, claro a partir das 07:00 e escuro a partir das 19:00. Um pequeno serviço em segundo plano mantém o tema em dia com o horário.

Widgets da área de trabalho

Por padrão aparecem um relógio grande e um monitor de processador, memória e disco. Um clique com o botão direito acrescenta um calendário e notas adesivas, que vão sendo gravadas em texto simples à medida que você escreve.

A animação de inicialização

O logotipo fica imóvel enquanto a luz ao redor pulsa. Dois halos, com ciclos de 2,6 e 3,1 segundos, entram e saem de fase, e por isso o brilho nunca parece mecânico. Os dois são gerados na compilação a partir da arte original, e o mesmo logotipo e o mesmo halo aparecem no menu do GRUB, na tela de login, no instalador, na página Sobre o MoonLightOS e na apresentação de Boas-vindas.

Tipografia

Inter na interface, JetBrains Mono no código e Noto para todo o resto, inclusive chinês, japonês, coreano e emoji em cores.

Sete papéis de parede

Cinco cenas fotográficas com um pinguim, um lago e uma lua crescente, além de um par gerado por computador, um de dia e outro de noite. A versão vem com “Pôr do sol sobre o lago”.

Atalhos que você já conhece

Windows e macOS usam atalhos de teclado diferentes para quase tudo. Como esses dois conjuntos quase nunca entram em conflito, o MoonLightOS reconhece ambos: a tecla Super segue as convenções do Windows e a tecla Control, as do Mac.

AçãoQuem vem do WindowsQuem vem do macOS
Abrir o menuSuperSuper
BuscarSuper+EspaçoSuper+Espaço
ArquivosSuper+E—
Bloquear a telaSuper+LCtrl+Super+Q
Mostrar a área de trabalhoSuper+DCtrl+Super+D
Encaixar a janela em metade da telaSuper+Esquerda / Direita—
Maximizar / restaurarSuper+Cima / Super+BaixoAlt+F10 / Alt+F5
MinimizarSuper+HAlt+F9
Fechar a janelaAlt+F4Super+Q
Tela cheiaSuper+FCtrl+Super+F
Alternar entre janelasAlt+Tab, Super+TabAlt+Tab
Próxima janela do mesmo aplicativoAlt+`Super+`
Todas as janelasSuper+WCtrl+Cima
Todas as áreas de trabalhoSuper+SCtrl+Baixo
Trocar de área de trabalhoCtrl+Alt+Esquerda / DireitaCtrl+Esquerda / Direita
Mover a janela para outra área de trabalhoCtrl+Shift+Alt+Esquerda / DireitaCtrl+Shift+Esquerda / Direita
ConfiguraçõesSuper+ISuper+,
Monitor do sistemaCtrl+Shift+Esc—
Executar um comandoSuper+R, Alt+F2—
TerminalCtrl+Alt+TCtrl+Alt+T
NavegadorSuper+BSuper+B
CalculadoraSuper+CSuper+C
Mixer e equalizadorSuper+ASuper+A
Histórico da área de transferênciaSuper+VSuper+V
AnotaçõesSuper+NSuper+N
Converter arquivosSuper+Shift+CSuper+Shift+C
Captura da tela inteiraPrint ScreenShift+Super+3
Captura de uma áreaShift+Print ScreenShift+Super+4
Captura de uma janelaAlt+Print Screen—
Painel de captura e gravaçãoCtrl+Shift+Print ScreenShift+Super+5
Encerrar a sessãoCtrl+Alt+Delete—

Levar o ponteiro ao canto superior esquerdo abre a visão geral das janelas. A tecla Super sozinha abre o menu, e Super+Espaço abre o menu já com o cursor no campo de busca.

Três formatos de pacote, uma só loja

apt, snap e Flatpak estão todos instalados, e o GNOME Software mostra os três: primeiro os snaps, depois os pacotes do repositório do Ubuntu e, por fim, o Flathub. Um pacote .deb é sempre a opção mais leve, e o Flathub cobre todo o resto.

O aplicativo Snap Store é, ele mesmo, um snap cujas dependências somam cerca de um gigabyte, demais para uma imagem pensada para computadores com 2 GB de RAM. A loja, portanto, já lista e instala snaps desde a primeira inicialização, e um serviço baixa o aplicativo Snap Store assim que houver conexão.

A página de configurações Aplicativos mostra o que está instalado, de qual dos três formatos veio cada aplicativo e se alguma coisa foi instalada duas vezes.

Os aplicativos da imagem

Escolhidos para que um computador de uso geral funcione desde a primeira inicialização, mesmo sem conexão com a internet.

Internet

Firefox (a versão da própria Mozilla, com o uBlock Origin embutido como extensão local, disponível até sem conexão), Thunderbird, Geary, Transmission

Escritório e documentos

LibreOffice Writer, Calc, Impress e Draw; Evince; Editor de texto do GNOME; Xournal++; PDF Arranger; MoonLight PDF; Agenda; Relógios; Meteorologia; Mapas; Calculadora

Mídia

VLC; Celluloid; Rhythmbox; GStreamer com libav, os conjuntos de plugins “bad” e “ugly” e VA-API, para que H.264, H.265 e AAC toquem em qualquer aplicativo

Imagem e digitalização

GIMP; Desenho; Eye of GNOME; MoonLight Export; Digitalizador Simples; Visualizador de fontes; Captura de tela

Sistema

GNOME Software; Monitor do sistema; Discos; GParted; Analisador de uso de disco; Timeshift; Redshift; Gerenciador de arquivos compactados; Seahorse; Blueman; Impressoras; MoonLight Tweaks

Rede e VPN

NetworkManager com OpenVPN, OpenConnect (Cisco AnyConnect, GlobalProtect, Fortinet), L2TP, PPTP, SSH e suporte nativo a WireGuard

Desenvolvimento

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

Terminal

GNOME Terminal; 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

Compatibilidade com Windows

Wine com suporte a 32 bits, winetricks, DXVK (Direct3D 9 a 11) e VKD3D (Direct3D 12)

Hardware e drivers

Firmware

O conjunto linux-firmware completo, microcódigo Intel e AMD e o fwupd para atualizar firmware.

Vídeo

Mesa com Vulkan, VA-API e VDPAU para Intel e AMD. O driver da NVIDIA vai na ISO, então pode ser ativado na página de Drivers mesmo sem internet.

Wi-Fi e rede cabeada

Mais de cinquenta drivers sem fio no kernel, além dos drivers broadcom-sta e r8168 compilados com DKMS para os chips que os drivers padrão atendem mal.

Impressoras e scanners

CUPS com o conjunto completo de drivers, impressão em PDF, SANE e o Digitalizador Simples.

Bluetooth

BlueZ, Blueman e os codecs Bluetooth do PipeWire, com uma página de configurações que avisa com clareza quando o computador não tem hardware Bluetooth.

Áudio

PipeWire com WirePlumber, compatibilidade com PulseAudio e um equalizador de dez bandas integrado.

Notebooks

power-profiles-daemon, thermald, a porcentagem da bateria no painel, toque para clicar e rolagem natural ativados por padrão, suporte a dispositivos de entrada Wacom e Synaptics.

Máquinas virtuais

As ferramentas de convidado para VirtualBox, QEMU/SPICE e VMware já vêm incluídas, e é por isso que a tela se ajusta e a área de transferência é compartilhada.

Leitores de impressão digital

fprintd, libfprint e o carregador TOD vêm instalados e integrados ao PAM. O MoonLight Fingerprint identifica o sensor e conduz o cadastro.

Desbloqueio facial

Desbloqueio facial baseado em OpenCV para a tela de login, a tela de bloqueio e o sudo. Fica desativado até você ligá-lo.

Segurança

Tudo o que vem abaixo já está ativado por padrão em um MoonLightOS instalado.

  • Secure Boot

    Firmware → shim da Canonical → GRUB assinado → kernel assinado. Em Configurações → Sobre o MoonLightOS você vê se ele está ativado no seu computador.

  • Criptografia do disco

    A criptografia de disco inteiro com LUKS2 é uma única caixa de seleção no instalador.

  • Firewall

    O ufw está ativo: as conexões de entrada são bloqueadas e as de saída, liberadas.

  • AppArmor

    Modo de imposição, inclusive para snaps.

  • Atualizações de segurança automáticas

    Todos os dias, do repositório de segurança do Ubuntu e do packages.mozilla.org. Kernels e dependências sem uso são removidos, e o computador nunca reinicia por conta própria.

  • Conta root bloqueada, sudo rastreável

    A primeira conta de usuário administra o computador pelo sudo. Nenhuma senha de root é definida em momento algum.

  • Qualidade da senha e bloqueio da conta

    No mínimo oito caracteres de duas classes diferentes. Depois de oito tentativas erradas, a conta fica bloqueada por quinze minutos.

  • Reforço do kernel

    O kernel está configurado para limitar o que programas sem privilégios conseguem descobrir sobre o sistema e uns sobre os outros: os ponteiros do kernel e as mensagens de inicialização ficam ocultos, a depuração de outro processo é bloqueada e não é possível carregar um kernel substituto com o sistema em execução. A pilha de rede é reforçada contra rotas falsificadas e enxurradas de conexões, e os endereços IPv6 são renovados.

  • Menos superfície de ataque

    O FireWire e um conjunto de módulos de sistemas de arquivos e protocolos de rede raramente necessários não podem ser carregados automaticamente, de modo que um dispositivo conectado ou um pacote recebido não consegue trazer código que este computador nunca usa.

  • Exclusivo desde a primeira inicialização

    O identificador da máquina e as chaves SSH do host são gerados no computador instalado. Uma chave de host igual em todas as instalações tornaria a verificação de host inútil.

  • Nenhuma telemetria

    Os serviços de relatório de erros e de estatísticas de uso não estão na imagem. A telemetria do Firefox, os estudos, o Pocket e o conteúdo patrocinado estão desativados por política, e a proteção contra rastreamento está ativada.

  • Proteção contra dispositivos USB

    O USBGuard vem instalado, então um dispositivo conectado com a tela bloqueada não é considerado confiável. Vem desativado; um botão na página Segurança o ativa.

  • Senha de emergência

    Uma segunda senha que faz outra coisa em vez de abrir a sua sessão. O modo de destruição apaga as chaves LUKS do disco e desliga o computador; o modo de fachada abre uma sessão vazia e a congela depois de cinco minutos. Vem desativada, exige a sua senha verdadeira para ser configurada e não pode ser igual a ela.

  • Senha no menu de inicialização

    Oferecida na página Segurança, porque sem ela quem conseguisse reiniciar o computador poderia editar o menu de inicialização e abrir um shell de root.

  • Pedidos de senha claros

    Cada auxiliar do MoonLight tem uma ação do polkit com nome próprio, então o pedido de senha diz a que você está autorizando.

Captura de tela do MoonLightOS
Captura de tela de uma inicialização real da imagem instalada. Não é montagem.

Funcionando em computadores com pouca memória

Memória comprimida (zram)Metade da RAM, até 8 GB, compressão zstd, prioridade 100. Compressão de cerca de 3:1 nas páginas de memória de um ambiente gráfico.
Ajuste da trocaO padrão 60 do kernel parte do princípio de que recorrer à swap significa acessar o disco. Com o zram, significa copiar memória.
Proteção contra falta de memóriaAge com 4 % de memória livre e envia SIGKILL com 2 %. Nunca encerra o Cinnamon, o Xorg, o LightDM ou o Nemo; encerra antes o Firefox, o Thunderbird, o Code, o LibreOffice e os compiladores.
Sem indexadorNenhum tracker e nenhuma varredura do disco em segundo plano.
Ajuste gráfico automáticoNo login, o sistema verifica o renderizador OpenGL. Se for o llvmpipe ou outro renderizador em software, as animações são desligadas. Se depois você escolher outra coisa, o sistema respeita a sua escolha.
GRUBPede um modo gráfico modesto, com alternativas, para que o menu apareça até em uma máquina virtual com pouca memória de vídeo.
SquashfsComprimido com zstd, para que a sessão live carregue rápido a partir de um pendrive.

Idiomas

A configuração inicial traz uma lista curta com inglês (dos EUA e do Reino Unido), italiano, francês, alemão, espanhol, português do Brasil, holandês, polonês e russo, e todos os outros locales em “Mais idiomas”. O layout do teclado acompanha o idioma escolhido, por isso a segunda etapa normalmente só pede um clique em Avançar.

Todos os MoonTools, 774 textos no total, estão traduzidos para esses oito idiomas além do inglês, e a compilação falha se algum programa tiver um texto visível sem tradução. O pacote de idioma italiano e os dicionários do LibreOffice vão na imagem, por isso uma instalação sem internet na Itália fica inteiramente traduzida; os outros pacotes de idioma podem ser baixados em um clique.

As ferramentas de linha de comando continuam em inglês de propósito: o que elas escrevem é lido ao lado da documentação e colado em relatórios de problema, e isso fica mais fácil em um único idioma.

Captura de tela do MoonLightOS

Decisões de projeto que vale conhecer

  • Os temas GTK importam o Adwaita e apenas o recolorem.

    Um tema escrito à mão quebra sempre que o GTK ganha um controle novo. Este herda as correções do projeto original.

  • A página de informações do sistema do Cinnamon é desviada, não apagada.

    Assim, uma atualização do Cinnamon não consegue reativá-la em silêncio ao lado da nossa, e remover os pacotes do MoonLightOS a traria de volta sem deixar sujeira.

  • O squashfs guarda a sua própria cópia do kernel.

    É esse mesmo squashfs que o instalador copia para o disco. Tirar o /boot de dentro dele instalaria um sistema incapaz de iniciar.

  • O tema de inicialização se chama moonlightos, não moonlight.

    O pacote desktop-base do Debian já traz um tema do Plymouth chamado moonlight, e uma atualização substituiria a animação sem avisar.

  • O uBlock Origin vem embutido, não é baixado.

    Uma política apontando para o addons.mozilla.org instala a extensão só na primeira vez que o Firefox roda com uma conexão funcionando. A extensão vai na imagem, e você continua podendo removê-la.

  • Docker Engine em vez de Docker Desktop.

    No Linux, o Docker Desktop roda o engine dentro da própria máquina virtual, o que significa um segundo kernel e um segundo orçamento de memória em um notebook.

  • As pilhas de desenvolvimento pesadas são opcionais.

    Máquinas virtuais, PHP com bancos de dados e LaTeX estão a um clique em Boas-vindas, em vez de um gigabyte que toda instalação carregaria.