Lucky's Nix

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.