The One with the Thoughts of Frans

xorg.conf: EmulateWheel stopped working on libinput update

I didn’t spot it in the Debian changelog, but apparently the latest libinput10 update on Debian/stretch (unstable) broke my EmulateWheel option. Because the scroll ring on my trackball is broken, it’s all I’ve got. It’s also rather nice on trackballs without any kind of scrolling functionality at all, such as the Logitech Trackman Marble.

Let’s start by examining my current xorg.conf:

$ cat /etc/X11/xorg.conf 
Section "InputClass"
	Identifier	"Kensington Trackball"
	MatchProduct	"Kensington Expert Mouse"
	Option		"SendCoreEvents" "True"
	Option		"ButtonMapping" "0 1 2 4 5 6 7 3"
	Option		"EmulateWheel" "True"
	Option		"EmulateWheelButton" "1"

Scanning man libinput doesn’t list any entries for those options anymore, but it does contain the following:

Option "ScrollButton" "int"
Designates a button as scroll button. If the ScrollMethod is button and the button is logically held down, x/y axis movement is converted into scroll events.
Option "ScrollMethod" "string"
Enables a scroll method. Permitted values are none, twofinger, edge, button. Not all devices support all options. If an option is unsupported, the default scroll option for this device is used.

Note how this would allow you to disable two-finger scroll on e.g. our Wacom drawing tablet if you don’t like it. (But I do!) In any case, adjusting my xorg.conf accordingly:

Section "InputClass"
        Identifier      "Kensington Trackball"
        MatchProduct    "Kensington Expert Mouse"
        Option          "SendCoreEvents" "True"
        Option          "ButtonMapping" "0 1 2 4 5 6 7 3"
        Option          "ScrollMethod" "button"
        Option          "ScrollButton" "1"

Works like a charm. Better yet, it now also scrolls horizontally. Which can be disabled with Option "HorizontalScrolling" "false" if you so desire. All’s well that ends well.

Tags: , ,


  1. What will be in this case replacement old option

    Option "Emulate3Buttons" "false"

    This is for Logitech Trackman Marble

    June 23, 2017 @ 20:28Permalink

  2. I suspect that would be MiddleEmulation, but I don’t use it myself. Quoting from man libinput (it looks like I accidentally wrote man xinput in my text above, corrected now):

    Option "MiddleEmulation" "bool"
    Enables middle button emulation. When enabled, pressing the left and right buttons simultaneously produces a middle mouse button click.

    June 23, 2017 @ 20:38Permalink

  3. So for your opinion my conf file is correct now?:

    Section "InputClass"
    Identifier "Marble Mouse"
    MatchProduct "Logitech USB Trackball"
    MatchIsPointer "on"
    MatchDevicePath "/dev/input/event*"
    Driver "evdev"
    Option "ButtonMapping" "1 8 3 4 5 6 7 2 9"
    Option "ScrollMethod" "button"
    Option "ScrollButton" "8"
    Option "ZAxisMapping" "4 5"
    Option "XAxisMapping" "6 7"
    Option "MiddleEmulation" "bool"

    June 24, 2017 @ 6:13Permalink

  4. Bool as used by the manual is short for boolean, which stands for something like true or false (or 1 and 0, on and off, or yes and no). Although on reading the man page for xorg.conf I just noticed that you can leave the option out if you mean true as that’s the default.

    tl;dr this should do 😉

    Option "MiddleEmulation" "false"

    June 24, 2017 @ 7:56Permalink

RSS feed for comments on this post· TrackBack URI

Leave a Comment

You must be logged in to post a comment.