-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdocmenu
More file actions
executable file
·28 lines (21 loc) · 792 Bytes
/
docmenu
File metadata and controls
executable file
·28 lines (21 loc) · 792 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#!/usr/bin/env bash
#
# file: docmenu
# author: Brian Buccola <brian.buccola@gmail.com>
# description: dmenu script to open a PDF document with MuPDF.
shopt -s nullglob globstar
# Set documents directory.
docs_dir="$HOME/docs"
# Get a list of PDFs, stripping prefix and suffix.
docs=( "$docs_dir"/{books,papers}/*.pdf )
docs=( "${docs[@]#$docs_dir/books/}" )
docs=( "${docs[@]#$docs_dir/papers/}" )
docs=( "${docs[@]%.pdf}" )
# Pass the list to dmenu to select a PDF.
doc=$(printf '%s\n' "${docs[@]}" | dmenu -p doc: "$@")
# If the user cancels dmenu, just exit.
[[ -n "$doc" ]] || exit
# Look for the doc in books, otherwise in papers.
[[ -f "$docs_dir"/books/"$doc".pdf ]] && doc="$docs_dir/books/$doc".pdf || doc="$docs_dir/papers/$doc".pdf
# Open the PDF.
mupdf "$doc"