diff --git a/Mount/HiDrive.sh b/Mount/HiDrive.sh index 5f47651..a7ded7b 100755 --- a/Mount/HiDrive.sh +++ b/Mount/HiDrive.sh @@ -23,9 +23,9 @@ WEBDAV_URL="$3" NFS_PATH="$4" # === KONFIGURATION === -MOUNT_POINT="/media/HiDrive" # Gemeinsamer Einhängepunkt für NFS/WebDAV -NFS_SERVER="$DEVICE_IP:$NFS_PATH" # Dynamische NFS-Server-Adresse -WEBDAV_CREDENTIALS="/etc/davfs2/secrets" # WebDAV-Passwortdatei +MOUNT_POINT="/media/HiDrive" # Gemeinsamer Einhängepunkt für NFS/WebDAV +NFS_SERVER="$DEVICE_IP:$NFS_PATH" # Dynamische NFS-Server-Adresse +WEBDAV_CREDENTIALS="/etc/davfs2/secrets" # WebDAV-Passwortdatei # === FUNKTIONEN === check_nfs_installed() { diff --git a/Setup/0_Setup.sh b/Setup/0_Setup.sh index dd3d0e3..435fd7e 100755 --- a/Setup/0_Setup.sh +++ b/Setup/0_Setup.sh @@ -11,35 +11,35 @@ 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 +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 +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 +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 -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." diff --git a/Setup/10_Programs.sh b/Setup/10_Programs.sh index 8140e07..5291d2b 100755 --- a/Setup/10_Programs.sh +++ b/Setup/10_Programs.sh @@ -1,6 +1,6 @@ #!/bin/bash -set -e # Skript bricht bei Fehlern ab +set -e # Skript bricht bei Fehlern ab # Sicherstellen, dass das Skript **nicht** als root ausgeführt wird if [[ $EUID -eq 0 ]]; then @@ -16,9 +16,9 @@ fi # Flatpak Apps installieren (nur falls noch nicht als DEB installiert) declare -A FLATPAK_APPS=( - ["org.libreoffice.LibreOffice"]="LibreOffice" - ["dev.vencord.Vesktop"]="Vesktop" - ["org.mozilla.Thunderbird"]="Thunderbird" +["org.libreoffice.LibreOffice"]="LibreOffice" +["dev.vencord.Vesktop"]="Vesktop" +["org.mozilla.Thunderbird"]="Thunderbird" ) for APP in "${!FLATPAK_APPS[@]}"; do @@ -34,7 +34,7 @@ for APP in "${!FLATPAK_APPS[@]}"; do done # Dynamischen Vorlagen-Ordner ermitteln -TEMPLATE_DIR=$(xdg-user-dir TEMPLATES 2>/dev/null || echo "$HOME/Vorlagen") +TEMPLATE_DIR=$(xdg-user-dir TEMPLATES 2 >/dev/null || echo "$HOME/Vorlagen") mkdir -p "$TEMPLATE_DIR" # Prüfen, ob LibreOffice als Flatpak installiert ist @@ -92,7 +92,7 @@ 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" + cat <"$SPOTIFY_DESKTOP_FILE" [Desktop Entry] Name=Spotify Exec=/usr/bin/spotify @@ -129,39 +129,39 @@ 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" +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 +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" + 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." diff --git a/Setup/4_ZshRegister.sh b/Setup/4_ZshRegister.sh index d6a825b..fa3e108 100755 --- a/Setup/4_ZshRegister.sh +++ b/Setup/4_ZshRegister.sh @@ -2,8 +2,8 @@ # 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 + echo "Dieses Skript muss als root ausgeführt werden." + exit 1 fi # Tatsächlichen Benutzer ermitteln (nicht root) @@ -22,14 +22,14 @@ USER_ENTRY=$(getent passwd "$USER_NAME") 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." + # 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." + # 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 @@ -53,7 +53,7 @@ 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" >>/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." diff --git a/Setup/5_DomainLogin.sh b/Setup/5_DomainLogin.sh index 912e9e5..91d9751 100755 --- a/Setup/5_DomainLogin.sh +++ b/Setup/5_DomainLogin.sh @@ -2,8 +2,8 @@ # 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 + echo "Dieses Skript muss als root ausgeführt werden." + exit 1 fi # SDDM-Konfigurationsdatei in sddm.conf.d erstellen @@ -16,11 +16,11 @@ 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" + 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" + cat <"$SDDM_CUSTOM_CONF" [Users] MaximumUid=9999999999 MinimumUid=1000 @@ -34,7 +34,7 @@ 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" + echo "enumerate = false" >>"$SSSD_CONF" fi # Berechtigungen für SSSD-Konfigurationsdatei setzen chmod 600 "$SSSD_CONF" diff --git a/Setup/6_Polish.sh b/Setup/6_Polish.sh index 156689d..ea5da7b 100755 --- a/Setup/6_Polish.sh +++ b/Setup/6_Polish.sh @@ -1,6 +1,6 @@ #!/bin/bash -set -e # Skript bricht bei Fehlern ab +set -e # Skript bricht bei Fehlern ab # Sicherstellen, dass das Skript **nicht** als root ausgeführt wird if [[ $EUID -eq 0 ]]; then @@ -19,11 +19,11 @@ sudo flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flat echo "🌍 Firefox wird installiert..." sudo install -d -m 0755 /etc/apt/keyrings wget -q https://packages.mozilla.org/apt/repo-signing-key.gpg -O /tmp/packages.mozilla.org.asc -gpg --dearmor < /tmp/packages.mozilla.org.asc | sudo tee /etc/apt/keyrings/packages.mozilla.org.asc > /dev/null +gpg --dearmor /dev/null rm /tmp/packages.mozilla.org.asc -echo "deb [signed-by=/etc/apt/keyrings/packages.mozilla.org.asc] https://packages.mozilla.org/apt mozilla main" | sudo tee /etc/apt/sources.list.d/mozilla.list > /dev/null -echo -e 'Package: *\nPin: origin packages.mozilla.org\nPin-Priority: 1000' | sudo tee /etc/apt/preferences.d/mozilla > /dev/null +echo "deb [signed-by=/etc/apt/keyrings/packages.mozilla.org.asc] https://packages.mozilla.org/apt mozilla main" | sudo tee /etc/apt/sources.list.d/mozilla.list >/dev/null +echo -e 'Package: *\nPin: origin packages.mozilla.org\nPin-Priority: 1000' | sudo tee /etc/apt/preferences.d/mozilla >/dev/null sudo apt update && sudo apt install -y firefox @@ -33,14 +33,14 @@ 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" +["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 - if ! grep -Fxq "$BIND" "$HYPR_CONFIG_DIR/UserKeybinds.conf" 2>/dev/null; then - echo "$BIND # ${KEYBINDS[$BIND]}" >> "$HYPR_CONFIG_DIR/UserKeybinds.conf" + if ! grep -Fxq "$BIND" "$HYPR_CONFIG_DIR/UserKeybinds.conf" 2 >/dev/null; then + echo "$BIND # ${KEYBINDS[$BIND]}" >>"$HYPR_CONFIG_DIR/UserKeybinds.conf" echo "✅ Keybind hinzugefügt: ${KEYBINDS[$BIND]}" else echo "ℹ️ Keybind existiert bereits: ${KEYBINDS[$BIND]}" @@ -54,17 +54,17 @@ 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!")' +["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 -e "${TEMPLATES[$FILE]}" >"$TEMPLATE_PATH" + chmod +x "$TEMPLATE_PATH" # Falls Skript echo "✅ Vorlage erstellt: $FILE" else echo "ℹ️ Vorlage existiert bereits: $FILE" diff --git a/Setup/7_GrubTheme.sh b/Setup/7_GrubTheme.sh index 8c0ce23..8060845 100755 --- a/Setup/7_GrubTheme.sh +++ b/Setup/7_GrubTheme.sh @@ -1,6 +1,6 @@ #!/bin/bash -set -e # Skript bricht bei Fehlern ab +set -e # Skript bricht bei Fehlern ab # Theme-Name THEME_NAME="vimix" diff --git a/Setup/8_Plymouth.sh b/Setup/8_Plymouth.sh index ef7618a..187a7e1 100755 --- a/Setup/8_Plymouth.sh +++ b/Setup/8_Plymouth.sh @@ -1,11 +1,11 @@ #!/bin/bash -set -e # Skript bricht bei Fehlern ab +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 + echo "Dieses Skript muss als root ausgeführt werden." + exit 1 fi echo "🔄 Plymouth und benötigte Pakete installieren..." @@ -21,7 +21,7 @@ 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" + echo 'HOOKS=(base udev plymouth autodetect modconf block encrypt lvm2 filesystems keyboard fsck)' >>"$MKINIT_CONF" fi fi @@ -51,7 +51,7 @@ if grep -q "^GRUB_CMDLINE_LINUX_DEFAULT=.*" "$GRUB_CFG"; then echo "🔄 GRUB wird aktualisiert..." update-grub else - echo "GRUB_CMDLINE_LINUX_DEFAULT=\"$NEW_CMDLINE\"" >> "$GRUB_CFG" + echo "GRUB_CMDLINE_LINUX_DEFAULT=\"$NEW_CMDLINE\"" >>"$GRUB_CFG" echo "🔄 GRUB wird aktualisiert..." update-grub fi diff --git a/Setup/9_GamingSetup.sh b/Setup/9_GamingSetup.sh index 1ab6049..bf12fae 100755 --- a/Setup/9_GamingSetup.sh +++ b/Setup/9_GamingSetup.sh @@ -24,10 +24,10 @@ 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 < /tmp/lutris-key.gpg > "$LUTRIS_KEYRING" +gpg --dearmor "$LUTRIS_KEYRING" rm /tmp/lutris-key.gpg -echo "deb [signed-by=$LUTRIS_KEYRING] $LUTRIS_REPO ./" > /etc/apt/sources.list.d/lutris.list +echo "deb [signed-by=$LUTRIS_KEYRING] $LUTRIS_REPO ./" >/etc/apt/sources.list.d/lutris.list apt update apt install -y lutris