First off, I'm new around here, so my apologies in advance if this is
the wrong list or I've formatted something incorrectly.

I've recently installed OpenBSD 6.3 on my Thinkpad X220. I'm happy to
report that almost everything seems to work the way it should
(suspend/resume, wireless, volume controls, etc.). However, I've been
having some difficulty with the TrackPoint.

The TrackPoint works fine as a pointing device, however the "WS
Pointer Wheel Emulation" emulation feature is not working. For those
unfamiliar, this allows the middle mouse button to be held down, and
while it is held, the TrackPoint can be used to scroll vertically or
horizontally.

After conducting some research, I have written the following script to
set the appropriate xinput properties to properly enable the pointer
wheel emulation functionality:

    #!/bin/sh

    xinput set-prop /dev/wsmouse "WS Pointer Wheel Emulation" 1
    xinput set-prop /dev/wsmouse "WS Pointer Wheel Emulation Button" 2
    xinput set-prop /dev/wsmouse "WS Pointer Wheel Emulation Axes" 6 7 4 5
    xinput set-prop /dev/wsmouse "WS Pointer Wheel Emulation Timeout" 500
    xinput set-prop /dev/wsmouse "WS Pointer Wheel Emulation Inertia" 20

I have tried many different variations on the input parameters.
One interesting behavior I have discovered is that if I set the
emulation axes to "4 5 0 0" then I can scroll up and down by moving
the track point left or right by holding the middle mouse button.
However, when I use "6 7 4 5" or "0 0 4 5", the up and down scrolling
generally does not work at all (occasionally jumping in the direction
the trackpoint was pushed).

I have spent several days troubleshooting this issue and haven't had
any luck. I think this may be a bug, but I wanted to see if anyone
else had similar issues and knew of a solution before submitting a bug
report. I am under the impression that this list does not permit
attachments, so I will refrain from attaching the full output of dmesg
and other long logs, but I will include the output of some
commands that I think might be relevant.

Finally, I tried digging into some of the source code for Xenocara and
the wsmouse drive. Unfortunately, my knowledge of OpenBSD and Xorg are
insufficient to draw any useful conclusions. However, I think the
following files may be relevant / a good starting point for someone
more knowledgeable than I:

* xenocara/driver/xf86-input-ws/include/ws-properties.h
* xenocara/driver/xf86-input-ws/src/emuwheel.c

I would really appreciate any suggestions to troubleshoot further.

Charles


### possibly relevant output follows

nessus$ dmesg | grep -i mouse
wsmouse0 at pms0 mux 0
nessus$ dmesg | grep -i ws
wsdisplay0 at inteldrm0 mux 1: console (std, vt100 emulation)
wsdisplay0: screen 1-5 added (std, vt100 emulation)
wskbd0 at pckbd0: console keyboard, using wsdisplay0
wsmouse0 at pms0 mux 0
nessus$ xinput
⎡ Virtual core pointer                        id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                    id=4    [slave pointer  (2)] ⎜   ↳ /dev/wsmouse                                  id=7    [slave pointer  (2)]
⎣ Virtual core keyboard                       id=3    [master keyboard (2)]
    ↳ Virtual core XTEST keyboard                     id=5 [slave  keyboard (3)]     ↳ /dev/wskbd                                      id=6 [slave  keyboard (3)]
nessus$ xinput list-props /dev/wsmouse
Device '/dev/wsmouse':
        Device Enabled (140):   1
        Coordinate Transformation Matrix (141): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
        Device Accel Profile (253):     0
        Device Accel Constant Deceleration (254):       1.000000
        Device Accel Adaptive Deceleration (255):       1.000000
        Device Accel Velocity Scaling (256):    10.000000
        WS Pointer Middle Button Emulation (257):       2
        WS Pointer Middle Button Timeout (258): 50
        WS Pointer Wheel Emulation (259):       1
        WS Pointer Wheel Emulation Axes (260):  4, 5, 0, 0
        WS Pointer Wheel Emulation Inertia (261):       20
        WS Pointer Wheel Emulation Timeout (262):       500
        WS Pointer Wheel Emulation Button (263):        2
nessus$ cat /etc/X11/xorg.conf
nessus$ X -version

X.Org X Server 1.19.6
Release Date: 2017-12-20
X Protocol Version 11, Revision 0
Build Operating System: OpenBSD 6.3 amd64
Current Operating System: OpenBSD nessus.domain_redacted 6.3 GENERIC.MP#107 amd64
Build Date: 24 March 2018  02:38:24PM

Current version of pixman: 0.34.0
        Before reporting problems, check http://wiki.x.org
        to make sure that you have the latest version.


Reply via email to