summaryrefslogtreecommitdiff
path: root/.local/bin
diff options
context:
space:
mode:
authorVikas Kushwaha <dev@vikas.rocks>2025-02-07 18:03:41 +0530
committerVikas Kushwaha <dev@vikas.rocks>2025-02-07 18:03:41 +0530
commit5940d14ddbdb6f68869f48351083875b11b6abf7 (patch)
tree9a5cc0f1268933ca0d5a1a7d2882e93766c25250 /.local/bin
parent18507fd21b7a7709133d8f3049c683e1abffcda2 (diff)
preview updates
Diffstat (limited to '.local/bin')
-rwxr-xr-x.local/bin/development/ipy6
-rwxr-xr-x.local/bin/development/rh5
-rwxr-xr-x.local/bin/fcode8
-rwxr-xr-x.local/bin/fgrp15
-rwxr-xr-x.local/bin/fm6
-rwxr-xr-x.local/bin/fmd27
-rwxr-xr-x.local/bin/fpm8
-rwxr-xr-x.local/bin/fw5
-rwxr-xr-x.local/bin/open6
-rwxr-xr-x.local/bin/preview9
-rwxr-xr-x.local/bin/search62
-rwxr-xr-x.local/bin/searchdb35
-rwxr-xr-x.local/bin/shorts/preview-bat3
-rwxr-xr-x.local/bin/shorts/preview-highlight3
-rwxr-xr-x.local/bin/text-preview23
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