diff --git a/modules/icon_manager.sh b/modules/icon_manager.sh index b70b323..8d45d7c 100755 --- a/modules/icon_manager.sh +++ b/modules/icon_manager.sh @@ -49,7 +49,10 @@ apply_theme() { # Añadir el comando gsettings para el tema seleccionado echo "exec-once = gsettings set org.gnome.desktop.interface icon-theme '$theme_name'" >> "$AUTOSTART_FILE" - log_success "¡Tema configurado! La configuración se ha guardado en $AUTOSTART_FILE" + # Aplicar el tema en la sesión actual para un efecto inmediato + gsettings set org.gnome.desktop.interface icon-theme "$theme_name" + + log_success "¡Tema configurado! Se aplicó en la sesión actual y se guardó en $AUTOSTART_FILE" } # --- Funciones de Instalación de Temas --- @@ -66,22 +69,19 @@ ensure_papirus_installed() { } # Función para instalar y aplicar el tema Tela Nord (usado como default) -set_default_icon_theme() { +install_tela_nord() { local theme_name="Tela-nord-dark" - log_info "Gestionando el tema de iconos '$theme_name'..." + echo "--- Gestionando Tela Nord Icons ---" if [[ -d "$ICON_DIR_USER/$theme_name" ]]; then - log_info "El tema '$theme_name' ya está instalado." + log_info "El tema ya está instalado." else - log_info "Instalando el tema '$theme_name'..." - rm -rf "$TEMP_DIR" && mkdir -p "$TEMP_DIR" # Asegurar directorio limpio + log_info "Instalando el tema..." git clone --depth 1 https://github.com/vinceliuice/Tela-icon-theme.git "$TEMP_DIR/tela" "$TEMP_DIR/tela/install.sh" -c nord - rm -rf "$TEMP_DIR" # Limpieza fi apply_theme "$theme_name" } - install_papirus() { local theme_name="Papirus-Dark" echo "--- Gestionando Papirus Icons (Estándar) ---" @@ -157,7 +157,7 @@ run_module_main() { mkdir -p "$TEMP_DIR" case $choice in - 1) set_default_icon_theme ;; + 1) install_tela_nord ;; 2) install_papirus ;; 3) install_papirus_catppuccin ;; 4) install_candy ;; @@ -176,6 +176,12 @@ run_module_main() { return 0 } +# La función set_default_icon_theme es un alias para mantener la compatibilidad +# con otros scripts como hyprland-config.sh +set_default_icon_theme() { + install_tela_nord +} + if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then run_module_main "$@" fi \ No newline at end of file diff --git a/modules/icon_manager.sh@@ -45,6 +45,9 @@ b/modules/icon_manager.sh@@ -45,6 +45,9 @@ deleted file mode 100644 index f721460..0000000 --- a/modules/icon_manager.sh@@ -45,6 +45,9 @@ +++ /dev/null @@ -1,180 +0,0 @@ -#!/bin/bash -# -# icon_manager.sh (v2) -# -# Un script de gestión para instalar y cambiar entre diferentes temas de iconos -# en un entorno Hyprland/Omarchy. Incluye temas base y personalizaciones. -# - -SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" -source "${SCRIPT_DIR}/common.sh" - -# --- Variables Globales --- -AUTOSTART_FILE="$HOME/.config/hypr/autostart.conf" -TEMP_DIR="/tmp/icon_theme_setup" -ICON_DIR_USER="$HOME/.local/share/icons" - -# --- Funciones de Utilidad --- - -# Función para verificar dependencias -check_deps() { - if ! command_exists git; then - log_error "git no está instalado. Por favor, instálalo para continuar (ej. sudo pacman -S git)." - return 1 - fi - return 0 -} - -# Función para aplicar la configuración de forma persistente -# Argumento 1: Nombre del tema de iconos (ej. 'Tela-nord-dark') -apply_theme() { - local theme_name="$1" - log_info "Aplicando el tema de iconos '$theme_name'..." - - mkdir -p "$(dirname "$AUTOSTART_FILE")" - touch "$AUTOSTART_FILE" - - # Eliminar cualquier configuración de icon-theme anterior para evitar conflictos - sed -i '/exec-once = gsettings set org.gnome.desktop.interface icon-theme/d' "$AUTOSTART_FILE" - - # Añadir el bloque de configuración si no existe - if ! grep -Fq "CONFIGURACIÓN DE TEMA DE ICONOS" "$AUTOSTART_FILE"; then - echo -e "\n# -----------------------------------------------------" >> "$AUTOSTART_FILE" - echo "# CONFIGURACIÓN DE TEMA DE ICONOS" >> "$AUTOSTART_FILE" - echo "# -----------------------------------------------------" >> "$AUTOSTART_FILE" - echo "exec-once = /usr/lib/xdg-desktop-portal-gtk" >> "$AUTOSTART_FILE" - echo "exec-once = sleep 1" >> "$AUTOSTART_FILE" - fi - - # Añadir el comando gsettings para el tema seleccionado - echo "exec-once = gsettings set org.gnome.desktop.interface icon-theme '$theme_name'" >> "$AUTOSTART_FILE" - - # Aplicar el tema en la sesión actual para un efecto inmediato - gsettings set org.gnome.desktop.interface icon-theme "$theme_name" - - log_success "¡Tema configurado! La configuración se ha guardado en $AUTOSTART_FILE" -} - -# --- Funciones de Instalación de Temas --- - -# Función auxiliar para asegurar que el tema base Papirus esté instalado -ensure_papirus_installed() { - if [[ ! -d "$ICON_DIR_USER/Papirus-Dark" ]]; then - log_info "El tema base Papirus no está instalado. Instalándolo ahora..." - git clone --depth 1 https://github.com/PapirusDevelopment/papirus-icon-theme.git "$TEMP_DIR/papirus" - "$TEMP_DIR/papirus/install.sh" - else - log_info "El tema base Papirus ya está instalado." - fi -} - -install_tela_nord() { - local theme_name="Tela-nord-dark" - echo "--- Gestionando Tela Nord Icons ---" - if [[ -d "$ICON_DIR_USER/$theme_name" ]]; then - log_info "El tema ya está instalado." - else - log_info "Instalando el tema..." - git clone --depth 1 https://github.com/vinceliuice/Tela-icon-theme.git "$TEMP_DIR/tela" - "$TEMP_DIR/tela/install.sh" -c nord - fi - apply_theme "$theme_name" -} - -install_papirus() { - local theme_name="Papirus-Dark" - echo "--- Gestionando Papirus Icons (Estándar) ---" - ensure_papirus_installed - # Si el usuario quiere el Papirus estándar, restauramos los colores por si acaso - if command_exists papirus-folders; then - "$ICON_DIR_USER/papirus-folders" --default --theme "$theme_name" - fi - apply_theme "$theme_name" -} - -install_candy() { - local theme_name="Candy" - echo "--- Gestionando Candy Icons ---" - if [[ -d "$ICON_DIR_USER/$theme_name" ]]; then - log_info "El tema ya está instalado." - else - log_info "Instalando el tema..." - git clone --depth 1 https://github.com/EliverLara/candy-icons.git "$TEMP_DIR/candy" - "$TEMP_DIR/candy/install.sh" - fi - apply_theme "$theme_name" -} - -install_papirus_catppuccin() { - local theme_name="Papirus-Dark" - # Catppuccin tiene 4 variantes: latte, frappe, macchiato, mocha. Usaremos Mocha. - local catppuccin_flavor="mocha" - - echo "--- Gestionando Papirus Icons con colores Catppuccin ($catppuccin_flavor) ---" - - # 1. Asegurarse de que el tema base Papirus exista - ensure_papirus_installed - - # 2. Descargar y ejecutar el script de personalización - log_info "Descargando y aplicando el colorizador Catppuccin..." - git clone --depth 1 https://github.com/catppuccin/papirus-folders.git "$TEMP_DIR/papirus-folders-catppuccin" - chmod +x "$TEMP_DIR/papirus-folders-catppuccin/papirus-folders" - - # Ejecutar el script para cambiar el color de las carpetas - "$TEMP_DIR/papirus-folders-catppuccin/papirus-folders" -C "catppuccin-${catppuccin_flavor}" --theme "$theme_name" - - # 3. Aplicar el tema (el nombre sigue siendo Papirus-Dark, pero los iconos han cambiado) - apply_theme "$theme_name" -} - -# --- Función Principal (Menú) --- -run_module_main() { - log_step "Gestor de Temas de Iconos para Hyprland" - - if ! check_deps; then - return 1 - fi - - while true; do - clear - echo -e "${CYAN}==========================================${NC}" - echo -e " ${BOLD}Gestor de Temas de Iconos para Hyprland${NC} " - echo -e "${CYAN}==========================================${NC}" - echo "Selecciona el tema que quieres instalar/activar:" - echo - echo -e " ${GREEN}1)${NC} Tela (variante Nord)" - echo -e " ${GREEN}2)${NC} Papirus (estándar, oscuro)" - echo -e " ${GREEN}3)${NC} Papirus (con colores Catppuccin Mocha)" - echo -e " ${GREEN}4)${NC} Candy Icons" - echo - echo -e " ${YELLOW}q)${NC} Volver al menú principal" - echo - read -p "Tu elección: " choice - - # Limpiar directorio temporal antes de cada operación - rm -rf "$TEMP_DIR" - mkdir -p "$TEMP_DIR" - - case $choice in - 1) install_tela_nord ;; - 2) install_papirus ;; - 3) install_papirus_catppuccin ;; - 4) install_candy ;; - [qQ]) - log_info "Volviendo al menú principal." - break - ;; - *) log_error "Opción no válida. Inténtalo de nuevo." ;; - esac - - echo - read -p "Presiona Enter para continuar..." || true - done - # Limpieza final - rm -rf "$TEMP_DIR" - return 0 -} - -if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then - run_module_main "$@" -fi \ No newline at end of file