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

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions