rmview/README.md

117 lines
4.9 KiB
Markdown
Raw Normal View History

2020-05-01 21:50:08 +01:00
# rMview: a fast live viewer for reMarkable
2020-05-03 22:12:31 +01:00
![screenshot](https://raw.githubusercontent.com/bordaigorl/rmview/master/screenshot.png)
2020-05-30 00:13:18 +01:00
## Choose your flavour
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 `master` branch
* The "VNC-based" version, in the `vnc` branch
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!
2020-05-01 21:50:08 +01:00
## Instructions
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.
2020-09-11 02:02:54 +02:00
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"` |
| `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 |
2020-05-01 21:50:08 +01:00
2020-05-30 00:13:18 +01:00
Tested with Python 3.8.2, PyQt 5.14.2, MacOs 10.15.4, reMarkable firmware 2.1.1.3
2020-05-01 22:44:23 +01:00
2020-05-01 21:50:08 +01:00
## Requirements
2020-05-30 00:13:18 +01:00
### On your computer:
2020-05-01 22:44:23 +01:00
2020-05-01 21:50:08 +01:00
- Python 3
- PyQt5
- Paramiko
2020-05-30 00:13:18 +01:00
- lz4framed for `master` branch
- Twisted for `vnc` branch
2020-05-01 21:50:08 +01:00
2020-05-02 16:43:44 +01:00
They can be installed via `pip install pyqt5 paramiko py-lz4framed`.
2020-05-04 23:05:32 +01:00
If you use Anaconda, please install the dependencies via `conda` (and not `pip`).
2020-05-01 21:50:08 +01:00
2020-05-30 00:13:18 +01:00
### On the reMarkable:
*"reStreamer-like" version:*
2020-05-01 22:44:23 +01:00
2020-05-30 00:13:18 +01:00
- LZ4, installed by running `scp lz4.arm.static <REMARKABLE>:lz4`.
Make sure `lz4` is executable by running `ssh <REMARKABLE> chmod +x lz4`.
2020-05-01 22:44:23 +01:00
2020-05-30 00:13:18 +01:00
*"VNC-based" version:*
- Install [rM-vnc-server][vnc] and its dependency [mxc_epdc_fb_damage](https://github.com/peter-sa/mxc_epdc_fb_damage). Instructions can be found in the [wiki](https://github.com/bordaigorl/rmview/wiki/How-to-run-the-VNC-based-version).
2020-05-01 22:44:23 +01:00
2020-05-01 21:50:08 +01:00
## To Do
- [ ] Settings dialog
- [ ] About dialog
- [ ] Pause stream of screen/pen
- [ ] Build system
- [ ] Bundle
2020-05-02 16:43:44 +01:00
- [ ] Add interaction for Lamy button? (1 331 1 down, 1 331 0 up)
2020-05-30 00:13:18 +01:00
- [ ] Remove dependency to Twisted in `vnc` branch
2020-05-01 21:50:08 +01:00
## Credits
I took inspiration from the following projects:
- [QtImageViewer](https://github.com/marcel-goldschen-ohm/PyQtImageViewer/)
- [remarkable_mouse](https://github.com/Evidlo/remarkable_mouse/)
- [reStream](https://github.com/rien/reStream)
2020-05-30 00:13:18 +01:00
- [rM-vnc-server](https://github.com/peter-sa/rM-vnc-server)
- [VNC client](https://github.com/sibson/vncdotool) originally written by Chris Liechti
2020-05-01 21:50:08 +01:00
2020-05-02 16:43:44 +01:00
Icons adapted from designs by Freepik, xnimrodx from www.flaticon.com
2020-05-01 21:50:08 +01:00
2020-05-03 22:11:58 +01:00
2020-05-04 23:05:32 +01:00
## Disclaimer
2020-05-03 22:11:58 +01:00
This project is not affiliated to, nor endorsed by, [reMarkable AS](https://remarkable.com/).
2020-05-05 22:14:53 +01:00
**I assume no responsibility for any damage done to your device due to the use of this software.**
2020-05-03 22:11:58 +01:00
2020-05-01 21:50:08 +01:00
## Licence
GPLv3
2020-05-30 00:13:18 +01:00
[vnc]: https://github.com/peter-sa/rM-vnc-server