Configuración declarativa para NixOS utilizando Flakes y Home Manager.
Esta configuración sigue una filosofía de "Entorno Base Limpio". No instalamos herramientas de desarrollo (Compiladores, SDKs) a nivel de sistema. En su lugar, utilizamos plantillas de Flakes ubicadas en la carpeta flakes/.
flake.nix: Entrada principal del sistema.configuration.nix: Configuración del sistema base (Boot, Drivers, Servicios).home/: Configuración de usuario (Dotfiles, Neovim, Hyprland).flakes/: Plantillas de Entornos de Desarrollo.
Para aplicar cambios en la configuración de NixOS o Home Manager:
sudo nixos-rebuild switch --upgrade --flake ~/nixos-config#Dante-NixOS --show-traceNo instales python, rust o java globalmente. Usa las plantillas locales:
Python:
mkdir mi-proyecto && cd mi-proyecto
nix flake init -t path:~/nixos-config/flakes/python
direnv allowRust:
mkdir mi-proyecto && cd mi-proyecto
nix flake init -t path:~/nixos-config/flakes/rust
direnv allowJava:
mkdir mi-proyecto && cd mi-proyecto
nix flake init -t path:~/nixos-config/flakes/java
direnv allowAl hacer esto, direnv activará automáticamente el entorno con las herramientas necesarias (LSP, Compiladores, Formateadores) solo en esa carpeta.
Para mantener el sistema ligero y optimizar los recursos, varios servicios pesados o de uso ocasional han sido configurados para no iniciar automáticamente durante el arranque del sistema. Si necesitas utilizarlos, debes iniciarlos manualmente.
Servicios del sistema (requieren sudo):
sudo systemctl start docker # (También inicia containerd automáticamente)
sudo systemctl start postgresql
sudo systemctl start qdrant
sudo systemctl start matrix-conduit
sudo systemctl start mautrix-whatsapp
sudo systemctl start caddy
sudo systemctl start bluetoothServicios de usuario:
systemctl --user start mopidy- Neovim: Abre Neovim dentro de la carpeta del proyecto una vez que el entorno se haya cargado. Neovim usará las herramientas (LSP) provistas por el flake del proyecto.
- Limpieza: El sistema ejecuta Garbage Collection semanalmente. Puedes forzarlo con
nix-collect-garbage -d.