ldecicco / rmview

A live viewer for reMarkable written in PyQt5

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

rMview: a fast live viewer for reMarkable

Demo

Features

  • Demo 🚀 here
  • Fast streaming of reMarkable's screen to a window in your computer
  • UI for zooming, panning, rotating
  • Pen tracking: a pointer follows the position of the pen when hovering on the reMarkable
  • Clone a frame into separate window for reference
  • Save screenshot as PNG

📢 Volunteers needed: if you have experience with producing binary bundles with pyQt, and feel like contributing to the project, drop me a line!

⚠️ WARNING ⚠️: rMview has only been tested with reMarkable 1. Support for reMarkable 2 may come once it gets wider diffusion. The ssh branch should be compatible with the reMarkable 2.

Installation

  1. You will need Python3 on your computer.

    ⚠️ Please make sure pip is pointing to the Python3 version if your system has Python2 as well. If not, use pip3 instead of pip in what follows.

  2. The easiest installation method is by using pip:

    pip install .
    

    which will install all required dependencies and install a new rmview command. Alternatively you may want to install the dependencies (PyQt5, Paramiko, Twisted) with pip manually.

  3. On the reMarkable itself you need to install rM-vnc-server and its dependency mxc_epdc_fb_damage. Instructions can be found in the wiki. This last step will be automated in the near future.

To run the tool after installation just run rmview from a console.

⚠️ WARNING ⚠️: If you use Anaconda, please install the dependencies via conda (and not pip).

Tested with Python 3.8.2, PyQt 5.14.2, MacOs 10.15.4, reMarkable firmware 2.1.1.3.

Usage and configuration

You can invoke the program with

rmview [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.

Configuration files

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 and trail "red"
pen_trail persistence of trail in ms 200
background_color color of window "white"
hide_pen_on_press if true, the pointer is hidden while writing true
hide_pen_delay if > 0, the pointer is hidden if it was shown hide_pen_delay seconds ago -1

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 provided by reMarkable not needed if key provided
timeout connection timeout in seconds default: 1

To Do

  • Settings dialog
  • About dialog
  • Pause stream of screen/pen
  • Binary bundles for Window, Linux and MacOs (PyInstaller?)
  • Add interaction for Lamy button? (1 331 1 down, 1 331 0 up)
  • Remove dependency to Twisted in vnc branch

Legacy reStreamer-like version

There are two versions of rMview, presenting the same interface but using different back-ends (thus requiring different setups on the reMarkable):

  • The "VNC-based" version, in the vnc branch (default)
  • The "reStreamer-like" version, in the ssh branch

In my tests, the VNC version is a clear winner. The ssh branch of this repo hosts the reStreamer-like version for those who prefer it, but I am not planning to update it.

Credits

I took inspiration from the following projects:

Icons adapted from designs by Freepik, xnimrodx from www.flaticon.com

Thanks to @adem amd @ChrisPattison for their PRs.

Disclaimer

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.

Licence

GPLv3

About

A live viewer for reMarkable written in PyQt5

License:GNU General Public License v3.0


Languages

Language:Python 100.0%