paclist() {
pacman -Qei "$@" | awk 'BEGIN {FS=": "}/^Name/{printf("\033[1;36m%s\033[0m ",$2)}/^Description/{print $2}'
}
+
+pacclean() {
+ local _count_pkg=$(pacman -Qq | wc -l)
+ local _count_pkg_exp=$(pacman -Qeq | wc -l)
+ local _pkgs=( $(pacman -Qeq) )
+ for pkg in ${_pkgs[@]}; do
+ # the file has been removed by a previous clean
+ pacman -Qq $pkg 2>&1 1>/dev/null || continue
+
+ pacman -Qi $pkg | awk 'BEGIN {FS=": "}/^Name/{printf("\n\033[1;36m%s\033[0m ",$2)}/^Description/{print $2}/^(Required|Optional For)/'
+
+ local edrq=''
+ while true; do
+ echo -n "Explicit, Dependency, Remove, Quit? [Edrq] "
+ read -sk edrq
+ echo
+ case $edrq in
+ [Qq]) break 2 ;;
+ $'\n') ;&
+ [Ee]) break ;;
+ [Rr]) sudo pacman -Rnscu $pkg; break ;;
+ [Dd]) sudo pacman -D --asdeps $pkg; break ;;
+ esac
+ done
+ done
+ local _count_pkg_after=$(pacman -Qq | wc -l)
+ local _count_pkg_exp_after=$(pacman -Qeq | wc -l)
+ local _delta_pkg=$(($_count_pkg_after - $_count_pkg))
+ local _delta_pkg_exp=$(($_count_pkg_exp_after - $_count_pkg_exp))
+ printf "\n %8s | %8s" "Packages" "Explicit"
+ printf "\nBefore | %8d | %8d" $_count_pkg $_count_pkg_exp
+ printf "\n After | %8d | %8d" $_count_pkg_after $_count_pkg_exp_after
+ printf "\n | %8d | %8d" $_delta_pkg $_delta_pkg_exp
+ printf "\n"
+}
# [l]ist [o]orphans
alias paclo='pacman -Qdt'
# [r]emove [o]orphans