A imagem completa (~2.3 GB) com MATE + Calamares.
A live é um chroot (em /home/wellton/debian/gnucego-chroot) com o ambiente MATE já instalado e configurado, empacotado em um squashfs e montado numa ISO bootável via isolinux.
O instalador é o Calamares, que copia o squashfs para o disco, cria o usuário e instala o GRUB — com a identidade GNUcego já toda configurada.
O script gnucego-build-iso.sh faz o seguinte:
# 1. pega o kernel Linux-libre do chroot
KVER=$(basename $(ls $CHROOT/boot/vmlinuz-* | tail -1) | sed 's/^vmlinuz-//')
# 2. gera o squashfs (zstd nível 15, excluindo dev/proc/sys/run/tmp/cache)
mksquashfs "$CHROOT" live/filesystem.squashfs \
-comp zstd -Xcompression-level 15 -processors 6 -noappend \
-wildcards -e "dev/*" "proc/*" "sys/*" "run/*" "tmp/*" \
"var/cache/apt/*" "var/lib/apt/lists/*" "var/log/*"
# 3. copia kernel + initrd + isolinux
cp $CHROOT/boot/vmlinuz-$KVER live/vmlinuz
cp $CHROOT/boot/initrd.img-$KVER live/initrd
# 4. monta a ISO (xorriso, isohybrid)
xorriso -as mkisofs -o gnucego-live-mate-amd64.iso \
-isohybrid-mbr isohdpfx.bin -c isolinux/boot.cat \
-b isolinux/isolinux.bin -no-emul-boot \
-boot-load-size 4 -boot-info-table -J -R .
# 5. publica (nome estável + datado) + sha256
sudo. Se o mksquashfs rodar como usuário comum, os arquivos root-only (/etc/shadow, /etc/sudoers) são criados vazios no squashfs, quebrando o login do sistema instalado.
Cinnamon, i3wm e GNOME usam o mesmo chroot. A única diferença é a sessão default do LightDM (trocada temporariamente pelo script gnucego-build-variant.sh):
gnucego-build-variant.sh <chroot> gnucego-live-cinnamon-amd64 "GNUcego Cinnamon" cinnamon
gnucego-build-variant.sh <chroot> gnucego-live-i3wm-amd64 "GNUcego i3wm" i3
gnucego-build-variant.sh <chroot> gnucego-live-gnome-amd64 "GNUcego GNOME" gnome
Criado a partir do BlackMATE (que usa botões circulares), com duas mudanças:
#666669 (cinza) para #e42132 (vermelho do GNUcego) no gtk-main.css e no gtkrc (GTK2).metacity-1 foi substituído pelo do TraditionalOk (que desenha X/−/+ como formas vetoriais normais, em vez de bolinhas), com as cores adaptadas — botões vermelhos, barra de título escura..menu, popover) e as linhas divisoras (menu separator) foram corrigidos para usar @theme_bg_color (escuro) em vez de @theme_selected_bg_color (vermelho). Assim o menu fica preto o tempo todo, e só o item sob o cursor fica vermelho.
O tema é definido via gschema.override do sistema (20_mate-debian.gschema.override), que tem prioridade sobre o dconf do usuário:
[org.mate.interface]
gtk-theme='GNUcego-Dark'
icon-theme='mate'
O ícone start-here (botão do menu do painel) foi substituído pelo morcego do site, em todos os tamanhos (16/22/24/32/48/256), no tema de ícones mate.
/etc/calamares/branding/gnucego/): branding.desc com cores capitalizadas (SidebarBackground etc.), logo do morcego, e um stylesheet.qss que deixa o instalador todo preto com letras brancas.show.qml): 4 slides que alternam a cada 10s, com botões ◀ ▶ e pontos clicáveis para navegação.users estava só na fase show (não criava o usuário). Foi adicionado à fase exec, junto com removeuser (remove o usuário gnucego do live) e shellprocess (remove o atalho "Instalar GNUcego" do sistema instalado).Os 4 slides do carrossel:
O tema gnucego do Plymouth exibe o morcego pulsando (animação de opacidade via SetRefreshFunction) durante todo o boot, com o título "GNUcego" em vermelho — deixando claro que o sistema não travou.
O live faz autologin no usuário gnucego (sem senha) para entrar direto no MATE. No sistema instalado, o Calamares cria o usuário do instalador normalmente.
O logo do morcego em ASCII (gerado com chafa a partir do morcego do site) é instalado em /etc/fastfetch/gnucego-logo.txt, colorido de vermelho via color: {"1": "red"}.
Adicionado o keybinding do Marco run-command-9='<Control>Return' com command-9='terminator' no gschema.override.
# /etc/calamares/modules/users.conf
defaultGroups: [cdrom, dip, plugdev, sudo, users]
doAutologin: true
setRootPassword: false
# /etc/calamares/modules/removeuser.conf (remove o gnucego do instalado)
username: gnucego
# /etc/calamares/modules/shellprocess.conf (remove o instalador do sistema)
dontChroot: false
script:
- "rm -rf /home/gnucego"
- "rm -f /usr/share/applications/calamares.desktop"
- "apt-get remove -y --purge calamares"
A sequência exec do Calamares (no settings.conf) ficou:
- exec:
- partition
- mount
- unpackfs
- machineid
- fstab
- locale
- keyboard
- localecfg
- initramfs
- users
- removeuser
- displaymanager
- networkcfg
- hwclock
- bootloader
- shellprocess
- umount
Existe um chroot separado (gnucego-testing-chroot) com a base ogum (testing), kernel 7.3.1-gnu, e a mesma identidade. Ele produz gnucego-testing-live-amd64.iso. As mudanças de tema/Calamares/plymouth/GRUB do stable são sincronizadas para lá.
→ Próximo: todos os scripts (código-fonte completo)