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 di='docker images'
|
||||||
alias dex='docker exec -it'
|
alias dex='docker exec -it'
|
||||||
alias dlog='docker logs -f'
|
alias dlog='docker logs -f'
|
||||||
alias colima-start='colima start --cpu 4 --memory 8 --disk 60'
|
|
||||||
|
|
||||||
# --- NPM ------------------------------------------------------------------
|
# --- NPM ------------------------------------------------------------------
|
||||||
alias nrs='npm run start'
|
alias nrs='npm run start'
|
||||||
@@ -269,7 +268,6 @@ fi
|
|||||||
vanity_help() {
|
vanity_help() {
|
||||||
cat <<EOF
|
cat <<EOF
|
||||||
Comandos claves:
|
Comandos claves:
|
||||||
colima-start - Arranca el daemon Docker (sin Desktop)
|
|
||||||
ytv / ytm / ytls - Descargas con yt-dlp
|
ytv / ytm / ytls - Descargas con yt-dlp
|
||||||
venv create/on/off - Manejo rapido de entornos Python
|
venv create/on/off - Manejo rapido de entornos Python
|
||||||
mkcd / extract / killport / serve - Utilidades basicas
|
mkcd / extract / killport / serve - Utilidades basicas
|
||||||
|
|||||||
28
readme.md
28
readme.md
@@ -1,6 +1,6 @@
|
|||||||
# VanityOS Shell — macOS Developer Setup 🚀
|
# 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.
|
- Oh My Posh (tema Catppuccin) + fuente Meslo Nerd Font.
|
||||||
- Node.js, Python, Git, direnv y herramientas base de terminal.
|
- Node.js, Python, Git, direnv y herramientas base de terminal.
|
||||||
- yt-dlp + ffmpeg para descargas directas desde YouTube (video y audio).
|
- 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.
|
- Archivo `.zshrc` documentado para seguir personalizando tu shell.
|
||||||
|
|
||||||
## ✅ Requisitos previos
|
## ✅ Requisitos previos
|
||||||
@@ -31,9 +32,9 @@ El script muestra un menú para elegir qué componentes instalar.
|
|||||||
## 🧩 Opciones del menú
|
## 🧩 Opciones del menú
|
||||||
| Opción | Descripción | Incluye |
|
| 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. |
|
| `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. | — |
|
| `Q` | Salir. | — |
|
||||||
|
|
||||||
## 🔧 Detalles de la configuración Zsh
|
## 🔧 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.
|
- 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).
|
- 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.
|
- 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)
|
## 🐳 Stack Docker + Portainer
|
||||||
1. Instala el Docker CLI oficial (`brew install docker docker-buildx docker-compose`).
|
1. Instala el Docker CLI oficial (`brew install docker docker-buildx docker-compose`) y `lazydocker`.
|
||||||
2. Instala Colima, que levanta el daemon de Docker usando Hypervisor.framework.
|
2. Instala Docker Desktop vía Homebrew Cask y lo abre automáticamente.
|
||||||
3. Intenta iniciar Colima automáticamente con `colima start --cpu 4 --memory 8 --disk 60`.
|
3. Espera a que Docker Desktop termine de iniciar (el script consulta `docker info` hasta tener respuesta).
|
||||||
4. Instala Lazydocker (`brew install lazydocker`).
|
4. Cuando el daemon está listo, despliega Portainer CE publicando `8000` y `9443` (`https://localhost:9443`).
|
||||||
5. Despliega Portainer CE con los puertos `8000` y `9443`. Acceso: `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
|
## ✅ Verificación rápida
|
||||||
- Recargar Zsh: `source ~/.zshrc`
|
- 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`.
|
- 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`
|
- Verificar Docker: `docker info`
|
||||||
- Confirmar Portainer: abre `https://localhost:9443` en el navegador.
|
- 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
|
## ❗️ 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.
|
- **“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.
|
- **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.
|
- **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
|
## 🧽 Desinstalación rápida
|
||||||
- Elimina Portainer: `docker stop portainer && docker rm portainer && docker volume rm portainer_data`.
|
- 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`.
|
- 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
|
## 📄 Licencia
|
||||||
Distribuido bajo la licencia MIT. Consulta `LICENSE` para más detalles.
|
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"
|
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() {
|
install_oh_my_zsh() {
|
||||||
echo "Instalando Oh My Zsh y plugins…"
|
echo "Instalando Oh My Zsh y plugins…"
|
||||||
if [ ! -d "$HOME/.oh-my-zsh" ]; then
|
if [ ! -d "$HOME/.oh-my-zsh" ]; then
|
||||||
@@ -106,6 +125,7 @@ install_zsh_config() {
|
|||||||
install_cli_dependencies
|
install_cli_dependencies
|
||||||
install_oh_my_zsh
|
install_oh_my_zsh
|
||||||
setup_media_dirs
|
setup_media_dirs
|
||||||
|
configure_terminal_font
|
||||||
|
|
||||||
echo "Configurando Oh My Posh…"
|
echo "Configurando Oh My Posh…"
|
||||||
mkdir -p "$HOME/.poshthemes"
|
mkdir -p "$HOME/.poshthemes"
|
||||||
@@ -136,43 +156,40 @@ ensure_docker_daemon() {
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
echo "No se detectó un demonio de Docker en ejecución." >&2
|
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
|
return 1
|
||||||
}
|
}
|
||||||
|
|
||||||
ensure_colima_daemon() {
|
wait_for_docker_desktop() {
|
||||||
if ensure_docker_daemon; then
|
local attempts=0
|
||||||
return 0
|
local max_attempts=40
|
||||||
fi
|
local delay=5
|
||||||
|
|
||||||
if ! command -v colima >/dev/null 2>&1; then
|
echo "Esperando a que Docker Desktop termine de iniciar…"
|
||||||
echo "Colima no está instalado; no se puede iniciar un daemon Docker automáticamente." >&2
|
while (( attempts < max_attempts )); do
|
||||||
return 1
|
if docker info >/dev/null 2>&1; then
|
||||||
fi
|
echo "Docker Desktop está operativo."
|
||||||
|
return 0
|
||||||
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
|
||||||
fi
|
sleep "$delay"
|
||||||
|
attempts=$((attempts + 1))
|
||||||
|
done
|
||||||
|
|
||||||
sleep 2
|
echo "Docker Desktop no respondió después de $((max_attempts * delay)) segundos." >&2
|
||||||
docker context use colima >/dev/null 2>&1 || true
|
return 1
|
||||||
ensure_docker_daemon
|
|
||||||
return $?
|
|
||||||
}
|
}
|
||||||
|
|
||||||
install_docker_stack() {
|
install_docker_stack() {
|
||||||
echo "Instalando Docker CLI y utilidades…"
|
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 "Abriendo Docker Desktop…"
|
||||||
echo "Se omitió Portainer porque no hay un daemon Docker en ejecución." >&2
|
open -gj -a Docker || open -a Docker || true
|
||||||
echo "Sugerencia: inicia Colima manualmente con 'colima start' y vuelve a ejecutar la opción D." >&2
|
|
||||||
|
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
|
return
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@@ -234,8 +251,9 @@ BANNER
|
|||||||
|
|
||||||
echo ""
|
echo ""
|
||||||
main_menu
|
main_menu
|
||||||
|
|
||||||
echo "=============================================="
|
echo "=============================================="
|
||||||
echo " Instalación completada."
|
echo " Instalación completada."
|
||||||
echo "=============================================="
|
echo "=============================================="
|
||||||
echo ""
|
echo ""
|
||||||
|
echo "Para aplicar la configuración ejecuta ahora:"
|
||||||
|
echo "source ~/.zshrc"
|
||||||
|
|||||||
Reference in New Issue
Block a user