google-labs-jules[bot] 8c12cdad14 refactor(zsh): rename help function to zsh-help (#14)
This commit refactors the Zsh help function based on user feedback.

The following changes have been made:
- The function `zsh_ayuda` has been renamed to `zsh_help`.
- The alias `ayuda` has been updated to `zsh-help`.
- The help text within the function has been updated to reflect the new command name.

Co-authored-by: google-labs-jules[bot] <161369871+google-labs-jules[bot]@users.noreply.github.com>
2025-11-19 12:46:15 -06:00
2025-11-19 10:53:38 -06:00

🚀 Omarchy Setup Script v3.0.0

Script de instalación y configuración modular para Arch Linux / Omarchy con menú interactivo.

🎯 Características Principales

  • Estructura Modular: Scripts independientes para cada componente
  • 🎨 Menú Interactivo: Selecciona qué instalar según tus necesidades
  • 🌀 Progreso Limpio: Las tareas en background muestran el estado 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

Instalación rápida

# Clonar el repositorio
git clone https://github.com/marcogll/omarchy_setup.git
cd omarchy_setup

# Ejecutar el script maestro
./omarchy-setup.sh

📦 Estructura Modular

omarchy_zsh_setup/
├── omarchy-setup.sh          # Script maestro con menú interactivo
├── modules/
│   ├── common.sh              # Funciones comunes (colores, logging, etc.)
│   ├── apps.sh                # Instalación de aplicaciones
│   ├── zsh-config.sh          # Configuración de Zsh
│   ├── docker.sh              # Docker y Portainer
│   ├── zerotier.sh            # ZeroTier VPN
│   ├── printer.sh             # Configuración de impresoras (CUPS)
│   ├── mouse_cursor.sh        # Tema de cursor Bibata
│   ├── icon_manager.sh        # Gestor de temas de iconos
│   ├── ssh-keyring.sh         # Sincronización de claves SSH con GNOME Keyring
│   ├── davinci-resolve.sh     # DaVinci Resolve (Intel Edition)
└── Readme.md

🎮 Uso del Menú Interactivo

Al ejecutar ./omarchy-setup.sh, verás un menú con las siguientes opciones:

╔════════════════════════════════════════════════════════════╗
║  🌀 Omarchy Setup Script — Configuración Modular          ║
╚════════════════════════════════════════════════════════════╝

Selecciona las opciones que deseas instalar:

  1) 📦 Instalar Aplicaciones (VS Code, VLC, drivers, etc.)
  2) 🐚 Configurar Zsh (shell, plugins, config)
  3) 🐳 Instalar Docker y Portainer
  4) 🌐 Instalar ZeroTier VPN
  5) 🖨️  Configurar Impresoras (CUPS)
  6) 🖱️ Instalar Tema de Cursor (Bibata)
  7) 🎨 Gestionar Temas de Iconos (Papirus, Tela, etc.)
  K) 🔐 Sincronizar claves SSH con GNOME Keyring
  F) 💾 Habilitar Formatos FAT/exFAT/NTFS/ext4
  H) 🎨 Instalar Configuración de Hyprland
  R) 🎬 Instalar DaVinci Resolve (Intel Edition)
  A) ✅ Instalar Todo (opciones 1, 2, K, 3, 4, 5, 6, 7, F, H)
  0) 🚪 Salir

Nota: La opción A) Instalar Todo ejecuta los módulos 1, 2, K, 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/.

🌀 Progreso limpio: Los módulos en background informan su avance sin animaciones invasivas; toda la salida detallada se imprime limpia y se escribe en ./logs/.

📋 Módulos Disponibles

1. 📦 Aplicaciones (apps.sh)

  • 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)

  • 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

3. 🐳 Docker (docker.sh)

  • Instalación de Docker y Docker Compose
  • Configuración de servicios
  • Instalación de Portainer
  • Agregar usuario al grupo docker

4. 🌐 ZeroTier (zerotier.sh)

  • Instalación de ZeroTier One
  • Configuración de servicio
  • Instrucciones para unirse a redes

5. 🖨️ Impresoras (printer.sh)

  • Instalación de CUPS
  • Drivers comunes de impresora

6. 🖱️ Tema de Cursor (mouse_cursor.sh)

  • Instala el tema de cursor Bibata-Modern-Ice.
  • Configura el cursor para Hyprland y aplicaciones GTK.

7. 🎨 Gestor de Iconos (icon_manager.sh)

  • Menú interactivo para instalar y cambiar entre temas de iconos como Papirus, Tela y Candy.

K. 🔐 Sincronizar Claves SSH (ssh-keyring.sh)

  • Inicia/activa GNOME Keyring para componentes ssh y secrets
  • Exporta SSH_AUTH_SOCK y registra claves desde ~/.ssh usando ssh-add
  • Evita duplicados mediante fingerprints y muestra un resumen al finalizar

F. 💾 Soporte de Formatos (disk-format.sh)

  • Instala utilidades para FAT32, exFAT, NTFS y ext4
  • Añade herramientas gráficas (GParted, GNOME Disks) para formateo manual

R. 🎬 DaVinci Resolve (davinci-resolve.sh)

  • Configuración de librerías y wrapper

🔧 Ejecutar Módulos Individualmente

Cada módulo puede ejecutarse de forma independiente:

# Instalar solo aplicaciones
./modules/apps.sh

# Configurar solo Zsh
./modules/zsh-config.sh

# Sincronizar claves SSH con GNOME Keyring
./modules/ssh-keyring.sh

# Instalar Docker
./modules/docker.sh

🌐 Instalación desde URL

Nota: El script requiere que los módulos estén presentes localmente. Se recomienda clonar el repositorio completo.

# Clonar el repositorio
git clone https://github.com/marcogll/omarchy_setup.git
cd omarchy_setup
./omarchy-setup.sh

Características de los Módulos

📦 Aplicaciones

  • Herramientas base: git, curl, wget, base-devel, stow
  • Editores:
    • VS Code (desde AUR: visual-studio-code-bin)
    • Cursor (desde AUR: cursor-bin)
  • Multimedia:
    • VLC con todos los plugins (vlc-plugins-all)
    • Audacity (editor de audio)
    • Inkscape (editor gráfico vectorial)
    • ffmpeg, gstreamer con plugins
    • yt-dlp (descarga de videos)
  • Red y transferencia:
    • FileZilla (cliente FTP)
    • Telegram Desktop
    • scrcpy (control Android desde PC)
  • 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
  • Drivers Intel Iris Xe:
    • Mesa y Vulkan (gráficos 3D)
    • Intel Media Driver (aceleración de video VA-API)
    • OpenCL (Intel Compute Runtime desde AUR)
    • Codecs y herramientas de hardware acceleration
  • Desde AUR:
    • keyd (remapeo de teclado)
    • fragments (cliente BitTorrent)
    • logiops (driver Logitech)
    • ltunify (Logitech Unifying Receiver)
    • TeamViewer (acceso remoto, con daemon habilitado)
    • intel-compute-runtime (OpenCL para Intel)

🐚 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

🔐 GNOME Keyring SSH

  • Arranca el daemon de GNOME Keyring con componentes de ssh y secrets
  • Garantiza que SSH_AUTH_SOCK apunte al socket del keyring (persistido en ~/.config/environment.d)
  • Busca claves privadas en ~/.ssh (excluyendo .pub y certificados) y las registra con ssh-add
  • Evita añadir claves duplicadas y muestra cómo verificar con ssh-add -l

🐳 Docker

  • Portainer (interfaz web de gestión)
  • Usuario agregado al grupo docker
  • Servicios habilitados y configurados

🌐 ZeroTier

  • ZeroTier One VPN
  • Servicio configurado y habilitado
  • Instrucciones para unirse a redes

🖨️ Impresoras

  • CUPS (Common Unix Printing System)
  • Drivers comunes de impresora
  • Interfaz web en http://localhost:631
  • Soporte para impresoras de red

🎬 DaVinci Resolve

  • Instalación para Intel GPU
  • Configuración de OpenCL
  • Ajuste de librerías del sistema
  • Wrapper para ejecución

📦 Paquetes instalados

Ver lista completa (click para expandir)

Sistema Base

  • zsh, zsh-completions
  • oh-my-posh-bin (desde AUR)
  • git, curl, wget
  • yay (AUR helper, compilado desde AUR)

Desarrollo

  • python, python-pip, python-virtualenv
  • nodejs, npm
  • go (Golang)
  • docker, docker-compose
  • base-devel (herramientas de compilación)

Utilidades de Terminal

  • eza (ls mejorado)
  • bat (cat mejorado)
  • zoxide (cd inteligente)
  • fastfetch (info del sistema)
  • htop, btop (monitores del sistema)
  • tree (visualización de directorios)

