Middle-click Not Working
Recently I installed an update for the Synaptics UltraNav (touchpad/pointing stick combo) in my Lenovo ThinkPad X201 Tablet from Windows Update. This driver in the 16.2.x series broke my TrackPoint's middle-click function in Windows. By this, I mean that I want the middle button on the TrackPoint to work exactly like the middle button on a real mouse.
The default configuration of the Synaptic driver causes the middle button to enable a scrolling mode that emulates mouse wheel input to applications. Some may prefer the scrolling functionality, but I hate it. I use the middle button regularly to open web browser links in new tabs as well as to close existing tabs. This is a common user interface convention in web browsers (as well as in other tabbed applications like Notepad++). Note that you can still scroll in these applications as holding down the middle mouse button enables a scrolling mode.
In past drivers, you could go into the TrackPoint settings and change the scrolling mode from "Standard" to "Smooth". (You could also set the middle button to pop up a magnifier tool.) Inexplicably, this option has been removed from the latest series of drivers. Furthermore, the default Synaptics behavior is to clear your settings when upgrading drivers (see below) so that you will be stuck with the new default behavior.
If you have just upgraded, the simplest fix is to roll back your drivers to the previous version. In Windows 8 (follow a similar procedure for Vista/7) you must open the Device Manager.1 Look for "Mice and other pointing devices" and double-click the "ThinkPad UltraNav Pointing Device". Select the "Driver" tab and press "Roll Back Driver". After a reboot you should be able to configure your TrackPoint as you had in the past. This fall under the if-it-ain't-broke-don't-fix-it category of solutions.
At some point, however, you may require a driver update. In my case, this was because I purchased a new ThinkPad Helix that of course has no option to change the middle-click behavior. The following registry tweaks may be useful for anyone in a similar situation. I am providing the changes I made, but the usual disclaimers about editing the registry apply. For your convenience, I am including registry files you may download and merge.
Windows Registry Editor Version 5.00 [HKEY_CURRENT_USER\Software\Synaptics\SynTPEnh\UltraNavPS2] "TrackPointMode"=dword:00002214 "TrackPointModeFunction"=dword:00000010
TrackPointMode value by default is
0x1214. Here changing the flags to
0x2214 appears to change the scrolling behavior from "Standard" to "Smooth". On the X201,
TrackPointModeFunction worked fine as
0x11, but I had to change it to
0x10 on the Helix to stop the "scrolling cursor" from appearing momentarily.2
Once you have this fixed, you may want to remove the "scrolling cursor" that appears when doing things like two-finger scroll. I prefer not to see it, and it seems this "feature" may actually cause trouble with GTK+ applications.
Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\Synaptics\SynTPEnh] "UseScrollCursor"=dword:00000000
Finally, as I mentioned above, user settings get deleted upon driver updates. This is not something you should necessarily change. The structure of these registry keys and values could change at any point and keeping settings in an old format could be problematic. However if you are curious this setting appears relevant:
Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\Synaptics\SynTPEnh] "DeleteUserSettingsOnUpgrade"=dword:00000001
Changing the value to
0x0 should change this behavior. Proceed at your own risk!
NB: On the Helix I have one small additional problem. When performing a middle-click, the action does not register unless I move the TrackPoint slightly up and down. It seems that the driver does not send the appropriate mouse button messages until the TrackPoint moves as well. This is annoying, and I do not have a way to fix this. It's better than the default behavior though, so it'll have to do. Let me know if you have any suggestions.