Inital Comit Upload Config Files
This commit is contained in:
103
scripts/packagemenu.sh
Executable file
103
scripts/packagemenu.sh
Executable file
@@ -0,0 +1,103 @@
|
||||
#!/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
|
||||
Reference in New Issue
Block a user