bk138 / multivnc

MultiVNC is a cross-platform Multicast-enabled VNC viewer based on LibVNCClient. The desktop client runs on Unix, Mac OS X and Windows. There also is an Android client.
GNU General Public License v3.0
460 stars 66 forks source link

Can be treated in MultiVNC a Reseed Screen Size Configuration Event and MTX #169

Closed RalfWerner closed 2 years ago

RalfWerner commented 2 years ago

Typical for phones/tablets are rotation of the device but also split screen and on devices with PiP (popup view) the free choice of the picture*) (window) size. In addition, nonfloating OS-KB (On Screen or Soft Keyboard) and EK (Extrakeys) restrict the usable size. Here an example with Termux-X11**). In ~/.vnc/config, a size is set, which should then be calculated from the above parameters.

Consequently, in this case, a pinch zoom lower 100% was no longer required. Another feature request would then be the option/prereference: Direct, Mouse (finger=mouse, I may not have discovered yet) mode. Especially for Direct mode (Generic Events in X11), Pinch or other multitouch actions of VNC are incompatible because this should be treated by the XClient.

*) MultiVNC supports this function in opposite to RealVNC-Viewer (only full screen) **) Is a XServer in preparation, based on Termux Environment and Xvnc is the VNC-Server (package) of Termux.

Question: Is your app capable of being used as Xserver (open for details) - Examples: next commit and #176 Bug report. The topic _Remote maintenance_ I have been dealing with TeamViewer for several years (TV free of charge for my family). As far as I understood, **MultiVNC** is also an alternative to it and I suspect you know the tool and also RealVNC. In all three tools, limitations are included with X11/Xorg, in which I am insecure, _**whether they can solve at all?**_ The **mouse mode** is at least included in **TV** and PiP-enabled your app is in contrast to **RealVNC**. ### To Termux App and related plugins: The Termux developers have currently decided to maintain the _targetSdkVersion=**28**_, which excludes the publication on PlayStore. The reason is that the **29** restriction (executeables/ELF files are only allowed in `*.apk`) for a development environment as Linux is _the deadly_. But that does not apply to your App. For this reason, the app artifacts are offered on F-Droid and Github only. I had inserted above links to **app+X11**, with which you can install/build them yourself. In addition, the plugins **Float+Widget** for multi-session usage are helpful if you like to work with Termux. I personally like to use the term "One-Touch Start=**OTS**". I can simply explain the process: _tap on_. Currently, I used only in exceptional cases the package `Xvnc` (otherwise `Xwayland`=PID3) to start the four processes of [OTS](https://github.com/termux/termux-float/issues/37#issuecomment-916777123) with XClient=PID4. PID1 is Termux and here is PID2=MultiVNC started with:`am start -n com.coboltforge.dontmind.multivnc/.MainMenuActivity`

MT=MultiTouch should be treated at least optionally by the XClients (MTX), which excludes processing by MultiVNC and EK= ExtraKeys should be outside the ReseedScreen (below). The green circle is therefore to be converted in EK and it is also a switch (as with TV: blue circle/arrow in EK at Phone/Pad) necessary, that activates MTX. MultiVNC uses MT at Zoom/Pinch and for the (emulated) Mouse Buttons (MB). The MB itself are also MT and with each Key/Button increases the number of possible actions expaceentially ***).

RS=Reseed Screen means everything is visible also without screen-shift and mouse mode (pointer=finger as in TV,X11) works and nothing is covered by non-Xclient-Ornaments (except floating KB),

***) Is +/- Press/Release, in between possibly a move and *=1 (mostly left) there is only one: +1-1 action -e.g. S-Pen. At *=2, there are six: +1-1, +2-2, +1+2-2-1, +1+2-1-2, +2+1-1-2, +2+1-2-1 Actions such as: +1+2-1+1-2-1 are not counted and I consider an action as finished when all MB has been released.

Mice are mostly *=3, only two point geometries between +/- and switch on most devices/emulations into another mode with simultaneous + multiple MB. There may also be several mice/touchpads connected and weel rotation corresponds usually to +,- with *=4/5 for forward/backwards

