mirror of
https://github.com/marcogll/mac_vntySet.git
synced 2026-01-13 13:25:15 +00:00
feat: Add automatic terminal font configuration and switch Docker setup from Colima to Docker Desktop.
This commit is contained in:
@@ -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
|
||||
|
||||
28
readme.md
28
readme.md
@@ -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.
|
||||
|
||||
@@ -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"
|
||||
|
||||
Reference in New Issue
Block a user