dmenu local book library

Here's a little script, that uses dmenu to open books store on your computer and keeps track of visited books. It's probably slow and ugly, but it works for me ☻.

#!/bin/bash

books_history=$HOME/.open_book_history
tmp_history=/tmp/.open_book_history

books=$(find $HOME/books/)

# create a history file if doesn't exsit yet
touch $books_history

# awk is used to print unique paths without breaking the initial order
target=$(echo "$books" | awk '!x[$0]++' $books_history - \
	     | dmenu -l 20 -i -p book:)

if [[ -n $target ]]; then
    echo "$target" | awk '!x[$0]++' - $books_history > $tmp_history
    mv $tmp_history $books_history
    zathura "$target"
fi

Created: 2021-11-18 Чт 20:19