2024-05-17 12:38:17 +02:00
|
|
|
|
#!/usr/bin/env bash
|
|
|
|
|
|
2024-05-30 09:32:00 +02:00
|
|
|
|
# Populated by fuz-cache script through xprofile at startup
|
|
|
|
|
CACHE_DIR="/tmp/fuz_cache"
|
|
|
|
|
|
2024-06-08 06:14:08 +02:00
|
|
|
|
h_padding=$(printf '%*s' 20 ' ')
|
|
|
|
|
h_gap=$(printf '%*s' 4 ' ')
|
2024-05-17 12:38:17 +02:00
|
|
|
|
|
2024-05-30 09:32:00 +02:00
|
|
|
|
# Define the header using the escape sequences
|
|
|
|
|
HEADER="${h_padding}\
|
2024-06-08 06:14:08 +02:00
|
|
|
|
[1;34m Prefix[1;90m:[0mAlt${h_gap}\
|
|
|
|
|
[1;34m 1[1;90m:[0mAll/Folders/Git${h_gap}\
|
|
|
|
|
[1;34m 2[1;90m:[0mDocuments${h_gap}\
|
|
|
|
|
[1;34m 3[1;90m:[0mImages${h_gap}\
|
|
|
|
|
[1;34m 4[1;90m:[0mVideos"
|
2024-05-25 17:48:42 +02:00
|
|
|
|
|
2024-05-30 09:32:00 +02:00
|
|
|
|
fzf_main_func() {
|
|
|
|
|
cat $CACHE_DIR/all | fzf --ansi --prompt " All " \
|
|
|
|
|
--bind "alt-1:transform:(
|
|
|
|
|
([[ \$FZF_PROMPT =~ All ]] && echo 'change-prompt( Folders )+reload(cat $CACHE_DIR/folders)') ||
|
|
|
|
|
([[ \$FZF_PROMPT =~ Folders ]] && echo 'change-prompt( Git )+reload(cat $CACHE_DIR/git)') ||
|
|
|
|
|
echo 'change-prompt( All )+reload(cat $CACHE_DIR/all)')" \
|
|
|
|
|
--bind "alt-2:change-prompt( Documents )+reload(cat $CACHE_DIR/documents)" \
|
|
|
|
|
--bind "alt-3:change-prompt( Images )+reload(cat $CACHE_DIR/images)" \
|
|
|
|
|
--bind "alt-4:change-prompt( Videos )+reload(cat $CACHE_DIR/videos)" \
|
|
|
|
|
--header "$HEADER" \
|
|
|
|
|
--height=100% --pointer=" " --ellipsis= --header-first --scheme=path --algo=v2 --color="16" \
|
|
|
|
|
--preview-window "bottom,60%,border-top" --border=none --margin=5%,10%,5%,10% --info=inline-right \
|
|
|
|
|
--preview "fuz-preview {}"
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
selection=$(fzf_main_func)
|
2024-05-17 12:38:17 +02:00
|
|
|
|
|
2024-05-30 09:32:00 +02:00
|
|
|
|
if [ -n "$selection" ]; then
|
|
|
|
|
fuz-opener "$selection"
|
|
|
|
|
fi
|