On 10/17/2018 06:21 PM, Jake Champlin wrote:
> On Tue, Oct 16, 2018 at 09:45:52PM -0400, Charles Daniels wrote:
>> 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.
>>
>>
> 
> The jumping up and down vertically should have been fixed via this commit 
> from @bru: 
> https://github.com/openbsd/xenocara/commit/a011f4db8a6b02f5b298f8b631330764f40aa037

Yes, the old version requires exactly vertical movements, any
change of the X position blocks Y inputs.  Some input devices
make it difficult, if not impossible, to be that precise.

> 
> 

Reply via email to