diff --git a/shell/traverse_pdf.sh b/shell/traverse_pdf.sh index e46dbfe..5207848 100755 --- a/shell/traverse_pdf.sh +++ b/shell/traverse_pdf.sh @@ -1,14 +1,19 @@ #!/usr/bin/env bash -# Directory to search (default: current directory or given argument) -SEARCH_DIR="${1:-.}" +# Directories to search (default: current directory if none provided) +SEARCH_DIRS=("${@:-.}") -# Your preferred PDF viewer (adjust as needed) +# Your preferred PDF viewer PDF_VIEWER="zathura" # Ensure fzf and the viewer exist command -v fzf >/dev/null 2>&1 || { echo "fzf not found"; exit 1; } command -v "$PDF_VIEWER" >/dev/null 2>&1 || { echo "$PDF_VIEWER not found"; exit 1; } -# Find all PDFs recursively and feed them to fzf in a loop -find "$SEARCH_DIR" -type f -iname '*.pdf' | sort | fzf --multi --bind "enter:execute-silent($PDF_VIEWER {} &)" --preview "pdftotext {} - | head -n 20" --preview-window=down:wrap +# Find all PDFs recursively, sorted by modification time (newest first) +find "${SEARCH_DIRS[@]}" -type f -iname '*.pdf' -printf '%T@ %p\n' | \ + sort -nr | cut -d' ' -f2- | \ + fzf --multi \ + --bind "enter:execute-silent($PDF_VIEWER {} &)" \ + --preview "pdftotext {} - | head -n 20" \ + --preview-window=down:wrap