bugfix: multiple keys support
This commit is contained in:
80
src/main.sh
80
src/main.sh
@@ -231,15 +231,16 @@ if [ "${1:-}" = "--fzf-change" ]; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
if [ "${1:-}" = "--fzf-key" ]; then
|
if [ "${1:-}" = "--fzf-key" ]; then
|
||||||
foo "KEY: $*"
|
foo "KEY: $*; FZF_KEY=$FZF_KEY"
|
||||||
mbid="${2:-}"
|
mbid="${2:-}"
|
||||||
path="${3:-}"
|
path="${3:-}"
|
||||||
mode=$(cut -d "#" -f 1 "$MODEFILE")
|
mode=$(cut -d "#" -f 1 "$MODEFILE")
|
||||||
args=$(cut -d "#" -f 2- "$MODEFILE")
|
args=$(cut -d "#" -f 2- "$MODEFILE")
|
||||||
|
|
||||||
case ",$FZF_KEY," in
|
case ",$KEYS_PLAY," in
|
||||||
*",$KEYS_PLAY,"*)
|
*",$FZF_KEY,"*)
|
||||||
[ "$path" ] && case "$mode" in
|
[ "$path" ] || exit 0
|
||||||
|
case "$mode" in
|
||||||
"$MODE_RELEASEGROUP")
|
"$MODE_RELEASEGROUP")
|
||||||
tmplist=$(mktemp)
|
tmplist=$(mktemp)
|
||||||
generate_playlist "$mbid" "$path" >"$tmplist"
|
generate_playlist "$mbid" "$path" >"$tmplist"
|
||||||
@@ -251,8 +252,11 @@ if [ "${1:-}" = "--fzf-key" ]; then
|
|||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
;;
|
;;
|
||||||
*",$KEYS_QUEUE,"*)
|
esac
|
||||||
[ "$path" ] && case "$mode" in
|
case ",$KEYS_QUEUE," in
|
||||||
|
*",$FZF_KEY,"*)
|
||||||
|
[ "$path" ] || exit 0
|
||||||
|
case "$mode" in
|
||||||
"$MODE_RELEASEGROUP")
|
"$MODE_RELEASEGROUP")
|
||||||
tmplist=$(mktemp)
|
tmplist=$(mktemp)
|
||||||
generate_playlist "$mbid" "$path" >"$tmplist"
|
generate_playlist "$mbid" "$path" >"$tmplist"
|
||||||
@@ -264,20 +268,38 @@ if [ "${1:-}" = "--fzf-key" ]; then
|
|||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
;;
|
;;
|
||||||
*",$KEYS_TOGGLE_PLAY_PAUSE,"*) mpv_toggle_pause >/dev/null ;;
|
esac
|
||||||
*",$KEYS_PLAY_NEXT,"*) [ "$path" ] && mpv_next >/dev/null ;;
|
case ",$KEYS_TOGGLE_PLAY_PAUSE," in
|
||||||
*",$KEYS_PLAY_PREV,"*) [ "$path" ] && mpv_prev >/dev/null ;;
|
*",$FZF_KEY,"*) mpv_toggle_pause >/dev/null ;;
|
||||||
*",$KEYS_SEEK_FORWARD,"*) mpv_seek_forward >/dev/null ;;
|
esac
|
||||||
*",$KEYS_SEEK_BACKWARD,"*) mpv_seek_backward >/dev/null ;;
|
case ",$KEYS_PLAY_NEXT," in
|
||||||
*",$KEYS_HALFPAGE_DOWN,"*) printf "half-page-down" ;;
|
*",$FZF_KEY,"*) [ "$path" ] && mpv_next >/dev/null ;;
|
||||||
*",$KEYS_HALFPAGE_UP,"*) printf "half-page-up" ;;
|
esac
|
||||||
*",$KEYS_FILTER_LOCAL,"*)
|
case ",$KEYS_PLAY_PREV," in
|
||||||
|
*",$FZF_KEY,"*) [ "$path" ] && mpv_prev >/dev/null ;;
|
||||||
|
esac
|
||||||
|
case ",$KEYS_SEEK_FORWARD," in
|
||||||
|
*",$FZF_KEY,"*) mpv_seek_forward >/dev/null ;;
|
||||||
|
esac
|
||||||
|
case ",$KEYS_SEEK_BACKWARD," in
|
||||||
|
*",$FZF_KEY,"*) mpv_seek_backward >/dev/null ;;
|
||||||
|
esac
|
||||||
|
case ",$KEYS_HALFPAGE_DOWN," in
|
||||||
|
*",$FZF_KEY,"*) printf "half-page-down" ;;
|
||||||
|
esac
|
||||||
|
case ",$KEYS_HALFPAGE_UP," in
|
||||||
|
*",$FZF_KEY,"*) printf "half-page-up" ;;
|
||||||
|
esac
|
||||||
|
case ",$KEYS_FILTER_LOCAL," in
|
||||||
|
*",$FZF_KEY,"*)
|
||||||
case "$mode" in
|
case "$mode" in
|
||||||
"$MODE_SEARCH_ARTIST" | "$MODE_SEARCH_ALBUM") ;;
|
"$MODE_SEARCH_ARTIST" | "$MODE_SEARCH_ALBUM") ;;
|
||||||
*) QUERY="$FORMAT_LOCAL " ;;
|
*) QUERY="$FORMAT_LOCAL " ;;
|
||||||
esac
|
esac
|
||||||
;;
|
;;
|
||||||
*",$KEYS_SWITCH_ARTIST_ALBUM,"*)
|
esac
|
||||||
|
case ",$KEYS_SWITCH_ARTIST_ALBUM," in
|
||||||
|
*",$FZF_KEY,"*)
|
||||||
case "$mode" in
|
case "$mode" in
|
||||||
"$MODE_SEARCH_ARTIST") MODE_NEXT="$MODE_SEARCH_ALBUM" ;;
|
"$MODE_SEARCH_ARTIST") MODE_NEXT="$MODE_SEARCH_ALBUM" ;;
|
||||||
"$MODE_SEARCH_ALBUM") MODE_NEXT="$MODE_SEARCH_ARTIST" ;;
|
"$MODE_SEARCH_ALBUM") MODE_NEXT="$MODE_SEARCH_ARTIST" ;;
|
||||||
@@ -285,7 +307,9 @@ if [ "${1:-}" = "--fzf-key" ]; then
|
|||||||
"$MODE_LIST_ALBUMS") MODE_NEXT="$MODE_LIST_ARTISTS" ;;
|
"$MODE_LIST_ALBUMS") MODE_NEXT="$MODE_LIST_ARTISTS" ;;
|
||||||
esac
|
esac
|
||||||
;;
|
;;
|
||||||
*",$KEYS_SWITCH_LOCAL_REMOTE,"*)
|
esac
|
||||||
|
case ",$KEYS_SWITCH_LOCAL_REMOTE," in
|
||||||
|
*",$FZF_KEY,"*)
|
||||||
case "$mode" in
|
case "$mode" in
|
||||||
"$MODE_SEARCH_ARTIST") MODE_NEXT="$MODE_LIST_ARTISTS" ;;
|
"$MODE_SEARCH_ARTIST") MODE_NEXT="$MODE_LIST_ARTISTS" ;;
|
||||||
"$MODE_SEARCH_ALBUM") MODE_NEXT="$MODE_LIST_ALBUMS" ;;
|
"$MODE_SEARCH_ALBUM") MODE_NEXT="$MODE_LIST_ALBUMS" ;;
|
||||||
@@ -293,7 +317,9 @@ if [ "${1:-}" = "--fzf-key" ]; then
|
|||||||
"$MODE_LIST_ALBUMS") MODE_NEXT="$MODE_SEARCH_ALBUM" ;;
|
"$MODE_LIST_ALBUMS") MODE_NEXT="$MODE_SEARCH_ALBUM" ;;
|
||||||
esac
|
esac
|
||||||
;;
|
;;
|
||||||
*",$KEYS_BROWSE,"*)
|
esac
|
||||||
|
case ",$KEYS_BROWSE," in
|
||||||
|
*",$FZF_KEY,"*)
|
||||||
[ "$mbid" ] || exit 0
|
[ "$mbid" ] || exit 0
|
||||||
case "$mode" in
|
case "$mode" in
|
||||||
"$MODE_SEARCH_ARTIST" | "$MODE_LIST_ARTISTS") urltype="artist" ;;
|
"$MODE_SEARCH_ARTIST" | "$MODE_LIST_ARTISTS") urltype="artist" ;;
|
||||||
@@ -303,7 +329,9 @@ if [ "${1:-}" = "--fzf-key" ]; then
|
|||||||
esac
|
esac
|
||||||
printf "execute-silent(xdg-open \"https://musicbrainz.org/%s/%s\" &)" "$urltype" "$mbid"
|
printf "execute-silent(xdg-open \"https://musicbrainz.org/%s/%s\" &)" "$urltype" "$mbid"
|
||||||
;;
|
;;
|
||||||
*",$KEYS_OUT,"*)
|
esac
|
||||||
|
case ",$KEYS_OUT," in
|
||||||
|
*",$FZF_KEY,"*)
|
||||||
case "$mode" in
|
case "$mode" in
|
||||||
"$MODE_ARTIST")
|
"$MODE_ARTIST")
|
||||||
MODE_NEXT="$MODE_LIST_ARTISTS"
|
MODE_NEXT="$MODE_LIST_ARTISTS"
|
||||||
@@ -319,7 +347,9 @@ if [ "${1:-}" = "--fzf-key" ]; then
|
|||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
;;
|
;;
|
||||||
*",$KEYS_IN,"*)
|
esac
|
||||||
|
case ",$KEYS_IN," in
|
||||||
|
*",$FZF_KEY,"*)
|
||||||
[ "$mbid" ] || exit 0
|
[ "$mbid" ] || exit 0
|
||||||
MODE_NEXT_ARGS="$mbid"
|
MODE_NEXT_ARGS="$mbid"
|
||||||
case "$mode" in
|
case "$mode" in
|
||||||
@@ -334,7 +364,9 @@ if [ "${1:-}" = "--fzf-key" ]; then
|
|||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
;;
|
;;
|
||||||
*",$KEYS_SELECT_ARTIST,"*)
|
esac
|
||||||
|
case ",$KEYS_SELECT_ARTIST," in
|
||||||
|
*",$FZF_KEY,"*)
|
||||||
[ "$mbid" ] || exit 0
|
[ "$mbid" ] || exit 0
|
||||||
case "$mode" in
|
case "$mode" in
|
||||||
"$MODE_ARTIST" | "$MODE_SEARCH_ARTIST" | "$MODE_LIST_ARTISTS")
|
"$MODE_ARTIST" | "$MODE_SEARCH_ARTIST" | "$MODE_LIST_ARTISTS")
|
||||||
@@ -352,12 +384,16 @@ if [ "${1:-}" = "--fzf-key" ]; then
|
|||||||
esac
|
esac
|
||||||
[ "$MODE_NEXT_ARGS" ] && MODE_NEXT="$MODE_SELECT_ARTIST"
|
[ "$MODE_NEXT_ARGS" ] && MODE_NEXT="$MODE_SELECT_ARTIST"
|
||||||
;;
|
;;
|
||||||
*",$KEYS_FILTER_PRIMARY,"*)
|
esac
|
||||||
|
case ",$KEYS_FILTER_PRIMARY," in
|
||||||
|
*",$FZF_KEY,"*)
|
||||||
[ "$mode" = "$MODE_ARTIST" ] || exit 0
|
[ "$mode" = "$MODE_ARTIST" ] || exit 0
|
||||||
secsymb="$(printf "$FORMAT_TYPE_HAS_SECONDARY" "")"
|
secsymb="$(printf "$FORMAT_TYPE_HAS_SECONDARY" "")"
|
||||||
QUERY="!$secsymb "
|
QUERY="!$secsymb "
|
||||||
;;
|
;;
|
||||||
*",$KEYS_FILTER_SECONDARY,"*)
|
esac
|
||||||
|
case ",$KEYS_FILTER_SECONDARY," in
|
||||||
|
*",$FZF_KEY,"*)
|
||||||
[ "$mode" = "$MODE_ARTIST" ] || exit 0
|
[ "$mode" = "$MODE_ARTIST" ] || exit 0
|
||||||
secsymb="$(printf "$FORMAT_TYPE_HAS_SECONDARY" "")"
|
secsymb="$(printf "$FORMAT_TYPE_HAS_SECONDARY" "")"
|
||||||
QUERY="$secsymb "
|
QUERY="$secsymb "
|
||||||
|
@@ -12,10 +12,10 @@ KEYS_SWITCH_LOCAL_REMOTE="${KEYS_SWITCH_LOCAL_REMOTE:-"ctrl-/"}"
|
|||||||
KEYS_PLAY="${KEYS_PLAY:-"enter"}"
|
KEYS_PLAY="${KEYS_PLAY:-"enter"}"
|
||||||
KEYS_QUEUE="${KEYS_QUEUE:-"alt-enter"}"
|
KEYS_QUEUE="${KEYS_QUEUE:-"alt-enter"}"
|
||||||
KEYS_TOGGLE_PLAY_PAUSE="${KEYS_TOGGLE_PLAY_PAUSE:-"space"}"
|
KEYS_TOGGLE_PLAY_PAUSE="${KEYS_TOGGLE_PLAY_PAUSE:-"space"}"
|
||||||
KEYS_PLAY_NEXT="${KEYS_PLAY_NEXT:-"l"}"
|
KEYS_PLAY_NEXT="${KEYS_PLAY_NEXT:-"l,right"}"
|
||||||
KEYS_PLAY_PREV="${KEYS_PLAY_PREV:-"h"}"
|
KEYS_PLAY_PREV="${KEYS_PLAY_PREV:-"h,left"}"
|
||||||
KEYS_SEEK_FORWARD="${KEYS_SEEK_FORWARD:-"shift-right"}"
|
KEYS_SEEK_FORWARD="${KEYS_SEEK_FORWARD:-"L,shift-right"}"
|
||||||
KEYS_SEEK_BACKWARD="${KEYS_SEEK_BACKWARD:-"shift-left"}"
|
KEYS_SEEK_BACKWARD="${KEYS_SEEK_BACKWARD:-"H,shift-left"}"
|
||||||
|
|
||||||
export KEYS_HALFPAGE_DOWN KEYS_HALFPAGE_UP KEYS_BROWSE KEYS_OUT KEYS_IN \
|
export KEYS_HALFPAGE_DOWN KEYS_HALFPAGE_UP KEYS_BROWSE KEYS_OUT KEYS_IN \
|
||||||
KEYS_SELECT_ARTIST KEYS_FILTER_LOCAL KEYS_FILTER_PRIMARY KEYS_FILTER_SECONDARY \
|
KEYS_SELECT_ARTIST KEYS_FILTER_LOCAL KEYS_FILTER_PRIMARY KEYS_FILTER_SECONDARY \
|
||||||
|
Reference in New Issue
Block a user