Skip to content

Cross-platform: remove macOS-only extras for Linux compatibility #12

Description

@barbatdev

Objetivo

Dejar este repo en lo mínimo funcional para que sea compatible con Linux + macOS. Actualmente tiene 4 directorios macOS-only que agregan complejidad innecesaria para un repo OSS cross-platform.

Directorios a eliminar

Directorio Contenido Riesgo
sketchybar/ sketchybarrc, sketchybar-profile.sh, 14 plugins macOS menu bar — cero uso en Linux
yabai/ yabairc macOS window manager — cero uso en Linux
skhd/ skhdrc macOS hotkeys — cero uso en Linux
karabiner/ karabiner.json macOS keyboard remapping — cero uso en Linux

Total: 20 archivos

Archivos a actualizar

install.sh (602 líneas, ~103 con referencias macOS)

Cambios necesarios:

  • Remover: install_formula_if_missing sketchybar, yabai, skhd (líneas 343-345)
  • Remover: karabiner_cli_available, karabiner_app_exists, karabiner_cli_path (funciones completas)
  • Remover: backup_karabiner_if_exists y su llamada (línea 404)
  • Remover: backup de sketchybar, yabai, skhd (líneas 436-439)
  • Remover: symlink checks de sketchybar, yabai, skhd, karabiner (líneas 219-224)
  • Remover: validación de sketchybar scripts (línea 230)
  • Remover: validación de karabiner JSON (línea 237)
  • Remover: start sketchybar via brew services (líneas 513-518)
  • Remover: check_karabiner_app_exists, check_karabiner_cli_available en --check mode
  • Actualizar: título de "Instalador macOS" → "Instalador dotfiles" (línea 266)
  • Actualizar: sección de deps macOS en --check a warning genérico

README.md

Cambios necesarios:

  • Línea 3: quitar "macOS" del título, hacer genérico
  • Línea 35: quitar "macOS bar" y "sketchybar/"
  • Línea 36: quitar "macOS windowing" y "yabai/, skhd/"
  • Línea 37: quitar "karabiner/karabiner.json"
  • Línea 88: quitar referencia a sketchybarrc
  • Líneas 90-106: eliminar sección completa "SketchyBar"
  • Línea 125: quitar jq empty karabiner/karabiner.json del CI

THIRD_PARTY.md

Remover filas de:

  • SketchyBar
  • yabai
  • skhd
  • Karabiner-Elements

TODO.md

Remover ítems completados de:

  • SketchyBar macOS (línea 16)
  • Issues #327/#328 yabai/skhd (línea 17)
  • Karabiner-Elements macOS (línea 18)

CLAUDE.md

  • Línea 7: "Dotfiles para macOS" → "Dotfiles para terminal workflow"
  • Línea 37: quitar ghostty/config del árbol si se quiere simplificar (ghostty es cross-platform, puede quedarse)

zsh/zshrc

  • Línea 2: "macOS + Ghostty" → más genérico

.github/workflows/ci.yml

  • Línea 46: remover sketchybar/**/*.sh de la lista de bash files a validar (ya no existe)

Lo que se MANTIENE (cross-platform)

Directorio Uso Compatibilidad
ghostty/ Terminal config ✅ Linux + macOS
starship/ Prompt config ✅ Linux + macOS
tmux/ Multiplexor ✅ Linux + macOS
zsh/ Shell config + scripts ✅ Linux + macOS
nvim/ Editor config ✅ Linux + macOS
claude/ Statusline Claude Code ✅ Linux + macOS
opencode/ OpenCode config ✅ Linux + macOS
herdr/ Herdr config ✅ Linux + macOS
scripts/ OSS audit + tools ✅ Linux + macOS
local/ Env example ✅ Linux + macOS
bun/, npm/, pnpm/, uv/ Package manager configs ✅ Linux + macOS
lazygit/, micro/ Tool configs ✅ Linux + macOS

Pre-condiciones

  1. bash scripts/oss-audit.sh debe seguir pasando después de cada cambio
  2. bash install.sh --check debe seguir pasando (sin errores, warnings aceptables)
  3. bash -n install.sh debe seguir pasando (syntax check)
  4. zsh -n zsh/zshrc debe seguir pasando
  5. CI workflow no debe romperse

Criterio de aceptación

  • 4 directorios macOS-only eliminados
  • install.sh limpio de referencias macOS
  • README.md genérico (sin mención de macOS-only tools)
  • THIRD_PARTY.md actualizado
  • TODO.md limpio
  • CLAUDE.md actualizado
  • CI workflow actualizado
  • Todos los checks pasan
  • Working tree limpio después de commits

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions