summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTheSiahxyz <164138827+TheSiahxyz@users.noreply.github.com>2026-02-10 15:10:33 +0900
committerTheSiahxyz <164138827+TheSiahxyz@users.noreply.github.com>2026-02-10 15:10:33 +0900
commit9d1f41397de1f58f158f9af0b73ed9d30e5027a5 (patch)
tree09feedd5c811de5e30654f028d1d381e6c77f589
parent7cddd694437fce9e61849d3a98349cf0fe1faffb (diff)
modified lf/scope, modified bin/dmenusmbadd, modified bin/rgafiles, modified bin/ylogHEADmaster
-rwxr-xr-xar/.config/lf/scope30
-rwxr-xr-xar/.local/bin/dmenusmbadd12
-rwxr-xr-xar/.local/bin/rgafiles10
-rwxr-xr-xar/.local/bin/ylog51
4 files changed, 73 insertions, 30 deletions
diff --git a/ar/.config/lf/scope b/ar/.config/lf/scope
index b0a596f..9d2f876 100755
--- a/ar/.config/lf/scope
+++ b/ar/.config/lf/scope
@@ -10,33 +10,41 @@ image() {
if [ -f "$1" ] && [ -n "$DISPLAY" ] && [ -z "$WAYLAND_DISPLAY" ] && command -V ueberzugpp >/dev/null 2>&1; then
printf '{"action": "add", "identifier": "PREVIEW", "x": "%s", "y": "%s", "width": "%s", "height": "%s", "scaler": "contain", "path": "%s"}\n' "$4" "$(($5 + 1))" "$(($2 - 1))" "$(($3 - 2))" "$1" >"$FIFO_UEBERZUGPP"
mediainfo --Output="Video;%Duration/String%" "$6"
+ elif command -V chafa >/dev/null 2>&1; then
+ chafa -s "$4"x"$3" "$1"
else
mediainfo "$6"
fi
}
+thumb_cache() {
+ printf '%s/lf/thumb.%s' \
+ "${XDG_CACHE_HOME:-$HOME/.cache}" \
+ "$(stat --printf '%n\0%i\0%F\0%s\0%W\0%Y' -- "$(readlink -f "$1")" | sha256sum | cut -d' ' -f1)"
+}
+
# Note that the cache file name is a function of file information, meaning if
# an image appears in multiple places across the machine, it will not have to
# be regenerated once seen.
case "$(file --dereference --brief --mime-type -- "$1")" in
image/avif)
- CACHE="${XDG_CACHE_HOME:-$HOME/.cache}/lf/thumb.$(stat --printf '%n\0%i\0%F\0%s\0%W\0%Y' -- "$(readlink -f "$1")" | sha256sum | cut -d' ' -f1)"
+ CACHE="$(thumb_cache "$1")"
[ ! -f "$CACHE" ] && magick "$1" "$CACHE.jpg"
image "$CACHE.jpg" "$2" "$3" "$4" "$5" "$1"
;;
image/vnd.djvu)
- CACHE="${XDG_CACHE_HOME:-$HOME/.cache}/lf/thumb.$(stat --printf '%n\0%i\0%F\0%s\0%W\0%Y' -- "$(readlink -f "$1")" | sha256sum | cut -d' ' -f1)"
+ CACHE="$(thumb_cache "$1")"
[ ! -f "$CACHE" ] && djvused "$1" -e 'select 1; save-page-with /dev/stdout' | magick -density 200 - "$CACHE.jpg" >/dev/null 2>&1
image "$CACHE.jpg" "$2" "$3" "$4" "$5" "$1"
;;
image/svg+xml)
- CACHE="${XDG_CACHE_HOME:-$HOME/.cache}/lf/thumb.$(stat --printf '%n\0%i\0%F\0%s\0%W\0%Y' -- "$(readlink -f "$1")" | sha256sum | cut -d' ' -f1)"
- [ ! -f "$CACHE" ] && inkscape --convert-dpi-method=none -o "$CACHE.png" --export-overwrite -D --export-png-color-mode=RGBA_16 "$1"
+ CACHE="$(thumb_cache "$1")"
+ [ ! -f "$CACHE.png" ] && rsvg-convert -w "$(($2 * 10))" "$1" -o "$CACHE.png"
image "$CACHE.png" "$2" "$3" "$4" "$5" "$1"
;;
image/x-xcf)
- CACHE="${XDG_CACHE_HOME:-$HOME/.cache}/lf/thumb.$(stat --printf '%n\0%i\0%F\0%s\0%W\0%Y' -- "$(readlink -f "$1")" | sha256sum | awk '{print $1}')"
+ CACHE="$(thumb_cache "$1")"
[ ! -f "$CACHE.jpg" ] && magick "$1[0]" "$CACHE.jpg"
image "$CACHE.jpg" "$2" "$3" "$4" "$5" "$1"
;;
@@ -46,28 +54,28 @@ text/troff) man ./ "$1" | col -b ;;
text/* | */xml | application/json | application/java* | application/x-ndjson) bat -p --theme ansi --terminal-width "$(($4 - 2))" -f "$1" ;;
audio/*) mediainfo "$1" || exit 1 ;;
video/* | application/octet-stream | application/vnd.rn-realmedia)
- CACHE="${XDG_CACHE_HOME:-$HOME/.cache}/lf/thumb.$(stat --printf '%n\0%i\0%F\0%s\0%W\0%Y' -- "$(readlink -f "$1")" | sha256sum | cut -d' ' -f1)"
+ CACHE="$(thumb_cache "$1")"
[ ! -f "$CACHE" ] && ffmpegthumbnailer -i "$1" -o "$CACHE" -s 0
image "$CACHE" "$2" "$3" "$4" "$5" "$1"
;;
*/pdf)
- CACHE="${XDG_CACHE_HOME:-$HOME/.cache}/lf/thumb.$(stat --printf '%n\0%i\0%F\0%s\0%W\0%Y' -- "$(readlink -f "$1")" | sha256sum | cut -d' ' -f1)"
+ CACHE="$(thumb_cache "$1")"
[ ! -f "$CACHE.jpg" ] && pdftoppm -jpeg -f 1 -singlefile "$1" "$CACHE"
image "$CACHE.jpg" "$2" "$3" "$4" "$5" "$1"
;;
application/vnd.openxmlformats-officedocument.presentationml.presentation)
- CACHE="${XDG_CACHE_HOME:-$HOME/.cache}/lf/thumb.$(stat --printf '%n\0%i\0%F\0%s\0%W\0%Y' -- "$(readlink -f "$1")" | sha256sum | cut -d' ' -f1)"
+ CACHE="$(thumb_cache "$1")"
[ ! -f "$CACHE.jpg" ] && unoconv -f jpg -o "$CACHE.jpg" "$1"
image "$CACHE.jpg" "$2" "$3" "$4" "$5" "$1"
;;
application/x-hwp)
- CACHE="${XDG_CACHE_HOME:-$HOME/.cache}/lf/thumb.$(stat --printf '%n\0%i\0%F\0%s\0%W\0%Y' -- "$(readlink -f "$1")" | sha256sum | cut -d' ' -f1)"
+ CACHE="$(thumb_cache "$1")"
OUT_DIR="$(dirname "$CACHE")"
[ ! -f "$CACHE.jpg" ] && libreoffice --headless --convert-to jpg --outdir "$OUT_DIR" "$1" && mv "$OUT_DIR/$(basename "$1" .hwp).jpg" "$CACHE.jpg"
image "$CACHE.jpg" "$2" "$3" "$4" "$5" "$1"
;;
*/epub+zip | */mobi*)
- CACHE="${XDG_CACHE_HOME:-$HOME/.cache}/lf/thumb.$(stat --printf '%n\0%i\0%F\0%s\0%W\0%Y' -- "$(readlink -f "$1")" | sha256sum | cut -d' ' -f1)"
+ CACHE="$(thumb_cache "$1")"
[ ! -f "$CACHE.jpg" ] && gnome-epub-thumbnailer "$1" "$CACHE.jpg"
image "$CACHE.jpg" "$2" "$3" "$4" "$5" "$1"
;;
@@ -76,7 +84,7 @@ application/*zip) atool --list -- "$1" ;;
*opendocument*) odt2txt "$1" ;;
application/pgp-encrypted) gpg -d -- "$1" ;;
application/vnd.openxmlformats-officedocument.wordprocessingml.document)
- CACHE="${XDG_CACHE_HOME:-$HOME/.cache}/lf/thumb.$(stat --printf '%n\0%i\0%F\0%s\0%W\0%Y' -- "$(readlink -f "$1")" | sha256sum | cut -d' ' -f1)"
+ CACHE="$(thumb_cache "$1")"
[ ! -f "$CACHE.txt" ] && pandoc "$1" -t plain -o "$CACHE.txt"
bat -p --theme ansi --terminal-width "$(($4 - 2))" -f "$CACHE.txt"
;;
diff --git a/ar/.local/bin/dmenusmbadd b/ar/.local/bin/dmenusmbadd
index d1b76cd..b4b720b 100755
--- a/ar/.local/bin/dmenusmbadd
+++ b/ar/.local/bin/dmenusmbadd
@@ -32,9 +32,15 @@ else
target_name="$folder_name"
fi
- folder_path=$(for path in $base_path; do
- find "$path" -type d -iname "$target_name" -print 2>/dev/null
- done | sort -r | dmenu -l 10 -p "Select the folder to share:")
+ if command -v fd >/dev/null 2>&1; then
+ # Use fd if available (fastest)
+ folder_path=$(for path in $base_path; do
+ fd -t d -d 3 -i "^$target_name$" "$path" 2>/dev/null
+ done | sed 's:/$::' | sort -r | dmenu -l 10 -p "Select the folder to share:")
+ else
+ # Fallback to parallel find with depth limit
+ folder_path=$(printf "%s\n" $base_path | xargs -P 3 -I {} find {} -maxdepth 3 -type d -iname "$target_name" -print 2>/dev/null | sed 's:/$::' | sort -r | dmenu -l 10 -p "Select the folder to share:")
+ fi
[ -z "$folder_path" ] && notify-send "📁Folder not found." && exit 1
fi
diff --git a/ar/.local/bin/rgafiles b/ar/.local/bin/rgafiles
index 1a396df..fe61604 100755
--- a/ar/.local/bin/rgafiles
+++ b/ar/.local/bin/rgafiles
@@ -37,16 +37,17 @@ search_term() {
# Construct the preview command
preview_cmd=$(printf "rga %s --pretty --context 10 '%s' {}" "$case_flag" "$*")
rga_output=$(rga --follow --no-ignore --hidden --text --max-count=1 ${case_flag:+$case_flag} --files-with-matches --no-messages \
+ --glob '!**/.cache/*' \
--glob '!**/.git/*' \
- --glob '!**/node_modules/*' \
+ --glob '!**/.github/*' \
--glob '!**/.next/*' \
- --glob '!**/dist/*' \
+ --glob '!**/.venv/*' \
--glob '!**/build/*' \
- --glob '!**/.cache/*' \
--glob '!**/coverage/*' \
+ --glob '!**/dist/*' \
+ --glob '!**/node_modules/*' \
--glob '!**/target/*' \
--glob '!**/vendor/*' \
- --glob '!**/.venv/*' \
--glob '!**/venv/*' \
"$*")
@@ -83,6 +84,7 @@ list_or_open_project_files() {
rga_result=$(rga --follow --no-ignore --hidden --text --max-count=1 --files-with-matches --no-messages \
--glob '!**/.cache/*' \
--glob '!**/.git/*' \
+ --glob '!**/.github/*' \
--glob '!**/.next/*' \
--glob '!**/.venv/*' \
--glob '!**/build/*' \
diff --git a/ar/.local/bin/ylog b/ar/.local/bin/ylog
index c56df36..8ea8808 100755
--- a/ar/.local/bin/ylog
+++ b/ar/.local/bin/ylog
@@ -29,11 +29,12 @@ Options:
-s SCOPE Select log scope (default: all)
all : recordings + access + hidden + diary + peertube
- recordings : recordings.* logs only
access : access.* logs only
- hidden : hidden.access.* logs only
diary : diary.* logs only
+ hidden : hidden.access.* logs only
+ media : media.access.* logs only
peertube : peertube.* logs only
+ recordings : recordings.* logs only
-n Disable Firefox exclusion (by default, Firefox lines are excluded)
@@ -53,14 +54,15 @@ Options:
Examples:
ylog # All logs, last 10 lines each
- ylog -s recordings # Recordings logs only, last 10 lines each
ylog -s diary # Diary logs only, last 10 lines each
- ylog -s peertube # Peertube logs only, last 10 lines each
+ ylog -s media # Media logs only, last 10 lines each
+ ylog -s peertube # Peertube logs only, last 10 lines each
+ ylog -s recordings # Recordings logs only, last 10 lines each
ylog -c kr -t 1.2.3.4 # Search specific IP in Korean logs
- ylog -c kr -s diary # Korean diary logs only
+ ylog -c kr -s diary # Korean diary logs only
ylog -t all -l 50 # All logs, last 50 lines each
ylog -d 1 # Logs from 1 day ago only
- ylog -d ~2 # Logs from 2 days ago to today
+ ylog -d ~2 # Logs from 2 days ago to today
EOF
exit 0
}
@@ -142,14 +144,39 @@ pick_files() {
;;
esac
fi
+ # media logs: similar structure to recordings
+ if [ "$SCOPE" = "media" ] || [ "$SCOPE" = "all" ]; then
+ if [ "$COUNTRY" = "all" ]; then
+ for q in "$LOG_DIR/media.access.log" "$LOG_DIR/media.access.log".*; do
+ [ -e "$q" ] && printf "%s\n" "$q"
+ done
+ fi
+ case "$COUNTRY" in
+ kr) for q in "$LOG_DIR/media.kr.log" "$LOG_DIR/media.kr.log".*; do [ -e "$q" ] && printf "%s\n" "$q"; done ;;
+ us) for q in "$LOG_DIR/media.us.log" "$LOG_DIR/media.us.log".*; do [ -e "$q" ] && printf "%s\n" "$q"; done ;;
+ all)
+ for p in media.kr.log media.us.log; do
+ for q in "$LOG_DIR/$p" "$LOG_DIR/$p".*; do [ -e "$q" ] && printf "%s\n" "$q"; done
+ done
+ ;;
+ esac
+ fi
# peertube logs
if [ "$SCOPE" = "peertube" ] || [ "$SCOPE" = "all" ]; then
- for q in "$LOG_DIR/peertube.access.log" "$LOG_DIR/peertube.access.log".*; do
- [ -e "$q" ] && printf "%s\n" "$q"
- done
- for q in "$LOG_DIR/peertube.error.log" "$LOG_DIR/peertube.error.log".*; do
- [ -e "$q" ] && printf "%s\n" "$q"
- done
+ if [ "$COUNTRY" = "all" ]; then
+ for q in "$LOG_DIR/peertube.access.log" "$LOG_DIR/peertube.access.log".*; do
+ [ -e "$q" ] && printf "%s\n" "$q"
+ done
+ fi
+ case "$COUNTRY" in
+ kr) for q in "$LOG_DIR/peertube.kr.log" "$LOG_DIR/peertube.kr.log".*; do [ -e "$q" ] && printf "%s\n" "$q"; done ;;
+ us) for q in "$LOG_DIR/peertube.us.log" "$LOG_DIR/peertube.us.log".*; do [ -e "$q" ] && printf "%s\n" "$q"; done ;;
+ all)
+ for p in peertube.kr.log peertube.us.log; do
+ for q in "$LOG_DIR/$p" "$LOG_DIR/$p".*; do [ -e "$q" ] && printf "%s\n" "$q"; done
+ done
+ ;;
+ esac
fi
}