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
# ============================================================
# 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