- Keyboard does not work on other screens
- Linux
- Change the fullscreen keyboard shortcut
- Linux
- Windows
- Add mappings of keys
- Print screen, Scroll Lock and Pause being recognized as function keys
- Linux
- Keyboards combinations (like ctrl+alt+) are not working
- Wacom tablets slow with QUIC / UDP transport protocol
- Enabling touchscreen and stylus support
- Linux
- Windows
- Configuring a stylus pressure range
- Enabling gamepad support
- Linux
- Windows
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:
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/bashif [ -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 ] };
tokey { [ 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:
- Search for the driver in the link https://www.catalog.update.microsoft.com/Search.aspx?q=game+devices+XBOX+360+Controller+For+Windows
- Download the newest driver
- Open the .cab file and extract its contents:
expand filename.cab -F:* .
- Install the .inf driver file with the command:
pnputil /add-driver filename.inf /install