Parece que não existe nenhum programa que possa fazer tal coisa ... então eu decidi fazer meu próprio script, como segue (usando feh e gifview):
while read i; do
file+=( "$i" )
done < <(ls | sort -R)
for i in $(seq 0 "${#file[@]}");do
if [[ "${file[$i]}" =~ .*.gif ]];then
gifview -a "${file[$i]}"
read -s -n 1 choice
case $choice in
1) //Command to execute//
;;
2) //Other Command to execute//
;;
esac
else
feh -rqzZFVY --cycle-once --action1 "//Comand to execute//" --action2 "//Other command to execute// "${file[$i]}"
fi
done
O script primeiro carrega os arquivos no arquivo da matriz e, em seguida, percorre esses arquivos com o loop for. se o arquivo for um gif, a primeira condicional é acionada, então um comando read obtém a opção que você quer fazer com o arquivo e executa o comando sob a opção case, senão ele executa feh