preview wrap, preview size and improved theme
This commit is contained in:
11
src/main.sh
11
src/main.sh
@@ -546,6 +546,7 @@ FZF_CURRENT_MBID="\$FZF_BORDER_LABEL"
|
||||
FZF_RELOAD_PLAYLIST="reload-sync($0 --lines $VIEW_PLAYLIST)"
|
||||
FZF_POS_PLAYLIST="transform:$0 --action-playlistcursor"
|
||||
PUT_FZF_KEY_LOGIC="case \$FZF_KEY in space) echo \"put( )\";; left) echo backward-char;; right) echo forward-char;; backspace|bspace|bs) echo backward-delete-char;; delete|del) echo delete-char;; *) echo \"put(\$FZF_KEY)\";; esac"
|
||||
FZF_DEFAULT_PREVIEW_WINDOW="right,$PREVIEW_WINDOW_PERCENTAGE%,border-line,nowrap,<50(hidden)"
|
||||
while true; do
|
||||
case "$VIEW" in
|
||||
"$VIEW_SELECT_ARTIST")
|
||||
@@ -566,13 +567,16 @@ while true; do
|
||||
--bind="$KEYS_KEYBINDINGS:preview:$0 --show-keybindings $VIEW_SELECT_ARTIST" \
|
||||
--bind="$KEYS_SCROLL_PREVIEW_DOWN:preview-down" \
|
||||
--bind="$KEYS_SCROLL_PREVIEW_UP:preview-up" \
|
||||
--bind="$KEYS_PREVIEW_TOGGLE_WRAP:toggle-preview-wrap" \
|
||||
--bind="$KEYS_PREVIEW_TOGGLE_SIZE:change-preview-window(right,90%,border-line,nowrap|$FZF_DEFAULT_PREVIEW_WINDOW)" \
|
||||
--bind="$KEYS_PREVIEW_OPEN:show-preview" \
|
||||
--bind="$KEYS_PREVIEW_CLOSE:hide-preview" \
|
||||
--bind="$KEYS_FILTER_LOCAL:change-query($QUERY_LOCAL )" \
|
||||
-0 -1 \
|
||||
--border="bold" \
|
||||
--border-label="Select artist" \
|
||||
--preview-window="right,25%,border-left,wrap,<30(hidden)" \
|
||||
--preview-window="$FZF_DEFAULT_PREVIEW_WINDOW" \
|
||||
--wrap-sign="" \
|
||||
--preview="$0 --preview $VIEW_SELECT_ARTIST {4}" \
|
||||
--delimiter="\t" \
|
||||
--prompt="$SEARCH_PROMPT" \
|
||||
@@ -718,12 +722,15 @@ open \"\$(dirname {5})\"" \
|
||||
--bind="$KEYS_N_QUIT:transform:$IN_NORMAL_MODE && ($IN_LIST_ARTISTS_VIEW && echo \"print($VIEW_QUIT)+accept\" || $0 --action-draw $MODE_NORMAL $VIEW_LIST_ARTISTS \"0\") || $PUT_FZF_KEY_LOGIC" \
|
||||
--bind="$KEYS_SCROLL_PREVIEW_DOWN:preview-down" \
|
||||
--bind="$KEYS_SCROLL_PREVIEW_UP:preview-up" \
|
||||
--bind="$KEYS_PREVIEW_TOGGLE_WRAP:toggle-preview-wrap" \
|
||||
--bind="$KEYS_PREVIEW_TOGGLE_SIZE:change-preview-window(right,90%,border-line,nowrap|$FZF_DEFAULT_PREVIEW_WINDOW)" \
|
||||
--bind="$KEYS_PREVIEW_OPEN:show-preview" \
|
||||
--bind="$KEYS_PREVIEW_CLOSE:hide-preview" \
|
||||
--bind="$KEYS_PLAYBACK:transform:$0 --playback $FZF_CURRENT_VIEW $FZF_CURRENT_MBID {4} {5}" \
|
||||
--bind="$KEYS_N_PLAYBACK:transform:$IN_NORMAL_MODE && $0 --playback $FZF_CURRENT_VIEW $FZF_CURRENT_MBID {4} {5} || $PUT_FZF_KEY_LOGIC" \
|
||||
--bind="change:execute-silent($0 --mbsearch $FZF_CURRENT_VIEW &)+reload:$0 --lines $FZF_CURRENT_VIEW" \
|
||||
--preview-window="right,25%,border-left,wrap,<30(hidden)" \
|
||||
--preview-window="$FZF_DEFAULT_PREVIEW_WINDOW" \
|
||||
--wrap-sign="" \
|
||||
--preview="$0 --preview $FZF_CURRENT_VIEW {4}" \
|
||||
--delimiter="\t" \
|
||||
--with-nth="{1}" || true
|
||||
|
||||
@@ -59,6 +59,8 @@
|
||||
# - KEYS_SCROLL_PREVIEW_UP: Scroll preview up
|
||||
# - KEYS_PREVIEW_OPEN: Open preview window
|
||||
# - KEYS_PREVIEW_CLOSE: Close preview window
|
||||
# - KEYS_PREVIEW_TOGGLE_WRAP: Toggle line wrapping in preview window
|
||||
# - KEYS_PREVIEW_TOGGLE_SIZE: Toggle size (small, large) of preview window
|
||||
# - KEYS_REFRESH: Refresh current entry
|
||||
#
|
||||
# Playback:
|
||||
@@ -101,7 +103,7 @@ if [ ! "${KEYS_LOADED:-}" ]; then
|
||||
KEYS_N_DOWN="${KEYS_N_DOWN:-"j"}"
|
||||
KEYS_N_UP="${KEYS_N_UP:-"k"}"
|
||||
KEYS_N_BOT="${KEYS_N_BOT:-"G"}"
|
||||
KEYS_N_TOP="${KEYS_N_TOP:-"1"}"
|
||||
KEYS_N_TOP="${KEYS_N_TOP:-"g"}"
|
||||
export KEYS_DOWN KEYS_UP KEYS_HALFPAGE_DOWN KEYS_HALFPAGE_UP KEYS_N_DOWN \
|
||||
KEYS_N_UP KEYS_N_BOT KEYS_N_TOP
|
||||
|
||||
@@ -151,10 +153,14 @@ if [ ! "${KEYS_LOADED:-}" ]; then
|
||||
KEYS_SCROLL_PREVIEW_UP="${KEYS_SCROLL_PREVIEW_UP:-"page-up"}"
|
||||
KEYS_PREVIEW_OPEN="${KEYS_PREVIEW_OPEN:-"alt-up"}"
|
||||
KEYS_PREVIEW_CLOSE="${KEYS_PREVIEW_CLOSE:-"alt-down"}"
|
||||
KEYS_PREVIEW_TOGGLE_WRAP="${KEYS_PREVIEW_TOGGLE_WRAP:-"alt-w"}"
|
||||
KEYS_PREVIEW_TOGGLE_SIZE="${KEYS_PREVIEW_TOGGLE_SIZE:-"alt-/"}"
|
||||
KEYS_REFRESH="${KEYS_REFRESH:-"ctrl-r"}"
|
||||
export KEYS_BROWSE KEYS_OPEN KEYS_N_YANK KEYS_YANK_CURRENT KEYS_SHOW_PLAYLIST \
|
||||
KEYS_KEYBINDINGS KEYS_QUIT KEYS_N_QUIT KEYS_SCROLL_PREVIEW_DOWN \
|
||||
KEYS_SCROLL_PREVIEW_UP KEYS_PREVIEW_CLOSE KEYS_PREVIEW_OPEN KEYS_REFRESH
|
||||
export KEYS_BROWSE KEYS_OPEN KEYS_N_YANK KEYS_YANK_CURRENT \
|
||||
KEYS_SHOW_PLAYLIST KEYS_KEYBINDINGS KEYS_QUIT KEYS_N_QUIT \
|
||||
KEYS_SCROLL_PREVIEW_DOWN KEYS_SCROLL_PREVIEW_UP KEYS_PREVIEW_CLOSE \
|
||||
KEYS_PREVIEW_OPEN KEYS_PREVIEW_TOGGLE_WRAP KEYS_PREVIEW_TOGGLE_SIZE \
|
||||
KEYS_REFRESH
|
||||
|
||||
# Playback:
|
||||
KEYS_PLAY="${KEYS_PLAY:-"enter"}"
|
||||
@@ -239,6 +245,8 @@ print_keybindings() {
|
||||
"$KEYS_SCROLL_PREVIEW_DOWN" "Scroll preview down" \
|
||||
"$KEYS_SCROLL_PREVIEW_UP" "Scroll preview up" \
|
||||
"$KEYS_KEYBINDINGS" "Show these keybindings" \
|
||||
"$KEYS_PREVIEW_TOGGLE_WRAP" "Toggle preview wrapping" \
|
||||
"$KEYS_PREVIEW_TOGGLE_SIZE" "Toggle preview size" \
|
||||
"$KEYS_PREVIEW_OPEN" "Open preview window" \
|
||||
"$KEYS_PREVIEW_CLOSE" "Close preview window"
|
||||
__keybindinggroup_from_args "Navigation" \
|
||||
@@ -313,6 +321,8 @@ print_keybindings() {
|
||||
"$KEYS_SCROLL_PREVIEW_DOWN" "Scroll preview down" \
|
||||
"$KEYS_SCROLL_PREVIEW_UP" "Scroll preview up" \
|
||||
"$KEYS_KEYBINDINGS" "Show these keybindings" \
|
||||
"$KEYS_PREVIEW_TOGGLE_WRAP" "Toggle preview wrapping" \
|
||||
"$KEYS_PREVIEW_TOGGLE_SIZE" "Toggle preview size" \
|
||||
"$KEYS_PREVIEW_OPEN" "Open preview window" \
|
||||
"$KEYS_PREVIEW_CLOSE" "Close preview window"
|
||||
__keybindinggroup_from_args "Navigation" \
|
||||
|
||||
@@ -2,12 +2,32 @@
|
||||
#
|
||||
# For now, only artist previews are supported.
|
||||
|
||||
if [ ! "${PREVIEW_LOADED:-}" ]; then
|
||||
PREVIEW_NO_WRAP="__DO_NOT_WRAP_THIS_LINE__"
|
||||
PREVIEW_WINDOW_PERCENTAGE="30"
|
||||
export PREVIEW_NO_WRAP PREVIEW_WINDOW_PERCENTAGE
|
||||
|
||||
export PREVIEW_LOADED=1
|
||||
fi
|
||||
|
||||
# This internal method reshapes the text to be shown in the preview. This
|
||||
# creates a border on both horizontal ends.
|
||||
#
|
||||
# The text is read from stdin.
|
||||
# The text is read from stdin. If a line contains the pattern defined in
|
||||
# PREVIEW_NO_WRAP, then that line will not be folded.
|
||||
__shape() {
|
||||
cat | tr -d '\r' | fold -s -w "$((FZF_PREVIEW_COLUMNS - 4))" | awk '{print " "$0" "}'
|
||||
#width="$((FZF_PREVIEW_COLUMNS - 4))"
|
||||
width="$((FZF_COLUMNS * PREVIEW_WINDOW_PERCENTAGE / 100 - 4))"
|
||||
while IFS= read -r line; do
|
||||
line="$(printf "%s" "$line" | tr -d '\r')"
|
||||
if printf "%s" "$line" | grep --silent "$PREVIEW_NO_WRAP"; then
|
||||
printf " %s\n" "$line" | sed "s/$PREVIEW_NO_WRAP//g"
|
||||
else
|
||||
printf "%s\n" "$line" |
|
||||
fold -s -w "$width" |
|
||||
awk '{print " "$0" "}'
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
# Print preview of artist
|
||||
|
||||
@@ -19,7 +19,6 @@ if [ ! "${THEME_LOADED:-}" ]; then
|
||||
CNOTE="${ESC}[38;5;242m"
|
||||
CXXX="${ESC}[38;5;109m"
|
||||
CDESC="${ESC}[38;5;254m"
|
||||
CLIFE="${ESC}[38;5;251m"
|
||||
CKB="${ESC}[38;5;224m"
|
||||
OFF="${ESC}[m"
|
||||
|
||||
@@ -303,6 +302,9 @@ if [ ! "${THEME_LOADED:-}" ]; then
|
||||
|
||||
# Artist Preview
|
||||
# ==============
|
||||
# Lines that contain the pattern defined in PREVIEW_NO_WRAP (see
|
||||
# `src/sh/preview.sh`) will not be wrapped.
|
||||
#
|
||||
# We distinguish between single-person and group artists.
|
||||
#
|
||||
# <<name>> | string | Artist name
|
||||
@@ -313,7 +315,7 @@ if [ ! "${THEME_LOADED:-}" ]; then
|
||||
# <<start> | higher-order placeholder | Placeholder for start string
|
||||
# <<end>> | higher-order placeholder | Placeholder for end string
|
||||
# <<url>> | higher-order placeholder | Placeholder for links
|
||||
PREVIEW_ARTIST_PERSON_FMT="${PREVIEW_ARTIST_PERSON_FMT:-"<<bio>><<alias>><<start>><<end>>\n<<url>>"}"
|
||||
PREVIEW_ARTIST_PERSON_FMT="${PREVIEW_ARTIST_PERSON_FMT:-"\n\n<<bio>><<alias>><<start>><<end>>\n<<url>>"}"
|
||||
PREVIEW_ARTIST_PERSON_NAME="${PREVIEW_ARTIST_PERSON_NAME:-"%s"}"
|
||||
PREVIEW_ARTIST_PERSON_SORTNAME="${PREVIEW_ARTIST_PERSON_SORTNAME:-"%s"}"
|
||||
PREVIEW_ARTIST_PERSON_BIO="${PREVIEW_ARTIST_PERSON_BIO:-"${CDESC}%s$OFF\n\n"}"
|
||||
@@ -330,7 +332,7 @@ if [ ! "${THEME_LOADED:-}" ]; then
|
||||
PREVIEW_ARTIST_PERSON_END_ENDPLACE="${PREVIEW_ARTIST_PERSON_END_ENDPLACE:-"in %s"}"
|
||||
PREVIEW_ARTIST_PERSON_URL="${PREVIEW_ARTIST_PERSON_URL:-"\n${UNDERLINE}Links:$OFF%s\n"}"
|
||||
PREVIEW_ARTIST_PERSON_URL_JOIN="${PREVIEW_ARTIST_PERSON_URL_JOIN:-"%s\n%s"}"
|
||||
PREVIEW_ARTIST_PERSON_URL_FMT="${PREVIEW_ARTIST_PERSON_URL_FMT:-"<<urlindex>>:\n<<urlname>>\n<<urllink>>\n"}"
|
||||
PREVIEW_ARTIST_PERSON_URL_FMT="${PREVIEW_ARTIST_PERSON_URL_FMT:-"${PREVIEW_NO_WRAP}<<urlindex>>: <<urlname>> <<urllink>>\n"}"
|
||||
PREVIEW_ARTIST_PERSON_URL_URLINDEX="${PREVIEW_ARTIST_PERSON_URL_URLINDEX:-"${CDISAMB}%3d$OFF"}"
|
||||
PREVIEW_ARTIST_PERSON_URL_URLNAME="${PREVIEW_ARTIST_PERSON_URL_URLNAME:-"${CDESC}%s$OFF"}"
|
||||
PREVIEW_ARTIST_PERSON_URL_URLLINK="${PREVIEW_ARTIST_PERSON_URL_URLLINK:-"${FAINT}%s$OFF"}"
|
||||
|
||||
Reference in New Issue
Block a user