Skip to content

feat(nix): adoptar Fish y Home Manager como entorno principal #47

Description

@barbatdev

Problema y objetivo

La configuración principal depende de Zsh y de enlaces gestionados manualmente, lo que dificulta reproducir el entorno, migrar workflows a Fish y definir con precisión qué archivos son administrados por el repositorio.

El objetivo es adoptar Fish como shell principal mediante una configuración Nix Flake + Home Manager acotada, manteniendo los workflows existentes y evitando que Nix tome ownership de secretos o estado privado.

Alcance

  • Declarar una configuración Home Manager reproducible para macOS ARM.
  • Gestionar archivos Fish de forma explícita, sin administrar directorios completos.
  • Portar navegación, identidad Git, safeguards, worktrees, Herdr/SSH, screenshots y helpers de agentes.
  • Mantener Ghostty, Starship y la fuente Beard sin regresiones.
  • Conservar un overlay local privado fuera de Nix para identidad y variables sensibles.
  • Mantener Zsh disponible como rollback.
  • Excluir tmux, secretos, configuración SSH, paquetes globales y servicios de Home Manager.

Criterios de aceptación

  • El Flake evalúa y nix flake check --no-build finaliza correctamente.
  • Home Manager activa una generación sin reemplazar configuraciones privadas.
  • Fish queda configurada como login shell y resuelve todos los helpers portados.
  • Los helpers Git sólo modifican configuración local del repositorio.
  • Los harnesses usan HOME/PATH/TMPDIR aislados y no ejecutan red, SSH, agentes, clipboard ni screenshots reales.
  • Ghostty, Starship, Beard y hremote mantienen su comportamiento.
  • Existe una ruta de rollback mediante generaciones anteriores y Zsh.
  • CI ejecuta todos los harnesses Fish y los chequeos Nix.

Verificación esperada

nix flake check --no-build
./scripts/test-nix-preflight.sh
./scripts/nix-preflight.sh
fish fish/tests/w2-core.fish
fish fish/tests/w3-helpers.fish
fish fish/tests/w4b-screenshots.fish
fish fish/tests/w5a-hremote.fish
fish fish/tests/w5b-herdr-ssh.fish
fish fish/tests/w6-agent-helpers.fish

Fuera de alcance

  • Gestión de secretos o identidades mediante Nix.
  • Modificación automática de ~/.ssh/config.
  • Instalación o configuración de tmux.
  • Integraciones de estado, statusline o themes pertenecientes a Cortex.

Issues relacionados

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions