spmenu-examples/spmenu_autocomplete.sh

29 lines
762 B
Bash
Executable file

#!/bin/sh
get_autocomplete_data() {
touch /tmp/autocomplete-data /tmp/autocomplete-data-2
cp /tmp/autocomplete-data /tmp/autocomplete-data-2
curl -s "https://duckduckgo.com/ac/?q=$1&kl=wt-wt" | jq --raw-output ".[].phrase" > /tmp/.f
mv /tmp/.f /tmp/autocomplete-data
[ -n "$(diff /tmp/autocomplete-data /tmp/autocomplete-data-2)" ] && {
rm -f /tmp/spmenu.fifo
printf "update" > /tmp/spmenu.fifo
}
}
bgfunc() {
while true; do
get_autocomplete_data "$(tail -n 1 /tmp/f | sed 's/ /+/g')"
sleep 0.5
done
}
bgfunc &
spmenu -im -r -l 10 -ml 10 -g 1 -pt "Search the web.." -lf /tmp/autocomplete-data > /tmp/f
pkill -P $$
tail -n 1 /tmp/f
rm -f /tmp/f /tmp/autocomplete-data /tmp/autocomplete-data-2