nixdots
Configuracin NixOS de ale laptop Intel+Nvidia con niri +
DankMaterialShell https://github.com/AvengeMedia/DankMaterialShell.
Desplegada va flake, sin gestin de secretos (la clave GPG vive en una
YubiKey).
Versionado con git; commits firmados con GPG (YubiKey) va
programs.git.signing.signByDefault = true.
Estructura
----------
flake.nix # inputs y nixosConfigurations.ale
hosts/ale/
configuration.nix # boot, red, locale, usuario, nix.settings
hardware-configuration.nix # generado por nixos-generate-config
modules/
desktop.nix # bluetooth, audio (pipewire), greeter DMS, gvfs
graphics.nix # PRIME sync Intel/Nvidia, Steam, gamemode, CUDA
niri.nix # niri + DankMaterialShell (shell, lockscreen)
yubikey.nix # pcscd, sudo (reglas NOPASSWD puntuales)
tailscale.nix # exit node de Mullvad fijado al arrancar
home/ale/
home.nix # home-manager: zsh/p10k, git, gpg-agent, gtk, paquetes de usuario
niri.kdl # config de niri (binds, layout, spawns)
p10k.zsh # prompt Powerlevel10k
pkgs/
librepods.nix # LibrePods (control AirPods) compilado de fuente
clamui.nix # GUI de ClamAV
Stack
-----
niri (compositor scrollable) + DankMaterialShell (shell y greeter),
tema dinmico va matugen desde el wallpaper.
Grficos duales Intel/Nvidia en modo PRIME sync (driver propietario,
legacy_580 GPU Pascal). Steam + gamemode + CUDA.
YubiKey para GPG/SSH (pcscd + gpg-agent, comando yubico para
reiniciarla si deja de responder).
Tailscale con exit node de Mullvad.
sudo, con wheel normal + NOPASSWD puntual para pcscd/tailscale.
Bluetooth/AirPods: LibrePods compilado de fuente, fix de AVRCP para
play/pause/skip, cdec A2DP restringido a SBC/AAC.
zsh: Oh My Zsh + Powerlevel10k + fzf-tab + autosuggestions + syntax
highlighting.
adw-gtk3 para que apps GTK3 legacy (LibreOffice) hereden el tema
dinmico.
voxtype (dictado), DankCalendar (sync CalDAV/Nextcloud), zen-browser,
clamui (GUI de ClamAV).
Bootstrap en una PC nueva
-------------------------
El repo real vive en un Forgejo solo accesible por Tailscale (pcale.tail32b955.ts.net)
pero en una PC recin instalada no hay Tailscale ni YubiKey
configurados todava. Por eso el clone inicial se hace contra el espejo
pblico en GitHub (sin autenticacin), y recin despus se repunta
origin al Forgejo real:
nix-shell -p git
git clone https://github.com/Richard7987/Nix-Dotfiles.git /nixdots
# una vez que Tailscale + la YubiKey (GPG/SSH) ya estn andando:
cd /nixdots
git remote set-url origin ssh://git@pcale.tail32b955.ts.net:2222/Ale/Nix-Dotfiles.git
git fetch origin
Despus: ajustar los placeholders de hardware (hosts/ale/hardware-configuration.nix,
bus IDs en modules/graphics.nix, nombre de monitor en home/ale/niri.kdl) y
recin ah el primer despliegue.
Uso
---
Primer despliegue:
sudo nixos-rebuild build --flake .#ale # detecta errores sin aplicar
sudo nixos-rebuild switch --flake .#ale
Actualizar el sistema (flake update + build + switch + commit de flake.lock
si cambi):
nixos-update # funcin de zsh, definida en home/ale/home.nix
Si la YubiKey deja de responder:
yubico # funcin de zsh: reinicia pcscd + gpg-agent
Firmar un tag de versin (CalVer, vAAAA.MM.DD):
git tag -s -m "mensaje describiendo esta versin" v2026.08.15
git push origin v2026.08.15
git tag -v v2026.08.15 # verifica la firma
Notas
-----
El por qu de cada decisin (historial completo de migraciones,
auditoras y bugs encontrados) est en NOTES.md NOTES.md.