There are two versions of rMview, presenting the same interface but using different back-ends (thus requiring different setups on the reMarkable):
- The "reStreamer-like" version, in the
masterbranch - The "VNC-based" version, in the
vncbranch
In my tests, the VNC version is a clear winner, but it has different requirements, so I am keeping both alive for the moment.
Volunteers wanted: if you have experience with build systems/packaging for python, and/or experience in producing bundles with pyQt, and feel like contributing to the project, drop me a line!
To run the program you need python with pyqt5 installed. Before running the program the first time, generate the resource file with
pyrcc5 -o src/resources.py resources.qrc
Then you can invoke the program with
python src/rmview.py [config]
the optional config parameter is the filename of a json configuration file.
If the parameter is not found, the program will look for a rmview.json file in the current directory, or, if not found, for the path stored in the environment variable RMVIEW_CONF.
If none are found, or if the configuration is underspecified, the tool is going to prompt for address/password.
The supported configuration settings are below.
Look in file example.json for an example configuration.
All the settings are optional.
| Setting key | Values | Default |
|---|---|---|
ssh |
Connection parameters (see below) | {} |
orientation |
"landscape", "portrait", "auto" |
"landscape" |
pen_size |
diameter of pointer in px | 15 |
pen_color |
color of pointer or trail | "red" |
pen_trail |
persistence of trail in ms | 200 |
background_color |
color of window | "white" |
fetch_frame_delay |
delay in sec after each frame fetch to throttle refresh | 0 |
lz4_path_on_remarkable |
absolute path on the reMarkable | "$HOME/lz4" |
hide_pen_on_press |
bool | true |
Connection parameters are provided as a dictionary with the following keys (all optional):
| Parameter | Values | Comments |
|---|---|---|
address |
IP of remarkable | tool prompts for it if missing |
username |
username for ssh access on reMarkable | default: "root" |
key |
Local path to key for ssh | not needed if password provided |
password |
Password provide by reMarkable | not needed if key provided |
timeout |
connection timeout in seconds | default: 1 |
Tested with Python 3.8.2, PyQt 5.14.2, MacOs 10.15.4, reMarkable firmware 2.1.1.3
- Python 3
- PyQt5
- Paramiko
- lz4framed for
masterbranch - Twisted for
vncbranch
They can be installed via pip install pyqt5 paramiko py-lz4framed.
If you use Anaconda, please install the dependencies via conda (and not pip).
"reStreamer-like" version:
- LZ4, installed by running
scp lz4.arm.static <REMARKABLE>:lz4. Make surelz4is executable by runningssh <REMARKABLE> chmod +x lz4.
"VNC-based" version:
- Install rM-vnc-server and its dependency mxc_epdc_fb_damage. Instructions can be found in the wiki.
- Settings dialog
- About dialog
- Pause stream of screen/pen
- Build system
- Bundle
- Add interaction for Lamy button? (1 331 1 down, 1 331 0 up)
- Remove dependency to Twisted in
vncbranch
I took inspiration from the following projects:
- QtImageViewer
- remarkable_mouse
- reStream
- rM-vnc-server
- VNC client originally written by Chris Liechti
Icons adapted from designs by Freepik, xnimrodx from www.flaticon.com
This project is not affiliated to, nor endorsed by, reMarkable AS. I assume no responsibility for any damage done to your device due to the use of this software.
GPLv3
