89 lines
3.8 KiB
Bash
89 lines
3.8 KiB
Bash
|
|
#!/bin/bash
|
||
|
|
set -euo pipefail
|
||
|
|
|
||
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||
|
|
CONFIG_DIR="$HOME/.config"
|
||
|
|
|
||
|
|
log() { echo -e "\n\033[1;34m=== $1 ===\033[0m"; }
|
||
|
|
|
||
|
|
# ─── 1. ПАКЕТЫ ───────────────────────────────────────────────
|
||
|
|
log "Обновление системы и установка пакетов из репозиториев"
|
||
|
|
sudo pacman -Syu --needed --noconfirm - < "$SCRIPT_DIR/pkglist-repo.txt"
|
||
|
|
|
||
|
|
log "Установка yay (AUR helper)"
|
||
|
|
if ! command -v yay &>/dev/null; then
|
||
|
|
TMPDIR=$(mktemp -d)
|
||
|
|
git clone https://aur.archlinux.org/yay.git "$TMPDIR/yay"
|
||
|
|
(cd "$TMPDIR/yay" && makepkg -si --noconfirm)
|
||
|
|
rm -rf "$TMPDIR"
|
||
|
|
else
|
||
|
|
echo "yay уже установлен"
|
||
|
|
fi
|
||
|
|
|
||
|
|
log "Установка AUR-пакетов"
|
||
|
|
yay -S --needed --noconfirm - < "$SCRIPT_DIR/pkglist-aur.txt"
|
||
|
|
|
||
|
|
# ─── 2. КОНФИГУРАЦИИ ────────────────────────────────────────
|
||
|
|
log "Копирование конфигураций"
|
||
|
|
|
||
|
|
declare -A CONFIG_MAP=(
|
||
|
|
["labwc"]="$CONFIG_DIR/labwc"
|
||
|
|
["aether"]="$CONFIG_DIR/aether"
|
||
|
|
["hypr"]="$CONFIG_DIR/hypr"
|
||
|
|
["waybar"]="$CONFIG_DIR/waybar"
|
||
|
|
["wofi"]="$CONFIG_DIR/wofi"
|
||
|
|
["mako"]="$CONFIG_DIR/mako"
|
||
|
|
["qt6ct"]="$CONFIG_DIR/qt6ct"
|
||
|
|
)
|
||
|
|
|
||
|
|
for src in "${!CONFIG_MAP[@]}"; do
|
||
|
|
if [ -d "$SCRIPT_DIR/config/$src" ]; then
|
||
|
|
mkdir -p "${CONFIG_MAP[$src]}"
|
||
|
|
cp -rn "$SCRIPT_DIR/config/$src/"* "${CONFIG_MAP[$src]}/"
|
||
|
|
echo " ✓ $src"
|
||
|
|
fi
|
||
|
|
done
|
||
|
|
|
||
|
|
# Отдельные файлы KDE/Dolphin
|
||
|
|
for f in dolphinrc kdeglobals sddmthemeinstallerrc; do
|
||
|
|
if [ -f "$SCRIPT_DIR/config/$f" ]; then
|
||
|
|
cp -rn "$SCRIPT_DIR/config/$f" "$CONFIG_DIR/$f"
|
||
|
|
echo " ✓ $f"
|
||
|
|
fi
|
||
|
|
done
|
||
|
|
|
||
|
|
# EasyEffects пресеты
|
||
|
|
if [ -d "$SCRIPT_DIR/easyeffects" ]; then
|
||
|
|
mkdir -p "$CONFIG_DIR/easyeffects"
|
||
|
|
cp -rn "$SCRIPT_DIR/easyeffects/"* "$CONFIG_DIR/easyeffects/"
|
||
|
|
echo " ✓ easyeffects presets"
|
||
|
|
fi
|
||
|
|
|
||
|
|
# ─── 3. ПРАВА НА СКРИПТЫ ────────────────────────────────────
|
||
|
|
log "Настройка прав доступа"
|
||
|
|
chmod +x "$CONFIG_DIR/labwc/update_theme.sh" 2>/dev/null || true
|
||
|
|
chmod +x "$CONFIG_DIR/waybar/v2raya-toggle.sh" 2>/dev/null || true
|
||
|
|
chmod +x "$CONFIG_DIR/wofi/cliphist-img.sh" 2>/dev/null || true
|
||
|
|
chmod +x "$CONFIG_DIR/aether/custom/post-apply.sh" 2>/dev/null || true
|
||
|
|
|
||
|
|
# ─── 4. INITRAMFS ────────────────────────────────────────────
|
||
|
|
log "Пересборка initramfs (nvidia-open + amd-ucode)"
|
||
|
|
sudo mkinitcpio -P
|
||
|
|
|
||
|
|
# ─── 5. СЕРВИСЫ ─────────────────────────────────────────────
|
||
|
|
log "Включение системных сервисов"
|
||
|
|
sudo systemctl enable bluetooth.service
|
||
|
|
sudo systemctl enable sddm.service
|
||
|
|
|
||
|
|
log "Включение пользовательских сервисов"
|
||
|
|
systemctl --user enable pipewire.service wireplumber.service
|
||
|
|
|
||
|
|
# ─── ГОТОВО ──────────────────────────────────────────────────
|
||
|
|
log "✅ Установка завершена!"
|
||
|
|
echo ""
|
||
|
|
echo "⚠️ Перед перезагрузкой проверьте:"
|
||
|
|
echo " 1. Bootloader: limine-install (если не настроен)"
|
||
|
|
echo " 2. SDDM тема: monochrome (из sddmthemeinstallerrc)"
|
||
|
|
echo " 3. UFW: sudo ufw enable (если нужен фаервол)"
|
||
|
|
echo ""
|
||
|
|
echo "Перезагрузите систему или выполните: exec labwc"
|