diff --git a/src/main.sh b/src/main.sh index 75326d2..8e87f7f 100755 --- a/src/main.sh +++ b/src/main.sh @@ -13,9 +13,6 @@ VIEW_SELECT_ARTIST="select-artist" VIEW_PLAYLIST="playlist" MODE_NORMAL="hidden" MODE_INSERT="show" -export VIEW_ARTIST VIEW_RELEASEGROUP VIEW_RELEASE VIEW_SEARCH_ARTIST \ - VIEW_SEARCH_ALBUM VIEW_LIST_ARTISTS VIEW_LIST_ALBUMS VIEW_SELECT_ARTIST \ - VIEW_PLAYLIST MODE_NORMAL MODE_INSERT # Load helper methods . "sh/info.sh" @@ -160,14 +157,20 @@ case "${1:-}" in ;; *) ;; esac + # Set initial query + case "$view" in + "$VIEW_ARTIST") q="!'$QUERY_HAS_SECONDARY' " ;; + "$VIEW_RELEASEGROUP") [ "$QUERY_RV" ] && q="'$QUERY_RV' " || q="" ;; + esac + printf "show-input" + [ "${q:-}" ] && printf "+change-query(%s)" "$q" # Store current state - printf "change-border-label(%s)+change-list-label(%s)" "$view" "$mbid" - debug "calling: $(printf "change-border-label(%s)+change-list-label(%s)" "$view" "$mbid")" - [ "$mode" = "$MODE_NORMAL" ] && printf "+hide-input" || printf "+show-input" + printf "+change-border-label(%s)+change-list-label(%s)" "$view" "$mbid" # Set header fzf_command_set_header "$view" "$mbid" # Load lines printf "+reload($0 --lines %s %s)" "$view" "$mbid" + [ "$mode" = "$MODE_NORMAL" ] && printf "+hide-input" exit 0 ;; "--fzf-reload") @@ -431,7 +434,9 @@ $KEYS_FILTER_LOCAL:transform:$0 --fzf-key {2} {3} {4}" \ --bind="$KEYS_N_BOT:transform:$IN_NORMAL_MODE && echo \"last\" || $PUT_FZF_KEY_LOGIC" \ --bind="$KEYS_N_TOP:transform:$IN_NORMAL_MODE && echo \"first\" || $PUT_FZF_KEY_LOGIC" \ --bind="$KEYS_IN:transform:[ {3} ] && $0 --draw \$FZF_INPUT_STATE \$FZF_BORDER_LABEL {3} \"+1\"" \ - --bind="$KEYS_OUT:transform:echo {2} >> /tmp/foo; echo {} >> /tmp/foo; [ {2} ] && $0 --draw \$FZF_INPUT_STATE \$FZF_BORDER_LABEL {2} \"-1\"" \ + --bind="$KEYS_OUT:transform:[ {2} ] && $0 --draw \$FZF_INPUT_STATE \$FZF_BORDER_LABEL {2} \"-1\"" \ + --bind="$KEYS_N_IN:transform:$IN_NORMAL_MODE && ([ {3} ] && $0 --draw \$FZF_INPUT_STATE \$FZF_BORDER_LABEL {3} \"+1\") || $PUT_FZF_KEY_LOGIC" \ + --bind="$KEYS_N_OUT:transform:$IN_NORMAL_MODE && ([ {2} ] && $0 --draw \$FZF_INPUT_STATE \$FZF_BORDER_LABEL {2} \"-1\") || $PUT_FZF_KEY_LOGIC" \ --bind="$KEYS_BROWSE:execute-silent: [ {3} ] || exit 0 case \"\$FZF_BORDER_LABEL\" in diff --git a/src/sh/keys.sh b/src/sh/keys.sh index 720149c..a21d301 100644 --- a/src/sh/keys.sh +++ b/src/sh/keys.sh @@ -17,6 +17,8 @@ # Horizontal navigation: # - $KEYS_IN: Enter into selected item, down the hierarchy # - $KEYS_OUT: Leave current item, up the hierarchy +# - $KEYS_N_IN: Enter into selected item, down the hierarchy (normal mode) +# - $KEYS_N_OUT: Leave current item, up the hierarchy (normal mode) # # Filtering: # @@ -43,6 +45,8 @@ KEYS_N_TOP="${KEYS_N_TOP:-"1"}" # Horizontal navigation: KEYS_IN="${KEYS_IN:-"ctrl-l"}" KEYS_OUT="${KEYS_OUT:-"ctrl-h"}" +KEYS_N_IN="${KEYS_N_IN:-"l"}" +KEYS_N_OUT="${KEYS_N_OUT:-"h"}" ## Not yet characterized KEYS_N_QUIT="${KEYS_N_QUIT:-"q"}" @@ -70,8 +74,6 @@ KEYS_NI="$KEYS_HALFPAGE_DOWN,$KEYS_HALFPAGE_UP,$KEYS_BROWSE,$KEYS_OPEN,$KEYS_OUT export KEYS_NI # Keys in normal mode only -KEYS_N_OUT="${KEYS_N_OUT:-"h"}" -KEYS_N_IN="${KEYS_N_IN:-"l"}" KEYS_N_INSERT="${KEYS_N_INSERT:-"a,i,/"}" KEYS_N_TOGGLE_PLAY_PAUSE="${KEYS_N_TOGGLE_PLAY_PAUSE:-"space"}" KEYS_N_PLAY_NEXT="${KEYS_N_PLAY_NEXT:-"right"}"