Files
omarchy_setup/Readme.md
google-labs-jules[bot] 70be3f8f14 refactor: improve and document all modules and Readme.md
This is a major refactoring and documentation effort that touches every module in the project.

- **Exhaustive In-Code Documentation:** Every module script in the `modules/` directory has been updated with detailed comments. This includes header descriptions, explanations for each function, and justifications for complex logic. This greatly improves the maintainability and readability of the code.

- **Code Robustness and Optimization:** Several modules have been refactored to be more robust and efficient. This includes:
  - Optimizing package installations by grouping them into a single `pacman` command.
  - Improving dependency checks.
  - Standardizing the use of helper functions from `common.sh`.
  - Making network operations more resilient.

- **Comprehensive `Readme.md` Update:** The main `Readme.md` has been rewritten to be a complete and professional guide to the project. It now includes:
  - A clear and detailed description of each module.
  - Information on what each module installs and how it works.
  - Instructions for installing the required Nerd Font for `oh-my-posh`.
  - An updated structure that is easier to navigate.
2025-11-18 23:32:40 +00:00

7.7 KiB

🚀 Omarchy Setup Script

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.
  • 🔐 Sesión Sudo Persistente: Reutiliza la contraseña durante toda la ejecución.
  • 🔧 Fácil de Extender: Agrega nuevos módulos fácilmente.

Instalación rápida

git clone https://github.com/marcogll/omarchy_setup.git
cd omarchy_setup
./omarchy-setup.sh

📂 Estructura del Repositorio

omarchy_setup/
├── omarchy-setup.sh      # Script principal con el menú interactivo.
├── modules/              # Directorio con todos los módulos de instalación.
│   ├── common.sh         # Funciones compartidas por todos los módulos.
│   ├── apps.sh           # Instalación de aplicaciones y herramientas.
│   ├── zsh-config.sh     # Configuración de Zsh, Oh My Zsh y Oh My Posh.
│   └── ...               # Otros módulos.
└── hypr_config/          # Configuración de Hyprland (copiada por el módulo).

📋 Módulos Disponibles

A continuación se describe cada uno de los módulos que puedes instalar.

1. Aplicaciones (apps.sh)

Este módulo instala un conjunto de aplicaciones y herramientas esenciales para un entorno de desarrollo y de escritorio completo.

  • Qué instala:

    • Herramientas de sistema: git, curl, htop, fastfetch, stow, gnome-keyring.
    • Editores de código: Visual Studio Code (visual-studio-code-bin) y Cursor (cursor-bin) desde AUR.
    • Multimedia: VLC, Audacity, Inkscape y yt-dlp.
    • Red: FileZilla, Telegram y speedtest-cli.
    • Drivers de Intel: Soporte completo para gráficos Intel Iris Xe, incluyendo Mesa, Vulkan, VA-API para aceleración de video y OpenCL.
    • Utilidades de AUR: keyd (remapeo de teclado), logiops (configuración de ratones Logitech), teamviewer.
  • Cómo funciona:

    • Instala paquetes desde los repositorios oficiales y AUR.
    • Configura GNOME Keyring para actuar como agente de SSH, cargando automáticamente las claves que encuentre en ~/.ssh.
    • Habilita los servicios necesarios para keyd, logiops y teamviewer.

2. Zsh (zsh-config.sh)

Transforma la terminal con Zsh, Oh My Zsh y Oh My Posh, junto con una configuración personalizada que incluye aliases y funciones útiles.

  • Qué instala:

    • zsh y plugins como zsh-syntax-highlighting y zsh-autosuggestions.
    • Oh My Zsh para la gestión de la configuración de Zsh.
    • Oh My Posh como motor para el prompt, con el tema Catppuccin Frappe.
    • Herramientas de terminal como zoxide para una navegación rápida.
  • Cómo funciona:

    • Instala todas las dependencias y clona los repositorios necesarios.
    • Reemplaza tu ~/.zshrc con una versión preconfigurada (creando una copia de seguridad).
    • Cambia tu shell por defecto a Zsh.

¡Importante! Después de instalar este módulo, necesitarás instalar una Nerd Font para que el prompt se vea bien. El script te recomendará instalar la fuente Meslo con el comando: oh-my-posh font install meslo.

3. Docker (docker.sh)

