The remote mouse pointer should track your local mouse when moved, with a slight delay, where the remote follows the local. Your local mouse pointer will appear as a square, whilst the remote is pointer is seen as a regular arrow. When you stop moving your local mouse, your local and remote pointers should come together.
At the top of the VNC application is a toolbar with many options.
The core options for mouse calibration are:-
|Re-Sync Mouse||Moves the remote point to the top left-hand corner of its screen.|
|Calibrate Mouse and Video (if using an analogue VNC product)||Allows you to calibrate the mouse pointer. If you are using an analogue VNC product, you can also automatically calibrate the video.|
To calibrate the mouse, click on the calibrate icon (cross) on the toolbar to start the calibration process. The window that appears next varies between our different VNC products. Click on the appropriate button to begin the mouse calibration process.
Although not seen on your VNC Viewer, the process goes through a number of steps to measure the movement of the mouse pointer. After the process has completed, you will be either told that the calibration was successful or failed. If the calibration failed or you find that the remote mouse pointer is drifting away from your local pointer then the troubleshooting steps below should help to resolve the problem.
There are a number of reasons why your local mouse pointer on the VNC Viewer may not be calibrated with the remote hosts pointer.
As part of the mouse calibration process, the mouse pointer is moved to the top left-hand corner of the screen, moved a few pixels and measured. If anything changes during this process in the area where it is being measured, like the highlight of an icon, this can cause the calculations to fail as the mouse pointer position cannot be determined. Move any icons or objects in the top left corner of the screen that might change colour when the mouse pointer is over them.
On Windows, there is a mouse setting called Enhanced Pointer Precision that when enabled can cause the remote mouse pointer to drift. Open the Windows Control Panel and find the Mouse settings. Under the Pointer Options menu, in the Motion section is the option Enhanced pointer precision which is ticked by default. Untick the checkbox and press OK on the Mouse properties window to commit the change.
This only affects hosts that are using an analogue (VGA) output. Check that the desktop screen resolution matches the resolution that the graphics card is outputting. Graphics cards typically have a preferred resolution that they like to use, which in part is defined by attached monitors capabilities. The graphics card can upscale the desktop resolution to its preferred higher resolution. For example, if your desktop resolution is set to 800x600 but your graphics cards resolution preference is for 1600x1200 then the graphics card will automatically upscale the desktop to 1600x1200, but you would not notice any visual difference.
The consequence of the upscaling is that the mouse calibration measures the movement of the pointer based upon the screen resolution that it is receiving. So if VNC is calibrating for 1600x1200 which is being received but the actual desktop is set to 800x600 then it will fail. There is no simple way to fix this problem as it is the graphics card that is upscaling the video. You could either match the screen resolution that the graphics card is outputting or see if there is a setting on the graphics card to prevent it from upscaling. If neither of these is possible, then as a workaround you could try using Singe mouse mode.
You can check the video resolution that the VNC Viewer is receiving from the host by opening to the Controls menu and navigating to Video Settings. Typically at the top of the Video Settings menu, you should see the screen resolution that is being received. Make sure that the desktop resolution on the host computer matches this resolution.
The single mouse mode feature redirects the mouse movement from your local desktop environment and channels it directly into the VNC Viewer. With direct mouse control being diverted, this gives you precision mouse control of the remote host computer. This does, however, mean that the mouse pointer cannot leave the confines of the VNC Viewer.
To toggle Single Mouse mode on and off, simply press F8 on your local keyboard and either select Single mouse mode from the menu or press P.
To speed up the mouse calibration process, quick mouse calibration is enabled by default. Try disabling this setting by doing the following:-
- Open the VNC and connect to the host as an Admin user.
- Click on the Confgure button in the top right-hand corner.
- From the list of menu options, choose Unit Configuration.
- In the Unit Configuration menu, click on the Advanced Unit Configuration button at the bottom.
- Untick the _Use Quick Mouse Calibration_ option,
- Press Save
- Now exit the Configuration menu's.
- Click on the Controls menu at the top and choose Mouse Control
- Click on the Calibrate button.
The mouse calibration process will perform additional checks which will take a longer than before.
Operating systems such as Windows and Mac support an absolute mouse. An absolute mouse is one that reports the mouse pointers coordinates as it is moved on the screen. Whilst a regular relative mouse, on the other hand, translates movements of the mouse directly to the mouse pointer but it does not know where the pointer is on the screen. It is important to note that absolute mode is only available on USB connections and is not possible via PS/2.
- Open the VNC and connect to the host.
- Click on the Controls menu and choose Video Settings.
- Tick the Absolute Mode check box.
On some unix variants, specifically RedHat 5.5 and Solaris 10, setting the Mouse calibration to Constant motion (Controls -> Mouse Control -> Advanced) and then adjusting the Mouse's acceleration on the OS GUI's control panel has fixed mouse drifting. You need to make small adjustments, each time clicking on the "Re-Sync" to sync the pointers together to find a setting that eliminates the drift.
We've also seen some variants that do not have this option via the GUI, RedHat 7 for instance. In this case you can use a terminal with the below command to disable acceleration and use the "constant" VNC setting under advanced mouse controls.
To see what is currently set you can use the below command. It'll tell you an acceleration value and a threshold before using it.
If this fixes the problem for you, you'll likely need to create a new profile for the change to persist after a reboot. To do this you'll need to create a new conf file in xorg.
Then write the following configuration and save the file.
Identifier "My Mouse"
Option "AccelerationProfile" "-1"
Option "AccelerationScheme" "none"
Option "AccelSpeed" "-1"
Mouse acceleration should then be turned off for your profile and no longer cause the mouse to drift out of sync.