1
0
Fork
You've already forked nixos-config
0
My NixOS configuration, with flake, home-manager (stand alone).
  • Nix 76%
  • Shell 23.5%
  • Lua 0.5%
2026年07月07日 20:47:00 -03:00
configs/wget regular update 2026年03月29日 19:47:58 -03:00
driver-modules/amd first commit 2026年03月28日 21:08:50 -03:00
home-modules Regular update 2026年07月07日 20:47:00 -03:00
hosts/arunachala Regular update 2026年07月07日 20:47:00 -03:00
system-modules Regular update 2026年07月07日 20:47:00 -03:00
users/selan Regular update 2026年07月07日 20:47:00 -03:00
flake.lock Updated flake, removed nvim overlay 2026年04月03日 12:39:47 -03:00
flake.nix Regular update 2026年07月07日 20:47:00 -03:00
README.md Regular update 2026年07月07日 20:47:00 -03:00

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ário selan.
  • nixosConfigurations.arunachala — configuração do sistema para o host arunachala, usando nixpkgs-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 os system-modules via flags modules.system.*.
  • hardware-configuration.nix — gerado automaticamente pelo nixos-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-swap e crypt-root), com crypt-root em 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 os home-modules e define quais módulos estão ativos via flags modules.*. Também declara pacotes extras em home.packages e programas sem módulo dedicado em programs.*.
  • 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