Linux – Mouse sensitivity confusion

linuxmousexorg

In my few years of using Linux from using Windows for so long, there have been many new concepts for me to grasp. One of the more obvious seeming mysteries to me is how the mouse is configured in Linux. As a life-long Windows gamer, I've always seen mouse acceleration as my nemesis, as I would expect many gamers.

I can remember being baffled when I first started (using Fedora 9) and finding that I had no mouse acceleration when the acceleration level was in the middle, not when it was turned right down. From then until Fedora 14 it was all dandy set like that, but when I recently moved to Fedora 17, these settings don't feel right.

The only time I don't have acceleration is when the acceleration is turned right down, except then the mouse is very insensitive and the sensitivity level makes no difference at all.

I read recently about a command called xset which lets you have control over the actual values of the variables 'acceleration' and 'threshold' (the number of 'dots' travelled at which point the cursor should accelerate), and someone suggested that perhaps the way to have no acceleration is to set threshold to 1 and use the acceleration value as the sensitivity. However, this doesn't work, even with the threshold set to 1. I can still clearly detect acceleration.

I know I'm using vague words, but you'll have to take my word for it when I say it "feels" like it has acceleration, no matter what I set it to. Even now, as I'm clicking in this text box to correct typos, I'm not hitting the right spot as I would do on Windows with my normal mouse motion because of it.

I should mention that I don't use a fancy mouse or anything; it's just a Microsoft IntelliMouse Optical that you might find in an office (yes, not the favourite mouse for gamers). Have I missed something obvious, or is it really a complicated thing to change?


EDIT: this post:

(Some settings to remove mouse acceleration.)

So now we have no acceleration, but is that what we want? The mouse is a bit slow now. Sadly that's how it is. With acceleration disabled you get a 1:1 relationship between the mouse and the display. You move the mouse left one dot and the mouse pointer moves one pixel left. If there were a way to multiply the input movement (say by 2) then every other pixel on each axis would be inacessible to the mouse. That would make accurate positioning of the mouse pretty difficult. The 'sensitivity' setting in some GUI mouse control panels actually does the opposite of what you would expect – the most sensitive is a 1:1 ratio – it's the acceleration which makes it seem so much faster.

I find this a bit hard to believe, or at least that sensitivity does move a number of dots on screen per dot moved by the mouse.

Best Answer

It is a complicated thing, taking into account the time domain, the infinite possibilities for an acceleration (or velocity) curve, framerate- or delay-independent behavior, etc.

Matching behavior with closed-source OS'es or drivers is nigh-impossible, but X.org provides you with ample choices for your taste, provided you take the time to read the documentation or the source.

Non-accelerated behavior (flat acceleration curve, linear velocity curve, linear mouse response or N pixels per 1mm of movement) is the only truly universal, easy-to-adapt and easy-to-adopt behavior. Ironically, it's also what most systems lack or make very hard to get. (See this open question, for example.)

Assuming you want linear response, I'll direct you back at the question you've linked.

Related Question