Skip to content

jacob414/rm-files

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

76 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

rm-files

CI State

An experiment with the line files for the remarkable tablet. The stretch goal is to be able to convert a .SVG file to a .rm file. Preferably also with the ability to insert it into the tablets file system.

AI-assisted experiments

This project explores AI-assisted development for working with the ReMarkable format. Earlier iterations used Claude 3 and GPT-4; it is now maintained with Codex CLI.

QA And Dev Dependencies

  • Runtime deps: installed from requirements.txt (kept lean; excludes manim).
  • QA deps (CI/locals): installed from requirements-qa.txt and invoked via make qa.
  • Optional dev extras: requirements-dev.txt includes manim and other extras for local-only workflows. CI does not install these to avoid system packages.

Typical workflows:

  • Quick tests: make test-quick
  • Full QA: make qa (lint, type-check, tests with coverage, security)
  • CI pipeline: runs make ci (no manim)

Enabling manim locally (optional):

  • Install dev extras: `source .venv/bin/activate && pip install -r requirements-dev.txt`
  • You may need system packages for Pango/Cairo bindings:
    • macOS (Homebrew): `brew install cairo pango`
    • Ubuntu/Debian: `sudo apt-get update && sudo apt-get install -y libpangocairo-1.0-0 libcairo2-dev libpango1.0-dev`

Note: CI intentionally avoids installing `manim` (and `pangocairo`) to keep the pipeline fast and portable. Use local installs when you experiment with `scene.py` or any rendering tasks.

CLI

This repo includes a small CLI used for future notebook read/write workflows.

  • Install locally (editable): `pip install -e .`
  • Run: `rmfiles –help`

If the `rmfiles` command isn’t found, either:

  • Run via module (no install needed from repo root): `python -m rmfiles –help`
  • Or ensure the console script is installed into your venv and visible on PATH:
    • `source .venv/bin/activate && pip install -e .`
    • `which rmfiles` should point inside `.venv/bin/rmfiles`
    • If your shell caches commands, refresh: `hash -r` (bash) or restart the shell

Examples:

  • Create a simple triangle notebook:
    • `rmfiles new –out output.rm –label “Triangle Layer” –center-x 200 –center-y 200 –size 150`
  • Inspect a file (basic header + optional block counts if `rmscene` is installed):
    • `rmfiles inspect output.rm`

Programmatic Usage

Generate a simple .rm file with a visible rectangle using the rmscene-backed helpers in `rmfiles.generate`:

Example (Python):

from rmfiles.generate import create_rectangle_rm create_rectangle_rm(“output/rect.rm”, x=100, y=120, width=300, height=200)

from rmfiles.generate import build_rectangle_blocks, write_rm blocks, author_uuid = build_rectangle_blocks(x=120, y=140, width=160, height=100) write_rm(“output/rect2.rm”, blocks, version=”3.1”)

These helpers assemble a minimal, device-like block sequence (author IDs, migration and page info, scene tree, layer + stroke) using `rmscene` and write with a compatible version string. Coordinates are in pixels (typical page dimensions 1404×1872). For visibility, strokes use a marker tool and thicker width than the default.

Note: writing relies on the `rmscene` package (installed via `setup.py`). If it’s not available, `rmfiles new` will fail with a clear message.

About

Experiments with ReMarkable tablet notes files.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •