19 KiB
🚀 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
- 🎨 Interfaz Mejorada: Colores y mensajes claros durante la instalación
- 🔧 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
│ ├── 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.)
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, 3, 4, 5, 6, 7, F, H)
0) 🚪 Salir
ℹ️ Nota: La opción
A) Instalar Todoejecuta 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/.
📋 Módulos Disponibles
1. 📦 Aplicaciones (apps.sh)
- Editores como VS Code y Cursor (desde AUR)
2. 🐚 Zsh (zsh-config.sh)
- Modifica
.bashrcpara 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.
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
# 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
- 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
- Modifica
.bashrcpara lanzar Zsh automáticamente
🐳 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:
- Verificación de requerimientos (root, Arch Linux, conexión a Internet)
- Instalación de paquetes base desde repositorios oficiales
- Instalación de yay desde AUR (si no está instalado)
- Configuración de Docker (servicio y permisos de usuario)
- Instalación de Oh My Zsh y plugins
- Configuración de .zshrc y tema Catppuccin desde GitHub
- Configuración de TeamViewer (servicio)
- Instalación de ZeroTier One desde AUR (opcional)
- Configuración de GNOME Keyring (opcional)
- 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:
- Ve a https://my.zerotier.com
- Selecciona tu red
- Copia el Network ID
Después de la instalación:
- Ve a tu panel de ZeroTier
- Busca el nuevo dispositivo
- 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
# Verificar instalación
which oh-my-posh
oh-my-posh version
# Verificar que el tema existe
ls ~/.poshthemes/catppuccin_frappe.omp.json
# Verificar que tienes una Nerd Font instalada
# (El script NO instala fuentes automáticamente)
fc-list | grep -i nerd
# Si no tienes Nerd Font, instala una:
# - Nerd Fonts: https://www.nerdfonts.com/
El shell no cambió a Zsh
# Verificar shell actual
echo $SHELL
# Cambiar manualmente
chsh -s $(which zsh)
# Cerrar y abrir nueva terminal
📚 Recursos
- Arch Wiki: https://wiki.archlinux.org/
- Oh My Zsh: https://ohmyz.sh/
- Oh My Posh: https://ohmyposh.dev/
- Catppuccin Theme: https://github.com/catppuccin/catppuccin
- ZeroTier: https://www.zerotier.com/
- yt-dlp: https://github.com/yt-dlp/yt-dlp
- Nerd Fonts: https://www.nerdfonts.com/ (requerido para iconos del prompt)
- yay AUR Helper: https://github.com/Jguer/yay
🆘 Soporte
Si encuentras problemas:
- Revisa los mensajes de error durante la instalación
- Verifica que cerraste sesión después de instalar (para aplicar grupos)
- Comprueba que los grupos se aplicaron:
groups - Verifica que los módulos están presentes:
ls modules/ - Ejecuta módulos individualmente para aislar problemas
- 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:
- 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
- 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 (
;):nombre-modulo: El nombre del fichero.shsin la extensión.install_nombre_modulo: La función dentro de ese fichero que se debe ejecutar.🚀 Mi Nuevo Módulo: La descripción que aparecerá en el menú.fgobg:fg(foreground) para scripts interactivos,bg(background) para tareas que pueden usar un spinner.
- Si quieres incluirlo en la opción "Instalar Todo", añade la clave del menú (en este caso,
"N") al arrayINSTALL_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
.zshrcdescargada desde GitHub
📄 Licencia
MIT License - Libre de usar y modificar
👤 Autor
Marco
- GitHub: @marcogll
- Repo: scripts_mg
# 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
.bashrcpara que las terminales nuevas usen Zsh.
🚀 Próximos Pasos
- Ejecuta
./omarchy-setup.shpara ver el menú interactivo - Selecciona los módulos que deseas instalar
- Revisa los mensajes durante la instalación
- Reinicia o cierra sesión después de instalar servicios
- Disfruta de tu configuración personalizada
🚀 ¡Disfruta tu nuevo setup modular de Omarchy!