Feature: Fügt diverese Config- und Installationsskripte hinzu.
This commit is contained in:
parent
81ac3bd66b
commit
b12984a8d0
104
Setup/10_Programs.sh
Normal file
104
Setup/10_Programs.sh
Normal 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
27
Setup/4_ZshRegister.sh
Normal 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
36
Setup/5_DomainLogin.sh
Normal 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
76
Setup/6_Polish.sh
Normal 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
36
Setup/7_GrubTheme.sh
Normal 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
59
Setup/8_Plymouth.sh
Normal 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
35
Setup/9_GamingSetup.sh
Normal 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!"
|
||||||
Loading…
x
Reference in New Issue
Block a user