From 83e1560533e9a182713c63c9664a70aecdec7ff0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=92=D0=B0=D1=88=D0=B5=20=D0=98=D0=BC=D1=8F?= Date: Sun, 20 Jul 2025 19:12:35 +0300 Subject: [PATCH] update --- .../numbered-theme-selection/requirements.md | 0 README.md | 2 +- install.sh | 75 +++++++++++++------ 3 files changed, 52 insertions(+), 25 deletions(-) create mode 100644 .kiro/specs/numbered-theme-selection/requirements.md diff --git a/.kiro/specs/numbered-theme-selection/requirements.md b/.kiro/specs/numbered-theme-selection/requirements.md new file mode 100644 index 0000000..e69de29 diff --git a/README.md b/README.md index 0feaa99..d973c44 100644 --- a/README.md +++ b/README.md @@ -125,7 +125,7 @@ https://github.com/user-attachments/assets/12f9cff2-40af-487b-b39a-d1c93a24fbfd | 🎨 **Визуальные возможности** | ⚡ **Функциональность** | 🛠️ **Удобство** | |---|---|---| | ✨ **25+** уникальных тем | 📱 Виртуальная клавиатура | 🚀 Автоматическая установка | -| � Анимированные **MP4** фоны | 🌐 Мультиязычность | 🔧 Простая настройка | +| 🎬 Анимированные **MP4** фоны | 🌐 Мультиязычность | 🔧 Простая настройка | | 🎨 Кастомные шрифты | 🔐 Современный UI | ⚡ Быстрое переключение | | 🖼️ Поддержка аватаров | 🎮 Игровые стили | 👀 Предварительный просмотр | diff --git a/install.sh b/install.sh index 6d6a18a..fdfd8c6 100755 --- a/install.sh +++ b/install.sh @@ -302,6 +302,55 @@ show_available_themes() { echo "" } +# Функция для выбора темы из пронумерованного списка +select_theme_from_list() { + local themes=( + "apocalypse" "bones" "demon" "explosion" "gate" "gate2" "wizard" + "samurai" "samurai2" "samurai3" "samurai4" "solder" "warrior" + "house" "house2" "house3" "house4" "house5" "tree" "window" "window2" "calmness" + "space" "space2" "witcher" "harry" + ) + + echo -e "${WHITE}Доступные темы:${NC}" + echo "" + + # Показываем пронумерованный список + for i in "${!themes[@]}"; do + local num=$((i + 1)) + printf "${CYAN}%2d)${NC} ${themes[i]}\n" "$num" + done + echo "" + + while true; do + if [ -t 0 ]; then + read -p "Выберите номер темы (1-${#themes[@]}): " theme_choice + else + if [ -c /dev/tty ]; then + read -p "Выберите номер темы (1-${#themes[@]}): " theme_choice < /dev/tty + else + echo "Автоматически выбрана тема: witcher (по умолчанию)" + selected_theme="witcher" + return 0 + fi + fi + + # Проверяем, что введено число + if [[ "$theme_choice" =~ ^[0-9]+$ ]]; then + # Проверяем, что число в допустимом диапазоне + if [ "$theme_choice" -ge 1 ] && [ "$theme_choice" -le "${#themes[@]}" ]; then + local index=$((theme_choice - 1)) + selected_theme="${themes[index]}" + echo -e "${GREEN}${CHECK} Выбрана тема: $selected_theme${NC}" + return 0 + else + echo -e "${RED}${CROSS} Неверный номер! Введите число от 1 до ${#themes[@]}${NC}" + fi + else + echo -e "${RED}${CROSS} Введите корректный номер темы (число от 1 до ${#themes[@]})${NC}" + fi + done +} + # Функция для загрузки репозитория download_repository() { print_step_header "ШАГ 4: Загрузка всех тем с GitHub " @@ -783,18 +832,7 @@ main() { "full") if download_repository; then cd sddm-theme - show_available_themes - echo "" - if [ -t 0 ]; then - read -p "Введите название темы для активации (например: witcher): " selected_theme - else - if [ -c /dev/tty ]; then - read -p "Введите название темы для активации (например: witcher): " selected_theme < /dev/tty - else - echo "Автоматически выбрана тема: witcher (по умолчанию)" - selected_theme="witcher" - fi - fi + select_theme_from_list cd .. else echo -e "${RED}${CROSS} Не удалось загрузить репозиторий${NC}" @@ -802,18 +840,7 @@ main() { fi ;; "single") - show_available_themes - echo "" - if [ -t 0 ]; then - read -p "Введите название темы для установки (например: witcher): " selected_theme - else - if [ -c /dev/tty ]; then - read -p "Введите название темы для установки (например: witcher): " selected_theme < /dev/tty - else - echo "Автоматически выбрана тема: witcher (по умолчанию)" - selected_theme="witcher" - fi - fi + select_theme_from_list if ! download_single_theme "$selected_theme"; then echo -e "${RED}${CROSS} Не удалось загрузить тему${NC}" exit 1