#!/usr/bin/env bash # =============================================================== # hyprland-config.sh - Instala la configuración personalizada de Hyprland # =============================================================== SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" source "${SCRIPT_DIR}/common.sh" # Cargar el gestor de iconos para usar sus funciones source "${SCRIPT_DIR}/icon_manager.sh" run_module_main() { log_step "Instalación de Configuración de Hyprland" # --- 1. Determinar origen de configuración --- # Usar mg_dotfiles local source_dir="${DOTFILES_DIR}/omarchy/hypr" local dest_dir="$HOME/.config/hypr" if [[ ! -d "$source_dir" ]]; then log_error "No se encontró la configuración en '${source_dir}'." log_info "Asegúrate de tener clonado el repositorio 'mg_dotfiles' en la ruta esperada." return 1 fi # Crear copia de seguridad si ya existe una configuración if [[ -d "$dest_dir" ]] && [[ ! -L "$dest_dir" ]]; then local backup_dir="${dest_dir}.bak_$(date +%F_%T)" log_warning "Configuración de Hyprland existente encontrada." log_info "Creando copia de seguridad en: ${backup_dir}" if mv "$dest_dir" "$backup_dir"; then log_success "Copia de seguridad creada." else log_error "No se pudo crear la copia de seguridad. Abortando." return 1 fi fi log_info "Configurando Hyprland desde ${source_dir}..." if [[ "$source_dir" == "${DOTFILES_DIR}/omarchy/hypr" ]]; then log_info "Creando enlace simbólico a tus dotfiles personales..." ln -sfn "$source_dir" "$dest_dir" else log_info "Copiando configuración local (rsync)..." mkdir -p "$dest_dir" rsync -a --info=progress2 "$source_dir/" "$dest_dir/" fi # --- 2. Establecer el tema de iconos por defecto --- log_info "Estableciendo el tema de iconos por defecto (Tela Nord)..." # Llamamos a la función específica de icon_manager.sh set_default_icon_theme # --- 3. Activar opción de suspensión en el menú System --- log_info "Activando opción de suspensión en el menú System..." if command -v omarchy-toggle-suspend &>/dev/null; then if omarchy-toggle-suspend; then log_success "Opción de suspensión activada en el menú System." else log_warning "No se pudo activar la opción de suspensión, pero la configuración de Hyprland se instaló correctamente." fi else log_warning "Comando omarchy-toggle-suspend no encontrado. Omitiendo activación de suspensión." fi log_success "Configuración de Hyprland instalada correctamente." 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 run_module_main "$@" fi