Multimedia y Control

  • yt-dlp, ffmpeg
  • playerctl, brightnessctl, pamixer
  • audacity, inkscape

Red y Seguridad

  • zerotier-one (desde AUR)
  • gnome-keyring, libsecret, seahorse
  • lsof, net-tools
  • teamviewer

Utilidades del Sistema

  • nano, unzip, tar
  • p7zip, unrar

Instalaciones Adicionales

  • speedtest-cli (vía pip)

🎯 Durante la instalación

El script ejecuta los siguientes pasos:

  1. Verificación de requerimientos (root, Arch Linux, conexión a Internet)
  2. Instalación de paquetes base desde repositorios oficiales
  3. Instalación de yay desde AUR (si no está instalado)
  4. Configuración de Docker (servicio y permisos de usuario)
  5. Instalación de Oh My Zsh y plugins
  6. Configuración de .zshrc y tema Catppuccin desde GitHub
  7. Configuración de TeamViewer (servicio)
  8. Instalación de ZeroTier One desde AUR (opcional)
  9. Configuración de GNOME Keyring (opcional)
  10. Configuración de claves SSH (opcional)

Preguntas interactivas:

  • ZeroTier Network ID: Si deseas unirte a una red ZeroTier (opcional)
  • GNOME Keyring: Si deseas configurar el almacén de contraseñas
  • Claves SSH: Si deseas añadir claves SSH existentes al agente

🔑 GNOME Keyring

El keyring guarda contraseñas de forma segura:

  • Git (credential helper)
  • SSH keys (almacenadas de forma segura)
  • Aplicaciones GNOME

Configuración automática:

El script configura automáticamente:

  • PAM para auto-desbloqueo del keyring
  • Inicio automático de gnome-keyring-daemon
  • Integración con SSH agent

Comandos útiles:

# Abrir gestor de contraseñas
seahorse

# Ver estado del keyring
gnome-keyring-daemon --version

# Comandos de ZeroTier (aliases en .zshrc)
zt              # Alias de sudo zerotier-cli
ztstatus        # Ver redes conectadas (listnetworks)
ztinfo          # Info del nodo (info)

⚙️ Configuración incluida

Aliases de Arch Linux

pacu            # Actualizar sistema
paci <pkg>      # Instalar paquete
pacr <pkg>      # Remover paquete
pacs <query>    # Buscar paquete
yayu            # Actualizar AUR
yayi <pkg>      # Instalar desde AUR

Git shortcuts

gs              # git status
ga              # git add
gc              # git commit
gcm "msg"       # git commit -m
gp              # git push
gl              # git pull
gco <branch>    # git checkout
gcb <branch>    # git checkout -b
glog            # git log gráfico
gac "msg"       # add + commit

Docker

dc              # docker compose
d               # docker
dps             # docker ps -a
di              # docker images
dex <name> sh   # docker exec -it
dlog <name>     # docker logs -f

Python

py              # python
venv create     # Crear .venv
venv on         # Activar
venv off        # Desactivar
pir             # pip install -r requirements.txt
pipf            # pip freeze > requirements.txt

yt-dlp

ytm <URL>           # Descargar audio MP3 320kbps
ytm "lofi beats"    # Buscar y descargar
ytv <URL>           # Descargar video MP4 (calidad por defecto)
ytv <URL> 1080      # Descargar video en 1080p
ytv <URL> 720       # Descargar video en 720p
ytls                # Listar últimos descargas

Descargas en: ~/Videos/YouTube/{Music,Videos}/

NPM

nrs             # npm run start
nrd             # npm run dev
nrb             # npm run build
nrt             # npm run test
ni              # npm install
nid             # npm install --save-dev
nig             # npm install -g

Utilidades

mkcd <dir>          # mkdir + cd
extract <file>      # Extraer cualquier archivo
killport <port>     # Matar proceso en puerto
serve [port]        # Servidor HTTP (default 8000)
clima               # Ver clima Saltillo

🌐 ZeroTier Network ID

Tu Network ID tiene formato: a0cbf4b62a1234567 (16 caracteres hex)

Dónde encontrarlo:

  1. Ve a https://my.zerotier.com
  2. Selecciona tu red
  3. Copia el Network ID

Después de la instalación:

  1. Ve a tu panel de ZeroTier
  2. Busca el nuevo dispositivo
  3. Autorízalo marcando el checkbox

Comandos útiles:

