Configuração declarativa
Meu sistema inteiro mora em uma flake: máquinas, usuários, programas, serviços e preferências são descritos em Nix e podem ser reconstruídos sem arqueologia manual.
Flake
O flake.nix fixa as dependências e expõe duas
configurações NixOS. Nixpkgs unstable fornece a base; Home Manager,
SOPS, Disko, Impermanence, Hyprland e outros inputs entram como
módulos reutilizáveis.
Caches binários de Hyprland, CUDA e Kopuz evitam compilar o universo toda vez. O sistema usa Lix, flakes e um registry derivado dos próprios inputs.
Hosts
sora é a workstation principal: NVIDIA, Wayland, jogos, criação, containers e automações pessoais. tempest é uma máquina separada e mais enxuta, com Plasma 6, containers e acesso remoto restrito por chave.
Configurações comuns ficam em hosts/modules; diferenças
de hardware, usuários e serviços permanecem dentro de cada host.
Desktop & Home Manager
O Home Manager cuida do ambiente de usuário: Helix, Kitty, Fish, Firefox, temas, MIME types e ferramentas de terminal. No Sora, Hyprland e River convivem com uma pilha Wayland ajustada para NVIDIA.
GTK, Qt e dark mode são declarados juntos, enquanto módulos menores isolam cada aplicativo. Trocar ou remover uma peça não exige desmontar o resto do sistema.
Persistência & segredos
O layout Btrfs trabalha com raiz efêmera e persistência opt-in: o que
importa sobrevive em /persist; o restante pode voltar
limpo no boot.
Segredos ficam criptografados com SOPS e são materializados apenas durante a ativação. Chaves SSH persistentes também permitem recuperar os segredos cedo no boot.
Serviços
Tailscale, Syncthing, Sunshine, Firefly III, automações, relatórios e containers são módulos declarativos. Áudio usa PipeWire; armazenamento recebe TRIM e SMART; zram cobre picos sem transformar o disco em sofrimento.
Atualizar significa alterar a fonte, construir a nova geração e só então fazer o switch. Se algo azedar, gerações anteriores continuam disponíveis — produção doméstica, mas sem culto ao perigo.