Home | History | Annotate | Line # | Download | only in dist
      1  1.1.1.2  mrg   Mouse Support in xf86-input-mouse
      2  1.1.1.2  mrg   Original version written by Kazutaka Yokota for XFree86 on 17 December 2002
      3  1.1.1.2  mrg   Updated by Alan Coopersmith for X.Org releases
      4      1.1  mrg   ____________________________________________________________
      5      1.1  mrg 
      6      1.1  mrg   Table of Contents
      7      1.1  mrg 
      8      1.1  mrg 
      9      1.1  mrg   1. Introduction
     10      1.1  mrg   2. Supported Hardware
     11      1.1  mrg   3. OS Support for Mice
     12      1.1  mrg      3.1 Summary of Supported Mouse Protocol Types
     13      1.1  mrg      3.2 BSD/OS
     14      1.1  mrg      3.3 FreeBSD
     15      1.1  mrg      3.4 FreeBSD(98)
     16      1.1  mrg      3.5 Interactive Unix
     17      1.1  mrg      3.6 Linux
     18      1.1  mrg      3.7 Linux/98
     19      1.1  mrg      3.8 LynxOS
     20      1.1  mrg      3.9 NetBSD
     21      1.1  mrg      3.10 NetBSD/pc98
     22      1.1  mrg      3.11 OpenBSD
     23      1.1  mrg      3.12 OS/2
     24      1.1  mrg      3.13 SCO
     25      1.1  mrg      3.14 Solaris
     26      1.1  mrg      3.15 SVR4
     27      1.1  mrg      3.16 PANIX
     28      1.1  mrg 
     29      1.1  mrg   4. Configuring Your Mouse
     30      1.1  mrg   5. xorg.conf Options
     31      1.1  mrg      5.1 Buttons
     32  1.1.1.2  mrg      5.2 ZAxisMapping
     33      1.1  mrg      5.3 Resolution
     34      1.1  mrg      5.4 Drag Lock Buttons
     35      1.1  mrg 
     36      1.1  mrg   6. Mouse Gallery
     37  1.1.1.2  mrg      6.1 MS IntelliMouse (serial, PS/2)
     38      1.1  mrg      6.2 MS IntelliMouse Explorer (PS/2, USB)
     39  1.1.1.2  mrg      6.3 Kensington Thinking Mouse and Kensington Expert Mouse (serial,
     40  1.1.1.2  mrg          PS/2)
     41      1.1  mrg      6.4 Genius NetScroll (PS/2)
     42      1.1  mrg      6.5 Genius NetMouse and NetMouse Pro (serial, PS/2)
     43      1.1  mrg      6.6 Genius NetScroll Optical (PS/2, USB)
     44      1.1  mrg      6.7 ALPS GlidePoint (serial, PS/2)
     45      1.1  mrg      6.8 ASCII MieMouse (serial, PS/2)
     46      1.1  mrg      6.9 Logitech MouseMan+ and FirstMouse+ (serial, PS/2)
     47      1.1  mrg      6.10 IBM ScrollPoint (PS/2)
     48      1.1  mrg      6.11 8D ScrollMouse (serial, PS/2)
     49      1.1  mrg      6.12 A4 Tech 4D mice (serial, PS/2, USB)
     50      1.1  mrg 
     51      1.1  mrg   7. Configuration Examples
     52      1.1  mrg 
     53      1.1  mrg 
     54      1.1  mrg   ______________________________________________________________________
     55      1.1  mrg 
     56  1.1.1.2  mrg   1.  Introduction
     57      1.1  mrg 
     58      1.1  mrg 
     59  1.1.1.2  mrg   This document describes mouse support in the xf86-input-mouse driver
     60  1.1.1.2  mrg   for the Xorg X server.   This driver is mainly used on non-Linux
     61  1.1.1.2  mrg   operating systems such as BSD & Solaris, as modern Linux systems use
     62  1.1.1.3  mrg   the xf86-input-evdev or xf86-input-libinput drivers instead.
     63      1.1  mrg 
     64      1.1  mrg   Mouse configuration has often been mysterious task for novice users.
     65      1.1  mrg   However, once you learn several basics, it is straightforward to write
     66      1.1  mrg   the mouse "InputDevice" section in the xorg.conf file by hand.
     67      1.1  mrg 
     68      1.1  mrg 
     69  1.1.1.2  mrg   2.  Supported Hardware
     70      1.1  mrg 
     71      1.1  mrg 
     72  1.1.1.2  mrg   The xf86-input-mouse driver supports four classes of mice: serial,
     73  1.1.1.2  mrg   bus and PS/2 mice, and additional mouse types supported by specific
     74  1.1.1.2  mrg   operating systems, such as USB mice.
     75      1.1  mrg 
     76      1.1  mrg 
     77  1.1.1.2  mrg      Serial mouse
     78  1.1.1.2  mrg         The serial mouse was once the most popular pointing device for
     79      1.1  mrg         PCs.  There have been numerous serial mouse models from a number
     80      1.1  mrg         of manufactures.  Despite the wide range of variations, there
     81      1.1  mrg         have been relatively few protocols (data format) with which the
     82      1.1  mrg         serial mouse talks to the host computer.
     83      1.1  mrg 
     84      1.1  mrg         The modern serial mouse conforms to the PnP COM device
     85      1.1  mrg         specification so that the host computer can automatically detect
     86      1.1  mrg         the mouse and load an appropriate driver.  The X server supports
     87      1.1  mrg         this specification and can detect popular PnP serial mouse
     88      1.1  mrg         models on most platforms.
     89      1.1  mrg 
     90      1.1  mrg 
     91  1.1.1.2  mrg      Bus mouse
     92      1.1  mrg         The bus mouse connects to a dedicated interface card in an
     93      1.1  mrg         expansion slot.  Some video cards, notably those from ATI, and
     94      1.1  mrg         integrated I/O cards may also have a bus mouse connector.  Some
     95      1.1  mrg         bus mice are known as `InPort mouse'.
     96      1.1  mrg 
     97  1.1.1.2  mrg         Note that some mouse manufacturers have sold a package including
     98      1.1  mrg         a serial mouse and a serial interface card.  Don't confuse this
     99      1.1  mrg         type of products with the genuine bus mouse.
    100      1.1  mrg 
    101      1.1  mrg 
    102  1.1.1.2  mrg      PS/2 mouse
    103  1.1.1.2  mrg         They are sometimes called `Mouse-port mouse'.  The PS/2 mouse was
    104  1.1.1.2  mrg         common for a generation after serial mice, and most laptops still
    105  1.1.1.2  mrg         use the PS/2 protocol for built-in pointer devices.
    106      1.1  mrg 
    107      1.1  mrg         The PS/2 mouse is an intelligent device and may have more than
    108      1.1  mrg         three buttons and a wheel or a roller.  The PS/2 mouse is
    109      1.1  mrg         usually compatible with the original PS/2 mouse from IBM
    110      1.1  mrg         immediately after power up.  The PS/2 mouse with additional
    111      1.1  mrg         features requires a specialized initialization procedure to
    112      1.1  mrg         enable these features.  Without proper initialization, it
    113      1.1  mrg         behaves as though it were an ordinary two or three button mouse.
    114      1.1  mrg 
    115      1.1  mrg 
    116  1.1.1.2  mrg      USB mouse
    117      1.1  mrg         USB (Universal Serial Bus) ports are present on most modern
    118      1.1  mrg         computers. Several devices can be plugged into this bus,
    119      1.1  mrg         including mice and keyboards.
    120      1.1  mrg 
    121  1.1.1.2  mrg         This driver includes support for USB mice on some systems.
    122      1.1  mrg 
    123      1.1  mrg   Many mice nowadays can be used both as a serial mouse and as a PS/2
    124  1.1.1.2  mrg   mouse, or as both a PS/2 and a USB mouse.  They have logic to distinguish
    125  1.1.1.2  mrg   which interface it is connected to.  However, a mouse which is not
    126  1.1.1.2  mrg   marketed as compatible with both mouse interfaces lacks this logic and
    127  1.1.1.2  mrg   cannot be used in such a way, even if you can find an appropriate adapter
    128  1.1.1.2  mrg   with which you can connect the mouse to a different format port.
    129      1.1  mrg 
    130  1.1.1.2  mrg   This driver supports a mouse with a wheel, a roller or a knob.  Its
    131      1.1  mrg   action is detected as the Z (third) axis motion of the mouse.  As the
    132      1.1  mrg   X server or clients normally do not use the Z axis movement of the
    133      1.1  mrg   pointing device, a configuration option, "ZAxisMapping", is provided
    134      1.1  mrg   to assign the Z axis movement to another axis or a pair of buttons
    135      1.1  mrg   (see below).
    136  1.1.1.2  mrg 
    137  1.1.1.2  mrg 
    138  1.1.1.2  mrg   3.  OS Support for Mice
    139      1.1  mrg 
    140      1.1  mrg 
    141      1.1  mrg 
    142  1.1.1.2  mrg   3.1.  Summary of Supported Mouse Protocol Types
    143      1.1  mrg 
    144      1.1  mrg 
    145      1.1  mrg                                   Protocol Types
    146      1.1  mrg                   serial     PnP     BusMouse    PS/2   Extended PS/2
    147      1.1  mrg   OS platforms   protocols  serial   protocol  protocol  protocols
    148      1.1  mrg                             "Auto"  "BusMouse"  "PS/2"   "xxxPS/2"    USB
    149      1.1  mrg   -------------------------------------------------------------------------
    150      1.1  mrg   BSD/OS            Ok        ?         ?         ?         ?          ?
    151      1.1  mrg   FreeBSD           Ok        Ok        Ok        Ok        SP*1       SP*1
    152      1.1  mrg   FreeBSD(98)       Ok        ?         Ok        NA        NA         ?
    153      1.1  mrg   Interactive Unix  Ok        NA        ?*1       ?*1       NA         ?
    154      1.1  mrg   Linux             Ok        Ok        Ok        Ok        Ok         ?
    155      1.1  mrg   Linux/98          Ok        ?         Ok        NA        NA         ?
    156      1.1  mrg   LynxOS            Ok        NA        Ok        Ok        NA         ?
    157      1.1  mrg   NetBSD            Ok        Ok        Ok        SP*1      SP*1       SP*1
    158      1.1  mrg   NetBSD/pc98       Ok        ?         Ok        NA        NA         NA
    159      1.1  mrg   OpenBSD           Ok        Ok        Ok        Ok*1      Ok*1       Ok*1
    160      1.1  mrg   SCO               Ok        ?         SP*1      SP*1      NA         ?
    161  1.1.1.3  mrg   Solaris           Ok        NA*1      ?*1       Ok        Ok         SP*1
    162      1.1  mrg   SVR4              Ok        NA*1      SP*1      SP*1      NA         ?
    163      1.1  mrg   PANIX             Ok        ?         SP*1      SP*1      NA         ?
    164      1.1  mrg 
    165      1.1  mrg   Ok: support is available,  NA: not available, ?: untested or unknown.
    166      1.1  mrg   SP: support is available in a different form
    167      1.1  mrg 
    168      1.1  mrg   *1 Refer to the following sections for details.
    169      1.1  mrg 
    170      1.1  mrg 
    171      1.1  mrg 
    172  1.1.1.2  mrg   3.2.  BSD/OS
    173      1.1  mrg 
    174      1.1  mrg   No testing has been done with BSD/OS.
    175      1.1  mrg 
    176      1.1  mrg 
    177  1.1.1.2  mrg   3.3.  FreeBSD
    178      1.1  mrg 
    179      1.1  mrg   FreeBSD supports the "SysMouse" protocol which must be specified when
    180      1.1  mrg   the moused daemon is running in versions 2.2.1 or later.
    181      1.1  mrg 
    182      1.1  mrg   When running the mouseddaemon, you must always specify the
    183      1.1  mrg   /dev/sysmouse device and the "SysMouse" protocol to the X server,
    184      1.1  mrg   regardless of the actual type of your mouse.
    185      1.1  mrg 
    186      1.1  mrg   FreeBSD versions 2.2.6 or later include the kernel-level support for
    187      1.1  mrg   extended PS/2 mouse protocols and there is no need to specify the
    188      1.1  mrg   exact protocol name to the X server.  Instead specify the "PS/2" or
    189      1.1  mrg   "Auto" protocol and the X server will automatically make use of the
    190      1.1  mrg   kernel-level support.
    191      1.1  mrg 
    192      1.1  mrg   In fact, "Auto" protocol support is really efficient in these
    193      1.1  mrg   versions.  You may always specify "Auto" to any mouse, serial, bus or
    194      1.1  mrg   PS/2, unless the mouse is an old serial model which doesn't support
    195      1.1  mrg   PnP.
    196      1.1  mrg 
    197      1.1  mrg   FreeBSD versions 2.2.5 or earlier do not support extended PS/2 mouse
    198      1.1  mrg   protocols ("xxxPS/2").  Always specify the "PS/2" protocol for any
    199      1.1  mrg   PS/2 mouse in these versions regardless of the brand of the mouse.
    200  1.1.1.2  mrg 
    201      1.1  mrg   FreeBSD versions 3.1 or later have support for USB mice.  Specify the
    202      1.1  mrg   "Auto" protocol for the /dev/ums0 device.  (If the moused daemon is
    203      1.1  mrg   running for the USB mouse, you must use /dev/sysmouse instead of
    204  1.1.1.2  mrg   /dev/ums0 as explained above.) See the ums(4) manual page for details.
    205      1.1  mrg 
    206      1.1  mrg 
    207  1.1.1.2  mrg   3.4.  FreeBSD(98)
    208      1.1  mrg 
    209      1.1  mrg   The PS/2 mouse is not supported.
    210      1.1  mrg 
    211      1.1  mrg 
    212  1.1.1.2  mrg   3.5.  Interactive Unix
    213      1.1  mrg 
    214      1.1  mrg   The PnP serial mouse support (the "Auto" protocol) is not supported
    215      1.1  mrg   for the moment.
    216      1.1  mrg 
    217      1.1  mrg   The bus mouse and PS/2 mouse should be supported by using the
    218      1.1  mrg   appropriate device drivers.  Use /dev/mouse for the "BusMouse"
    219      1.1  mrg   protocol and /dev/kdmouse for the "PS/2" protocol.  These protocols
    220      1.1  mrg   are untested but may work.  Please send success/failure reports to
    221  1.1.1.2  mrg   <mailto:michael.rohleder (a] stadt-frankfurt.de>
    222      1.1  mrg 
    223      1.1  mrg 
    224  1.1.1.2  mrg   3.6.  Linux
    225      1.1  mrg 
    226      1.1  mrg   All protocol types should work.
    227      1.1  mrg 
    228      1.1  mrg 
    229  1.1.1.2  mrg   3.7.  Linux/98
    230      1.1  mrg 
    231      1.1  mrg   The PS/2 mouse is not supported.
    232      1.1  mrg 
    233      1.1  mrg 
    234  1.1.1.2  mrg   3.8.  LynxOS
    235      1.1  mrg 
    236      1.1  mrg   The PnP serial mouse support (the "Auto" protocol) is disabled in
    237      1.1  mrg   LynxOS, because of limited TTY device driver functionality.
    238      1.1  mrg 
    239      1.1  mrg 
    240  1.1.1.2  mrg   3.9.  NetBSD
    241      1.1  mrg 
    242      1.1  mrg   NetBSD 1.3.x and former does not support extended PS/2 mouse protocols
    243      1.1  mrg   ("xxxPS/2").  The PS/2 mouse device driver /dev/pms emulates the bus
    244      1.1  mrg   mouse.  Therefore, you should always specify the "BusMouse" protocol
    245      1.1  mrg   for any PS/2 mouse regardless of the brand of the mouse.
    246      1.1  mrg 
    247      1.1  mrg   The "wsmouse" protocol introduced in NetBSD 1.4 along with the wscons
    248      1.1  mrg   console driver is supported. You need to run binaries compiled on
    249      1.1  mrg   NetBSD 1.4 to have support for it though. Use "/dev/wsmouse0" for the
    250  1.1.1.2  mrg   device. Refer to the wsmouse(4) manual page for kernel configuration
    251  1.1.1.4  mrg   information.
    252      1.1  mrg 
    253  1.1.1.2  mrg   This driver also provides support for USB mice. See the ums(4) manual
    254      1.1  mrg   page for details.
    255      1.1  mrg 
    256      1.1  mrg 
    257  1.1.1.2  mrg   3.10.  NetBSD/pc98
    258      1.1  mrg 
    259      1.1  mrg   The PS/2 mouse is not supported.
    260      1.1  mrg 
    261      1.1  mrg 
    262  1.1.1.2  mrg 
    263  1.1.1.2  mrg   3.11.  OpenBSD
    264      1.1  mrg 
    265      1.1  mrg   The raw PS/2 mouse device driver /dev/psm0 uses the raw PS/2 mouse
    266      1.1  mrg   protocol.
    267      1.1  mrg 
    268      1.1  mrg   OpenBSD 2.2 and earlier does not support extended PS/2 mouse protocols
    269  1.1.1.2  mrg   ("xxxPS/2") . Therefore, you should specify the "PS/2" protocol for
    270      1.1  mrg   any PS/2 mouse regardless of the brand of the mouse.
    271      1.1  mrg 
    272      1.1  mrg   OpenBSD 2.3 and later support all extended PS/2 mouse protocols.  You
    273      1.1  mrg   can select the "Auto" protocol for PnP PS/2 mice or any specific
    274      1.1  mrg   extended ("xxxPS/2") protocol for non PnP mice.
    275      1.1  mrg 
    276      1.1  mrg   There is also a cooked PS/2 mouse device driver /dev/pms0 which
    277  1.1.1.2  mrg   emulates the bus mouse. Specify the "BusMouse" protocol for any PS/2
    278      1.1  mrg   mouse regardless of the brand of the mouse when using this device.
    279      1.1  mrg 
    280      1.1  mrg   XFree86 3.3.6 support USB mice on OpenBSD 2.6 and later though the
    281      1.1  mrg   generic Human Interface Device (hid) /dev/uhid*. Select the "usb"
    282      1.1  mrg   protocol and the /dev/uhid* instance corresponding to your mouse as
    283      1.1  mrg   the device name.
    284      1.1  mrg 
    285      1.1  mrg 
    286  1.1.1.2  mrg   3.12.  OS/2
    287      1.1  mrg 
    288  1.1.1.2  mrg   X11R7.5/OS2 always uses the native mouse driver of the operating
    289      1.1  mrg   system and will support any type of pointer that the OS supports,
    290      1.1  mrg   whether it is serial, bus mouse, or PnP type.  If the mouse works
    291  1.1.1.2  mrg   under Presentation Manager, it will also work under X11R7.5/OS2.
    292      1.1  mrg 
    293      1.1  mrg   Always specify "OSMouse" as the protocol type.
    294      1.1  mrg 
    295      1.1  mrg 
    296  1.1.1.2  mrg   3.13.  SCO
    297      1.1  mrg 
    298      1.1  mrg   The bus and PS/2 mouse are supported with the "OSMouse" protocol type.
    299      1.1  mrg 
    300      1.1  mrg   The "OSMouse" may also be used with the serial mouse.
    301      1.1  mrg 
    302      1.1  mrg 
    303  1.1.1.2  mrg   3.14.  Solaris
    304      1.1  mrg 
    305  1.1.1.3  mrg   Testing has been done with Solaris 10 and 11.
    306      1.1  mrg 
    307      1.1  mrg   On Solaris 10 1/06 and later versions with "virtual mouse" support,
    308  1.1.1.2  mrg   all PS/2 and USB mice connected to the system can be accessed via the
    309  1.1.1.2  mrg   /dev/mouse device using the VUID protocol, including USB mice plugged
    310  1.1.1.2  mrg   in after the X server is started. On older releases or to address mice
    311  1.1.1.2  mrg   individually, specific devices and protocols may be used.
    312      1.1  mrg 
    313      1.1  mrg   Logitech and Microsoft bus mice have not been tested, but might work
    314  1.1.1.2  mrg   with the /dev/logi and /dev/msm devices.  Standard 2 and 3 button PS/2
    315  1.1.1.2  mrg   mice work with the "PS/2" protocol type and the /dev/kdmouse device.
    316  1.1.1.2  mrg   USB mice work with the "VUID" protocol type and the /dev/mouse device.
    317  1.1.1.2  mrg   The PnP serial mouse support via the "Auto" protocol has been tested
    318  1.1.1.2  mrg   and does not work. The "Auto" protocol can however detect PS/2 and USB
    319  1.1.1.2  mrg   mice correctly.
    320      1.1  mrg 
    321      1.1  mrg   Additional USB mice can be connected using the "VUID" protocol type
    322  1.1.1.2  mrg   and the appropriate "/dev/usb/hid" device with the
    323  1.1.1.2  mrg        Option "StreamsModule" "usbms"
    324  1.1.1.2  mrg   line included in the associated "InputDevice" section.
    325      1.1  mrg 
    326      1.1  mrg 
    327  1.1.1.2  mrg 
    328  1.1.1.2  mrg   3.15.  SVR4
    329      1.1  mrg 
    330      1.1  mrg   The bus and PS/2 mouse may be supported with the "Xqueue" protocol
    331      1.1  mrg   type.
    332      1.1  mrg 
    333      1.1  mrg   The "Xqueue" may also be used with the serial mouse.
    334      1.1  mrg 
    335      1.1  mrg   The PnP serial mouse support (the "Auto" protocol) is not tested.
    336      1.1  mrg 
    337      1.1  mrg 
    338  1.1.1.2  mrg   3.16.  PANIX
    339      1.1  mrg 
    340      1.1  mrg   The PC/AT version of PANIX supports the bus and PS/2 mouse with the
    341      1.1  mrg   "Xqueue" protocol type.  The PC-98 version of PANIX supports the bus
    342      1.1  mrg   mouse with the "Xqueue" protocol type.
    343      1.1  mrg 
    344      1.1  mrg 
    345  1.1.1.2  mrg   4.  Configuring Your Mouse
    346      1.1  mrg 
    347      1.1  mrg 
    348  1.1.1.2  mrg   Before editing the xorg.conf file to set up mouse configuration, you
    349      1.1  mrg   must identify the interface type, the device name and the protocol
    350      1.1  mrg   type of your mouse.  Blindly trying every possible combination of
    351      1.1  mrg   mouse settings will lead you nowhere.
    352      1.1  mrg 
    353      1.1  mrg   The first thing you need to know is the interface type of the mouse
    354      1.1  mrg   you are going to use.  It can be determined by looking at the
    355      1.1  mrg   connector of the mouse.  The serial mouse has a D-Sub female 9- or
    356      1.1  mrg   25-pin connector.  The bus mice have either a D-Sub male 9-pin
    357      1.1  mrg   connector or a round DIN 9-pin connector.  The PS/2 mouse is equipped
    358  1.1.1.2  mrg   with a small, round DIN 6-pin connector.  USB mice have a thin
    359  1.1.1.2  mrg   rectangular connector.  Some mice come with adapters with which the
    360  1.1.1.2  mrg   connector can be converted to another. If you are to use such an
    361  1.1.1.2  mrg   adapter, remember that the connector at the very end of the
    362  1.1.1.2  mrg   mouse/adapter pair is what matters.
    363      1.1  mrg 
    364      1.1  mrg   The next thing to decide is a device node to use for the given
    365      1.1  mrg   interface.  For the bus and PS/2 mice, there is little choice; your OS
    366      1.1  mrg   most possibly offers just one device node each for the bus mouse and
    367      1.1  mrg   PS/2 mouse.  There may be more than one serial port to which the
    368      1.1  mrg   serial mouse can be attached.
    369      1.1  mrg 
    370      1.1  mrg   The next step is to guess the appropriate protocol type for the mouse.
    371      1.1  mrg   The X server may be able to select a protocol type for the given mouse
    372      1.1  mrg   automatically in some cases.  Otherwise, the user has to choose one
    373      1.1  mrg   manually.  Follow the guidelines below.
    374      1.1  mrg 
    375      1.1  mrg 
    376  1.1.1.2  mrg      Bus mouse
    377      1.1  mrg         The bus and InPort mice always use "BusMouse" protocol
    378      1.1  mrg         regardless of the brand of the mouse.
    379      1.1  mrg 
    380      1.1  mrg         Some OSs may allow you to specify "Auto" as the protocol type
    381      1.1  mrg         for the bus mouse.
    382      1.1  mrg 
    383      1.1  mrg 
    384  1.1.1.2  mrg      PS/2 mouse
    385      1.1  mrg         The "PS/2" protocol should always be tried first for the PS/2
    386      1.1  mrg         mouse regardless of the brand of the mouse.  Any PS/2 mouse
    387      1.1  mrg         should work with this protocol type, although wheels and other
    388      1.1  mrg         additional features are unavailable in the X server.
    389      1.1  mrg 
    390      1.1  mrg         After verifying the mouse works with this protocol, you may
    391      1.1  mrg         choose to specify one of "xxxPS/2" protocols so that extra
    392      1.1  mrg         features are made available in the X server.  However, support
    393      1.1  mrg         for these PS/2 mice assumes certain behavior of the underlying
    394      1.1  mrg         OS and may not always work as expected.  Support for some PS/2
    395      1.1  mrg         mouse models may be disabled all together for some OS platforms
    396      1.1  mrg         for this reason.
    397      1.1  mrg 
    398      1.1  mrg         Some OSs may allow you to specify "Auto" as the protocol type
    399      1.1  mrg         for the PS/2 mouse and the X server will automatically adjust
    400      1.1  mrg         itself.
    401      1.1  mrg 
    402      1.1  mrg 
    403  1.1.1.2  mrg      Serial mouse
    404      1.1  mrg         The server supports a wide range of mice, both old and new.  If
    405      1.1  mrg         your mouse is of a relatively new model, it may conform to the
    406      1.1  mrg         PnP COM device specification and the X server may be able to
    407      1.1  mrg         detect an appropriate protocol type for the mouse automatically.
    408      1.1  mrg 
    409      1.1  mrg         Specify "Auto" as the protocol type and start the X server.  If
    410      1.1  mrg         the mouse is not a PnP mouse, or the X server cannot determine a
    411      1.1  mrg         suitable protocol type, the server will print the following
    412      1.1  mrg         error message and abort.
    413      1.1  mrg 
    414      1.1  mrg 
    415      1.1  mrg         <mousename>: cannot determine the mouse protocol
    416      1.1  mrg 
    417      1.1  mrg 
    418      1.1  mrg 
    419      1.1  mrg      If the X server generates the above error message, you need to
    420      1.1  mrg      manually specify a protocol type for your mouse.  Choose one from
    421      1.1  mrg      the following list:
    422      1.1  mrg 
    423      1.1  mrg 
    424  1.1.1.2  mrg         o  GlidePoint
    425      1.1  mrg 
    426  1.1.1.2  mrg         o  IntelliMouse
    427      1.1  mrg 
    428  1.1.1.2  mrg         o  Logitech
    429      1.1  mrg 
    430  1.1.1.2  mrg         o  Microsoft
    431      1.1  mrg 
    432  1.1.1.2  mrg         o  MMHittab
    433      1.1  mrg 
    434  1.1.1.2  mrg         o  MMSeries
    435      1.1  mrg 
    436  1.1.1.2  mrg         o  MouseMan
    437      1.1  mrg 
    438  1.1.1.2  mrg         o  MouseSystems
    439      1.1  mrg 
    440  1.1.1.2  mrg         o  ThinkingMouse
    441      1.1  mrg 
    442      1.1  mrg      When you choose, keep in mind the following rule of thumb:
    443      1.1  mrg 
    444      1.1  mrg 
    445      1.1  mrg         1. "Logitech" protocol is for old serial mouse models from
    446      1.1  mrg            Logitech.  Modern Logitech mice use either "MouseMan" or
    447      1.1  mrg            "Microsoft" protocol.
    448      1.1  mrg 
    449      1.1  mrg         2. Most 2-button serial mice support the "Microsoft" protocol.
    450      1.1  mrg 
    451      1.1  mrg         3. 3-button serial mice may work with the "Mousesystems"
    452      1.1  mrg            protocol. If it doesn't, it may work instead with the
    453      1.1  mrg            "Microsoft" protocol although the third (middle) button won't
    454      1.1  mrg            function.  3-button serial mice may also work with the
    455      1.1  mrg            "Mouseman" protocol under which the third button may function
    456      1.1  mrg            as expected.
    457      1.1  mrg 
    458      1.1  mrg         4. 3-button serial mice may have a small switch at the bottom of
    459      1.1  mrg            the mouse to choose between ``MS'' and ``PC'', or ``2'' and
    460      1.1  mrg            ``3''.  ``MS'' or ``2'' usually mean the "Microsoft"
    461      1.1  mrg            protocol.  ``PC'' or ``3'' will choose the "MouseSystems"
    462      1.1  mrg            protocol.
    463      1.1  mrg 
    464      1.1  mrg         5. If the serial mouse has a roller or a wheel, it may be
    465      1.1  mrg            compatible with the "IntelliMouse" protocol.
    466      1.1  mrg 
    467      1.1  mrg         6. If the serial mouse has a roller or a wheel and it doesn't
    468      1.1  mrg            work with the "IntelliMouse" protocol, you have to use it as
    469      1.1  mrg            a regular 2- or 3-button serial mouse.
    470      1.1  mrg 
    471  1.1.1.2  mrg      If the "Auto" protocol is specified and the mouse seems to be
    472  1.1.1.2  mrg      working, but you find that not all features of the mouse are
    473  1.1.1.2  mrg      available, that is because the X server does not have native
    474  1.1.1.2  mrg      support for that model of mouse and is using a ``compatible''
    475  1.1.1.2  mrg      protocol according to PnP information.
    476      1.1  mrg 
    477  1.1.1.2  mrg      If you suspect this is the case with your mouse, please enter a bug
    478  1.1.1.2  mrg      report at http://bugzilla.freedesktop.org, using the xorg product.
    479      1.1  mrg 
    480      1.1  mrg 
    481  1.1.1.2  mrg      USB mouse
    482      1.1  mrg         If your mouse is connected to the USB port, it can either be
    483      1.1  mrg         supported by the "Auto" protocol, or by an OS-specific protocol
    484      1.1  mrg         (see below), or as a generic Human Interface Device by the "usb"
    485      1.1  mrg         protocol.
    486      1.1  mrg 
    487      1.1  mrg 
    488  1.1.1.2  mrg      Standardized protocols
    489      1.1  mrg         Mouse device drivers in your OS may use the standardized
    490      1.1  mrg         protocol regardless of the model or the class of the mouse.  For
    491      1.1  mrg         example, SVR4 systems may support "Xqueue" protocol.  In FreeBSD
    492      1.1  mrg         the system mouse device /dev/sysmouse uses the "SysMouse"
    493      1.1  mrg         protocol.  Please refer to the OS support section of this file
    494      1.1  mrg         for more information.
    495      1.1  mrg 
    496      1.1  mrg 
    497      1.1  mrg 
    498  1.1.1.2  mrg   5.  xorg.conf Options
    499      1.1  mrg 
    500      1.1  mrg 
    501      1.1  mrg   The old Pointer section has been replaced by a more general
    502  1.1.1.2  mrg   InputDevice section. The following is a minimal example of an
    503      1.1  mrg   InputDevice section for a mouse:
    504      1.1  mrg 
    505      1.1  mrg 
    506      1.1  mrg   Section "InputDevice"
    507      1.1  mrg           Identifier      "Mouse 1"
    508      1.1  mrg           Driver          "mouse"
    509      1.1  mrg           Option          "Device"    "/dev/mouse"
    510      1.1  mrg           Option          "Protocol"  "Auto"
    511      1.1  mrg   EndSection
    512      1.1  mrg 
    513      1.1  mrg 
    514      1.1  mrg 
    515      1.1  mrg   The mouse driver supports the following config file options:
    516      1.1  mrg 
    517      1.1  mrg 
    518  1.1.1.2  mrg   5.1.  Buttons
    519      1.1  mrg 
    520      1.1  mrg   This option tells the X server the number of buttons on the mouse.
    521      1.1  mrg   Currently there is no reliable way to automatically detect the correct
    522      1.1  mrg   number.  This option is the only means for the X server to obtain it.
    523      1.1  mrg   The default value is three.
    524      1.1  mrg 
    525  1.1.1.2  mrg 
    526      1.1  mrg   Note that if you intend to assign Z axis movement to button events
    527      1.1  mrg   using the ZAxisMapping option below, you need to take account of those
    528      1.1  mrg   buttons into N too.
    529      1.1  mrg 
    530      1.1  mrg 
    531      1.1  mrg           Option  "Buttons"   "N"
    532      1.1  mrg 
    533      1.1  mrg 
    534      1.1  mrg 
    535  1.1.1.2  mrg   5.2.  ZAxisMapping
    536      1.1  mrg 
    537      1.1  mrg   This option maps the Z axis (wheel) motion to buttons or to another
    538      1.1  mrg   axis.
    539  1.1.1.2  mrg 
    540  1.1.1.2  mrg 
    541      1.1  mrg           Option  "ZAxisMapping"      "X"
    542      1.1  mrg           Option  "ZAxisMapping"      "Y"
    543      1.1  mrg           Option  "ZAxisMapping"      "N1 N2"
    544      1.1  mrg           Option  "ZAxisMapping"      "N1 N2 N3 N4"
    545      1.1  mrg 
    546      1.1  mrg 
    547      1.1  mrg 
    548      1.1  mrg   The first example will map the Z axis motion to the X axis motion.
    549      1.1  mrg   Whenever the user moves the wheel/roller, its movement is reported as
    550  1.1.1.2  mrg   the X axis motion. When the wheel/roller stays still, the real X axis
    551  1.1.1.2  mrg   motion is reported as is. The third example will map negative Z axis
    552      1.1  mrg   motion to the button N1 and positive Z axis motion to the button N2.
    553      1.1  mrg   If this option is used and the buttons N1 or N2 actually exists in the
    554      1.1  mrg   mouse, their actions won't be detected by the X server.
    555      1.1  mrg 
    556      1.1  mrg   The last example is useful for the mouse with two wheels of which the
    557      1.1  mrg   second wheel is used to generate horizontal scroll action, and the
    558      1.1  mrg   mouse which has a knob or a stick which can detect the horizontal
    559      1.1  mrg   force applied by the user.  The motion of the second wheel will be
    560      1.1  mrg   mapped to the buttons N3, for the negative direction, and N4, for the
    561      1.1  mrg   positive direction.  If the buttons N3 and N4 actually exist in this
    562      1.1  mrg   mouse, their actions won't be detected by the X server.
    563      1.1  mrg 
    564      1.1  mrg   NOTE #1: horizontal movement may not always be detected by the current
    565  1.1.1.2  mrg   version of the X11R7.5 X servers, because there appears to be no
    566      1.1  mrg   accepted standard as to how the horizontal direction is encoded in
    567      1.1  mrg   mouse data.
    568      1.1  mrg 
    569      1.1  mrg   NOTE #2: Some mice think left is the negative horizontal direction,
    570      1.1  mrg   others may think otherwise.  Moreover, there are some mice whose two
    571      1.1  mrg   wheels are both mounted vertically, and the direction of the second
    572      1.1  mrg   vertical wheel does not match the first one's.
    573      1.1  mrg 
    574      1.1  mrg   You need to edit the xorg.conf file by hand to change this option if
    575      1.1  mrg   the default value of "4 5 6 7" does not match the needs of your
    576      1.1  mrg   configuration.
    577      1.1  mrg 
    578      1.1  mrg 
    579  1.1.1.2  mrg   5.3.  Resolution
    580      1.1  mrg 
    581      1.1  mrg   The following option will set the mouse device resolution to N counts
    582      1.1  mrg   per inch, if possible:
    583      1.1  mrg 
    584      1.1  mrg 
    585      1.1  mrg           Option  "Resolution"        "N"
    586      1.1  mrg 
    587      1.1  mrg 
    588      1.1  mrg 
    589      1.1  mrg   Not all mice and OSs can support this option.
    590      1.1  mrg 
    591  1.1.1.2  mrg   5.4.  Drag Lock Buttons
    592      1.1  mrg 
    593      1.1  mrg   Some people find it difficult or inconvenient to hold a trackball
    594      1.1  mrg   button down, while at the same time moving the ball. Drag lock buttons
    595      1.1  mrg   simulate the holding down of another button. When a drag lock button
    596  1.1.1.2  mrg   is first pressed, its target buttons is "locked" down until the second
    597  1.1.1.2  mrg   time the lock button is released, or until the button itself is
    598      1.1  mrg   pressed and released. This allows the starting of a drag, the movement
    599      1.1  mrg   of the trackball, and the ending of the drag to be separate
    600      1.1  mrg   operations.
    601      1.1  mrg 
    602      1.1  mrg 
    603      1.1  mrg           Option  "DragLockButtons"   "W X Y Z"
    604      1.1  mrg 
    605      1.1  mrg 
    606  1.1.1.2  mrg 
    607      1.1  mrg   This option consists of pairs of buttons. Each lock button number is
    608      1.1  mrg   followed by the number of the button that it locks. In the above,
    609      1.1  mrg   button number "W" is a drag lock button for button "X" and button
    610      1.1  mrg   number "Y" is a drag lock button for button "Z".
    611      1.1  mrg 
    612      1.1  mrg   It may not be desirable to use multiple buttons as drag locks.
    613      1.1  mrg   Instead, a "master drag lock button" may be defined. A master drag
    614      1.1  mrg   lock button acts as a "META" key. After a master lock button is
    615      1.1  mrg   released, the next button pressed is "locked" and not released until
    616      1.1  mrg   the second time the real button is released.
    617      1.1  mrg 
    618      1.1  mrg 
    619      1.1  mrg           Option  "DragLockButtons"   "M"
    620      1.1  mrg 
    621      1.1  mrg 
    622      1.1  mrg 
    623      1.1  mrg   Since button "M" is unpaired it is a master drag lock button.
    624      1.1  mrg 
    625      1.1  mrg 
    626  1.1.1.2  mrg   6.  Mouse Gallery
    627      1.1  mrg 
    628      1.1  mrg 
    629      1.1  mrg   In all of the examples below, it is assumed that /dev/mouse is a link
    630      1.1  mrg   to the appropriate serial port or PS/2 mouse device.
    631      1.1  mrg 
    632      1.1  mrg 
    633  1.1.1.2  mrg   6.1.  MS IntelliMouse (serial, PS/2)
    634      1.1  mrg 
    635      1.1  mrg   This mouse has a wheel which also acts as the button 2 (middle
    636      1.1  mrg   button).  The wheel movement is recognized as the Z axis motion.  This
    637      1.1  mrg   behavior is not compatible with XFree86 versions prior to 3.3.2, but
    638      1.1  mrg   is more consistent with the support for other mice with wheels or
    639      1.1  mrg   rollers.  If you want to make the wheel behave like before, you can
    640      1.1  mrg   use the "ZAxisMapping" option as described above.
    641      1.1  mrg 
    642      1.1  mrg   IntelliMouse supports the PnP COM device specification.
    643      1.1  mrg 
    644      1.1  mrg   To use this mouse as a serial device:
    645      1.1  mrg 
    646      1.1  mrg           Option  "Protocol"  "Auto"
    647      1.1  mrg 
    648      1.1  mrg 
    649      1.1  mrg   or:
    650      1.1  mrg 
    651      1.1  mrg           Option  "Protocol"  "IntelliMouse"
    652      1.1  mrg 
    653      1.1  mrg 
    654      1.1  mrg 
    655      1.1  mrg   To use this mouse as the PS/2 device and the OS supports PS/2 mouse
    656      1.1  mrg   initialization:
    657      1.1  mrg           Option  "Protocol"  "IMPS/2"
    658      1.1  mrg 
    659      1.1  mrg 
    660      1.1  mrg 
    661      1.1  mrg   To use this mouse as the PS/2 device but the OS does not support PS/2
    662      1.1  mrg   mouse initialization (the wheel won't work in this case):
    663      1.1  mrg 
    664      1.1  mrg           Option  "Protocol"  "PS/2"
    665      1.1  mrg 
    666      1.1  mrg 
    667      1.1  mrg 
    668      1.1  mrg   To use this mouse as the PS/2 device and the OS supports automatic
    669      1.1  mrg   PS/2 mouse detection:
    670      1.1  mrg 
    671      1.1  mrg           Option  "Protocol"  "Auto"
    672      1.1  mrg 
    673      1.1  mrg 
    674      1.1  mrg 
    675  1.1.1.2  mrg   6.2.  MS IntelliMouse Explorer (PS/2, USB)
    676      1.1  mrg 
    677      1.1  mrg   This mouse has a wheel which also acts as the button 2 (middle
    678      1.1  mrg   button).  There are two side buttons; they are recognized as the
    679      1.1  mrg   buttons 4 and 5.  The wheel movement is recognized as the Z axis
    680      1.1  mrg   motion.
    681      1.1  mrg 
    682      1.1  mrg   To use this mouse as the PS/2 device and the OS supports PS/2 mouse
    683      1.1  mrg   initialization:
    684      1.1  mrg 
    685      1.1  mrg           Option  "Protocol"  "ExplorerPS/2"
    686      1.1  mrg 
    687      1.1  mrg 
    688      1.1  mrg 
    689      1.1  mrg   To use this mouse as the PS/2 device but the OS does not support PS/2
    690      1.1  mrg   mouse initialization (the wheel and the side buttons won't work in
    691      1.1  mrg   this case):
    692      1.1  mrg 
    693      1.1  mrg           Option  "Protocol"  "PS/2"
    694      1.1  mrg 
    695      1.1  mrg 
    696      1.1  mrg 
    697      1.1  mrg   To use this mouse as the PS/2 device and the OS supports automatic
    698      1.1  mrg   PS/2 mouse detection:
    699      1.1  mrg 
    700      1.1  mrg           Option  "Protocol"  "Auto"
    701      1.1  mrg 
    702      1.1  mrg 
    703      1.1  mrg 
    704      1.1  mrg   To use this mouse as the USB device and the OS supports the generic
    705      1.1  mrg   HID protocol:
    706      1.1  mrg 
    707      1.1  mrg           Option  "Protocol"  "usb"
    708      1.1  mrg 
    709      1.1  mrg 
    710      1.1  mrg 
    711      1.1  mrg   To use this mouse as the USB device and the OS supports automatic
    712      1.1  mrg   mouse detection:
    713      1.1  mrg 
    714      1.1  mrg           Option  "Protocol"  "Auto"
    715      1.1  mrg 
    716      1.1  mrg 
    717      1.1  mrg 
    718  1.1.1.2  mrg   6.3.  Kensington Thinking Mouse and Kensington Expert Mouse (serial,
    719  1.1.1.2  mrg   PS/2)
    720      1.1  mrg 
    721      1.1  mrg   These mice have four buttons.  The Kensington Expert Mouse is really a
    722  1.1.1.2  mrg   trackball.  Both Thinking mice support the PnP COM device
    723      1.1  mrg   specification.
    724      1.1  mrg 
    725      1.1  mrg   To use this mouse as a serial device:
    726      1.1  mrg 
    727      1.1  mrg           Option  "Protocol"  "Auto"
    728      1.1  mrg 
    729      1.1  mrg 
    730      1.1  mrg   or:
    731      1.1  mrg 
    732      1.1  mrg           Option  "Protocol"  "ThinkingMouse"
    733      1.1  mrg 
    734      1.1  mrg 
    735  1.1.1.2  mrg 
    736      1.1  mrg   To use this mouse as the PS/2 device and the OS supports PS/2 mouse
    737      1.1  mrg   initialization:
    738      1.1  mrg 
    739      1.1  mrg           Option  "Protocol"  "ThinkingMousePS/2"
    740      1.1  mrg 
    741      1.1  mrg 
    742      1.1  mrg 
    743      1.1  mrg   To use this mouse as the PS/2 device but the OS does not support PS/2
    744      1.1  mrg   mouse initialization (the third and the fourth buttons act as though
    745      1.1  mrg   they were the first and the second buttons):
    746      1.1  mrg 
    747      1.1  mrg           Option  "Protocol"  "PS/2"
    748      1.1  mrg 
    749      1.1  mrg 
    750      1.1  mrg 
    751      1.1  mrg   To use this mouse as the PS/2 device and the OS supports automatic
    752      1.1  mrg   PS/2 mouse detection:
    753      1.1  mrg 
    754      1.1  mrg           Option  "Protocol"  "Auto"
    755      1.1  mrg 
    756      1.1  mrg 
    757      1.1  mrg 
    758  1.1.1.2  mrg   6.4.  Genius NetScroll (PS/2)
    759      1.1  mrg 
    760  1.1.1.2  mrg   This mouse has four buttons and a roller. The roller movement is
    761      1.1  mrg   recognized as the Z axis motion.
    762      1.1  mrg 
    763      1.1  mrg   To use this mouse as the PS/2 device and the OS supports PS/2 mouse
    764      1.1  mrg   initialization:
    765      1.1  mrg 
    766      1.1  mrg           Option  "Protocol"  "NetScrollPS/2"
    767      1.1  mrg 
    768      1.1  mrg 
    769      1.1  mrg 
    770      1.1  mrg   To use this mouse as the PS/2 device but the OS does not support PS/2
    771      1.1  mrg   mouse initialization (the roller and the fourth button won't work):
    772      1.1  mrg 
    773      1.1  mrg           Option  "Protocol"  "PS/2"
    774      1.1  mrg 
    775      1.1  mrg 
    776      1.1  mrg 
    777      1.1  mrg   To use this mouse as the PS/2 device and the OS supports automatic
    778      1.1  mrg   PS/2 mouse detection:
    779      1.1  mrg 
    780      1.1  mrg           Option  "Protocol"  "Auto"
    781      1.1  mrg 
    782      1.1  mrg 
    783  1.1.1.2  mrg   6.5.  Genius NetMouse and NetMouse Pro (serial, PS/2)
    784      1.1  mrg 
    785      1.1  mrg   These mice have a "magic button" which is used like a wheel or a
    786  1.1.1.2  mrg   roller. The "magic button" action is recognized as the Z axis motion.
    787      1.1  mrg   NetMouse Pro is identical to NetMouse except that it has the third
    788      1.1  mrg   button on the left hand side.
    789      1.1  mrg 
    790      1.1  mrg   NetMouse and NetMouse Pro support the PnP COM device specification.
    791      1.1  mrg   When used as a serial mouse, they are compatible with MS IntelliMouse.
    792      1.1  mrg 
    793      1.1  mrg   To use these mice as a serial device:
    794      1.1  mrg 
    795      1.1  mrg           Option  "Protocol"  "Auto"
    796      1.1  mrg 
    797      1.1  mrg 
    798      1.1  mrg   or:
    799      1.1  mrg 
    800      1.1  mrg           Option  "Protocol"  "IntelliMouse"
    801      1.1  mrg 
    802      1.1  mrg 
    803      1.1  mrg 
    804      1.1  mrg   To use this mouse as the PS/2 device and the OS supports PS/2 mouse
    805      1.1  mrg   initialization:
    806      1.1  mrg 
    807      1.1  mrg           Option  "Protocol"  "NetMousePS/2"
    808      1.1  mrg 
    809      1.1  mrg 
    810      1.1  mrg 
    811      1.1  mrg   To use this mouse as the PS/2 device but the OS does not support PS/2
    812      1.1  mrg   mouse initialization (the "magic button" and the third button won't
    813      1.1  mrg   work):
    814      1.1  mrg 
    815      1.1  mrg           Option  "Protocol"  "PS/2"
    816      1.1  mrg 
    817      1.1  mrg 
    818      1.1  mrg 
    819      1.1  mrg   To use this mouse as the PS/2 device and the OS supports automatic
    820      1.1  mrg   PS/2 mouse detection:
    821      1.1  mrg 
    822      1.1  mrg           Option  "Protocol"  "Auto"
    823      1.1  mrg 
    824      1.1  mrg 
    825      1.1  mrg 
    826  1.1.1.2  mrg   6.6.  Genius NetScroll Optical (PS/2, USB)
    827      1.1  mrg 
    828      1.1  mrg   This mouse has a wheel which also acts as the button 2 (middle
    829      1.1  mrg   button), and two side buttons which are recognized as the buttons 4
    830      1.1  mrg   and 5.  It is compatible with NetMouse and NetMouse Pro.
    831      1.1  mrg 
    832      1.1  mrg   To use this mouse as the PS/2 device and the OS supports PS/2 mouse
    833      1.1  mrg   initialization:
    834      1.1  mrg 
    835      1.1  mrg           Option  "Protocol"  "NetMousePS/2"
    836      1.1  mrg 
    837      1.1  mrg 
    838      1.1  mrg 
    839      1.1  mrg   To use this mouse as the PS/2 device but the OS does not support PS/2
    840      1.1  mrg   mouse initialization (the wheel and the side buttons won't work):
    841      1.1  mrg 
    842      1.1  mrg           Option  "Protocol"  "PS/2"
    843      1.1  mrg 
    844      1.1  mrg 
    845      1.1  mrg 
    846      1.1  mrg   To use this mouse as the PS/2 device and the OS supports automatic
    847      1.1  mrg   PS/2 mouse detection:
    848      1.1  mrg           Option  "Protocol"  "Auto"
    849      1.1  mrg 
    850      1.1  mrg 
    851      1.1  mrg 
    852      1.1  mrg   To use this mouse as the USB device and the OS supports the generic
    853      1.1  mrg   HID protocol:
    854      1.1  mrg 
    855      1.1  mrg           Option  "Protocol"  "usb"
    856      1.1  mrg 
    857      1.1  mrg 
    858      1.1  mrg 
    859      1.1  mrg   To use this mouse as the USB device and the OS supports automatic
    860      1.1  mrg   mouse detection:
    861      1.1  mrg 
    862      1.1  mrg           Option  "Protocol"  "Auto"
    863      1.1  mrg 
    864      1.1  mrg 
    865      1.1  mrg 
    866  1.1.1.2  mrg   6.7.  ALPS GlidePoint (serial, PS/2)
    867      1.1  mrg 
    868      1.1  mrg   The serial version of this pad device has been supported since XFree86
    869  1.1.1.2  mrg   3.2. `Tapping' action is interpreted as the fourth button press.
    870      1.1  mrg   (IMHO, the fourth button of GlidePoint should always be mapped to the
    871      1.1  mrg   first button in order to make this pad behave like the other pad
    872      1.1  mrg   products.)
    873      1.1  mrg 
    874      1.1  mrg   To use this pad as a serial device:
    875      1.1  mrg 
    876      1.1  mrg           Option  "Protocol"  "GlidePoint"
    877      1.1  mrg 
    878      1.1  mrg 
    879      1.1  mrg 
    880      1.1  mrg   To use this mouse as the PS/2 device and the OS supports PS/2 mouse
    881      1.1  mrg   initialization:
    882      1.1  mrg 
    883      1.1  mrg           Option  "Protocol"  "GlidePointPS/2"
    884      1.1  mrg 
    885      1.1  mrg 
    886      1.1  mrg 
    887      1.1  mrg   To use this mouse as the PS/2 device but the OS does not support PS/2
    888      1.1  mrg   mouse initialization:
    889      1.1  mrg 
    890      1.1  mrg           Option  "Protocol"  "PS/2"
    891      1.1  mrg 
    892      1.1  mrg 
    893      1.1  mrg 
    894      1.1  mrg   To use this mouse as the PS/2 device and the OS supports automatic
    895      1.1  mrg   PS/2 mouse detection:
    896      1.1  mrg 
    897      1.1  mrg           Option  "Protocol"  "Auto"
    898      1.1  mrg 
    899      1.1  mrg 
    900      1.1  mrg 
    901  1.1.1.2  mrg   6.8.  ASCII MieMouse (serial, PS/2)
    902      1.1  mrg 
    903  1.1.1.2  mrg   This mouse appears to be OEM from Genius. Although its shape is quite
    904  1.1.1.2  mrg   different, it works like Genius NetMouse Pro. This mouse has a "knob"
    905  1.1.1.2  mrg   which is used like a wheel or a roller. The "knob" action is
    906      1.1  mrg   recognized as the Z axis motion.
    907      1.1  mrg 
    908  1.1.1.2  mrg   MieMouse supports the PnP COM device specification. When used as a
    909      1.1  mrg   serial mouse, it is compatible with MS IntelliMouse.
    910      1.1  mrg 
    911  1.1.1.2  mrg 
    912      1.1  mrg   To use this mouse as a serial device:
    913      1.1  mrg 
    914      1.1  mrg           Option  "Protocol"  "Auto"
    915      1.1  mrg 
    916      1.1  mrg 
    917      1.1  mrg   or:
    918      1.1  mrg 
    919      1.1  mrg           Option  "Protocol"  "IntelliMouse"
    920      1.1  mrg 
    921      1.1  mrg 
    922      1.1  mrg 
    923      1.1  mrg   To use this mouse as the PS/2 device and the OS supports PS/2 mouse
    924      1.1  mrg   initialization:
    925      1.1  mrg 
    926      1.1  mrg           Option  "Protocol"  "NetMousePS/2"
    927      1.1  mrg 
    928      1.1  mrg 
    929      1.1  mrg 
    930      1.1  mrg   To use this mouse as the PS/2 device but the OS does not support PS/2
    931      1.1  mrg   mouse initialization (the knob and the third button won't work):
    932      1.1  mrg 
    933      1.1  mrg           Option  "Protocol"  "PS/2"
    934      1.1  mrg 
    935      1.1  mrg 
    936      1.1  mrg 
    937      1.1  mrg   To use this mouse as the PS/2 device and the OS supports automatic
    938      1.1  mrg   PS/2 mouse detection:
    939      1.1  mrg 
    940      1.1  mrg           Option  "Protocol"  "Auto"
    941      1.1  mrg 
    942      1.1  mrg 
    943      1.1  mrg 
    944  1.1.1.2  mrg   6.9.  Logitech MouseMan+ and FirstMouse+ (serial, PS/2)
    945      1.1  mrg 
    946      1.1  mrg   MouseMan+ has two buttons on top, one side button and a roller.
    947  1.1.1.2  mrg   FirstMouse+ has two buttons and a roller. The roller movement is
    948  1.1.1.2  mrg   recognized as the Z axis motion. The roller also acts as the third
    949  1.1.1.2  mrg   button. The side button is recognized as the fourth button.
    950      1.1  mrg 
    951      1.1  mrg   MouseMan+ and FirstMouse+ support the PnP COM device specification.
    952      1.1  mrg   They have MS IntelliMouse compatible mode when used as a serial mouse.
    953      1.1  mrg 
    954      1.1  mrg   To use these mice as a serial device:
    955      1.1  mrg 
    956      1.1  mrg           Option  "Protocol"  "Auto"
    957      1.1  mrg 
    958      1.1  mrg 
    959      1.1  mrg   or:
    960      1.1  mrg 
    961      1.1  mrg           Option  "Protocol"  "IntelliMouse"
    962      1.1  mrg 
    963      1.1  mrg 
    964      1.1  mrg 
    965      1.1  mrg   To use this mouse as the PS/2 device and the OS supports PS/2 mouse
    966      1.1  mrg   initialization:
    967      1.1  mrg 
    968      1.1  mrg           Option  "Protocol"  "MouseManPlusPS/2"
    969      1.1  mrg 
    970      1.1  mrg 
    971      1.1  mrg 
    972      1.1  mrg   To use this mouse as the PS/2 device but the OS does not support PS/2
    973      1.1  mrg   mouse initialization (the wheel and the fourth button won't work):
    974      1.1  mrg 
    975      1.1  mrg           Option  "Protocol"  "PS/2"
    976      1.1  mrg 
    977      1.1  mrg   To use this mouse as the PS/2 device and the OS supports automatic
    978      1.1  mrg   PS/2 mouse detection:
    979      1.1  mrg 
    980      1.1  mrg           Option  "Protocol"  "Auto"
    981      1.1  mrg 
    982      1.1  mrg 
    983      1.1  mrg 
    984  1.1.1.2  mrg   6.10.  IBM ScrollPoint (PS/2)
    985      1.1  mrg 
    986      1.1  mrg   ScrollPoint has a "stick" in between the two buttons.  This "stick" is
    987      1.1  mrg   the same as the stick-shaped pointing device often found on notebook
    988      1.1  mrg   computers, on which you move the mouse cursor by pushing the stick.
    989      1.1  mrg   The stick movement is recognized as the Z axis motion.  You can push
    990  1.1.1.2  mrg   the stick to right and left, as well as forward and backward. Give
    991      1.1  mrg   four numbers to ZAxisMapping option to map movement along all these
    992      1.1  mrg   four directions to button actions.
    993      1.1  mrg 
    994      1.1  mrg   This mouse is compatible with Logitech MouseMan+.  To use this mouse
    995      1.1  mrg   as the PS/2 device and the OS supports PS/2 mouse initialization:
    996      1.1  mrg 
    997      1.1  mrg           Option  "Protocol"  "MouseManPlusPS/2"
    998      1.1  mrg 
    999      1.1  mrg 
   1000      1.1  mrg 
   1001      1.1  mrg   To use this mouse as the PS/2 device but the OS does not support PS/2
   1002      1.1  mrg   mouse initialization (the stick won't work):
   1003      1.1  mrg 
   1004      1.1  mrg           Option  "Protocol"  "PS/2"
   1005      1.1  mrg 
   1006      1.1  mrg 
   1007      1.1  mrg 
   1008      1.1  mrg   To use this mouse as the PS/2 device and the OS supports automatic
   1009      1.1  mrg   PS/2 mouse detection:
   1010      1.1  mrg 
   1011      1.1  mrg           Option  "Protocol"  "Auto"
   1012      1.1  mrg 
   1013      1.1  mrg 
   1014      1.1  mrg 
   1015  1.1.1.2  mrg   6.11.  8D ScrollMouse (serial, PS/2)
   1016      1.1  mrg 
   1017      1.1  mrg   ScrollMouse, also known as GyroMouse, has a "stick" similar to IBM
   1018      1.1  mrg   ScrollPoint.  The stick movement is recognized as the Z axis motion.
   1019      1.1  mrg   You can push the stick to right and left, as well as forward and
   1020  1.1.1.2  mrg   backward. Give four numbers to ZAxisMapping option to map movement
   1021      1.1  mrg   along all these four directions to button actions.
   1022      1.1  mrg 
   1023  1.1.1.2  mrg   ScrollMouse supports the PnP COM device specification. When used as a
   1024      1.1  mrg   serial mouse, it is compatible with MS IntelliMouse.
   1025      1.1  mrg 
   1026      1.1  mrg   To use this mouse as a serial device:
   1027      1.1  mrg 
   1028      1.1  mrg           Option  "Protocol"  "Auto"
   1029      1.1  mrg 
   1030      1.1  mrg 
   1031      1.1  mrg   or:
   1032      1.1  mrg 
   1033      1.1  mrg           Option  "Protocol"  "IntelliMouse"
   1034      1.1  mrg 
   1035      1.1  mrg 
   1036      1.1  mrg 
   1037      1.1  mrg   To use this mouse as the PS/2 device and the OS supports PS/2 mouse
   1038      1.1  mrg   initialization:
   1039      1.1  mrg 
   1040  1.1.1.2  mrg 
   1041      1.1  mrg           Option  "Protocol"  "IMPS/2"
   1042      1.1  mrg 
   1043      1.1  mrg 
   1044      1.1  mrg 
   1045      1.1  mrg   To use this mouse as the PS/2 device but the OS does not support PS/2
   1046      1.1  mrg   mouse initialization (the stick won't work):
   1047      1.1  mrg 
   1048      1.1  mrg           Option  "Protocol"  "PS/2"
   1049      1.1  mrg 
   1050      1.1  mrg 
   1051      1.1  mrg 
   1052      1.1  mrg   To use this mouse as the PS/2 device and the OS supports automatic
   1053      1.1  mrg   PS/2 mouse detection:
   1054  1.1.1.2  mrg 
   1055      1.1  mrg           Option  "Protocol"  "Auto"
   1056      1.1  mrg 
   1057      1.1  mrg 
   1058      1.1  mrg 
   1059  1.1.1.2  mrg   6.12.  A4 Tech 4D mice (serial, PS/2, USB)
   1060      1.1  mrg 
   1061      1.1  mrg   A4 Tech produces quit a number of mice with one or two wheels.  Their
   1062      1.1  mrg   mice may have 2, 3, or 4 buttons.  The wheels movement is recognized
   1063      1.1  mrg   as the Z axis motion.  Give four numbers to ZAxisMapping option to map
   1064      1.1  mrg   movement of both wheels to button actions.
   1065      1.1  mrg 
   1066  1.1.1.2  mrg   4D mice support the PnP COM device specification. When used as a
   1067      1.1  mrg   serial mouse, it is compatible with MS IntelliMouse.
   1068      1.1  mrg 
   1069      1.1  mrg   To use this mouse as a serial device:
   1070      1.1  mrg 
   1071      1.1  mrg           Option  "Protocol"  "Auto"
   1072      1.1  mrg 
   1073      1.1  mrg 
   1074      1.1  mrg   or:
   1075      1.1  mrg 
   1076      1.1  mrg           Option  "Protocol"  "IntelliMouse"
   1077      1.1  mrg 
   1078      1.1  mrg 
   1079      1.1  mrg 
   1080      1.1  mrg   To use this mouse as the PS/2 device and the OS supports PS/2 mouse
   1081      1.1  mrg   initialization:
   1082      1.1  mrg 
   1083      1.1  mrg           Option  "Protocol"  "IMPS/2"
   1084      1.1  mrg 
   1085      1.1  mrg 
   1086      1.1  mrg 
   1087      1.1  mrg   To use this mouse as the PS/2 device but the OS does not support PS/2
   1088      1.1  mrg   mouse initialization (the wheels won't work):
   1089      1.1  mrg 
   1090      1.1  mrg           Option  "Protocol"  "PS/2"
   1091      1.1  mrg 
   1092      1.1  mrg 
   1093      1.1  mrg 
   1094      1.1  mrg   To use this mouse as the PS/2 device and the OS supports automatic
   1095      1.1  mrg   PS/2 mouse detection:
   1096      1.1  mrg 
   1097      1.1  mrg           Option  "Protocol"  "Auto"
   1098      1.1  mrg 
   1099      1.1  mrg 
   1100      1.1  mrg 
   1101      1.1  mrg   To use this mouse as the USB device and the OS supports the generic
   1102      1.1  mrg   HID protocol:
   1103      1.1  mrg 
   1104      1.1  mrg           Option  "Protocol"  "usb"
   1105      1.1  mrg 
   1106      1.1  mrg   To use this mouse as the USB device and the OS supports automatic
   1107      1.1  mrg   mouse detection:
   1108      1.1  mrg 
   1109      1.1  mrg           Option  "Protocol"  "Auto"
   1110      1.1  mrg 
   1111      1.1  mrg 
   1112      1.1  mrg 
   1113  1.1.1.2  mrg   7.  Configuration Examples
   1114      1.1  mrg 
   1115      1.1  mrg 
   1116      1.1  mrg   This section shows some example InputDevice section for popular mice.
   1117      1.1  mrg   All the examples assume that the mouse is connected to the PS/2 mouse
   1118      1.1  mrg   port, and the OS supports the PS/2 mouse initialization.  It is also
   1119      1.1  mrg   assumed that /dev/mouse is a link to the PS/2 mouse port.
   1120      1.1  mrg 
   1121  1.1.1.2  mrg   Logitech MouseMan+ has 4 buttons and a wheel. The following example
   1122      1.1  mrg   makes the wheel movement available as the button 5 and 6.
   1123      1.1  mrg 
   1124      1.1  mrg 
   1125      1.1  mrg   Section "InputDevice"
   1126      1.1  mrg           Identifier      "MouseMan+"
   1127      1.1  mrg           Driver          "mouse"
   1128      1.1  mrg           Option          "Device"    "/dev/mouse"
   1129      1.1  mrg           Option          "Protocol"  "MouseManPlusPS/2"
   1130      1.1  mrg           Option          "Buttons"   "6"
   1131      1.1  mrg           Option          "ZAxisMapping"      "5 6"
   1132      1.1  mrg   EndSection
   1133      1.1  mrg 
   1134      1.1  mrg 
   1135      1.1  mrg 
   1136      1.1  mrg   You can change button number assignment using the xmodmap command
   1137      1.1  mrg   AFTER you start the X server with the above configuration.  You may
   1138      1.1  mrg   not like to use the wheel as the button 2 and rather want the side
   1139  1.1.1.2  mrg   button (button 4) act like the button 2. You may also want to map the
   1140      1.1  mrg   wheel movement to the button 4 and 5.  This can be done by the
   1141      1.1  mrg   following command:
   1142      1.1  mrg 
   1143      1.1  mrg 
   1144      1.1  mrg           xmodmap -e "pointer = 1 6 3 2 4 5"
   1145      1.1  mrg 
   1146      1.1  mrg 
   1147      1.1  mrg 
   1148      1.1  mrg   After this command is run, the correspondence between the buttons and
   1149      1.1  mrg   button numbers will be as shown in the following table.
   1150      1.1  mrg 
   1151      1.1  mrg 
   1152      1.1  mrg   Physical Buttons        Reported as:
   1153      1.1  mrg   ------------------------------------
   1154      1.1  mrg   1 Left Button             Button 1
   1155      1.1  mrg   2 Wheel Button            Button 6
   1156      1.1  mrg   3 Right Button            Button 3
   1157      1.1  mrg   4 Side Button             Button 2
   1158      1.1  mrg   5 Wheel Negative Move     Button 4
   1159      1.1  mrg   6 Wheel Positive Move     Button 5
   1160      1.1  mrg 
   1161  1.1.1.2  mrg 
   1162  1.1.1.2  mrg 
   1163      1.1  mrg   Starting in the Xorg 6.9 release, you can also achieve this in your
   1164  1.1.1.2  mrg   configuration file by adding this to the "InputDevice" section in
   1165      1.1  mrg   xorg.conf:
   1166      1.1  mrg 
   1167  1.1.1.2  mrg           Option "ButtonMapping" "1 6 3 2 4 5"
   1168  1.1.1.2  mrg 
   1169  1.1.1.2  mrg 
   1170      1.1  mrg 
   1171      1.1  mrg   For the MS IntelliMouse Explorer which as a wheel and 5 buttons, you
   1172      1.1  mrg   may have the following InputDevice section.
   1173      1.1  mrg 
   1174      1.1  mrg 
   1175      1.1  mrg   Section "InputDevice"
   1176      1.1  mrg           Identifier      "IntelliMouse Explorer"
   1177      1.1  mrg           Driver          "mouse"
   1178      1.1  mrg           Option          "Device"    "/dev/mouse"
   1179      1.1  mrg           Option          "Protocol"  "ExplorerPS/2"
   1180      1.1  mrg           Option          "Buttons"   "7"
   1181      1.1  mrg           Option          "ZAxisMapping"      "6 7"
   1182      1.1  mrg   EndSection
   1183      1.1  mrg 
   1184      1.1  mrg 
   1185      1.1  mrg 
   1186      1.1  mrg   The IntelliMouse Explorer has 5 buttons, thus, you should give "7" to
   1187      1.1  mrg   the Buttons option if you want to map the wheel movement to buttons (6
   1188      1.1  mrg   and 7).  With this configuration, the correspondence between the
   1189      1.1  mrg   buttons and button numbers will be as follows:
   1190      1.1  mrg 
   1191      1.1  mrg 
   1192      1.1  mrg   Physical Buttons        Reported as:
   1193      1.1  mrg   ------------------------------------
   1194      1.1  mrg   1 Left Button             Button 1
   1195      1.1  mrg   2 Wheel Button            Button 2
   1196      1.1  mrg   3 Right Button            Button 3
   1197      1.1  mrg   4 Side Button 1           Button 4
   1198      1.1  mrg   5 Side Button 2           Button 5
   1199      1.1  mrg   6 Wheel Negative Move     Button 6
   1200      1.1  mrg   7 Wheel Positive Move     Button 7
   1201      1.1  mrg 
   1202      1.1  mrg 
   1203      1.1  mrg 
   1204      1.1  mrg   You can change button number assignment using xmodmap AFTER you
   1205      1.1  mrg   started the X server with the above configuration.
   1206      1.1  mrg 
   1207      1.1  mrg 
   1208      1.1  mrg           xmodmap -e "pointer = 1 2 3 4 7 5 6"
   1209      1.1  mrg 
   1210      1.1  mrg 
   1211      1.1  mrg 
   1212      1.1  mrg   The above command will moves the side button 2 to the button 7 and
   1213  1.1.1.2  mrg   make the wheel movement reported as the button 5 and 6. See the table
   1214      1.1  mrg   below.
   1215      1.1  mrg 
   1216      1.1  mrg 
   1217      1.1  mrg   Physical Buttons        Reported as:
   1218      1.1  mrg   ------------------------------------
   1219      1.1  mrg   1 Left Button             Button 1
   1220      1.1  mrg   2 Wheel Button            Button 2
   1221      1.1  mrg   3 Right Button            Button 3
   1222      1.1  mrg   4 Side Button 1           Button 4
   1223      1.1  mrg   5 Side Button 2           Button 7
   1224      1.1  mrg   6 Wheel Negative Move     Button 5
   1225      1.1  mrg   7 Wheel Positive Move     Button 6
   1226      1.1  mrg 
   1227      1.1  mrg 
   1228      1.1  mrg 
   1229      1.1  mrg   For the A4 Tech WinEasy mouse which has two wheels and 3 buttons, you
   1230      1.1  mrg   may have the following InputDevice section.
   1231      1.1  mrg 
   1232      1.1  mrg 
   1233  1.1.1.2  mrg 
   1234      1.1  mrg   Section "InputDevice"
   1235      1.1  mrg           Identifier      "WinEasy"
   1236      1.1  mrg           Driver          "mouse"
   1237      1.1  mrg           Option          "Device"    "/dev/mouse"
   1238      1.1  mrg           Option          "Protocol"  "IMPS/2"
   1239      1.1  mrg           Option          "Buttons"   "7"
   1240      1.1  mrg           Option          "ZAxisMapping"      "4 5 6 7"
   1241      1.1  mrg   EndSection
   1242      1.1  mrg 
   1243      1.1  mrg 
   1244      1.1  mrg 
   1245  1.1.1.2  mrg   The movement of the first wheel is mapped to the button 4 and 5. The
   1246      1.1  mrg   second wheel's movement will be reported as the buttons 6 and 7.
   1247      1.1  mrg 
   1248      1.1  mrg   The Kensington Expert mouse is really a trackball. It has 4 buttons
   1249      1.1  mrg   arranged in a rectangle around the ball.
   1250      1.1  mrg 
   1251  1.1.1.2  mrg 
   1252      1.1  mrg   Section "InputDevice"
   1253      1.1  mrg           Identifier  "DLB"
   1254      1.1  mrg           Driver      "mouse"
   1255      1.1  mrg           Option      "Protocol" "ThinkingMousePS/2"
   1256      1.1  mrg           Option      "Buttons" "3"
   1257      1.1  mrg           Option      "Emulate3Buttons"
   1258      1.1  mrg           Option      "Device" "/dev/mouse"
   1259      1.1  mrg           Option      "DragLockButtons" "2 1 4 3"
   1260      1.1  mrg   EndSection
   1261      1.1  mrg 
   1262      1.1  mrg 
   1263      1.1  mrg   In this example, button 2 is a drag lock button for button number 1,
   1264      1.1  mrg   and button 4 is a drag lock button for button 3.  Since button 2 is
   1265      1.1  mrg   above button 1 and button 4 is above button 3 in the layout of this
   1266      1.1  mrg   trackball, this is reasonable.
   1267      1.1  mrg 
   1268      1.1  mrg   Because button 2 is being used as a drag lock, it can not be used as
   1269      1.1  mrg   an ordinary button. However, it can be activated by using the
   1270      1.1  mrg   "Emulate3Buttons" feature. However, some people my be unable to press
   1271      1.1  mrg   two buttons at the same time. They may prefer the following
   1272      1.1  mrg   InputDevice section which defines button 4 as a master drag lock
   1273      1.1  mrg   button, and leaves button 2 free for ordinary use.
   1274      1.1  mrg 
   1275      1.1  mrg   Section "InputDevice"
   1276      1.1  mrg           Identifier  "MasterDLB"
   1277      1.1  mrg           Driver      "mouse"
   1278      1.1  mrg           Option      "Protocol" "ThinkingMousePS/2"
   1279      1.1  mrg           Option      "Buttons" "3"
   1280      1.1  mrg           Option      "Device" "/dev/mouse"
   1281      1.1  mrg           Option      "DragLockButtons" "4"
   1282      1.1  mrg   EndSection
   1283      1.1  mrg 
   1284      1.1  mrg 
   1285      1.1  mrg 
   1286