Keyboard, pens and tablets

Keyboard does not work on other screens

Linux

If you have more than one screen attached and you select one screen and set it to be in full screen mode, is possible that the keyboard will not work for other screens anymore.

Unfortunately this is a known issue and not related with DCV. There is no 100% working solution as this is how the X display server works.

When the DCV viewer (client) goes fullscreen, it grabs the entire keyboard (even if the mouse is on another application on another monitor). This design is due to the fact that it is the only option available (on X11 systems) to “steal” keyboard shortcuts otherwise intercepted by the window manager (e.g., “ALT-TAB” combination).

One possible solution is make work in full screen mode with drawbacks, but also work without full screen mode.

On client machine, open a terminal and run the command:
gsettings set com.nicesoftware.DcvViewer.keyboard grab-keyboard-mode never

You can reset this config by running:
gsettings reset com.nicesoftware.DcvViewer.keyboard grab-keyboard-mode

By running this command, when the DCV client goes fullscreen it does not grab the entire keyboard.

However, this solution has a drawback. It implies that when DCV client goes fullscreen it cannot “steal” desktop manager shortcuts (e.g., “ALT+TAB” or Winkey). This really depends on the windows manager (and what shortcut has been configured on it).

Change the fullscreen keyboard shortcut

Linux

About the fullscreen keyboard shortcut, it is possible to map it to a function key in the range F1-F24. The keyboard shortcut allows you to use only a single monitor fullscreen.

In the .dcv file:

[keyboard-shortcuts]
fullscreen=F11

Windows

It is possible to map it to a function key in the range F1-F24 using the related parameter of the Windows native client:

dcvviewer.exe --fullscreen-keyboard-shortcut F11

The keyboard shortcut allows you to use only a single monitor fullscreen.

You can configure a shortcut key to toggle between windowed mode and full-screen on single screen, and a shortcut key to toggle between windowed mode and full-screen on all monitors, by adding command line parameters, this example show how to configure SHIFT+F1 and SHIFT+F2:

> "C:\Program Files (x86)\NICE\DCV\Client\bin\dcvviewer.exe" --fullscreen-keyboard-shortcut=SHIFT+F1 --fullscreen-all-keyboard-shortcut=SHIFT+F2

About the Windows key, and in general the keyboard combinations, all the events are redirected to the server when the client window has the focus, both in fullscreen or in windowed mode.

Any keyboard event will have effect only on the server host and not on the client host.

For the notification box, if the Windows focus assist is enabled, it may hide notifications when applications are in fullscreen.You can check Windows documentation for more details:

https://support.microsoft.com/en-us/windows/turn-focus-assist-on-or-off-in-windows-10-5492a638-b5a3-1ee0-0c4f-5ae044450e09

Add mappings of keys

The reason why the physical keyboard works is likely because there is a rule in /usr/lib/udev/hwdb.d/  for the device ID of your keyboard that automatically adds the mapping for those keys.

DCV injects the keyboard input in a generic way into the remote instance and without those mapping on the remote instance, the scancodes injected are not recognized as F13, F14 or F15 (for example). So the suggestion is to manually add the mappings.

To do that, please follow this steps:

  • Backup your current mapping:
    xmodmap -pke > ~/xmodmap_original
    cp -a ~/xmodmap_original ~/.Xmodmap
  • Edit the .Xmodmap and set:
    keycode 191 = F13 F13 F13 keycode 192 = F14 F14 F14 keycode 193 = F15 F15 F15
  • Test the result loading the .Xmodmap:
    xmodmap ~/.Xmodmap

If you want to get the new .Xmodmap, create a script called xmodmap.sh with this content:
#!/bin/bash
if [ -s ~/.Xmodmap ]
then
xmodmap ~/.Xmodmap
fi

Then add +x permission to the script (chmod +x xmodmap.sh) and add it into ~/.xinitrc file.

Print screen, Scroll Lock and Pause being recognized as function keys

Linux

This is not an issue with NICE DCV, but is an issue with Xmodmap (ref: what is xmodmap) not mapping correctly the keys to NICE DCV Session. To fix the problem, identify which FN keys are having problem and follow our fix. We will use as example the keys F13, F14 and F15.

  • Edit the file /usr/share/X11/xkb/symbols/inet and look for this entry:
// Evdev Standardized Keycodes
partial alphanumeric_keys
xkb_symbols "evdev" {
  • Change the bindings from
    key { [ XF86Tools ] };
    key { [ XF86Launch5 ] };
    key { [ XF86Launch6 ] };


    to

    key { [ F13 ] };
    key { [ F14 ] };
    key { [ F15 ] };

This configuration will persist after a reboot.

Keyboards combinations (like ctrl+alt+) are not working

If you are having problems with combined keys (like ctrl+alt+something), try to add this parameter in your DCV Client:

--force-keyboard-combinations

Wacom tablets slow with QUIC / UDP transport protocol

Please check our performance guide, so you can fix this problem: Click here.

Enabling touchscreen and stylus support

NICE DCV support touchscreens and pens using native operating systems API (Linux X11, Windows Inc). No USB redirection is needed and not third drivers are needed inside of NICE DCV Server.

Linux

To enable the Linux support for touchscreen and pens, follow this steps:

  • Edit the file /etc/X11/xorg.conf
  • Add these sections:
Section "InputDevice"
  Identifier "DCV Stylus Pen"
  Driver "dcvinput"
EndSection

Section "InputDevice"
  Identifier "DCV Stylus Eraser"
  Driver "dcvinput"
EndSection

Section "InputDevice"
  Identifier "DCV Touchscreen"
  Driver "dcvinput"
EndSection
  • In the ServerLayout section, add these lines before the EndSection line:
InputDevice  "DCV Stylus Pen"
InputDevice  "DCV Stylus Eraser"
InputDevice  "DCV Touchscreen"
  • Save the changes and restart the X server:
    sudo systemctl isolate multi-user.target
    sudo systemctl isolate graphical.target

To check if it is working, check the result of the command:

sudo DISPLAY=:0 xinput

You need to see the 3 identifiers that you added.

Windows

You do not need to do any action.

Configuring a stylus pressure range

You can set the stylus pressure modifying the value from 0 to 2048. Some applications can have problems with higher values, so this also can fix some eventual problem. Please follow these steps:

  • Edit the /etc/X11/xorg.conf file.
  • You need to set the Pressure2k option to change the stylus pressure. Like this:
Section "InputDevice"
  Identifier "DCV Stylus Pen"
  Driver "dcvinput"
  Option "Pressure2K" "true"
EndSection

Section "InputDevice"
  Identifier "DCV Stylus Eraser"
  Driver "dcvinput"
  Option "Pressure2K" "true"
EndSection
  • Save the file, close and restart the X server:
    sudo systemctl isolate multi-user.target
    sudo systemctl isolate graphical.target

Enabling gamepad support

Linux

Gamepads are not officially supported by NICE DCV Server.

Windows

The following gamepad devices are supported (since 2022.0):

  • Xbox 360 controller (needs a driver)
  • DualShock 4 controller (do not need a driver)

Is possible that other devices related with the above devices will work too, maybe needing some extra configuration.

To enable the Xbox 360 gamepad support you need to follow these steps: