Koreader Rocks! It does what I need and it’s open source. I was able to install it on my kobo and got on with my reading.

Because I have a hard time putting some books down at night I did what any reasonable person would do. I made a gotobed plugin1.

The important thing about it is that it’s a much needed intervention. Instead of nagging or gently pushing you to make the right choice it rules with an iron fist and shut the reader off.

Overall the development experience was pleasant. Development is not really approachable because there are no examples or guides. All you have is the reference, the sources, and the emulator. Unfortunately this is not a guide as I hacked together this plugin by looking at the sources and copy pasting liberally from the other plugins.

The emulator was surprisingly very good. Development on linux is as easy as getting the appimage, unpacking it, and executing it.

You can start hacking away by crating a directory in the plugin directory and the emulator will pick up file changes. Very nice. Unfortunately it also picks up your newly introduced bugs and crashes the app. Less nice. I’m not sure if a plugin author can do anything to put a boundary between the main ui/app and the rest of the code but it’s good enough for me now.

The API reference is kind of complete but I did not use it. It’s amazing what you can throw together by looking at the sources shipped with koreader and trying things out.

  1. Greatly inspired by the unreasonable kgotobed