From e7ff053161b7fd08730db58b2318b2b80bc1457e Mon Sep 17 00:00:00 2001 From: mintycube <90507714+mintycube@users.noreply.github.com> Date: Sat, 18 May 2024 13:41:08 +0500 Subject: [PATCH] improvements to fzf scripts --- .local/bin/fuz | 37 ++++++++++++++++++++----------------- .local/bin/fzf-fd | 13 +++++++------ .local/bin/fzf-grep | 45 ++++++++++++++++++++++----------------------- 3 files changed, 49 insertions(+), 46 deletions(-) diff --git a/.local/bin/fuz b/.local/bin/fuz index c240d54..52d9756 100755 --- a/.local/bin/fuz +++ b/.local/bin/fuz @@ -6,7 +6,7 @@ DIRNAME_CMD="/usr/bin/dirname" DISPLAY_CMD="/usr/bin/display" FD_CMD="/usr/bin/fd" FILE_CMD="/usr/bin/file" -FZFP_CMD="/usr/bin/fzfp" # comes from aur (stpv-git) +FZFP_CMD="/usr/bin/fzfp" # comes from AUR (stpv-git) GIMP_CMD="/usr/bin/gimp" LF_CMD="/usr/bin/lf" LIBREOFFICE_CMD="/usr/bin/zaread" @@ -15,7 +15,7 @@ NSXIV_CMD="/usr/bin/nsxiv" NVIM_CMD="/usr/bin/nvim" READLINK_CMD="/usr/bin/readlink" ZATHURA_CMD="/usr/bin/zathura" -ZSH_CMD="/usr/bin/zsh" +# ZSH_CMD="/usr/bin/zsh" echo -ne '\e[3 q' # Use underline shape cursor on startup. eval "$($DIRCOLORS_CMD --sh)" # Setup correct colors @@ -27,6 +27,7 @@ FD_COMMAND=( "-E" "*.github" "-E" "*.local/state" "-E" "*.ssh" + "-E" "*.android" "-E" "*GIMP" "-E" "*Thunar" "-E" "*config/blender" @@ -47,7 +48,8 @@ FD_COMMAND=( FZF_COMMAND=( "$FZFP_CMD" "--scheme=path" "--algo=v2" - "--height=100%" "--prompt=  " "--pointer= " "--ellipsis=" "--border=horizontal" + "--height=100%" "--prompt=  " "--pointer= " "--ellipsis=" + "--border=horizontal" "--margin=5%,10%,5%,10%" "--scrollbar=▐" "--preview-window=border-vertical" "--color=fg:#c0caf5,bg:#1a1b26,hl:#ff9e64" "--color=fg+:#c0caf5,bg+:#292e42,hl+:#ff9e64" "--color=info:#7aa2f7,prompt:#7dcfff,pointer:#7dcfff" @@ -60,31 +62,31 @@ case "$1" in # FZF_COMMAND+=("--query=pdf$ | epub$ | djvu$ ") FD_COMMAND+=("-e" "pdf" "-e" "epub" "-e" "djvu") selection="$("${FD_COMMAND[@]}" | "${FZF_COMMAND[@]}")" - export selection + # export selection [ -n "$selection" ] && $ZATHURA_CMD "$selection" ;; "-lf") selection="$("${FD_COMMAND[@]}" | "${FZF_COMMAND[@]}")" - export selection + # export selection [ -n "$selection" ] && $LF_CMD -command "set hidden" "$selection" ;; "-video") # FZF_COMMAND+=("--query=mp4$ | mkv$ | webm$ | avi$ ") FD_COMMAND+=("-e" "mp4" "-e" "mkv" "-e" "webm" "-e" "avi") selection="$("${FD_COMMAND[@]}" | "${FZF_COMMAND[@]}")" - export selection + # export selection [ -n "$selection" ] && "$MPV_CMD" --loop-file "$selection" -quiet ;; "-image") # FZF_COMMAND+=("--query=jpg$ | jpeg$ | png$ | webp$ | bmp$ | tiff$ | tif$ | raw$ | ico$ | exif$ | heic$ | heif$ | gif$ | avif$ | jxl$ | JPG$ | PNG$ ") FD_COMMAND+=("jpg" "-e" "jpeg" "-e" "png" "-e" "webp" "-e" "bmp" "-e" "tiff" "-e" "tif" "-e" "raw" "-e" "ico" "-e" "exif" "-e" "heic" "-e" "heif" "-e" "gif" "-e" "avif" "-e" "jxl" "-e" "JPG" "-e" "PNG") selection="$("${FD_COMMAND[@]}" | "${FZF_COMMAND[@]}")" - export selection + # export selection [ -n "$selection" ] && "$MPV_CMD" --loop-file "$selection" -quiet ;; *) selection="$("${FD_COMMAND[@]}" | "${FZF_COMMAND[@]}")" - export selection + # export selection [ -n "$selection" ] && case $($FILE_CMD --mime-type "$($READLINK_CMD -f "$selection")" -b) in image/vnd.djvu | application/pdf | application/postscript | application/epub*) "$ZATHURA_CMD" "$selection" >/dev/null 2>&1 ;; @@ -111,7 +113,7 @@ case "$1" in } done ;; - audio/* | video/x-ms-asf) "$MPV_CMD" --loop-file --audio-display=no "$selection" ;; + audio/* | video/x-ms-asf) "$MPV_CMD" --loop-file --profile=builtin-pseudo-gui "$selection" ;; video/*) "$MPV_CMD" --loop-file "$selection" -quiet >/dev/null 2>&1 ;; application/pgp-encrypted) "$NVIM_CMD" "$selection" ;; application/vnd.openxmlformats-officedocument.wordprocessingml.document | application/vnd.oasis.opendocument.text | application/vnd.openxmlformats-officedocument.spreadsheetml.sheet | application/vnd.oasis.opendocument.spreadsheet | application/vnd.oasis.opendocument.spreadsheet-template | application/vnd.openxmlformats-officedocument.presentationml.presentation | application/vnd.oasis.opendocument.presentation-template | application/vnd.oasis.opendocument.presentation | application/vnd.ms-powerpoint | application/vnd.oasis.opendocument.graphics | application/vnd.oasis.opendocument.graphics-template | application/vnd.oasis.opendocument.formula | application/vnd.oasis.opendocument.database) "$LIBREOFFICE_CMD" "$selection" >/dev/null 2>&1 ;; @@ -120,15 +122,16 @@ case "$1" in ts) "$MPV_CMD" "$selection" -quiet >/dev/null 2>&1 ;; *) "$ZATHURA_CMD" "$selection" >/dev/null 2>&1 ;; esac ;; - *) for selection in $selection; do $LF_CMD -command "set hidden" "$selection" >/dev/null 2>&1; done ;; + *) $LF_CMD -command "set hidden" "$selection" ;; esac ;; esac -if [ -d "$selection" ]; then - cd "$selection" && exec $ZSH_CMD -elif [ -f "$selection" ]; then - cd "$($DIRNAME_CMD "$selection")" && exec $ZSH_CMD -else - exec $ZSH_CMD -fi + +# if [ -d "$selection" ]; then +# cd "$selection" && exec $ZSH_CMD +# elif [ -f "$selection" ]; then +# cd "$($DIRNAME_CMD "$selection")" && exec $ZSH_CMD +# else +# exec $ZSH_CMD +# fi diff --git a/.local/bin/fzf-fd b/.local/bin/fzf-fd index ebcfb55..37c255e 100755 --- a/.local/bin/fzf-fd +++ b/.local/bin/fzf-fd @@ -16,15 +16,16 @@ fd_command="fd . \ fzf_command="fzf \ --ansi \ - --height=80% \ + --height=100% \ + --keep-right \ --layout=reverse \ + --scheme=path \ --multi \ --preview=\"[[ -n {1} ]] && $preview\" \ - --scroll-off=5 \ - --scrollbar='▐' \ - --ellipsis='…' \ - --marker='❱' \ - --pointer='❱'" + --preview-window='bottom,60%,border-top' \ + --scrollbar='▐' --info=hidden \ + --margin=5%,10%,5%,10% --border=none \ + --prompt='  ' --pointer=' ' --ellipsis='' " eval "$fd_command" | eval "$fzf_command" exit 0 diff --git a/.local/bin/fzf-grep b/.local/bin/fzf-grep index d963ad1..c85d1bb 100755 --- a/.local/bin/fzf-grep +++ b/.local/bin/fzf-grep @@ -1,27 +1,26 @@ -#!/bin/sh +#!/usr/bin/env bash -preview='bat -p --color=always --style=header,numbers -H {2} {1} | grep -C4 {q}' +rm -f /tmp/rg-fzf-{r,f} -([ -z "$1" ] && search_dir=".") || search_dir="$1" +[ -d "$1" ] && SEARCH_DIR="$1" && shift || SEARCH_DIR="." -selected=$(rg --color=always --hidden -nS "$2" "$search_dir" 2>/dev/null | - fzf -d: \ - --ansi \ - --height=80% \ - --multi \ - --query="$2" \ - --phony \ - --info=inline \ - --scroll-off=5 \ - --scrollbar='▐' \ - --ellipsis='…' \ - --marker='❱' \ - --pointer='❱' \ - --bind="change:reload:rg --hidden -nS --color=always {q} $search_dir" \ - --preview="[[ -n {1} ]] && $preview" \ - --preview-window=right:50%) +RG_PREFIX="rg --column --line-number --no-heading --color=always --smart-case \ + --glob '!/.ssh' --glob '!/.android' --glob '!/.gnupg'" +INITIAL_QUERY="${*:-}" -if [ -n "$selected" ]; then - line_number=$(echo "$selected" | awk -F ':' '{print $2}') - echo "$selected" | cut -d: -f1 | uniq | xargs nvim +"$line_number" -fi +: | fzf --ansi --disabled --query "$INITIAL_QUERY" \ + --bind "start:reload:$RG_PREFIX {q} $SEARCH_DIR" \ + --bind "change:reload:sleep 0.1; $RG_PREFIX {q} $SEARCH_DIR || true" \ + --bind "ctrl-t:transform:[[ ! \$FZF_PROMPT =~ ripgrep ]] && + echo \"rebind(change)+change-prompt(ripgrep  )+disable-search+transform-query:echo {q} > /tmp/rg-fzf-f; cat /tmp/rg-fzf-r\" || + echo \"unbind(change)+change-prompt(fzf  )+enable-search+transform-query:echo {q} > /tmp/rg-fzf-r; cat /tmp/rg-fzf-f\"" \ + --margin=5%,10%,5%,10% --height=100% --reverse \ + --scrollbar=▐ --keep-right --info=hidden --border=none --ellipsis= \ + --prompt 'ripgrep  ' \ + --delimiter : \ + --header 'CTRL-T: Switch between ripgrep/fzf' \ + --preview 'bat --style=header,numbers --color=always {1} --highlight-line {2}' \ + --preview-window 'bottom,60%,border-top,+{2}+3/3,~1' \ + --bind 'enter:become(nvim {1} +{2})' + +# --color "hl:-1:underline,hl+:-1:underline:reverse" \