Skip to content

zer0trip/rmtemplate

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

rmtemplate

A command-line tool for managing custom templates on reMarkable Paper Pro and Paper Pro Move devices. It uploads template files over SSH and registers them in the device's templates JSON, so you don't have to hand-edit templates.json or restart xochitl yourself.

Requirements

  • Python 3.9+
  • SSH access to the device (enabled in Settings > About > Copyrights and licenses, or Settings > Storage on newer firmware)

Install

pip install paramiko scp

Then either run rmtemplate.py directly, or install it as a rmtemplate command:

pip install .

Usage

rmtemplate.py connect --host 10.11.99.1 --password abc123
rmtemplate.py list
rmtemplate.py add watch-log.svg --name "Watch Log" --category "Planners"
rmtemplate.py remove --name "Watch Log"
rmtemplate.py backup
rmtemplate.py restore ~/.rmtemplate/backups/templates.json.20260101_120000.bak
rmtemplate.py restart
rmtemplate.py icons

connect saves the device IP and SSH password to ~/.rmtemplate/config.ini (permissions are set to owner-read/write only) so later commands don't need --host/--password. Every command still accepts them directly if you'd rather not persist credentials to disk.

Commands

Command Description
connect Save device IP and SSH password for later commands
list List all registered templates
add Upload a .svg/.png file and register it as a template
remove Unregister a template, optionally deleting its file
backup Save the current templates JSON to ~/.rmtemplate/backups
restore Restore templates JSON from a backup file
restart Restart xochitl to pick up changes
icons List available icon names and their hex codes

Sample templates

templates/ has example templates you can install with add. The Paper Pro and Paper Pro Move have different screens (1620x2160 portrait vs. 1696x954 landscape), so each template ships as two files — pick the one matching your device:

Template Paper Pro Paper Pro Move
Movie watch log movie-watch-log-pro.svg movie-watch-log-move.svg
Book log book-log-pro.svg book-log-move.svg
Workout tracker workout-tracker-pro.svg workout-tracker-move.svg
rmtemplate.py add templates/movie-watch-log-pro.svg --name "Movie Watch Log" --category "Planners"

add figures out landscape vs. portrait from the file's own dimensions and sets the JSON entry accordingly — you don't need to tell it which variant you're uploading.

They're styled to match reMarkable's own templates — hairline strokes at varying opacity instead of solid gray, dashed minor guide lines, and text rendered as vector outlines rather than <text> elements (the on-device SVG renderer's font handling isn't something to rely on). scripts/gen_templates.py generates all six from a shared layout system; run python scripts/gen_templates.py after editing it to regenerate them.

Notes

  • SSH host keys are trusted automatically on first connect (AutoAddPolicy). This is convenient for a device on your own LAN but means there's no protection against a spoofed host; be aware of that tradeoff.
  • backup saves the templates JSON and a listing of files in the templates directory, not copies of the template images themselves.
  • The four categories and the icon codes in icons are taken directly from a real device's templates.json (built-in entries), not guessed — the picker UI only shows a fixed set of category tabs, so a category outside that set means a template won't appear under any tab.

License

MIT, see LICENSE.

About

Python tool for installing templates on the Remarkable tablets.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages