How to transmit locally entered modifier keys or shortcuts to the remote desktop via VNC? Mask or escape them somehow?

7

I am connected to a xmonad desktop but am only able to use the first workspace. How can I change to other workspaces?

Furthermore: If the last terminal is closed, I can’t do anything. How can I open a new terminal? The problem is, that my local xmonad catches the keystrokes.

Generally speaking

  • Is there some magic key combination (shortcut) to circumvent the locally absorbed keystrokes, that is to escape the local shortcut to be able to send them to the remote VNC desktop? I mean something similar to screen, where you can press Ctrl+a a to submit a simple Ctrl+a to screen’s subprocess.

  • Or is there a way to enable and disable kbd capturing, as known from virtual machines’ visual interfaces? I mean like the right Ctrl key in virtualbox.

If that is of any interest: I am using x11vnc as the server and vncviewer from tigervnc (tightvnc) as the client/viewer. But I would change both of them, if that helps.

erik

Posted 2014-02-21T12:42:12.133

Reputation: 1 519

I'm not sure it's the same cause/problem, but I found this on a forum: "switching from tightvnc to x11vnc and connecting to the root desktop (:0) solved my problems". Did you try that already? – m4573r – 2014-02-21T13:24:26.023

Eh, well, the problem is, that the keystrokes get grabbed by my local desktop. It is not a Xmonad specific problem, I think, but more general: How is it possible to mask or escape local keystrokes so that the can pass to the remote machine via vnc? Btw. I am using x11vnc. :-) – erik – 2014-02-21T13:31:56.170

Answers

4

Ok, I stumbled over a hint in the man page, which I seem to have overseen before. The F8 key is the magic key: F8 opens a popup window where you can select Ctrl or Alt modifier to be locked. Then I can just press a number for a different workspace and then again F8 to unlock the Alt modifier.

Unfortunately other modifiers are not selectable. But that already helps.


Citing the man page from tiger vncviewer which is common for Red Hat, CentOS, Fedora, …:

POPUP MENU
       The viewer has a popup menu containing entries which perform various actions.  It is usually
       brought up by pressing F8, but this can be configured with the MenuKey  parameter.   Actions
       which the popup menu can perform include:

         * switching in and out of full-screen mode

         * quitting the viewer

         * generating key events, e.g. sending ctrl-alt-del

         * accessing the options dialog and various other dialogs

       By  default, key presses in the popup menu get sent to the VNC server and dismiss the popup.
       So to get an F8 through to the VNC server simply press it twice.

Citing the man page from tight vncviewer which is common for Debian, Ubuntu, … (much shorter description):

You  can  use  F8 to display a pop-up utility menu. Press F8 twice to pass single F8 to the
remote side.

erik

Posted 2014-02-21T12:42:12.133

Reputation: 1 519

0

I have encountered a similar scenario. Running tigervnc to connect to remove linux server on windows laptop. Getting the etc... keys to stay in the tigervnc session to switch workspaces on the host that I am connected to through tigervnc. What worked for me was to change the linux system keyboard preferences to use -N for N=1..4 to switch to that workspace. Those keystrokes now stay in the tigervnc sessions regardless of what boxes are checked in the tigervnc menu (default by pressing F8). I still cannot get things like --arrow to stay in tigervnc but my primary use case has been met by the above workaround.

Paul

Posted 2014-02-21T12:42:12.133

Reputation: 141