Imported from Ricky06202/nixdots (
AGENTS.md). Install upstream withnpx skills add Ricky06202/nixdots. Copyright stays with the author.
AGENTS.md — nixdots
Guía para IAs (opencode, etc.) que trabajen en este repo.
Qué es este repo
Config NixOS multi-host con flakes. Un solo flake define dos máquinas:
laptop— Intel HD 5500 (iGPU) + NVIDIA 940M (PRIME offload, legacy_580)amd— CPU + GPU AMD (amdgpu nativo)
Ya NO hay branches por máquina: el host se elige con #laptop o #amd.
Reglas de oro
- Todo es declarativo. Nada de editar paquetes a mano.
- Lo compartido va en
shared/default.nixyhome/default.nix. Lo específico de una máquina, SOLO enhosts/<nombre>/. - Si un cambio aplica a ambos hosts, edítalo UNA vez (para eso existe este repo).
- Cosas por-host dentro de
home/se resuelven con el argumentohostName(ej: MangoHUD conf distinto, aliasesnvidia-offloadsolo en laptop). hardware-configuration.nixNO se copia entre hosts — cada uno genera el suyo (nixos-generate-config) y no se toca salvo que cambie el disco.- Repo PÚBLICO: jamás commitear tokens, passwords o claves.
Validar cambios
# Evaluar ambos hosts (rápido, no compila):
nix flake check
# Buildear solo evaluación del host amd sin aplicar:
nix build .#nixosConfigurations.amd.config.system.build.toplevel --dry-run
Aplicar
sudo nixos-rebuild switch --flake .#laptop # en el laptop
sudo nixos-rebuild switch --flake .#amd # en la PC AMD
Notas técnicas importantes
- RustDesk: envuelto con
symlinkJoin + wrapProgrampara forzar XWayland (bug upstream: el grab de teclado usa APIs X11 y falla como app Wayland). No "simplificar" quitando el wrapper. - Steam laptop: envuelto con PRIME offload vars para usar la NVIDIA desde el launcher. En amd NO existe ese wrapper.
- MangoHUD: conf por host vía
hostName. Laptop = fps_limit 30 + no_display. AMD = sin límite. - zsh: oh-my-zsh via home-manager; NO añadir alias
z(pisa la función de zoxide y rompe el salto de directorios). Highlight/autosuggest son nativos de home-manager, NO plugins de omz. - Caelestia: ambos hosts usan el fork AW (
caelestiaShellAWenflake.nix, inputscaelestia-aw+caelestia-cli-aw) con live wallpapers. Se arma con el quickshell precompilado de nixpkgs (wrapperqsPrebuilt). NO usarcaelestia.packages.*(ni AW): compila quickshell-git desde fuente (~1h local, sin caché binaria). El wrapper AW inyectaqt6.qtmultimedia(el fork no lo declara) y exponeffmpegen PATH (thumbnails del CLI). Está detrás de master vanilla (ej. NetworkUsage en QML) — no "actualizarlo" sin revisar el fork. Los vídeos van en$CAELESTIA_WALLPAPERS_DIR/Animatedy solo cargan MediaPlayer al seleccionarlos (estático = comportamiento vanilla). - El alias
updatereconstruye el host local automáticamente.