Skip to content

feat(nix): habilitar Home Manager y Fish en Linux #58

Description

@barbatdev

Problema y objetivo

El repositorio ya contiene la configuración portable de Fish y Home Manager, pero la flake y el preflight solo admiten macOS. Un host Linux nuevo no puede evaluar ni activar el mismo entorno sin mantener parches locales.

El objetivo es añadir un target x86_64-linux que reutilice los componentes portables, preserve los overrides privados del host y excluya de forma explícita las integraciones exclusivas de macOS.

Relacionado con #4, que cubre los defaults del layout de directorios pero no la activación de Nix, Home Manager y Fish.

Comportamiento esperado

  • La flake expone configuraciones Home Manager separadas para macOS y Linux sin duplicar la lógica portable.
  • Linux instala o declara las herramientas necesarias para iniciar Fish, Starship y el runtime portable.
  • Home Manager conserva ownership explícito por archivo y no reemplaza el directorio completo de Fish ni el override local privado.
  • La activación se realiza desde un checkout limpio y no modifica checkouts con trabajo local.
  • Zsh permanece disponible como rollback hasta validar Fish como shell principal.
  • Los helpers sin backend gráfico reportan estado no soportado de forma clara, sin intentar comandos de macOS.

Criterios de aceptación

  • El target x86_64-linux evalúa con la flake bloqueada y el preflight reconoce Linux.
  • La configuración Linux no importa Yabai, skhd, SketchyBar, Karabiner ni flujos de SIP, Dock o permisos macOS.
  • Fish y Starship funcionan en una shell nueva después de activar Home Manager.
  • Los helpers portables de navegación, Git/worktrees, Herdr/SSH y agentes se cargan sin duplicados.
  • El override privado del host permanece fuera del store, con permisos restrictivos y sin ser leído por tests.
  • Screenshots y clipboard quedan excluidos en esta primera entrega y fallan de forma explícita en un host headless.
  • La activación conserva un rollback mediante la generación anterior y los enlaces existentes.
  • La documentación explica instalación, ownership, validación y rollback para Linux.

Alcance excluido

  • Yabai, scripting addition, SIP, Dock, skhd, SketchyBar y Karabiner.
  • Tmux y Ghostty en esta primera entrega.
  • Screenshots, clipboard y cualquier dependencia de X11 o Wayland.
  • Actualizar o limpiar checkouts remotos con cambios locales.

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