diff options
| author | TheSiahxyz <164138827+TheSiahxyz@users.noreply.github.com> | 2026-02-10 15:10:33 +0900 |
|---|---|---|
| committer | TheSiahxyz <164138827+TheSiahxyz@users.noreply.github.com> | 2026-02-10 15:10:33 +0900 |
| commit | 9d1f41397de1f58f158f9af0b73ed9d30e5027a5 (patch) | |
| tree | 09feedd5c811de5e30654f028d1d381e6c77f589 /ar | |
| parent | 7cddd694437fce9e61849d3a98349cf0fe1faffb (diff) | |
Diffstat (limited to 'ar')
| -rwxr-xr-x | ar/.config/lf/scope | 30 | ||||
| -rwxr-xr-x | ar/.local/bin/dmenusmbadd | 12 | ||||
| -rwxr-xr-x | ar/.local/bin/rgafiles | 10 | ||||
| -rwxr-xr-x | ar/.local/bin/ylog | 51 |
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 } |
