Clicks Per Minute Click Chronometer Run the test

Method

Pointer acceleration breaks the measurement

Windows and macOS both ship it on. It makes the same physical movement produce different counts, which is fatal to a DPI reading and to any sensitivity you convert.

A clicks per minute chronometer dial showing two different readings from one distance, the signature of pointer acceleration

Without acceleration, a mouse count always moves the pointer the same distance. With it, the distance depends on how fast you were already moving: a slow drag is scaled down and a quick one is scaled up. Both operating systems ship this turned on, and it is the reason two careful measurements of the same mouse disagree.

It is also the reason people conclude their mouse is faulty, their sensor is lying, or their DPI setting never applied. Usually none of those is true. The sensor reported honestly and something between it and the pointer rewrote the number on the way past.

What acceleration actually is

A mouse sensor reports counts — discrete steps of movement, at a rate set by its CPI. Nothing about that changes when you move faster. Move an 800 CPI mouse one inch and it reports 800 counts, whether that inch took a second or a tenth of one.

What changes is what the operating system does with them. Without acceleration the mapping is a constant: every count becomes a fixed number of pixels, so distance in equals distance out. With acceleration the multiplier becomes a function of velocity — the faster the counts arrive, the more pixels each one is worth.

The consequence is the part that matters for measurement: the same physical distance no longer produces the same pointer travel. Two identical drags at different speeds land in different places. Every calculation downstream that assumed a fixed ratio is now working from a number that moved.

Where each system hides it

SystemWhat it is calledDefault
WindowsEnhance pointer precisionOn
macOSNo exposed controlOn
Linux (libinput)Adaptive acceleration profileOn

Windows puts a checkbox in Control Panel → Mouse → Pointer Options. Clearing Enhance pointer precision disables the curve. The separate pointer speed slider is not acceleration — it is a flat multiplier, and its sixth notch is the only one that maps counts to pixels one to one. Anything either side of the middle scales your input even with the checkbox cleared.

macOS offers no checkbox at all. It applies a curve to every mouse by default, and switching it off means writing the preference directly:

defaults write -g com.apple.mouse.scaling -1

then logging out and back in. The Tracking speed slider in System Settings is a separate control and leaving it alone does not disable anything.

Linux under libinput exposes two profiles. The default is adaptive; setting the flat profile gives a constant multiplier and is the equivalent of clearing the Windows checkbox.

What it does to a DPI reading

Measuring DPI means dragging a known distance and dividing counts by inches. That arithmetic assumes the ratio is fixed. With acceleration on it is not, so the answer depends on how fast your hand happened to move:

DragReading for an 800 DPI mouse
Slow and carefulwell under 800
Normalnear 800
Quick flickwell over 800

None of those is your mouse’s DPI. A result that lands far from any standard step — 400, 800, 1600, 3200 — is almost always this rather than an unusual sensor setting.

The tell is repeatability. Run the DPI test three times at three deliberately different speeds. With acceleration off, the three readings cluster within a few per cent. With it on, they spread, and they spread in the direction you would predict: slower drags read low, faster ones read high.

What it does to a converted sensitivity

Worse, because the damage is silent. A conversion holds your turn distance constant, and turn distance is only a property of the setup when counts map to degrees at a fixed rate. With acceleration on, a slow turn and a fast turn cover different angles from the same hand movement, so the converted value is correct on paper and wrong in play.

This is the failure people describe as a sensitivity that “feels off” after moving between games. The converter did its arithmetic correctly on the numbers it was given. One of those numbers was a DPI reading taken through an acceleration curve, and every figure derived from it inherits the error.

Raw input is the exception, not the rule

Most competitive games read raw input — they take counts directly from the device and bypass the operating system’s pointer pipeline entirely. That is why acceleration can be on system-wide and a game can still feel consistent, and why the setting is worth finding and enabling wherever it exists.

A browser never does this. Everything a web page receives has already been through the OS curve, which is why any measurement taken in one — including every measurement on this site that involves movement — has to have acceleration switched off at the source. There is no correction that can be applied afterwards, because the curve is not linear and the original counts are gone.

How to tell whether it is on

A two-minute check, with nothing to install:

  1. Put the pointer against the left edge of the screen.
  2. Move the mouse right across the mat slowly, in one steady sweep. Note where the pointer stops.
  3. Return the mouse to its starting position, lifting it clear of the mat.
  4. Make the same sweep quickly.

With acceleration off, both sweeps land the pointer in the same place, because the same physical distance produced the same travel. With it on, the fast sweep travels noticeably further — often two or three times as far.

The lift in step three matters. Dragging the mouse back along the mat feeds the return journey through the same curve and muddles the comparison.

Turning it off, and what to expect

Expect a week of feeling slower. Acceleration lets a hurried movement cover more ground, and a hand that has learned to rely on that will undershoot for a while once it stops happening.

That adjustment is the point rather than a side effect. A constant mapping is what makes muscle memory transferable: the same movement produces the same result every time, so the distance your hand learns is a distance it keeps. With a velocity-dependent curve, every movement has to be made at the speed it was learned at to land where it landed before.

Set the sensitivity afterwards, not before. Turning the curve off changes the effective speed of every movement you make, so any value tuned with it on is tuned to a mapping that no longer exists.

What it does to click speed

Nothing. Clicking is not motion, and no acceleration curve touches a button event. A click test is the one measurement on this site that does not care — which is worth knowing, because it means a click rate taken on a badly configured machine is still a valid click rate. Movement is the thing the curve distorts, and movement is the thing to switch it off for.

← All blog posts