diff --git a/Readme.md b/Readme.md index 891c04c..f111942 100644 --- a/Readme.md +++ b/Readme.md @@ -49,15 +49,16 @@ omarchy_setup/ | Opción | Descripción | Dependencia | | :--- | :--- | :--- | -| **1** | **Aplicaciones** | Repositorios Arch/AUR/Flatpak | +| **1** | **Aplicaciones** | Repositorios Arch/AUR/Flatpak/Homebrew | | **2** | **Zsh Config** | Requiere `mg_dotfiles` | | **3** | **Docker** | Docker + Portainer (Web UI) | -| **5** | **Impresoras** | CUPS + Drivers | -| **6** | **Cursor** | Tema Bibata | -| **7** | **Iconos** | Gestor de temas interactivos | +| **5** | **Impresoras** | CUPS + Drivers Epson | +| **6** | **Cursor** | Tema Bibata Modern Ice | +| **7** | **Iconos** | Gestor de temas interactivos (Tela, Papirus, Candy) | +| **7D** | **Iconos por Defecto** | Tela Nord (automático) | | **S** | **Suspensión** | Activa opción en menú System | | **H** | **Hyprland** | Requiere `mg_dotfiles` | -| **K** | **SSH Keyring** | Sincroniza llaves con gcr-ssh-agent | +| **K** | **SSH Keyring** | Sincroniza llaves con gcr-ssh-agent (GNOME 46+) | | **F** | **Formatos Disco** | FAT/exFAT/NTFS/ext4 | | **T** | **Plantillas** | Documentos en ~/Templates | | **A** | **Instalar Todo** | Ejecuta la mayoría de los módulos | @@ -91,11 +92,12 @@ Este es el script orquestador y el punto de entrada para el usuario. - **Función Principal:** Proporcionar una interfaz de menú interactiva que permite al usuario seleccionar qué módulos de configuración desea ejecutar. - **Características Clave:** - **Menú Dinámico:** Muestra una lista de todos los módulos disponibles, permitiendo al usuario elegir uno, varios ("Instalar Todo") o salir. - - **Gestión de `sudo`:** Solicita la contraseña de `sudo` una vez y la mantiene activa en segundo plano para evitar que el usuario tenga que introducirla repetidamente. - - **Ejecución Modular:** Llama a las funciones principales de los scripts ubicados en el directorio `modules/`. - - **Feedback Visual:** Implementa un "spinner" (indicador de progreso) para las tareas que se ejecutan en segundo plano, mejorando la experiencia del usuario. - - **Registro (`Logging`):** Guarda un registro detallado de toda la sesión de instalación en el directorio `logs/`, lo que facilita la depuración en caso de errores. - - **Verificación del Sistema:** Comprueba que el script se está ejecutando en Arch Linux antes de proceder. + - **Gestión de `sudo`:** Solicita la contraseña de `sudo` una vez y la mantiene activa en segundo plano para evitar que el usuario tenga que introducirla repetidamente. + - **Ejecución Modular:** Llama a las funciones principales de los scripts ubicados en el directorio `modules/`. + - **Feedback Visual:** Implementa un "spinner" (indicador de progreso) para las tareas que se ejecutan en segundo plano, mejorando la experiencia del usuario. + - **Registro (`Logging`):** Guarda un registro detallado de toda la sesión de instalación en el directorio `logs/`, lo que facilita la depuración en caso de errores. + - **Verificación del Sistema:** Comprueba que el script se está ejecutando en Arch Linux antes de proceder. + - **Verificación de Dependencias:** Verifica que `mg_dotfiles` exista en la ruta esperada antes de ejecutar módulos que lo requieren. ### 2. Módulos (`modules/`) @@ -118,14 +120,15 @@ Es uno de los módulos más extensos y se encarga de la instalación de un conju - **Función Principal:** Instalar software esencial de diversas categorías. - **Software Instalado:** - - **Base del Sistema:** `git`, `curl`, `htop`, `btop`, `stow`, `gnome-keyring`, `openssh`, etc. - - **Desarrollo:** `python`, `pip`, `nodejs`, `npm`, `arduino-cli`. También instala `nvm` (Node Version Manager) y `Homebrew` para una gestión de paquetes más flexible. - - **Multimedia:** VLC (y sus codecs), Audacity, Inkscape, `yt-dlp` para descargar vídeos. - - **Red:** FileZilla, Telegram, `speedtest-cli`. - - **AUR:** Visual Studio Code, Cursor, Keyd, Fragments, Logiops, TeamViewer, Antigravity, OpenCode. - - **Drivers para Intel Iris Xe:** Instala todos los paquetes necesarios para el correcto funcionamiento de los gráficos integrados de Intel, incluyendo `mesa`, `vulkan-intel`, y los drivers para la aceleración de vídeo por hardware (VA-API). + - **Base del Sistema:** `git`, `curl`, `wget`, `htop`, `btop`, `fastfetch`, `zoxide`, `stow`, `gnome-keyring`, `openssh`, `rsync`, `usbutils`, `tlp`. + - **Desarrollo:** `python`, `python-pip`, `nodejs`, `npm`, `uv`, `arduino-cli`. También instala `nvm` (Node Version Manager) y `Homebrew` para una gestión de paquetes más flexible. + - **Multimedia:** VLC (y sus codecs), Audacity, Inkscape, `ffmpeg`, `gstreamer`, `gst-plugins-*`, `yt-dlp` para descargar vídeos, herramientas de audio ALSA y pulseaudio. + - **Red:** FileZilla, Telegram, `scrcpy`, `speedtest-cli`. + - **AUR:** Visual Studio Code, Cursor, Keyd, Fragments, Logiops, TeamViewer, Antigravity, OpenCode, Intel Compute Runtime. + - **Drivers para Intel Iris Xe:** Instala todos los paquetes necesarios para el correcto funcionamiento de los gráficos integrados de Intel, incluyendo `mesa`, `vulkan-intel`, `lib32-mesa`, `lib32-vulkan-intel`, y los drivers para la aceleración de vídeo por hardware (VA-API), OpenCL e Intel Compute Runtime. - **Configuraciones Adicionales:** - - Habilita y configura servicios del sistema como `gnome-keyring-daemon` (para gestión de contraseñas y claves SSH), `keyd` y `logiops` (para teclados y ratones avanzados), `teamviewer` y `tlp` (para la gestión avanzada de energía y optimización de la batería). + - Habilita y configura servicios del sistema como `gnome-keyring-daemon` (para gestión de contraseñas), `keyd` y `logiops` (para teclados y ratones avanzados), `teamviewer` y `tlp` (para la gestión avanzada de energía y optimización de la batería). + - **Nota:** La gestión de claves SSH ahora se realiza mediante el módulo `ssh-keyring.sh` usando `gcr-ssh-agent` (para GNOME 46+), no desde este módulo. #### 2.3. `zsh-config.sh` @@ -133,12 +136,13 @@ Este módulo personaliza la experiencia del shell del usuario. - **Función Principal:** Configurar Zsh como el shell principal con una apariencia y funcionalidad mejoradas. - **Acciones Realizadas:** - - **Instalación:** Instala `zsh`, `zsh-completions` y otras utilidades. + - **Instalación:** Instala `zsh`, `zsh-completions`, `zsh-syntax-highlighting`, `zsh-autosuggestions` y dependencias (`unrar`, `p7zip`, `lsof`). Nota: `git`, `zoxide`, `fastfetch` y `yt-dlp` se instalan en el módulo `apps.sh` para evitar duplicidades. - **Oh My Zsh:** Instala el framework "Oh My Zsh" para la gestión de plugins. - **Plugins:** Añade plugins populares como `zsh-autosuggestions` (sugiere comandos mientras escribes) y `zsh-syntax-highlighting` (colorea la sintaxis de los comandos). - **Oh My Posh:** Instala esta herramienta para crear un prompt de terminal altamente personalizable y descarga un tema predefinido (Catppuccin Frappe). - - **.zshrc:** Reemplaza el `~/.zshrc` del usuario por una versión pre-configurada que integra todas estas herramientas y añade alias y funciones útiles, incluyendo una función `zsh_help` que muestra una lista de todos los comandos personalizados. + - **.zshrc:** Reemplaza el `~/.zshrc` del usuario por una versión pre-configurada que integra todas estas herramientas y añade alias y funciones útiles, incluyendo una función `zsh_help` que muestra una lista de todos los comandos personalizados. Si no se puede crear backup, continúa de todas formas. - **Shell por Defecto:** Cambia el shell de inicio de sesión del usuario a Zsh. + - **Integración con .bashrc:** Configura `.bashrc` para ejecutar `exec zsh` automáticamente al iniciar una terminal interactiva. #### 2.4. `docker.sh` @@ -234,11 +238,13 @@ Instala una herramienta de VPN. ## 📝 Notas Importantes -- **Dotfiles**: Este script ahora es **opinionated**. Si no encuentra `mg_dotfiles` en la ruta configurada en `common.sh`, los módulos de Zsh e Hyprland fallarán. +- **Dotfiles**: Este script ahora es **opinionated**. Si no encuentra `mg_dotfiles` en la ruta configurada en `common.sh`, el script mostrará una advertencia y los módulos de Zsh e Hyprland fallarán. +- **Verificación de mg_dotfiles**: Al iniciar el script, se verifica que `mg_dotfiles` existe en la ruta esperada (`~/Work/code/mg_dotfiles`). Si no se encuentra, se mostrarán instrucciones para clonarlo. - **Neovim**: La configuración personalizada de Neovim está disponible en `mg_dotfiles/nvim/`. No se instala automáticamente, pero puede vincularse manualmente con `ln -s ~/Work/code/mg_dotfiles/nvim ~/.config/nvim`. - **Fuentes**: Es imprescindible usar una **Nerd Font** (ej: `CaskaydiaMono NF` o `ttf-firacode-nerd`) para que los iconos de la terminal y Hyprland se visualicen correctamente. - **Reinicio**: Tras la instalación de Docker o el cambio de Shell, es necesario **cerrar sesión** para aplicar los cambios de grupos y entorno. - **Logs**: Cada ejecución genera un log en `logs/omarchy-setup-YYYY-MM-DD_HH-MM-SS.log` +- **SSH Keyring**: A partir de GNOME 46+, la funcionalidad SSH fue movida a `gcr`, por lo que la gestión de claves SSH ahora usa `gcr-ssh-agent` en lugar del componente SSH de `gnome-keyring`. ## 🛠️ Desarrollo diff --git a/installed_software.md b/installed_software.md index d750e90..af8c89e 100644 --- a/installed_software.md +++ b/installed_software.md @@ -13,27 +13,80 @@ Este documento lista todos los componentes que se instalan al ejecutar el script - `git`: Control de versiones - `curl` y `wget`: Descarga de archivos - `vim`: Editor de texto -- `neovim`: Editor de texto moderno (instalado manualmente por el usuario) -- `tree`: Visualizador de directorios en árbol +- `nano`: Editor de texto - `htop`: Monitor de procesos - `btop`: Monitor de procesos mejorado -- `ripgrep` (rg): Buscador de archivos rápido -- `fd`: Buscador de archivos alternativo -- `bat`: Clon de cat con mejoras -- `eza`: Alternativa moderna a ls -- `fzf`: Buscador interactivo +- `fastfetch`: Información del sistema +- `zoxide`: Navegación inteligente de directorios - `tmux`: Terminal multiplexor -- `jq`: Procesador JSON -- `unzip`: Descompresor ZIP -- `p7zip`: Descompresor 7z -- `zip`: Compresor ZIP -- `xdg-utils`: Herramientas de integración con el escritorio -- `bluez` y `bluez-utils`: Soporte Bluetooth -- `pipewire` y `wireplumber`: Audio y video -- `noto-fonts`: Fuente base -- `noto-fonts-cjk`: Fuentes CJK (Chino, Japonés, Coreano) -- `ttf-firacode-nerd`: Fuente con iconos Nerd -- `intel-media-driver`: Drivers para GPU Intel +- `xdg-utils` y `xdg-user-dirs`: Herramientas de integración con el escritorio +- `stow`: Gestión de dotfiles +- `gnome-keyring`: Gestión de contraseñas +- `libsecret`: Librería para gestión de secretos +- `seahorse`: Interfaz gráfica para GNOME Keyring +- `openssh`: Cliente/servidor SSH +- `rsync`: Sincronización de archivos +- `usbutils`: Herramientas para USB +- `tlp`: Gestión de energía y optimización de batería + +### Desarrollo: +- `python` y `python-pip`: Python y su gestor de paquetes +- `nodejs` y `npm`: Node.js y su gestor de paquetes +- `uv`: Gestor de paquetes Python rápido +- `arduino-cli`: Herramientas de línea de comandos para Arduino + +### Multimedia: +- `vlc`: Reproductor multimedia +- `vlc-plugins-all`: Plugins para VLC +- `libdvdcss`: Soporte para DVD +- `audacity`: Editor de audio +- `inkscape`: Editor de gráficos vectoriales +- `ffmpeg`: Framework multimedia +- `gstreamer`: Framework multimedia +- `gst-plugins-good`, `gst-plugins-bad`, `gst-plugins-ugly`: Plugins de GStreamer +- `yt-dlp`: Descarga de videos/audio +- `alsa-utils`: Herramientas de audio ALSA +- `pavucontrol`: Control de volumen PulseAudio + +### Red: +- `filezilla`: Cliente FTP +- `telegram-desktop`: Cliente de mensajería +- `scrcpy`: Mirroring de dispositivos Android +- `speedtest-cli`: Prueba de velocidad de conexión + +### Flatpak: +- `flatpak`: Gestor de paquetes Flatpak + +### Drivers Intel Iris Xe: +- `mesa`: Drivers gráficos +- `vulkan-intel`: Soporte Vulkan para Intel +- `lib32-mesa`: Drivers 32-bit +- `lib32-vulkan-intel`: Soporte Vulkan 32-bit +- `intel-media-driver`: Drivers para decodificación de video +- `libva-utils`: Utilidades VA-API +- `libvdpau-va-gl`: Puente VDPAU a VA-API +- `libva-mesa-driver`: Driver VA-API de Mesa +- `libva-intel-driver`: Driver VA-API de Intel +- `onevpl-intel-gpu`: Intel oneAPI Video Processing Library +- `ocl-icd`: OpenCL ICD Loader +- `libclc`: Biblioteca OpenCL C +- `clinfo`: Información de dispositivos OpenCL + +### Paquetes instalados desde AUR: +- `visual-studio-code-bin`: Editor de código +- `cursor-bin`: Editor de código AI-powered +- `keyd`: Remapeo de teclas a nivel de kernel +- `fragments`: Cliente de torrent para GNOME +- `logiops`: Configuración de dispositivos Logitech +- `ltunify`: Herramienta para Unifying Receiver +- `teamviewer`: Soporte remoto +- `intel-compute-runtime`: OpenCL para Intel +- `antigravity`: Herramienta de gestión de energía +- `opencode`: Herramienta de IA para desarrolladores + +### Otros: +- NVM (Node Version Manager): Gestión de versiones de Node.js +- Homebrew (Linuxbrew): Gestor de paquetes alternativo ### Paquetes instalados desde AUR: - `google-chrome`: Navegador web @@ -51,14 +104,30 @@ Este documento lista todos los componentes que se instalan al ejecutar el script ## 🐚 Opción 2: Configurar Zsh +### Paquetes instalados desde Pacman: +- `zsh`: Shell Zsh +- `zsh-completions`: Completaciones para Zsh +- `zsh-syntax-highlighting`: Coloreado de sintaxis +- `zsh-autosuggestions`: Sugestiones de comandos +- `unrar` y `p7zip`: Descompresores (dependencias para funciones en .zshrc) +- `lsof`: Listado de archivos abiertos (dependencia para funciones en .zshrc) + +### Notas: +- `git`, `zoxide`, `fastfetch` y `yt-dlp` se instalan en la Opción 1 (Aplicaciones) para evitar duplicidades. + ### Pasos realizados: -1. Instala `zsh` desde pacman -2. Cambia el shell del usuario a Zsh -3. Clona `oh-my-zsh` en `~/.oh-my-zsh` -4. Instala `oh-my-posh` desde binario -5. Descarga tema de Oh My Posh (CaskaydiaCove) +1. Instala Zsh y dependencias desde pacman +2. Instala Oh My Zsh en `~/.oh-my-zsh` +3. Instala Oh My Posh (desde pacman, AUR o script oficial) +4. Descarga tema de Oh My Posh (Catppuccin Frappe) +5. Clona plugins de Oh My Zsh: + - `zsh-autosuggestions` + - `zsh-syntax-highlighting` 6. Crea enlace simbólico de `~/.zshrc` desde `mg_dotfiles` -7. Instala plugins de Zsh: `zsh-autosuggestions`, `zsh-syntax-highlighting`, `zsh-completions` +7. Crea enlace simbólico de `~/.zshrc.help` desde `mg_dotfiles` +8. Crea enlaces simbólicos de funciones en `~/.zsh_functions/` desde `mg_dotfiles` +9. Cambia el shell del usuario a Zsh +10. Configura `.bashrc` para ejecutar `exec zsh` automáticamente en terminales interactivas --- @@ -96,12 +165,23 @@ Este documento lista todos los componentes que se instalan al ejecutar el script --- -## 🖱️ Opción 6: Cursor +## 🖱️ Opción 6: Cursor (Bibata Modern Ice) ### Pasos realizados: -1. Descarga tema de cursor Bibata Modern Ice desde GitHub -2. Descomprime en `/usr/share/icons` -3. Ejecuta `update-alternatives` para configurar el cursor por defecto +1. Descarga tema de cursor Bibata Modern Ice desde GitHub (v2.0.7) +2. Descomprime e instala en `~/.icons/` +3. Configura variables de entorno en `~/.config/hypr/envs.conf`: + - `HYPRCURSOR_THEME=Bibata-Modern-Ice` + - `HYPRCURSOR_SIZE=24` + - `XCURSOR_THEME=Bibata-Modern-Ice` + - `XCURSOR_SIZE=24` +4. Configura cursor para aplicaciones GTK usando `gsettings`: + - Tema: `Bibata-Modern-Ice` + - Tamaño: `24` + +### Nota: +- Las variables de entorno configuran el cursor para aplicaciones X11 y Hyprland. +- `gsettings` configura el cursor para aplicaciones GTK y Flatpak. --- @@ -134,16 +214,22 @@ Este documento lista todos los componentes que se instalan al ejecutar el script --- -## 🔐 Opción K: SSH Keyring +## 🔐 Opción K: SSH Keyring (gcr-ssh-agent) ### Pasos realizados: 1. Verifica que `ssh-add` está disponible (openssh) -2. Habilita e inicia el servicio `gcr-ssh-agent.socket` -3. Configura `SSH_AUTH_SOCK` en `$XDG_RUNTIME_DIR/gcr/ssh` -4. Busca todas las claves SSH privadas en `~/.ssh/` -5. Añade cada clave al agente usando `ssh-add` -6. La primera vez, gcr-ssh-agent pide la passphrase y la guarda en el keyring -7. En futuras conexiones, desbloquea automáticamente la clave +2. Crea archivo de configuración `~/.config/environment.d/10-gnome-keyring.conf` con: + - `SSH_AUTH_SOCK=$XDG_RUNTIME_DIR/gcr/ssh` +3. Habilita e inicia el servicio `gcr-ssh-agent.socket` +4. Busca el socket del agente en `/run/user/$UID/gcr/ssh` +5. Busca todas las claves SSH privadas en `~/.ssh/` +6. Añade cada clave al agente usando `ssh-add` +7. La primera vez, gcr-ssh-agent pide la passphrase y la guarda en el keyring +8. En futuras conexiones, desbloquea automáticamente la clave + +### Nota: +- Este módulo usa `gcr-ssh-agent` (para GNOME 46+) en lugar del componente SSH de `gnome-keyring`. +- La gestión de SSH fue movida de `gnome-keyring` a `gcr` en versiones recientes. --- @@ -218,8 +304,11 @@ T. Plantillas de Documentos ## 📝 Notas para el Equipo - **Actualización de este documento**: Cuando se agreguen nuevos módulos o software a los scripts existentes, actualizar este archivo para mantener la lista sincronizada. -- **Dotfiles**: Las configuraciones de Zsh, Hyprland y Neovim se encuentran en `mg_dotfiles`. Zsh y Hyprland se crean como enlaces simbólicos automáticamente. Neovim puede vincularse manualmente según preferencia. +- **Dotfiles**: Las configuraciones de Zsh, Hyprland y Neovim se encuentran en `mg_dotfiles`. El script verifica que `mg_dotfiles` exista en `~/Work/code/mg_dotfiles` al inicio. Si no existe, muestra una advertencia. Zsh y Hyprland se crean como enlaces simbólicos automáticamente. Neovim puede vincularse manualmente según preferencia. - **Neovim**: La configuración de Neovim no se instala automáticamente con el script. Debe instalarse previamente (ej: `paru -S neovim-git`) y la configuración en `mg_dotfiles/nvim/` está disponible para ser copiada o enlazada. +- **Paquetes duplicados**: Para evitar redundancia, algunos paquetes se instalan en el módulo `apps.sh` y se reutilizan en otros módulos. Ejemplo: `git`, `zoxide`, `fastfetch`, `yt-dlp`. +- **SSH Keyring**: A partir de GNOME 46+, la funcionalidad SSH fue movida de `gnome-keyring` a `gcr`. El módulo `apps.sh` ahora solo configura GNOME Keyring para gestión de contraseñas, mientras que el módulo `ssh-keyring.sh` gestiona las claves SSH usando `gcr-ssh-agent`. +- **Servicios**: Los servicios (`keyd`, `logiops`, `teamviewerd`, `tlp`) ahora verifican si ya están habilitados antes de intentar habilitarlos nuevamente. - **Fuentes**: Asegurarse de instalar una **Nerd Font** para que los iconos se vean correctamente. - **Reiniciar**: Cerrar sesión después de instalar para aplicar cambios de grupos (Docker) y variables de entorno. - **Logs**: Cada ejecución genera un log en `logs/omarchy-setup-YYYY-MM-DD_HH-MM-SS.log`