From ee6ed22a021223342f8d9d884f9f786d4258d4de Mon Sep 17 00:00:00 2001 From: Sm1tee <113480808+Sm1tee@users.noreply.github.com> Date: Tue, 4 Nov 2025 23:36:54 +0300 Subject: [PATCH] Update install.sh --- install.sh | 112 ++++++++++++++++++++++++++++++++++------------------- 1 file changed, 73 insertions(+), 39 deletions(-) diff --git a/install.sh b/install.sh index b30b2b9..9e2f26f 100755 --- a/install.sh +++ b/install.sh @@ -151,21 +151,30 @@ is_package_installed() { local package="$1" case $DISTRO in - "arch"|"manjaro"|"endeavouros") + "arch"|"manjaro"|"endeavouros"|"cachyos"|"artix"|"arcolinux"|"garuda"|"crystal"|"rebornos") pacman -Qi "$package" &>/dev/null ;; - "fedora") + "fedora"|"rhel"|"centos"|"rocky"|"almalinux"|"nobara") rpm -q "$package" &>/dev/null ;; - "opensuse"|"opensuse-leap"|"opensuse-tumbleweed") + "opensuse"|"opensuse-leap"|"opensuse-tumbleweed"|"suse") rpm -q "$package" &>/dev/null ;; - "ubuntu"|"debian"|"pop"|"elementary"|"linuxmint") + "ubuntu"|"debian"|"pop"|"elementary"|"linuxmint"|"zorin"|"mx"|"kali"|"parrot"|"deepin"|"lmde") dpkg -l "$package" 2>/dev/null | grep -q "^ii" ;; "void") xbps-query "$package" &>/dev/null ;; + "gentoo"|"funtoo") + equery list "$package" &>/dev/null + ;; + "solus") + eopkg list-installed "$package" &>/dev/null + ;; + "nixos") + nix-env -q "$package" &>/dev/null + ;; *) return 1 ;; @@ -183,7 +192,7 @@ install_dependencies() { local installed_packages=() case $DISTRO in - "arch"|"manjaro"|"endeavouros") + "arch"|"manjaro"|"endeavouros"|"cachyos"|"artix"|"arcolinux"|"garuda"|"crystal"|"rebornos") packages="sddm qt6-svg qt6-virtualkeyboard qt6-multimedia-ffmpeg" install_cmd="sudo pacman -S --needed --noconfirm" explanation="Эти пакеты нужны для работы SDDM с темами Qt6: @@ -192,7 +201,7 @@ install_dependencies() { • qt6-virtualkeyboard - виртуальная клавиатура на экране • qt6-multimedia-ffmpeg - воспроизведение видео фонов" ;; - "fedora") + "fedora"|"rhel"|"centos"|"rocky"|"almalinux"|"nobara") packages="sddm qt6-qtsvg qt6-qtvirtualkeyboard qt6-qtmultimedia" install_cmd="sudo dnf install -y" explanation="Эти пакеты нужны для работы SDDM с темами Qt6: @@ -201,7 +210,7 @@ install_dependencies() { • qt6-qtvirtualkeyboard - виртуальная клавиатура на экране • qt6-qtmultimedia - воспроизведение видео фонов" ;; - "opensuse"|"opensuse-leap"|"opensuse-tumbleweed") + "opensuse"|"opensuse-leap"|"opensuse-tumbleweed"|"suse") packages="sddm-qt6 libQt6Svg6 qt6-virtualkeyboard qt6-virtualkeyboard-imports qt6-multimedia qt6-multimedia-imports" install_cmd="sudo zypper install -y" explanation="Эти пакеты нужны для работы SDDM с темами Qt6: @@ -210,7 +219,7 @@ install_dependencies() { • qt6-virtualkeyboard - виртуальная клавиатура • qt6-multimedia - воспроизведение видео фонов" ;; - "ubuntu"|"debian"|"pop"|"elementary"|"linuxmint") + "ubuntu"|"debian"|"pop"|"elementary"|"linuxmint"|"zorin"|"mx"|"kali"|"parrot"|"deepin"|"lmde") packages="sddm qt6-svg-dev qt6-virtualkeyboard-dev qt6-multimedia-dev" install_cmd="sudo apt install -y" explanation="Эти пакеты нужны для работы SDDM с темами Qt6: @@ -228,22 +237,58 @@ install_dependencies() { • qt6-virtualkeyboard - виртуальная клавиатура на экране • qt6-multimedia - воспроизведение видео фонов" ;; + "gentoo"|"funtoo") + packages="x11-misc/sddm dev-qt/qtsvg dev-qt/qtvirtualkeyboard dev-qt/qtmultimedia" + install_cmd="sudo emerge --ask=n" + explanation="Эти пакеты нужны для работы SDDM с темами Qt6: +• x11-misc/sddm - менеджер дисплея (экран входа) +• dev-qt/qtsvg - поддержка SVG иконок в интерфейсе +• dev-qt/qtvirtualkeyboard - виртуальная клавиатура на экране +• dev-qt/qtmultimedia - воспроизведение видео фонов" + ;; + "solus") + packages="sddm qt6-svg qt6-virtualkeyboard qt6-multimedia" + install_cmd="sudo eopkg install -y" + explanation="Эти пакеты нужны для работы SDDM с темами Qt6: +• sddm - менеджер дисплея (экран входа) +• qt6-svg - поддержка SVG иконок в интерфейсе +• qt6-virtualkeyboard - виртуальная клавиатура на экране +• qt6-multimedia - воспроизведение видео фонов" + ;; + "nixos") + packages="sddm qt6.qtsvg qt6.qtvirtualkeyboard qt6.qtmultimedia" + install_cmd="nix-env -iA nixos." + explanation="Эти пакеты нужны для работы SDDM с темами Qt6: +• sddm - менеджер дисплея (экран входа) +• qt6.qtsvg - поддержка SVG иконок в интерфейсе +• qt6.qtvirtualkeyboard - виртуальная клавиатура на экране +• qt6.qtmultimedia - воспроизведение видео фонов +ВНИМАНИЕ: Для NixOS рекомендуется использовать configuration.nix" + ;; *) echo -e "${YELLOW}${WARNING} Неизвестный дистрибутив: $DISTRO${NC}" + echo -e "${RED}${CROSS} Автоматическая установка зависимостей невозможна${NC}" + echo "" echo -e "${BLUE}Необходимо установить следующие пакеты вручную:${NC}" echo "• sddm - менеджер дисплея" echo "• qt6-svg - поддержка SVG иконок" echo "• qt6-virtualkeyboard - виртуальная клавиатура" echo "• qt6-multimedia - воспроизведение видео" echo "" + echo -e "${YELLOW}Используйте пакетный менеджер вашего дистрибутива для установки.${NC}" + echo -e "${YELLOW}Например:${NC}" + echo " • Arch/Manjaro/CachyOS: sudo pacman -S sddm qt6-svg qt6-virtualkeyboard qt6-multimedia-ffmpeg" + echo " • Fedora/RHEL: sudo dnf install sddm qt6-qtsvg qt6-qtvirtualkeyboard qt6-qtmultimedia" + echo " • Ubuntu/Debian: sudo apt install sddm qt6-svg-dev qt6-virtualkeyboard-dev qt6-multimedia-dev" + echo " • openSUSE: sudo zypper install sddm-qt6 libQt6Svg6 qt6-virtualkeyboard qt6-multimedia" + echo " • Void: sudo xbps-install sddm qt6-svg qt6-virtualkeyboard qt6-multimedia" + echo " • Gentoo: sudo emerge x11-misc/sddm dev-qt/qtsvg dev-qt/qtvirtualkeyboard dev-qt/qtmultimedia" + echo " • Solus: sudo eopkg install sddm qt6-svg qt6-virtualkeyboard qt6-multimedia" + echo "" - if ask_confirmation "Продолжить установку?" "Предполагается, что зависимости уже установлены"; then - add_to_report "Установка зависимостей (пропущена - неизвестный дистрибутив)" "skipped" - return 0 - else - add_to_report "Установка зависимостей" "skipped" - return 1 - fi + echo -e "${RED}${CROSS} Автоматическая установка невозможна для дистрибутива: $DISTRO${NC}" + add_to_report "Установка зависимостей (пропущена - неизвестный дистрибутив: $DISTRO)" "skipped" + return 1 ;; esac @@ -317,37 +362,22 @@ install_dependencies() { else echo "" echo -e "${RED}${CROSS} Не удалось установить некоторые пакеты: ${failed_packages[*]}${NC}" - echo -e "${YELLOW}${WARNING} Тема может не работать корректно${NC}" - - if ask_confirmation "Продолжить установку?" "Некоторые функции могут не работать"; then - add_to_report "Установка зависимостей (частично: ${INSTALLED_PACKAGES[*]})" "performed" - return 0 - else - return 1 - fi + echo -e "${YELLOW}${WARNING} Установите недостающие пакеты вручную и запустите скрипт снова${NC}" + add_to_report "Установка зависимостей (частично: ${INSTALLED_PACKAGES[*]})" "performed" + return 1 fi else echo -e "${RED}${CROSS} Ошибка при установке зависимостей${NC}" echo -e "${YELLOW}${WARNING} Попробуйте установить пакеты вручную:${NC}" echo -e "${YELLOW}$install_cmd ${missing_packages[*]}${NC}" - - if ask_confirmation "Продолжить установку?" "Тема может не работать без зависимостей"; then - add_to_report "Установка зависимостей (ошибка)" "skipped" - return 0 - else - return 1 - fi + add_to_report "Установка зависимостей (ошибка)" "skipped" + return 1 fi else echo -e "${YELLOW}${WARNING} Установка зависимостей отклонена${NC}" - echo -e "${YELLOW}${WARNING} Тема может не работать без необходимых пакетов${NC}" + echo -e "${RED}${CROSS} Невозможно продолжить без установки зависимостей${NC}" add_to_report "Установка зависимостей" "skipped" - - if ask_confirmation "Продолжить установку?" "Тема может не работать корректно"; then - return 0 - else - return 1 - fi + return 1 fi } @@ -930,7 +960,11 @@ main() { fi # Установка зависимостей - install_dependencies + if ! install_dependencies; then + echo -e "${RED}${CROSS} Установка зависимостей не выполнена${NC}" + echo -e "${YELLOW}${WARNING} Установите зависимости вручную и запустите скрипт снова${NC}" + exit 1 + fi # Выбор типа установки choose_installation_type @@ -984,4 +1018,4 @@ main() { trap 'echo -e "\n${RED}${CROSS} Установка прервана пользователем${NC}"; exit 1' INT TERM # Запуск -main "$@" \ No newline at end of file +main "$@"