본문으로 건너뛰기

rmpp-split-doc

reMarkable Paper Pro Moveで2つの文書を並べて開き、文書ごとにメモのノートブックを付けます

reMarkable Paper Pro Moveで2つの文書を並べて開き、文書ごとにメモのノートブックを付ける非公式のホームブルーです。コミュニティのrm-hacks-qmdにあった画面分割(split_doc)をファームウェア3.27に移し、機能を加えてMITライセンスで公開しました。

できること

  • 画面分割 — 読んでいる文書の隣に、別の文書や新しいノートブックを開きます。重ねる表示と分ける表示、比率の変更、メイン画面の入れ替えができ、両方に書き込めます。文書はそれぞれ別々に保存されます
  • 文書ごとのメモノートブック — 文書ごとに [Memo] 文書名 のノートブックを作って付けます。メモのある文書には📝タグが付き、文書を開くとメモが隣に自動で開きます
  • 邪魔にならないズーム表示 — ズーム倍率が分割の境目をずっと隠さず、変えたあと1.5秒だけ表示されます

ファームウェア3.27.1.0と3.27.3.0で確認しました。3.28以降はツールバーのライブラリを書き換えられないため対応していません。

作った経緯

ファームウェアが3.27.1.0に上がったことで、コミュニティで使われていた画面分割が動かなくなりました。端末が文鎮化すると戻す手段が乏しいので、端末に手を加える前に状態を読み取るだけのスクリプトから作りました。その上に配置・有効化・ログ収集を一度に行うテストハーネスを置き、圧縮されたQtリソースからQMLを取り出そうとしました。平文もzlibも、zstdのマジック探索さえも失敗し、qmldiffをソースからビルドして原因を絞り込んだ末に、816個のzstdフレームをすべて解く抽出ツールでようやく取り出せました。最後に、どのリソースがどのファイルかを確定するパスマッパーを作りました。

結論を一度ひっくり返しました

途中で「書き換えたQMLが実行時に届いていない」と結論づけました。メニューに入れた黒い帯、ログ、ファイル書き込みという3つの経路で確かめ、すべて陰性でした。

間違いでした。ログとファイル書き込みはその環境では元々塞がれていて、陰性という結果そのものに意味がありませんでした。原因は、パッチが掴んでいた古いアンカー、ファイル単位で起きていたロールバック、そして私が設定スロットを二重に入れてすべてのハックを無効にしていたことでした。閉じるボタンを隠すパッチのアンカーをひとつ直すと正しく動き、それがフレームワークが生きている証拠になりました。

最後にレイヤーメニューを生かしたのは、端末のビルドに合わせる作業でした。この端末のファームウェアにない属性を外し、必須の属性を足し、誤ったid参照を直すと、元のレイヤーメニューがそのまま描画されました。

非公式のホームブルーです。 誤ってインストールするとUIが再起動を繰り返すことがあるため、リポジトリのREADMEにSSHで元に戻す復旧手順を載せています。