# Ver redes
ztstatus

# Unirse a red
sudo zerotier-cli join <network-id>

# Salir de red
sudo zerotier-cli leave <network-id>

# Info del nodo
ztinfo

📂 Estructura creada

$HOME/
├── .zshrc                          # Configuración de Zsh (descargado desde GitHub)
├── .zshrc.local                   # Config local (opcional, no creado automáticamente)
├── .oh-my-zsh/                    # Oh My Zsh
│   └── custom/plugins/            # Plugins adicionales
│       ├── zsh-autosuggestions/
│       └── zsh-syntax-highlighting/
├── .poshthemes/                   # Temas Oh My Posh
│   └── catppuccin_frappe.omp.json # Tema Catppuccin Frappe
├── .zsh_functions/                # Funciones personalizadas (directorio creado)
├── Videos/YouTube/                # Descargas de yt-dlp
│   ├── Music/                     # Audios MP3
│   └── Videos/                    # Videos MP4
├── .ssh/                          # Claves SSH (si existen)
└── omarchy-setup.log             # Log de instalación

🔄 Después de la instalación

1. Reiniciar sesión o terminal (IMPORTANTE)

⚠️ REINICIO REQUERIDO si se instalaron servicios como TeamViewer o ZeroTier.

# Cerrar y volver a abrir la terminal para usar Zsh
# O cerrar sesión y volver a entrar para aplicar:
# - Cambio de shell a Zsh
# - Grupos (docker)
# - Permisos del sistema

2. Verificar instalación

# Ver versión de Zsh
zsh --version

# Ver tema Oh My Posh
oh-my-posh version

# Verificar Docker
docker ps

# Ver ZeroTier (si se configuró)
ztstatus

# Ver TeamViewer (si se instaló)
teamviewer info

# Actualizar sistema
pacu

3. Configuraciones opcionales

# Crear archivo de configuración local
nano ~/.zshrc.local

# Ejemplo de contenido:
export OPENAI_API_KEY="sk-..."
export GITHUB_TOKEN="ghp_..."
alias miproyecto="cd ~/Projects/mi-app && code ."

🛠️ Solución de problemas

Docker no funciona sin sudo

# Verificar que estás en el grupo docker
groups  # Debe incluir 'docker'

# Si no aparece, reinicia sesión o ejecuta:
newgrp docker

# Verificar acceso
docker ps

Git sigue pidiendo contraseña

# Verificar credential helper
git config --global credential.helper

# Debe ser: libsecret

# Si no, configurar:
git config --global credential.helper libsecret

# Abrir Seahorse y verificar keyring
seahorse

# Verificar que el keyring está corriendo
pgrep -u "$USER" gnome-keyring-daemon

ZeroTier no conecta

# Verificar servicio
sudo systemctl status zerotier-one

# Ver logs
sudo journalctl -u zerotier-one -f

# Reiniciar servicio
sudo systemctl restart zerotier-one

# Verificar que autorizaste el nodo en https://my.zerotier.com
ztinfo
ztstatus

Oh My Posh no se muestra correctamente

Para que el tema de Oh My Posh se visualice correctamente, es esencial tener instalada una "Nerd Font". Estas fuentes incluyen los íconos y símbolos especiales que usa el prompt.

El script no instala fuentes automáticamente, pero puedes hacerlo fácilmente con el siguiente comando:

# Instalar la fuente recomendada (Meslo LGM Nerd Font)
oh-my-posh font install meslo

Después de instalar la fuente, debes configurar tu emulador de terminal para que la use. Este paso es crucial y varía según la terminal que utilices (por ejemplo, en GNOME Terminal, Konsole, Alacritty, etc., deberás ir a sus preferencias y seleccionar "MesloLGM Nerd Font").

Verificaciones adicionales:

# Verificar que oh-my-posh está instalado
which oh-my-posh

# Verificar que el tema existe
ls ~/.poshthemes/catppuccin_frappe.omp.json

# Listar fuentes para confirmar que Meslo está instalada
fc-list | grep -i "meslo"

El shell no cambió a Zsh

# Verificar shell actual
echo $SHELL

# Cambiar manualmente
chsh -s $(which zsh)

# Cerrar y abrir nueva terminal

📚 Recursos


🆘 Soporte

