본문으로 건너뛰기

rmpp-split-doc

Open two documents side by side on the reMarkable Paper Pro Move, and attach a memo notebook to each one

Unofficial homebrew that opens two documents side by side on the reMarkable Paper Pro Move and attaches a memo notebook to each document. It ports the split-screen hack (split_doc) from the community’s rm-hacks-qmd to firmware 3.27, adds a few features, and is released under the MIT license.

What it does

  • Split document — open another document, or a new notebook, next to the one you’re reading. Overlay or divided layout, adjustable ratio, swap which pane is main, and write in both. Each document saves on its own
  • Per-document memo notebook — creates a [Memo] <document name> notebook for a document. Documents with a memo get a 📝 tag, and the memo opens beside them automatically
  • A quieter zoom indicator — the zoom level shows for about 1.5 seconds after a change instead of covering the split boundary the whole time

Tested on firmware 3.27.1.0 and 3.27.3.0. From 3.28 on the toolbar library can’t be patched, so it isn’t supported.

How it was built

Firmware 3.27.1.0 broke the split screen the community had been using. A bricked tablet is hard to bring back, so the first tool only read the device’s state without touching it. On top of that came a test harness that deploys, enables and collects logs in one step. Then I tried to pull QML out of the compressed Qt resources: plain text failed, zlib failed, and even a zstd magic-number scan came up empty. Only after building qmldiff from source to narrow down the cause did an extractor that decodes all 816 zstd frames get the QML out. Last came a path mapper that pins down which resource is which file.

I reversed a conclusion once

Partway through I concluded that the rewritten QML never reached the runtime. I checked through three paths — a black bar added to a menu, logging, and a file write — and all three came back negative.

I was wrong. Logging and file writes were blocked in that environment all along, so a negative result from them meant nothing. The real causes were stale anchors in the patches, rollbacks happening per file, and a settings slot I had inserted twice, which disabled every hack at once. Fixing a single anchor in the patch that hides the close button made it work, and that was the proof the framework was alive.

Finally, what brought the Layers menu back was matching the device’s firmware build. Removing properties that build doesn’t have, adding a required one, and fixing a wrong id reference let the original Layers menu render as-is.

This is unofficial homebrew. A bad install can leave the UI in a restart loop, so the repository README includes recovery steps to undo it over SSH.

QMLxoviqt-resource-rebuilderqmldiffPythonShell
2026–
원인 분석 · 포팅 · 기능 추가

Back to all projects