update script
This commit is contained in:
+243
-122
@@ -1,6 +1,6 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
# LabWC Alpine Setup Script
|
# LabWC Alpine Setup Script
|
||||||
# Version 5
|
# Version 6
|
||||||
#
|
#
|
||||||
# Запускать от имени root!
|
# Запускать от имени root!
|
||||||
#
|
#
|
||||||
@@ -8,13 +8,14 @@
|
|||||||
# ./setup.sh
|
# ./setup.sh
|
||||||
# ./setup.sh username
|
# ./setup.sh username
|
||||||
#
|
#
|
||||||
# Скрипт устанавливает:
|
# Устанавливает:
|
||||||
# - LabWC + Wayland
|
# - LabWC + Wayland
|
||||||
# - Waybar / Mako / Wofi
|
# - Waybar / Mako / Wofi
|
||||||
# - PipeWire + WirePlumber
|
# - PipeWire + WirePlumber
|
||||||
# - NetworkManager
|
# - NetworkManager
|
||||||
# - Firefox
|
# - Firefox
|
||||||
# - zenith-cli
|
# - zenith-cli
|
||||||
|
# - seatd
|
||||||
# - автоматический вход на tty1
|
# - автоматический вход на tty1
|
||||||
# - автоматический запуск LabWC
|
# - автоматический запуск LabWC
|
||||||
#
|
#
|
||||||
@@ -24,9 +25,9 @@
|
|||||||
|
|
||||||
set -eu
|
set -eu
|
||||||
|
|
||||||
# --------------------------------------------------
|
# ==================================================
|
||||||
# 0. Основные параметры
|
# 0. Основные параметры
|
||||||
# --------------------------------------------------
|
# ==================================================
|
||||||
|
|
||||||
USER_NAME="${1:-ivan}"
|
USER_NAME="${1:-ivan}"
|
||||||
HOME_DIR="/home/$USER_NAME"
|
HOME_DIR="/home/$USER_NAME"
|
||||||
@@ -43,18 +44,18 @@ echo "[*] Пользователь: $USER_NAME"
|
|||||||
echo "[*] Домашний каталог: $HOME_DIR"
|
echo "[*] Домашний каталог: $HOME_DIR"
|
||||||
echo "=================================================="
|
echo "=================================================="
|
||||||
|
|
||||||
# --------------------------------------------------
|
# ==================================================
|
||||||
# 1. Проверка root
|
# 1. Проверка root
|
||||||
# --------------------------------------------------
|
# ==================================================
|
||||||
|
|
||||||
if [ "$(id -u)" -ne 0 ]; then
|
if [ "$(id -u)" -ne 0 ]; then
|
||||||
echo "[!] Этот скрипт необходимо запускать от root."
|
echo "[!] Этот скрипт необходимо запускать от root."
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# --------------------------------------------------
|
# ==================================================
|
||||||
# 2. Проверка имени пользователя
|
# 2. Проверка имени пользователя
|
||||||
# --------------------------------------------------
|
# ==================================================
|
||||||
|
|
||||||
case "$USER_NAME" in
|
case "$USER_NAME" in
|
||||||
""|*[!a-zA-Z0-9_-]*)
|
""|*[!a-zA-Z0-9_-]*)
|
||||||
@@ -63,23 +64,31 @@ case "$USER_NAME" in
|
|||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
# --------------------------------------------------
|
# ==================================================
|
||||||
# 3. Проверка существования /etc/apk/repositories
|
# 3. Проверка repositories
|
||||||
# --------------------------------------------------
|
# ==================================================
|
||||||
|
|
||||||
if [ ! -f /etc/apk/repositories ]; then
|
if [ ! -f /etc/apk/repositories ]; then
|
||||||
echo "[!] Файл /etc/apk/repositories не найден."
|
echo "[!] Файл /etc/apk/repositories не найден."
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# --------------------------------------------------
|
# ==================================================
|
||||||
# 4. Вспомогательные функции
|
# 4. Вспомогательные функции
|
||||||
# --------------------------------------------------
|
# ==================================================
|
||||||
|
|
||||||
add_user_group() {
|
add_user_group() {
|
||||||
GROUP_NAME="$1"
|
GROUP_NAME="$1"
|
||||||
|
|
||||||
if groups "$USER_NAME" 2>/dev/null | grep -qw "$GROUP_NAME"; then
|
if ! getent group "$GROUP_NAME" >/dev/null 2>&1; then
|
||||||
|
echo "[!] Группа $GROUP_NAME не существует — пропуск."
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
if id -nG "$USER_NAME" 2>/dev/null |
|
||||||
|
tr ' ' '\n' |
|
||||||
|
grep -qx "$GROUP_NAME"
|
||||||
|
then
|
||||||
echo "[+] $USER_NAME уже состоит в группе $GROUP_NAME."
|
echo "[+] $USER_NAME уже состоит в группе $GROUP_NAME."
|
||||||
else
|
else
|
||||||
echo "[*] Добавление $USER_NAME в группу $GROUP_NAME..."
|
echo "[*] Добавление $USER_NAME в группу $GROUP_NAME..."
|
||||||
@@ -90,21 +99,21 @@ add_user_group() {
|
|||||||
enable_service() {
|
enable_service() {
|
||||||
SERVICE="$1"
|
SERVICE="$1"
|
||||||
|
|
||||||
echo "[*] Включение службы $SERVICE..."
|
echo "[*] Настройка службы $SERVICE..."
|
||||||
|
|
||||||
rc-update add "$SERVICE" default 2>/dev/null || true
|
if ! rc-service "$SERVICE" status >/dev/null 2>&1; then
|
||||||
|
|
||||||
if rc-service "$SERVICE" status >/dev/null 2>&1; then
|
|
||||||
echo "[+] $SERVICE уже запущен."
|
|
||||||
else
|
|
||||||
echo "[*] Запуск $SERVICE..."
|
echo "[*] Запуск $SERVICE..."
|
||||||
rc-service "$SERVICE" start 2>/dev/null || true
|
rc-service "$SERVICE" start 2>/dev/null || true
|
||||||
|
else
|
||||||
|
echo "[+] $SERVICE уже запущен."
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
rc-update add "$SERVICE" default 2>/dev/null || true
|
||||||
}
|
}
|
||||||
|
|
||||||
# --------------------------------------------------
|
# ==================================================
|
||||||
# 5. Репозитории
|
# 5. Репозитории
|
||||||
# --------------------------------------------------
|
# ==================================================
|
||||||
|
|
||||||
echo "[*] Проверка репозитория community..."
|
echo "[*] Проверка репозитория community..."
|
||||||
|
|
||||||
@@ -135,9 +144,9 @@ echo "[*] Обновление индекса пакетов..."
|
|||||||
|
|
||||||
apk update
|
apk update
|
||||||
|
|
||||||
# --------------------------------------------------
|
# ==================================================
|
||||||
# 6. Базовые инструменты
|
# 6. Базовые инструменты
|
||||||
# --------------------------------------------------
|
# ==================================================
|
||||||
|
|
||||||
echo "[*] Установка базовых инструментов..."
|
echo "[*] Установка базовых инструментов..."
|
||||||
|
|
||||||
@@ -148,9 +157,9 @@ apk add \
|
|||||||
bash \
|
bash \
|
||||||
build-base
|
build-base
|
||||||
|
|
||||||
# --------------------------------------------------
|
# ==================================================
|
||||||
# 7. Пользователь
|
# 7. Пользователь
|
||||||
# --------------------------------------------------
|
# ==================================================
|
||||||
|
|
||||||
echo "[*] Настройка пользователя $USER_NAME..."
|
echo "[*] Настройка пользователя $USER_NAME..."
|
||||||
|
|
||||||
@@ -171,26 +180,64 @@ else
|
|||||||
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# --------------------------------------------------
|
# ==================================================
|
||||||
# 8. Группы
|
# 8. Wayland / seatd / системные компоненты
|
||||||
# --------------------------------------------------
|
#
|
||||||
|
# ВАЖНО:
|
||||||
|
# seatd устанавливается ДО добавления пользователя
|
||||||
|
# в группу seat.
|
||||||
|
# ==================================================
|
||||||
|
|
||||||
|
echo "[*] Установка Wayland и системных компонентов..."
|
||||||
|
|
||||||
|
apk add \
|
||||||
|
mesa \
|
||||||
|
mesa-dri \
|
||||||
|
libinput \
|
||||||
|
seatd \
|
||||||
|
seatd-openrc \
|
||||||
|
dbus \
|
||||||
|
dbus-openrc \
|
||||||
|
polkit
|
||||||
|
|
||||||
|
# ==================================================
|
||||||
|
# 9. Группы
|
||||||
|
# ==================================================
|
||||||
|
|
||||||
echo "[*] Настройка групп пользователя..."
|
echo "[*] Настройка групп пользователя..."
|
||||||
|
|
||||||
|
# Sudo
|
||||||
add_user_group wheel
|
add_user_group wheel
|
||||||
add_user_group seat
|
|
||||||
|
|
||||||
# При использовании seatd отдельные группы video/input
|
# seatd
|
||||||
# обычно не требуются.
|
|
||||||
#
|
#
|
||||||
# При необходимости их можно добавить:
|
# Alpine использует группу "seat".
|
||||||
|
# "seatd" — это имя демона/пакета, НЕ имя группы.
|
||||||
|
#
|
||||||
|
# Документация Alpine:
|
||||||
|
# adduser $USER seat
|
||||||
|
#
|
||||||
|
if getent group seat >/dev/null 2>&1; then
|
||||||
|
add_user_group seat
|
||||||
|
else
|
||||||
|
echo "[!] Группа seat отсутствует."
|
||||||
|
echo "[!] Создаю группу seat..."
|
||||||
|
|
||||||
|
addgroup seat
|
||||||
|
|
||||||
|
add_user_group seat
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Для seatd обычно НЕ нужны input/video.
|
||||||
|
#
|
||||||
|
# video можно добавить отдельно, если PipeWire
|
||||||
|
# должен напрямую работать с веб-камерой:
|
||||||
#
|
#
|
||||||
# add_user_group video
|
# add_user_group video
|
||||||
# add_user_group input
|
|
||||||
|
|
||||||
# --------------------------------------------------
|
# ==================================================
|
||||||
# 9. Sudo
|
# 10. Sudo
|
||||||
# --------------------------------------------------
|
# ==================================================
|
||||||
|
|
||||||
echo "[*] Настройка sudo..."
|
echo "[*] Настройка sudo..."
|
||||||
|
|
||||||
@@ -232,47 +279,20 @@ else
|
|||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# --------------------------------------------------
|
# ==================================================
|
||||||
# 10. Wayland / LabWC
|
|
||||||
# --------------------------------------------------
|
|
||||||
|
|
||||||
echo "[*] Установка Wayland и системных компонентов..."
|
|
||||||
|
|
||||||
apk add \
|
|
||||||
mesa \
|
|
||||||
mesa-dri \
|
|
||||||
libinput \
|
|
||||||
seatd \
|
|
||||||
dbus \
|
|
||||||
polkit
|
|
||||||
|
|
||||||
# --------------------------------------------------
|
|
||||||
# 11. Зависимости zenith-cli
|
# 11. Зависимости zenith-cli
|
||||||
# --------------------------------------------------
|
# ==================================================
|
||||||
|
|
||||||
echo "[*] Установка зависимостей zenith-cli..."
|
echo "[*] Установка зависимостей zenith-cli..."
|
||||||
|
|
||||||
# zenith-cli:
|
|
||||||
#
|
|
||||||
# Bash -> build.sh
|
|
||||||
# C/C++ -> build-base
|
|
||||||
# CMake -> cmake
|
|
||||||
# libcurl -> curl-dev
|
|
||||||
# OpenCV -> opencv-dev
|
|
||||||
#
|
|
||||||
# CMakeLists.txt использует:
|
|
||||||
#
|
|
||||||
# find_package(CURL REQUIRED)
|
|
||||||
# find_package(OpenCV REQUIRED)
|
|
||||||
|
|
||||||
apk add \
|
apk add \
|
||||||
cmake \
|
cmake \
|
||||||
curl-dev \
|
curl-dev \
|
||||||
opencv-dev
|
opencv-dev
|
||||||
|
|
||||||
# --------------------------------------------------
|
# ==================================================
|
||||||
# 12. Desktop environment
|
# 12. Desktop environment
|
||||||
# --------------------------------------------------
|
# ==================================================
|
||||||
|
|
||||||
echo "[*] Установка рабочего окружения..."
|
echo "[*] Установка рабочего окружения..."
|
||||||
|
|
||||||
@@ -297,9 +317,9 @@ apk add \
|
|||||||
firefox \
|
firefox \
|
||||||
swaylock
|
swaylock
|
||||||
|
|
||||||
# --------------------------------------------------
|
# ==================================================
|
||||||
# 13. OpenRC
|
# 13. OpenRC
|
||||||
# --------------------------------------------------
|
# ==================================================
|
||||||
|
|
||||||
echo "[*] Настройка системных служб..."
|
echo "[*] Настройка системных служб..."
|
||||||
|
|
||||||
@@ -307,64 +327,98 @@ enable_service seatd
|
|||||||
enable_service dbus
|
enable_service dbus
|
||||||
enable_service networkmanager
|
enable_service networkmanager
|
||||||
|
|
||||||
# --------------------------------------------------
|
# ==================================================
|
||||||
# 14. Конфигурация LabWC
|
# 14. Конфигурация LabWC
|
||||||
# --------------------------------------------------
|
# ==================================================
|
||||||
|
|
||||||
echo "[*] Создание конфигурации LabWC..."
|
echo "[*] Создание конфигурации LabWC..."
|
||||||
|
|
||||||
mkdir -p "$HOME_DIR/.config/labwc"
|
mkdir -p "$HOME_DIR/.config/labwc"
|
||||||
|
|
||||||
|
# --------------------------------------------------
|
||||||
|
# LabWC environment
|
||||||
|
# --------------------------------------------------
|
||||||
|
|
||||||
cat > "$HOME_DIR/.config/labwc/environment" << 'EOF'
|
cat > "$HOME_DIR/.config/labwc/environment" << 'EOF'
|
||||||
XDG_CURRENT_DESKTOP=labwc
|
XDG_CURRENT_DESKTOP=labwc
|
||||||
XDG_SESSION_DESKTOP=labwc
|
XDG_SESSION_DESKTOP=labwc
|
||||||
XDG_SESSION_TYPE=wayland
|
XDG_SESSION_TYPE=wayland
|
||||||
|
|
||||||
|
# Runtime directory для Wayland/seatd
|
||||||
|
XDG_RUNTIME_DIR=/tmp/user-1000
|
||||||
|
|
||||||
MOZ_ENABLE_WAYLAND=1
|
MOZ_ENABLE_WAYLAND=1
|
||||||
QT_QPA_PLATFORM=wayland
|
QT_QPA_PLATFORM=wayland
|
||||||
SDL_VIDEODRIVER=wayland
|
SDL_VIDEODRIVER=wayland
|
||||||
|
|
||||||
|
# Явно использовать seatd
|
||||||
|
LIBSEAT_BACKEND=seatd
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
|
# --------------------------------------------------
|
||||||
|
# LabWC autostart
|
||||||
|
# --------------------------------------------------
|
||||||
|
|
||||||
cat > "$HOME_DIR/.config/labwc/autostart" << 'EOF'
|
cat > "$HOME_DIR/.config/labwc/autostart" << 'EOF'
|
||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
|
||||||
# --------------------------------------------------
|
# ==================================================
|
||||||
|
# XDG_RUNTIME_DIR
|
||||||
|
# ==================================================
|
||||||
|
|
||||||
|
if [ -z "${XDG_RUNTIME_DIR:-}" ]; then
|
||||||
|
XDG_RUNTIME_DIR="/tmp/user-$(id -u)"
|
||||||
|
export XDG_RUNTIME_DIR
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ ! -d "$XDG_RUNTIME_DIR" ]; then
|
||||||
|
mkdir -p "$XDG_RUNTIME_DIR"
|
||||||
|
chmod 700 "$XDG_RUNTIME_DIR"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# ==================================================
|
||||||
# NetworkManager applet
|
# NetworkManager applet
|
||||||
# --------------------------------------------------
|
# ==================================================
|
||||||
|
|
||||||
nm-applet &
|
if command -v nm-applet >/dev/null 2>&1; then
|
||||||
|
nm-applet &
|
||||||
|
fi
|
||||||
|
|
||||||
# --------------------------------------------------
|
# ==================================================
|
||||||
# Waybar
|
# Waybar
|
||||||
# --------------------------------------------------
|
# ==================================================
|
||||||
|
|
||||||
waybar &
|
if command -v waybar >/dev/null 2>&1; then
|
||||||
|
waybar &
|
||||||
|
fi
|
||||||
|
|
||||||
# --------------------------------------------------
|
# ==================================================
|
||||||
# Notification daemon
|
# Notification daemon
|
||||||
# --------------------------------------------------
|
# ==================================================
|
||||||
|
|
||||||
mako &
|
if command -v mako >/dev/null 2>&1; then
|
||||||
|
mako &
|
||||||
|
fi
|
||||||
|
|
||||||
# --------------------------------------------------
|
# ==================================================
|
||||||
# PipeWire
|
# PipeWire
|
||||||
# --------------------------------------------------
|
# ==================================================
|
||||||
|
|
||||||
if ! pgrep -x pipewire >/dev/null 2>&1; then
|
if ! pgrep -x pipewire >/dev/null 2>&1; then
|
||||||
pipewire &
|
pipewire &
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# --------------------------------------------------
|
# ==================================================
|
||||||
# WirePlumber
|
# WirePlumber
|
||||||
# --------------------------------------------------
|
# ==================================================
|
||||||
|
|
||||||
if ! pgrep -x wireplumber >/dev/null 2>&1; then
|
if ! pgrep -x wireplumber >/dev/null 2>&1; then
|
||||||
wireplumber &
|
wireplumber &
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# --------------------------------------------------
|
# ==================================================
|
||||||
# Wallpaper
|
# Wallpaper
|
||||||
# --------------------------------------------------
|
# ==================================================
|
||||||
|
|
||||||
if [ -f /usr/share/backgrounds/alpine/alpine-wallpaper.png ]; then
|
if [ -f /usr/share/backgrounds/alpine/alpine-wallpaper.png ]; then
|
||||||
swaybg \
|
swaybg \
|
||||||
@@ -375,9 +429,9 @@ EOF
|
|||||||
|
|
||||||
chmod +x "$HOME_DIR/.config/labwc/autostart"
|
chmod +x "$HOME_DIR/.config/labwc/autostart"
|
||||||
|
|
||||||
# --------------------------------------------------
|
# ==================================================
|
||||||
# 15. zenith-cli
|
# 15. zenith-cli
|
||||||
# --------------------------------------------------
|
# ==================================================
|
||||||
|
|
||||||
echo "[*] Установка zenith-cli..."
|
echo "[*] Установка zenith-cli..."
|
||||||
|
|
||||||
@@ -402,9 +456,9 @@ else
|
|||||||
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# --------------------------------------------------
|
# ==================================================
|
||||||
# 16. Проверка build.sh
|
# 16. Проверка build.sh
|
||||||
# --------------------------------------------------
|
# ==================================================
|
||||||
|
|
||||||
echo "[*] Проверка build.sh..."
|
echo "[*] Проверка build.sh..."
|
||||||
|
|
||||||
@@ -414,9 +468,9 @@ if [ ! -f "$ZENITH_DIR/build.sh" ]; then
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# --------------------------------------------------
|
# ==================================================
|
||||||
# 17. Проверка CMakeLists.txt
|
# 17. Проверка CMakeLists.txt
|
||||||
# --------------------------------------------------
|
# ==================================================
|
||||||
|
|
||||||
echo "[*] Проверка CMakeLists.txt..."
|
echo "[*] Проверка CMakeLists.txt..."
|
||||||
|
|
||||||
@@ -426,9 +480,9 @@ if [ ! -f "$ZENITH_DIR/CMakeLists.txt" ]; then
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# --------------------------------------------------
|
# ==================================================
|
||||||
# 18. Сборка zenith-cli
|
# 18. Сборка zenith-cli
|
||||||
# --------------------------------------------------
|
# ==================================================
|
||||||
|
|
||||||
echo "[*] Сборка zenith-cli..."
|
echo "[*] Сборка zenith-cli..."
|
||||||
|
|
||||||
@@ -463,9 +517,9 @@ su - "$USER_NAME" -c "
|
|||||||
echo '[+] Установлен в: $LOCAL_BIN/zenith-cli'
|
echo '[+] Установлен в: $LOCAL_BIN/zenith-cli'
|
||||||
"
|
"
|
||||||
|
|
||||||
# --------------------------------------------------
|
# ==================================================
|
||||||
# 19. Проверка бинарника zenith-cli
|
# 19. Проверка бинарника
|
||||||
# --------------------------------------------------
|
# ==================================================
|
||||||
|
|
||||||
echo "[*] Проверка zenith-cli..."
|
echo "[*] Проверка zenith-cli..."
|
||||||
|
|
||||||
@@ -474,9 +528,9 @@ if [ ! -x "$LOCAL_BIN/zenith-cli" ]; then
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# --------------------------------------------------
|
# ==================================================
|
||||||
# 20. PATH
|
# 20. PATH
|
||||||
# --------------------------------------------------
|
# ==================================================
|
||||||
|
|
||||||
echo "[*] Настройка PATH..."
|
echo "[*] Настройка PATH..."
|
||||||
|
|
||||||
@@ -492,9 +546,35 @@ EOF
|
|||||||
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# --------------------------------------------------
|
# ==================================================
|
||||||
# 21. Автологин tty1
|
# 21. XDG_RUNTIME_DIR
|
||||||
# --------------------------------------------------
|
# ==================================================
|
||||||
|
|
||||||
|
echo "[*] Настройка XDG_RUNTIME_DIR..."
|
||||||
|
|
||||||
|
if ! grep -qF '# XDG-RUNTIME-DIR' "$PROFILE"; then
|
||||||
|
|
||||||
|
cat >> "$PROFILE" << 'EOF'
|
||||||
|
|
||||||
|
# XDG-RUNTIME-DIR
|
||||||
|
#
|
||||||
|
# seatd/Wayland требует XDG_RUNTIME_DIR.
|
||||||
|
#
|
||||||
|
if [ -z "${XDG_RUNTIME_DIR:-}" ]; then
|
||||||
|
export XDG_RUNTIME_DIR="/tmp/user-$(id -u)"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ ! -d "$XDG_RUNTIME_DIR" ]; then
|
||||||
|
mkdir -p "$XDG_RUNTIME_DIR"
|
||||||
|
chmod 700 "$XDG_RUNTIME_DIR"
|
||||||
|
fi
|
||||||
|
EOF
|
||||||
|
|
||||||
|
fi
|
||||||
|
|
||||||
|
# ==================================================
|
||||||
|
# 22. Автологин tty1
|
||||||
|
# ==================================================
|
||||||
|
|
||||||
echo "[*] Настройка автоматического входа..."
|
echo "[*] Настройка автоматического входа..."
|
||||||
|
|
||||||
@@ -528,9 +608,9 @@ else
|
|||||||
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# --------------------------------------------------
|
# ==================================================
|
||||||
# 22. Автозапуск LabWC
|
# 23. Автозапуск LabWC
|
||||||
# --------------------------------------------------
|
# ==================================================
|
||||||
|
|
||||||
echo "[*] Настройка запуска LabWC..."
|
echo "[*] Настройка запуска LabWC..."
|
||||||
|
|
||||||
@@ -542,12 +622,15 @@ if ! grep -qF '# LABWC-AUTOSTART' "$PROFILE"; then
|
|||||||
#
|
#
|
||||||
# Запуск LabWC только на tty1.
|
# Запуск LabWC только на tty1.
|
||||||
#
|
#
|
||||||
# dbus-run-session создаёт отдельную D-Bus session bus
|
|
||||||
# для графической сессии.
|
|
||||||
#
|
|
||||||
if [ "$(tty 2>/dev/null)" = "/dev/tty1" ] &&
|
if [ "$(tty 2>/dev/null)" = "/dev/tty1" ] &&
|
||||||
[ -z "${WAYLAND_DISPLAY:-}" ]; then
|
[ -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
|
exec dbus-run-session -- labwc
|
||||||
|
|
||||||
fi
|
fi
|
||||||
@@ -555,15 +638,19 @@ EOF
|
|||||||
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# --------------------------------------------------
|
# ==================================================
|
||||||
# 23. Права
|
# 24. Права
|
||||||
# --------------------------------------------------
|
# ==================================================
|
||||||
|
|
||||||
echo "[*] Настройка владельцев файлов..."
|
echo "[*] Настройка владельцев файлов..."
|
||||||
|
|
||||||
chown -R "$USER_NAME:$USER_NAME" "$HOME_DIR/.config"
|
if [ -d "$HOME_DIR/.config" ]; then
|
||||||
|
chown -R "$USER_NAME:$USER_NAME" "$HOME_DIR/.config"
|
||||||
|
fi
|
||||||
|
|
||||||
chown "$USER_NAME:$USER_NAME" "$PROFILE"
|
if [ -f "$PROFILE" ]; then
|
||||||
|
chown "$USER_NAME:$USER_NAME" "$PROFILE"
|
||||||
|
fi
|
||||||
|
|
||||||
if [ -d "$HOME_DIR/.local" ]; then
|
if [ -d "$HOME_DIR/.local" ]; then
|
||||||
chown -R "$USER_NAME:$USER_NAME" "$HOME_DIR/.local"
|
chown -R "$USER_NAME:$USER_NAME" "$HOME_DIR/.local"
|
||||||
@@ -573,9 +660,28 @@ if [ -d "$ZENITH_DIR" ]; then
|
|||||||
chown -R "$USER_NAME:$USER_NAME" "$ZENITH_DIR"
|
chown -R "$USER_NAME:$USER_NAME" "$ZENITH_DIR"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# --------------------------------------------------
|
# ==================================================
|
||||||
# 24. Финальная проверка
|
# 25. Проверка групп
|
||||||
# --------------------------------------------------
|
# ==================================================
|
||||||
|
|
||||||
|
echo
|
||||||
|
echo "=================================================="
|
||||||
|
echo "[*] Группы пользователя"
|
||||||
|
echo "=================================================="
|
||||||
|
|
||||||
|
id "$USER_NAME"
|
||||||
|
|
||||||
|
echo
|
||||||
|
|
||||||
|
if id -nG "$USER_NAME" | tr ' ' '\n' | grep -qx seat; then
|
||||||
|
echo "[+] seat: OK"
|
||||||
|
else
|
||||||
|
echo "[!] seat: НЕ НАЙДЕНА"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# ==================================================
|
||||||
|
# 26. Финальная проверка
|
||||||
|
# ==================================================
|
||||||
|
|
||||||
echo
|
echo
|
||||||
echo "=================================================="
|
echo "=================================================="
|
||||||
@@ -617,13 +723,27 @@ else
|
|||||||
echo "ERROR"
|
echo "ERROR"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
printf '%-20s' "D-Bus session:"
|
printf '%-20s' "D-Bus:"
|
||||||
if command -v dbus-run-session >/dev/null 2>&1; then
|
if command -v dbus-run-session >/dev/null 2>&1; then
|
||||||
echo "OK"
|
echo "OK"
|
||||||
else
|
else
|
||||||
echo "ERROR"
|
echo "ERROR"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
printf '%-20s' "seatd:"
|
||||||
|
if command -v seatd >/dev/null 2>&1; then
|
||||||
|
echo "OK"
|
||||||
|
else
|
||||||
|
echo "ERROR"
|
||||||
|
fi
|
||||||
|
|
||||||
|
printf '%-20s' "seatd service:"
|
||||||
|
if rc-service seatd status >/dev/null 2>&1; then
|
||||||
|
echo "RUNNING"
|
||||||
|
else
|
||||||
|
echo "NOT RUNNING"
|
||||||
|
fi
|
||||||
|
|
||||||
printf '%-20s' "Bash:"
|
printf '%-20s' "Bash:"
|
||||||
if command -v bash >/dev/null 2>&1; then
|
if command -v bash >/dev/null 2>&1; then
|
||||||
echo "OK"
|
echo "OK"
|
||||||
@@ -664,10 +784,11 @@ echo
|
|||||||
echo "После перезагрузки:"
|
echo "После перезагрузки:"
|
||||||
echo
|
echo
|
||||||
echo " 1. $USER_NAME будет автоматически авторизован на tty1."
|
echo " 1. $USER_NAME будет автоматически авторизован на tty1."
|
||||||
echo " 2. LabWC запустится через dbus-run-session."
|
echo " 2. seatd будет запущен OpenRC."
|
||||||
echo " 3. Waybar, Mako и NetworkManager applet запустятся автоматически."
|
echo " 3. LabWC запустится через dbus-run-session."
|
||||||
echo " 4. PipeWire и WirePlumber будут запущены в пользовательской сессии."
|
echo " 4. Waybar, Mako и NetworkManager applet запустятся автоматически."
|
||||||
echo " 5. zenith-cli будет доступен как:"
|
echo " 5. PipeWire и WirePlumber будут запущены в пользовательской сессии."
|
||||||
|
echo " 6. zenith-cli будет доступен как:"
|
||||||
echo
|
echo
|
||||||
echo " zenith-cli"
|
echo " zenith-cli"
|
||||||
echo
|
echo
|
||||||
|
|||||||
Reference in New Issue
Block a user