Ebookrack Finder
Interactively select and open a book in your Calibre library from the terminal
The ebk-find command launches a fuzzy finder
program, presenting the titles, authors, and tags of all the books in
your library. As you type in key words or names, the list gets narrowed
down. When you press Enter, the selected e-book gets opened
in your default viewer via xdg-open.
See the quick start guide for how to get started.
Why not just use Calibre?
If you’re more likely to have a terminal open at any given moment than the Calibre app, opening a book in Calibre is a multi-step process that involves several context switches and takes a several seconds, even with keyboard shortcuts. ebk-find is designed to open your book and get out of the way as fast as possible.
It can also be used on a system that doesn’t have Calibre installed, e.g. if the library was created on a different system and copied across or mounted via USB drive.
Why not use the file manager (or find or
fzf)?
This is certainly an option, especially if you have a file manager that lets you save and re-run searches. But the file paths contain extraneous information (database IDs) and don’t include all authors, full titles, or any subject tags. Unless your file manager also supports querying the metadata of various e-book formats, ebk-find provides more precise filtering.
What operating systems does it run on?
ebk-find is designed for systems implementing the freedesktop.org specifications, typically Linux or BSD desktops. It should work on other systems, with some caveats.
Can it only be used for Calibre libraries?
ebk-find should work for any library with the following file structure:
path/to/library
├── Author A
│ └── Title X
│ ├── metadata.opf
│ ├── title-x.epub
│ └── title-x.pdf
└── Author B
├── Title Y
│ ├── metadata.opf
│ └── title-y.pdf
└── Title Z
├── metadata.opf
└── title-z.mobi
where:
- the book directory must be two levels below the library root;
- it must contain a file named “metadata.opf” in OPF format;
- the OPF document must contain at least a “dc:title” element;
- the book directory can contain zero or more e-book files in any format;
- the e-book files can have any file name that does not end in “.opf” or “.jpg”.