Finger actions are comparable but * is not limited and each finger has its own +/- point geometries (Direct mode only). Furthermore, an action for different Windows can be implemented differently and the + fingers of an action are made on different Windows.

To check MultiVNC and the alternative comparison apps, phones/tablets whose scrcpy/TV reflection can be used to a PC or AVD emulation. Unfortunately, all these alternatives behave different or do not allow some actions. The desired MT/RS behavior can be seen with the X11 app on real Phones/Tablets.

RalfWerner commented 2 years ago

You had on my question "MultiVNC can be used as XServer" already responded (no - is VNC client). Since this option is recommended in Termux with RealVNC as XServer together with the Xvnc process (PID2), here is still a try of this tool and first I ...

Check TeamViewer (TV) Features and compare with MultiVNC

TV seems used not only VNC. When I set up a maintenance session between two Android devices (Pad maintain Phone), the phone is edited on the Pad with all rotations and full multi-touch support. Phone's zoom but does not work and TV has other limits, a changed way of working and I suspect something like scrcpy (Phone-> PC mirror e.g. with USB - in the shot left) only slower. Strangely enough, the reverse maintenance session is very different. I used scrcpy to reflect the Phone (Huawei) on the PC and made the following screen shot: grafik On the Phone, a maintenance session to the pad is built up with a blue circle (zoom over NavBar right) and the Session Bar at the Picture bottom. Above, four apps (in Picture on the pad) are arranged. First, an other maintenance session: Pad to the PC (top left with session bar at the bottom) is built. Here the arrow icon between KB and flash icon corresponds to the blue circle or mouse mode. Among them is the Termux app and right next to it the X11 app with two multi-touch capable XClients whose log is visible in Termux. Both apps have an ExtraKey line at the bottom. Under X11 is the photo app.

This creates a recursive picture. Especially the blue zoom circle. This allows the TV zoom function to be turned off and Multi-Touch is then supported by the XClients: Wild doodle with 5 fingers at the top right in X11 or with pinch zoom from the phone from the photo app image of the pad or the mail text (Thunderbird) of Enlarge the PC.

In addition, no geometry is not specified in the phone connection properties, while the PAD is the size of the current screens (2nd PiP) of the two PC monitors. Next to it (3. PiP) is the keyboard toggle that replaces the icon bar replaced by TV Extra Keys and displays OS-KB. And in the 4th PiP (before the flash) is toggled between mouse (here) and touchpad operation. In the mouse mode, the whole screen is always displayed and pinch zoom would also enlarge from the mail text in Thunderbird (PC). At the bottom right is the Multivnc (PIP)

Check X11/RealVNC-Viewer Features and compare with MultiVNC

touch check with X11 (Xwayland) and Xvnc

touch.c is a small check program to check different environments, events and windows processing. Here without Window Manager and the destination no windows to lose or cover in the fingerwork.

In this X11-touch Video are modified Screen sizes explained - open for details https://user-images.githubusercontent.com/45426380/125047883-b241a300-e09f-11eb-9952-09bd1f22f905.mp4 a XLIB+XCB window with `*.xpm+*. jpg` graphic displayed and `*.jpg` is also used as wallpapers. In XCB, the reduced root screen is displayed over the rotated shadow. Both windows have been slightly shifted in the first two seconds with fingers/mouse. Subsequently, various Configure Events were checked. Between 0:11 and 0:13 is a typical phone rotation.

The X11 version had no Reseed Screen mode and rarely ExtraKeys (EK), but now. Here is another video (27 seconds):

https://user-images.githubusercontent.com/45426380/138826536-8a696f46-e187-488d-a452-8c6e0a2e4433.mp4

It starts with X11 (left iP), RealVNC (center/background+KB with ExtraKeys) and MultiVNC (right top iP) underneath a part of Termux (also PiP). The two *VNC Apps use the same Xvnc process (PID3). A subsequent geometry change does not seem to be possible without PID2 restart. Effects for Reseed Screen (RS) in the Video:

The pictures are partly transparent, so reactions can be tracked in others. However, the overlay with texts I have subsequently made in the Screen Record file.

