Rem: Lagert Setup-Skripte in eigenes Repo aus.
This commit is contained in:
parent
73014d71ac
commit
ab573ae7e9
@ -11,7 +11,6 @@ Datenverarbeitung und anderen Aufgaben.
|
|||||||
- **Files**: Enthält Skripte für den umgang mit Dateien.
|
- **Files**: Enthält Skripte für den umgang mit Dateien.
|
||||||
- **Maintenance**: Enthält Skripte für die Wartung eines Computers/Servers.
|
- **Maintenance**: Enthält Skripte für die Wartung eines Computers/Servers.
|
||||||
- **Mount**: Enthält Skripte zum mounten von Dateisytemen und Cloudsanbietern.
|
- **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.
|
- **Utility**: Enthält Utility-Skripte und Funktionen, die in anderen Skripten eingebunden werden können.
|
||||||
|
|
||||||
## Anforderungen
|
## Anforderungen
|
||||||
|
|||||||
@ -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 <command>".
|
|
||||||
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."
|
|
||||||
|
|
||||||
@ -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 <<EOF >"$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!"
|
|
||||||
@ -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
|
|
||||||
|
|
||||||
@ -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
|
|
||||||
|
|
||||||
@ -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
|
|
||||||
|
|
||||||
@ -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!"
|
|
||||||
@ -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 <<EOF >"$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."
|
|
||||||
@ -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/<Dateiname> durch $UserScripts/<Dateiname>
|
|
||||||
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!"
|
|
||||||
@ -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!"
|
|
||||||
@ -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."
|
|
||||||
@ -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 </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