#!/bin/bash # ============================================================ # Arch Linux Setup Script – fatih @ morpheus # ============================================================ set -e # Abbruch bei Fehler # Farben GREEN='\033[0;32m' BLUE='\033[0;34m' RED='\033[0;31m' NC='\033[0m' info() { echo -e "${BLUE}[INFO]${NC} $1"; } success() { echo -e "${GREEN}[OK]${NC} $1"; } error() { echo -e "${RED}[FEHLER]${NC} $1"; exit 1; } # Root-Check if [ "$EUID" -eq 0 ]; then error "Bitte NICHT als root ausführen! Sudo wird intern verwendet." fi # ============================================================ # 1. Pakete via pacman installieren # ============================================================ info "Installiere Pakete via pacman..." sudo pacman -Syu --noconfirm sudo pacman -S --noconfirm --needed \ pipewire \ pipewire-audio \ pipewire-alsa \ pipewire-pulse \ wireplumber \ brightnessctl \ playerctl \ bat \ fzf \ ghostty \ neovim \ waybar \ btop \ git \ fastfetch \ swww \ yazi success "Pacman-Pakete installiert." # ============================================================ # 2. hyprshot via pacman (community/extra repo) # ============================================================ info "Installiere hyprshot..." if pacman -Si hyprshot &>/dev/null; then sudo pacman -S --noconfirm --needed hyprshot success "hyprshot installiert." else info "hyprshot nicht in offiziellen Repos – wird via AUR installiert (nach yay-Setup)." INSTALL_HYPRSHOT_AUR=true fi # ============================================================ # 3. yay via git clone + makepkg installieren # ============================================================ if ! command -v yay &>/dev/null; then info "Installiere yay (AUR Helper)..." sudo pacman -S --noconfirm --needed base-devel TMPDIR=$(mktemp -d) git clone https://aur.archlinux.org/yay.git "$TMPDIR/yay" cd "$TMPDIR/yay" makepkg -si --noconfirm cd ~ rm -rf "$TMPDIR" success "yay installiert." else success "yay ist bereits installiert." fi # hyprshot via AUR falls nötig if [ "$INSTALL_HYPRSHOT_AUR" = true ]; then info "Installiere hyprshot via AUR..." yay -S --noconfirm hyprshot success "hyprshot via AUR installiert." fi # Weitere AUR-Pakete info "Installiere AUR-Pakete (rofi-wayland, zen-browser-bin, localsend)..." yay -S --noconfirm --needed \ rofi-wayland \ zen-browser-bin \ localsend success "AUR-Pakete installiert." # ============================================================ # 4. /etc/systemd/logind.conf anpassen # ============================================================ info "Passe /etc/systemd/logind.conf an..." LOGIND_CONF="/etc/systemd/logind.conf" sudo sed -i 's/^#*HandleLidSwitchExternalPower=.*/HandleLidSwitchExternalPower=ignore/' "$LOGIND_CONF" sudo sed -i 's/^#*HandleLidSwitchDocked=.*/HandleLidSwitchDocked=ignore/' "$LOGIND_CONF" # Falls die Zeilen gar nicht vorhanden sind, anhängen grep -q "^HandleLidSwitchExternalPower=" "$LOGIND_CONF" || \ echo "HandleLidSwitchExternalPower=ignore" | sudo tee -a "$LOGIND_CONF" > /dev/null grep -q "^HandleLidSwitchDocked=" "$LOGIND_CONF" || \ echo "HandleLidSwitchDocked=ignore" | sudo tee -a "$LOGIND_CONF" > /dev/null sudo systemctl restart systemd-logind success "logind.conf angepasst." # ============================================================ # 5. Kernel-Logs unterdrücken (99-silent.conf) # ============================================================ info "Erstelle /etc/sysctl.d/99-silent.conf..." echo "kernel.printk = 3 4 1 3" | sudo tee /etc/sysctl.d/99-silent.conf > /dev/null sudo sysctl --system > /dev/null success "99-silent.conf erstellt." # ============================================================ # Fertig # ============================================================ echo "" echo -e "${GREEN}============================================================${NC}" echo -e "${GREEN} Setup abgeschlossen! Bitte neu starten:${NC}" echo -e "${GREEN} sudo reboot${NC}" echo -e "${GREEN}============================================================${NC}"