feat(apps): Añadir Drivers de Video para Intel (#13)

* feat: add dev tools, AI aliases, and improve zshrc documentation

This commit introduces several new features and improvements:

- **Adds Development Tools to `apps.sh`:** The `apps.sh` module now installs essential development tools, including `python`, `pip`, `nodejs`, `npm`, `uv`, and `nvm`.

- **Implements `.zshrc.local` for Private Variables:**
  - A `.zshrc.local.example` file has been added to serve as a template for users to securely store their private environment variables, such as API keys.
  - The main `.zshrc` file now sources `.zshrc.local` if it exists.

- **Adds AI Aliases to `.zshrc`:** A new section has been added to `.zshrc` with example aliases for interacting with command-line AI tools.

- **Improves `.zshrc` Documentation:** The `.zshrc` file has been thoroughly documented with comments in Spanish, explaining the purpose of each section. The title has also been updated and professionalized.

- **Fixes a Regression:** This commit restores the `ytm`, `ytv`, `ytls`, and SSH agent functions in `.zshrc` that were accidentally removed in a previous step.

* feat: improve keyring UX and icon manager flow

This commit introduces two main improvements to the user experience:

1.  **Refactors the Icon Manager for Non-Interactive Installation:**
    - The `icon_manager.sh` module can now be run in a non-interactive mode.
    - The "Install All" process has been updated to use this non-interactive mode, which installs the default icon theme without pausing the script or requiring user input.

2.  **Improves the GNOME Keyring Workflow:**
    - The script no longer errors out if the GNOME Keyring agent is not immediately available after installation.
    - Instead, a clear summary message is now displayed at the end of the "Install All" process, instructing the user to log out and back in, and then run the SSH key synchronization module separately. This provides a much smoother and more intuitive user experience.

* fix: improve GNOME Keyring socket detection

This commit fixes a bug in the `ssh-keyring.sh` module where the GNOME Keyring socket could not be found after a system reboot.

The script now explicitly determines the user's UID to construct the correct path to the socket, instead of relying on the potentially unreliable `$UID` environment variable. This makes the socket detection more robust, especially when the script is run with `sudo`.

* fix: improve GNOME Keyring socket detection

This commit fixes a bug in the `ssh-keyring.sh` module where the GNOME Keyring socket could not be found after a system reboot.

The script now uses the `logname` command to reliably determine the user's UID and construct the correct path to the socket, instead of relying on environment variables that can be unreliable when the script is run with `sudo`. This makes the socket detection more robust.

* feat: Añadir nuevas herramientas para desarrolladores

Se han añadido los siguientes paquetes al módulo `apps.sh`:
- python
- pip
- nodejs
- npm
- uv
- nvm (a través de una función de instalación)

Esto proporciona un entorno de desarrollo más completo desde el
principio.

* feat(apps): Añadir drivers de video adicionales para Intel

Para mejorar la compatibilidad y el rendimiento de la aceleración de video en hardware Intel Iris Xe, se han añadido los siguientes paquetes:

- `libva-intel-driver`: Driver legacy para mayor compatibilidad con aplicaciones más antiguas.
- `onevpl-intel-gpu`: Librería de la nueva generación oneVPL para el procesamiento de video moderno.

Esto asegura una cobertura de códecs más completa.

---------

Co-authored-by: google-labs-jules[bot] <161369871+google-labs-jules[bot]@users.noreply.github.com>
Co-authored-by: Marco Gallegos <marco.gallegos@outlook.com>
This commit is contained in:
google-labs-jules[bot]
2025-11-19 11:39:13 -06:00
committed by GitHub
parent f338df2a0e
commit 49c148dc26
2 changed files with 24 additions and 16 deletions

View File

@@ -113,21 +113,32 @@ install_homebrew() {
# Instala NVM (Node Version Manager). # Instala NVM (Node Version Manager).
# #
# Descarga y ejecuta el script de instalación oficial de NVM. # Descarga y ejecuta el script de instalación oficial de NVM.
# Se asegura de que el directorio de instalación exista antes de
# ejecutar el script para evitar errores si $NVM_DIR está predefinido.
# --------------------------------------------------------------- # ---------------------------------------------------------------
install_nvm() { install_nvm() {
log_step "Instalación de NVM (Node Version Manager)" log_step "Instalación de NVM (Node Version Manager)"
if [[ -d "${HOME}/.nvm" ]]; then # Define y exporta NVM_DIR para asegurar consistencia.
export NVM_DIR="$HOME/.nvm"
if [[ -d "$NVM_DIR" ]]; then
log_success "NVM ya está instalado." log_success "NVM ya está instalado."
return 0 return 0
fi fi
log_info "Instalando NVM..." log_info "Instalando NVM..."
# Crea el directorio de instalación para evitar el error "directory does not exist".
mkdir -p "$NVM_DIR"
# El script de nvm espera que NVM_DIR esté exportado.
if curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash; then if curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash; then
log_success "NVM instalado correctamente." log_success "NVM instalado correctamente."
log_info "Para usar NVM, reinicia tu terminal o ejecuta: source ~/.nvm/nvm.sh" log_info "Para usar NVM, reinicia tu terminal o ejecuta: source ${NVM_DIR}/nvm.sh"
else else
log_error "Falló la instalación de NVM." log_error "Falló la instalación de NVM."
# Limpia el directorio si la instalación falló para no dejar un estado inconsistente.
rm -rf "$NVM_DIR"
return 1 return 1
fi fi
} }
@@ -148,7 +159,7 @@ run_module_main() {
local PACMAN_BASE=( local PACMAN_BASE=(
git curl wget base-devel unzip htop fastfetch btop git curl wget base-devel unzip htop fastfetch btop
vim nano tmux xdg-utils xdg-user-dirs stow vim nano tmux xdg-utils xdg-user-dirs stow
gnome-keyring libsecret seahorse openssh rsync gnome-keyring libsecret seahorse openssh rsync usbutils
) )
# Paquetes para desarrollo de software. # Paquetes para desarrollo de software.
local PACMAN_DEV=( local PACMAN_DEV=(
@@ -158,7 +169,7 @@ run_module_main() {
local PACMAN_MULTIMEDIA=( local PACMAN_MULTIMEDIA=(
vlc vlc-plugins-all libdvdcss audacity inkscape vlc vlc-plugins-all libdvdcss audacity inkscape
ffmpeg gstreamer gst-plugins-good gst-plugins-bad gst-plugins-ugly ffmpeg gstreamer gst-plugins-good gst-plugins-bad gst-plugins-ugly
yt-dlp yt-dlp alsa-utils pavucontrol
) )
# Aplicaciones de red y conectividad. # Aplicaciones de red y conectividad.
local PACMAN_NETWORK=( local PACMAN_NETWORK=(
@@ -171,6 +182,7 @@ run_module_main() {
# Drivers para aceleración de vídeo por hardware en Intel (VA-API). # Drivers para aceleración de vídeo por hardware en Intel (VA-API).
local PACMAN_INTEL_VIDEO=( local PACMAN_INTEL_VIDEO=(
intel-media-driver libva-utils libvdpau-va-gl libva-mesa-driver intel-media-driver libva-utils libvdpau-va-gl libva-mesa-driver
libva-intel-driver onevpl-intel-gpu
) )
# Soporte para computación GPGPU con OpenCL. # Soporte para computación GPGPU con OpenCL.
local PACMAN_OPENCL=( local PACMAN_OPENCL=(

View File

@@ -46,21 +46,17 @@ EOF
local keyring_socket="/run/user/${target_uid}/keyring/ssh" local keyring_socket="/run/user/${target_uid}/keyring/ssh"
# Obtenemos el UID del usuario dueño del directorio HOME. Este método es más fiable.
local target_uid local target_uid
target_uid=$(id -u "$(logname)") target_uid=$(stat -c '%u' "$HOME")
local keyring_socket="${SSH_AUTH_SOCK:-/run/user/${target_uid}/keyring/ssh}"
local keyring_socket="/run/user/${target_uid}/keyring/ssh"
if [[ ! -S "$keyring_socket" ]]; then if [[ ! -S "$keyring_socket" ]]; then
log_warning "No se encontró el socket de GNOME Keyring en la ruta esperada." log_error "No se encontró el socket de GNOME Keyring en la ruta esperada: ${keyring_socket}"
# Como fallback, intentamos la ruta con el UID del proceso actual. log_warning "Esto usualmente significa que el servicio no se ha iniciado correctamente con tu sesión de escritorio."
local fallback_socket="/run/user/$(id -u)/keyring/ssh" log_info "Asegúrate de haber cerrado y vuelto a abrir tu sesión después de instalar el módulo de aplicaciones."
if [[ -S "$fallback_socket" ]]; then return 1
keyring_socket="$fallback_socket"
log_info "Se encontró un socket válido en la ruta de fallback: ${keyring_socket}"
else
log_error "GNOME Keyring no parece estar exponiendo el socket SSH. Asegúrate de haber reiniciado la sesión."
return 1
fi
fi fi
log_success "Socket de GNOME Keyring encontrado en: ${keyring_socket}" log_success "Socket de GNOME Keyring encontrado en: ${keyring_socket}"