How to fix mouse sensitivity in GNOME 3

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.

$ gnome-session-properties

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 :-)

 

3 thoughts on “How to fix mouse sensitivity in GNOME 3

  1. Hey just wanted to give you a quick heads up. The words in your article seem to be running off the screen in Opera. I’m not sure if this is a formatting issue or something to do with browser compatibility but I figured I’d post to let you know. The design look great though! Hope you get the issue resolved soon. Thanks

  2. Thanks! That’s probably just a WordPress issue and I should just update my version ;-) but cheers for the heads up!

Leave a Reply

Your email address will not be published. Required fields are marked *


8 − = four

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>