diff --git a/alpine_install.sh b/alpine_install.sh index ba71e3f..f39d847 100644 --- a/alpine_install.sh +++ b/alpine_install.sh @@ -1,9 +1,8 @@ - #!/bin/sh # ============================================================ # LabWC Alpine Setup Script -# Version 10 +# Version 11 # # Запуск: # @@ -76,7 +75,7 @@ if [ "$(id -u)" -ne 0 ]; then fi - exec sudo "$SCRIPT_PATH" "$@" + exec sudo sh "$SCRIPT_PATH" "$@" fi @@ -86,7 +85,7 @@ fi echo echo "==================================================" -echo " LabWC Alpine Setup Script v10" +echo " LabWC Alpine Setup Script v11" echo "==================================================" echo echo "[*] User: $USER_NAME" @@ -198,10 +197,11 @@ install_optional() { add_user_group() { GROUP_NAME="$1" + # Создаём группу, если её нет if ! getent group "$GROUP_NAME" >/dev/null 2>&1; then - echo "[!] Группа $GROUP_NAME отсутствует." - return 0 + echo "[*] Создание группы $GROUP_NAME..." + addgroup "$GROUP_NAME" fi @@ -329,8 +329,9 @@ else adduser -D "$USER_NAME" echo - echo "[!] Задайте пароль для $USER_NAME." - passwd "$USER_NAME" + echo "[!] Задайте пароль для $USER_NAME вручную:" + echo " passwd $USER_NAME" + echo fi @@ -466,6 +467,17 @@ install_required pcmanfm install_required firefox install_required swaylock +# ============================================================ +# SDDM (Display Manager) +# ============================================================ + +echo +echo "==================================================" +echo "[*] SDDM" +echo "==================================================" + +install_required sddm + # ============================================================ # Необязательные пакеты # ============================================================ @@ -496,6 +508,7 @@ echo "==================================================" enable_service seatd enable_service dbus enable_service networkmanager +enable_service sddm # ============================================================ # LabWC configuration @@ -598,12 +611,20 @@ fi # Wallpaper # ============================================================ -if command -v swaybg >/dev/null 2>&1 && - [ -f /usr/share/backgrounds/alpine/alpine-wallpaper.png ] -then +WALLPAPER="" + +if [ -f /usr/share/backgrounds/alpine/alpine-wallpaper.png ]; then + WALLPAPER="/usr/share/backgrounds/alpine/alpine-wallpaper.png" +elif [ -f /usr/share/pixmaps/alpine-wallpaper.png ]; then + WALLPAPER="/usr/share/pixmaps/alpine-wallpaper.png" +elif [ -f /usr/share/wallpapers/alpine.png ]; then + WALLPAPER="/usr/share/wallpapers/alpine.png" +fi + +if command -v swaybg >/dev/null 2>&1 && [ -n "$WALLPAPER" ]; then swaybg \ - -i /usr/share/backgrounds/alpine/alpine-wallpaper.png \ + -i "$WALLPAPER" \ -m fill & fi @@ -627,7 +648,7 @@ if [ -d "$ZENITH_DIR/.git" ]; then su - "$USER_NAME" -c " set -eu cd '$ZENITH_DIR' - git pull --ff-only + git pull " else @@ -744,95 +765,25 @@ EOF fi # ============================================================ -# Автологин tty1 +# SDDM configuration # ============================================================ echo echo "==================================================" -echo "[*] Настройка автологина tty1" +echo "[*] Настройка SDDM" echo "==================================================" -if [ -f /etc/inittab ]; then +mkdir -p /etc/sddm.conf.d - # -------------------------------------------------------- - # Резервная копия - # -------------------------------------------------------- +cat > /etc/sddm.conf.d/wayland.conf << 'EOF' +[Wayland] +Compositor=labwc - if [ ! -f /etc/inittab.bak ]; then - cp /etc/inittab /etc/inittab.bak - fi - - # -------------------------------------------------------- - # Создаём login-wrapper - # - # agetty запускает этот скрипт вместо обычного login. - # Скрипт автоматически выполняет login для USER_NAME. - # -------------------------------------------------------- - - cat > /usr/local/sbin/autologin-login << EOF -#!/bin/sh - -exec /bin/login "$USER_NAME" +[General] +GreeterEnvironment=MOZ_ENABLE_WAYLAND=1,QT_QPA_PLATFORM=wayland,SDL_VIDEODRIVER=wayland EOF - chmod 755 /usr/local/sbin/autologin-login - - # -------------------------------------------------------- - # tty1 - # -------------------------------------------------------- - - if grep -q '^tty1::respawn:' /etc/inittab; then - - sed -i \ - "s|^tty1::respawn:.*|tty1::respawn:/sbin/agetty -n -l /usr/local/sbin/autologin-login 38400 tty1|" \ - /etc/inittab - - else - - echo \ - "tty1::respawn:/sbin/agetty -n -l /usr/local/sbin/autologin-login 38400 tty1" \ - >> /etc/inittab - - fi - - echo "[+] tty1 настроен на автоматический вход: $USER_NAME" - -else - - echo "[!] /etc/inittab отсутствует." - echo "[!] Автологин не настроен." - -fi - -# ============================================================ -# Автозапуск LabWC -# ============================================================ - -echo -echo "==================================================" -echo "[*] Автозапуск LabWC" -echo "==================================================" - -if ! grep -qF '# LABWC-AUTOSTART' "$PROFILE"; then - - cat >> "$PROFILE" << 'EOF' - -# LABWC-AUTOSTART - -if [ "$(tty 2>/dev/null)" = "/dev/tty1" ] && - [ -z "${WAYLAND_DISPLAY:-}" ]; then - - export XDG_SESSION_TYPE=wayland - export XDG_CURRENT_DESKTOP=labwc - export XDG_SESSION_DESKTOP=labwc - export LIBSEAT_BACKEND=seatd - - exec dbus-run-session -- labwc - -fi -EOF - -fi +echo "[+] SDDM настроен для использования LabWC." # ============================================================ # Права @@ -917,6 +868,7 @@ check_command "NetworkManager" "nmcli" check_command "D-Bus" "dbus-run-session" check_command "Bash" "bash" check_command "CMake" "cmake" +check_command "SDDM" "sddm" echo @@ -951,6 +903,7 @@ echo "[+] LabWC установлен." echo "[+] NetworkManager установлен." echo "[+] seatd установлен." echo "[+] PipeWire установлен." +echo "[+] SDDM установлен." echo "[+] zenith-cli установлен." echo echo "[!] network-manager-applet не является обязательным." @@ -962,12 +915,14 @@ echo " reboot" echo echo "После перезагрузки:" echo -echo " 1. Автоматический вход $USER_NAME" -echo " 2. Запуск LabWC" -echo " 3. Waybar" -echo " 4. Mako" -echo " 5. PipeWire / WirePlumber" -echo " 6. NetworkManager" +echo " 1. SDDM запустится автоматически" +echo " 2. Выберите пользователя: $USER_NAME" +echo " 3. Введите пароль" +echo " 4. Сессия LabWC (Wayland) запустится" +echo " 5. Waybar" +echo " 6. Mako" +echo " 7. PipeWire / WirePlumber" +echo " 8. NetworkManager" echo echo "zenith-cli:" echo