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.

  1. Open Settings from the application menu or system tray.
  2. 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:

  1. Install and launch GNOME Tweaks.
  2. Navigate to the Keyboard & Mouse section.
  3. Locate Acceleration Profile under the Pointer section.
  4. 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.2
  • For 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 true
  • For 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.