Instala y configura Docker para la gestión de contenedores.

  • Qué instala:

    • docker y docker-compose.
    • (Opcional) Portainer, una interfaz web para gestionar Docker.
  • Cómo funciona:

    • Habilita el servicio de Docker.
    • Añade tu usuario al grupo docker, lo que te permite ejecutar comandos de Docker sin sudo (requiere reiniciar sesión).
    • Te pregunta si quieres instalar Portainer.

4. ZeroTier (zerotier.sh)

Instala el cliente de ZeroTier, una herramienta para crear redes virtuales seguras.

  • Qué instala:

    • El paquete zerotier-one.
  • Cómo funciona:

    • Habilita el servicio de ZeroTier.
    • Te ofrece unirte a una red de ZeroTier de forma interactiva después de la instalación.

5. Impresoras (printer.sh)

Instala y configura el sistema de impresión CUPS.

  • Qué instala:

    • cups, cups-pdf y filtros de impresión.
    • Drivers de impresión genéricos (gutenprint, foomatic-db).
    • Drivers para impresoras Epson desde AUR.
    • avahi para la detección de impresoras en red.
  • Cómo funciona:

    • Habilita los servicios de cups y avahi.
    • Añade tu usuario al grupo lp para que puedas administrar impresoras (requiere reiniciar sesión).

6. Tema de Cursor (mouse_cursor.sh)

Instala un tema de cursor personalizado y lo configura para Hyprland y aplicaciones GTK.

  • Qué instala:

    • El tema de cursor Bibata-Modern-Ice.
  • Cómo funciona:

    • Descarga el tema y lo instala en ~/.icons.
    • Modifica los ficheros de configuración de Hyprland (envs.conf) y GTK (gsettings).

7. Gestor de Iconos (icon_manager.sh)

Un menú interactivo para instalar y cambiar entre diferentes temas de iconos.

  • Qué instala (a elección):

    • Tela (variante Nord).
    • Papirus (estándar o con colores Catppuccin).
    • Candy Icons.
  • Cómo funciona:

    • Clona los repositorios de los temas de iconos desde GitHub.
    • Modifica la configuración de Hyprland (autostart.conf) para que el tema sea persistente.

8. Sincronizar Claves SSH (ssh-keyring.sh)

Añade tus claves SSH existentes al agente de GNOME Keyring para que no tengas que escribir tu passphrase repetidamente.

  • Cómo funciona:
    • Inicia el gnome-keyring-daemon.
    • Busca claves privadas en ~/.ssh y las añade al agente usando ssh-add.
    • Evita añadir claves que ya estén cargadas.

9. Soporte de Formatos (disk-format.sh)

Instala herramientas para poder leer, escribir y formatear particiones con los sistemas de archivos más comunes.

  • Qué instala:
    • dosfstools (para FAT), exfatprogs (para exFAT) y ntfs-3g (para NTFS).
    • Herramientas gráficas como GParted y GNOME Disks.

10. DaVinci Resolve (davinci-resolve.sh)

Un instalador especializado para DaVinci Resolve, enfocado en sistemas con GPUs de Intel.

Nota: Este módulo es complejo y requiere que hayas descargado previamente el fichero ZIP de DaVinci Resolve desde la web de Blackmagic y lo hayas colocado en tu carpeta de ~/Downloads.

  • Cómo funciona:
    • Instala todas las dependencias necesarias, incluyendo librerías de ocl-icd y intel-compute-runtime.
    • Extrae el instalador, aplica parches a las librerías con patchelf y lo copia todo a /opt/resolve.
    • Crea un script "wrapper" y un acceso directo en el menú de aplicaciones para lanzar el programa con la configuración correcta.

11. Configuración de Hyprland (hyprland-config.sh)

Instala una configuración personalizada para el gestor de ventanas Hyprland.

  • Cómo funciona:
    • Hace una copia de seguridad de tu configuración actual en ~/.config/hypr.
    • Copia el contenido de la carpeta hypr_config del repositorio a ~/.config/hypr.
    • Establece el tema de iconos por defecto (Tela Nord) usando el módulo de gestión de iconos.

🔧 Extender el Script

Añadir un nuevo módulo es sencillo:

  1. Crea tu script en la carpeta modules/ (ej. mi-modulo.sh). Asegúrate de que tenga una función principal.
  2. Añádelo al menú en omarchy-setup.sh, dentro del array MODULES. Sigue el formato: "tecla"="nombre-fichero;nombre-funcion;Descripción;tipo".
    • tipo puede ser bg (para tareas en segundo plano) o fg (para tareas interactivas).

📄 Licencia

Este proyecto está bajo la Licencia MIT.