Files
omarchy_setup/modules/mouse_cursor.sh
Marco Gallegos bc44a0bed6 fix: resolve conflicts between modules and improve reliability
- Remove duplicate SSH_AUTH_SOCK configuration in apps.sh (now handled by gcr-ssh-agent)
- Remove duplicate system update in apps.sh (now only in install_all)
- Remove duplicate packages from zsh-config (git, zoxide, fastfetch, yt-dlp)
- Add mg_dotfiles verification warning for Zsh/Hyprland modules
- Make .zshrc backup non-critical to avoid interruption
- Improve service verification with status checks before enabling
- Add clarifying comments about cursor configuration layers
2026-01-11 11:49:57 -06:00

78 lines
3.4 KiB
Bash
Executable File

#!/usr/bin/env bash
# ===============================================================
# mouse_cursor.sh - Instala y configura el tema de cursor Bibata
# ===============================================================
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
source "${SCRIPT_DIR}/common.sh"
install_mouse_cursor() {
log_step "Instalación del Tema de Cursor (Bibata-Modern-Ice)"
# --- Variables ---
local CURSOR_THEME='Bibata-Modern-Ice'
local CURSOR_SIZE=24
local ENVS_FILE="$HOME/.config/hypr/envs.conf"
local AUTOSTART_FILE="$HOME/.config/hypr/autostart.conf"
local DOWNLOAD_URL="https://github.com/ful1e5/Bibata_Cursor/releases/download/v2.0.7/Bibata-Modern-Ice.tar.xz"
local ARCHIVE_NAME="Bibata-Modern-Ice.tar.xz"
# --- Paso 1 y 2: Descargar, Extraer e Instalar ---
log_info "Descargando e instalando el tema de cursor..."
local TEMP_DIR
TEMP_DIR=$(mktemp -d -p "/tmp" cursor_setup_XXXXXX)
trap 'rm -rf "${TEMP_DIR}"' EXIT # Limpieza automática al salir
if curl -sL "$DOWNLOAD_URL" -o "${TEMP_DIR}/${ARCHIVE_NAME}"; then
tar -xJf "${TEMP_DIR}/${ARCHIVE_NAME}" -C "${TEMP_DIR}"
mkdir -p "$HOME/.icons"
# Asegurar una instalación limpia eliminando la versión anterior si existe
if [ -d "${TEMP_DIR}/${CURSOR_THEME}" ]; then
rm -rf "$HOME/.icons/${CURSOR_THEME}" # Eliminar destino para evitar conflictos
if mv "${TEMP_DIR}/${CURSOR_THEME}" "$HOME/.icons/"; then
log_success "Tema de cursor instalado en ~/.icons/"
else
log_error "No se pudo mover el tema del cursor a ~/.icons/"
return 1
fi
else
log_error "El directorio del tema '${CURSOR_THEME}' no se encontró en el archivo."
return 1
fi
else
log_error "No se pudo descargar el tema de cursor desde $DOWNLOAD_URL"
return 1
fi
# --- Paso 3: Configurar variables de entorno para Hyprland ---
# Nota: Esto configura el cursor para aplicaciones X11 y Hyprland.
# Para aplicaciones GTK/Flatpak, se usa gsettings en el Paso 4.
if [ -f "$ENVS_FILE" ]; then
log_info "Configurando variables de entorno en $ENVS_FILE..."
if ! grep -q "HYPRCURSOR_THEME,${CURSOR_THEME}" "$ENVS_FILE"; then
echo -e "\n# Custom Cursor Theme" >> "$ENVS_FILE"
echo "env = HYPRCURSOR_THEME,$CURSOR_THEME" >> "$ENVS_FILE"
echo "env = HYPRCURSOR_SIZE,$CURSOR_SIZE" >> "$ENVS_FILE"
echo "env = XCURSOR_THEME,$CURSOR_THEME" >> "$ENVS_FILE"
echo "env = XCURSOR_SIZE,$CURSOR_SIZE" >> "$ENVS_FILE"
log_success "Variables de cursor añadidas a Hyprland."
else
log_info "Las variables de cursor para Hyprland ya parecen estar configuradas."
fi
fi
# --- Paso 4: Configurar GTK ---
log_info "Configurando el cursor para aplicaciones GTK..."
gsettings set org.gnome.desktop.interface cursor-theme "$CURSOR_THEME"
gsettings set org.gnome.desktop.interface cursor-size "$CURSOR_SIZE"
log_success "Configuración de GSettings aplicada."
log_success "¡Configuración del cursor completada!"
log_warning "Por favor, cierra sesión y vuelve a iniciarla para aplicar los cambios."
return 0
}
# Ejecutar si se llama directamente
if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then
install_mouse_cursor "$@"
fi