This commit is contained in:
2026-09-06 20:24:15 +06:00
parent c6e3fa4b28
commit 127f0b2238
+53 -98
View File
@@ -1,9 +1,8 @@
#!/bin/sh #!/bin/sh
# ============================================================ # ============================================================
# LabWC Alpine Setup Script # LabWC Alpine Setup Script
# Version 10 # Version 11
# #
# Запуск: # Запуск:
# #
@@ -76,7 +75,7 @@ if [ "$(id -u)" -ne 0 ]; then
fi fi
exec sudo "$SCRIPT_PATH" "$@" exec sudo sh "$SCRIPT_PATH" "$@"
fi fi
@@ -86,7 +85,7 @@ fi
echo echo
echo "==================================================" echo "=================================================="
echo " LabWC Alpine Setup Script v10" echo " LabWC Alpine Setup Script v11"
echo "==================================================" echo "=================================================="
echo echo
echo "[*] User: $USER_NAME" echo "[*] User: $USER_NAME"
@@ -198,10 +197,11 @@ install_optional() {
add_user_group() { add_user_group() {
GROUP_NAME="$1" GROUP_NAME="$1"
# Создаём группу, если её нет
if ! getent group "$GROUP_NAME" >/dev/null 2>&1; then if ! getent group "$GROUP_NAME" >/dev/null 2>&1; then
echo "[!] Группа $GROUP_NAME отсутствует." echo "[*] Создание группы $GROUP_NAME..."
return 0 addgroup "$GROUP_NAME"
fi fi
@@ -329,8 +329,9 @@ else
adduser -D "$USER_NAME" adduser -D "$USER_NAME"
echo echo
echo "[!] Задайте пароль для $USER_NAME." echo "[!] Задайте пароль для $USER_NAME вручную:"
passwd "$USER_NAME" echo " passwd $USER_NAME"
echo
fi fi
@@ -466,6 +467,17 @@ install_required pcmanfm
install_required firefox install_required firefox
install_required swaylock install_required swaylock
# ============================================================
# SDDM (Display Manager)
# ============================================================
echo
echo "=================================================="
echo "[*] SDDM"
echo "=================================================="
install_required sddm
# ============================================================ # ============================================================
# Необязательные пакеты # Необязательные пакеты
# ============================================================ # ============================================================
@@ -496,6 +508,7 @@ echo "=================================================="
enable_service seatd enable_service seatd
enable_service dbus enable_service dbus
enable_service networkmanager enable_service networkmanager
enable_service sddm
# ============================================================ # ============================================================
# LabWC configuration # LabWC configuration
@@ -598,12 +611,20 @@ fi
# Wallpaper # Wallpaper
# ============================================================ # ============================================================
if command -v swaybg >/dev/null 2>&1 && WALLPAPER=""
[ -f /usr/share/backgrounds/alpine/alpine-wallpaper.png ]
then 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 \ swaybg \
-i /usr/share/backgrounds/alpine/alpine-wallpaper.png \ -i "$WALLPAPER" \
-m fill & -m fill &
fi fi
@@ -627,7 +648,7 @@ if [ -d "$ZENITH_DIR/.git" ]; then
su - "$USER_NAME" -c " su - "$USER_NAME" -c "
set -eu set -eu
cd '$ZENITH_DIR' cd '$ZENITH_DIR'
git pull --ff-only git pull
" "
else else
@@ -744,95 +765,25 @@ EOF
fi fi
# ============================================================ # ============================================================
# Автологин tty1 # SDDM configuration
# ============================================================ # ============================================================
echo echo
echo "==================================================" echo "=================================================="
echo "[*] Настройка автологина tty1" echo "[*] Настройка SDDM"
echo "==================================================" 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 [General]
cp /etc/inittab /etc/inittab.bak GreeterEnvironment=MOZ_ENABLE_WAYLAND=1,QT_QPA_PLATFORM=wayland,SDL_VIDEODRIVER=wayland
fi
# --------------------------------------------------------
# Создаём login-wrapper
#
# agetty запускает этот скрипт вместо обычного login.
# Скрипт автоматически выполняет login для USER_NAME.
# --------------------------------------------------------
cat > /usr/local/sbin/autologin-login << EOF
#!/bin/sh
exec /bin/login "$USER_NAME"
EOF EOF
chmod 755 /usr/local/sbin/autologin-login echo "[+] SDDM настроен для использования LabWC."
# --------------------------------------------------------
# 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
# ============================================================ # ============================================================
# Права # Права
@@ -917,6 +868,7 @@ check_command "NetworkManager" "nmcli"
check_command "D-Bus" "dbus-run-session" check_command "D-Bus" "dbus-run-session"
check_command "Bash" "bash" check_command "Bash" "bash"
check_command "CMake" "cmake" check_command "CMake" "cmake"
check_command "SDDM" "sddm"
echo echo
@@ -951,6 +903,7 @@ echo "[+] LabWC установлен."
echo "[+] NetworkManager установлен." echo "[+] NetworkManager установлен."
echo "[+] seatd установлен." echo "[+] seatd установлен."
echo "[+] PipeWire установлен." echo "[+] PipeWire установлен."
echo "[+] SDDM установлен."
echo "[+] zenith-cli установлен." echo "[+] zenith-cli установлен."
echo echo
echo "[!] network-manager-applet не является обязательным." echo "[!] network-manager-applet не является обязательным."
@@ -962,12 +915,14 @@ echo " reboot"
echo echo
echo "После перезагрузки:" echo "После перезагрузки:"
echo echo
echo " 1. Автоматический вход $USER_NAME" echo " 1. SDDM запустится автоматически"
echo " 2. Запуск LabWC" echo " 2. Выберите пользователя: $USER_NAME"
echo " 3. Waybar" echo " 3. Введите пароль"
echo " 4. Mako" echo " 4. Сессия LabWC (Wayland) запустится"
echo " 5. PipeWire / WirePlumber" echo " 5. Waybar"
echo " 6. NetworkManager" echo " 6. Mako"
echo " 7. PipeWire / WirePlumber"
echo " 8. NetworkManager"
echo echo
echo "zenith-cli:" echo "zenith-cli:"
echo echo