diff options
| author | Robert Günzler <r@gnzler.io> | 2026-02-10 12:32:48 +0100 |
|---|---|---|
| committer | Robert Günzler <r@gnzler.io> | 2026-02-10 12:41:25 +0100 |
| commit | 63feeb9f369fc6176e85c1c2d8fcc863caad1946 (patch) | |
| tree | 41cd5d2d1ec36e74e464caab722cc9b460153f04 /bin/fzfez | |
| parent | 5bd0a4aca65ecb9818ef1285982d160b6b6ff665 (diff) | |
start new
Signed-off-by: Robert Günzler <r@gnzler.io>
Diffstat (limited to 'bin/fzfez')
| -rwxr-xr-x | bin/fzfez | 181 |
1 files changed, 0 insertions, 181 deletions
diff --git a/bin/fzfez b/bin/fzfez deleted file mode 100755 index e2e46f6..0000000 --- a/bin/fzfez +++ /dev/null @@ -1,181 +0,0 @@ -#!/bin/sh - -set -e -[ -n "$DEBUG" ] && set -x - -windowstyle='border-sharp' - -exec_hist=/tmp/fzf-interactive_exec-hist -if [ ! -f "$exec_hist" ]; then - touch "$exec_hist" -fi - -_cat='cat' -if bat --version >/dev/null; then - _cat='bat --color=always --style=numbers,changes' -fi -_ls='ls' -if eza --version >/dev/null; then - _ls='eza --classify --group --header --group-directories-first --color=always' -fi - -case "$1" in -help | -h | --help) - printf "usage: fzfez [exec|git-log|git-tag|git-branches|rg|fd|vimwiki|*]\n" - exit 1 - ;; - -exec) - uniq "$exec_hist" | - grep -v '^$' | - fzf \ - --header "${FZFEZ_HEADER:-EXEC:} select or enter a command, {} is \"$2\"" \ - --bind 'tab:replace-query' \ - --bind 'enter:print-query' | - tee -a $exec_hist | - sed "s#{}#$2#g" | - sh -s - exit $? - ;; - -_preview) - case "$(xdg-mime query filetype "$2")" in - inode/directory) $_ls -la "$2" ;; - text/*) $_cat "$2" ;; - application/javascript) $_cat "$2" ;; - application/x-yaml) $_cat "$2" ;; - application/x-shellscript) $_cat "$2" ;; - application/json) jq "$2" || $_cat "$2" ;; - application/x-compressed-tar) tar -tvf "$2" ;; - application/pdf) pdftotext "$2" - ;; - image/*) mediainfo "$2" ;; - video/* | audio/*) mediainfo "$2" ;; - *) file "$2" ;; - esac - ;; -_preview-detach) # invoke for media files - case "$(xdg-mime query filetype "$2")" in - inode/directory) swx -f vifm "$2" ;; - image/*) swx -f imv "$2" ;; - video/* | audio/*) swx -f mpv "$2" ;; - application/pdf) swx -f zathura "$2" ;; - text/*) swx -t ${EDITOR} "$2" ;; - *) env FZFEZ_HEADER='PREVIEW-DETACH' $0 exec "$2" ;; - esac - ;; -_batpreview) # highlights the line matching the query, usage: _batpreview FILENAME QUERY - _filename=${2} - if [ -z "${_filename}" ]; then - exit 1 - fi - _query=${3} - if [ -n "${_query}" ]; then - _ln=$(grep -n ${_query} "${_filename}" | head -n1 | cut -d: -f1) - [ -n "${_ln}" ] && opts="${opts} -H ${_ln}" - fi - shift 3 - exec bat ${*} ${opts} "${_filename}" - ;; - - # | sed 's#^refs/##' \ - # | sed 's#^remotes/##' \ - # | sed 's#^heads/##' \ -git-branches) - git rev-parse HEAD >/dev/null 2>&1 || exit 1 - git branch -a --format='%(refname)' | - grep -v 'remote' | - cut -d'/' -f3 | - sort | - env FZFEZ_HEADER='BRANCHES: c-o (switch)' \ - $0 \ - --ansi --no-sort --tac \ - --preview 'git log --color=always --oneline --graph --date=short ..{} && echo && git diff --color=always --stat {}' \ - --preview-window "${windowstyle},right:70%" \ - --bind "ctrl-o:execute(git switch {})+abort" - ;; - -git-tags) - git rev-parse HEAD >/dev/null 2>&1 || exit 1 - git tag --sort -version:refname | - cut -d' ' -f1 | - sed 's#^refs/##' | - sed 's#^remotes/##' | - sed 's#^heads/##' | - env FZFEZ_HEADER='TAGS:' \ - $0 \ - --ansi --no-sort \ - --preview 'git show --color=always {} | head -${LINES}' \ - --preview-window "${windowstyle},right:70%" - ;; - -git-log) - git log --color=always --oneline | - env FZFEZ_HEADER='LOG:' \ - $0 \ - --ansi --no-sort --reverse \ - --preview 'echo {} | cut -d\ -f1 | xargs git show --color=always --pretty=full --stat --patch' \ - --preview-window "${windowstyle},right:50%" | - cut -d' ' -f1 | - xargs -r -i git log -1 --pretty=%H {} - ;; - -neuron) - NOTESDIR=$HOME/.zk - rg --no-heading --line-number --with-filename --sort path . "${NOTESDIR}" | - env FZFEZ_HEADER='NEURON:' \ - $0 \ - --tac -d ':' -n .. \ - --preview 'bat --style=plain --color=always --highlight-line={2} {1}' \ - --preview-window "${windowstyle},+{2}-20" | - awk -F: "{system(\"${EDITOR}\" \" -c \" \$2 \" \" \$1)}" - ;; - -rg) - shift - rg --files-with-matches "$@" | - env FZFEZ_HEADER='RG:' \ - $0 \ - --preview "rg \"$*\" --color=always --no-filename --glob='{}' --context=5 --line-number" \ - --preview-window "${windowstyle}" - ;; - -fd) - shift - fd "$@" | - env FZFEZ_HEADER='FD: c-o (xdg-open)' \ - $0 \ - --ansi --reverse \ - --bind "ctrl-o:execute(xdg-open {})+abort" \ - --preview-window "${windowstyle},hidden" - ;; - -clipboard | cb) - shift - wl-paste | env FZFEZ_HEADER='CLIPBOARD:' $0 - ;; - -mail) - shift - exec fzf-notmuch "$@" - ;; - -*) - fzf \ - --header "${FZFEZ_HEADER:-FZF:} c-x (exec), ? (preview), c-space (preview-detach), c-s (sort)" \ - --preview "${0} _preview {}" \ - --preview-window "${windowstyle},hidden" \ - --multi \ - --bind 'enter:replace-query+print-query' \ - --bind 'ctrl-a:select-all' \ - --bind '?:toggle-preview' \ - --bind 'ctrl-s:toggle-sort' \ - --bind "ctrl-space:execute(${0} _preview-detach {})" \ - --bind "ctrl-y:yank" \ - --bind "ctrl-e:execute(${EDITOR} {})+abort" \ - --bind "ctrl-x:execute(env FZFEZ_HEADER=EXEC: ${0} exec {})+abort" \ - --height '50%' \ - --reverse \ - $FZFEZ_OPTS \ - "$@" - ;; -esac |