Configuración personal de Hyprland sobre NixOS, gestionada con home-manager mkOutOfStoreSymlink.
Cómo funciona el enlace: home-manager crea symlinks que apuntan a archivos fuera del Nix store (directamente a
~/projects/dotfiles/…). Esto significa que podés editar cualquier archivo acá y el cambio aplica en vivo, sin hacernixos-rebuild. Solo se necesita rebuild cuando cambiás qué archivos se enlazan, no su contenido.
El repositorio del sistema NixOS (flake, módulos, paquetes) vive por separado en ~/projects/nix-config/. Este repo contiene solo las configuraciones de las apps; aquel repo es el que los enlaza al sistema.
| Módulo | Herramienta | Descripción |
|---|---|---|
hypr |
Hyprland 0.55+ | Compositor Wayland — ventanas, animaciones, atajos, rules |
waybar |
Waybar | Barra con chip NixOS (gen + dirty-status), workspaces, reloj, red, batería |
eww |
eww | Hub dashboard (clima, calendario, red, BT) · popup con SUPER+grave |
foot |
foot | Terminal Wayland-nativa (migrada desde kitty 2026-07-20) |
rofi |
Rofi | Launcher + menús de WiFi, wallpapers, clipboard, keybinds |
mako |
Mako | Daemon de notificaciones Wayland (DND vía SUPER+N) |
starship |
Starship | Prompt multiplataforma |
fastfetch |
Fastfetch | Info del sistema al abrir terminal |
nvim |
Neovim | Editor (lazy.nvim, LSP, treesitter) |
yazi |
Yazi | File manager en terminal (dentro de foot flotante) |
khal |
khal | Calendario local (.ics planos). TUI ikhal en SUPER + I; el hub eww NO lo lee |
qt6ct |
qt6ct | Tema Qt6 con paleta Deep Ocean |
Paleta unificada en todos los componentes:
| Rol | Color | Hex |
|---|---|---|
| Acento principal | Cyan | #00b4d8 |
| Acento secundario | Azul NixOS | #3b82f6 |
| Fondo surface | Navy oscuro | #0f1623 |
| Texto | Lavanda claro | #cdd6f4 |
| Destructivo | Rojo suave | #f87171 |
- Hub eww (
SUPER+grave): popup central con clima (Open-Meteo), calendario, estado de red/BT y controles rápidos. - Chip NixOS en waybar: muestra generación actual + símbolo NixOS coloreado (azul = flake limpio, rojo = dirty con cambios sin commitear).
- Keybinds viewer (
SUPER+K): cheatsheet fuzzy de todos los binds, leídos en vivo dehyprctl binds(los que Hyprland tiene cargados de verdad), agrupado por submap. - Wallhaven fetch (
SUPER+SHIFT+W): browser de wallpapers con preview grid (thumbnails cacheados), búsqueda por término y descarga directa. - Wallselect local (
SUPER+W): selector de wallpapers en~/Wallpapers/con thumbnails, borrado conAlt+D. - Hyprlock con viñeta (
SUPER+L): lockscreen con shader GLSL de viñeta Deep Ocean activado en el compositor (Hyprlanddecoration:screen_shader) antes de lanzar hyprlock. - Night light manual (
SUPER+CTRL+N): toggle 6500K ↔ 3500K vía hyprsunset IPC (schedule deshabilitado por bug en v0.3.3). - Spotify en special workspace (
SUPER+M): toggle que detecta la ventana por clase Hyprland (no pgrep) porque NixOS empaqueta Spotify como.spotify-wrapped. - Layout notificación: daemon que escucha el socket de Hyprland y notifica cambios de distribución de teclado (no depende del bind, captura cualquier cambio).
| Atajo | Acción |
|---|---|
SUPER + Return / + SHIFT |
Terminal foot · flotante |
SUPER + Space |
Launcher (Rofi) |
SUPER + B / M / T |
Firefox · Spotify (special ws) · Telegram |
SUPER + E / + SHIFT |
Yazi (foot flotante) · Thunar |
SUPER + W / + SHIFT |
Wallselect local · Wallhaven fetch |
SUPER + C |
Clipboard history (cliphist + rofi) |
SUPER + L |
Bloquear pantalla (hyprlock + viñeta) |
SUPER + A |
WiFi manager (rofi) |
SUPER + K |
Keybinds viewer (cheatsheet fuzzy) |
SUPER + grave |
Hub dashboard eww (toggle) |
SUPER + N / + SHIFT |
DND toggle mako · Dismiss all |
SUPER + CTRL + N |
Night light toggle (hyprsunset) |
SUPER + CTRL + P |
Ciclar power profile (performance / balanced / saver) |
SUPER + SHIFT + R |
Reload waybar (config + style) |
SUPER + Q / F / V |
Cerrar · Fullscreen · Flotante toggle |
SUPER + D |
Float + resize 1450×800 + centrar |
SUPER + P |
Pseudo-tiling |
SUPER + R |
Modo resize (flechas, Esc para salir) |
SUPER + G |
Modo mover flotante (flechas, SHIFT+flecha paso grande) |
SUPER + J |
Toggle split de layout |
SUPER + SHIFT + M |
Salir de Hyprland |
SUPER + 1–0 / + SHIFT |
Cambiar workspace · mover ventana |
SUPER + S / + SHIFT |
Toggle scratchpad · enviar al scratchpad |
SUPER + ←↑→↓ |
Mover foco |
SUPER + SHIFT + ←↑→↓ |
Mover ventana (swap) |
SUPER + Scroll |
Ciclar workspaces |
SUPER + click izq/der |
Mover · redimensionar ventana |
Print |
Captura completa → portapapeles |
SUPER + SHIFT + C |
Recorte de región → portapapeles |
SUPER + CTRL + C |
Recorte → satty (anotar) → guardar + portapapeles |
| Teclas multimedia | Volumen (swayosd) · Brillo · Play/Pausa/Siguiente/Anterior |
Alt + Shift |
Cambiar layout de teclado |
dotfiles/
├── hypr/ # hyprland.lua + configs/{autostart,binds,environments,monitors,rules,settings,workspaces}.lua
│ # hypridle/hyprlock/hyprsunset.conf
│ # scripts/ (lock, spotify-toggle, keybinds-viewer, …)
│ # shaders/ (lock-vignette.glsl)
├── waybar/ # config.jsonc + style.css (Deep Ocean)
├── eww/ # eww.yuck + eww.scss + scripts/ (weather, net-status, …)
├── foot/ # foot.ini (tema Deep Ocean)
├── rofi/ # config.rasi + temas por menú (wifi, cliphist, keybinds)
├── mako/ # config
├── starship/ # starship.toml
├── fastfetch/ # config.jsonc + logos/
├── nvim/ # init.lua + lua/{config,plugins}/
├── yazi/ # yazi.toml (opener PDF → firefox)
├── khal/ # config (calendarios: personal + pedco)
└── qt6ct/ # qt6ct.conf + colors/deep-ocean.conf
Cada directorio refleja la estructura de ~/.config/: hypr/ contiene .config/hypr/, etc.
Este repo no usa GNU Stow ni se instala con un script. Los symlinks los gestiona home-manager desde el repo NixOS.
Flujo típico para una máquina nueva:
- Clonar este repo en
~/projects/dotfiles/. - Clonar el flake NixOS en
~/projects/nix-config/. - En
nix-config, el módulo home-manager usamkOutOfStoreSymlinkapuntando a las rutas de este repo:xdg.configFile."hypr".source = config.lib.file.mkOutOfStoreSymlink "${config.home.homeDirectory}/projects/dotfiles/hypr/.config/hypr";
- Copiar
~/.ssh/id_ed25519desde el backup — de esa clave se deriva la identidad age que descifra los secretos denix-config. - Aplicar con
sudo nixos-rebuild switch --flake ~/projects/nix-config#<host>.
El orden de los pasos 1 y 2 no es opcional.
mkOutOfStoreSymlinkapunta a~/projects/dotfiles/…: si ese path no existe cuando se activa home-manager, la activación falla. Instalación completa desde cero (incluido el particionado con disko): ver la sección Instalación en una máquina nueva del README denix-config.
Después de eso, editar directamente en ~/projects/dotfiles/ aplica en vivo. No se necesita rebuild para cambios de config; sí se necesita para agregar/quitar symlinks.
Si estás en Arch u otra distro, podés usar GNU Stow como alternativa (
stow hypr,stow waybar, etc.) pero el setup está pensado y testeado para NixOS.