1279 lines
40 KiB
Plaintext
1279 lines
40 KiB
Plaintext
Mouse Support in X11R6.8
|
||
Kazutaka Yokota
|
||
17 December 2002
|
||
____________________________________________________________
|
||
|
||
Table of Contents
|
||
|
||
|
||
1. Introduction
|
||
2. Supported Hardware
|
||
3. OS Support for Mice
|
||
3.1 Summary of Supported Mouse Protocol Types
|
||
3.2 BSD/OS
|
||
3.3 FreeBSD
|
||
3.4 FreeBSD(98)
|
||
3.5 Interactive Unix
|
||
3.6 Linux
|
||
3.7 Linux/98
|
||
3.8 LynxOS
|
||
3.9 NetBSD
|
||
3.10 NetBSD/pc98
|
||
3.11 OpenBSD
|
||
3.12 OS/2
|
||
3.13 SCO
|
||
3.14 Solaris
|
||
3.15 SVR4
|
||
3.16 PANIX
|
||
|
||
4. Configuring Your Mouse
|
||
5. xorg.conf Options
|
||
5.1 Buttons
|
||
5.2 ZAxisMappping
|
||
5.3 Resolution
|
||
5.4 Drag Lock Buttons
|
||
|
||
6. Mouse Gallery
|
||
6.1 MS IntelliMouse (serial, PS/2)
|
||
6.2 MS IntelliMouse Explorer (PS/2, USB)
|
||
6.3 Kensington Thinking Mouse and Kensington Expert Mouse (serial, PS/2)
|
||
6.4 Genius NetScroll (PS/2)
|
||
6.5 Genius NetMouse and NetMouse Pro (serial, PS/2)
|
||
6.6 Genius NetScroll Optical (PS/2, USB)
|
||
6.7 ALPS GlidePoint (serial, PS/2)
|
||
6.8 ASCII MieMouse (serial, PS/2)
|
||
6.9 Logitech MouseMan+ and FirstMouse+ (serial, PS/2)
|
||
6.10 IBM ScrollPoint (PS/2)
|
||
6.11 8D ScrollMouse (serial, PS/2)
|
||
6.12 A4 Tech 4D mice (serial, PS/2, USB)
|
||
|
||
7. Configuration Examples
|
||
|
||
|
||
______________________________________________________________________
|
||
|
||
[1m1. Introduction[0m
|
||
|
||
|
||
This document describes mouse support in X.org Foundation's X11R6.8
|
||
server.
|
||
|
||
Mouse configuration has often been mysterious task for novice users.
|
||
However, once you learn several basics, it is straightforward to write
|
||
the mouse "InputDevice" section in the xorg.conf file by hand.
|
||
|
||
|
||
|
||
[1m2. Supported Hardware[0m
|
||
|
||
|
||
The X.org Foundation X server supports three classes of mice: serial,
|
||
bus and PS/2 mice.
|
||
|
||
|
||
[1mSerial mouse[0m
|
||
The serial mouse has been the most popular pointing device for
|
||
PCs. There have been numerous serial mouse models from a number
|
||
of manufactures. Despite the wide range of variations, there
|
||
have been relatively few protocols (data format) with which the
|
||
serial mouse talks to the host computer.
|
||
|
||
The modern serial mouse conforms to the PnP COM device
|
||
specification so that the host computer can automatically detect
|
||
the mouse and load an appropriate driver. The X server supports
|
||
this specification and can detect popular PnP serial mouse
|
||
models on most platforms.
|
||
|
||
|
||
[1mBus mouse[0m
|
||
The bus mouse connects to a dedicated interface card in an
|
||
expansion slot. Some video cards, notably those from ATI, and
|
||
integrated I/O cards may also have a bus mouse connector. Some
|
||
bus mice are known as `InPort mouse'.
|
||
|
||
Note that some mouse manufactures have sold a package including
|
||
a serial mouse and a serial interface card. Don't confuse this
|
||
type of products with the genuine bus mouse.
|
||
|
||
|
||
[1mPS/2 mouse[0m
|
||
They are sometimes called `Mouse-port mouse'. The PS/2 mouse is
|
||
becoming increasingly common and popular.
|
||
|
||
The PS/2 mouse is an intelligent device and may have more than
|
||
three buttons and a wheel or a roller. The PS/2 mouse is
|
||
usually compatible with the original PS/2 mouse from IBM
|
||
immediately after power up. The PS/2 mouse with additional
|
||
features requires a specialized initialization procedure to
|
||
enable these features. Without proper initialization, it
|
||
behaves as though it were an ordinary two or three button mouse.
|
||
|
||
|
||
[1mUSB mouse[0m
|
||
USB (Universal Serial Bus) ports are present on most modern
|
||
computers. Several devices can be plugged into this bus,
|
||
including mices and keyboards.
|
||
|
||
The server includes support for USB mices on some systems.
|
||
|
||
Many mice nowadays can be used both as a serial mouse and as a PS/2
|
||
mouse. They has a logic to distinguish which interface it is
|
||
connected to. However, the mouse which is not marketed as compatible
|
||
with both serial and PS/2 mouse interface lacks this logic and cannot
|
||
be used in such a way, even if you can find an appropriate adapter
|
||
with which you can connect the PS/2 mouse to a serial port or visa
|
||
versa.
|
||
|
||
X11R6.8 supports the mouse with a wheel, a roller or a knob. Its
|
||
action is detected as the Z (third) axis motion of the mouse. As the
|
||
X server or clients normally do not use the Z axis movement of the
|
||
pointing device, a configuration option, "ZAxisMapping", is provided
|
||
to assign the Z axis movement to another axis or a pair of buttons
|
||
(see below).
|
||
[1m3. OS Support for Mice[0m
|
||
|
||
|
||
|
||
[1m3.1. Summary of Supported Mouse Protocol Types[0m
|
||
|
||
|
||
Protocol Types
|
||
serial PnP BusMouse PS/2 Extended PS/2
|
||
OS platforms protocols serial protocol protocol protocols
|
||
"Auto" "BusMouse" "PS/2" "xxxPS/2" USB
|
||
-------------------------------------------------------------------------
|
||
BSD/OS Ok ? ? ? ? ?
|
||
FreeBSD Ok Ok Ok Ok SP*1 SP*1
|
||
FreeBSD(98) Ok ? Ok NA NA ?
|
||
Interactive Unix Ok NA ?*1 ?*1 NA ?
|
||
Linux Ok Ok Ok Ok Ok ?
|
||
Linux/98 Ok ? Ok NA NA ?
|
||
LynxOS Ok NA Ok Ok NA ?
|
||
NetBSD Ok Ok Ok SP*1 SP*1 SP*1
|
||
NetBSD/pc98 Ok ? Ok NA NA NA
|
||
OpenBSD Ok Ok Ok Ok*1 Ok*1 Ok*1
|
||
OS/2 SP*2 SP*2 SP*2 SP*2 SP*2 ?
|
||
SCO Ok ? SP*1 SP*1 NA ?
|
||
Solaris 2.x Ok NA*1 ?*1 Ok Ok SP*1
|
||
SVR4 Ok NA*1 SP*1 SP*1 NA ?
|
||
PANIX Ok ? SP*1 SP*1 NA ?
|
||
|
||
Ok: support is available, NA: not available, ?: untested or unknown.
|
||
SP: support is available in a different form
|
||
|
||
*1 Refer to the following sections for details.
|
||
*2 X11R6.8/OS2 will support any type of mouse that the OS supports,
|
||
whether it is serial, bus mouse, or PnP type.
|
||
|
||
|
||
|
||
[1m3.2. BSD/OS[0m
|
||
|
||
No testing has been done with BSD/OS.
|
||
|
||
|
||
[1m3.3. FreeBSD[0m
|
||
|
||
FreeBSD supports the "SysMouse" protocol which must be specified when
|
||
the moused daemon is running in versions 2.2.1 or later.
|
||
|
||
When running the mouseddaemon, you must always specify the
|
||
/dev/sysmouse device and the "SysMouse" protocol to the X server,
|
||
regardless of the actual type of your mouse.
|
||
|
||
FreeBSD versions 2.2.6 or later include the kernel-level support for
|
||
extended PS/2 mouse protocols and there is no need to specify the
|
||
exact protocol name to the X server. Instead specify the "PS/2" or
|
||
"Auto" protocol and the X server will automatically make use of the
|
||
kernel-level support.
|
||
|
||
In fact, "Auto" protocol support is really efficient in these
|
||
versions. You may always specify "Auto" to any mouse, serial, bus or
|
||
PS/2, unless the mouse is an old serial model which doesn't support
|
||
PnP.
|
||
|
||
FreeBSD versions 2.2.5 or earlier do not support extended PS/2 mouse
|
||
protocols ("xxxPS/2"). Always specify the "PS/2" protocol for any
|
||
PS/2 mouse in these versions regardless of the brand of the mouse.
|
||
FreeBSD versions 3.1 or later have support for USB mice. Specify the
|
||
"Auto" protocol for the /dev/ums0 device. (If the moused daemon is
|
||
running for the USB mouse, you must use /dev/sysmouse instead of
|
||
/dev/ums0 as explained above.) See the [4mums(4)[24m manual page for details.
|
||
|
||
|
||
[1m3.4. FreeBSD(98)[0m
|
||
|
||
The PS/2 mouse is not supported.
|
||
|
||
|
||
[1m3.5. Interactive Unix[0m
|
||
|
||
The PnP serial mouse support (the "Auto" protocol) is not supported
|
||
for the moment.
|
||
|
||
The bus mouse and PS/2 mouse should be supported by using the
|
||
appropriate device drivers. Use /dev/mouse for the "BusMouse"
|
||
protocol and /dev/kdmouse for the "PS/2" protocol. These protocols
|
||
are untested but may work. Please send success/failure reports to
|
||
<michael.rohleder@stadt-frankfurt.de>.
|
||
|
||
|
||
[1m3.6. Linux[0m
|
||
|
||
All protocol types should work.
|
||
|
||
|
||
[1m3.7. Linux/98[0m
|
||
|
||
The PS/2 mouse is not supported.
|
||
|
||
|
||
[1m3.8. LynxOS[0m
|
||
|
||
The PnP serial mouse support (the "Auto" protocol) is disabled in
|
||
LynxOS, because of limited TTY device driver functionality.
|
||
|
||
|
||
[1m3.9. NetBSD[0m
|
||
|
||
NetBSD 1.3.x and former does not support extended PS/2 mouse protocols
|
||
("xxxPS/2"). The PS/2 mouse device driver /dev/pms emulates the bus
|
||
mouse. Therefore, you should always specify the "BusMouse" protocol
|
||
for any PS/2 mouse regardless of the brand of the mouse.
|
||
|
||
The "wsmouse" protocol introduced in NetBSD 1.4 along with the wscons
|
||
console driver is supported. You need to run binaries compiled on
|
||
NetBSD 1.4 to have support for it though. Use "/dev/wsmouse0" for the
|
||
device. Refer to the [4mwsmouse(4)[24m manual page for kernel configuration
|
||
informations.
|
||
|
||
This driver also provides support for USB mices. See the [4mums(4)[24m manual
|
||
page for details.
|
||
|
||
|
||
[1m3.10. NetBSD/pc98[0m
|
||
|
||
The PS/2 mouse is not supported.
|
||
|
||
|
||
[1m3.11. OpenBSD[0m
|
||
|
||
The raw PS/2 mouse device driver /dev/psm0 uses the raw PS/2 mouse
|
||
protocol.
|
||
|
||
OpenBSD 2.2 and earlier does not support extended PS/2 mouse protocols
|
||
("xxxPS/2") . Therefore, you should specify the "PS/2" protocol for
|
||
any PS/2 mouse regardless of the brand of the mouse.
|
||
|
||
OpenBSD 2.3 and later support all extended PS/2 mouse protocols. You
|
||
can select the "Auto" protocol for PnP PS/2 mice or any specific
|
||
extended ("xxxPS/2") protocol for non PnP mice.
|
||
|
||
There is also a cooked PS/2 mouse device driver /dev/pms0 which
|
||
emulates the bus mouse. Specify the "BusMouse" protocol for any PS/2
|
||
mouse regardless of the brand of the mouse when using this device.
|
||
|
||
XFree86 3.3.6 support USB mices on OpenBSD 2.6 and later though the
|
||
generic Human Interface Device (hid) /dev/uhid*. Select the "usb"
|
||
protocol and the /dev/uhid* instance corresponding to your mouse as
|
||
the device name.
|
||
|
||
|
||
[1m3.12. OS/2[0m
|
||
|
||
X11R6.8/OS2 always uses the native mouse driver of the operating
|
||
system and will support any type of pointer that the OS supports,
|
||
whether it is serial, bus mouse, or PnP type. If the mouse works
|
||
under Presentation Manager, it will also work under X11R6.8/OS2.
|
||
|
||
Always specify "OSMouse" as the protocol type.
|
||
|
||
|
||
[1m3.13. SCO[0m
|
||
|
||
The bus and PS/2 mouse are supported with the "OSMouse" protocol type.
|
||
|
||
The "OSMouse" may also be used with the serial mouse.
|
||
|
||
|
||
[1m3.14. Solaris[0m
|
||
|
||
Testing has been done with Solaris 2.5.1, 2.6, 7, 8, 9 and pre-release
|
||
versions of Solaris 10. Logitech and Microsoft bus mice have not been
|
||
tested, but might work with the /dev/logi and /dev/msm devices.
|
||
Standard 2 and 3 button PS/2 mice work with the "PS/2" protocol type
|
||
and the /dev/kdmouse device. USB mice work with the "VUID" protocol
|
||
type and the /dev/mouse device. The PnP serial mouse support (the
|
||
"Auto" protocol) has been tested and does not work. The "Auto"
|
||
protocol can however detect PS/2 and USB mice correctly.
|
||
|
||
Additional USB mice can be connected using the "VUID" protocol type
|
||
and the appropriate "/dev/usb/hid" device with the Option
|
||
"StreamsModule" "usbms" line included in the associated "InputDevice"
|
||
section.
|
||
|
||
|
||
[1m3.15. SVR4[0m
|
||
|
||
The bus and PS/2 mouse may be supported with the "Xqueue" protocol
|
||
type.
|
||
|
||
The "Xqueue" may also be used with the serial mouse.
|
||
|
||
The PnP serial mouse support (the "Auto" protocol) is not tested.
|
||
|
||
|
||
[1m3.16. PANIX[0m
|
||
|
||
The PC/AT version of PANIX supports the bus and PS/2 mouse with the
|
||
"Xqueue" protocol type. The PC-98 version of PANIX supports the bus
|
||
mouse with the "Xqueue" protocol type.
|
||
|
||
|
||
[1m4. Configuring Your Mouse[0m
|
||
|
||
|
||
Before using the xorgconfig program to set up mouse configuration, you
|
||
must identify the interface type, the device name and the protocol
|
||
type of your mouse. Blindly trying every possible combination of
|
||
mouse settings will lead you nowhere.
|
||
|
||
The first thing you need to know is the interface type of the mouse
|
||
you are going to use. It can be determined by looking at the
|
||
connector of the mouse. The serial mouse has a D-Sub female 9- or
|
||
25-pin connector. The bus mice have either a D-Sub male 9-pin
|
||
connector or a round DIN 9-pin connector. The PS/2 mouse is equipped
|
||
with a small, round DIN 6-pin connector. Some mice come with adapters
|
||
with which the connector can be converted to another. If you are to
|
||
use such an adapter, remember that the connector at the very end of
|
||
the mouse/adapter pair is what matters.
|
||
|
||
The next thing to decide is a device node to use for the given
|
||
interface. For the bus and PS/2 mice, there is little choice; your OS
|
||
most possibly offers just one device node each for the bus mouse and
|
||
PS/2 mouse. There may be more than one serial port to which the
|
||
serial mouse can be attached.
|
||
|
||
The next step is to guess the appropriate protocol type for the mouse.
|
||
The X server may be able to select a protocol type for the given mouse
|
||
automatically in some cases. Otherwise, the user has to choose one
|
||
manually. Follow the guidelines below.
|
||
|
||
|
||
[1mBus mouse[0m
|
||
The bus and InPort mice always use "BusMouse" protocol
|
||
regardless of the brand of the mouse.
|
||
|
||
Some OSs may allow you to specify "Auto" as the protocol type
|
||
for the bus mouse.
|
||
|
||
|
||
[1mPS/2 mouse[0m
|
||
The "PS/2" protocol should always be tried first for the PS/2
|
||
mouse regardless of the brand of the mouse. Any PS/2 mouse
|
||
should work with this protocol type, although wheels and other
|
||
additional features are unavailable in the X server.
|
||
|
||
After verifying the mouse works with this protocol, you may
|
||
choose to specify one of "xxxPS/2" protocols so that extra
|
||
features are made available in the X server. However, support
|
||
for these PS/2 mice assumes certain behavior of the underlying
|
||
OS and may not always work as expected. Support for some PS/2
|
||
mouse models may be disabled all together for some OS platforms
|
||
for this reason.
|
||
|
||
Some OSs may allow you to specify "Auto" as the protocol type
|
||
for the PS/2 mouse and the X server will automatically adjust
|
||
itself.
|
||
|
||
|
||
[1mSerial mouse[0m
|
||
The server supports a wide range of mice, both old and new. If
|
||
your mouse is of a relatively new model, it may conform to the
|
||
PnP COM device specification and the X server may be able to
|
||
detect an appropriate protocol type for the mouse automatically.
|
||
|
||
Specify "Auto" as the protocol type and start the X server. If
|
||
the mouse is not a PnP mouse, or the X server cannot determine a
|
||
suitable protocol type, the server will print the following
|
||
error message and abort.
|
||
|
||
|
||
<mousename>: cannot determine the mouse protocol
|
||
|
||
|
||
|
||
If the X server generates the above error message, you need to
|
||
manually specify a protocol type for your mouse. Choose one from
|
||
the following list:
|
||
|
||
|
||
+o GlidePoint
|
||
|
||
+o IntelliMouse
|
||
|
||
+o Logitech
|
||
|
||
+o Microsoft
|
||
|
||
+o MMHittab
|
||
|
||
+o MMSeries
|
||
|
||
+o MouseMan
|
||
|
||
+o MouseSystems
|
||
|
||
+o ThinkingMouse
|
||
|
||
When you choose, keep in mind the following rule of thumb:
|
||
|
||
|
||
1. "Logitech" protocol is for old serial mouse models from
|
||
Logitech. Modern Logitech mice use either "MouseMan" or
|
||
"Microsoft" protocol.
|
||
|
||
2. Most 2-button serial mice support the "Microsoft" protocol.
|
||
|
||
3. 3-button serial mice may work with the "Mousesystems"
|
||
protocol. If it doesn't, it may work instead with the
|
||
"Microsoft" protocol although the third (middle) button won't
|
||
function. 3-button serial mice may also work with the
|
||
"Mouseman" protocol under which the third button may function
|
||
as expected.
|
||
|
||
4. 3-button serial mice may have a small switch at the bottom of
|
||
the mouse to choose between ``MS'' and ``PC'', or ``2'' and
|
||
``3''. ``MS'' or ``2'' usually mean the "Microsoft"
|
||
protocol. ``PC'' or ``3'' will choose the "MouseSystems"
|
||
protocol.
|
||
|
||
5. If the serial mouse has a roller or a wheel, it may be
|
||
compatible with the "IntelliMouse" protocol.
|
||
|
||
6. If the serial mouse has a roller or a wheel and it doesn't
|
||
work with the "IntelliMouse" protocol, you have to use it as
|
||
a regular 2- or 3-button serial mouse.
|
||
|
||
If the "Auto" protocol is specified and the mouse seems working,
|
||
but you find that not all features of the mouse is available, that
|
||
is because the X server does not have native support for that model
|
||
of mouse and is using a ``compatible'' protocol according to PnP
|
||
information.
|
||
|
||
If you suspect this is the case with your mouse, please enter a
|
||
bugreport in bugzilla.freedesktop.org, using the xorg product.
|
||
|
||
|
||
[1mUSB mouse[0m
|
||
If your mouse is connected to the USB port, it can either be
|
||
supported by the "Auto" protocol, or by an OS-specific protocol
|
||
(see below), or as a generic Human Interface Device by the "usb"
|
||
protocol.
|
||
|
||
|
||
[1mStandardized protocols[0m
|
||
Mouse device drivers in your OS may use the standardized
|
||
protocol regardless of the model or the class of the mouse. For
|
||
example, SVR4 systems may support "Xqueue" protocol. In FreeBSD
|
||
the system mouse device /dev/sysmouse uses the "SysMouse"
|
||
protocol. Please refer to the OS support section of this file
|
||
for more information.
|
||
|
||
|
||
|
||
[1m5. xorg.conf Options[0m
|
||
|
||
|
||
The old Pointer section has been replaced by a more general
|
||
InputDevice section. The following is a minimal example of an
|
||
InputDevice section for a mouse:
|
||
|
||
|
||
______________________________________________________________________
|
||
Section "InputDevice"
|
||
Identifier "Mouse 1"
|
||
Driver "mouse"
|
||
Option "Device" "/dev/mouse"
|
||
Option "Protocol" "Auto"
|
||
EndSection
|
||
______________________________________________________________________
|
||
|
||
|
||
|
||
The mouse driver supports the following config file options:
|
||
|
||
|
||
[1m5.1. Buttons[0m
|
||
|
||
This option tells the X server the number of buttons on the mouse.
|
||
Currently there is no reliable way to automatically detect the correct
|
||
number. This option is the only means for the X server to obtain it.
|
||
The default value is three.
|
||
|
||
Note that if you intend to assign Z axis movement to button events
|
||
using the ZAxisMapping option below, you need to take account of those
|
||
buttons into N too.
|
||
|
||
|
||
Option "Buttons" "N"
|
||
|
||
|
||
|
||
[1m5.2. ZAxisMappping[0m
|
||
|
||
This option maps the Z axis (wheel) motion to buttons or to another
|
||
axis.
|
||
Option "ZAxisMapping" "X"
|
||
Option "ZAxisMapping" "Y"
|
||
Option "ZAxisMapping" "N1 N2"
|
||
Option "ZAxisMapping" "N1 N2 N3 N4"
|
||
|
||
|
||
|
||
The first example will map the Z axis motion to the X axis motion.
|
||
Whenever the user moves the wheel/roller, its movement is reported as
|
||
the X axis motion. When the wheel/roller stays still, the real X axis
|
||
motion is reported as is. The third example will map negative Z axis
|
||
motion to the button N1 and positive Z axis motion to the button N2.
|
||
If this option is used and the buttons N1 or N2 actually exists in the
|
||
mouse, their actions won't be detected by the X server.
|
||
|
||
The last example is useful for the mouse with two wheels of which the
|
||
second wheel is used to generate horizontal scroll action, and the
|
||
mouse which has a knob or a stick which can detect the horizontal
|
||
force applied by the user. The motion of the second wheel will be
|
||
mapped to the buttons N3, for the negative direction, and N4, for the
|
||
positive direction. If the buttons N3 and N4 actually exist in this
|
||
mouse, their actions won't be detected by the X server.
|
||
|
||
NOTE #1: horizontal movement may not always be detected by the current
|
||
version of the X11R6.8 X servers, because there appears to be no
|
||
accepted standard as to how the horizontal direction is encoded in
|
||
mouse data.
|
||
|
||
NOTE #2: Some mice think left is the negative horizontal direction,
|
||
others may think otherwise. Moreover, there are some mice whose two
|
||
wheels are both mounted vertically, and the direction of the second
|
||
vertical wheel does not match the first one's.
|
||
|
||
You need to edit the xorg.conf file by hand to change this option if
|
||
the default value of "4 5 6 7" does not match the needs of your
|
||
configuration.
|
||
|
||
|
||
[1m5.3. Resolution[0m
|
||
|
||
The following option will set the mouse device resolution to N counts
|
||
per inch, if possible:
|
||
|
||
|
||
Option "Resolution" "N"
|
||
|
||
|
||
|
||
Not all mice and OSs can support this option.
|
||
|
||
|
||
[1m5.4. Drag Lock Buttons[0m
|
||
|
||
Some people find it difficult or inconvenient to hold a trackball
|
||
button down, while at the same time moving the ball. Drag lock buttons
|
||
simulate the holding down of another button. When a drag lock button
|
||
is first pressed, its target buttons is "locked" down until the
|
||
second time the lock button is released, or until the button itself is
|
||
pressed and released. This allows the starting of a drag, the movement
|
||
of the trackball, and the ending of the drag to be separate
|
||
operations.
|
||
|
||
|
||
Option "DragLockButtons" "W X Y Z"
|
||
|
||
|
||
This option consists of pairs of buttons. Each lock button number is
|
||
followed by the number of the button that it locks. In the above,
|
||
button number "W" is a drag lock button for button "X" and button
|
||
number "Y" is a drag lock button for button "Z".
|
||
|
||
It may not be desirable to use multiple buttons as drag locks.
|
||
Instead, a "master drag lock button" may be defined. A master drag
|
||
lock button acts as a "META" key. After a master lock button is
|
||
released, the next button pressed is "locked" and not released until
|
||
the second time the real button is released.
|
||
|
||
|
||
Option "DragLockButtons" "M"
|
||
|
||
|
||
|
||
Since button "M" is unpaired it is a master drag lock button.
|
||
|
||
|
||
[1m6. Mouse Gallery[0m
|
||
|
||
|
||
In all of the examples below, it is assumed that /dev/mouse is a link
|
||
to the appropriate serial port or PS/2 mouse device.
|
||
|
||
|
||
[1m6.1. MS IntelliMouse (serial, PS/2)[0m
|
||
|
||
This mouse has a wheel which also acts as the button 2 (middle
|
||
button). The wheel movement is recognized as the Z axis motion. This
|
||
behavior is not compatible with XFree86 versions prior to 3.3.2, but
|
||
is more consistent with the support for other mice with wheels or
|
||
rollers. If you want to make the wheel behave like before, you can
|
||
use the "ZAxisMapping" option as described above.
|
||
|
||
IntelliMouse supports the PnP COM device specification.
|
||
|
||
To use this mouse as a serial device:
|
||
|
||
Option "Protocol" "Auto"
|
||
|
||
|
||
or:
|
||
|
||
Option "Protocol" "IntelliMouse"
|
||
|
||
|
||
|
||
To use this mouse as the PS/2 device and the OS supports PS/2 mouse
|
||
initialization:
|
||
|
||
Option "Protocol" "IMPS/2"
|
||
|
||
|
||
|
||
To use this mouse as the PS/2 device but the OS does not support PS/2
|
||
mouse initialization (the wheel won't work in this case):
|
||
|
||
Option "Protocol" "PS/2"
|
||
|
||
|
||
|
||
To use this mouse as the PS/2 device and the OS supports automatic
|
||
PS/2 mouse detection:
|
||
|
||
|
||
Option "Protocol" "Auto"
|
||
|
||
|
||
|
||
[1m6.2. MS IntelliMouse Explorer (PS/2, USB)[0m
|
||
|
||
This mouse has a wheel which also acts as the button 2 (middle
|
||
button). There are two side buttons; they are recognized as the
|
||
buttons 4 and 5. The wheel movement is recognized as the Z axis
|
||
motion.
|
||
|
||
To use this mouse as the PS/2 device and the OS supports PS/2 mouse
|
||
initialization:
|
||
|
||
Option "Protocol" "ExplorerPS/2"
|
||
|
||
|
||
|
||
To use this mouse as the PS/2 device but the OS does not support PS/2
|
||
mouse initialization (the wheel and the side buttons won't work in
|
||
this case):
|
||
|
||
Option "Protocol" "PS/2"
|
||
|
||
|
||
|
||
To use this mouse as the PS/2 device and the OS supports automatic
|
||
PS/2 mouse detection:
|
||
|
||
Option "Protocol" "Auto"
|
||
|
||
|
||
|
||
To use this mouse as the USB device and the OS supports the generic
|
||
HID protocol:
|
||
|
||
Option "Protocol" "usb"
|
||
|
||
|
||
|
||
To use this mouse as the USB device and the OS supports automatic
|
||
mouse detection:
|
||
|
||
Option "Protocol" "Auto"
|
||
|
||
|
||
|
||
[1m6.3. Kensington Thinking Mouse and Kensington Expert Mouse (serial,[0m
|
||
[1mPS/2)[0m
|
||
|
||
These mice have four buttons. The Kensington Expert Mouse is really a
|
||
trackball. Both Thinking mice support the PnP COM device
|
||
specification.
|
||
|
||
To use this mouse as a serial device:
|
||
|
||
Option "Protocol" "Auto"
|
||
|
||
|
||
or:
|
||
|
||
Option "Protocol" "ThinkingMouse"
|
||
|
||
|
||
To use this mouse as the PS/2 device and the OS supports PS/2 mouse
|
||
initialization:
|
||
|
||
Option "Protocol" "ThinkingMousePS/2"
|
||
|
||
|
||
|
||
To use this mouse as the PS/2 device but the OS does not support PS/2
|
||
mouse initialization (the third and the fourth buttons act as though
|
||
they were the first and the second buttons):
|
||
|
||
Option "Protocol" "PS/2"
|
||
|
||
|
||
|
||
To use this mouse as the PS/2 device and the OS supports automatic
|
||
PS/2 mouse detection:
|
||
|
||
Option "Protocol" "Auto"
|
||
|
||
|
||
|
||
[1m6.4. Genius NetScroll (PS/2)[0m
|
||
|
||
This mouse has four buttons and a roller. The roller movement is
|
||
recognized as the Z axis motion.
|
||
|
||
To use this mouse as the PS/2 device and the OS supports PS/2 mouse
|
||
initialization:
|
||
|
||
Option "Protocol" "NetScrollPS/2"
|
||
|
||
|
||
|
||
To use this mouse as the PS/2 device but the OS does not support PS/2
|
||
mouse initialization (the roller and the fourth button won't work):
|
||
|
||
Option "Protocol" "PS/2"
|
||
|
||
|
||
|
||
To use this mouse as the PS/2 device and the OS supports automatic
|
||
PS/2 mouse detection:
|
||
|
||
Option "Protocol" "Auto"
|
||
|
||
|
||
|
||
[1m6.5. Genius NetMouse and NetMouse Pro (serial, PS/2)[0m
|
||
|
||
These mice have a "magic button" which is used like a wheel or a
|
||
roller. The "magic button" action is recognized as the Z axis motion.
|
||
NetMouse Pro is identical to NetMouse except that it has the third
|
||
button on the left hand side.
|
||
|
||
NetMouse and NetMouse Pro support the PnP COM device specification.
|
||
When used as a serial mouse, they are compatible with MS IntelliMouse.
|
||
|
||
To use these mice as a serial device:
|
||
|
||
Option "Protocol" "Auto"
|
||
|
||
|
||
|
||
or:
|
||
|
||
Option "Protocol" "IntelliMouse"
|
||
|
||
|
||
|
||
To use this mouse as the PS/2 device and the OS supports PS/2 mouse
|
||
initialization:
|
||
|
||
Option "Protocol" "NetMousePS/2"
|
||
|
||
|
||
|
||
To use this mouse as the PS/2 device but the OS does not support PS/2
|
||
mouse initialization (the "magic button" and the third button won't
|
||
work):
|
||
|
||
Option "Protocol" "PS/2"
|
||
|
||
|
||
|
||
To use this mouse as the PS/2 device and the OS supports automatic
|
||
PS/2 mouse detection:
|
||
|
||
Option "Protocol" "Auto"
|
||
|
||
|
||
|
||
[1m6.6. Genius NetScroll Optical (PS/2, USB)[0m
|
||
|
||
This mouse has a wheel which also acts as the button 2 (middle
|
||
button), and two side buttons which are recognized as the buttons 4
|
||
and 5. It is compatible with NetMouse and NetMouse Pro.
|
||
|
||
To use this mouse as the PS/2 device and the OS supports PS/2 mouse
|
||
initialization:
|
||
|
||
Option "Protocol" "NetMousePS/2"
|
||
|
||
|
||
|
||
To use this mouse as the PS/2 device but the OS does not support PS/2
|
||
mouse initialization (the wheel and the side buttons won't work):
|
||
|
||
Option "Protocol" "PS/2"
|
||
|
||
|
||
|
||
To use this mouse as the PS/2 device and the OS supports automatic
|
||
PS/2 mouse detection:
|
||
|
||
Option "Protocol" "Auto"
|
||
|
||
|
||
|
||
To use this mouse as the USB device and the OS supports the generic
|
||
HID protocol:
|
||
|
||
Option "Protocol" "usb"
|
||
|
||
|
||
|
||
To use this mouse as the USB device and the OS supports automatic
|
||
mouse detection:
|
||
|
||
Option "Protocol" "Auto"
|
||
|
||
|
||
|
||
[1m6.7. ALPS GlidePoint (serial, PS/2)[0m
|
||
|
||
The serial version of this pad device has been supported since XFree86
|
||
3.2. `Tapping' action is interpreted as the fourth button press.
|
||
(IMHO, the fourth button of GlidePoint should always be mapped to the
|
||
first button in order to make this pad behave like the other pad
|
||
products.)
|
||
|
||
To use this pad as a serial device:
|
||
|
||
Option "Protocol" "GlidePoint"
|
||
|
||
|
||
|
||
To use this mouse as the PS/2 device and the OS supports PS/2 mouse
|
||
initialization:
|
||
|
||
Option "Protocol" "GlidePointPS/2"
|
||
|
||
|
||
|
||
To use this mouse as the PS/2 device but the OS does not support PS/2
|
||
mouse initialization:
|
||
|
||
Option "Protocol" "PS/2"
|
||
|
||
|
||
|
||
To use this mouse as the PS/2 device and the OS supports automatic
|
||
PS/2 mouse detection:
|
||
|
||
Option "Protocol" "Auto"
|
||
|
||
|
||
|
||
[1m6.8. ASCII MieMouse (serial, PS/2)[0m
|
||
|
||
This mouse appears to be OEM from Genius. Although its shape is quite
|
||
different, it works like Genius NetMouse Pro. This mouse has a "knob"
|
||
which is used like a wheel or a roller. The "knob" action is
|
||
recognized as the Z axis motion.
|
||
|
||
MieMouse supports the PnP COM device specification. When used as a
|
||
serial mouse, it is compatible with MS IntelliMouse.
|
||
|
||
To use this mouse as a serial device:
|
||
|
||
Option "Protocol" "Auto"
|
||
|
||
|
||
or:
|
||
|
||
Option "Protocol" "IntelliMouse"
|
||
|
||
|
||
|
||
To use this mouse as the PS/2 device and the OS supports PS/2 mouse
|
||
initialization:
|
||
|
||
|
||
Option "Protocol" "NetMousePS/2"
|
||
|
||
|
||
|
||
To use this mouse as the PS/2 device but the OS does not support PS/2
|
||
mouse initialization (the knob and the third button won't work):
|
||
|
||
Option "Protocol" "PS/2"
|
||
|
||
|
||
|
||
To use this mouse as the PS/2 device and the OS supports automatic
|
||
PS/2 mouse detection:
|
||
|
||
Option "Protocol" "Auto"
|
||
|
||
|
||
|
||
[1m6.9. Logitech MouseMan+ and FirstMouse+ (serial, PS/2)[0m
|
||
|
||
MouseMan+ has two buttons on top, one side button and a roller.
|
||
FirstMouse+ has two buttons and a roller. The roller movement is
|
||
recognized as the Z axis motion. The roller also acts as the third
|
||
button. The side button is recognized as the fourth button.
|
||
|
||
MouseMan+ and FirstMouse+ support the PnP COM device specification.
|
||
They have MS IntelliMouse compatible mode when used as a serial mouse.
|
||
|
||
To use these mice as a serial device:
|
||
|
||
Option "Protocol" "Auto"
|
||
|
||
|
||
or:
|
||
|
||
Option "Protocol" "IntelliMouse"
|
||
|
||
|
||
|
||
To use this mouse as the PS/2 device and the OS supports PS/2 mouse
|
||
initialization:
|
||
|
||
Option "Protocol" "MouseManPlusPS/2"
|
||
|
||
|
||
|
||
To use this mouse as the PS/2 device but the OS does not support PS/2
|
||
mouse initialization (the wheel and the fourth button won't work):
|
||
|
||
Option "Protocol" "PS/2"
|
||
|
||
|
||
|
||
To use this mouse as the PS/2 device and the OS supports automatic
|
||
PS/2 mouse detection:
|
||
|
||
Option "Protocol" "Auto"
|
||
|
||
|
||
|
||
[1m6.10. IBM ScrollPoint (PS/2)[0m
|
||
|
||
ScrollPoint has a "stick" in between the two buttons. This "stick" is
|
||
the same as the stick-shaped pointing device often found on notebook
|
||
computers, on which you move the mouse cursor by pushing the stick.
|
||
The stick movement is recognized as the Z axis motion. You can push
|
||
the stick to right and left, as well as forward and backward. Give
|
||
four numbers to ZAxisMapping option to map movement along all these
|
||
four directions to button actions.
|
||
|
||
This mouse is compatible with Logitech MouseMan+. To use this mouse
|
||
as the PS/2 device and the OS supports PS/2 mouse initialization:
|
||
|
||
Option "Protocol" "MouseManPlusPS/2"
|
||
|
||
|
||
|
||
To use this mouse as the PS/2 device but the OS does not support PS/2
|
||
mouse initialization (the stick won't work):
|
||
|
||
Option "Protocol" "PS/2"
|
||
|
||
|
||
|
||
To use this mouse as the PS/2 device and the OS supports automatic
|
||
PS/2 mouse detection:
|
||
|
||
Option "Protocol" "Auto"
|
||
|
||
|
||
|
||
[1m6.11. 8D ScrollMouse (serial, PS/2)[0m
|
||
|
||
ScrollMouse, also known as GyroMouse, has a "stick" similar to IBM
|
||
ScrollPoint. The stick movement is recognized as the Z axis motion.
|
||
You can push the stick to right and left, as well as forward and
|
||
backward. Give four numbers to ZAxisMapping option to map movement
|
||
along all these four directions to button actions.
|
||
|
||
ScrollMouse supports the PnP COM device specification. When used as a
|
||
serial mouse, it is compatible with MS IntelliMouse.
|
||
|
||
To use this mouse as a serial device:
|
||
|
||
Option "Protocol" "Auto"
|
||
|
||
|
||
or:
|
||
|
||
Option "Protocol" "IntelliMouse"
|
||
|
||
|
||
|
||
To use this mouse as the PS/2 device and the OS supports PS/2 mouse
|
||
initialization:
|
||
|
||
Option "Protocol" "IMPS/2"
|
||
|
||
|
||
|
||
To use this mouse as the PS/2 device but the OS does not support PS/2
|
||
mouse initialization (the stick won't work):
|
||
|
||
Option "Protocol" "PS/2"
|
||
|
||
|
||
|
||
To use this mouse as the PS/2 device and the OS supports automatic
|
||
PS/2 mouse detection:
|
||
Option "Protocol" "Auto"
|
||
|
||
|
||
|
||
[1m6.12. A4 Tech 4D mice (serial, PS/2, USB)[0m
|
||
|
||
A4 Tech produces quit a number of mice with one or two wheels. Their
|
||
mice may have 2, 3, or 4 buttons. The wheels movement is recognized
|
||
as the Z axis motion. Give four numbers to ZAxisMapping option to map
|
||
movement of both wheels to button actions.
|
||
|
||
4D mice support the PnP COM device specification. When used as a
|
||
serial mouse, it is compatible with MS IntelliMouse.
|
||
|
||
To use this mouse as a serial device:
|
||
|
||
Option "Protocol" "Auto"
|
||
|
||
|
||
or:
|
||
|
||
Option "Protocol" "IntelliMouse"
|
||
|
||
|
||
|
||
To use this mouse as the PS/2 device and the OS supports PS/2 mouse
|
||
initialization:
|
||
|
||
Option "Protocol" "IMPS/2"
|
||
|
||
|
||
|
||
To use this mouse as the PS/2 device but the OS does not support PS/2
|
||
mouse initialization (the wheels won't work):
|
||
|
||
Option "Protocol" "PS/2"
|
||
|
||
|
||
|
||
To use this mouse as the PS/2 device and the OS supports automatic
|
||
PS/2 mouse detection:
|
||
|
||
Option "Protocol" "Auto"
|
||
|
||
|
||
|
||
To use this mouse as the USB device and the OS supports the generic
|
||
HID protocol:
|
||
|
||
Option "Protocol" "usb"
|
||
|
||
|
||
|
||
To use this mouse as the USB device and the OS supports automatic
|
||
mouse detection:
|
||
|
||
Option "Protocol" "Auto"
|
||
|
||
|
||
|
||
[1m7. Configuration Examples[0m
|
||
|
||
|
||
|
||
This section shows some example InputDevice section for popular mice.
|
||
All the examples assume that the mouse is connected to the PS/2 mouse
|
||
port, and the OS supports the PS/2 mouse initialization. It is also
|
||
assumed that /dev/mouse is a link to the PS/2 mouse port.
|
||
|
||
Logitech MouseMan+ has 4 buttons and a wheel. The following example
|
||
makes the wheel movement available as the button 5 and 6.
|
||
|
||
|
||
______________________________________________________________________
|
||
Section "InputDevice"
|
||
Identifier "MouseMan+"
|
||
Driver "mouse"
|
||
Option "Device" "/dev/mouse"
|
||
Option "Protocol" "MouseManPlusPS/2"
|
||
Option "Buttons" "6"
|
||
Option "ZAxisMapping" "5 6"
|
||
EndSection
|
||
______________________________________________________________________
|
||
|
||
|
||
|
||
You can change button number assignment using the xmodmap command
|
||
AFTER you start the X server with the above configuration. You may
|
||
not like to use the wheel as the button 2 and rather want the side
|
||
button (button 4) act like the button 2. You may also want to map the
|
||
wheel movement to the button 4 and 5. This can be done by the
|
||
following command:
|
||
|
||
|
||
xmodmap -e "pointer = 1 6 3 2 4 5"
|
||
|
||
|
||
|
||
After this command is run, the correspondence between the buttons and
|
||
button numbers will be as shown in the following table.
|
||
|
||
|
||
Physical Buttons Reported as:
|
||
------------------------------------
|
||
1 Left Button Button 1
|
||
2 Wheel Button Button 6
|
||
3 Right Button Button 3
|
||
4 Side Button Button 2
|
||
5 Wheel Negative Move Button 4
|
||
6 Wheel Positive Move Button 5
|
||
|
||
|
||
|
||
For the MS IntelliMouse Explorer which as a wheel and 5 buttons, you
|
||
may have the following InputDevice section.
|
||
|
||
|
||
______________________________________________________________________
|
||
Section "InputDevice"
|
||
Identifier "IntelliMouse Explorer"
|
||
Driver "mouse"
|
||
Option "Device" "/dev/mouse"
|
||
Option "Protocol" "ExplorerPS/2"
|
||
Option "Buttons" "7"
|
||
Option "ZAxisMapping" "6 7"
|
||
EndSection
|
||
______________________________________________________________________
|
||
|
||
|
||
|
||
The IntelliMouse Explorer has 5 buttons, thus, you should give "7" to
|
||
the Buttons option if you want to map the wheel movement to buttons (6
|
||
and 7). With this configuration, the correspondence between the
|
||
buttons and button numbers will be as follows:
|
||
|
||
|
||
Physical Buttons Reported as:
|
||
------------------------------------
|
||
1 Left Button Button 1
|
||
2 Wheel Button Button 2
|
||
3 Right Button Button 3
|
||
4 Side Button 1 Button 4
|
||
5 Side Button 2 Button 5
|
||
6 Wheel Negative Move Button 6
|
||
7 Wheel Positive Move Button 7
|
||
|
||
|
||
|
||
You can change button number assignment using xmodmap AFTER you
|
||
started the X server with the above configuration.
|
||
|
||
|
||
xmodmap -e "pointer = 1 2 3 4 7 5 6"
|
||
|
||
|
||
|
||
The above command will moves the side button 2 to the button 7 and
|
||
make the wheel movement reported as the button 5 and 6. See the table
|
||
below.
|
||
|
||
|
||
Physical Buttons Reported as:
|
||
------------------------------------
|
||
1 Left Button Button 1
|
||
2 Wheel Button Button 2
|
||
3 Right Button Button 3
|
||
4 Side Button 1 Button 4
|
||
5 Side Button 2 Button 7
|
||
6 Wheel Negative Move Button 5
|
||
7 Wheel Positive Move Button 6
|
||
|
||
|
||
|
||
For the A4 Tech WinEasy mouse which has two wheels and 3 buttons, you
|
||
may have the following InputDevice section.
|
||
|
||
|
||
______________________________________________________________________
|
||
Section "InputDevice"
|
||
Identifier "WinEasy"
|
||
Driver "mouse"
|
||
Option "Device" "/dev/mouse"
|
||
Option "Protocol" "IMPS/2"
|
||
Option "Buttons" "7"
|
||
Option "ZAxisMapping" "4 5 6 7"
|
||
EndSection
|
||
______________________________________________________________________
|
||
|
||
|
||
|
||
The movement of the first wheel is mapped to the button 4 and 5. The
|
||
second wheel's movement will be reported as the buttons 6 and 7.
|
||
|
||
The Kensington Expert mouse is really a trackball. It has 4 buttons
|
||
arranged in a rectangle around the ball.
|
||
|
||
______________________________________________________________________
|
||
Section "InputDevice"
|
||
Identifier "DLB"
|
||
Driver "mouse"
|
||
Option "Protocol" "ThinkingMousePS/2"
|
||
Option "Buttons" "3"
|
||
Option "Emulate3Buttons"
|
||
Option "Device" "/dev/mouse"
|
||
Option "DragLockButtons" "2 1 4 3"
|
||
EndSection
|
||
______________________________________________________________________
|
||
|
||
|
||
In this example, button 2 is a drag lock button for button number 1,
|
||
and button 4 is a drag lock button for button 3. Since button 2 is
|
||
above button 1 and button 4 is above button 3 in the layout of this
|
||
trackball, this is reasonable.
|
||
|
||
Because button 2 is being used as a drag lock, it can not be used as
|
||
an ordinary button. However, it can be activated by using the
|
||
"Emulate3Buttons" feature. However, some people my be unable to press
|
||
two buttons at the same time. They may prefer the following
|
||
InputDevice section which defines button 4 as a master drag lock
|
||
button, and leaves button 2 free for ordinary use.
|
||
|
||
______________________________________________________________________
|
||
Section "InputDevice"
|
||
Identifier "MasterDLB"
|
||
Driver "mouse"
|
||
Option "Protocol" "ThinkingMousePS/2"
|
||
Option "Buttons" "3"
|
||
Option "Device" "/dev/mouse"
|
||
Option "DragLockButtons" "4"
|
||
EndSection
|
||
______________________________________________________________________
|
||
|
||
|
||
|