#!/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 <"$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 # Archivverwaltung flatpak install flathub org.gnome.FileRoller echo "🔄 Installiere VeraCrypt..." echo 'deb http://download.opensuse.org/repositories/home:/unit193:/veracrypt/Debian_12/ /' | sudo tee /etc/apt/sources.list.d/home:unit193:veracrypt.list curl -fsSL https://download.opensuse.org/repositories/home:unit193:veracrypt/Debian_12/Release.key | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/home_unit193_veracrypt.gpg > /dev/null sudo apt update sudo apt install veracrypt echo "✅ Alle Programme wurden erfolgreich installiert!"