If your Bluetooth mouse speed resets after every restart on Linux Mint Cinnamon, the problem is usually that xinput changes are temporary.
Commands such as xinput set-prop only affect the current X11 session. After a restart, logout, or Bluetooth reconnect, those settings can reset.
The permanent fix is to configure the mouse in two places:
- Cinnamon’s persistent mouse settings
- Xorg/libinput device configuration
This guide is for Linux Mint Cinnamon running on X11.
1. Confirm You Are Using X11
Run:
echo $XDG_SESSION_TYPE
Expected output:
x11
If it says wayland, this Xorg config method will not apply.
2. Find Your Mouse Name
Run:
xinput list --name-only
Example output:
Virtual core pointer
Virtual core XTEST pointer
HP Bluetooth mouse Mouse
ASUP1204:00 093A:200C Touchpad
Find the exact mouse name.
Example:
HP Bluetooth mouse Mouse
You will use this exact name later in the Xorg config.
3. Test the Speed Temporarily
Before making the setting permanent, test it live:
xinput set-prop 'HP Bluetooth mouse Mouse' 'libinput Accel Speed' -0.35
xinput set-prop 'HP Bluetooth mouse Mouse' 'libinput Accel Profile Enabled' 0 1
xset m 1/1 4
Replace HP Bluetooth mouse Mouse with your actual mouse name.
If the speed feels right, continue.
4. Save Cinnamon Mouse Settings
Cinnamon can override mouse acceleration after login, so set its persistent mouse values too:
gsettings set org.cinnamon.desktop.peripherals.mouse speed -0.35
gsettings set org.cinnamon.desktop.peripherals.mouse accel-profile 'flat'
Verify:
gsettings get org.cinnamon.desktop.peripherals.mouse speed
gsettings get org.cinnamon.desktop.peripherals.mouse accel-profile
Expected output:
-0.34999999999999998
'flat'
5. Create the Permanent Xorg Config
Create a new config file:
sudo nano /etc/X11/xorg.conf.d/90-bluetooth-mouse-speed.conf
Paste this:
Section "InputClass"
Identifier "Bluetooth mouse speed"
MatchProduct "HP Bluetooth mouse Mouse"
MatchIsPointer "on"
MatchDevicePath "/dev/input/event*"
Driver "libinput"
Option "AccelSpeed" "-0.35"
Option "AccelProfile" "flat"
Option "AccelerationNumerator" "1"
Option "AccelerationDenominator" "1"
Option "AccelerationThreshold" "4"
EndSection
Replace this line:
MatchProduct "HP Bluetooth mouse Mouse"
with your actual mouse name.
For example:
MatchProduct "Logitech MX Master 3"
6. Restart
Restart the computer, or log out and log back in.
7. Verify After Restart
Run:
xinput list-props 'HP Bluetooth mouse Mouse' | grep -E 'Accel Speed|Accel Profile Enabled'
You should see something like:
libinput Accel Speed: -0.350000
libinput Accel Profile Enabled: 0, 1
Then check X pointer acceleration:
xset q | grep -A1 'Pointer Control'
Expected:
Pointer Control:
acceleration: 1/1 threshold: 4
What Each Setting Does
AccelSpeed controls libinput pointer speed. Valid values are usually between -1 and 1.
AccelProfile set to flat disables adaptive acceleration and makes mouse movement more predictable.
AccelerationNumerator, AccelerationDenominator, and AccelerationThreshold match this command:
xset m 1/1 4
MatchDevicePath "/dev/input/event*" prevents the rule from incorrectly matching raw /dev/input/mouse* devices.
Troubleshooting
If the setting does not apply, check whether Xorg loaded the rule:
grep -i 'Bluetooth mouse speed\|AccelSpeed\|AccelProfile' /var/log/Xorg.0.log
If your mouse name changed, rerun:
xinput list --name-only
Then update the MatchProduct line in:
/etc/X11/xorg.conf.d/90-bluetooth-mouse-speed.conf
If Cinnamon still overrides the profile, run again:
gsettings set org.cinnamon.desktop.peripherals.mouse accel-profile 'flat'