bordaigorl / rmview Goto Github PK
View Code? Open in Web Editor NEWA live viewer for reMarkable written in PyQt5
License: GNU General Public License v3.0
A live viewer for reMarkable written in PyQt5
License: GNU General Public License v3.0
I am sorry if this is not the right place to discuss this, still pretty new to all of it.
I have installed rmview successfully and it was working perfectly. However not anymore.
The steps I take to set up the server and connect with remarkable are the same, but for some reason the device refuses the connection.
I have tried replacing the rM-vnc-server script and its dependent, but I am stuck with the same result.
Any help?
Thank you
Today I tried to use rmview and was unable to connect due to an invalid private key. The error persisted also after pulling the newest version.
The key I'm specifying in the config works fine when connecting to the rM via the ssh
command.
Output of rmview is below:
Fetching configuration from remarkable/software/rmview/rmview.json
{'ssh': {'address': 'remarkable', 'username': 'root', 'key': '~/.ssh/id_rsa', 'timeout': 1}, 'orientation': 'landscape', 'pen_size': 15, 'pen_color': 'black', 'pen_trail': 0, 'background_color': 'black', 'fetch_frame_delay': 0.03, 'lz4_path_on_remarkable': '/usr/opt/lz4', 'hide_pen_on_press': False}
('Invalid private key', [_OpenSSLErrorWithText(code=67764350, lib=4, func=160, reason=126, reason_text=b'error:040A007E:rsa routines:RSA_check_key_ex:iqmp not inverse of
q')])
$ ./result/bin/rmview config-usb.json
Searching configuration in config-usb.json, rmview.json, /Users/siraben/Library/Preferences/rmview.json
Fetching configuration from config-usb.json
{'ssh': {'address': '10.11.99.1', 'username': 'root', 'key': '~/.ssh/id_rsa', 'timeout': 2}, 'orientation': 'portrait', 'pen_size': 10, 'pen_color': 'red', 'pen_trail': 200, 'background_color': 'black', 'hide_pen_on_press': False}
Connecting...
Connected to 10.11.99.1
1
Installing...
QIODevice::read (QFile, ":bin/rM1-vnc-server-standalone"): device not open
<class 'TypeError'> object of type 'NoneType' has no len()
Bye!
Hi, I have an rM1 but when launching rmview from the command line after connecting to the device an 'Unsupported Device' error appears stating "The detected device is reMarkable Prototype 1" - see below.
I bought my rM1 well after it was launched so I'd be surprised if it was a prototype. Do you think there anything I can do to get rmview to work on my remarkable?
FYI, just in case it may be relevant, I'm still on update 2.1.1.3.
Thanks,
Dom
Hello everyone,
thank you for developing review. Its been really helpful so far!
Recently however I had an issue with the python window. From one day to the other it wasn't opening anymore. The computer seems to connect the Remarkable.
(base) Johanness-MacBook-Pro:rmview Johannes$ rmview
Searching configuration in rmview.json, /Users/Johannes/Documents/Remarkable/rmview-vnc/rmview.json
Fetching configuration from rmview.json
{'ssh': {'address': '10.11.99.1', 'username': 'root', 'key': '~/.ssh/id_rsa', 'timeout': 2}, 'orientation': 'auto', 'pen_size': 10, 'pen_color': 'red', 'pen_trail': 1000, 'background_color': 'black', 'hide_pen_on_press': False}
Connecting...
Connected to 10.11.99.1
And the icon also does appear...
I have the anaconda installation of python.
Thank you for your help in advance!
The correct name for the package seems to be py-lz4framed. See https://pypi.org/project/py-lz4framed/
Running the pip command as described in the README gives me a package not found error.
Hi, first off, thanks for this software, it's great and very fast! :)
I'd like to make a request to use a non-default binary location on the remarkable tablet. Currently for the RM2 the binary path appears to be hardcoded to /home/root/rM-vnc-server-standalone
. I'd like to customize that to /home/root/bin/rM-vnc-server-standalone
as part of an effort to keep my /home/root
directory clean and uncluttered.
I see two main options for this:
~/.config/rmview.json
file/home/root/bin/rM-vnc-server-standalone
as a path for rmview to look for the binary, and use it if foundIf either of those approaches (or a third one) appeals to you, then I could look into preparing a PR.
Apparently, the VNC server binaries need to be recompiled to work with the new reMarkable software version 2.6, since some shared libraries were updated to new versions in this update. (At least libcrypto.so was updated; Iโm not sure about others.)
I have already opened a corresponding issue at the rM-vnc-server repo.
Absolutely superb job with this tool - thank you. I'm trying to use it with OBS and Chroma Key to superimpose Remarkable drawings real-time onto a video stream (Zoom call in this case). I can't get the Chroma Key working with a white background - can the background canvas color on rmview be changed? I was hoping that the bg_color option would do this but it doesn't seem to.
If the RMVIEW_CONF
environment variable is not set, it will still be added as None
to config_files
. This crashes the program when calling str.join(config_files)
with the following stack trace:
Traceback (most recent call last):
File ".\src\rmview.py", line 183, in <module>
rMViewApp(sys.argv)
File ".\src\rmview.py", line 38, in __init__
log.info("Searching configuration in " + ', '.join(config_files))
TypeError: sequence item 2: expected str instance, NoneType found
I'm not sure if this is possible, but if it is, one feature I'd like to see is an indicator similar to the one which displays in red when hovering with the pen, but that tracks finger drags/taps instead.
Paramiko supports file transfers so rmview could check if mxc_epdc_fb_damage.ko
and rM-vnc-server
are present beforehand and transfer them if they are not. They could be included in the python package and even transferred to a temp directory every time. This would make setup as simple as pip installing rmview.
I like the latter option of transferring the files every time to a temp directory out of the python package installation directory since it wouldn't require any setup on the side of the remarkable and doesn't leave any permanent changes
When I execute python src/rmview.py
it reports
File "src/rmview.py", line 156
rmConnect(**self.config.get('ssh'),
^
SyntaxError: invalid syntax
Without any real overview of the code, I've tried setting manualy rmview.json
(since it never asked me to, because it didn't execute), but it had no effect. I followed the pyrcc5
step beforehand.
The system is an openSUSE, I've installed the paramiko
package.
Hello, i've downloaded the Win64 exectuable bundle and have encountered an issue.
I have entered my devices IP, password and have re-installed several times.
I have factory reset the rM2, connected to the appropiate cloud services and have updated the software to version 2.7.0.51
Has this issue been encountered before?
Thank you for your time
after installing rmview it worked flawless on both of my windows devices.
After installing toltec/remux the screen appears in rm view when write or push an action the screen flickers onetime and after that the remarkable doesn't respond anymore.
I am on a Windows 64-bit laptop. I had to install the dependencies manually with Python 3.9, but also ran the automatic install command afterwards. When I try to run the program, I am unable to connect to the RM2 because it cannot find the SSH host key. Glancing at the source code, it appears to only be looking in UNIX directories - which is obviously an issue on a Windows laptop. When I tried to enable the "insecure_auto_add_host" option, the program crashes because the JSON settings file is not created. Thusfar, it is completely worthless on my PC and I would very much appreciate an explanation how the author got it to work on a Windows machine.
Hi,
I'm probably stupid, but I can't find the instructions for installation of the vnc branch. In the readme, it just says to use 'pip install .'...I've unsuccessfully tried 'pip install rmview'. Could you specify the correct name of the package ?
Thanks,
Marc.
Hi Emanuele,
thank you indeed for this fantastic tool.
I just mention that I cannot get the following example.json parameter to work
"key": "~/.ssh/id_rsa"
The conf.json file works fine when I use the parameter
"password": "xxxxxx",
The message is '... not a valid RSA private key'. But the key is valid: ssh root@ip_address works with no password.
Roberto
I experimented with sharing the rmView window in an online meeting room via the browser's screen sharing. This works wonderfully so far, with one small exception. The window content is only updated as long as at least a small window area remains visible. As soon as another window completely overlaps the rmView window, the window is no longer redrawn. As I am on macOS and Apple does something similar with Safari to save battery power, it could be specific to QT under macOS. Perhaps the behaviour can be influenced, so a shared rmView window could be moved into the background in an online meeting?
When using a password, I get the following error:
Searching configuration in rmview.json
{'ssh': {'address': '10.11.99.1', 'password': 'ZHHCfCoNbC'}}
Connecting...
Could not connect to None: Server '10.11.99.1' not found in known_hosts
Please check your remarkable is connected and retry.
Server '10.11.99.1' not found in known_hosts
when using an SSH key, I get a different error:
Searching configuration in ./config.json, rmview.json
Fetching configuration from ./config.json
{'ssh': {'address': '10.11.99.1', 'username': 'root', 'key': '~/.ssh/id_rsa', 'timeout': 1}}
name 'QInputDialog' is not defined
I am otherwise able to ssh into the device.
When executing rmview
and typing in the IP address, this is the resulting error diagnostic:
Unknown host key for server '192.168.0.210': got 'AAAAB3NzaC1yc2EAAAADAQABAAABAQCtM8uAkB0w5jj23/5YxlPQjk3rYBR8FQm3M6qF7n7aYtH8uBZw2TihEwHejM9ClfaJZGuJwQWNoaOyfOyT3NfqDjC3VflkDbMxuTPHMr003qIBU3NY7/BLeQdqUNM752KtVtKu+PumAYlvLjQrqq03FB8OT11xJ1tK7jKeBbG19wQvqjO1SFjr4ll03M137uv+XvXQtQRmYbcwlo8VenlDLU586buupyodG6if65XWm0W105dMlB9p4IVu46o2L+OZMUpoM/0XK3WCxajQuwDVIcGlmcPX3i97Ccln2AKxZJ9m1WRtM5X1lFK9F8ZIqrQxKN6UpeSNQW4zmMYWSAV/'
Any ideas on how to debug? There is no password for the remarkable so I just pressed enter for it.
As per title; the passphrase is the one used to access identity of my laptop device, not the one used to connect to Remarkable. rmview.json
is pretty much unmodified, and I don't have any particular notes from the build of dependencies.
I am able to authenticate succesfully, without passphrase query, via just ssh
.
I have a rM1, and software is updated to the latest release (2.5.0.27).
I report a problem that occurred recently on rmview for rM2, although it seems to be happening also for rM1 (but not as severely).
After duplicating a frame, the duplicate is often closed by the very act of writing or tracing the pen on the tablet.
The rubber tip seems to also trigger this.
This does not happen very regularly: sometimes I can go on and keep writing with even more than one duplicated frames, but the frames anyway last for not more than a few minutes, before they all close due to a pen stroke.
It is very strange because it only appeared recently. Last week I could clone frames and keep writing without issues for hours. I do not remember updating anything on my machine, and this happened before the problematic update to rM 2.6.
I take advantage of this to suggest that upgrading the frame-cloning feature to target a bipartite or tripartite window would be very useful. For example one could select to have rmview show a number of windows (labeled by an index) at all times. When cloning a new frame the user could then direct the frame to window number j.
Just an idea.
Thanks!
It seems that at least for me, only a white screen is displayed on Windows. I'm planning on taking a look at the issue (very little Python, no Qt experience) and preparing a patch in case I succeed, but I'd like to hear from others and their experience on Windows?
Thanks!
As soon as I start rmview, it straight up makes the tablet go icicle, I have to reboot it. Nothing interesting via journalctl -f
on the device. After uninstalling rm2fb
, no more issues.
I found I could not build Twisted, thus rmview, w/Python 3.8.2. It seemed likely related to this:
https://stackoverflow.com/questions/64111438/how-to-fix-error-pip-install-twisted-on-mac
I can reproduce the logs if you like. I suggest adding a version or subversion number to the python3 requirement in the readme. Please let me know if either the logs or this suggestion are useful, if so, I'm happy to follow up.
Ideally this should be in toltec for easier distribution and updates.
I can't connect to my remarkable 1. I tried vnc and ssh on a MacBook Pro.
after document is set to landscape view.
Steps to reproduce:
Updating the firmware on RM1 apparently changes the host key for the SSH server. We should consider giving special handling to this since it may not be obvious what to do for non-technical users
Packaging on PyPI allows users to easily install rmview and encourages packaging for distros
rmview
is incredible and has changed all my zoom meetings!!! Thank you!!!
Had a quick question that I couldn't find an answer to in the README:
How can I switch the popup from coming up every time I run rmview
? Right now I need to press enter twice, but it seems like it should be possible to have it automatically connect to the IP.
This is the popup where I need to press enter twice:
First of all, great product. It seems to be very responsive. However, when the pen is in contact with the screen, the rmview thinks that it is hovering and doesn't apply ink to the canvas.
Today I went to use rmview
and it no longer worked. Turns out the IP address of the remarkable had changed on my local network. What's the simplest way to work around this?
Thanks!
While packaging up rmview
using Nix, I encountered the following error when I run it. The IP is live and SSH works. What could be the cause?
Please check your reMarkable is properly configured, see the documentation for instructions.
Connection failed: [Failure instance: Traceback (failure with no frames): <class 'twisted.internet.error.ConnectionRefusedError'>: Connection was refused by other side: 61: Connection refused.
]
The performance seems to go down significantly (updates maybe 1-2 times a second) when hovering with the pen (and the CPU usage hovers around 80%). I am using settings "pen_size": 30, "pen_color": "red", "pen_trail": 200. This even happens if pen_trail is zero (i.e. if I just want to see a red dot).
While writing (without pen trail) the viewer updates much smoother.
Would it be possible to create an IOS app with this functionality?
I'm sure it would be very popular.
Hi! Let me first say: thanks a lot for your work: rmview is an essential feature that makes using the remarkable a competitive option w.r.t. other tablets (and a much better one in my opinion).
Unfortunately, my remarkable 2 updated on its own today (my bad for not blocking auto updates), and it now seems impossible to restore a connection using rmview.
I have tried everything: from reinstalling rmview to removing all ssh keys associated to the old rM and adding new ones, to tweaking the settings... Nothing seems to work, and I keep getting
Connection failed: [Failure instance: Traceback (failure with no frames): <class 'twisted.internet.error.ConnectionRefusedError'>: Connection was refused by other side: 61: Connection refused.
I do manage to connect using manual ssh.
Now this is critical because I am currently using rM and rmview for work, so any help will be greatly appreciated.
Thank you!
I've tried with both of these and rmview.py still requires the IP and password. I'm running with
python3 rmview.py rmview.json
the contents of my rmview.json is
{ "ssh": { "address": "XXXXXXXX", "username": "root", "password": "XXXXXXXX" "timeout": 1 }, "orientation": "portrait", "pen_size": 10, "pen_color": "red", "fetch_frame_delay": 0.03 "lz4_path_on_remarkable": "/usr/opt/lz4" }
But if I misspell rmview.json it doesn't through an error, so I'm guessing it's ignoring the argument.
Hi,
First of all, thanks a lot for rmview! It's been super useful to turn my remarkable into a little whiteboard I can use on Zoom calls. I have been using it succesfully on my RM1 and, more recently, RM2.
Anyway, here is a small issue I've been experiencing, in case you find the feedback useful.
I am on Ubuntu 18.04, and I use a tiling window manager (i3wm), which by default doesn't show window frames. This means that I don't have a "close" button to click to terminate the application when I'm done with rmview (II imagine that e.g. on gnome one is expected to close rmview by clicking on the usual 'x' in the upper right corner). Most applications will close the current window/tab (or terminate altogether) when receiving the CTRL+W (or CTRL+Q) keyboard shortcut (for instance, it is listed as a standard application shortcut in the GNOME guidelines: https://developer.gnome.org/hig/stable/keyboard-input.html.en), and that's how I usually close GUIs. This doesn't seem to work with rmview, so I am typically left to kill the application when I'm done with it. This is of course not a problem at all, but still I thought it'd be useful to flag it as something you may potentially look into at some point in the future. Unless I've overlooked something, in which case I apologise in advance!
Hi,
Thanks for your great work ! I've enjoyed a lot your script when you were using lz4, but it's way more quicker with VNC now and offers the possibility to really stream my writing. I'm planning on using it for remote lessons in this pandemia time...
However, I still find the resolution quite poor. Saddly, I think this is the native resolution of rM png export... but do you think there could be a way to have a better rendering ? More like the one of svg and pdf export files, where you don't see the pixels, but every thing is rounded thanks to svg-like paths ?
Hi, thanks a lot for rmview, I think it's really great! I recently got a remarkable 2, and tried to use both branches. The vnc branch didn't connect at all, but the ssh branch showed me a black screen that just flickered every time something on the screen changed. Do you know what could be causing the problem?
I really like this project and I intend to use it in my remote teaching.
There is something that I like in Google Jamboard that I think will be a fine addition to this project: It is the ability to show a fading trail following the pen when you hover (but not press) over the screen. It is great for pointing/circling things while explaining. Ideally, a parameter in config
would control for the length/duration of this trial.
Hello,
I am running nixos 20.09 and I installed the rmview dependencies through conda, then I built the rmview.whl and installed it with pip. I tried to connect with the example config but here is what I got:
Unfortunately when I typed, nothing appeared on the screen. Since I wasn't able to write my passphrase, I edited the config to provide my password, this time it didn't ask me anything but I got this error:
Thank you for your help,
Thomas
FrameBufferWorker
assumes that lz4 is in $HOME rather than the more standard $PATH; maybe this should be a configurable option?
I get the error " libcrypto could not be decompressed on the tablet". Was it solved? I didn't find the solution. Please help me making it work!!! Thanks
rmview.py would not run, telling me that there is a syntax error on line 171
File "/Downloads/rmview-vnc/src/rmview/rmview.py", line 171
rMConnect(**self.config.get('ssh'),
^
SyntaxError: invalid syntax
When stopping the rmview service when the reMarkable device is sleeping, rmview can't stop the VNC service on the device.
Good news: It tells you this, and gives you instructions on how to stop the service manually.
Bad news: It gives you incorrect instructions on how to stop the service manually.
What it says:
You can manually terminate it by running ssh {IP address of device} killall rM-vnc-server-standalone
.
Why this is a problem:
Unless your username is root, this will not work, as the default username for ssh is your username.
What it should say:
You can manually terminate it by running ssh root@{IP address of device} killall rM-vnc-server-standalone
.
Branch used is version2.6
As someone who came to this project through Google search, the question mark I had in mind was what's the difference between this and the official LiveView client and I didn't find it mentioned in the README.
Amending this information improves the chance the searcher downloads this to try.
The First difference I can think of is this one runs on Linux desktop.
It helps to mention of this uses the same protocol as LiveView (i.e. it's considered a LiveView client from the tablet's prospective)
When I'm writing, the red pointer shows up immediately after the pen tip stops touching the screen, and so it shows up during writing (unless it's an uninterrupted line). It would be nice to have an option for showing the pointer only after some predefined short time since the last tip touch.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.