From ab573ae7e9be5034dc7bf5eb0b5dc7a5d60b279e Mon Sep 17 00:00:00 2001 From: DragonSlayer_14 Date: Sun, 9 Mar 2025 20:53:48 +0100 Subject: [PATCH] Rem: Lagert Setup-Skripte in eigenes Repo aus. --- README.md | 1 - Setup/0_Setup.sh | 78 ------------ Setup/10_Programs.sh | 236 ------------------------------------- Setup/1_TrixieUpgrade.sh | 34 ------ Setup/2_AdJoin.sh | 26 ---- Setup/3_HyprlandInstall.sh | 26 ---- Setup/4_ZshRegister.sh | 62 ---------- Setup/5_DomainLogin.sh | 47 -------- Setup/6_Polish.sh | 193 ------------------------------ Setup/7_GrubTheme.sh | 36 ------ Setup/8_Plymouth.sh | 59 ---------- Setup/9_GamingSetup.sh | 35 ------ 12 files changed, 833 deletions(-) delete mode 100755 Setup/0_Setup.sh delete mode 100755 Setup/10_Programs.sh delete mode 100755 Setup/1_TrixieUpgrade.sh delete mode 100755 Setup/2_AdJoin.sh delete mode 100755 Setup/3_HyprlandInstall.sh delete mode 100755 Setup/4_ZshRegister.sh delete mode 100755 Setup/5_DomainLogin.sh delete mode 100755 Setup/6_Polish.sh delete mode 100755 Setup/7_GrubTheme.sh delete mode 100755 Setup/8_Plymouth.sh delete mode 100755 Setup/9_GamingSetup.sh diff --git a/README.md b/README.md index 7f8746d..ec888bb 100644 --- a/README.md +++ b/README.md @@ -11,7 +11,6 @@ Datenverarbeitung und anderen Aufgaben. - **Files**: Enthält Skripte für den umgang mit Dateien. - **Maintenance**: Enthält Skripte für die Wartung eines Computers/Servers. - **Mount**: Enthält Skripte zum mounten von Dateisytemen und Cloudsanbietern. - - **Setup**: Enthält Skripte um einen Rechner aufzusetzen. - **Utility**: Enthält Utility-Skripte und Funktionen, die in anderen Skripten eingebunden werden können. ## Anforderungen diff --git a/Setup/0_Setup.sh b/Setup/0_Setup.sh deleted file mode 100755 index a16ab4a..0000000 --- a/Setup/0_Setup.sh +++ /dev/null @@ -1,78 +0,0 @@ -#!/bin/bash - -# Root-Rechte prüfen -if [ "$(id -u)" -ne 0 ]; then - echo "Bitte mit sudo ausführen!" - exit 1 -fi - -apt update && apt upgrade -y -apt install -y git sudo - -# Der Code, der eingefügt werden soll -CONFIG_BLOCK='if groups | grep -q "\bsudo\b"; then -case ":$PATH:" in -*":/sbin:"*) ;; -*) export PATH="$PATH:/sbin" ;; -esac -case ":$PATH:" in -*":/usr/sbin:"*) ;; -*) export PATH="$PATH:/usr/sbin" ;; -esac -fi' - -# Saubere Lösung über /etc/profile.d/ -echo "$CONFIG_BLOCK" >/etc/profile.d/custom_path.sh - -# Sudo-Hinweis für bash.bashrc -SUDO_HINT_BLOCK='# sudo hint -if [ ! -e "$HOME/.sudo_as_admin_successful" ] && [ ! -e "$HOME/.hushlogin" ] ; then -case " $(groups) " in *\ admin\ *|*\ sudo\ *) -if [ -x /usr/bin/sudo ]; then -cat <<-EOF -To run a command as administrator (user "root"), use "sudo ". -See "man sudo_root" for details. -EOF -fi -esac -fi' - -# Prüfen, ob der sudo-Hinweis bereits existiert -if ! grep -Fxq "# sudo hint" /etc/bash.bashrc; then - echo -e "\n$SUDO_HINT_BLOCK" | tee -a /etc/bash.bashrc >/dev/null - echo "Sudo-Hinweis zur bash.bashrc hinzugefügt." -else - echo "Sudo-Hinweis ist bereits in bash.bashrc vorhanden." -fi - -XDG_BLOCK='# /etc/profile.d/desktop_session_xdg_dirs.sh - Prepend a $DESKTOP_SESSION-named directory to $XDG_CONFIG_DIRS and $XDG_DATA_DIRS - -DEFAULT_XDG_CONFIG_DIRS="/etc/xdg" -DEFAULT_XDG_DATA_DIRS="/usr/local/share/:/usr/share/" - -if [ -n "$DESKTOP_SESSION" ]; then - # readd default if was empty - if [ -z "$XDG_CONFIG_DIRS" ]; then - XDG_CONFIG_DIRS="$DEFAULT_XDG_CONFIG_DIRS" - fi - if [ -n "${XDG_CONFIG_DIRS##*$DEFAULT_XDG_CONFIG_DIRS/xdg-$DESKTOP_SESSION*}" ]; then - XDG_CONFIG_DIRS="$DEFAULT_XDG_CONFIG_DIRS"/xdg-"$DESKTOP_SESSION":"$XDG_CONFIG_DIRS" - fi - export XDG_CONFIG_DIRS - # gnome is already added if gnome-session installed - if [ "$DESKTOP_SESSION" != "gnome" ]; then - if [ -z "$XDG_DATA_DIRS" ]; then - XDG_DATA_DIRS="$DEFAULT_XDG_DATA_DIRS" - fi - if [ -n "${XDG_DATA_DIRS##*/usr/share/$DESKTOP_SESSION*}" ]; then - XDG_DATA_DIRS=/usr/share/"$DESKTOP_SESSION":"$XDG_DATA_DIRS" - fi - export XDG_DATA_DIRS - fi -fi -' - -echo "$XDG_BLOCK" >/etc/profile.d/xdg_dirs_desktop_session.sh - -echo "Fertig! Bitte neu einloggen." - diff --git a/Setup/10_Programs.sh b/Setup/10_Programs.sh deleted file mode 100755 index b18c7ff..0000000 --- a/Setup/10_Programs.sh +++ /dev/null @@ -1,236 +0,0 @@ -#!/bin/bash - -set -e # Skript bricht bei Fehlern ab - -# Sicherstellen, dass das Skript **nicht** als root ausgeführt wird -if [[ $EUID -eq 0 ]]; then - echo "Bitte **nicht** als root oder mit sudo ausführen! Das Skript fordert sudo nur dort an, wo es benötigt wird." - exit 1 -fi - -# Überprüfen, ob Flatpak installiert ist -if ! command -v flatpak &>/dev/null; then - echo "❌ Fehler: Flatpak ist nicht installiert. Bitte installiere es und versuche es erneut." - exit 1 -fi - -# Flatpak Apps installieren (nur falls noch nicht als DEB installiert) -declare -A FLATPAK_APPS=( -["org.libreoffice.LibreOffice"]="LibreOffice" -["dev.vencord.Vesktop"]="Vesktop" -["eu.betterbird.Betterbird"]="Betterbird" -) - -for APP in "${!FLATPAK_APPS[@]}"; do - if dpkg -l | grep -iq "${FLATPAK_APPS[$APP]}"; then - echo "✅ ${FLATPAK_APPS[$APP]} ist bereits als DEB-Paket installiert." - elif flatpak list | grep -q "$APP"; then - echo "✅ ${FLATPAK_APPS[$APP]} ist bereits als Flatpak installiert." - else - echo "🔄 Installiere ${FLATPAK_APPS[$APP]} als Flatpak..." - flatpak install -y flathub "$APP" - fi -done - -# Dynamischen Vorlagen-Ordner ermitteln -TEMPLATE_DIR=$(xdg-user-dir TEMPLATES 2>/dev/null || echo "$HOME/Vorlagen") -mkdir -p "$TEMPLATE_DIR" - -# Prüfen, ob LibreOffice als Flatpak installiert ist -if flatpak list | grep -q "org.libreoffice.LibreOffice"; then - LO_CMD="flatpak run org.libreoffice.LibreOffice" -elif command -v libreoffice &>/dev/null; then - LO_CMD="libreoffice" -else - echo "❌ Fehler: LibreOffice ist weder als Flatpak noch als DEB-Paket installiert." - exit 1 -fi - -# LibreOffice-Vorlagen erstellen, falls nicht vorhanden -if [[ ! -f "$TEMPLATE_DIR/LibreOffice-Writer.ott" ]]; then - echo "🔄 Erstelle LibreOffice Writer-Vorlage..." - $LO_CMD --headless --convert-to ott --outdir "$TEMPLATE_DIR" /dev/null -else - echo "✅ LibreOffice Writer-Vorlage ist bereits vorhanden." -fi - -if [[ ! -f "$TEMPLATE_DIR/LibreOffice-Calc.ots" ]]; then - echo "🔄 Erstelle LibreOffice Calc-Vorlage..." - $LO_CMD --headless --convert-to ots --outdir "$TEMPLATE_DIR" /dev/null -else - echo "✅ LibreOffice Calc-Vorlage ist bereits vorhanden." -fi - -# Spotify-Installation -echo "🎵 Überprüfe Spotify-Installation..." -SPOTIFY_KEY="/etc/apt/trusted.gpg.d/spotify.gpg" -SPOTIFY_REPO="/etc/apt/sources.list.d/spotify.list" - -if dpkg -l | grep -q "spotify-client"; then - echo "✅ Spotify ist bereits installiert." -else - echo "🔄 Installiere Spotify..." - - if [[ ! -f "$SPOTIFY_KEY" ]]; then - curl -sS https://download.spotify.com/debian/pubkey_C85668DF69375001.gpg | sudo gpg --dearmor -o "$SPOTIFY_KEY" - else - echo "✅ Spotify GPG-Key ist bereits vorhanden." - fi - - if [[ ! -f "$SPOTIFY_REPO" ]]; then - echo "deb http://repository.spotify.com stable non-free" | sudo tee "$SPOTIFY_REPO" - else - echo "✅ Spotify-Repository ist bereits konfiguriert." - fi - - sudo apt update && sudo apt install -y spotify-client -fi - -# Spotify .desktop-Datei erstellen -SPOTIFY_DESKTOP_FILE="$HOME/.local/share/applications/spotify.desktop" -mkdir -p "$HOME/.local/share/applications" -if [[ ! -f "$SPOTIFY_DESKTOP_FILE" ]]; then - echo "🔄 Erstelle Spotify .desktop-Datei..." - cat <"$SPOTIFY_DESKTOP_FILE" -[Desktop Entry] -Name=Spotify -Exec=/usr/bin/spotify -Icon=spotify-client -Terminal=false -Type=Application -Categories=Audio;Music; -EOF - echo "✅ Spotify .desktop-Datei wurde erstellt." -else - echo "✅ Spotify .desktop-Datei ist bereits vorhanden." -fi - -# Benötigte Abhängigkeiten prüfen und installieren -dependencies=(man fzf ripgrep awk w3m coreutils parallel) -for dep in "${dependencies[@]}"; do - if ! command -v "$dep" &>/dev/null; then - echo "🔄 Installiere $dep..." - sudo apt install -y "$dep" - else - echo "✅ $dep ist bereits installiert." - fi - -done - -# Tealdeer (tldr-Client) installieren -if ! command -v tldr &>/dev/null; then - echo "🔄 Installiere tealdeer..." - sudo apt install -y tealdeer -else - echo "✅ Tealdeer ist bereits installiert." -fi - -# tealdeer Autoupdate konfigurieren -TEALDEER_CONFIG=~/.config/tealdeer/config.toml -mkdir -p ~/.config/tealdeer -if ! grep -q "\[updates\]" "$TEALDEER_CONFIG" 2 >/dev/null; then - echo -e "\n[updates]" >>"$TEALDEER_CONFIG" -fi -if grep -q "^auto_update" "$TEALDEER_CONFIG" 2 >/dev/null; then - sed -i 's/^auto_update.*/auto_update = true/' "$TEALDEER_CONFIG" -else - echo "auto_update = true" >>"$TEALDEER_CONFIG" -fi - -# Wikiman installieren, falls nicht vorhanden -if ! command -v wikiman &>/dev/null; then - echo "🔄 Installiere Wikiman..." - - # Prüfen, ob `make` installiert ist - if ! command -v make &>/dev/null; then - echo "🔄 Installiere make..." - sudo apt install -y make - fi - - git clone 'https://github.com/filiparag/wikiman' ~/wikiman - cd ~/wikiman || exit - - # Die neueste stabile Version auschecken - git checkout "$(git describe --tags | cut -d'-' -f1)" - - # Kompilieren und installieren - make all - sudo make install - - # Cleanup - cd .. - rm -rf ~/wikiman - - echo "✅ Wikiman wurde erfolgreich installiert!" -else - echo "✅ Wikiman ist bereits installiert." -fi - -# Arch-Wiki für Wikiman installieren, falls nicht vorhanden -if ! wikiman -list | grep -q "arch"; then - echo "🔄 Installiere Arch Wiki für Wikiman..." - curl -L 'https://raw.githubusercontent.com/filiparag/wikiman/master/Makefile' -o 'wikiman-makefile' - make -f ./wikiman-makefile source-arch - sudo make -f ./wikiman-makefile source-install - sudo make -f ./wikiman-makefile clean - rm -f wikiman-makefile -else - echo "✅ Arch Wiki ist bereits installiert." -fi - -echo "🔄 Installiere Standard-Programme..." -# Bildbetrachter -flatpak install flathub org.gnome.Loupe -y -xdg-mime default org.gnome.Loupe.desktop image/jpeg -xdg-mime default org.gnome.Loupe.desktop image/png - -# Disk-Utility, PDF-Viewer (Okular), Softwarecenter und Flatpak-Plugin, Systemmonitor -sudo apt -y install gnome-disk-utility okular gnome-software gnome-software-plugin-flatpak gnome-system-monitor -# Okular als Standard-PDF-Viewer setzen -xdg-mime default okularApplication_pdf.desktop application/pdf -# Betterbird als Standard-Mail-Programm setzen -xdg-mime default org.betterbird.Betterbird.desktop x-scheme-handler/mailto - -# Simple Scan isntallieren -flatpak install flathub org.gnome.SimpleScan -y -# Festplattenbelegungsanalyse installieren -flatpak install flathub org.gnome.baobab -y -# Camera installieren -flatpak install flathub org.gnome.Snapshot -y -# Amberol (Musik-Player) installieren -flatpak install flathub io.bassi.Amberol -y -xdg-mime default io.bassi.Amberol.desktop audio/mpeg -xdg-mime default io.bassi.Amberol.desktop audio/x-wav -xdg-mime default io.bassi.Amberol.desktop audio/flac -xdg-mime default io.bassi.Amberol.desktop audio/ogg - -# VLC-Media-Player installieren -flatpak install flathub org.videolan.VLC -y -# Protokolle installieren -flatpak install flathub org.gnome.Logs -y -# Schriftarten-Viewer -flatpak install flathub org.gnome.font-viewer -y -# Taschenrechner -flatpak install flathub org.gnome.Calculator -y -# Texteditor -flatpak install flathub org.gnome.TextEditor -y -xdg-mime default org.gnome.TextEditor.desktop text/plain -xdg-mime default org.gnome.TextEditor.desktop text/x-log -xdg-mime default org.gnome.TextEditor.desktop text/markdown - -# Ente Authenticator -flatpak install flathub io.ente.auth -y -# Cartridges (Gaming) -flatpak install flathub page.kramo.Cartridges -y -# Decoder (QR-Code) -flatpak install flathub com.belmoussaoui.Decoder -y -# Fragments (Torrent) -flatpak install flathub de.haeckerfelix.Fragments -y -# Impressions (Bootsticks) -flatpak install flathub io.gitlab.adhami3310.Impression -y -# Ressources (Task-Manager) -flatpak install flathub net.nokyan.Resources -y -# Secrets -flatpak install flathub org.gnome.World.Secrets -y - -echo "✅ Alle Programme wurden erfolgreich installiert!" diff --git a/Setup/1_TrixieUpgrade.sh b/Setup/1_TrixieUpgrade.sh deleted file mode 100755 index 7c045f8..0000000 --- a/Setup/1_TrixieUpgrade.sh +++ /dev/null @@ -1,34 +0,0 @@ -#!/bin/bash - -# Root-Rechte prüfen -if [ "$(id -u)" -ne 0 ]; then - echo "Bitte mit sudo ausführen!" - exit 1 -fi - -# Sicherheitsabfrage -read -p "Achtung! Du führst ein Release-Upgrade auf Debian Trixie durch. Fortfahren? (ja/nein): " choice -if [[ "$choice" != "ja" ]]; then - echo "Upgrade abgebrochen." - exit 0 -fi - -echo "Aktualisiere Paketlisten..." -sudo apt-get update - -echo "Starte System-Upgrade..." -sudo apt-get full-upgrade -y - -echo "Ändere die Paketquellen auf Debian Trixie..." -sudo sed -i 's/bookworm/trixie/g' /etc/apt/sources.list -sudo find /etc/apt/sources.list.d -type f -exec sed -i 's/bookworm/trixie/g' {} \; - -echo "Aktualisiere Paketlisten erneut..." -sudo apt-get update - -echo "Starte vollständiges Release-Upgrade..." -sudo apt-get full-upgrade -y - -echo "System wird jetzt neu gestartet..." -sudo reboot - diff --git a/Setup/2_AdJoin.sh b/Setup/2_AdJoin.sh deleted file mode 100755 index 4bd5738..0000000 --- a/Setup/2_AdJoin.sh +++ /dev/null @@ -1,26 +0,0 @@ -#!/bin/bash - -# Root-Rechte prüfen -if [ "$(id -u)" -eq 0 ]; then - echo "Bitte nicht als Root ausführen! Das Skript nutzt sudo, falls nötig." - exit 1 -fi - -# Verzeichnis setzen -REPO_DIR="$HOME/Linux-Active-Directory-join-script" - -# Repository klonen, falls es noch nicht existiert -if [ -d "$REPO_DIR" ]; then - echo "Repository existiert bereits. Überspringe das Klonen." -else - echo "Klonen des Repositories..." - git clone https://gitea.creative-dragonslayer.de/DragonSlayer_14/Linux-Active-Directory-join-script.git "$REPO_DIR" -fi - -# In das Verzeichnis wechseln -cd "$REPO_DIR" || { echo "Fehler: Konnte nicht in das Verzeichnis wechseln!"; exit 1; } - -# AD-Skript ausführen -echo "Starte Active Directory Verbindung..." -sudo bash ADconnection.sh - diff --git a/Setup/3_HyprlandInstall.sh b/Setup/3_HyprlandInstall.sh deleted file mode 100755 index 8f60635..0000000 --- a/Setup/3_HyprlandInstall.sh +++ /dev/null @@ -1,26 +0,0 @@ -#!/bin/bash - -# Repository-Pfad definieren -REPO_DIR="$HOME/Debian-Hyprland" - -# Falls das Repository bereits existiert, überspringen -if [ -d "$REPO_DIR" ]; then - echo "Repository existiert bereits. Aktualisiere stattdessen..." - cd "$REPO_DIR" || { echo "Fehler: Konnte nicht in das Verzeichnis wechseln!"; exit 1; } - git pull -else - echo "Klonen des Repositories..." - git clone --depth=1 https://github.com/JaKooLit/Debian-Hyprland.git "$REPO_DIR" || { echo "Fehler beim Klonen!"; exit 1; } - cd "$REPO_DIR" || { echo "Fehler: Konnte nicht in das Verzeichnis wechseln!"; exit 1; } -fi - -# Sicherstellen, dass das Installationsskript existiert und ausführbar ist -if [ -f "install.sh" ]; then - chmod +x install.sh - echo "Starte Installation..." - ./install.sh -else - echo "Fehler: install.sh nicht gefunden!" - exit 1 -fi - diff --git a/Setup/4_ZshRegister.sh b/Setup/4_ZshRegister.sh deleted file mode 100755 index fa3e108..0000000 --- a/Setup/4_ZshRegister.sh +++ /dev/null @@ -1,62 +0,0 @@ -#!/bin/bash - -# Sicherstellen, dass das Skript mit Root-Rechten ausgeführt wird -if [[ $EUID -ne 0 ]]; then - echo "Dieses Skript muss als root ausgeführt werden." - exit 1 -fi - -# Tatsächlichen Benutzer ermitteln (nicht root) -if [[ -z "$SUDO_USER" || "$SUDO_USER" == "root" ]]; then - echo "Fehler: Das Skript muss mit 'sudo' von einem normalen Benutzer ausgeführt werden." - exit 1 -fi - -USER_NAME="$SUDO_USER" -USER_HOME=$(eval echo ~$USER_NAME) - -# Eintrag aus getent passwd holen -USER_ENTRY=$(getent passwd "$USER_NAME") - -# Backup der passwd Datei -cp /etc/passwd /etc/passwd.bak - -if grep -q "^$USER_NAME:" /etc/passwd; then - # Existierenden Eintrag aktualisieren - sed -i "/^$USER_NAME:/s|[^:]*$|/bin/zsh|" /etc/passwd - echo "Shell für $USER_NAME wurde auf zsh aktualisiert." -else - # Neuen Eintrag hinzufügen - UPDATED_ENTRY=$(echo "$USER_ENTRY" | awk -F: -v OFS=: '{ $NF="/bin/zsh"; print }') - echo "$UPDATED_ENTRY" >>/etc/passwd - echo "Eintrag für $USER_NAME wurde in /etc/passwd geschrieben mit zsh als Shell." -fi - -# Repository klonen -REPO_DIR="$USER_HOME/Debian-Hyprland" -sudo -u "$USER_NAME" git clone https://github.com/JaKooLit/Debian-Hyprland.git "$REPO_DIR" - -# Ordner nach ~/.oh-my-zsh/themes kopieren -THEME_SRC="$REPO_DIR/assets/add_zsh_theme" -THEME_DEST="$USER_HOME/.oh-my-zsh/themes" - -if [[ -d "$THEME_SRC" ]]; then - sudo -u "$USER_NAME" mkdir -p "$THEME_DEST" - sudo -u "$USER_NAME" cp -r "$THEME_SRC"/* "$THEME_DEST/" - echo "🎨 ZSH-Theme wurde nach $THEME_DEST kopiert." -else - echo "⚠️ Fehler: Theme-Ordner wurde nicht gefunden!" -fi - -# Repository löschen -rm -rf "$REPO_DIR" - -# /etc/profile in /etc/zsh/zprofile einfügen, falls nicht bereits vorhanden -if ! grep -q "source /etc/profile" /etc/zsh/zprofile; then - echo "source /etc/profile" >>/etc/zsh/zprofile - echo "🔧 'source /etc/profile' wurde in /etc/zsh/zprofile hinzugefügt." -else - echo "ℹ️ 'source /etc/profile' ist bereits in /etc/zsh/zprofile vorhanden." -fi - -echo "✅ Installation abgeschlossen!" diff --git a/Setup/5_DomainLogin.sh b/Setup/5_DomainLogin.sh deleted file mode 100755 index 91d9751..0000000 --- a/Setup/5_DomainLogin.sh +++ /dev/null @@ -1,47 +0,0 @@ -#!/bin/bash - -# Sicherstellen, dass das Skript mit Root-Rechten ausgeführt wird -if [[ $EUID -ne 0 ]]; then - echo "Dieses Skript muss als root ausgeführt werden." - exit 1 -fi - -# SDDM-Konfigurationsdatei in sddm.conf.d erstellen -SDDM_CONF_DIR="/etc/sddm.conf.d" -SDDM_CUSTOM_CONF="$SDDM_CONF_DIR/custom.conf" -mkdir -p "$SDDM_CONF_DIR" - -# Bestehende Konfiguration sichern und anpassen -if [[ -f "$SDDM_CUSTOM_CONF" ]]; then - sed -i '/MaximumUid/d' "$SDDM_CUSTOM_CONF" - sed -i '/MinimumUid/d' "$SDDM_CUSTOM_CONF" - sed -i '/HideShells/d' "$SDDM_CUSTOM_CONF" - echo "MaximumUid=9999999999" >>"$SDDM_CUSTOM_CONF" - echo "MinimumUid=1000" >>"$SDDM_CUSTOM_CONF" - echo "HideShells=/sbin/nologin,/bin/false,/usr/sbin/nologin" >>"$SDDM_CUSTOM_CONF" -else - cat <"$SDDM_CUSTOM_CONF" -[Users] -MaximumUid=9999999999 -MinimumUid=1000 -HideShells=/sbin/nologin,/bin/false,/usr/sbin/nologin -EOF -fi - -# SSSD-Konfiguration anpassen, falls die Datei existiert -SSSD_CONF="/etc/sssd/sssd.conf" -if [[ -f "$SSSD_CONF" ]]; then - if grep -q "^enumerate" "$SSSD_CONF"; then - sed -i 's/^enumerate.*/enumerate = false/' "$SSSD_CONF" - else - echo "enumerate = false" >>"$SSSD_CONF" - fi - # Berechtigungen für SSSD-Konfigurationsdatei setzen - chmod 600 "$SSSD_CONF" -fi - -# SSSD und SDDM neu starten -systemctl restart sssd -systemctl restart sddm - -echo "SDDM wurde so konfiguriert, dass lokale und bereits angemeldete Domänenbenutzer angezeigt werden." diff --git a/Setup/6_Polish.sh b/Setup/6_Polish.sh deleted file mode 100755 index abd602a..0000000 --- a/Setup/6_Polish.sh +++ /dev/null @@ -1,193 +0,0 @@ -#!/bin/bash - -set -e # Skript bricht bei Fehlern ab - -# Sicherstellen, dass das Skript **nicht** als root ausgeführt wird -if [[ $EUID -eq 0 ]]; then - echo "Bitte **nicht** als root oder mit sudo ausführen! Das Skript fordert sudo nur dort an, wo es benötigt wird." - exit 1 -fi - -# System aktualisieren und benötigte Pakete installieren -echo "🔄 System wird aktualisiert..." -sudo apt update && sudo apt install -y flatpak neovim ufw rfkill xdg-user-dirs rsync -sudo ufw enable - -# Flatpak Flathub-Repo hinzufügen -sudo flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo - -# Waterfox-Installation -echo "🌍 Waterfox wird installiert..." -sudo install -d -m 0755 /etc/apt/keyrings -curl -fsSL https://download.opensuse.org/repositories/home:hawkeye116477:waterfox/Debian_12/Release.key | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/home_hawkeye116477_waterfox.gpg > /dev/null -echo 'deb https://download.opensuse.org/repositories/home:/hawkeye116477:/waterfox/Debian_12/ /' | sudo tee /etc/apt/sources.list.d/home:hawkeye116477:waterfox.list - -sudo apt update && sudo apt install -y waterfox - -# Waterfox als Standardbrowser setzen -echo "🌍 Setze Waterfox als Standardbrowser..." -if command -v xdg-settings >/dev/null 2>&1; then - xdg-settings set default-web-browser waterfox.desktop - echo "✅ Waterfox wurde als Standardbrowser gesetzt." - - # Standardanwendungen für spezifische Dateitypen setzen - xdg-mime default waterfox.desktop text/html - xdg-mime default waterfox.desktop application/xhtml+xml - xdg-mime default waterfox.desktop x-scheme-handler/http - xdg-mime default waterfox.desktop x-scheme-handler/https -else - echo "❌ 'xdg-settings' ist nicht verfügbar. Bitte manuell den Standardbrowser setzen." -fi - -# Hyprland User Bindings -HYPR_CONFIG_DIR="$HOME/.config/hypr/UserConfigs" -mkdir -p "$HYPR_CONFIG_DIR" - -# Keybinds hinzufügen (falls nicht vorhanden) -declare -A KEYBINDS=( -["bindr = \$mainMod, \$mainMod_L, exec, pkill rofi || rofi -show drun -modi drun,filebrowser,run,window"]="rofi menu" -["bindr = \$mainMod, L, exec, \$scriptsDir/LockScreen.sh"]="screen lock" -["bindr = \$mainMod, V, exec, \$scriptsDir/ClipManager.sh"]="Clipboard Manager" -) - -for BIND in "${!KEYBINDS[@]}"; do - FULL_BIND="$BIND # ${KEYBINDS[$BIND]}" - if ! grep -Fxq "$FULL_BIND" "$HYPR_CONFIG_DIR/UserKeybinds.conf" 2>/dev/null; then - echo "$FULL_BIND" >>"$HYPR_CONFIG_DIR/UserKeybinds.conf" - echo "✅ Keybind hinzugefügt: ${KEYBINDS[$BIND]}" - else - echo "ℹ️ Keybind existiert bereits: ${KEYBINDS[$BIND]}" - fi -done - -# Standardvorlagen ablegen -echo "📂 Standardvorlagen werden im Vorlagen-Ordner erstellt..." -TEMPLATES_DIR=$(xdg-user-dir TEMPLATES 2>/dev/null || echo "$HOME/Vorlagen") -mkdir -p "$TEMPLATES_DIR" - -# Vorlagenliste -declare -A TEMPLATES=( -["Textdokument.txt"]="Dies ist eine Standard-Textdatei." -["Markdown-Dokument.md"]="# Markdown-Vorlage\n\nHier beginnt dein Markdown-Dokument." -["Bash-Skript.sh"]="#!/bin/bash\n\necho 'Hello, world!'" -["Python-Skript.py"]='#!/usr/bin/env python3\n\nprint("Hello, world!")' -) - -for FILE in "${!TEMPLATES[@]}"; do - TEMPLATE_PATH="$TEMPLATES_DIR/$FILE" - if [[ ! -f "$TEMPLATE_PATH" ]]; then - echo -e "${TEMPLATES[$FILE]}" >"$TEMPLATE_PATH" - chmod +x "$TEMPLATE_PATH" # Falls Skript - echo "✅ Vorlage erstellt: $FILE" - else - echo "ℹ️ Vorlage existiert bereits: $FILE" - fi -done - -# Zielverzeichnis und UserKeybinds-Datei definieren -SOURCE_DIR="$HOME/.config/hypr/scripts" -TARGET_DIR="$HOME/.config/hypr/UserScripts" -CONFIG_DIR="$HOME/.config/hypr/UserConfigs" -USER_KEYBINDS_FILE="$CONFIG_DIR/UserKeybinds.conf" # Definition an der richtigen Stelle - -# Bereinige fälschlicherweise kopierte Dateien -echo "📂 Überprüfe und bereinige Dateien im Verzeichnis $TARGET_DIR..." -if [[ -d "$TARGET_DIR" ]]; then - for FILE in "$TARGET_DIR"/*; do - if [[ -f "$FILE" ]]; then - BASENAME=$(basename "$FILE") - SOURCE_FILE="$SOURCE_DIR/$BASENAME" - - # Prüfen, ob die Datei im Quellverzeichnis existiert und angepasst werden musste - if [[ -f "$SOURCE_FILE" ]] && ! grep -qE '\$HOME/Desktop|\$HOME/Downloads|\$HOME/Documents|\$HOME/Pictures|\$HOME/Music|\$HOME/Videos' "$SOURCE_FILE"; then - echo "🗑️ Entferne fälschlicherweise kopierte Datei: $BASENAME" - rm "$FILE" - - # Rückgängig machen der falschen Verweise in UserKeybinds.conf - if [[ -f "$USER_KEYBINDS_FILE" ]]; then - echo "🔄 Setze falschen Verweis für $BASENAME in $USER_KEYBINDS_FILE zurück..." - sed -i "s|\$UserScripts/$BASENAME|\$scriptsDir/$BASENAME|g" "$USER_KEYBINDS_FILE" - echo "✅ Verweis für $BASENAME zurückgesetzt." - fi - else - echo "✅ Datei $BASENAME ist korrekt und bleibt erhalten." - fi - fi - done -else - echo "⚠️ Zielverzeichnis $TARGET_DIR existiert nicht. Keine Bereinigung erforderlich." -fi - -# Kopiere nur relevante Dateien und behalte die Verzeichnisstruktur bei -echo "📂 Verarbeite Dateien im Verzeichnis $SOURCE_DIR..." -mkdir -p "$TARGET_DIR" -COPIED_FILES=() # Array, um die tatsächlich kopierten Dateien zu speichern - -if [[ -d "$SOURCE_DIR" ]]; then - find "$SOURCE_DIR" -type f | while read -r FILE; do - RELATIVE_PATH="${FILE#$SOURCE_DIR/}" # Relativer Pfad zur Datei - TARGET_PATH="$TARGET_DIR/$RELATIVE_PATH" - - # Prüfen, ob die Datei angepasst werden muss - if grep -qE '\$HOME/Desktop|\$HOME/Downloads|\$HOME/Documents|\$HOME/Pictures|\$HOME/Music|\$HOME/Videos|/home/[a-zA-Z0-9._-]*/Desktop|/home/[a-zA-Z0-9._-]*/Downloads|/home/[a-zA-Z0-9._-]*/Documents|/home/[a-zA-Z0-9._-]*/Pictures|/home/[a-zA-Z0-9._-]*/Music|/home/[a-zA-Z0-9._-]*/Videos|\$\(xdg-user-dir\)/Desktop|\$\(xdg-user-dir\)/Downloads|\$\(xdg-user-dir\)/Documents|\$\(xdg-user-dir\)/Pictures|\$\(xdg-user-dir\)/Music|\$\(xdg-user-dir\)/Videos' "$FILE"; then - echo "🔄 Kopiere Datei zur Anpassung: $RELATIVE_PATH" - mkdir -p "$(dirname "$TARGET_PATH")" # Zielverzeichnis erstellen - cp "$FILE" "$TARGET_PATH" - COPIED_FILES+=("$RELATIVE_PATH") # Relativen Pfad speichern - else - echo "ℹ️ Datei $RELATIVE_PATH benötigt keine Anpassung. Überspringe Kopieren." - fi - done -else - echo "⚠️ Quellverzeichnis $SOURCE_DIR existiert nicht. Überspringe Verarbeitung." -fi - -# Ersetzungen in allen Dateien im Verzeichnis UserScripts vornehmen -echo "🔄 Ersetze absolute Pfade, XDG-Verzeichnisse und Platzhalter in allen Dateien im Verzeichnis $TARGET_DIR..." -for FILE in "$TARGET_DIR"/*; do - if [[ -f "$FILE" ]]; then - echo "Verarbeite Datei: $FILE" - - # Ersetzungen vornehmen - sed -i \ - -e 's|\$HOME/Desktop|$(xdg-user-dir DESKTOP)|g' \ - -e 's|\$HOME/Downloads|$(xdg-user-dir DOWNLOAD)|g' \ - -e 's|\$HOME/Documents|$(xdg-user-dir DOCUMENTS)|g' \ - -e 's|\$HOME/Pictures|$(xdg-user-dir PICTURES)|g' \ - -e 's|\$HOME/Music|$(xdg-user-dir MUSIC)|g' \ - -e 's|\$HOME/Videos|$(xdg-user-dir VIDEOS)|g' \ - -e 's|/home/[a-zA-Z0-9._-]*/Desktop|$(xdg-user-dir DESKTOP)|g' \ - -e 's|/home/[a-zA-Z0-9._-]*/Downloads|$(xdg-user-dir DOWNLOAD)|g' \ - -e 's|/home/[a-zA-Z0-9._-]*/Documents|$(xdg-user-dir DOCUMENTS)|g' \ - -e 's|/home/[a-zA-Z0-9._-]*/Pictures|$(xdg-user-dir PICTURES)|g' \ - -e 's|/home/[a-zA-Z0-9._-]*/Music|$(xdg-user-dir MUSIC)|g' \ - -e 's|/home/[a-zA-Z0-9._-]*/Videos|$(xdg-user-dir VIDEOS)|g' \ - -e 's|$(xdg-user-dir)/Desktop|$(xdg-user-dir DESKTOP)|g' \ - -e 's|$(xdg-user-dir)/Downloads|$(xdg-user-dir DOWNLOAD)|g' \ - -e 's|$(xdg-user-dir)/Documents|$(xdg-user-dir DOCUMENTS)|g' \ - -e 's|$(xdg-user-dir)/Pictures|$(xdg-user-dir PICTURES)|g' \ - -e 's|$(xdg-user-dir)/Music|$(xdg-user-dir MUSIC)|g' \ - -e 's|$(xdg-user-dir)/Videos|$(xdg-user-dir VIDEOS)|g' \ - "$FILE" - - echo "✅ Ersetzungen in $FILE abgeschlossen." - fi -done - -# Verweise in UserKeybinds.conf anpassen -if [[ -f "$USER_KEYBINDS_FILE" ]]; then - echo "🔄 Passe Verweise in $USER_KEYBINDS_FILE an..." - for SCRIPT in "${COPIED_FILES[@]}"; do - # Ersetze $scriptsDir/ durch $UserScripts/ - sed -i "s|\$scriptsDir/$SCRIPT|\$UserScripts/$SCRIPT|g" "$USER_KEYBINDS_FILE" - echo "✅ Verweis für $SCRIPT angepasst." - done -else - echo "⚠️ Datei $USER_KEYBINDS_FILE existiert nicht. Überspringe Anpassung der Verweise." -fi - -echo "📂 Verschiebe $(xdg-user-dir)/Pictures nach $(xdg-user-dir PICTURES)..." -rsync -av --ignore-existing "$(xdg-user-dir)/Pictures/" "$(xdg-user-dir PICTURES)/" -rm -r "$(xdg-user-dir)/Pictures/" - -echo "✅ Skript erfolgreich ausgeführt!" diff --git a/Setup/7_GrubTheme.sh b/Setup/7_GrubTheme.sh deleted file mode 100755 index 8060845..0000000 --- a/Setup/7_GrubTheme.sh +++ /dev/null @@ -1,36 +0,0 @@ -#!/bin/bash - -set -e # Skript bricht bei Fehlern ab - -# Theme-Name -THEME_NAME="vimix" - -# Prüfen, ob GRUB bereits das Theme verwendet -if grep -q "GRUB_THEME=" /etc/default/grub && grep -q "$THEME_NAME" /etc/default/grub; then - echo "✅ Das Theme '$THEME_NAME' ist bereits installiert und aktiv." - exit 0 -fi - -echo "🔄 Installiere das GRUB-Theme '$THEME_NAME'..." - -# Falls der Ordner existiert, vorher löschen -THEME_DIR="$HOME/grub-themes" -if [[ -d "$THEME_DIR" ]]; then - rm -rf "$THEME_DIR" -fi - -# Repository klonen -git clone https://github.com/vinceliuice/grub2-themes.git "$THEME_DIR" -cd "$THEME_DIR" - -# Theme installieren -sudo ./install.sh -b -t "$THEME_NAME" - -# GRUB-Konfiguration aktualisieren -echo "🔄 Aktualisiere die GRUB-Konfiguration..." -sudo update-grub - -# Aufräumen -rm -rf "$THEME_DIR" - -echo "✅ GRUB-Theme '$THEME_NAME' erfolgreich installiert und aktiviert!" diff --git a/Setup/8_Plymouth.sh b/Setup/8_Plymouth.sh deleted file mode 100755 index 187a7e1..0000000 --- a/Setup/8_Plymouth.sh +++ /dev/null @@ -1,59 +0,0 @@ -#!/bin/bash - -set -e # Skript bricht bei Fehlern ab - -# Sicherstellen, dass das Skript mit Root-Rechten ausgeführt wird -if [[ $EUID -ne 0 ]]; then - echo "Dieses Skript muss als root ausgeführt werden." - exit 1 -fi - -echo "🔄 Plymouth und benötigte Pakete installieren..." -if ! dpkg -l | grep -qw plymouth; then - apt update && apt install -y plymouth plymouth-themes -else - echo "✅ Plymouth ist bereits installiert." -fi - -# Plymouth in initramfs aktivieren -MKINIT_CONF="/etc/mkinitcpio.conf" -if [[ -f "$MKINIT_CONF" ]]; then - if grep -q "^HOOKS=" "$MKINIT_CONF"; then - sed -i 's/^HOOKS=.*/HOOKS=(base udev plymouth autodetect modconf block encrypt lvm2 filesystems keyboard fsck)/' "$MKINIT_CONF" - else - echo 'HOOKS=(base udev plymouth autodetect modconf block encrypt lvm2 filesystems keyboard fsck)' >>"$MKINIT_CONF" - fi -fi - -# Falls Dracut genutzt wird, initramfs neu erstellen -if command -v dracut &>/dev/null; then - echo "🔄 Dracut erkannt, erstelle neues initramfs..." - dracut -f -else - echo "🔄 Initramfs wird aktualisiert..." - update-initramfs -u -fi - -# Plymouth-Theme setzen -PLYMOUTH_THEME="spinner" -echo "🎨 Setze Plymouth-Theme auf '$PLYMOUTH_THEME'..." -plymouth-set-default-theme -R "$PLYMOUTH_THEME" - -# Kernel-Boot-Parameter in GRUB anpassen -GRUB_CFG="/etc/default/grub" -GRUB_BACKUP="/etc/default/grub.bak" - -echo "🔍 Überprüfe GRUB-Einstellungen..." -NEW_CMDLINE="quiet splash vt.global_cursor_default=0 loglevel=3 rd.luks.options=discard plymouth.ignore-serial-consoles" - -if grep -q "^GRUB_CMDLINE_LINUX_DEFAULT=.*" "$GRUB_CFG"; then - sed -i "s|^GRUB_CMDLINE_LINUX_DEFAULT=.*|GRUB_CMDLINE_LINUX_DEFAULT=\"$NEW_CMDLINE\"|" "$GRUB_CFG" - echo "🔄 GRUB wird aktualisiert..." - update-grub -else - echo "GRUB_CMDLINE_LINUX_DEFAULT=\"$NEW_CMDLINE\"" >>"$GRUB_CFG" - echo "🔄 GRUB wird aktualisiert..." - update-grub -fi - -echo "✅ Einrichtung abgeschlossen. Bitte starte das System neu, um die Änderungen zu übernehmen." diff --git a/Setup/9_GamingSetup.sh b/Setup/9_GamingSetup.sh deleted file mode 100755 index bf12fae..0000000 --- a/Setup/9_GamingSetup.sh +++ /dev/null @@ -1,35 +0,0 @@ -#!/bin/bash - -# Sicherstellen, dass das Skript mit Root-Rechten ausgeführt wird -if [[ $EUID -ne 0 ]]; then - echo "Dieses Skript muss als root ausgeführt werden." - exit 1 -fi - -# System aktualisieren -apt update && apt upgrade -y - -# Steam-Installation -dpkg --add-architecture i386 -apt update -apt install -y wget curl - -wget -O /tmp/steam.deb https://cdn.akamai.steamstatic.com/client/installer/steam.deb -apt install -y /tmp/steam.deb -rm /tmp/steam.deb - -# Lutris-Installation -LUTRIS_KEYRING="/etc/apt/keyrings/lutris.gpg" -LUTRIS_REPO="https://download.opensuse.org/repositories/home:/strycore/Debian_12/" - -mkdir -p /etc/apt/keyrings -wget -qO /tmp/lutris-key.gpg "${LUTRIS_REPO}Release.key" -gpg --dearmor "$LUTRIS_KEYRING" -rm /tmp/lutris-key.gpg - -echo "deb [signed-by=$LUTRIS_KEYRING] $LUTRIS_REPO ./" >/etc/apt/sources.list.d/lutris.list - -apt update -apt install -y lutris - -echo "✅ Installation von Steam und Lutris abgeschlossen!"