- Nix 76%
- Shell 23.5%
- Lua 0.5%
| configs/wget | regular update | |
| driver-modules/amd | first commit | |
| home-modules | Regular update | |
| hosts/arunachala | Regular update | |
| system-modules | Regular update | |
| users/selan | Regular update | |
| flake.lock | Updated flake, removed nvim overlay | |
| flake.nix | Regular update | |
| README.md | Regular update | |
My NixOS Config
Configuração pessoal do NixOS com flakes e home-manager standalone.
O sistema usa nixpkgs-unstable com home-manager no branch master, mantendo o stateVersion = "25.11" (versão de instalação, não do canal).
Para instalar o sistema em uma nova máquina, consulte o roteiro de partição de disco.
Estrutura de diretórios
my-nixos-config/
├── flake.nix # Entrypoint: define inputs e outputs do sistema
├── flake.lock # Lock file dos inputs
├── configs/ # Arquivos de configuração manuais (ainda não escritos em Nix)
├── driver-modules/ # Módulos de driver por fabricante (ex: amd/)
├── hosts/ # Configuração por máquina
│ └── arunachala/
│ ├── configuration.nix # Configuração principal do sistema
│ ├── hardware-configuration.nix
│ ├── disko.nix # Particionamento declarativo (LUKS + btrfs)
│ └── INSTALL.md # Roteiro de partição de disco
├── system-modules/ # Módulos reutilizáveis do sistema NixOS
├── home-modules/ # Módulos reutilizáveis do home-manager
└── users/
└── selan/
├── home.nix # Entrypoint do home-manager do usuário
└── env_vars.nix # Variáveis de sessão
flake.nix
Define dois outputs principais:
homeConfigurations.selan— configuração do home-manager standalone para o usuárioselan.nixosConfigurations.arunachala— configuração do sistema para o hostarunachala, usandonixpkgs-unstable.
git+file:///home/selan/nixos
├───homeConfigurations: selan
└───nixosConfigurations
└───arunachala: NixOS configuration
Inputs externos
| Input | Descrição |
|---|---|
nixpkgs |
Canal nixos-unstable |
home-manager |
Branch master |
catppuccin |
Tema Catppuccin para NixOS e home-manager |
noctalia / noctalia-qs |
Shell do Noctalia (control center) |
zen-browser |
Zen Browser via flake externo |
spicetify-nix |
Customização do Spotify |
hosts/
Cada subdiretório corresponde a um host (hostname da máquina). Atualmente existe apenas arunachala.
hosts/arunachala/
configuration.nix— configuração principal do sistema: bootloader, rede, usuários, áudio (PipeWire), Hyprland, fontes, pacotes de sistema e serviços. Liga e desliga ossystem-modulesvia flagsmodules.system.*.hardware-configuration.nix— gerado automaticamente pelonixos-generate-config. Contém os UUIDs específicos desta máquina. Deve ser regerado a cada nova instalação.disko.nix— declara o esquema de particionamento: duas partições LUKS (crypt-swapecrypt-root), comcrypt-rootem btrfs dividido em subvolumes (@,@home,@nix,@cache,@log).
system-modules/
Módulos NixOS reutilizáveis, cada um com uma flag de ativação modules.system.<módulo>.enable. São importados em hosts/arunachala/configuration.nix.
| Módulo | Descrição |
|---|---|
bluetooth |
Suporte a Bluetooth |
printing |
Serviço de impressão (CUPS) |
security/automount |
Montagem automática de dispositivos |
security/doas |
Alternativa ao sudo |
security/firewall |
Configuração de firewall |
security/polkit |
Agente de autenticação polkit |
tlp |
Gerenciamento de bateria (apenas laptops) |
power |
Perfis de energia (apenas laptops) |
driver-modules/
Módulos de drivers organizados por fabricante. Ativados via drivers.<fabricante>.enable.
| Módulo | Descrição |
|---|---|
amd |
Drivers AMD (GPU/CPU) |
home-modules/
Módulos do home-manager, cada um com flag modules.<módulo>.enable definida em users/selan/home.nix.
Segue abaixo apenas alguns exemplos de módulos.
Para uma visão completa, explore ./home-modules/ e suas subpastas.
Ambiente e shell
| Módulo | Descrição |
|---|---|
zsh |
Zsh com aliases e configuração |
tmux |
Multiplexador de terminal |
fzf |
Fuzzy finder |
eza |
Substituto moderno do ls |
fastfetch |
Exibição de informações do sistema |
tealdeer |
Páginas de manual simplificadas (tldr) |
x11 |
Configura o .XCompose para cedilha |
Interface gráfica
| Módulo | Descrição |
|---|---|
hyprland |
Configuração do compositor Wayland |
hypridle |
Daemon de idle para suspensão/bloqueio |
hyprshot |
Configura como funciona a captura de tela |
theming |
Tema GTK |
xdg |
Diretórios e associações XDG |
Terminais
| Módulo | Descrição |
|---|---|
terminals/kitty |
Terminal Kitty |
terminals/foot |
Terminal Foot |
Ferramentas
| Módulo | Descrição |
|---|---|
git |
Configuração do Git |
gpg |
Chaves GPG e agente |
keychain |
Gerenciamento de chaves SSH/GPG |
yazi |
Gerenciador de arquivos no terminal |
zathura |
Leitor de PDF |
btop |
Monitor de recursos |
video_audio |
Configurações de mídia |
keepass |
Gerenciador de senhas |
Aplicativos
| Módulo | Descrição |
|---|---|
apps/zen-browser |
Zen Browser |
apps/vesktop |
Cliente Discord (Vencord) |
apps/telegram |
Telegram Desktop |
apps/spotify |
Spotify (com Spicetify) |
apps/chromium |
Chromium |
Serviços e notificações
| Módulo | Descrição |
|---|---|
services |
Serviços de usuário do home-manager |
noctalia |
Shell do Noctalia (control center / status bar) |
Scripts
O módulo scripts instala scripts de shell organizados em categorias:
| Categoria | Descrição |
|---|---|
backup |
Backup incremental, montagem e restauração |
hardware |
Volume, brilho, webcam, tablet Wacom/Intuos |
hyprland |
Seleção de monitor, gamemode, scratchpad |
misc |
Notas, virtualização, listagem de serviços |
session |
Logout, suspend, hibernate, reboot, shutdown |
tmux |
Navegação e troca de sessões |
toggle |
Toggles de Bluetooth, Wi-Fi, idle, notificações |
wayland |
Gravação de tela, seleção de idioma, tablet |
users/
Cada subdiretório corresponde a um usuário gerenciado pelo home-manager.
users/selan/
home.nix— entrypoint do home-manager. Importa oshome-modulese define quais módulos estão ativos via flagsmodules.*. Também declara pacotes extras emhome.packagese programas sem módulo dedicado emprograms.*.env_vars.nix— variáveis de ambiente da sessão do usuário.
configs/
Pasta reservada para arquivos de configuração manuais — ou seja, configurações
que ainda não foram portadas para Nix. Referenciados via home.file ou
xdg.configFile quando necessário.
Aplicando as configurações
Sistema (NixOS)
# Aplicar
sudo nixos-rebuild switch --flake .#arunachala
# Testar sem tornar permanente
sudo nixos-rebuild test --flake .#arunachala
Home-manager
# Aplicar configuração do usuário
home-manager switch --flake .#selan
# Listar gerações anteriores
home-manager generations
Atualizar inputs
nix flake update
sudo nixos-rebuild switch --flake .#arunachala
home-manager switch --flake .#selan