A year ago I posted some articles about customising the reMarkable 2. The device is great and easy to play with, but every OTA update sent will remove every customisation. I've been manually re-installing them until a point that I reduced the custom templates due to the work that the installation implies.

Today I had enough and I coded a simple script to release me from this work. In this article I explain a bit what it does and where can you get it from.

Why would you want custom templates?

If you don't have an answer for it, then you still don't have the need. The templates that come with the device are great and work out of the box in most of the cases.

I personally like to have the floating tool box opened, so the default templates like the Checklist are placed below it, making the usability quite bad. In my previous article reMarkable 2 templates I used this one as an example to explain why and how to do so

Why do we want to automate the install?

As mentioned in the intro, on every update that the people from reMarkable deliver to our devices the customisations disappear. One has to copy the templates into the device again and set them up in the templates.json file. It's not a long or difficult process, but it becomes very repetitive and usually it catches me early in the morning when I just start my work day.

So, what about a script that does everything for me? It would reduce the pain to a minimum.

The script

So the script is pretty simple. the actions it does are:

  1. Copy every template into the device
  2. Add an entry per template into the templates.json

Of course, the script has to do some extra fun, like:

  • Control that we have specified the IP of the reMarkable 2 in our local network, otherwise shows the help message and exits.
  • Bring the current templates.json file from the device, so we can work locally.
  • Verify that after the addition, our new templates.json file is still a valid JSON file
  • Copy back the templates.json to the device
  • Clean up the mess in the local environment

What is not doing this script?

At this point in time the script is not triggering the reboot that is needed for the changes to take effect. I guess I am going to iterate the script whenever I have some time, but for now one needs to ssh into the device and run the reboot command manually.

Where can I find the script?

So at the end I put everything together in a public Github repository at XaviArnaus/reMarkable2. There you can find the templates I am using and also the install_templates.sh script.

What do I need to run the script?

The reMarkable 2 device is connected to the network

You basically need the reMarkable 2 device powered on and connected to the Wifi. When it is connected, you need to discover its IP from the local network. To do so, navigate in the reMarkable 2 device to Settings > General > Help > Copyrights and licenses and there you'll find a note with the IP at the end of the page. I also explained this with more detail in my previous article reMarkable 2 templates.

The script is cloned and ready

The script has to be ready to be triggered in your local computer. This means that you better clone the repo or copy the content of the script somewhere you control, and be sure it has the permissions to execute. Also, your templates need to be there and the script needs to be pointing to them. If you don't know what I am talking about, just take a look at the code of the script, as it references to the templates, and probably you want to edit these lines.

Run the script!

Yes, let's assume we have everything ready. The script needs to be run with the -i parameter together stating the IP of the device. It will show you some lines to ensure that it is pointing to the right paths and ask you for confirmation, and then it will perform the tasks and print in th screen what it is doing:

$ ./install_templates.sh -i

Will copy templates from . to root@

Are you sure (y/n)? y
Copying template 1: x_1o1.png
x_1o1.png                                              100%   76KB   1.4MB/s   00:00
Copying template 2: x_checklist.png
x_checklist.png                                        100%   15KB   1.1MB/s   00:00
Copying template 3: x_standup.png
x_standup.png                                          100%   40KB   1.5MB/s   00:00
Getting the template JSON file
templates.json                                         100%   13KB   1.4MB/s   00:00
Adding the templates config into the JSON FILE
Validate the JSON
Copying back the templates config into the device
templates.json                                         100%   14KB   1.3MB/s   00:00
Cleaning up

Restart the service

As I mentioned above, once the script is run you need to restart the device so that the templates.json is reloaded and the new tempaltes are then available. To do so:

  1. SSH into the device (using here the IP of the example above)

    ssh root@
  2. Restart the service

    systemctl restart xochitl

And you'll see the reMarkable 2 restarting. Once finished, you can make use of the new custom templates right away!

Previous Post Next Post