The geometry is in ./vnc/config: H=W=1400 and the screen a square WxH (unchanged by device rotation), which does no more make shift the screen shift (zoom) with full representation. Unfortunately, MultiVNV often does not achieve this condition but only reductions to 50% or 75%. This bug should be resolved to achieve a correct mouse mode. The mouse mode then corresponds to the pointer movement with the S-Pen (I used in video) or an external mouse, without screen movement under the pointer.

RealVNC reduces WxH with pinch on the residual surface of the screen after all KB surfaces are withdrawn (:00 and :07) and TV does that even without pinch in mouse mode. At RealVNC, there is no mouse mode with Fingers and no iP (in Picture) feature. Touchpad mode is identical to TV and RealVNC: The pointer moves in parallel to the finger or the screen moves under the central pointer.

In MultiVNC, the process in need of getting used to. It depends on the speed and the beginning of the finger movement but also from the screen scalation. In Basic control I've not found an explanation to it. Switch to TV mode would be helpful Mouse buttons (optionally) are included in both *VNC but the wheel I found only in RealVNC but in MultiVNC "Tastenkombinationen". This is managed in all other tools via EK line and a green circle menu (overlap XClients) district does not exist there.

Potentiales: new/changed features of MultiVNC

Willkommen auf der MultiVNC Hilfeseite! Dies wird eine kurze Einführung in die grundlegende Bedienung.

Basic Control

Nach dem Verbinden beginnen Sie im Ansichtsmodus, wo Sie den Remote-Desktop sehen. *1) Ihr Zeiger wird von einem violetten Kreis markiert - Sie können diese Funktion ausschalten über das Menü ändern. Am unteren Rand des Bildschirms werden dann drei virtuelle Maustasten sein. Diese können auch ausgeschaltet werden, aber Sie werden sie verwenden wollen, weil sie ziehen von Dinge auf dem Remote-Desktop ermöglichen. Wenn virtuelle Maustasten deaktiviert werden, wird ein einzelnes tippen irgendwo auf dem Bildschirm eine linke Maustaste emulieren. Ein doppeltes tippen wird mit der rechten Maustaste klicken auf der Remote-Seite senden. Die Tastatur kann ein- und ausgeschaltet über das Menü oder die Tastatur-Taste umgeschaltet werden, die auf dem Bildschirm nach einem langen Tippen erscheint. Einfügen Kopieren zu und aus der Android-Zwischenablage erfolgt automatisch, MultiVNC hält die Zwischenablage des Remote Gerätes synchron mit der lokalen. Verwenden Sie einfach die üblichen Mittel der Zwischenablage Manipulation auf der Fernbedienung (Ctrl-C & Ctrl-V auf Windows/OS X wählen und mittlere Maustaste auf Unix).

Gesten

Scallierung Ein- und Aus-zoomen des Bildschirms ist über OpenGL Hardware-beschleunigt und kann auf zwei Arten ausgelöst werden: Erstens ist mit einer Zwei-Finger-Pinch-Geste, wie in Android Foto-Galerie. Auf Low-End-Geräte, die auf dem Bildschirm durch eine lang drücken überall eingeleitet werden nicht Multi-Touch-Unterstützung, Zoomen kann auch - Zoom-Steuerung erscheint dann. Swipe Pfeiltasten Mit dem linken klauen, rechts, oben oder unten mit zwei Fingern können Sie ein linken senden, rechts, oben oder unten-Taste auf die Remote-Seite Pfeil. Praktisch für wie Präsentationsfolien oder der Steuerung. Touchpad-Modus Dies ist ein wirklich schneller Fernbedienungsmodus von MultiVNC wo kein Bildschirminhalt übertragen wird. Vorgesehen für Situationen, in denen Sie, den Remote-Bildschirm nicht zu sehen brauchen, z. B. für Fernsteuern Ihres Laptop während einer Präsentation mit einem Projektor von Ihrem Telefon aus. Kann über das Menü aktiviert werden. *2) Bookmarking Wenn Sie die aktuelle Verbindung zu einem Lesezeichen versehen möchten, tippen Sie einfach auf das Lesezeichen und speichern den Eintrag. Ein Lesezeichen wird für den späteren Zugriff erstellt.