Si encuentras problemas:

  1. Revisa los mensajes de error durante la instalación
  2. Verifica que cerraste sesión después de instalar (para aplicar grupos)
  3. Comprueba que los grupos se aplicaron: groups
  4. Verifica que los módulos están presentes: ls modules/
  5. Ejecuta módulos individualmente para aislar problemas
  6. Abre un issue en: https://github.com/marcogll/scripts_mg/issues

Verificar Instalación de Módulos

# Verificar que todos los módulos existen
ls -la modules/

# Ejecutar un módulo individual para debug
bash -x modules/apps.sh

🔧 Agregar Nuevos Módulos

Para agregar un nuevo módulo:

  1. Crea un archivo en modules/nombre-modulo.sh:
#!/usr/bin/env bash
# ===============================================================
# nombre-modulo.sh - Descripción del módulo
# ===============================================================

SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
source "${SCRIPT_DIR}/common.sh"

install_nombre_modulo() {
    log_step "Instalación de Nombre Módulo"

    # Tu código aquí
    log_info "Instalando paquetes..."
    sudo pacman -S --noconfirm --needed paquete1 paquete2 || {
        log_error "Error al instalar paquetes"
        return 1
    }

    log_success "Módulo instalado correctamente"
    return 0
}

# Ejecutar si se llama directamente
if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then
    install_nombre_modulo "$@"
fi
  1. Agrega el módulo al menú en omarchy-setup.sh:

Dentro del script omarchy-setup.sh, localiza el array asociativo MODULES y añade una nueva línea.

# --- Definición de Módulos ---
# Clave: Opción del menú
# Valor: "Nombre del Fichero;Función Principal;Descripción;Tipo (bg/fg)"
declare -A MODULES
MODULES=(
    ["1"]="apps;run_module_main;📦 Instalar Aplicaciones;bg"
    # ... otros módulos ...
    ["N"]="nombre-modulo;install_nombre_modulo;🚀 Mi Nuevo Módulo;fg"
)
  • Clave ("N"): La tecla que el usuario presionará en el menú.
  • Valor: Una cadena de texto con 4 partes separadas por punto y coma (;):
    1. nombre-modulo: El nombre del fichero .sh sin la extensión.
    2. install_nombre_modulo: La función dentro de ese fichero que se debe ejecutar.
    3. 🚀 Mi Nuevo Módulo: La descripción que aparecerá en el menú.
    4. fg o bg: fg (foreground) para scripts interactivos, bg (background) para tareas que pueden usar un spinner.
  1. Si quieres incluirlo en la opción "Instalar Todo", añade la clave del menú (en este caso, "N") al array INSTALL_ALL_CHOICES.

📝 Changelog

v3.0.0 (2025-01-XX)

  • Nueva estructura modular: Scripts independientes para cada componente
  • 🎨 Menú interactivo: Selecciona qué instalar según tus necesidades
  • 🎨 Interfaz mejorada: Colores y mensajes claros durante la instalación
  • 📦 Módulos disponibles:
    • Aplicaciones (apps.sh)
    • Zsh (zsh-config.sh)
    • Docker y Portainer (docker.sh)
    • ZeroTier (zerotier.sh)
    • Impresoras CUPS (printer.sh)
    • Tema de Cursor (mouse_cursor.sh)
    • DaVinci Resolve (davinci-resolve.sh)
    • Gestor de Iconos (icon_manager.sh)

v2.8.1 (2025-11-02)

  • Versión unificada con estética Catppuccin
  • Instalación mejorada de paquetes con manejo de errores robusto
  • oh-my-posh instalado desde AUR automáticamente
  • Configuración .zshrc descargada desde GitHub

📄 Licencia

MIT License - Libre de usar y modificar


👤 Autor

Marco


# Instalar en una línea
bash <(curl -fsSL https://raw.githubusercontent.com/marcogll/scripts_mg/main/omarchy_zsh_setup/omarchy-setup.sh)

📝 Notas importantes

  • Shell por defecto: El módulo de Zsh modifica .bashrc para que las terminales nuevas usen Zsh.

🚀 Próximos Pasos

  1. Ejecuta ./omarchy-setup.sh para ver el menú interactivo
  2. Selecciona los módulos que deseas instalar
  3. Revisa los mensajes durante la instalación
  4. Reinicia o cierra sesión después de instalar servicios
  5. Disfruta de tu configuración personalizada

🚀 ¡Disfruta tu nuevo setup modular de Omarchy!

Description
No description provided
Readme 17 MiB
Languages
Lua 49%
Shell 39.9%
CSS 9.2%
GLSL 1.9%