config/shell/arch: improve yzf preview & allow multi-select
This commit is contained in:
parent
8ed55ce936
commit
050f91b90c
|
@ -9,28 +9,39 @@ alias pacr='pac -R'
|
|||
alias yays='noglob yay -Sy --needed --ignore ferdi'
|
||||
alias yayr='noglob yay -R'
|
||||
|
||||
cache_dir="/tmp/yzf"
|
||||
yzf() {
|
||||
query=$(test "$1" = "Q" && echo " -l")
|
||||
sync=$(test "$1" = "S" && echo "true" || echo "")
|
||||
pos=$(test "$query" && echo 1 || echo 2)
|
||||
cache_dir="/tmp/yzf"
|
||||
mkdir -p $cache_dir
|
||||
list_cache="$cache_dir/list_$1$2"
|
||||
preview_cache="$cache_dir/preview_{$pos}"
|
||||
(test "$sync" && cat "$list_cache" 2>/dev/null || yay --color always -$1$2 | sed "s/ /\t/g" | tee "$list_cache") |
|
||||
fzf --nth=$pos --multi --tiebreak=length --history=/var/tmp/fzf-history-yay \
|
||||
fzf --nth=$pos --multi --tiebreak=length --history=/var/tmp/fzf-history-yzf \
|
||||
--bind="double-click:execute(xdg-open 'https://archlinux.org/packages/{$pos}')" \
|
||||
--preview "$(test "$sync" && echo "cat $preview_cache 2>/dev/null | grep -v 'Querying' | grep . ||") yay --color always -$1 -i $query {$pos} | tee $preview_cache" "${@:3}" --preview-window=wrap |
|
||||
cut -f$pos
|
||||
"${@:3}" --preview-window=60% |
|
||||
cut -f$pos | tr '\n' ' '
|
||||
# TODO get xdg-open URL for aur as well
|
||||
# yay -S -i {$pos} | grep URL | tail -1 | cut -d ':' -f2- | xargs xdg-open
|
||||
}
|
||||
# print -s adds a history entry
|
||||
yas() {
|
||||
pkg=$(yzf S l -q "$1" "${@:2}")
|
||||
test "$pkg" && echo "Install $pkg..." && print -s "yay -S $pkg" && yay -S "$pkg"
|
||||
preview_cache="$cache_dir/preview_{2}"
|
||||
pkg=$(yzf S l -q "$1" "${@:2}" --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 "Install $pkg..."
|
||||
cmd="yay -S $pkg"
|
||||
print -s "$cmd"
|
||||
eval "$cmd"
|
||||
fi
|
||||
}
|
||||
yar() {
|
||||
pkg=$(yzf Q "" -q "$1" "${@:2}")
|
||||
test "$pkg" && echo "Removing $pkg..." && print -s "yay -R $pkg" && yay -R "$pkg"
|
||||
pkg=$(yzf Q "" -q "$1" "${@:2}" --preview "yay --color always -Qli {1}")
|
||||
if test -n "$pkg"
|
||||
then echo "Removing $pkg..."
|
||||
cmd="yay -R $pkg"
|
||||
print -s "$cmd"
|
||||
eval "$cmd"
|
||||
fi
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue