#!/bin/bash TERMINAL="kitty" run_term() { "$TERMINAL" -e bash -lc "$1" _ "${@:2}" } menu() { printf "%s\n" \ "󰏓 Install Package (Pacman)" \ "󰛓 Install Package (AUR)" \ "󰍉 Search & Install (Pacman)" \ "󰢤 Search & Install (AUR)" \ "󰚰 Full System Update" \ "󰆴 Remove Package" \ "󰁯 Clean Orphans" \ "󰏗 Clear Package Cache" } choice=$(menu | wofi --dmenu --prompt "Packages") [ -z "$choice" ] && exit 0 case "$choice" in "󰏓 Install Package (Pacman)") pkg=$(wofi --dmenu --prompt "Pacman Install") [ -z "$pkg" ] && exit 0 run_term 'pkg="$1"; pkexec pacman -S --needed -- "$pkg"; echo; read -n 1 -s -r -p "Taste drücken zum Schließen..."' "$pkg" ;; "󰛓 Install Package (AUR)") pkg=$(wofi --dmenu --prompt "AUR Install") [ -z "$pkg" ] && exit 0 run_term 'pkg="$1"; paru -S --needed -- "$pkg"; echo; read -n 1 -s -r -p "Taste drücken zum Schließen..."' "$pkg" ;; "󰍉 Search & Install (Pacman)") query=$(wofi --dmenu --prompt "Pacman Search") [ -z "$query" ] && exit 0 results=$(pacman -Ss -- "$query" | awk ' /^[^ ]+\/[^ ]+/ { split($1,a,"/"); pkg=a[2]; repo=a[1]; ver=$2; print repo " :: " pkg " :: " ver }') [ -z "$results" ] && notify-send "Pacman Search" "Keine Pakete gefunden." && exit 0 selection=$(printf "%s\n" "$results" | wofi --dmenu --prompt "Select Pacman Package") [ -z "$selection" ] && exit 0 pkg=$(printf "%s" "$selection" | awk -F ' :: ' '{print $2}') [ -z "$pkg" ] && exit 0 run_term 'pkg="$1"; pkexec pacman -S --needed -- "$pkg"; echo; read -n 1 -s -r -p "Taste drücken zum Schließen..."' "$pkg" ;; "󰢤 Search & Install (AUR)") query=$(wofi --dmenu --prompt "AUR Search") [ -z "$query" ] && exit 0 results=$(paru -Ss -- "$query" | awk ' /^[^ ]+\/[^ ]+/ { split($1,a,"/"); pkg=a[2]; repo=a[1]; ver=$2; print repo " :: " pkg " :: " ver }') [ -z "$results" ] && notify-send "AUR Search" "Keine Pakete gefunden." && exit 0 selection=$(printf "%s\n" "$results" | wofi --dmenu --prompt "Select AUR Package") [ -z "$selection" ] && exit 0 pkg=$(printf "%s" "$selection" | awk -F ' :: ' '{print $2}') [ -z "$pkg" ] && exit 0 run_term 'pkg="$1"; paru -S --needed -- "$pkg"; echo; read -n 1 -s -r -p "Taste drücken zum Schließen..."' "$pkg" ;; "󰚰 Full System Update") run_term 'pkexec pacman -Syu; echo; read -n 1 -s -r -p "Taste drücken zum Schließen..."' ;; "󰆴 Remove Package") installed=$(pacman -Qq | sort) pkg=$(printf "%s\n" "$installed" | wofi --dmenu --prompt "Remove Package") [ -z "$pkg" ] && exit 0 run_term 'pkg="$1"; pkexec pacman -Rns -- "$pkg"; echo; read -n 1 -s -r -p "Taste drücken zum Schließen..."' "$pkg" ;; "󰁯 Clean Orphans") run_term 'orphans=$(pacman -Qdtq); if [ -n "$orphans" ]; then pkexec pacman -Rns -- $orphans; else echo "Keine Waisenpakete gefunden."; fi; echo; read -n 1 -s -r -p "Taste drücken zum Schließen..."' ;; "󰏗 Clear Package Cache") run_term 'pkexec pacman -Sc; echo; read -n 1 -s -r -p "Taste drücken zum Schließen..."' ;; esac