103 lines
3.5 KiB
Bash
Executable File
103 lines
3.5 KiB
Bash
Executable File
#!/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 |