diff options
author | Vikas Kushwaha <dev@vikas.rocks> | 2025-02-07 18:03:41 +0530 |
---|---|---|
committer | Vikas Kushwaha <dev@vikas.rocks> | 2025-02-07 18:03:41 +0530 |
commit | 5940d14ddbdb6f68869f48351083875b11b6abf7 (patch) | |
tree | 9a5cc0f1268933ca0d5a1a7d2882e93766c25250 /.local/bin | |
parent | 18507fd21b7a7709133d8f3049c683e1abffcda2 (diff) |
preview updates
Diffstat (limited to '.local/bin')
-rwxr-xr-x | .local/bin/development/ipy | 6 | ||||
-rwxr-xr-x | .local/bin/development/rh | 5 | ||||
-rwxr-xr-x | .local/bin/fcode | 8 | ||||
-rwxr-xr-x | .local/bin/fgrp | 15 | ||||
-rwxr-xr-x | .local/bin/fm | 6 | ||||
-rwxr-xr-x | .local/bin/fmd | 27 | ||||
-rwxr-xr-x | .local/bin/fpm | 8 | ||||
-rwxr-xr-x | .local/bin/fw | 5 | ||||
-rwxr-xr-x | .local/bin/open | 6 | ||||
-rwxr-xr-x | .local/bin/preview | 9 | ||||
-rwxr-xr-x | .local/bin/search | 62 | ||||
-rwxr-xr-x | .local/bin/searchdb | 35 | ||||
-rwxr-xr-x | .local/bin/shorts/preview-bat | 3 | ||||
-rwxr-xr-x | .local/bin/shorts/preview-highlight | 3 | ||||
-rwxr-xr-x | .local/bin/text-preview | 23 |
15 files changed, 84 insertions, 137 deletions
diff --git a/.local/bin/development/ipy b/.local/bin/development/ipy index ae26eb1..1f39550 100755 --- a/.local/bin/development/ipy +++ b/.local/bin/development/ipy @@ -1,8 +1,4 @@ #!/bin/sh unset PYTHONSTARTUP - -env="${XDG_DATA_HOME:-$HOME/.local/share}/virtualenvs/main/bin/activate" -[ -f "$env" ] && . "$env" - -ipython "$@" +"${XDG_DATA_HOME:-$HOME/.local/share}/virtualenvs/main/bin/ipython" "$@" diff --git a/.local/bin/development/rh b/.local/bin/development/rh new file mode 100755 index 0000000..b65c51f --- /dev/null +++ b/.local/bin/development/rh @@ -0,0 +1,5 @@ +#!/bin/sh + +# rh - R help + +R -e "help($@)" diff --git a/.local/bin/fcode b/.local/bin/fcode index 8da7a17..073bec4 100755 --- a/.local/bin/fcode +++ b/.local/bin/fcode @@ -3,9 +3,6 @@ # fzf-unicode: get a list of emojis or unicode charecters using fzf # place your charecter files in plain text in ~/.local/share/chars/* -FZF_HIST="$HOME/.local/share/fzf/unicode_history" -mkdir -pv ~/.local/share/fzf - if [ "$OPENFLAG" = 0 ]; then notify-send fzf-unicode "$*" chosen="$(printf '%s\n' "$@" | cut -d\ -f1 | tr -d '\n')" @@ -14,6 +11,11 @@ if [ "$OPENFLAG" = 0 ]; then exit fi +[ -z "$FZF_HISTDIR" ] && + export FZF_HISTDIR="${XDG_STATE_HOME:-$HOME/.local/state}/fzf" +mkdir -pv "$FZF_HISTDIR" +export FZF_HIST="$FZF_HISTDIR/unicode_history" + cut -d ';' -f1 ~/.local/share/chars/* | fzf -m --history="$FZF_HIST" \ --header="Copy Emojis to Clipboard" --header-first \ diff --git a/.local/bin/fgrp b/.local/bin/fgrp index ddf3448..b9c0566 100755 --- a/.local/bin/fgrp +++ b/.local/bin/fgrp @@ -11,8 +11,11 @@ if [ "$OPENFLAG" = 0 ]; then esac; exit fi -mkdir -pv "${XDG_DATA_HOME:=$HOME/.local/share}/fzf" -export FZF_HIST="$XDG_DATA_HOME/fzf/grep_history" +[ -z "$FZF_HISTDIR" ] && + export FZF_HISTDIR="${XDG_STATE_HOME:-$HOME/.local/state}/fzf" +mkdir -pv "$FZF_HISTDIR" +export FZF_HIST="$FZF_HISTDIR/grep_history" + grep -Rnsi --exclude-dir=.git --exclude-dir=node_modules --color=always "$@" | fzf --ansi \ --history="$FZF_HIST" \ @@ -21,7 +24,7 @@ grep -Rnsi --exclude-dir=.git --exclude-dir=node_modules --color=always "$@" | --preview-window="hidden" \ --bind 'ctrl-v:toggle-preview,ctrl-space:toggle-preview' \ --bind "ctrl-r:reload(grep -Rns --color=always $*)" \ - --bind 'enter:execute(echo {} >> "$FZF_HIST"; OPENFLAG=0 fgrp {})' \ - --bind 'alt-e:execute(echo {} >> "$FZF_HIST"; OPENFLAG=0 OPENWITH=${EDITOR:-vi} fgrp {})' \ - --bind 'alt-o:execute(echo {} >> "$FZF_HIST"; OPENFLAG=0 OPENWITH=${OPENER:-xdg-open} fgrp {})' \ - --bind 'alt-O:execute(echo {} >> "$FZF_HIST"; OPENFLAG=0 OPENWITH=${FILES:-lf} fgrp {})' + --bind 'enter:execute(append-to-history {} "$FZF_HIST"; OPENFLAG=0 fgrp {})' \ + --bind 'alt-e:execute(append-to-history {} "$FZF_HIST"; OPENFLAG=0 OPENWITH=${EDITOR:-vi} fgrp {})' \ + --bind 'alt-o:execute(append-to-history {} "$FZF_HIST"; OPENFLAG=0 OPENWITH=${OPENER:-xdg-open} fgrp {})' \ + --bind 'alt-O:execute(append-to-history {} "$FZF_HIST"; OPENFLAG=0 OPENWITH=${FILES:-lf} fgrp {})' diff --git a/.local/bin/fm b/.local/bin/fm index 2f4fbb8..314d783 100755 --- a/.local/bin/fm +++ b/.local/bin/fm @@ -12,8 +12,10 @@ if [ "$OPENFLAG" = 0 ]; then fi; exit fi -mkdir -pv "${XDG_DATA_HOME:=$HOME/.local/share}/fzf" -export FZF_HIST="${XDG_DATA_HOME:=$HOME/.local/share}/fzf/manual_history" +[ -z "$FZF_HISTDIR" ] && + export FZF_HISTDIR="${XDG_STATE_HOME:-$HOME/.local/state}/fzf" +mkdir -pv "$FZF_HISTDIR" +export FZF_HIST="$FZF_HISTDIR/manual_history" apropos -l "${@:-.}" | fzf --history="$FZF_HIST" --prompt="man: " \ --preview='MANWIDTH=$FZF_PREVIEW_COLUMNS OPENFLAG=0 fm {}' \ diff --git a/.local/bin/fmd b/.local/bin/fmd index 72e5542..7dfb0e9 100755 --- a/.local/bin/fmd +++ b/.local/bin/fmd @@ -1,17 +1,30 @@ #!/bin/sh # fzf-media: fuzzy search media files -# Useful when you want to look through a list of video without having to -# bother with their individual supplementary files like subtitles. +# Useful for browsing video files without having to bother with +# their subtitle files. export PREVIEW="${PREVIEW:-"cat \"\$(dirname {})/.description/\${\$(basename {})%.*}.txt\" 2>/dev/null || preview {}"}" -fd -I --color=always --type=file --ignore-file="${XDG_CONFIG_HOME:-$HOME/.config}/ytignore" "$@" | sort | - fzf --multi --reverse \ - --history="${FZF_HIST:=$HOME/.local/share/fzf/media_history}" \ +find_files() { + filter="${XDG_CONFIG_HOME:-$HOME/.config}/ytignore" + if command -v fd >/dev/null; then + fd -I --color=always --type=file --ignore-file="$filter" . "$@" + else + eval "find $* -type f ! -path '*/.*' $(sed -z "s/\(\S\+\)\n/! -name '\1' /g" "$filter")" + fi +} + +[ -z "$FZF_HISTDIR" ] && + export FZF_HISTDIR="${XDG_STATE_HOME:-$HOME/.local/state}/fzf" +mkdir -pv "$FZF_HISTDIR" +export FZF_HIST="$FZF_HISTDIR/${FMD_HIST_NAME:-media_history}" + +find_files "$@" | sort | fzf --multi --reverse --history="$FZF_HIST" \ --header="${FZF_HEADER:-Browse Media Files}" --header-first \ --preview="$PREVIEW" --preview-window=hidden \ - --bind 'alt-C:execute( ffbrowser "$(mediainfo --inform="General;%Comment%" {})" )' \ + --bind 'alt-C:execute(librewolf-open "$(mediainfo --inform="General;%Comment%" {})")' \ --bind 'ctrl-o:execute(append-to-history {q} "$FZF_HIST"; ${OPENER:-xdg-open} {})' \ --bind "alt-3:change-preview($PREVIEW)" \ - --bind 'alt-#:execute($PREVIEW | less)' + --bind "alt-@:execute($PREVIEW | yad --text-info)" + diff --git a/.local/bin/fpm b/.local/bin/fpm index 8da3d35..98ab94e 100755 --- a/.local/bin/fpm +++ b/.local/bin/fpm @@ -126,7 +126,11 @@ else get_pkgs() { list_pkgs; } fi -[ -z "$FZF_HIST_DIR" ] && export FZF_HIST_DIR="$HOME/.local/share/fzf" +[ -z "$FZF_HISTDIR" ] && + export FZF_HISTDIR="${XDG_STATE_HOME:-$HOME/.local/state}/fzf" +mkdir -pv "$FZF_HISTDIR" +export FZF_HIST="$FZF_HISTDIR/package_history" + fzff() { preview=' echo "selected packages:"; @@ -135,7 +139,7 @@ fzff() { eval "$pkg_info 2>/dev/null" {1} ' fzf --ansi --multi \ - --history="${FZF_HIST_DIR:-$HOME/.local/share}/package_history" \ + --history="$FZF_HIST" \ --header="Select packages $opmsg" --header-first --prompt="$prompt> " \ --preview="$preview" --preview-window="hidden" --tiebreak='begin' \ --bind 'ctrl-v:toggle-preview,ctrl-space:toggle-preview' diff --git a/.local/bin/fw b/.local/bin/fw index 75f23af..32443b6 100755 --- a/.local/bin/fw +++ b/.local/bin/fw @@ -1,11 +1,10 @@ #!/bin/sh -export FZF_HIST="${XDG_DATA_HOME:-$HOME/.local/share}/fzf/wiki_history" +export FMD_HIST_NAME="wiki_history" export FZF_HEADER="Search local wiki files" export FZF_DEFAULT_OPTS="$FZF_DEFAULT_OPTS --delimiter='/' --with-nth=-3.." -fmd . \ +fmd \ /mnt/storage/Media/Tech/ \ /mnt/storage/Library \ /usr/share/doc/arch-wiki/html/en \ - --exclude '*.css' \ "$@" diff --git a/.local/bin/open b/.local/bin/open index 9b83265..b054729 100755 --- a/.local/bin/open +++ b/.local/bin/open @@ -42,7 +42,9 @@ for file in "$@"; do esac + [ -z "$OPEN_HISTFILE" ] && + export OPEN_HISTFILE="${XDG_STATE_HOME:-$HOME/.local/state}/open_history" file="$(realpath "$file")" - sed -i "\|^$file$|d" "${XDG_DATA_HOME:-$HOME/.local/share}/openhist" - echo "$file" >> "${XDG_DATA_HOME:-$HOME/.local/share}/openhist" + sed -i "\|^$file$|d" "$OPEN_HISTFILE" + echo "$file" >> "$OPEN_HISTFILE" done diff --git a/.local/bin/preview b/.local/bin/preview index b71d0f0..f15e884 100755 --- a/.local/bin/preview +++ b/.local/bin/preview @@ -1,22 +1,23 @@ #!/bin/sh if [ -d "$1" ]; then - if [ -x /bin/eza ] || [ -x /usr/bin/eza ]; then + if command -v eza >/dev/null; then eza -alhF --group-directories-first --color=always --icons=always -- "$1" else ls -lhAF --group-directories-first --color=always -- "$1" fi readme="$(find "$1" -maxdepth 1 -name "README.*" | head -1)" - [ -n "$readme" ] && preview "$readme" + [ -z "$readme" ] || preview "$readme" exit fi alias highlight='highlight --out-format=ansi' +alias glow='glow -s dark --width="$(( "${FZF_PREVIEW_COLUMNS:-"$(tput cols)"}" - 5 ))"' case "$1" in '') echo "USAGE: preview <FILE>" >&2; exit 1 ;; *.html) w3m -dump "$1" ;; - *.md) glow -s dark --width="${FZF_PREVIEW_COLUMNS:-"$(tput cols)"}" "$1" ;; + *.md) glow "$1" ;; # *.vim) highlight --syntax=vim --replace-tabs=2 -- "$1" ;; *.js|*.vim|*.lua) highlight -- "$1" ;; *.txt|*.description|*.srt) cat -- "$1" ;; @@ -44,7 +45,7 @@ case "$1" in filetype=$(file --dereference --brief --mime-type "$1") case $filetype in *html) w3m -dump "$1" ;; - text/markdown) glow -s dark -w "$(tput cols)" "$1" ;; + text/markdown) glow "$1" ;; application/json) highlight --syntax=json --replace-tabs=2 -- "$1" ;; text/*) highlight --force -- "$1" ;; audio/*|video/*|image/*) mediainfo -- "$1" ;; diff --git a/.local/bin/search b/.local/bin/search deleted file mode 100755 index d9c1a3d..0000000 --- a/.local/bin/search +++ /dev/null @@ -1,62 +0,0 @@ -#!/bin/sh - -help() { echo "search - search tool for unix users - -USAGE: - search [OPTION]... <QUERY> - -OPTIONS: - -h show this help message"; } - -err() { printf 'search: %s\n' "$@" >&2; exit 1; } -while getopts 'h' o; do case "$o" in - h) help >&2; exit ;; - *) err "invalid option -- '$OPTARG'" ;; -esac done -shift $((OPTIND - 1)) - -if [ "$PREVIEWFLAG" = 0 ]; then - [ -z "$INDEX" ] && export INDEX="$(echo "$*" | cut -d: -f1)" - [ -z "$LINE" ] && export LINE="$(echo "$*" | cut -d: -f2-)" - - case "$INDEX" in - wiki) "${FILE_HANDLER:-preview}" "/usr/share/doc/$LINE" ;; - docs) "${FILE_HANDLER:-preview}" "$HOME/.local/share/Zeal/Zeal/docsets/$LINE" ;; - media) "${FILE_HANDLER:-preview}" "/run/media/$USER/Storage/Media/$LINE" ;; - library) "${FILE_HANDLER:-preview}" "/run/media/$USER/Storage/Library/$LINE" ;; - tldr) tldr --color=always "$LINE" ;; - word) sdcv-dict "$LINE" ;; - man) - page="${LINE%%)*}"; name="${page%%[ (]*}"; section="${page#*(}" - if [ "$name" != "$section" ]; then - man "$section" "$name" - else - man "$name" - fi - ;; - pacman) pacman --color=always -Si "${LINE%% *}" ;; - esac - exit -fi - -if [ "$OPENFLAG" = 0 ]; then - export INDEX="$(echo "$*" | cut -d: -f1)" - export LINE="$(echo "$*" | cut -d: -f2-)" - export FILE_HANDLER="open" - - case "$INDEX" in - wiki|docs|web-docs|media|library|man) PREVIEWFLAG=0 search ;; - *) PREVIEWFLAG=0 search | less -r ;; - esac - exit -fi - -[ "$#" -lt 1 ] && help >&2 && exit 1 -FZF_HIST="$HOME/.local/share/fzf/search_history" - -cd "${SEARCHDB:-$HOME/.cache/search}" || exit -mkdir -pv ~/.local/share/fzf -grep -Rsi --color=always "$@" | fzf --ansi \ - --history="$FZF_HIST" \ - --preview="PREVIEWFLAG=0 search {}" \ - --bind 'enter:execute(echo {} >> $FZF_HIST; OPENFLAG=0 search {})' diff --git a/.local/bin/searchdb b/.local/bin/searchdb deleted file mode 100755 index 57e3fa8..0000000 --- a/.local/bin/searchdb +++ /dev/null @@ -1,35 +0,0 @@ -#!/bin/sh - -help() { - echo "searchdb - update local search database - -USAGE: - searchdb [OPTION]... - -OPTIONS: - -x clear all databases - -h show this help message" -} - -err() { printf 'searchdb: %s\n' "$@" >&2; exit 1; } -while getopts 'xh' o; do case "$o" in - x) rm -rf ~/.cache/search; exit ;; - h) help >&2; exit ;; - *) err "invalid option -- '$OPTARG'" ;; -esac done -shift $((OPTIND - 1)) - -rm -rf ~/.cache/search -export SEARCHDB="$HOME/.cache/search" -mkdir -p "$SEARCHDB" || exit -ln -sf /usr/share/dict/words "$SEARCHDB/word" - -tldr --list > "$SEARCHDB/tldr" -apropos . > "$SEARCHDB/man" -pacman -Ss | sed -e "N;s/\n\s*/ => /" > "$SEARCHDB/pacman" - -list() { find -L "$@" ! -wholename '*/.git*' -printf "%P\n"; } -list /usr/share/doc > "$SEARCHDB/wiki" -list ~/.local/share/Zeal/Zeal/docsets > "$SEARCHDB/docs" -list -L "/run/media/$USER/Storage/Media" > "$SEARCHDB/media" -list "/run/media/$USER/Storage/Library" > "$SEARCHDB/library" diff --git a/.local/bin/shorts/preview-bat b/.local/bin/shorts/preview-bat deleted file mode 100755 index 43d1532..0000000 --- a/.local/bin/shorts/preview-bat +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/sh - -bat --tabs=2 --style=plain --color=always "$@" diff --git a/.local/bin/shorts/preview-highlight b/.local/bin/shorts/preview-highlight deleted file mode 100755 index 0972538..0000000 --- a/.local/bin/shorts/preview-highlight +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/sh - -highlight --force --stdout --replace-tabs=2 --out-format=ansi "$@" diff --git a/.local/bin/text-preview b/.local/bin/text-preview new file mode 100755 index 0000000..4d0931d --- /dev/null +++ b/.local/bin/text-preview @@ -0,0 +1,23 @@ +#!/bin/sh + +# A simple text previewer. +# Useful in certain cases when you don't want to use your glorified previewer +# and just see the raw text content of a processable document like a markdown +# file. + +[ -f "$1" ] && { + if command -v highlight >/dev/null; then + highlight --out-format=ansi -- "$1" + elif command -v bat >/dev/null; then + bat -- "$1" + else + cat -- "$1" + fi + exit +} + +if command -v eza >/dev/null; then + eza -alhF --group-directories-first --color=always --icons=always -- "$1" +else + ls -lhAF --group-directories-first --color=always -- "$1" +fi |