Difference between revisions of "Mouse acceleration"
m |
m (upates) |
||
Line 4: | Line 4: | ||
There are several ways of setting mouse acceleration: | There are several ways of setting mouse acceleration: | ||
− | # | + | # By editing xorg configuration files |
− | # | + | # The {{Pkg|xorg-server-utils}} package provides two programs that can be used to change those settings from a shell or a script: |
− | #* | + | #* '''xset''' |
− | #* | + | #* '''xinput''' |
− | # | + | # Many [[Desktop Environment]]s provide a configuration GUI for mouse settings. They should be easy to find and use. |
− | ==Setting mouse acceleration== | + | == Setting mouse acceleration == |
− | ===In | + | |
− | See {{ | + | === In Xorg configuration === |
+ | |||
+ | See {{ic|man xorg.conf}} for details. | ||
Examples: | Examples: | ||
− | {{hc|/etc/X11/xorg.conf.d/50-mouse-acceleration.conf| | + | {{hc|/etc/X11/xorg.conf.d/50-mouse-acceleration.conf|2= |
Section "InputClass" | Section "InputClass" | ||
Identifier "My Mouse" | Identifier "My Mouse" | ||
Line 25: | Line 27: | ||
Option "AccelerationThreshold" "4" | Option "AccelerationThreshold" "4" | ||
EndSection | EndSection | ||
− | + | }} | |
− | {{hc|/etc/X11/xorg.conf.d/50-mouse-deceleration.conf| | + | {{hc|/etc/X11/xorg.conf.d/50-mouse-deceleration.conf|2= |
Section "InputClass" | Section "InputClass" | ||
Identifier "My Mouse" | Identifier "My Mouse" | ||
Line 36: | Line 38: | ||
Option "ConstantDeceleration" "2" | Option "ConstantDeceleration" "2" | ||
EndSection | EndSection | ||
− | + | }} | |
You can also assign settings to specific hardware by using "MatchProduct", "MatchVendor" and other matches inside class sections. | You can also assign settings to specific hardware by using "MatchProduct", "MatchVendor" and other matches inside class sections. | ||
Line 43: | Line 45: | ||
To get the current values, use: | To get the current values, use: | ||
− | xset q | grep -A 1 Pointer | + | $ xset q | grep -A 1 Pointer |
To set new values, type: | To set new values, type: | ||
− | xset m | + | $ xset m ''acceleration'' ''threshold'' |
− | where | + | where ''acceleration'' defines how many times faster the cursor will move than the default speed, when the cursor moves more than ''threshold'' pixels in a short time. ''acceleration'' can be a fraction, so if you want to slow down the mouse you can use 1/2, and if 3 is slightly too fast, but 2 is too slow, you can use 5/2, etc. |
To get the default settings back: | To get the default settings back: | ||
− | xset m default | + | $ xset m default |
− | For more info see {{ | + | For more info see {{ic|man xset}}. |
− | To make it permanent, edit xorg configuration (see above) or add commands to [[xprofile]]. The latter won't affect speed in a [[ | + | To make it permanent, edit xorg configuration (see above) or add commands to [[xprofile]]. The latter won't affect speed in a [[display manager]]. |
=== Using xinput === | === Using xinput === | ||
First, get a list of devices plugged in (ignore any virtual pointers): | First, get a list of devices plugged in (ignore any virtual pointers): | ||
− | xinput list | + | $ xinput list |
Take note of the ID. You may also use the full name in commands if the ID is prone to changing. | Take note of the ID. You may also use the full name in commands if the ID is prone to changing. | ||
Get a list of available properties and their current values available for modification with | Get a list of available properties and their current values available for modification with | ||
− | xinput list-props 9 | + | $ xinput list-props 9 |
− | where {{ | + | where {{ic|9}} is the ID of the device you wish to use. Or |
− | xinput list-props ' | + | $ xinput list-props ''mouse brand'' |
− | where | + | where ''mouse brand'' is the name of your mouse given by {{ic|$ xinput list}} |
− | Example, changing the property of {{ | + | Example, changing the property of {{ic|Constant Deceleration}} to 2: |
− | + | {{hc|$ xinput list-props 9| | |
− | + | Device 'Bobs mouse brand': | |
− | + | Device Enabled (121): 1 | |
− | + | Device Accel Profile (240): 0 | |
− | + | Device Accel Constant Deceleration (241): 1.000000 | |
− | + | Device Accel Adaptive Deceleration (243): 1.000000 | |
− | + | Device Accel Velocity Scaling (244): 10.000000 | |
+ | }} | ||
$ xinput --set-prop 'Bobs mouse brand' 'Device Accel Constant Deceleration' 2 | $ xinput --set-prop 'Bobs mouse brand' 'Device Accel Constant Deceleration' 2 | ||
To make it permanent, edit xorg configuration (see above) or add commands to [[xprofile]]. The latter won't affect speed in a [[Display Manager]]. | To make it permanent, edit xorg configuration (see above) or add commands to [[xprofile]]. The latter won't affect speed in a [[Display Manager]]. | ||
− | + | === Configuration example === | |
− | |||
− | |||
− | |||
− | |||
You may need to resort to using more than one method to achieve your desired mouse settings. Here's what I did to configure a generic optical mouse: | You may need to resort to using more than one method to achieve your desired mouse settings. Here's what I did to configure a generic optical mouse: | ||
− | + | First, slow down the default movement speed 3 times so that it's more precise. | |
− | + | $ xinput --set-prop 9 'Device Accel Constant Deceleration' 3 & | |
− | + | Then, enable acceleration and make it 3 times faster after moving past 6 pixels. | |
− | xinput --set-prop 9 'Device Accel Constant Deceleration' 3 & | + | $ xset mouse 3 6 & |
− | + | If you are satisfied of the results, store the preceding commands in {{ic|~/.xinitrc}}. | |
− | xset mouse 3 6 & | ||
== Disabling mouse acceleration == | == Disabling mouse acceleration == | ||
Line 102: | Line 100: | ||
Mouse acceleration has changed dramatically in recent X server versions; using {{Ic|xset}} to disable acceleration doesn't work as it used to and is not recommended anymore. | Mouse acceleration has changed dramatically in recent X server versions; using {{Ic|xset}} to disable acceleration doesn't work as it used to and is not recommended anymore. | ||
− | Recent changes on {{ | + | Recent changes on {{ic|PointerAcceleration}} can be read [http://xorg.freedesktop.org/wiki/Development/Documentation/PointerAcceleration#Introduction here]. |
To completely disable any sort of acceleration/deceleration, create the following file: | To completely disable any sort of acceleration/deceleration, create the following file: | ||
− | {{hc|/etc/X11/xorg.conf.d/50-mouse-acceleration.conf| | + | {{hc|/etc/X11/xorg.conf.d/50-mouse-acceleration.conf|2= |
Section "InputClass" | Section "InputClass" | ||
Identifier "My Mouse" | Identifier "My Mouse" | ||
Line 112: | Line 110: | ||
Option "AccelerationScheme" "none" | Option "AccelerationScheme" "none" | ||
EndSection | EndSection | ||
− | + | }} |
Revision as of 19:10, 4 June 2013
There are several ways of setting mouse acceleration:
- By editing xorg configuration files
- The xorg-server-utils package provides two programs that can be used to change those settings from a shell or a script:
- xset
- xinput
- Many Desktop Environments provide a configuration GUI for mouse settings. They should be easy to find and use.
Contents
Setting mouse acceleration
In Xorg configuration
See man xorg.conf
for details.
Examples:
/etc/X11/xorg.conf.d/50-mouse-acceleration.conf
Section "InputClass" Identifier "My Mouse" MatchIsPointer "yes" # set the following to 1 1 0 respectively to disable acceleration. Option "AccelerationNumerator" "2" Option "AccelerationDenominator" "1" Option "AccelerationThreshold" "4" EndSection
/etc/X11/xorg.conf.d/50-mouse-deceleration.conf
Section "InputClass" Identifier "My Mouse" MatchIsPointer "yes" # some curved deceleration # Option "AdaptiveDeceleration" "2" # linear deceleration (mouse speed reduction) Option "ConstantDeceleration" "2" EndSection
You can also assign settings to specific hardware by using "MatchProduct", "MatchVendor" and other matches inside class sections.
Using xset
To get the current values, use:
$ xset q | grep -A 1 Pointer
To set new values, type:
$ xset m acceleration threshold
where acceleration defines how many times faster the cursor will move than the default speed, when the cursor moves more than threshold pixels in a short time. acceleration can be a fraction, so if you want to slow down the mouse you can use 1/2, and if 3 is slightly too fast, but 2 is too slow, you can use 5/2, etc.
To get the default settings back:
$ xset m default
For more info see man xset
.
To make it permanent, edit xorg configuration (see above) or add commands to xprofile. The latter won't affect speed in a display manager.
Using xinput
First, get a list of devices plugged in (ignore any virtual pointers):
$ xinput list
Take note of the ID. You may also use the full name in commands if the ID is prone to changing.
Get a list of available properties and their current values available for modification with
$ xinput list-props 9
where 9
is the ID of the device you wish to use. Or
$ xinput list-props mouse brand
where mouse brand is the name of your mouse given by $ xinput list
Example, changing the property of Constant Deceleration
to 2:
$ xinput list-props 9
Device 'Bobs mouse brand': Device Enabled (121): 1 Device Accel Profile (240): 0 Device Accel Constant Deceleration (241): 1.000000 Device Accel Adaptive Deceleration (243): 1.000000 Device Accel Velocity Scaling (244): 10.000000
$ xinput --set-prop 'Bobs mouse brand' 'Device Accel Constant Deceleration' 2
To make it permanent, edit xorg configuration (see above) or add commands to xprofile. The latter won't affect speed in a Display Manager.
Configuration example
You may need to resort to using more than one method to achieve your desired mouse settings. Here's what I did to configure a generic optical mouse: First, slow down the default movement speed 3 times so that it's more precise.
$ xinput --set-prop 9 'Device Accel Constant Deceleration' 3 &
Then, enable acceleration and make it 3 times faster after moving past 6 pixels.
$ xset mouse 3 6 &
If you are satisfied of the results, store the preceding commands in ~/.xinitrc
.
Disabling mouse acceleration
Mouse acceleration has changed dramatically in recent X server versions; using xset
to disable acceleration doesn't work as it used to and is not recommended anymore.
Recent changes on PointerAcceleration
can be read here.
To completely disable any sort of acceleration/deceleration, create the following file:
/etc/X11/xorg.conf.d/50-mouse-acceleration.conf
Section "InputClass" Identifier "My Mouse" MatchIsPointer "yes" Option "AccelerationProfile" "-1" Option "AccelerationScheme" "none" EndSection