You are not logged in.

#1 2022-05-23 03:23:56

UnWiseRat
Member
Registered: 2022-05-23
Posts: 5

[Solved]Unable to set adaptive mouse acceleration profile xorg

Hi Arch people,

Preface: I am an idiot who might be missing something obvious

The situation: I have a trackball (ploopy trackball), as far as I can tell it uses libinput as the driver, I want to set "adaptive" mouse acceleration.

I have looked around in man pages and at the wiki and there's a fair bit of conflicting info. For instance if read man 4 libinput:

Option "AccelProfile" "string"
              Sets  the pointer acceleration profile to the given profile. Permit‐
              ted values are adaptive, flat.  Not all devices support this  option
              or  all  profiles.  If a profile is unsupported, the default profile
              for this device is used. For a description on the profiles and their
              behavior, see the libinput documentation.

but man xorg.conf

Option "AccelerationProfile"  "integer"
              Select  the  profile. In layman's terms, the profile constitutes the
              "feeling" of the acceleration. More formally,  it  defines  how  the
              transfer  function (actual acceleration as a function of current de‐
              vice velocity and acceleration controls)  is  constructed.  This  is
              mainly a matter of personal preference.

              0      classic (mostly compatible)
             -1      none (only constant deceleration is applied)
              1      device-dependent
              2      polynomial (polynomial function)
              3      smooth linear (soft knee, then linear)
              4      simple (normal when slow, otherwise accelerated)
              5      power (power function)
              6      linear (more speed, more acceleration)
              7      limited (like linear, but maxes out at threshold)

The wiki page:
https://wiki.archlinux.org/title/Mouse_acceleration
Has examples using both libinput style as well as the older xorg.conf style, but the talk page is mostly discussing how the xorg.conf stuff is deprecated and has examples using the libinput style.

On my system if I poke at the mouse using xinput I get a couple of interesting things:

xinput --list-props 16

(where 16 is device number of ploopy trackball mouse for current boot)

show 4 relevant pieces of information

1) libinput Accel Speed (301):    -0.400000 # this is set correctly according to my xorg.conf.d file
2) libinput Accel Profiles Available (303):    1, 1 # this supports both acceleration profiles? (where both are flat and adaptive)
3) libinput Accel Profile Enabled Default (305):    1, 0 # it defaults to flat
4) libinput Accel Profile Enabled (304):    1, 0 # flat is active

If I enter:

xinput --set-prop 16 'libinput Accel Profile Enabled' 0 1

Then I get nice adaptive acceleration that I want. Currently my xorg.conf.d/10-mouseacceleration.conf file contains:

Section "InputClass"
    Identifier "system-mouse-pointer"
    MatchIsPointer "yes"
    Option "AccelProfile" "adaptive"
    Option "AccelSpeed" "-0.4"
EndSection

which is not working. Xorg.0.log uploaded @ https://0x0.st/oaxV.log for reference.

Please let me know if you need more info. Sorry if this is really super obvious and I am being a goose.

Last edited by UnWiseRat (2022-05-23 06:17:48)

Offline

#2 2022-05-23 06:07:35

seth
Member
Registered: 2012-09-03
Posts: 49,992

Re: [Solved]Unable to set adaptive mouse acceleration profile xorg

Then I get nice adaptive acceleration that I want. Currently my xorg.conf.d/10-mouseacceleration.conf file contains […]which is not working.

