I use this in my xorg.conf: Section "InputClass" Identifier "All Mice" MatchIsPointer "yes" Option "AccelerationProfile" "-1" Option "ConstantDeceleration" "0.5" # This is smaller <1 EndSection If I set ConstantDeceleration as a float < 1 , on next start, X sets it to 1 instead: > xinput --list-props 14 ... Device Accel Constant Deceleration (265): 1.000000 If I do instead this: > xinput --set-prop 14 'Device Accel Constant Deceleration' 0.5 > xinput --list-props 14 ... Device Accel Constant Deceleration (265): 0.500000 This works just fine. Also any value >1 will work with xorg.conf
These has been tried with multiple mice, so I think it is not related to a driver or device.
git grep shows ConstantDeceleration is handled in the core xserver input code, not any of the drivers under Input/*, so moving to that component.
I encountered this bug as well. It occurs if the "ConstantDeceleration" option is specified in xorg.conf. It does not occur if the "Device Accel Constant Deceleration" is set using xinput. The source of the bug is in ProcessVelocityConfiguration() in xf86Xinput.c, where the value of "ConstantDeceleration" is only used if it is > 1.0. I verified that the value is recognized correctly after changing the conditional to != 1.0. Based on the code, "AdaptiveDeceleration" is also subject to the same bug. Note that xorg.conf(5) explicitly says that a value of ConstantDeceleration between 0 and 1 is allowed and will "speed up the pointer". This is the expected behavior, in my opinion.
Created attachment 124409 [details] [review] proposed patch Attached a proposed patch. I also sent it to the mailing list.
A slightly modified version of my patch was committed (da9fec4eddd554b4b709ba58b4436aef5a76cd51). This solves the problem. Closing this bug.
What is the point in discussing bugs and making patches if bugfixes aren't included in 1.18? The bugfix will finally land in popular distributives like Ubuntu not earlier than the beginning of 2018.
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.