65 lines
2.3 KiB
Plaintext
65 lines
2.3 KiB
Plaintext
which pacman >/dev/null || return 0
|
|
|
|
# Arch aliases
|
|
alias pac='noglob sudo pacman'
|
|
alias pacs='pac -Syu --needed'
|
|
alias pacr='pac -R --recursive'
|
|
alias yau='sudo systemctl start --show-transaction reflector && noglob yay'
|
|
alias yays='noglob yay -Sy --needed --noprovides'
|
|
alias yayr='noglob yay -R --cascade --recursive'
|
|
|
|
_yayre_params="-S --rebuild --noprovides --nodiffmenu --noconfirm"
|
|
# Reinstall given packages with all dependencies - https://www.reddit.com/r/archlinux/comments/33cety
|
|
yayre() {
|
|
yay $(echo $_yayre_params) --asdeps $(yay -Si "$@" | grep Depends | cut -d':' -f2) &&
|
|
yay $(echo $_yayre_params) "$@"
|
|
}
|
|
|
|
# Helper function to integrate yay and fzf
|
|
yzf() {
|
|
pos=$1
|
|
shift
|
|
sed "s/ /\t/g" |
|
|
fzf --nth=$pos --multi --history="${FZF_HISTDIR:-$XDG_STATE_HOME/fzf}/history-yzf$pos" \
|
|
--preview-window=60%,border-left \
|
|
--bind="double-click:execute(xdg-open 'https://archlinux.org/packages/{$pos}'),alt-enter:execute(xdg-open 'https://aur.archlinux.org/packages?K={$pos}&SB=p&SO=d&PP=100')" \
|
|
"$@" | cut -f$pos | xargs
|
|
}
|
|
|
|
# Dev note: print -s adds a shell history entry
|
|
|
|
# List installable packages into fzf and install selection
|
|
yas() {
|
|
cache_dir="/tmp/yas-$USER"
|
|
case "$1" in (-y*) rm -rf "$cache_dir"; shift; param=$1;; esac
|
|
mkdir -p "$cache_dir"
|
|
preview_cache="$cache_dir/preview_{2}"
|
|
list_cache="$cache_dir/list$*"
|
|
{ test "$(cat "$list_cache" | wc -l)" -lt 50000 && rm "$list_cache"; } 2>/dev/null
|
|
pkg=$(
|
|
( cat "$list_cache" 2>/dev/null ||
|
|
{ $(test $param && echo sudo) pacman --color=always -Sl $param "$@"; yay --color=always -Sl aur $param "$@" } |
|
|
sed 's/ [^ ]*unknown-version[^ ]*//' | tee "$list_cache" ) |
|
|
yzf 2 --tiebreak=chunk,index --preview="cat $preview_cache 2>/dev/null | grep -v 'Querying' | grep . || yay --color always -Si {2} | tee $preview_cache"
|
|
)
|
|
if test -n "$pkg"
|
|
then echo "Installing $pkg..."
|
|
cmd="yay -Sy --rebuild $pkg"
|
|
print -s "$cmd"
|
|
eval "$cmd"
|
|
rehash
|
|
fi
|
|
}
|
|
# List installed packages into fzf and remove selection
|
|
# Tip: use -e to list only explicitly installed packages
|
|
yar() {
|
|
pkg=$(yay --color=always -Q "$@" | yzf 1 --tiebreak=chunk,length --preview="yay --color always -Qli {1} | sed 's/^[^a-z]*m{1}//'")
|
|
if test -n "$pkg"
|
|
then echo "Removing $pkg..."
|
|
cmd="yay -R --cascade --recursive $pkg"
|
|
print -s "$cmd"
|
|
eval "$cmd"
|
|
fi
|
|
}
|
|
|