ajustes de optimizacion

This commit is contained in:
Marco Gallegos
2025-11-15 02:07:44 +00:00
parent 7213738ae0
commit c620db69c2
8 changed files with 621 additions and 411 deletions

View File

@@ -6,6 +6,9 @@
# 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"
@@ -15,17 +18,18 @@ ICON_DIR_USER="$HOME/.local/share/icons"
# Función para verificar dependencias
check_deps() {
if ! command -v git &> /dev/null; then
echo "Error: git no está instalado. Por favor, instálalo para continuar (ej. sudo pacman -S git)."
exit 1
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"
echo "Aplicando el tema de iconos '$theme_name'..."
log_info "Aplicando el tema de iconos '$theme_name'..."
mkdir -p "$(dirname "$AUTOSTART_FILE")"
touch "$AUTOSTART_FILE"
@@ -45,41 +49,45 @@ 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"
echo "¡Tema configurado! La configuración se ha guardado en $AUTOSTART_FILE"
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
echo "El tema base Papirus no está instalado. Instalándolo ahora..."
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
echo "El tema base Papirus ya está instalado."
log_info "El tema base Papirus ya está instalado."
fi
}
install_tela_nord() {
# Función para instalar y aplicar el tema Tela Nord (usado como default)
set_default_icon_theme() {
local theme_name="Tela-nord-dark"
echo "--- Gestionando Tela Nord Icons ---"
if [ -d "$ICON_DIR_USER/$theme_name" ]; then
echo "El tema ya está instalado."
log_info "Gestionando el tema de iconos '$theme_name'..."
if [[ -d "$ICON_DIR_USER/$theme_name" ]]; then
log_info "El tema '$theme_name' ya está instalado."
else
echo "Instalando el tema..."
log_info "Instalando el tema '$theme_name'..."
rm -rf "$TEMP_DIR" && mkdir -p "$TEMP_DIR" # Asegurar directorio limpio
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) ---"
ensure_papirus_installed
# Si el usuario quiere el Papirus estándar, restauramos los colores por si acaso
if [ -f "$ICON_DIR_USER/papirus-folders" ]; then
if command_exists papirus-folders; then
"$ICON_DIR_USER/papirus-folders" --default --theme "$theme_name"
fi
apply_theme "$theme_name"
@@ -88,10 +96,10 @@ install_papirus() {
install_candy() {
local theme_name="Candy"
echo "--- Gestionando Candy Icons ---"
if [ -d "$ICON_DIR_USER/$theme_name" ]; then
echo "El tema ya está instalado."
if [[ -d "$ICON_DIR_USER/$theme_name" ]]; then
log_info "El tema ya está instalado."
else
echo "Instalando el tema..."
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
@@ -109,7 +117,7 @@ install_papirus_catppuccin() {
ensure_papirus_installed
# 2. Descargar y ejecutar el script de personalización
echo "Descargando y aplicando el colorizador Catppuccin..."
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"
@@ -121,20 +129,26 @@ install_papirus_catppuccin() {
}
# --- Función Principal (Menú) ---
main_menu() {
run_module_main() {
log_step "Gestor de Temas de Iconos para Hyprland"
if ! check_deps; then
return 1
fi
while true; do
clear
echo "=========================================="
echo " Gestor de Temas de Iconos para Hyprland "
echo "=========================================="
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 " 1) Tela (variante Nord)"
echo " 2) Papirus (estándar, oscuro)"
echo " 3) Papirus (con colores Catppuccin Mocha)"
echo " 4) Candy Icons"
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 " q) Salir"
echo -e " ${YELLOW}q)${NC} Volver al menú principal"
echo
read -p "Tu elección: " choice
@@ -143,27 +157,25 @@ main_menu() {
mkdir -p "$TEMP_DIR"
case $choice in
1) install_tela_nord ;;
1) set_default_icon_theme ;;
2) install_papirus ;;
3) install_papirus_catppuccin ;;
4) install_candy ;;
[qQ]) break ;;
*) echo "Opción no válida. Inténtalo de nuevo." ;;
[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..."
read -p "Presiona Enter para continuar..." || true
done
# Limpieza final
rm -rf "$TEMP_DIR"
return 0
}
# --- Ejecución del Script ---
check_deps
main_menu
# Limpieza final
rm -rf "$TEMP_DIR"
clear
echo "¡Proceso finalizado! Cierra sesión y vuelve a iniciarla para ver los cambios."
exit 0ch
if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then
run_module_main "$@"
fi