One of my pet hates in GNOME 3 on Fedora 16/17 (perhaps in other distributions also) is the apparent lack of functionality in the mouse pointer speed/acceleration. The GUI seems to have very little influence on the user experience…
As you can see, despite the fact that these options are dropped to the lowest setting possible, I found that the mouse pointers sensitivity was ridiculous. There have been a number of bugs raised previously, e.g. https://bugzilla.redhat.com/show_bug.cgi?id=390131 but was closed years ago. It appears that this bug has shown it’s ugly face again! Until this is fixed, an easy solution to this problem is to modify some of the properties in xinput. Modifications are typically done via a terminal but it’s (of course) easy to make these persist by scripting it and making sure it gets executed upon login (see further below for an example)
To use xinput properly, you need to know which device’s properties you want to modify, a simple ‘xinput’ command can show you all of the devices currently being used (and can be modified)…
[rdo@soundwave ~]$ xinput ⎡ Virtual core pointer id=2 [master pointer (3)] ⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)] ⎜ ↳ Logitech USB Laser Mouse id=10 [slave pointer (2)] ⎣ Virtual core keyboard id=3 [master keyboard (2)] ↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)] ↳ Power Button id=6 [slave keyboard (3)] ↳ Power Button id=7 [slave keyboard (3)] ↳ Apple, Inc Apple Keyboard id=8 [slave keyboard (3)] ↳ Apple, Inc Apple Keyboard id=9 [slave keyboard (3)] ↳ Eee PC WMI hotkeys id=11 [slave keyboard (3)]
So, in my case, I want to modify my ‘Logitech USB Laser Mouse’; to show all of the properties you can use the following:
[rdo@soundwave ~]$ xinput list-props 'Logitech USB Laser Mouse' Device 'Logitech USB Laser Mouse': Device Enabled (131): 1 ...(and so on)...
But the ones we’re primarily interested in here are as follows-
- “Device Accel Constant Deceleration”
- “Device Accel Velocity Scaling”
You can have a play with these values, making sure you’re happy with the speed/acceleration of your mouse, specific for your device. I set the following attributes/properties:
$ xinput --set-prop "Logitech USB Laser Mouse" "Device Accel Constant Deceleration" 1.5 $ xinput --set-prop "Logitech USB Laser Mouse" "Device Accel Velocity Scaling" 1
Obviously, this is set dynamically and will not persist after a logout/reboot. So an easy fix is to write a bash script that is called upon login:
[rdo@soundwave ~]$ cat .fix-mouse.sh #!/bin/bash xinput --set-prop "Logitech USB Laser Mouse" "Device Accel Constant Deceleration" 1.5 xinput --set-prop "Logitech USB Laser Mouse" "Device Accel Velocity Scaling" 1
I basically make this a ‘hidden’ file and have GNOME3 execute this script upon login, this is easily done, simply open up a terminal and launch ‘gnome-session-properties’, i.e.
You can then click on ‘Add’ (when on the ‘Startup Programs’ tab) and simply set the command path to be your recently created script. My example is shown below…
Any questions, as always, let me know 🙂