#!/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" ["org.mozilla.Thunderbird"]="Thunderbird" ) 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 "✅ Alle Programme wurden erfolgreich installiert!"