bugfix: input keys; better controls
This commit is contained in:
@@ -207,13 +207,26 @@ fzf_handle_key() {
|
||||
# If we are in the insert mode, and the key pressed is an "input" key, then
|
||||
# put it and quit.
|
||||
if [ "$mode" = "$MODE_INSERT" ]; then
|
||||
case ",$KEYS_INPUT," in
|
||||
case ",$KEYS_INPUT_SINGLE," in
|
||||
*",$FZF_KEY,"*)
|
||||
foo "...."
|
||||
foo "single key"
|
||||
printf "put(%s)" "$FZF_KEY"
|
||||
return 0
|
||||
;;
|
||||
esac
|
||||
case ",$KEYS_INPUT_SPECIAL," in
|
||||
*",$FZF_KEY,"*)
|
||||
foo "special key"
|
||||
case "$FZF_KEY" in
|
||||
"space") printf "put( )" ;;
|
||||
"backspace") printf "backward-delete-char" ;;
|
||||
"delete") printf "delete-char" ;;
|
||||
"left") printf "backward-char" ;;
|
||||
"right") printf "forward-char" ;;
|
||||
esac
|
||||
return 0
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
|
||||
# Handle key press
|
||||
@@ -307,7 +320,12 @@ fzf_handle_key() {
|
||||
esac
|
||||
;;
|
||||
esac
|
||||
case ",$KEYS_FILTER_PRIMARY," in
|
||||
# VIEW_RELEASEGROUP="rg"
|
||||
# VIEW_RELEASE="release"
|
||||
# VIEW_LIST_ARTISTS="list-artists"
|
||||
# VIEW_SELECT_ARTIST="select-artist"
|
||||
# VIEW_PLAYLIST="playlist"
|
||||
case ",$KEYS_FILTER_1," in
|
||||
*",$FZF_KEY,"*)
|
||||
case "$view" in
|
||||
"$VIEW_ARTIST" | "$VIEW_LIST_ALBUMS")
|
||||
@@ -317,12 +335,35 @@ fzf_handle_key() {
|
||||
esac
|
||||
;;
|
||||
esac
|
||||
case ",$KEYS_FILTER_SECONDARY," in
|
||||
case ",$KEYS_FILTER_2," in
|
||||
*",$FZF_KEY,"*)
|
||||
case "$view" in
|
||||
"$VIEW_ARTIST" | "$VIEW_LIST_ALBUMS")
|
||||
secsymb="$(printf "$FORMAT_TYPE_HAS_SECONDARY" "")"
|
||||
QUERY="$secsymb "
|
||||
typesymb="$(printf "$FORMAT_TYPE_ALBUM" | sed "s/ /\\\ /g")"
|
||||
QUERY="!$secsymb '$typesymb' "
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
esac
|
||||
case ",$KEYS_FILTER_3," in
|
||||
*",$FZF_KEY,"*)
|
||||
case "$view" in
|
||||
"$VIEW_ARTIST" | "$VIEW_LIST_ALBUMS")
|
||||
secsymb="$(printf "$FORMAT_TYPE_HAS_SECONDARY" "")"
|
||||
typesymb="$(printf "$FORMAT_TYPE_EP" | sed "s/ /\\\ /g")"
|
||||
QUERY="!$secsymb '$typesymb' "
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
esac
|
||||
case ",$KEYS_FILTER_4," in
|
||||
*",$FZF_KEY,"*)
|
||||
case "$view" in
|
||||
"$VIEW_ARTIST" | "$VIEW_LIST_ALBUMS")
|
||||
secsymb="$(printf "$FORMAT_TYPE_HAS_SECONDARY" "")"
|
||||
typesymb="$(printf "$FORMAT_TYPE_SINGLE" | sed "s/ /\\\ /g")"
|
||||
QUERY="!$secsymb '$typesymb' "
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
|
@@ -1,5 +1,7 @@
|
||||
KEYS_INPUT='0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,!,",#,$,%,&,\,(,),*,+,,,-,.,/,:,;,<,=,>,?,@,[,\,\,],^,_,`,{,|,},~, '
|
||||
KEYS_INPUT="$KEYS_INPUT,'"
|
||||
KEYS_INPUT_SINGLE='0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,!,",#,$,%,&,\,(,),*,+,,,-,.,/,:,;,<,=,>,?,@,[,\,\,],^,_,`,{,|,},~'
|
||||
KEYS_INPUT_SINGLE="$KEYS_INPUT_SINGLE,'"
|
||||
KEYS_INPUT_SPECIAL="space,backspace,delete,left,right"
|
||||
export KEYS_INPUT_SINGLE KEYS_INPUT_SPECIAL
|
||||
|
||||
# Normal and insert mode
|
||||
KEYS_HALFPAGE_DOWN="${KEYS_HALFPAGE_DOWN:-"ctrl-d"}"
|
||||
@@ -9,8 +11,10 @@ KEYS_OUT="${KEYS_OUT:-"ctrl-h"}"
|
||||
KEYS_IN="${KEYS_IN:-"ctrl-l"}"
|
||||
KEYS_SELECT_ARTIST="${KEYS_SELECT_ARTIST:-"ctrl-a"}"
|
||||
KEYS_FILTER_LOCAL="${KEYS_FILTER_LOCAL:-"alt-l"}"
|
||||
KEYS_FILTER_PRIMARY="${KEYS_FILTER_PRIMARY:-"alt-1"}"
|
||||
KEYS_FILTER_SECONDARY="${KEYS_FILTER_SECONDARY:-"alt-2"}"
|
||||
KEYS_FILTER_1="${KEYS_FILTER_1:-"alt-1"}"
|
||||
KEYS_FILTER_2="${KEYS_FILTER_2:-"alt-2"}"
|
||||
KEYS_FILTER_3="${KEYS_FILTER_3:-"alt-3"}"
|
||||
KEYS_FILTER_4="${KEYS_FILTER_4:-"alt-4"}"
|
||||
KEYS_SWITCH_ARTIST_ALBUM="${KEYS_SWITCH_ARTIST_ALBUM:-"tab"}"
|
||||
KEYS_SWITCH_LOCAL_REMOTE="${KEYS_SWITCH_LOCAL_REMOTE:-"ctrl-/"}"
|
||||
KEYS_PLAY="${KEYS_PLAY:-"enter"}"
|
||||
@@ -35,16 +39,16 @@ KEYS_N_SEEK_BACKWARD="${KEYS_N_SEEK_BACKWARD:-"shift-left"}"
|
||||
KEYS_I_NORMAL="${KEYS_I_NORMAL:-"esc"}"
|
||||
|
||||
# Grouping
|
||||
KEYS_GROUP_NI="$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_SWITCH_ARTIST_ALBUM,$KEYS_SWITCH_LOCAL_REMOTE,$KEYS_PLAY,$KEYS_QUEUE,$KEYS_SHOW_PLAYLIST"
|
||||
KEYS_GROUP_NI="$KEYS_HALFPAGE_DOWN,$KEYS_HALFPAGE_UP,$KEYS_BROWSE,$KEYS_OUT,$KEYS_IN,$KEYS_SELECT_ARTIST,$KEYS_FILTER_LOCAL,$KEYS_FILTER_1,$KEYS_FILTER_2,$KEYS_FILTER_3,$KEYS_FILTER_4,$KEYS_SWITCH_ARTIST_ALBUM,$KEYS_SWITCH_LOCAL_REMOTE,$KEYS_PLAY,$KEYS_QUEUE,$KEYS_SHOW_PLAYLIST"
|
||||
|
||||
KEYS_GROUP_N="$KEYS_N_DOWN,$KEYS_N_UP,$KEYS_N_OUT,$KEYS_N_IN,$KEYS_N_BOT,$KEYS_N_QUIT,$KEYS_N_INSERT,$KEYS_N_TOGGLE_PLAY_PAUSE,$KEYS_N_PLAY_NEXT,$KEYS_N_PLAY_PREV,$KEYS_N_SEEK_FORWARD,$KEYS_N_SEEK_BACKWARD"
|
||||
|
||||
KEYS_GROUP_I="$KEYS_I_NORMAL"
|
||||
|
||||
KEYS_ALL="$KEYS_GROUP_NI,$KEYS_GROUP_N,$KEYS_GROUP_I,$KEYS_INPUT"
|
||||
KEYS_ALL="$KEYS_GROUP_NI,$KEYS_GROUP_N,$KEYS_GROUP_I,$KEYS_INPUT_SINGLE,$KEYS_INPUT_SPECIAL"
|
||||
|
||||
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_1 KEYS_FILTER_2 KEYS_FILETER_3 KEYS_FILTER_4 \
|
||||
KEYS_SWITCH_ARTIST_ALBUM KEYS_SWITCH_LOCAL_REMOTE KEYS_PLAY KEYS_QUEUE \
|
||||
KEYS_N_DOWN KEYS_N_UP KEYS_N_OUT KEYS_N_IN KEYS_N_BOT KEYS_N_QUIT KEYS_N_INSERT \
|
||||
KEYS_N_TOGGLE_PLAY_PAUSE KEYS_N_PLAY_NEXT KEYS_N_PLAY_PREV KEYS_N_SEEK_FORWARD \
|
||||
|
Reference in New Issue
Block a user