Feature: Fügt diverese Config- und Installationsskripte hinzu.

This commit is contained in:
DragonSlayer_14 2025-02-24 10:49:26 +01:00
parent 81ac3bd66b
commit b12984a8d0
7 changed files with 373 additions and 0 deletions

104
Setup/10_Programs.sh Normal file
View File

@ -0,0 +1,104 @@
#!/bin/bash
set -e # Skript bricht bei Fehlern ab
# Ü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 vorhanden)
declare -A FLATPAK_APPS=(
["org.libreoffice.LibreOffice"]="LibreOffice"
["dev.vencord.Vesktop"]="Vesktop"
["org.mozilla.Thunderbird"]="Thunderbird"
)
for APP in "${!FLATPAK_APPS[@]}"; do
if flatpak list | grep -q "$APP"; then
echo "${FLATPAK_APPS[$APP]} ist bereits installiert."
else
echo "🔄 Installiere ${FLATPAK_APPS[$APP]}..."
flatpak install -y flathub "$APP"
fi
done
# 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
# 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
wikiman --install archwiki
echo "✅ Alle Programme wurden erfolgreich installiert!"

27
Setup/4_ZshRegister.sh Normal file
View File

@ -0,0 +1,27 @@
#!/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
# Benutzername ermitteln
USER_NAME=$(whoami)
# Eintrag aus getent passwd
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

36
Setup/5_DomainLogin.sh Normal file
View File

@ -0,0 +1,36 @@
#!/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"
cat <<EOF > "$SDDM_CUSTOM_CONF"
[Users]
MaximumUid=2000000
HideShells=/sbin/nologin,/bin/false
EOF
# 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."

76
Setup/6_Polish.sh Normal file
View File

@ -0,0 +1,76 @@
#!/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
echo "🔄 System wird aktualisiert..."
sudo apt update && sudo apt install -y flatpak neovim
# Flatpak Flathub-Repo hinzufügen
sudo flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo
# Firefox-Installation
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
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
sudo apt update && sudo apt install -y firefox
# 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
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]}"
fi
done
# Standardvorlagen ablegen
echo "📂 Standardvorlagen werden im Vorlagen-Ordner erstellt..."
TEMPLATES_DIR="$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
# Non-Free und Contrib in separater sources.list hinzufügen
echo "deb http://deb.debian.org/debian/ $(lsb_release -sc) contrib non-free non-free-firmware" | sudo tee /etc/apt/sources.list.d/non-free.list > /dev/null
echo "✅ Skript erfolgreich ausgeführt!"

36
Setup/7_GrubTheme.sh Normal file
View File

@ -0,0 +1,36 @@
#!/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!"

59
Setup/8_Plymouth.sh Normal file
View File

@ -0,0 +1,59 @@
#!/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=.*$NEW_CMDLINE.*" "$GRUB_CFG"; then
echo "✅ GRUB-Konfiguration bereits aktuell."
else
echo "🔄 Aktualisiere GRUB-Parameter..."
cp "$GRUB_CFG" "$GRUB_BACKUP"
sed -i 's/^GRUB_CMDLINE_LINUX_DEFAULT=.*/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."

35
Setup/9_GamingSetup.sh Normal file
View File

@ -0,0 +1,35 @@
#!/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
dpkg -i /tmp/steam.deb || apt-get install -f -y
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 < /tmp/lutris-key.gpg > "$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!"