0

Update: now the middle-click emulation no longer works, so I'm more stuck than ever. Pressing buttons 1 and 3 acts as a scroll wheel just like pressing the middle button.

I have a lenovo keyboard with a trackpoint, but need the ability to middle-click and drag. While most of the articles out there say how to enable scroll wheel emulation, I have the opposite problem: The scroll functionality is on by default and I can't turn it off. I can work around the problem with middle emulation, but this is very awkward, because I need to use two hands to do it. Here are the properties reported:

$ xinput list-props 'pointer:Lenovo ThinkPad Compact USB Keyboard with TrackPoint'
Device 'Lenovo ThinkPad Compact USB Keyboard with TrackPoint':
        Device Enabled (155):   1
        Coordinate Transformation Matrix (157): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
        libinput Natural Scrolling Enabled (290):       0
        libinput Natural Scrolling Enabled Default (291):       0
        libinput Scroll Methods Available (292):        0, 0, 1
        libinput Scroll Method Enabled (293):   0, 0, 0
        libinput Scroll Method Enabled Default (294):   0, 0, 1
        libinput Button Scrolling Button (295): 2
        libinput Button Scrolling Button Default (296): 2
        libinput Middle Emulation Enabled (297):        0
        libinput Middle Emulation Enabled Default (298):        0
        libinput Accel Speed (299):     0.000000
        libinput Accel Speed Default (300):     0.000000
        libinput Accel Profiles Available (301):        1, 1
        libinput Accel Profile Enabled (302):   1, 0
        libinput Accel Profile Enabled Default (303):   1, 0
        libinput Left Handed Enabled (304):     0
        libinput Left Handed Enabled Default (305):     0
        libinput Send Events Modes Available (275):     1, 0
        libinput Send Events Mode Enabled (276):        0, 0
        libinput Send Events Mode Enabled Default (277):        0, 0
        Device Node (278):      "/dev/input/event24"
        Device Product ID (279):        6127, 24647
        libinput Drag Lock Buttons (306):       <no items>
        libinput Horizontal Scroll Enabled (307):       0
        Evdev Wheel Emulation (391):    0

You can see I've already disabled the scroll methods available and the horizontal scroll. Even added the Evdev property for good measure. The only obvious thing that might still help is changing the scroll button (property 295), but I can't get that to work:

$ xinput set-int-prop 'pointer:Lenovo ThinkPad Compact USB Keyboard with TrackPoint' 295 8 3
X Error of failed request:  BadMatch (invalid parameter attributes)
  Major opcode of failed request:  131 (XInputExtension)
  Minor opcode of failed request:  57 ()
  Serial number of failed request:  19
  Current serial number in output stream:  20

I'm using Arch Linux. In an ideal world I could find a dynamic solution that lets me enable and disable the scroll wheel at will with a shell script. But out of desperation I'd also be interested in solutions involving xorg.conf or other approaches that require restarting the X server to enable or disable the wheel.

0

Try this:

xinput set-prop <device> 295 3

That seems not to be an int prop.

2
  • 1
    And what would be the inverse command, to restore the default setting? … … … … … … … … … … … … … … … … … Please do not respond in comments; edit your answer to make it clearer and more complete.
    – Scott
    Sep 15 '20 at 3:56
  • @Scott get from the "Default" prop, and then set. Sep 18 '20 at 4:07

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.