mirror of
https://github.com/marcogll/omarchy_setup.git
synced 2026-01-13 13:25:16 +00:00
feat: Enhance README and setup script with improved spinner UI and retry logic for module execution
This commit is contained in:
20
Readme.md
20
Readme.md
@@ -6,7 +6,8 @@ Script de instalación y configuración **modular** para **Arch Linux / Omarchy*
|
|||||||
|
|
||||||
- **✅ Estructura Modular**: Scripts independientes para cada componente
|
- **✅ Estructura Modular**: Scripts independientes para cada componente
|
||||||
- **🎨 Menú Interactivo**: Selecciona qué instalar según tus necesidades
|
- **🎨 Menú Interactivo**: Selecciona qué instalar según tus necesidades
|
||||||
- **🎨 Interfaz Mejorada**: Colores y mensajes claros durante la instalación
|
- **🌀 Spinner Inteligente**: Las tareas en background muestran progreso sin invadir los prompts interactivos
|
||||||
|
- **🔐 Sesión Sudo Persistente**: Reutiliza la contraseña durante toda la ejecución para evitar interrupciones
|
||||||
- **🔧 Fácil de Extender**: Agrega nuevos módulos fácilmente
|
- **🔧 Fácil de Extender**: Agrega nuevos módulos fácilmente
|
||||||
|
|
||||||
## ⚡ Instalación rápida
|
## ⚡ Instalación rápida
|
||||||
@@ -27,7 +28,7 @@ omarchy_zsh_setup/
|
|||||||
├── omarchy-setup.sh # Script maestro con menú interactivo
|
├── omarchy-setup.sh # Script maestro con menú interactivo
|
||||||
├── modules/
|
├── modules/
|
||||||
│ ├── common.sh # Funciones comunes (colores, logging, etc.)
|
│ ├── common.sh # Funciones comunes (colores, logging, etc.)
|
||||||
│ ├── apps.sh # Instalación de aplicacionesç
|
│ ├── apps.sh # Instalación de aplicaciones
|
||||||
│ ├── zsh-config.sh # Configuración de Zsh
|
│ ├── zsh-config.sh # Configuración de Zsh
|
||||||
│ ├── docker.sh # Docker y Portainer
|
│ ├── docker.sh # Docker y Portainer
|
||||||
│ ├── zerotier.sh # ZeroTier VPN
|
│ ├── zerotier.sh # ZeroTier VPN
|
||||||
@@ -65,12 +66,19 @@ Selecciona las opciones que deseas instalar:
|
|||||||
|
|
||||||
> ℹ️ **Nota:** La opción `A) Instalar Todo` ejecuta los módulos 1, 2, 3, 4, 5, 6, 7, F y H. DaVinci Resolve (`R`) no se incluye aquí; instálalo manualmente cuando ya tengas el ZIP en `~/Downloads/`.
|
> ℹ️ **Nota:** La opción `A) Instalar Todo` ejecuta los módulos 1, 2, 3, 4, 5, 6, 7, F y H. DaVinci Resolve (`R`) no se incluye aquí; instálalo manualmente cuando ya tengas el ZIP en `~/Downloads/`.
|
||||||
|
|
||||||
|
> 🌀 **Spinner inteligente:** Los módulos en background muestran una animación de progreso pero detienen la animación antes de cualquier interacción con el usuario; toda la salida detallada se imprime limpia y se escribe en `./logs/`.
|
||||||
|
|
||||||
## 📋 Módulos Disponibles
|
## 📋 Módulos Disponibles
|
||||||
|
|
||||||
### 1. 📦 Aplicaciones (`apps.sh`)
|
### 1. 📦 Aplicaciones (`apps.sh`)
|
||||||
- Editores como VS Code y Cursor (desde AUR)
|
- Editores como VS Code y Cursor (desde AUR)
|
||||||
|
- Configura GNOME Keyring como agente de contraseñas y SSH, iniciando el daemon y exportando `SSH_AUTH_SOCK`
|
||||||
|
- Detecta claves privadas en `~/.ssh` y las registra automáticamente con `ssh-add`
|
||||||
|
- Instala y habilita servicios complementarios (keyd, logiops, TeamViewer, etc.)
|
||||||
|
|
||||||
### 2. 🐚 Zsh (`zsh-config.sh`)
|
### 2. 🐚 Zsh (`zsh-config.sh`)
|
||||||
|
- Instala Oh My Zsh y Oh My Posh (Catppuccin Frappe) con autocompletado
|
||||||
|
- Clona/actualiza plugins externos como `zsh-autosuggestions` y `zsh-syntax-highlighting` (con fallback al sistema)
|
||||||
- Modifica `.bashrc` para lanzar Zsh automáticamente
|
- Modifica `.bashrc` para lanzar Zsh automáticamente
|
||||||
|
|
||||||
### 3. 🐳 Docker (`docker.sh`)
|
### 3. 🐳 Docker (`docker.sh`)
|
||||||
@@ -148,6 +156,11 @@ cd omarchy_setup
|
|||||||
- Telegram Desktop
|
- Telegram Desktop
|
||||||
- scrcpy (control Android desde PC)
|
- scrcpy (control Android desde PC)
|
||||||
- **Utilidades**: neofetch, htop, fastfetch, btop, vim, nano, tmux
|
- **Utilidades**: neofetch, htop, fastfetch, btop, vim, nano, tmux
|
||||||
|
- **Seguridad y sincronización**:
|
||||||
|
- GNOME Keyring + libsecret + Seahorse
|
||||||
|
- Configuración automática del agente SSH y carga de claves en `~/.ssh`
|
||||||
|
- openssh, rsync
|
||||||
|
- Recomendado cerrar sesión tras la instalación para que las variables de entorno del keyring se apliquen a nuevas terminales
|
||||||
- **Flatpak**: Sistema de paquetes universal
|
- **Flatpak**: Sistema de paquetes universal
|
||||||
- **Drivers Intel Iris Xe**:
|
- **Drivers Intel Iris Xe**:
|
||||||
- Mesa y Vulkan (gráficos 3D)
|
- Mesa y Vulkan (gráficos 3D)
|
||||||
@@ -163,6 +176,9 @@ cd omarchy_setup
|
|||||||
- intel-compute-runtime (OpenCL para Intel)
|
- intel-compute-runtime (OpenCL para Intel)
|
||||||
|
|
||||||
### 🐚 Zsh
|
### 🐚 Zsh
|
||||||
|
- Oh My Zsh + Oh My Posh (tema Catppuccin Frappe)
|
||||||
|
- Plugins externos gestionados automáticamente (`zsh-autosuggestions`, `zsh-syntax-highlighting`)
|
||||||
|
- Genera el archivo de autocompletado `_oh-my-posh` en `~/.local/share/zsh/site-functions`
|
||||||
- Modifica `.bashrc` para lanzar Zsh automáticamente
|
- Modifica `.bashrc` para lanzar Zsh automáticamente
|
||||||
|
|
||||||
### 🐳 Docker
|
### 🐳 Docker
|
||||||
|
|||||||
@@ -244,12 +244,40 @@ run_module_with_retry() {
|
|||||||
local choice=$1
|
local choice=$1
|
||||||
local max_intentos=2
|
local max_intentos=2
|
||||||
local intento_actual=1
|
local intento_actual=1
|
||||||
|
local module_entry="${MODULES[$choice]}"
|
||||||
|
local module_type=""
|
||||||
|
if [[ -n "$module_entry" ]]; then
|
||||||
|
IFS=';' read -r _ _ _ module_type <<< "$module_entry"
|
||||||
|
fi
|
||||||
|
local tmp_output=""
|
||||||
|
if [[ "$module_type" == "bg" ]]; then
|
||||||
|
tmp_output="$(mktemp)"
|
||||||
|
fi
|
||||||
|
|
||||||
while [ $intento_actual -le $max_intentos ]; do
|
while [ $intento_actual -le $max_intentos ]; do
|
||||||
run_module "$choice"
|
local estado_salida=0
|
||||||
local estado_salida=$?
|
if [[ -n "$tmp_output" ]]; then
|
||||||
|
run_module "$choice" >"$tmp_output" 2>&1
|
||||||
|
estado_salida=$?
|
||||||
|
if [[ -s "$tmp_output" ]]; then
|
||||||
|
if declare -F pause_spinner >/dev/null; then
|
||||||
|
pause_spinner
|
||||||
|
fi
|
||||||
|
cat "$tmp_output"
|
||||||
|
fi
|
||||||
|
: > "$tmp_output"
|
||||||
|
if [[ $estado_salida -ne 0 && $intento_actual -lt $max_intentos ]] && declare -F resume_spinner >/dev/null; then
|
||||||
|
resume_spinner
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
run_module "$choice"
|
||||||
|
estado_salida=$?
|
||||||
|
fi
|
||||||
|
|
||||||
if [ $estado_salida -eq 0 ]; then
|
if [ $estado_salida -eq 0 ]; then
|
||||||
|
if [[ -n "$tmp_output" ]]; then
|
||||||
|
rm -f "$tmp_output"
|
||||||
|
fi
|
||||||
return 0 # Éxito, salimos de la función
|
return 0 # Éxito, salimos de la función
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@@ -262,6 +290,9 @@ run_module_with_retry() {
|
|||||||
done
|
done
|
||||||
|
|
||||||
log_error "El módulo falló después de $max_intentos intentos."
|
log_error "El módulo falló después de $max_intentos intentos."
|
||||||
|
if [[ -n "$tmp_output" ]]; then
|
||||||
|
rm -f "$tmp_output"
|
||||||
|
fi
|
||||||
return 1 # Falla definitiva
|
return 1 # Falla definitiva
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user