====== unter Archlinux mit yay, zsh und fzf etwas housekeeping betreiben ====== Ich wollte ein paar kleine Funktionen haben, um verwaiste Pakete besser handlen zu können.\\ Ihr kennt das sicherlich, dass man diese Pakete aufräumen will und halb sein system crashed, weil der Paket manager ein Installiertes Paket wäre verwaist, obwohl es das nicht ist.\\ Nerdfonts sollten auch installiert sein. Dann sehen die Icons in den Meldungen besser aus. ====== ====== Nachfolgend der Code für die Funktion die Verwaisten Pakete zu löschen: yay_remove_orphans() { local backup_dir="$HOME/.config/yay" local date_str local backup_file local orphans date_str="$(date +%Y-%m-%d_%H-%M-%S)" backup_file="$backup_dir/remove_orph_${date_str}.bak" mkdir -p "$backup_dir" # Verwaiste Pakete ermitteln orphans="$(yay -Qtdq)" if [[ -z "$orphans" ]]; then echo "✔ Keine verwaisten Pakete gefunden." return 0 fi # Backup schreiben echo "$orphans" > "$backup_file" echo "📦 Backup der verwaisten Pakete erstellt:" echo " $backup_file" echo echo "🧹 Entferne folgende Pakete:" echo "$orphans" echo yay -Rns $orphans } Und das ist der Code, um Pakete aus dem "Backup" wieder herzustellen. yay_restore_orphans() { local backup_dir="$HOME/.config/yay" local backup_file local packages local selected # Backup-Datei auswählen backup_file=$(ls -1 "$backup_dir"/remove_orph_*.bak 2>/dev/null | fzf \ --prompt="Backup auswählen: " \ --height=40% \ --reverse) [[ -z "$backup_file" ]] && { echo "✖ Kein Backup ausgewählt." return 1 } # Pakete aus Backup lesen packages=("${(@f)$(cat "$backup_file")}") if [[ ${#packages[@]} -eq 0 ]]; then echo "✖ Backup ist leer." return 1 fi # Pakete auswählen selected=($(printf "%s\n" "${packages[@]}" | fzf \ --multi \ --prompt="Pakete auswählen (TAB): " \ --height=60% \ --reverse)) [[ ${#selected[@]} -eq 0 ]] && { echo "✖ Keine Pakete ausgewählt." return 1 } echo echo "📦 Installiere folgende Pakete:" printf " - %s\n" "${selected[@]}" echo yay -S "${selected[@]}" }