Calibre 4.0
calibre-ebook.com
calibre-ebook.com
I really appreciate all the work the dev puts into it, but it’s a slow app that just isn’t very usable. It’s not just that it’s ugly, it’s that it’s poorly designed. And yet, nothing else even comes close to doing what it does.
I even wrote out a spec for a similar app that was built using a more modern framework/usable interface, that some friends and I could potentially build, but the task was so monumental and the return on investment (and I’m not even talking about money) seemed so small, we shelved it.
That said, I would be remiss if I didn’t mention that DeDRM is the reason a lot of us use the app — I know it’s a key for me — and that does have an excellent CLI tool.
There are also some good iOS apps that work with the book server, for accessing lots of ebooks. Even then tho, those apps are labors of love where the core audience is both critical and shockingly cheap (I say shockingly b/c many pay thousands on ebooks and ereaders a year — it’s an enthusiast market). One look at the MobileReads forums (a fantastic resource) for any specific app, and I kind of understand why we don’t have a “good” Calibre that is OSS for paid for that matter.
Let me guess, some Electron monstrosity that looks like a web site but runs on a desktop?
My initial design doc was going to be Swift-based and in my “pie-in-the-sky” goal, it would be a native macOS app.
But part of the value of Calibre is that it is cross-platform and so yes, Electron was a strong option because for cross-platform development, I definitely don’t think it is worse than QT or Java. There are a lot of bad Electron applications, but apps like Visual Studio Code* prove that as with anything, you can make a really fantastic experience if you put the right work into it.
But it doesn’t matter anyway. The amount of work that would be required would be monumental and the payoff wouldn’t be worth it. Which is why I have tremendous respect for the Calibre developer. I don’t agree with his design decisions and I wish the app was more usable, but I fully acknowledge that nothing else exists and that no one else is willing to do the work to make a better version.
* Disclosure: I work at Microsoft but not on VS Code. I have huge respect for the VS Code and the Electron team, however.
I think what's going on here is that Calibre is implemented for free in spare time in Python with an eye toward being accessible to all audiences and feature complete. So, it's neither super fast, nor super pretty, nor super elegant. But everyone can build up a library of ebooks without much effort and then browse around and read them, highlight them, and sort them in various ways.
You're welcome to submit patches that hide everything behind a hamburger menu and make the scrollbars vanish and crap like that.
As I said, I’m super grateful Calibre exists and I think software is better for it existing. I also fully understand why there haven’t been other attempts to do what Calibre does — because it’s a shitload of work and the userbase is niche.
Plenty of people don't have good design taste but can still be useful software, so I hope it doesn't deter them.
Although there may be a correlation between poor interface design being reflected in the backend. From naming schemes, to modelling the data, to managing complexity, saying no to certain features, etc are all things that cross over into the design world.
My solution was to use a different Mac app to “force” Calibre to ignore the systemwide setting and use its light mode instead.
I do think it’s a shame the codebase is such that seems to prevent meaningful contributions/collaboration that might improve things — but Kovid has done something amazing, make no mistake.
And more to the point — we all complain about Calibre, yet no other app exists that even does a fraction of what it does.
The only reason we are here talking about it is because its free software. Its not even about price, its about how Calibre evolved thanks to a community that grew around it. Maybe someone could start a proprietary ebook library program, charge for it, and make a living that way. But it would get orders of magnitude less usage and have done that much less good for the whole of mankind as a result. And the work of one person, or even a small team, is unlikely to accomplish all the features Calibre has because few people will recognize the collective needs of all book readers the way an open bug tracker and merge requests can.
This. Or:
"I WANT it to be better."
It's sad that the response to that is often "Stop bitching or stop using it", "Make it yourself", or "If you don't like it why don't you go somewhere else?" (and it's often from other users who try to speak on behalf on the developers.)
Nobody cares about the myriads of ugly, bad designed apps that are not useful.
The problem is that, even if true, this chestnut doesn't say anything about whether the criticism is justified or whether the degree and correctness of criticism is commensurate what one would expect of a quality product given the language/software's usage.
I remember trying Calibre years ago and figure out how to use it was enough trouble that I just shelved it. Your post reads as though UX doesn't matter much, but that's far from reality.
Perhaps it just clicked with me easier than with others, but other than the "bare bones" interface, I think it's a reasonably intuitive program.
Well it was Python. The number of C extensions means they can't go back without many hours of work and hundreds of thousands (or millions) of LOC cleaned and tested.
For instance, I recall a LZMA decompression C/Python script in the Calibre source. Python 3.3 added LZMA in the stdlib, but they're stuck maintaining their handrolled one.
I'm missing details. I learned quite a bit from that codebase awhile back.
chrome.exe --app="https://url.of.calibre.web"
Removes the top bar and shows the favicon as the application icon. You can create a shortcut/.desktop and it'll act pretty much like an electron app would.
/usr/bin/calibre-server --daemonize --enable-auth --url-prefix=/calibre --port 8000 --enable-local-write --log /home/user/calibre_log /home/user/user_library
But it certainly has some performance and UX issues. For me personally, I'd prefer to focus on getting the UX right, then I wouldn't care so much about the performance
For me Thunderbird is one of those - there's no better open source mail client to be found and you use it because it works (most of the time).
The problem with this is that creating GUIs is very complicated as there's just too many different frameworks and specific stuff to know to achieve this. In my opinion interface design on computers is kind of broken just because there's no standard that works for every system. I don't want to implement things 4 or 5 times to get the same result.
If I could I would contribute to those apps because I have good ideas for UX/UI but I'm nowhere near learning all the stuff I need to know to do so I'm afraid. Maybe when I'm really old and retire it's still as crappy as it is and I'll find the time.
In the meanwhile at least we have tools like Calibre and Thunderbird and I'm very thankful for the work the Dev's put into them! :)
Edit: I was referring to the alert() upon loading the site:
W A R N I N G! Your browser is not supported by this site.
I cannot guarantee that things will work as they should.
Consider downloading either Mozilla >=1.4 or Internet Explorer >= 6Lot of simplicity just works. ( lot of work would have gone in 1990's to get this site up and running "
correctOS = (this.linux || this.win32)this.correctBrowser = (this.nav || this.ie); this.correctVersion = (this.nav5up || this.ie5up); this.correctOS = (this.linux || this.win32); this.supported = (this.correctBrowser && this.correctVersion && this.correctOS);
A case of platform detection, instead of feature detection, and an illustration of how platform detection fails in future-proofing your code.
Has Ph.D in quantum computing. Works on ebooks.
He really is a hero.
That's an absolutely terrible name.
Something that I would like to see in a future version of Calibre (or a fork) is news-download recipes changed to a plugin system that can be updated separately of Calibre itself. It is not ideal that if a news recipe becomes obsolete due to changes on the respective news website, one has to upgrade Calibre to a new version. For users whose distros package only a certain version of Calibre, it would be nice to continue running that distro-supported version but simply be able to update the news recipes from within the Calibre settings.
Frankly, the software is just fine for most needs, and the person in charge is still active, so the desire to replace it just hasn't materialized.
EDIT: Looks like somebody actually took the initiative to port it to Python 3.
Needless to say I gave up.
An article title such as "Popular open source software Calibre has a codebase that isn't just bad, it's outright dangerous" would definitely make me click.
If you feel strongly, please do this. It adds value. The creator might really benefit from it.
Sure you might benefit, but there are much more constructive, kinder ways to do it. Even if he and his code aren't great, Goyal's done a lot of free public service here. Let's not be dicks.
If you want to learn about the codebase, here it is https://github.com/kovidgoyal/calibre
They should be praised for their contributions, not torn down. That would be a dick move.
Forgive me, I have the flu and I'm grumpy today.
There is an awful lot of self-deception packed into this paragraph.
> We would actually love to read that.
That part is probably true for many.
However, I would gladly read a post that reviews Calibre codebase in a helpful, friendly way.
For reference, here's the ongoing python 3 port pull request: https://github.com/kovidgoyal/calibre/pull/870
Shouldn't be all that surprising. Things are harder than people think, and only a few people are willing to stake actual skin in the game instead of just complain.
Also, Calibre is already a niche tool. All of my friends/family have a Kindle, they all use Amazon's default send-the-kindle feature, and none of them probably even know how to get the physical ebook file out of the Amazon system nor care.
And ebook file management just isn't a very sexy problem to solve beyond a proof of concept weekendware effort. Surely most people aren't spending much time in Calibre anyways. I know I just use it intermittently to load the next 10 books onto my ereader. It's not a part of my life I'm very passionate about changing.
(mind, I find Calibre pretty usable)
I haven't used the news feature in almost a decade, but in those days, you could clone a news site's recipe and modify it - no need to upgrade Calibre.
It opens with a list of books, you double click on the book you want to read and it opens that book in a new window.
What could be simpler than that?
Other people have different use-cases than I do, and Calibre satisfies us all. Excellent, amazing, wonderful work, Mr. Goyal!
UPDATE: just found out there is now a checkbox in the viewer preferences: "Keep a copy of annotations/bookmarks in the e-book file, for easy sharing". If unchecked, the viewed files are kept intact. Nice!
I also checked that the destructive edit happens upon viewer close, not open or page turn.
Also the version 4 ebook viewer is step back from the old one, as it stands now. It is slower, more resource hungry and buggier. The only arguable improvement is it now uses a 'flat' theme that doesn't look dated. I'm even considering reverting back to Calibre 3 because of the ebook viewer randomly freezing on large epubs with equations and so on.
What I really hate about it is the directory structure, it forces upon you. I have my books sorted in topical directories and Calibre sorts them by author. That sucks. If this single issue would be addressed, I couldn't be happier with Calibre, especially, since Kovid is a very helpful person.
You could also consider libraries by topic.
However, I am mostly on Windows, these days, so no chance for filesystem tags, even worse now, that I have all my eBooks on a home server.
I run a headless version of Calibre in the cloud, so I can read in the browser and do other stuff.
Yes, the UI is a bit quirky, but who cares? I spend my time actually reading the books, and for managing my library and converting between formats Calibre is ace.
That useful software like this exists makes me very happy.
Years ago, I enjoyed stripping my own purchased Kindle books to ePub with Calibre, so I could read them on my non-Kindle device, but it wasn't so easy as the patches became harder to find, and Amazon would constantly change their DRM.
1. unavailable in my country at a reasonable price
2. Something I’d rather read while travelling.
And often, Kindle e-books are the only ones that are priced by region. I try to buy from DRM free stores wherever possible, but it isn’t always doable.
Physical books are much less convenient in that I can't carry 50 of them around in my pocket like I can with books on my phone.
It's still a bit of a pain, you may need to intentionally downgrade your version of the Amazon for Kindle app to an older version where the tools can break the encryption. But it can be done.
Works on Ubuntu too, which is really a PITA otherwise.
Here's what's under calibre/bin
calibre
calibre-complete
calibre-customize
calibredb
calibre-debug
calibre-parallel
calibre_postinstall
calibre-server
calibre-smtp
cjpeg
ebook-convert
ebook-device
ebook-edit
ebook-meta
ebook-polish
ebook-viewer
fetch-ebook-metadata
jpegtran
JxrDecApp
lrf2lrs
lrfviewer
lrs2lrf
markdown-calibre
optipng
pdfinfo
pdftohtml
pdftoppm
web2disk
You can use many (possibly all) of these independently of the UI.It's funny, if they released a version of Calibre that had only the bins you mentioned and omitted the GUI entirely, it would probably be held in much higher esteem among the HN community.
Also, systemd is not one binary. It's like 50 different binaries.
The author has zero care for security and the product had plenty of vulnerabilities. This harms users and also other people.
Furthermore, poor behaviors attracts blame on the whole open source community.
By what chain of reasoning do you derive the existence of the moral obligation to users who have paid exactly nothing let alone the obligation to consider what the broader world thinks of open source developers. It's pretty clear Kovid is a bit of an asshole and sometimes outspokenly incorrect but what right do we have to demand different? Usually such an obligation is transactional. Even if unspoken and devoid of monetary context there is some broader context SOMETHING of value is gained or lost.
So far as I can see the only thing we give Kovid is attention which is cheap and he gives us work which is dear. If you don't agree that the present transaction of putting up with the existence of opinionated posts which you don't have to read for a useful piece of software you don't actually have to use it.
It would even be useful for you to expand on why you think its insecure because that may inform users who can then see to their own interests better for having the benefit of your counsel but don't bore us with talk of his moral obligation unless you can't substantiate such.
The spoiler alert is that you cannot because you have confused the right to control the mores of a particular community with the right to impose those on non-members.
I once made the mistake of accepting donations for a forum I run and learned how people will expect the world from you, like 1:1 customer support whenever they need it, just because they once gave me $5.
Eventually all the "this is outrageous, I am a paying customer!" made me refund everyone and I never accepted donations again.
But if you really need to see transactions everywhere, here's one:
When I give software away for free (which I do) or food (which I do) people give me something in exchange: their trust.
I also give my trust to other software developers.
Not caring of security is a breach of such trust. Same as giving someone some spoiled food.
Here's Kovid responding to reports of security vulnerabilities: https://bugs.launchpad.net/calibre/+bug/885027
You use open source software that is made by one guy and offered to the world for free, you kind of have to deal with the possibility that that guy has better things to do than fuss over every bug report.
Also, I think a vulnerability that allows unprivileged users to gain root on a system on which Calibre is installed is worth fussing over.
> Something answering posts from fools like you over the years should have taught me a long time ago.
And submitter is correct - he does this often. I recall a security bug that he refused to fix as fixing it would break some convenient feature. That one got really heated, and only when distributions declared they will stop carrying calibre in their package management system did he cave in and fix it.
Nevertheless, I don't see these as obvious reasons not to support him in Patreon.
Did you need Calibre in the first place? If so, what did you end up using instead?
This article makes a good argument to the same: https://slatestarcodex.com/2019/09/18/too-much-dark-money-in...
There's even a school of thought that the existence of things like Patreon for funding open source development is actively harmful insofar as it can create the illusion that it's a viable funding mechanism for sustainable open source development when it really isn't.
Best of all would be in Calibre's library handling weren't so finicky, but in the absence of that, I use Calibre with a remote share and I'm just very careful about library backups, how long I leave it running, and am patient with the slowness.
I run Calibre with the library mounted from a NAS. Works fine for my ~2000 book collection. Not as speedy as local SSD, but it is ok.
I run Calibre with a network share that sits on my home NAS since years w/o issues.
A corrupted database in Calibre is a non issue if all you use it for is to move books between your e-reader devices and the library. You just recreate it.
P.S.: Just for example -- the other day my MacBook's SSD filled up as Adobe InDesign was mid write on a huge document. It crashed and the file was corrupted and not recoverable. While (mid write) 'not enough space' is not the same as 'network mount went missing' or 'SSD kicked the bucket' it's close enough. And this is commercial software that has been around for 25 years.
Not quite the same, I'm currently using calibre with a library on a remote server (albeit samba share over VPN) and it doesn't download the books to my local device, unless i choose to save them from my library to it.
Once that's done you get a "My Articles" option in the hamburger menu, and that's your Pocket content.
I then go to a cafe next door and read them. They don't look like an ebook on a Kindle, more like a Kindle magazine. I adore that feature.
The Kobo integrates Pocket natively, so it works seamlessly. It's one of the reasons I bought a Kobo. Native Overdrive integration was a huge plus, too.
Comparing new WiFi model to new 3G model, out of airplane mode, the 3G drains about 2x to 3x faster than WiFi model.
> A single charge lasts up to six (6) weeks, based on a half hour of reading per day with wireless off and the light setting at 13. [0]
We were still pretty pissed at the blatant false advertising (a hardcore book reader reads for only a half hour a day!?!), but moving forward, she keeps the device in airplane mode 95% of the time, only turning it off to download whatever new book she just bought. It increased to at least 2-3 weeks after that, instead of a single week.
[0] https://www.amazon.com/Kindle-Paperwhite-Waterproof-Storage-...
You can keep the display of the kindle on for hours at a time with minimal drain
Of course, modern e-readers have a backlight. Though you can never fully turn it off, at least on my first-gen Paperwhite, which is unfortunate.
As I said, functionally, it is marvellous. But using it interactively is painful.
> The server has gained all the major capabilities of the main calibre interface. You can now edit metadata, convert books, and add/remove books and formats just as is possible with calibre itself.
It not only replaced Calibre's server for me, but also those few functionalities for which I've previously used Goodreads: organizing books into shelves, marking them as read, keeping track of how many books I read in a year.
from screenshots it looks like itunes+pdf reader to me
I think it helps avoid distraction and resource usage.
I get that tiny icons are in these days, but my icons are less than 40x40 pixels. Is that considered large? They look the same size as the icons in Firefox.
You have a search box with a big list box underneath and a preview frame on the side. I guess it's 'dated' in the sense it doesn't use a browser engine, layout everything with CSS, and have icons that match 201XQY's design fad.
At this point, I've got a pretty good sample of apps that were native and have now become Electron, and the Electron versions use 8-10x more memory across the board.
This is not ok. At this point, Outlook is the least resource-hungry productivity application that I need to use on a daily basis. Outlook!
I am curious.
These days, electron seems like a popular base for any desktop app! See a whole list here: https://electronjs.org/apps
But, at the same time, I wonder how many HNers have even built a UI for a product with so many features. It's incredibly hard to find a good place for everything. And experimentation is expensive and time consuming.
If I were designing a "competitor," for a start:
- have a "File" menu that collects the commands relating to, you know, files: open, delete, rename, add, edit metadata (akin to the "Get Info" command in most other file menus), etc. Converting between file types could be in a submenu here.
- have an "Edit" menu that does Edit Menu Things (tm), most notably copy, cut, and paste . - let me drag and drop files to add them to the library.
- when I connect a Kindle or other device, show me a second pane with its content side-by-side with my library, rather than making me switch between "here is your library with flags to indicate what's on your device" and "here is your device with flags to indicate what's in your library."
- since I have two panes like the gods intended, let me copy files from my library to my device with drag and drop.
Calibre has all of that functionality, but it ignores three decades of UX convention to no particular benefit.
But the sheer number of features & formats makes it worth the downsides. Indeed it's probably a good reminder to me as a developer, I can get too focused on making things snappy, efficient and pretty where perhaps I could have delivered twice the features if I took a little more of an 80/20 approach.
It's a shame there's no good hardware ereader to use it with. Every e-ink device is closed hardware, runs only closed software, and is trying to lock you into some DRM-rich ecosystem.
Even the 'special offers' dissipate after being in airplane mode for a certain length of time. I see no value in using any online feature—I've never taken my kindle off of airplane mode, and use Calibre to load all content.
Back when I first bought my kindle and made this decision, I was thinking the ads would be something like a "checkout these deals on Bose speakers!" interstitials every three page turns.
https://github.com/koreader/koreader
https://github.com/ccoffing/OcherBook
https://github.com/lgeek/okreader
Also:
https://onyxboox.com/ - this is Android so I guess it's bit more hackable
https://the-digital-reader.com/2015/06/19/is-the-booq-cervan...
None of this is a replacement to a properly open ebook reading device which does not exist.
On the software side, openinkpot existed at some point, but the project died.
I'd love a properly made piece of very low power open hardware running e.g. nuttx rather than boring Linux/Android.
I realize that you are griping about dedicated e-readers, but I want to make clear that its not strictly an Android problem. The more open Android devices work just fine as e-readers.
My flow is basically Calibre -> managed library -> android phone -> offline reading anywhere.
1. Calibre Companion 2. Coolreader
At least on Windows, I've been pretty underwhelmed with other ebook viewer apps I have tried. The various Kindle apps tend to blow for anything you don't obtain through Amazon, and often don't work great for syncing even Kindle ebooks. I still have a bunch of Microsoft Reader .lit files kicking around, and Calibre is one of the only things that will open them. The Calibre PDF reader is pretty terrible, but setting is up to pop open to Adobe or whatever instead doesn't take much ceremony.
One thing I can remember is that if you start a conversion or a download, often it silently starts in the background with apparently no indication anything is going on, unless you know to look for "Jobs" in the lower right corner. But I think I had a bunch more complaints which have apparently become invisible to me now.
It's like OpenSSL in that respect alone. Everyone wants something like it but it's too hard to build so they'll just use what they think is an inferior solution (when really it's superiority as a solution is that it exists).
Another comment here exemplifies this by reminiscing how they worked up a design draft for their Calibre competitor yet never even started it because it's just too hard and unrewarding.
I also think people are too hard on the author's personality quirks. Yes, they can be grating, but this quirky person is presumably the sort of person who can build it and continue shepherding and maintaining it for over a decade. None of us with our infinite patience and epic social skillz apparently are doing it.
How many here have even maintained a popular, complex product for any real duration? Or had to be your own product's customer service agent? It's not easy. I've seen people break down just fielding customer demands at Target during one summer job.
Imagine writing a useful (free!) tool and the best thing people can say is "well, the code is a nightmare and the UI is ugly". Shameful - remember that there's a real, hard-working person on the other side of your comments.
No idea how to browse my Kindle library, how to browse books on my Kindle, or do anything else. It's a totally non-intuitive GUI.
But, you can integrate Amazon's email-to-Kindle feature with Calibre [1] so new books are automatically added to your Calibre library as well.
[1] http://blog.calibre-ebook.com/2017/01/managing-your-kindle-l...
After it prompts me for my Amazon password I sure expect those books to show up.
As I said, the UI/UX is very confusing.
Calibre is by far the best yet still could be made a way better.
one the converts from any format to any format, strips DRM (so I heard), adapts to different readers and if you really have to allows you to read (though the reader looks terrible)
https://github.com/kovidgoyal/calibre/blob/master/README.pyt...
https://github.com/kovidgoyal/calibre/pull/870
> Yeah there are not a lot of low hanging fruit left. Now one just has to get betas out and have people test them and report bugs. And plugin developers use the betas to port their plugins. But it is going to have to wait until after the webengine migration is done and calibre 4 is released.
> I am perfectly capable of maintaining python 2 myself. Far less work than migrating the entire calibre codebase. [1]
> calibre has half a MILLION lines of python and python extension code...calibre has lots and lots of code that deals with bytes -- network protocols, binary file formats, etc. Python 3 is simply worse than python 2 for this use case. It has a crippled bytes type among other unfelicities. [2]
> There is just no way that calibre is ever going to be ported to python 3. [3]
Glad to see some outsider, flaviut, stepped to to the challenge and kovidgoyal accepted his pull request.
Looking at the pull request it seems that kovidgoyal's fear about external native functions, network protocols, binary file formats, and python3's byte type was not so insurmountable.
[1] https://bugs.launchpad.net/calibre/+bug/1714107
Calibre can seem pretty overgrown and I used for years without missing features like search-based virtual libraries, but now an ebook management app that doesn't let me slice and dice with that kind of power. For me it's a mix of how easy it is switching between tabbed views like new last 30 days, unread (custom tag automatically added on import), various reading lists from the Reading List plugin, author sets I tend to read together, missing metadata, etc. and the composability of virtual libraries.
When you combine virtual libraries with the slightly misleadingly named FanFicFare plugin's metadata it's a lot easier to keep track of both original[1] & fan fictions from dozens of sites (out of several hundred supported) and separate it out from regular books. Similarly the Reading List & Import List plugins are great for pulling in info from outside calibre, but they need a lot of the features that people generally ignore to do their jobs.
On the flip side most people don't seem to use multiple real libraries and they are great for topic-specific book collections or when I really don't want to see a book again, but don't want to just delete it.
Even simple things like being able to arbitrarily color column text based on filters I ignored until I realized lets me set the titles of all books missing a description red. It makes cleaning up my library easier, but nothing else I've tried has a similar features.
[1] https://github.com/JimmXinu/FanFicFare/wiki/SupportedSites It's the only thing that makes reading fiction from spacebattles.com not soul-destroyingly annoying.
Doesn't work for huge books, but has been a great boon for most books!
It then pops up everywhere I have a Kindle app, mostly my iPad and Galaxy S9.
Huh. Now that I'm thinking about it, it seems like this would be even easier to do from the command line...
I'd advise a separate email address for this functionality.
for technical books annotation is essential for me, it's my notes so I do not need re-read the book from start to end each time.
Thankfully, I just make do with running:
brew cask reinstall calibreI have a lot of eBooks, because I built a DIY Book Scanner and scanned all my books in a couple of years ago.
Calibre has a cli interface calibredb. One could use that but it would be vastly more cumbersome than using the gui. It isn't at all designed to be used interactively unless you like typing switches like --for-machine and mixing in a lot of jq in preparation for opening a book.
What I really wanted to do was type a quick command with a search query just like I would type at the calibre search box have it pop open a list that I could narrow by typing hit enter and open a book. One step and 1 - 10 seconds to open a book instead of 15-30 without a process taking up ram all the time for no reason.
https://github.com/michaelmrose/rdr
Written in clojure and compiled to a portable executable with graal next to no requirements outside of rofi or dmenu and currently being tied to linux. Could presumably be be compiled for mac if I had one. It uses 19MB of ram for the and starts about instantly.
-q [query] => pass query with the same syntax as calibredb or calibregui accepts
-l => open the last book read
-r => filter the most recent 30 distinct books opened via rdr via rofi or dmenu
query string => If a string is passed in without -q -h -l -r specified it is treated as a query
-o [file] => open with default reader and record in recent reads if part of a calibre library
-S [options] => save options passed to disk Options
-p [list] => list of formats in order of preference eg pdf,epub,mobi
-k [number] => number of recent reads to keep
--port PORT
--server URL
--user USER
--password PASSWORD"
The recommended usage is to pass the desired defaults with -S then omit them on future invocations. Example:
rdr -S -L /path/to/library -p pdf,epub,mobi -k 10 -p 8090 --user me --password hunter2
then
rdr -q query string here
I currently have a keybinding tied directly to rdr -l and rdr -r and use it all the time. 1 button to go back to the most recently read book is nice.
I'd also love any feedback anyone wanted to provide about the code.
However, on Windows, I've found that the Calibre reader is the best. I've found that Adobe Digital Editions and the Kindle reader have terrible formatting on a non-mobile screen.