Was fehlt im Hilfe-Text:

1) Ein Menü wird durch tippen auf den grünen Kreis oben rechts geöffnet und geschlossen. 2) Zeiger-Geräte (Maus) angeschlossen über BlueTooth oder USB oder ein S-Pen können wie gewohnt benutzt werden. Mit "long tap" (Finger Tippen und halten) wird ebenfalls in den "Zieh-Modus" umgeschaltet (siehe Gesten).

bk138 commented 2 years ago

I have trouble understanding the exact feature request. https://ddbeck.com/bug-reports-that-get-results/ has some info on how to achieve a good feature request.

RalfWerner commented 2 years ago

I have trouble understanding the exact feature request.

The Feature Request above is still in progress. I will mark the completion here. Simpliest would be: add blue circle, but that requires knowledge of TV. Can I do that with you?

News (mark/response-needed) from my investigations:

I'm still testing and have also created a Bug Report but release now the current state. And ip.zip, to repeat the checks of bugs and features. I hope you have time for it and success. Actually, the VNC client should also be used with VNC servers (Xvnc at Termux) across other mobile devices. Unfortunately I've no successful - you? The installation statement in #176 you can also use here in #169 (Feature Request extendet by RS/MTX). I checked again today and needed about one hour to repeat all screens (Shots). The second time it will go faster and you will probably need longer. Here are a few tips if you want to try it.

bk138 commented 2 years ago

I still have trouble understanding the exact feature request. https://ddbeck.com/bug-reports-that-get-results/ has some info on how to achieve a good feature request. Please make this easy for me to digest: a short and concise text, say 500 chars max.

RalfWerner commented 2 years ago

Please make this easy for me to digest: a short and concise text, say 500 chars max.

The two sections above behind > Question: are 546 characters and describe it well (MT... RS...). As I wrote to you, I was surprised by Multi-Touch and you said: "Yes, that's a feature and should do so :)" - so there is still hope. But if the effort is too high, you can also close this issue.

bk138 commented 2 years ago

Hmm, I maybe got it ;-):

RalfWerner commented 2 years ago

MultiTouch: this cannot easily be conveyed by the RFB protocol, so: No.

Now, I did not understand that! The VNC Client - So here MultiVNC is the only tool with which I edit the XClient! In my case, touch.c (in ip.zip) is MT-enabled and I can decide that with the touch/move of the two windows with two fingers, they are moved on the screen - or something else, instead of a pinch-zoom always. Still No. or simply not easy?

Another example: Adopted, the entire screen from a Pad with PiP (popup-View) is displayed on a phone - I have not succeeded in ). In one of the PiP of the Pad, a photo with the photo app is edited and I would like to use the phone (maintainer), the pinch zoom function of this photo app on the pad. Is that possible or never? ) With TeamViewer I already had Maintain success and the photo is the colorful dragon from the example above and the blue circle switches between MT-Phone and MT-Pad.

"RS" Nope, won't work on exaclty this

Reseed Screen works for RealVNC and TeamViewer and also X11 exactly so! If the result of the Polish Project is, that the ornaments of the Window-Manager are visible at any time and can be used at any time, that's also Ok.

RalfWerner commented 2 years ago

Notes on the "Polish project" and some of the requests R:

Apparently many of the requester are familiar with Termux - you too in between? R: #156 is identical with my to EK=ExtraKeys Request. At best with the Termux-edited variant and please outside the RS, which is partially faulty in X11. This variant has the advantage that most problems with the EK lines are already solved. R: #124 Would then be superfluous if fullscreen (always in MultiVNC) is working at the same time R; #162 Behind the 546 char (above) I have described the MB=mouse button options that are possible but currently do not all work correct (not just MB3). It would be easier to integrate MB in EK and escapably to Shift/ALT with a single/permanent function. Thus, then RS is possible. R: #58 And a few others would then be superfluous. R: #161 Handles the comparison with bVNC and different modes. I'll test the tool too. To touch screen/pad mode, I had something described above and the praise for the S-Pen support I closed myself without restriction.