pl-semiotics / rM-vnc-server

Damage-tracking VNC server for the reMarkable tablet
GNU General Public License v2.0
88 stars 7 forks source link

Rotate the screen of rM being served #3

Open c-i-p-h-e-r opened 4 years ago

c-i-p-h-e-r commented 4 years ago

Is is possible to rotate the screen of rM being served by the rM-vnc-server so that on the viewer I can see the remarkable in landscape mode. I tried to do this at the viewer end but was unable to get the rotated screen. What I see is just half of the portrait screen which I have to scroll.

Would appreciate any help on this. Thanks.

atondwal commented 4 years ago

You can rotate it with gstreamer https://github.com/peter-sa/gst-libvncclient-rfbsrc

that's sort of hard to set up, so instead I just use ssvnc to resize (but not rotate) the screen.

c-i-p-h-e-r commented 4 years ago

Cannot this be done from the server side like a command line argument to rotate the display while being served?

pl-semiotics commented 4 years ago

I'm inclined to leave rotation in the clients, so that we don't have to either (1) allocate an extra framebuffer's worth of memory on the device or (2) patch libvncserver. Patches to optionally allow this are welcome, but I'm unlikely to write it myself at the moment.

tloimer commented 3 years ago

Here is a patch for gtk-vnc-1.2.0 that rotates the remote screen. Tested with remarkable 2. Drawing with immediate update works on either the desktop screen or on the remarkable tablet. Even when connected via WLAN the delay of an update is hardly noticeable. Requirements for building are meson, ninja, a C compiler and certainly some header files. The patched gvncviewer has a menu option under "View", "Rotate 90° clockwise", that can be toggled.

To build, download gtk-vnc-1.2.0.tar.xz and the attached patch file,

tar -xJf gtk-vnc-1.2.0.tar.xz
cd gtk-vnc-1.2.0
patch -p1 ../add_rotation_to_gtk-vnc-1.2.0.txt
meson ../build
cd ../build
ninja examples/gvncviewer
# now start rM2-vnc-server on, e.g., 192.168.43.105, then start the vnc client
examples/gvncviewer 192.168.43.105