GNOME Mouse Speed, Acceleration, and Scrolling
This article explains how the GNOME desktop environment manages input
preferences for mice and touchpads. Users can configure pointer speed,
acceleration profiles, and natural scrolling through the built-in
Settings application, the GNOME Tweaks utility, or directly via
command-line tools using gsettings. Beneath the graphical
interface, GNOME relies on the libinput library to deliver
consistent, fine-tuned pointer behavior across both Wayland and X11
sessions.
Built-In GNOME Settings
The standard way to configure primary input devices is through the GNOME Control Center.
- Open Settings from the application menu or system tray.
- Select Mouse & Touchpad from the sidebar.
Within this panel, GNOME separates settings into dedicated sections for the mouse and touchpad:
- Mouse Speed and Touchpad Speed: Sliders adjust the pointer velocity. These sliders modify the sensitivity multiplier applied by the system to input events.
- Natural Scrolling: A toggle switch allows users to invert the scroll direction. When enabled, content moves in the same direction as your fingers (replicating smartphone touchscreen behavior). When disabled, scrolling follows traditional desktop behavior.
- Touchpad Gestures and Tapping: This section also includes toggles for "Tap to Click" and two-finger right-clicking, which directly influence how the touchpad handles navigation.
Pointer Acceleration Profiles
While the main Settings menu provides a speed slider, it does not expose pointer acceleration profiles. By default, GNOME uses an "adaptive" acceleration profile, meaning the cursor moves faster when the physical device is moved quickly and slower during precise movements.
To switch between acceleration curves, users can employ GNOME Tweaks:
- Install and launch GNOME Tweaks.
- Navigate to the Keyboard & Mouse section.
- Locate Acceleration Profile under the Pointer section.
- Choose between:
- Adaptive: Scales cursor speed dynamically based on physical movement velocity.
- Flat: Disables acceleration entirely, ensuring a 1:1 linear relationship between physical movement and on-screen movement (often preferred for gaming and precision design work).
Command-Line Configuration with Gsettings
For automation, remote administration, or scripting, GNOME exposes
all input properties through its dconf database via the
gsettings command-line utility.
Adjusting Pointer Speed
Pointer speed values range from -1.0 (slowest) to
1.0 (fastest), with 0.0 representing the
default.
For Mouse:
gsettings set org.gnome.desktop.peripherals.mouse speed 0.2For Touchpad:
gsettings set org.gnome.desktop.peripherals.touchpad speed 0.2
Setting the Acceleration Profile
Values can be set to 'flat' or
'adaptive'.
For Mouse:
gsettings set org.gnome.desktop.peripherals.mouse accel-profile 'flat'For Touchpad:
gsettings set org.gnome.desktop.peripherals.touchpad accel-profile 'flat'
Toggling Natural Scrolling
Natural scrolling accepts a boolean value (true or
false).
For Mouse:
gsettings set org.gnome.desktop.peripherals.mouse natural-scroll trueFor Touchpad:
gsettings set org.gnome.desktop.peripherals.touchpad natural-scroll true
Underlying Architecture: libinput
GNOME delegates physical event processing to libinput, a
library that provides a unified input stack for Linux display servers.
When you alter mouse or touchpad settings in GNOME, the desktop
environment translates these user configurations into properties
accepted by libinput. Under modern Wayland sessions, the
GNOME display compositor (mutter) communicates directly
with libinput, ensuring minimal input latency and
eliminating the configuration conflicts historically encountered with
legacy Xorg drivers.