#!/usr/bin/env bash dwmc setlayoutex 2 rm -f /tmp/rg-fzf-{r,f} [ -d "$1" ] && SEARCH_DIR="$1" && shift || SEARCH_DIR="." RG_PREFIX="rg --hidden --column --line-number --no-heading --follow --color=always --smart-case \ --glob '!/.ssh' --glob '!/.android' --glob '!/.gnupg' --glob '!node_modules'" INITIAL_QUERY="${*:-}" h_padding=$(printf '%*s' 7 ' ') h_gap=$(printf '%*s' 2 ' ') HEADER="${h_padding}\  Prefix:Alt${h_gap}\  Space:fzf/ripgrep${h_gap}\  A:Select All${h_gap}\  D:Deselect All${h_gap}\  /:Toggle Preview${h_gap}\  Q:Quickfix List" : | fzf --ansi --multi --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 "alt-space: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\"" \ --bind 'alt-a:select-all,alt-d:deselect-all,alt-/:toggle-preview' \ --margin=5%,10%,5%,10% --height=100% --reverse --info=inline-right \ --scrollbar=▐ --keep-right --border=none --ellipsis= \ --prompt 'ripgrep  ' \ --delimiter : \ --header "$HEADER" --header-first \ --preview 'bat --style=header,numbers --color=always {1} --highlight-line {2}' \ --preview-window 'bottom,60%,border-top,+{2}+3/3,~1' \ --bind "alt-q:execute:nvim +cw -q {+f}" \ --bind "enter:execute:nvim {1} +{2}" \ --highlight-line \ --color=bg+:#2d3f76 \ --color=bg:#1e2030 \ --color=border:#589ed7 \ --color=fg:#c8d3f5 \ --color=gutter:#1e2030 \ --color=header:#ff966c \ --color=hl+:#65bcff \ --color=hl:#65bcff \ --color=info:#545c7e \ --color=marker:#ff007c \ --color=pointer:#ff007c \ --color=prompt:#65bcff \ --color=query:#c8d3f5:regular \ --color=scrollbar:#589ed7 \ --color=separator:#ff966c \ --color=spinner:#ff007c dwmc setlayoutex 0