aboutsummaryrefslogtreecommitdiff
path: root/dmenu-vimwiki-open
diff options
context:
space:
mode:
authorLukasz Kasprzak <lukasz.kasprzak@pm.me>2026-04-14 22:32:43 +0200
committerLukasz Kasprzak <lukasz.kasprzak@pm.me>2026-04-14 22:32:43 +0200
commit83f7fe4b8402bab171d110703a1b1115efbc9b28 (patch)
tree19110702c7d740f6bd8ee4f5d2ebcb97442be237 /dmenu-vimwiki-open
parent51d43498b07dc97d795947964534f0903cd05db5 (diff)
downloadbin-83f7fe4b8402bab171d110703a1b1115efbc9b28.tar.gz
bin-83f7fe4b8402bab171d110703a1b1115efbc9b28.zip
cleaned up many scrits and deleted some that were of no use; renamed a lot
Diffstat (limited to 'dmenu-vimwiki-open')
-rwxr-xr-xdmenu-vimwiki-open75
1 files changed, 0 insertions, 75 deletions
diff --git a/dmenu-vimwiki-open b/dmenu-vimwiki-open
deleted file mode 100755
index e8c4891..0000000
--- a/dmenu-vimwiki-open
+++ /dev/null
@@ -1,75 +0,0 @@
-#!/usr/bin/env bash
-set -euo pipefail
-
-# Optional dmenu theming
-# shellcheck disable=SC1090
-[[ -r "${HOME}/.local/bin/dmenu-theming" ]] && . "${HOME}/.local/bin/dmenu-theming"
-
-DMENU="${DMENU:-dmenu}"
-PROMPT="${PROMPT:-VimWiki: }"
-EDITOR_CMD="${EDITOR_CMD:-vim}"
-TERM_CMD="${TERM_CMD:-st -e}"
-
-# Set this to your VimWiki root directory
-VIMWIKI_ROOT="${VIMWIKI_ROOT:-${HOME}/vimwiki}" # <-- CHANGE if needed
-
-CACHE_DIR="${XDG_CACHE_HOME:-${HOME}/.cache}/dmenu"
-CACHE_FILE="${CACHE_DIR}/vimwiki_files.txt"
-CACHE_TTL_SECONDS="${CACHE_TTL_SECONDS:-30}" # how long to trust the cache
-
-mkdir -p "$CACHE_DIR"
-
-now_epoch() { date +%s; }
-
-cache_is_fresh() {
- [[ -r "$CACHE_FILE" ]] || return 1
- local mtime
- mtime="$(stat -c %Y "$CACHE_FILE" 2>/dev/null || echo 0)"
- local age=$(( $(now_epoch) - mtime ))
- [[ "$age" -le "$CACHE_TTL_SECONDS" ]]
-}
-
-build_cache() {
- if command -v fd >/dev/null 2>&1; then
- # Relative paths, ignore common junk
- (cd "$VIMWIKI_ROOT" && fd -t f -H \
- -E .git -E .cache -E node_modules -E .venv -E __pycache__ \
- -E attachments -E media \
- .) > "$CACHE_FILE"
- else
- (cd "$VIMWIKI_ROOT" && find . -type f \
- ! -path './.git/*' \
- ! -path './.cache/*' \
- ! -path './node_modules/*' \
- ! -path './.venv/*' \
- ! -path './__pycache__/*' \
- ! -path './attachments/*' \
- ! -path './media/*' \
- -print | sed 's|^\./||') > "$CACHE_FILE"
- fi
-
- # Sort for stable menu
- sort -u -o "$CACHE_FILE" "$CACHE_FILE"
-}
-
-[[ -d "$VIMWIKI_ROOT" ]] || { printf "ERROR: VimWiki root not found: %s\n" "$VIMWIKI_ROOT" >&2; exit 1; }
-
-cache_is_fresh || build_cache
-
-picked="$(
- cat "$CACHE_FILE" \
- | ${DMENU} -i -l 20 -p "$PROMPT" ${lines:-} ${colors:-} ${font:-} \
- || true
-)"
-[[ -n "$picked" ]] || exit 0
-
-# Safety: no parent traversal
-case "$picked" in
- *'..'* ) exit 0 ;;
-esac
-
-target="${VIMWIKI_ROOT}/${picked}"
-[[ -e "$target" ]] || { printf "ERROR: missing: %s\n" "$target" >&2; exit 1; }
-
-exec ${TERM_CMD} "$EDITOR_CMD" "$target"
-