[     7.320] (II) event2  - Ploopy Corporation Trackball: is tagged by udev as: Keyboard
[     7.320] (II) event2  - Ploopy Corporation Trackball: device is a keyboard
[     7.321] (II) config/udev: Adding input device Ploopy Corporation Trackball Mouse (/dev/input/event5)
[     7.321] (**) Ploopy Corporation Trackball Mouse: Applying InputClass "libinput pointer catchall"
[     7.321] (**) Ploopy Corporation Trackball Mouse: Applying InputClass "system-mouse-pointer"
[     7.321] (II) Using input driver 'libinput' for 'Ploopy Corporation Trackball Mouse'
[     7.321] (**) Ploopy Corporation Trackball Mouse: always reports core events
[     7.321] (**) Option "Device" "/dev/input/event5"
[     7.321] (II) event5  - Ploopy Corporation Trackball Mouse: is tagged by udev as: Mouse Trackball
[     7.322] (II) event5  - Ploopy Corporation Trackball Mouse: device is a pointer
[     7.322] (II) event5  - Ploopy Corporation Trackball Mouse: device removed
[     7.353] (**) Option "AccelSpeed" "-0.4"
[     7.353] (**) Option "AccelProfile" "adaptive"
[     7.353] (**) Option "config_info" "udev:/sys/devices/pci0000:00/0000:00:08.1/0000:0c:00.3/usb9/9-3/9-3:1.2/0003:5043:5442.0005/input/input5/event5"
[     7.353] (II) XINPUT: Adding extended input device "Ploopy Corporation Trackball Mouse" (type: MOUSE, id 15)
[     7.353] (**) Option "AccelerationScheme" "none"
[     7.353] (**) Ploopy Corporation Trackball Mouse: (accel) selected scheme none/0
[     7.353] (**) Ploopy Corporation Trackball Mouse: (accel) acceleration factor: 2.000
[     7.353] (**) Ploopy Corporation Trackball Mouse: (accel) acceleration threshold: 4
[     7.354] (II) event5  - Ploopy Corporation Trackball Mouse: is tagged by udev as: Mouse Trackball
[     7.354] (II) event5  - Ploopy Corporation Trackball Mouse: device is a pointer
[     7.354] (II) config/udev: Adding input device Ploopy Corporation Trackball Mouse (/dev/input/mouse0)
[     7.354] (**) Ploopy Corporation Trackball Mouse: Applying InputClass "system-mouse-pointer"

3) libinput Accel Profile Enabled Default (305):    1, 0 # it defaults to flat
4) libinput Accel Profile Enabled (304):    1, 0 # flat is active

If I enter:

xinput --set-prop 16 'libinput Accel Profile Enabled' 0 1
https://man.archlinux.org/man/extra/xf86-input-libinput/libinput.4.en#libinput wrote:

libinput Accel Profiles Available
2 boolean values (8 bit, 0 or 1), in order "adaptive", "flat". Indicates which acceleration profiles are available on this device.
libinput Accel Profile Enabled
2 boolean values (8 bit, 0 or 1), in order "adaptive", "flat". Indicates which acceleration profile is currently enabled on this device.

Offline

#3 2022-05-23 06:16:00

UnWiseRat
Member
Registered: 2022-05-23
Posts: 5

Re: [Solved]Unable to set adaptive mouse acceleration profile xorg

Wait wait wait wait wait hold on a second.

You're saying it was earth adaptive all along and I was switching it to flat.

Guess my preface was appropriate haha!

That seemed so odd to me since adaptive was supposed to slow the point at low speed and make it fast at high speed but on adaptive the barest twitch has it flying across the screen.

Am I missing something about getting my pointer to be *less* sensitive when I'm not moving it quickly?

Offline

#4 2022-05-23 06:33:31

seth
Member
Registered: 2012-09-03
Posts: 49,992

Re: [Solved]Unable to set adaptive mouse acceleration profile xorg

https://wiki.archlinux.org/title/Mouse_acceleration#Mouse_acceleration_with_libinput wrote:

When using the adaptive pointer acceleration profile, libinput calculates the mouse acceleration depending on the DPI and the parameter Acceleration Speed [2]. libinput relies on the resolution reported by evdev [3]. Feedback settings set with xset m are effectively ignored.

Possibly because of

DPI set to (81, 80); computed from "UseEdidDpi" X config

Personally, I just "xset m 25/10 6" for some usable acceleration rather than some shady tongue blackbox algorithm that's not specified anywhere, overly complex and also doesn't seem to cover trackballs while it special cases every other device under the sun: https://wayland.freedesktop.org/libinpu … l-profiles

Offline

#5 2022-05-23 07:26:54

UnWiseRat
Member
Registered: 2022-05-23
Posts: 5

Re: [Solved]Unable to set adaptive mouse acceleration profile xorg

ack, well thanks for debugging my brain.

Guess I'll do some experimentation and see what sticks.

Offline

Board footer

Powered by FluxBB