VNC client with send key capability

Hi all.

does anyone know by chance a VNC client, which is able to send key codes (e.g. “@”) to the VNC server session?

My normally used krdc can’t, RealVNC viewer and TigerVNC also can’t.

Background: I want to upgrade my Leap 15.2 VPS to 15.3. For this I want to make a Clonezilla image from 15.2, stored from VPS via ssh to my Leap box @home. Clonezilla runs as a so called “rescue system” for the VPS, temporary, booted instead of 15.2. That’s why only VNC access is possible, no ssh access TO the clonzezilla rescue system. Only FROM Clonezilla.

Unfortunately there’s an unfixed for years bug in the VNC sessions, all based on KVM etc., that the VNC session has some “strange” character settings. E.g. “/” is (good luck at least) only available as ÷ on the num pad. Unfortunately the at sign @ is NOT available. But URGENTLY needed.
Got the hint from the hosting company’s support that e.g. UltraVNC should be able to send keys, but only available for mswin.

Any hints would be great,
thanks,
Michael

UltraVNC works fine in Linux under wine - I put mine is the wine C: drive. It also allows the typematic keystrokes and it’s one bug is the numlock is opposite of the what is showing.

wine “C: \Program Files\VNC\Ultraviewer.exe” (ignore space after : )

UltraVNC also have a Java based VNC viewer: https://github.com/ultravnc/UltraVNC/tree/main/JavaViewer

To use it:

Main-Class: VncViewer.class

  • jar cfe JavaViewer.jar VncViewer Manifest.txt *.class
  • java -jar [FONT=monospace]JavaViewer.jar HOST localhost PORT 5900[/FONT]

Since we have the soure code of this VNC client, you can easily change the following lines of code: https://github.com/ultravnc/UltraVNC/blob/main/JavaViewer/ButtonPanel.java#L138-L146

To be:



       final int modifiers = InputEvent.SHIFT_MASK;

        KeyEvent ctrlAltDelEvent =
          new KeyEvent(this, KeyEvent.KEY_PRESSED, 0, modifiers, KeyEvent.VK_2);
        viewer.rfb.writeKeyEvent(ctrlAltDelEvent);

        ctrlAltDelEvent =
          new KeyEvent(this, KeyEvent.KEY_RELEASED, 0, modifiers, KeyEvent.VK_2);
        viewer.rfb.writeKeyEvent(ctrlAltDelEvent);


and it will send the @ symbol to the remote end when you click the “Send Ctrl-Alt-Del” button in the VNC Viewer.

Note, the above works for me since I am assuming pressing SHIFT + 2 generates the @ symbol on the keyboard. If you use a different keyboard layout on your remote VNC server, then you will need to adjust the KeyEvent.VK_2 to one of the following VK_something keys: https://docs.oracle.com/javase/7/docs/api/java/awt/event/KeyEvent.html#VK_2

@jchoksi and @larryr THANKS for helping!!!

Result: OMG…

So I was finally able to start UltraVNC via wine. And “send” the 64 alt code to my VPS VNC “rescue” session. Got (again) a “2” instead of the urgently need “@” :mad:

Call my hosting company’s good luck always available and usually pretty good support and complained again about this for years unfixed vnc keyboard issue, which simply prevents me from upgrading my vps to Leap 15.3 …

But this time I’ve got the solution !!!

→ Missing piece of information was, that the “alt code”, <ALT>+64 for “@”, which can be entered via ANY vnc client, not only UltraVNC as said by tech support before, **** MUST **** be entered via the NUMERIC KEYPAD, NOT via the “6” and “4” above the normal letters :beat-up:

However, I’vea now as many “@” as I need, can share them if anyone needs some, and can now scp the Clonezilla error log to my Leap box @home

Cheers,
Michael

P.S.: Now, with having my key issue solved, Clonezilla imaging via ssh didn’t break the image anymore … so I didn’t need the @ anymore :-S

And the most important finding:

The upgrade from 15.2 to 15.3 was the smoothest zypper dup I’ve ever made. No need to move additional repos anymore, simply great.

THANKS TO ALL who made this possible!