plato on the kobo libra 2

I caught the reading bug again

Published 2023-06-11, last edit 2023-08-15

For almost a year now I’ve been using plato on the kobo libra 2, an e-ink reader that includes a backlight and a red light scale. The user experience has been very good (fast, portable, decent battery), here’s some howto’s.


1. Install #

When you first get the device, you can plug it into your computer and mount it directly, everything is just owned by root:

$ lsblk
sda      8:48   0 232.9G  0 disk
├─sda1   8:49   0   550M  0 part /boot
├─sda2   8:50   0   225G  0 part /nix/store
│                                /
└─sdd3   8:51   0     4G  0 part [SWAP]
sdb      8:144  1  28.5G  0 disk

$ sudo mount /dev/sdj ~/kobo

To bypass the kobo account setup, you can exit the database on the device:

$ sudo sqlite3 ~/kobo/.kobo/KoboReader.sqlite
sqlite> INSERT INTO user(UserID,UserKey) VALUES('1','');
sqlite> .quit

Now let’s install plato. Current releases can be found at the OP of this kobo forum post. The release is just a zip file that we will extract to ~/kobo. “installing” just means coping the contents of the release onto the reader:

sudo unzip OCP-Plato-0.9.38.zip -d ~/kobo

After you unmount, there will be a Plato launch icon at the bottom of the screen - but you’ll likely want to do some setup (see below)

2. Settings #

Reader settings I have that differ from the default (the Georgia font just looks “right” to me for reading):

south-strip = "next-page"
font-path = "/mnt/onboard/.adds/plato/fonts"
font-family = "Georgia"
margin-width = 10
max-margin-width = 20
line-height = 1.1
ignore-document-css = true

stretch-tolerance = 1.5

The most opinionated setting in here is setting ignore-document-css to true. This means I have a consistent reading experience for books that are simply plain text, but if epubs rely on something more fancy for effect (or for example if I am reading a screenplay) I will turn this off. Overall though, having this setting on and crushing the exceptions has been worth the consistent experience for me.

3. Dictionary #

To install a dictionary, grab a zip from here and unzip it to ~/kobo/.adds/plato/dictionaries. You can long tap a word while reading to look it up while reading.

4. Fonts #

I add font files to the ~/kobo/.adds/plato/fonts dir, and then make them accessible with this option in Settings.toml:

font-path = "/mnt/onboard/.adds/plato/fonts"

5. CSS #

Create ~/kobo/.adds/plato/css/epub-user.css, and add:

p {
    text-align: justify;
    margin: 1em 0 0 0 !important;

p + p {
    text-indent: 1em;
    margin: 0 !important;

img { /* for centering */
    margin: auto;

6. Library #

For a db located in ~/kobo/library, set path like so:

path = "/mnt/onboard/library"
# ...

7. Debugging #

If there are any issues with Settings.toml, the default settings are used and the config error is logged to an info.log file in the same directory.

8. ❗Caution: firmware updates #

Note that even if you have firmware updates turned off, if you are connected to the wifi, kobo can still auto-update and break plato for you. Your files will still be there, you’ll just have to copy the plato release over to then device again.