This is a umbrella project containing author's Nix build expressions for various Remarkable2 tablet software.
- SSH connectivity systemd service.
- Host-device library folder synchronisation using
rsync
. - Importing PDF documents to the library.
- Exporting documents from the library (
rm2svg
seems to be broken) - RM2 stylus capturing using
remarkable_mouse
.
We use Nix to track the library dependencies. Main expressions are defined in default.nix. flake.nix describes the relationships to other Nix repositories, inclding the main Nixpkgs repo.
To run the development shell, type:
$ export NIXPKGS_ALLOW_INSECURE=1 # needed to allow the buggy xpdf dependency
$ nix develop --impure # Impure is needed for Nix to notice the above variable
To build a specific Nix expression (e.g. rmsynctools_def
):
$ nix build '.#rmsynctools_def' --impure
To enable the specific configuration without installing scripts, link it into
the ./_rmconfig
file in the current directory and source ./sh/rmcommon
.
$ ln -s ./sh/nixconfig.sh _rmconfig
$ . ./sh/rmcommon # Optionally
Then you could run ./sh/rm*
in-place scripts wihtout installing them into the
system.
To enable SSH access to the Remarkable tablet we rely on a third-party server with a public IP address (the VPS). We use rmssh-install to setup a Systemd service on the device and to send the necessary SSH keys to the VPS. The tablet then maintains a connection to the VPS by keeping certain ports opened so the users can establish a wireless connection to the tablet using VPS as a relay.
Given the successful installation, one can run the rmssh
script in order to
reach the tablet without connecting its USB cable.
$ rmssh remarkable
Rmsynctools is a set of shell scripts for synchronizing document trees between
the Host and RM2 device. Our approach is inspired by
Dr Fraga's work. In contrast to
it, we use rsync
rather then sshfuse
to manage the actual data transfer.
The workflow:
- Adjust the rmcommon that defines the main configuration environment variables.
- Optionally run the rmssh-install to install the systemd service rule to the RM2 device. Provided with the VPS requisites, the script will install the RM2 systemd running the reverse SSH tunnel from VPS host to RM2 device. allowing the wireless access to RM2 device. rmssh script can be used to connect to the device using this tunnel.
- Run the rmpull to pull the
xochitl
tree from RM2 device to Host. Pass--delete
argument to also remove Host files that don't present on the tablet. - View or modify the Host copy of
xochitl
using one of the following scripts:- rmls Lists the folder's content
- rmfind Gets the document UUID by name
- rmconvert of Dr.Fraga builds the annotated PDF by UUID.
- Currently, getting annotaded documents doesn't rely on the Remarkable
web-server. Unfortunately,
rmconvert
is pretty slow and has some issues with SVG graphics in PDF documents.
- Currently, getting annotaded documents doesn't rely on the Remarkable
web-server. Unfortunately,
- rmadd adds new document to the file tree
- Run rmpush to push the modified
xochitl
tree back to the RM2 device.rmpush
doesn't remove anything from the tablet.
All transport scripts support accessing up to two RM2 devices using the reverse
SSH tunnel. See -D (A|B)
command line argument.
To link the RM2 stylus with the Host mouse, do
$ echo 'password' >_pass.txt # RM2 root password
$ ./runmouse.sh
Issues:
Evidlo/remarkable_mouse#63Specifying --password seems to have no effect(Fixed)
In the Host's Nix configuration:
{
#...
programs.ssh = let
algos = ["+ssh-rsa"];
in {
hostKeyAlgorithms = algos;
pubkeyAcceptedKeyTypes = algos;
};
#...
}
$ sudo ifconfig enp3s0u1 10.11.99.2 netmask 255.255.255.0
.. or set up NetworkManager to automatically assign IP address
Remarkable->Host transfer with deletion (remove --dry-run)
$ rsync -i -avP --dry-run --delete -e ssh remarkable:/home/root/.local/share/remarkable/xochitl/ _xochitl/
Host->Remarkable transfer without deletion (remove --dry-run)
$ rsync -i -avP --no-owner --no-group --dry-run -e ssh _xochitl/ remarkable:/home/root/.local/share/remarkable/xochitl/
- RemarkableWiki https://remarkablewiki.com/tips/start
- SSH key issues https://remarkablewiki.com/tech/ssh on modern hardware
- reHackable https://github.com/reHackable/awesome-reMarkable
- reMarkable directory structure
- Prof. Fraga's page on remarkable with lots of useful scripts
https://www.ucl.ac.uk/~ucecesf/remarkable/
- Last seen modification date: 2022-09-28
- rm2pdf.sh
- rmlist.sh
- rmconvert.sh
- Remarkable CLI tooling
- Could be up-to-date; More or less works
- Couldn't remove file from remarkable
- Sent Pull request and filed an issue
- https://github.com/simonschllng/rm-sync
- Written in pure Shell curl calls are commented-out
- Seems to be a local script, incomplete
- https://github.com/lschwetlick/rMsync
- Another script, this time in Python
- Needs
rm_tools
- Needs deprecated scripts
- https://github.com/nick8325/remarkable-fs
- FUSE, Seems to work without the cloud
- 5 years old
- https://github.com/rschroll/rmfuse
- Fuse between local folder and the cloud
- Requires
rmcl
andrmrl
- Not working anymore
- Syncthing https://github.com/evidlo/remarkable_syncthing
- Requires Entware
- https://github.com/codetist/remarkable2-cloudsync
- A script which uses
Rclone
binary.
- A script which uses
- Remi https://github.com/bordaigorl/remy
- GUI, seems to be up to date.
- Not checked.
- reMarkable mouse
- reStream
- SSH access and backups
- Entware
Rm_tools
https://github.com/lschwetlick/maxio/tree/master/rm_tools- Some nix expressions
- Receive files from Telegram
- Needs rebooting after the file is received
- ddvk/remarkable-hacks
- Lots of RM2 GUI hacks
- Does not support newer versions (mine is
>3.0
), see the related issue.
- rmscene .RM files converter
- Codexctl CLI for update server