feat: Add automatic terminal font configuration and switch Docker setup from Colima to Docker Desktop.

This commit is contained in:
Marco Gallegos
2025-11-20 23:11:37 -06:00
parent f7b7a98558
commit 81e3f6de1e
3 changed files with 60 additions and 42 deletions

View File

@@ -146,7 +146,6 @@ alias dps='docker ps -a'
alias di='docker images'
alias dex='docker exec -it'
alias dlog='docker logs -f'
alias colima-start='colima start --cpu 4 --memory 8 --disk 60'
# --- NPM ------------------------------------------------------------------
alias nrs='npm run start'
@@ -269,7 +268,6 @@ fi
vanity_help() {
cat <<EOF
Comandos claves:
colima-start - Arranca el daemon Docker (sin Desktop)
ytv / ytm / ytls - Descargas con yt-dlp
venv create/on/off - Manejo rapido de entornos Python
mkcd / extract / killport / serve - Utilidades basicas

View File

@@ -1,6 +1,6 @@
# VanityOS Shell — macOS Developer Setup 🚀
Automatiza en pocos minutos un entorno de desarrollo moderno para macOS. VanityOS Shell instala Zsh optimizado, Oh My Posh, utilidades CLI esenciales, Docker CLI (sin Desktop) con Colima, Portainer y Lazydocker, dejando tu `.zshrc` listo para trabajar.
Automatiza en pocos minutos un entorno de desarrollo moderno para macOS. VanityOS Shell instala Zsh optimizado, Oh My Posh, utilidades CLI esenciales, Docker CLI (requiere daemon externo) con Portainer y Lazydocker, dejando tu `.zshrc` listo para trabajar.
---
@@ -10,7 +10,8 @@ Automatiza en pocos minutos un entorno de desarrollo moderno para macOS. VanityO
- Oh My Posh (tema Catppuccin) + fuente Meslo Nerd Font.
- Node.js, Python, Git, direnv y herramientas base de terminal.
- yt-dlp + ffmpeg para descargas directas desde YouTube (video y audio).
- Docker CLI, Colima, Lazydocker y despliegue automático de Portainer CE.
- Docker CLI, Lazydocker y despliegue automático de Portainer CE (con Docker Desktop preinstalado y arrancado).
- Ajusta automáticamente la fuente de la app Terminal a Meslo Nerd Font para que Oh My Posh muestre los iconos correctamente.
- Archivo `.zshrc` documentado para seguir personalizando tu shell.
## ✅ Requisitos previos
@@ -31,9 +32,9 @@ El script muestra un menú para elegir qué componentes instalar.
## 🧩 Opciones del menú
| Opción | Descripción | Incluye |
|--------|-------------|---------|
| `A` | Instalación completa (recomendada). | Homebrew + stack Zsh + Docker CLI/Colima/Portainer/Lazydocker. |
| `A` | Instalación completa (recomendada). | Homebrew + stack Zsh + Docker CLI/Portainer/Lazydocker. |
| `C` | Solo configura la terminal. | Homebrew + Zsh, Oh My Zsh, Oh My Posh, utilidades CLI. |
| `D` | Solo herramientas de contenedores. | Homebrew + Docker CLI, Colima, Portainer, Lazydocker. |
| `D` | Solo herramientas de contenedores. | Homebrew + Docker CLI, Portainer, Lazydocker. |
| `Q` | Salir. | — |
## 🔧 Detalles de la configuración Zsh
@@ -43,18 +44,19 @@ El script muestra un menú para elegir qué componentes instalar.
- Copia `source ~/.zshrc` al portapapeles para que puedas recargar la shell al finalizar.
- Genera los directorios `~/videos/youtube` y `~/musica/youtube` y define alias listos para descargar con `ytv <url>` (video completo) y `ytm <url>` (solo audio MP3).
- Añade un comando `help` dentro de Zsh que describe el uso de estos alias.
- Cambia la fuente predeterminada de la app Terminal a *MesloLGS Nerd Font* (tamaño 14) para que los iconos de Oh My Posh se vean bien desde el primer arranque.
## 🐳 Stack Docker + Portainer (sin Desktop)
1. Instala el Docker CLI oficial (`brew install docker docker-buildx docker-compose`).
2. Instala Colima, que levanta el daemon de Docker usando Hypervisor.framework.
3. Intenta iniciar Colima automáticamente con `colima start --cpu 4 --memory 8 --disk 60`.
4. Instala Lazydocker (`brew install lazydocker`).
5. Despliega Portainer CE con los puertos `8000` y `9443`. Acceso: `https://localhost:9443`.
## 🐳 Stack Docker + Portainer
1. Instala el Docker CLI oficial (`brew install docker docker-buildx docker-compose`) y `lazydocker`.
2. Instala Docker Desktop vía Homebrew Cask y lo abre automáticamente.
3. Espera a que Docker Desktop termine de iniciar (el script consulta `docker info` hasta tener respuesta).
4. Cuando el daemon está listo, despliega Portainer CE publicando `8000` y `9443` (`https://localhost:9443`).
> Si Colima no logra iniciar (por ejemplo, porque falta el permiso de virtualización), el script salta Portainer y te recuerda ejecutar `colima start` manualmente antes de volver a elegir la opción `D`.
> Si Docker Desktop no termina de arrancar, el instalador lo indicará y deberás abrir la app manualmente antes de volver a elegir la opción `D`.
## ✅ Verificación rápida
- Recargar Zsh: `source ~/.zshrc`
- Cierra y vuelve a abrir Terminal: la fuente debe ser MesloLGS Nerd Font con los iconos correctos en el prompt.
- Comprobar Oh My Posh: el prompt debe mostrar colores y símbolos; si no, ejecuta `oh-my-posh init zsh --config ~/.poshthemes/catppuccin.omp.json`.
- Verificar Docker: `docker info`
- Confirmar Portainer: abre `https://localhost:9443` en el navegador.
@@ -70,14 +72,14 @@ El script muestra un menú para elegir qué componentes instalar.
## ❗️ Solución de problemas
- **“command not found: brew”**: ejecuta `eval "$(/opt/homebrew/bin/brew shellenv)"` (o `/usr/local/bin/brew`) y vuelve a correr la opción deseada.
- **Docker no arranca**: ejecuta `colima start` (o `colima status` para verificar) y vuelve a lanzar la opción `D` cuando `docker info` funcione.
- **Docker no arranca**: abre Docker Desktop y espera a que muestre “Running”; luego ejecuta `docker info` y repite la opción `D`.
- **Oh My Posh sin fuente correcta**: instala Meslo manualmente desde `~/Library/Fonts` o selecciona *Meslo LG S DZ Nerd Font* en tu terminal.
- **Conflictos con un `.zshrc` previo**: el instalador hace backup implícito sobrescribiendo `~/.zshrc`. Asegúrate de versionar tu archivo antes si necesitas conservarlo.
## 🧽 Desinstalación rápida
- Elimina Portainer: `docker stop portainer && docker rm portainer && docker volume rm portainer_data`.
- Borra la config Zsh (opcional): `rm -rf ~/.oh-my-zsh ~/.poshthemes ~/.zshrc`.
- Desinstala apps con Homebrew: `brew uninstall docker colima lazydocker oh-my-posh`.
- Desinstala apps con Homebrew: `brew uninstall docker docker-buildx docker-compose lazydocker oh-my-posh` y `brew uninstall --cask docker`.
## 📄 Licencia
Distribuido bajo la licencia MIT. Consulta `LICENSE` para más detalles.

View File

@@ -77,6 +77,25 @@ setup_media_dirs() {
mkdir -p "$HOME/videos/youtube" "$HOME/musica/youtube"
}
configure_terminal_font() {
if ! command -v osascript >/dev/null 2>&1; then
return
fi
local font_name="MesloLGS Nerd Font"
echo "Configurando Terminal para usar la fuente $font_name"
/usr/bin/osascript <<EOF >/dev/null 2>&1
tell application "Terminal"
try
set font name of default settings to "$font_name"
set font size of default settings to 14
set font name of startup settings to "$font_name"
set font size of startup settings to 14
end try
end tell
EOF
}
install_oh_my_zsh() {
echo "Instalando Oh My Zsh y plugins…"
if [ ! -d "$HOME/.oh-my-zsh" ]; then
@@ -106,6 +125,7 @@ install_zsh_config() {
install_cli_dependencies
install_oh_my_zsh
setup_media_dirs
configure_terminal_font
echo "Configurando Oh My Posh…"
mkdir -p "$HOME/.poshthemes"
@@ -136,43 +156,40 @@ ensure_docker_daemon() {
fi
echo "No se detectó un demonio de Docker en ejecución." >&2
echo "Asegúrate de tener un entorno Docker corriendo (Colima, OrbStack, Docker Desktop, etc)." >&2
echo "Asegúrate de que Docker Desktop, OrbStack u otro daemon remoto esté activo." >&2
return 1
}
ensure_colima_daemon() {
if ensure_docker_daemon; then
wait_for_docker_desktop() {
local attempts=0
local max_attempts=40
local delay=5
echo "Esperando a que Docker Desktop termine de iniciar…"
while (( attempts < max_attempts )); do
if docker info >/dev/null 2>&1; then
echo "Docker Desktop está operativo."
return 0
fi
sleep "$delay"
attempts=$((attempts + 1))
done
if ! command -v colima >/dev/null 2>&1; then
echo "Colima no está instalado; no se puede iniciar un daemon Docker automáticamente." >&2
echo "Docker Desktop no respondió después de $((max_attempts * delay)) segundos." >&2
return 1
fi
if colima status >/dev/null 2>&1; then
docker context use colima >/dev/null 2>&1 || true
else
echo "Iniciando daemon de Docker con Colima…"
if ! colima start --cpu 4 --memory 8 --disk 60; then
echo "No se pudo iniciar Colima automáticamente; ejecútalo manualmente con 'colima start'." >&2
return 1
fi
fi
sleep 2
docker context use colima >/dev/null 2>&1 || true
ensure_docker_daemon
return $?
}
install_docker_stack() {
echo "Instalando Docker CLI y utilidades…"
brew install docker docker-buildx docker-compose lazydocker colima
brew install docker docker-buildx docker-compose lazydocker
brew install --cask docker
if ! ensure_colima_daemon; then
echo "Se omitió Portainer porque no hay un daemon Docker en ejecución." >&2
echo "Sugerencia: inicia Colima manualmente con 'colima start' y vuelve a ejecutar la opción D." >&2
echo "Abriendo Docker Desktop…"
open -gj -a Docker || open -a Docker || true
if ! wait_for_docker_desktop; then
echo "Se omitió Portainer porque Docker Desktop no está listo." >&2
echo "Abre Docker Desktop manualmente y vuelve a ejecutar la opción D." >&2
return
fi
@@ -234,8 +251,9 @@ BANNER
echo ""
main_menu
echo "=============================================="
echo " Instalación completada."
echo "=============================================="
echo ""
echo "Para aplicar la configuración ejecuta ahora:"
echo "source ~/.zshrc"