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