README revision 659607e0
1659607e0Smrg  Mouse Support in X11R6.8
2659607e0Smrg  Kazutaka Yokota
3659607e0Smrg  17 December 2002
4659607e0Smrg  ____________________________________________________________
5659607e0Smrg
6659607e0Smrg  Table of Contents
7659607e0Smrg
8659607e0Smrg
9659607e0Smrg  1. Introduction
10659607e0Smrg  2. Supported Hardware
11659607e0Smrg  3. OS Support for Mice
12659607e0Smrg     3.1 Summary of Supported Mouse Protocol Types
13659607e0Smrg     3.2 BSD/OS
14659607e0Smrg     3.3 FreeBSD
15659607e0Smrg     3.4 FreeBSD(98)
16659607e0Smrg     3.5 Interactive Unix
17659607e0Smrg     3.6 Linux
18659607e0Smrg     3.7 Linux/98
19659607e0Smrg     3.8 LynxOS
20659607e0Smrg     3.9 NetBSD
21659607e0Smrg     3.10 NetBSD/pc98
22659607e0Smrg     3.11 OpenBSD
23659607e0Smrg     3.12 OS/2
24659607e0Smrg     3.13 SCO
25659607e0Smrg     3.14 Solaris
26659607e0Smrg     3.15 SVR4
27659607e0Smrg     3.16 PANIX
28659607e0Smrg
29659607e0Smrg  4. Configuring Your Mouse
30659607e0Smrg  5. xorg.conf Options
31659607e0Smrg     5.1 Buttons
32659607e0Smrg     5.2 ZAxisMappping
33659607e0Smrg     5.3 Resolution
34659607e0Smrg     5.4 Drag Lock Buttons
35659607e0Smrg
36659607e0Smrg  6. Mouse Gallery
37659607e0Smrg     6.1 MS IntelliMouse  (serial, PS/2)
38659607e0Smrg     6.2 MS IntelliMouse Explorer (PS/2, USB)
39659607e0Smrg     6.3 Kensington Thinking Mouse and Kensington Expert Mouse (serial, PS/2)
40659607e0Smrg     6.4 Genius NetScroll (PS/2)
41659607e0Smrg     6.5 Genius NetMouse and NetMouse Pro (serial, PS/2)
42659607e0Smrg     6.6 Genius NetScroll Optical (PS/2, USB)
43659607e0Smrg     6.7 ALPS GlidePoint (serial, PS/2)
44659607e0Smrg     6.8 ASCII MieMouse (serial, PS/2)
45659607e0Smrg     6.9 Logitech MouseMan+ and FirstMouse+ (serial, PS/2)
46659607e0Smrg     6.10 IBM ScrollPoint (PS/2)
47659607e0Smrg     6.11 8D ScrollMouse (serial, PS/2)
48659607e0Smrg     6.12 A4 Tech 4D mice (serial, PS/2, USB)
49659607e0Smrg
50659607e0Smrg  7. Configuration Examples
51659607e0Smrg
52659607e0Smrg
53659607e0Smrg  ______________________________________________________________________
54659607e0Smrg
55659607e0Smrg  [1m1.  Introduction[0m
56659607e0Smrg
57659607e0Smrg
58659607e0Smrg  This document describes mouse support in X.org Foundation's Xorg
59659607e0Smrg  server.
60659607e0Smrg
61659607e0Smrg  Mouse configuration has often been mysterious task for novice users.
62659607e0Smrg  However, once you learn several basics, it is straightforward to write
63659607e0Smrg  the mouse "InputDevice" section in the xorg.conf file by hand.
64659607e0Smrg
65659607e0Smrg
66659607e0Smrg
67659607e0Smrg  [1m2.  Supported Hardware[0m
68659607e0Smrg
69659607e0Smrg
70659607e0Smrg  The X.org Foundation X server supports four classes of mice: serial,
71659607e0Smrg  bus and PS/2 mice, and additional mouse types supported by
72659607e0Smrg  specific operating systems, such as USB mice.
73659607e0Smrg
74659607e0Smrg
75659607e0Smrg     [1mSerial mouse[0m
76659607e0Smrg        The serial mouse has been the most popular pointing device for
77659607e0Smrg        PCs.  There have been numerous serial mouse models from a number
78659607e0Smrg        of manufactures.  Despite the wide range of variations, there
79659607e0Smrg        have been relatively few protocols (data format) with which the
80659607e0Smrg        serial mouse talks to the host computer.
81659607e0Smrg
82659607e0Smrg        The modern serial mouse conforms to the PnP COM device
83659607e0Smrg        specification so that the host computer can automatically detect
84659607e0Smrg        the mouse and load an appropriate driver.  The X server supports
85659607e0Smrg        this specification and can detect popular PnP serial mouse
86659607e0Smrg        models on most platforms.
87659607e0Smrg
88659607e0Smrg
89659607e0Smrg     [1mBus mouse[0m
90659607e0Smrg        The bus mouse connects to a dedicated interface card in an
91659607e0Smrg        expansion slot.  Some video cards, notably those from ATI, and
92659607e0Smrg        integrated I/O cards may also have a bus mouse connector.  Some
93659607e0Smrg        bus mice are known as `InPort mouse'.
94659607e0Smrg
95659607e0Smrg        Note that some mouse manufactures have sold a package including
96659607e0Smrg        a serial mouse and a serial interface card.  Don't confuse this
97659607e0Smrg        type of products with the genuine bus mouse.
98659607e0Smrg
99659607e0Smrg
100659607e0Smrg     [1mPS/2 mouse[0m
101659607e0Smrg        They are sometimes called `Mouse-port mouse'.  The PS/2 mouse is
102659607e0Smrg        becoming increasingly common and popular.
103659607e0Smrg
104659607e0Smrg        The PS/2 mouse is an intelligent device and may have more than
105659607e0Smrg        three buttons and a wheel or a roller.  The PS/2 mouse is
106659607e0Smrg        usually compatible with the original PS/2 mouse from IBM
107659607e0Smrg        immediately after power up.  The PS/2 mouse with additional
108659607e0Smrg        features requires a specialized initialization procedure to
109659607e0Smrg        enable these features.  Without proper initialization, it
110659607e0Smrg        behaves as though it were an ordinary two or three button mouse.
111659607e0Smrg
112659607e0Smrg
113659607e0Smrg     [1mUSB mouse[0m
114659607e0Smrg        USB (Universal Serial Bus) ports are present on most modern
115659607e0Smrg        computers. Several devices can be plugged into this bus,
116659607e0Smrg        including mice and keyboards.
117659607e0Smrg
118659607e0Smrg        The server includes support for USB mice on some systems.
119659607e0Smrg
120659607e0Smrg  Many mice nowadays can be used both as a serial mouse and as a PS/2
121659607e0Smrg  mouse.  They has a logic to distinguish which interface it is
122659607e0Smrg  connected to.  However, the mouse which is not marketed as compatible
123659607e0Smrg  with both serial and PS/2 mouse interface lacks this logic and cannot
124659607e0Smrg  be used in such a way, even if you can find an appropriate adapter
125659607e0Smrg  with which you can connect the PS/2 mouse to a serial port or visa
126659607e0Smrg  versa.
127659607e0Smrg
128659607e0Smrg  X11R6.8 supports the mouse with a wheel, a roller or a knob.  Its
129659607e0Smrg  action is detected as the Z (third) axis motion of the mouse.  As the
130659607e0Smrg  X server or clients normally do not use the Z axis movement of the
131659607e0Smrg  pointing device, a configuration option, "ZAxisMapping", is provided
132659607e0Smrg  to assign the Z axis movement to another axis or a pair of buttons
133659607e0Smrg  (see below).
134659607e0Smrg  [1m3.  OS Support for Mice[0m
135659607e0Smrg
136659607e0Smrg
137659607e0Smrg
138659607e0Smrg  [1m3.1.  Summary of Supported Mouse Protocol Types[0m
139659607e0Smrg
140659607e0Smrg
141659607e0Smrg                                  Protocol Types
142659607e0Smrg                  serial     PnP     BusMouse    PS/2   Extended PS/2
143659607e0Smrg  OS platforms   protocols  serial   protocol  protocol  protocols
144659607e0Smrg                            "Auto"  "BusMouse"  "PS/2"   "xxxPS/2"    USB
145659607e0Smrg  -------------------------------------------------------------------------
146659607e0Smrg  BSD/OS            Ok        ?         ?         ?         ?          ?
147659607e0Smrg  FreeBSD           Ok        Ok        Ok        Ok        SP*1       SP*1
148659607e0Smrg  FreeBSD(98)       Ok        ?         Ok        NA        NA         ?
149659607e0Smrg  Interactive Unix  Ok        NA        ?*1       ?*1       NA         ?
150659607e0Smrg  Linux             Ok        Ok        Ok        Ok        Ok         ?
151659607e0Smrg  Linux/98          Ok        ?         Ok        NA        NA         ?
152659607e0Smrg  LynxOS            Ok        NA        Ok        Ok        NA         ?
153659607e0Smrg  NetBSD            Ok        Ok        Ok        SP*1      SP*1       SP*1
154659607e0Smrg  NetBSD/pc98       Ok        ?         Ok        NA        NA         NA
155659607e0Smrg  OpenBSD           Ok        Ok        Ok        Ok*1      Ok*1       Ok*1
156659607e0Smrg  OS/2              SP*2      SP*2      SP*2      SP*2      SP*2       ?
157659607e0Smrg  SCO               Ok        ?         SP*1      SP*1      NA         ?
158659607e0Smrg  Solaris 2.x       Ok        NA*1      ?*1       Ok        Ok         SP*1
159659607e0Smrg  SVR4              Ok        NA*1      SP*1      SP*1      NA         ?
160659607e0Smrg  PANIX             Ok        ?         SP*1      SP*1      NA         ?
161659607e0Smrg
162659607e0Smrg  Ok: support is available,  NA: not available, ?: untested or unknown.
163659607e0Smrg  SP: support is available in a different form
164659607e0Smrg
165659607e0Smrg  *1 Refer to the following sections for details.
166659607e0Smrg  *2 X11R6.8/OS2 will support any type of mouse that the OS supports,
167659607e0Smrg     whether it is serial, bus mouse, or PnP type.
168659607e0Smrg
169659607e0Smrg
170659607e0Smrg
171659607e0Smrg  [1m3.2.  BSD/OS[0m
172659607e0Smrg
173659607e0Smrg  No testing has been done with BSD/OS.
174659607e0Smrg
175659607e0Smrg
176659607e0Smrg  [1m3.3.  FreeBSD[0m
177659607e0Smrg
178659607e0Smrg  FreeBSD supports the "SysMouse" protocol which must be specified when
179659607e0Smrg  the moused daemon is running in versions 2.2.1 or later.
180659607e0Smrg
181659607e0Smrg  When running the mouseddaemon, you must always specify the
182659607e0Smrg  /dev/sysmouse device and the "SysMouse" protocol to the X server,
183659607e0Smrg  regardless of the actual type of your mouse.
184659607e0Smrg
185659607e0Smrg  FreeBSD versions 2.2.6 or later include the kernel-level support for
186659607e0Smrg  extended PS/2 mouse protocols and there is no need to specify the
187659607e0Smrg  exact protocol name to the X server.  Instead specify the "PS/2" or
188659607e0Smrg  "Auto" protocol and the X server will automatically make use of the
189659607e0Smrg  kernel-level support.
190659607e0Smrg
191659607e0Smrg  In fact, "Auto" protocol support is really efficient in these
192659607e0Smrg  versions.  You may always specify "Auto" to any mouse, serial, bus or
193659607e0Smrg  PS/2, unless the mouse is an old serial model which doesn't support
194659607e0Smrg  PnP.
195659607e0Smrg
196659607e0Smrg  FreeBSD versions 2.2.5 or earlier do not support extended PS/2 mouse
197659607e0Smrg  protocols ("xxxPS/2").  Always specify the "PS/2" protocol for any
198659607e0Smrg  PS/2 mouse in these versions regardless of the brand of the mouse.
199659607e0Smrg  FreeBSD versions 3.1 or later have support for USB mice.  Specify the
200659607e0Smrg  "Auto" protocol for the /dev/ums0 device.  (If the moused daemon is
201659607e0Smrg  running for the USB mouse, you must use /dev/sysmouse instead of
202659607e0Smrg  /dev/ums0 as explained above.) See the [4mums(4)[24m manual page for details.
203659607e0Smrg
204659607e0Smrg
205659607e0Smrg  [1m3.4.  FreeBSD(98)[0m
206659607e0Smrg
207659607e0Smrg  The PS/2 mouse is not supported.
208659607e0Smrg
209659607e0Smrg
210659607e0Smrg  [1m3.5.  Interactive Unix[0m
211659607e0Smrg
212659607e0Smrg  The PnP serial mouse support (the "Auto" protocol) is not supported
213659607e0Smrg  for the moment.
214659607e0Smrg
215659607e0Smrg  The bus mouse and PS/2 mouse should be supported by using the
216659607e0Smrg  appropriate device drivers.  Use /dev/mouse for the "BusMouse"
217659607e0Smrg  protocol and /dev/kdmouse for the "PS/2" protocol.  These protocols
218659607e0Smrg  are untested but may work.  Please send success/failure reports to
219659607e0Smrg  <michael.rohleder@stadt-frankfurt.de>.
220659607e0Smrg
221659607e0Smrg
222659607e0Smrg  [1m3.6.  Linux[0m
223659607e0Smrg
224659607e0Smrg  All protocol types should work.
225659607e0Smrg
226659607e0Smrg
227659607e0Smrg  [1m3.7.  Linux/98[0m
228659607e0Smrg
229659607e0Smrg  The PS/2 mouse is not supported.
230659607e0Smrg
231659607e0Smrg
232659607e0Smrg  [1m3.8.  LynxOS[0m
233659607e0Smrg
234659607e0Smrg  The PnP serial mouse support (the "Auto" protocol) is disabled in
235659607e0Smrg  LynxOS, because of limited TTY device driver functionality.
236659607e0Smrg
237659607e0Smrg
238659607e0Smrg  [1m3.9.  NetBSD[0m
239659607e0Smrg
240659607e0Smrg  NetBSD 1.3.x and former does not support extended PS/2 mouse protocols
241659607e0Smrg  ("xxxPS/2").  The PS/2 mouse device driver /dev/pms emulates the bus
242659607e0Smrg  mouse.  Therefore, you should always specify the "BusMouse" protocol
243659607e0Smrg  for any PS/2 mouse regardless of the brand of the mouse.
244659607e0Smrg
245659607e0Smrg  The "wsmouse" protocol introduced in NetBSD 1.4 along with the wscons
246659607e0Smrg  console driver is supported. You need to run binaries compiled on
247659607e0Smrg  NetBSD 1.4 to have support for it though. Use "/dev/wsmouse0" for the
248659607e0Smrg  device. Refer to the [4mwsmouse(4)[24m manual page for kernel configuration
249659607e0Smrg  informations.
250659607e0Smrg
251659607e0Smrg  This driver also provides support for USB mice. See the [4mums(4)[24m manual
252659607e0Smrg  page for details.
253659607e0Smrg
254659607e0Smrg
255659607e0Smrg  [1m3.10.  NetBSD/pc98[0m
256659607e0Smrg
257659607e0Smrg  The PS/2 mouse is not supported.
258659607e0Smrg
259659607e0Smrg
260659607e0Smrg  [1m3.11.  OpenBSD[0m
261659607e0Smrg
262659607e0Smrg  The raw PS/2 mouse device driver /dev/psm0 uses the raw PS/2 mouse
263659607e0Smrg  protocol.
264659607e0Smrg
265659607e0Smrg  OpenBSD 2.2 and earlier does not support extended PS/2 mouse protocols
266659607e0Smrg  ("xxxPS/2") .  Therefore, you should specify the "PS/2" protocol for
267659607e0Smrg  any PS/2 mouse regardless of the brand of the mouse.
268659607e0Smrg
269659607e0Smrg  OpenBSD 2.3 and later support all extended PS/2 mouse protocols.  You
270659607e0Smrg  can select the "Auto" protocol for PnP PS/2 mice or any specific
271659607e0Smrg  extended ("xxxPS/2") protocol for non PnP mice.
272659607e0Smrg
273659607e0Smrg  There is also a cooked PS/2 mouse device driver /dev/pms0 which
274659607e0Smrg  emulates the bus mouse.  Specify the "BusMouse" protocol for any PS/2
275659607e0Smrg  mouse regardless of the brand of the mouse when using this device.
276659607e0Smrg
277659607e0Smrg  XFree86 3.3.6 support USB mice on OpenBSD 2.6 and later though the
278659607e0Smrg  generic Human Interface Device (hid) /dev/uhid*. Select the "usb"
279659607e0Smrg  protocol and the /dev/uhid* instance corresponding to your mouse as
280659607e0Smrg  the device name.
281659607e0Smrg
282659607e0Smrg
283659607e0Smrg  [1m3.12.  OS/2[0m
284659607e0Smrg
285659607e0Smrg  X11R6.8/OS2 always uses the native mouse driver of the operating
286659607e0Smrg  system and will support any type of pointer that the OS supports,
287659607e0Smrg  whether it is serial, bus mouse, or PnP type.  If the mouse works
288659607e0Smrg  under Presentation Manager, it will also work under X11R6.8/OS2.
289659607e0Smrg
290659607e0Smrg  Always specify "OSMouse" as the protocol type.
291659607e0Smrg
292659607e0Smrg
293659607e0Smrg  [1m3.13.  SCO[0m
294659607e0Smrg
295659607e0Smrg  The bus and PS/2 mouse are supported with the "OSMouse" protocol type.
296659607e0Smrg
297659607e0Smrg  The "OSMouse" may also be used with the serial mouse.
298659607e0Smrg
299659607e0Smrg
300659607e0Smrg  [1m3.14.  Solaris[0m
301659607e0Smrg
302659607e0Smrg  Testing has been done with Solaris 2.5.1, 2.6, 7, 8, 9 and 10.
303659607e0Smrg
304659607e0Smrg  On Solaris 10 1/06 and later versions with "virtual mouse" support,
305659607e0Smrg  all PS/2 and USB mice connected to the system can be accessed via 
306659607e0Smrg  the /dev/mouse device using the VUID protocol, including USB mice 
307659607e0Smrg  plugged in after the X server is started.   On older releases or
308659607e0Smrg  to address mice individually, specific devices and protocols may 
309659607e0Smrg  be used.
310659607e0Smrg
311659607e0Smrg  Logitech and Microsoft bus mice have not been tested, but might work
312659607e0Smrg  with the /dev/logi and /dev/msm devices.
313659607e0Smrg
314659607e0Smrg  Standard 2 and 3 button PS/2 mice work with the "PS/2" protocol type
315659607e0Smrg  and the /dev/kdmouse device.  USB mice work with the "VUID" protocol
316659607e0Smrg  type and the /dev/mouse device.  The PnP serial mouse support via the
317659607e0Smrg  "Auto" protocol has been tested and does not work.  The "Auto"
318659607e0Smrg  protocol can however detect PS/2 and USB mice correctly.
319659607e0Smrg
320659607e0Smrg  Additional USB mice can be connected using the "VUID" protocol type
321659607e0Smrg  and the appropriate "/dev/usb/hid" device with the Option
322659607e0Smrg  "StreamsModule" "usbms" line included in the associated "InputDevice"
323659607e0Smrg  section.
324659607e0Smrg
325659607e0Smrg
326659607e0Smrg  [1m3.15.  SVR4[0m
327659607e0Smrg
328659607e0Smrg  The bus and PS/2 mouse may be supported with the "Xqueue" protocol
329659607e0Smrg  type.
330659607e0Smrg
331659607e0Smrg  The "Xqueue" may also be used with the serial mouse.
332659607e0Smrg
333659607e0Smrg  The PnP serial mouse support (the "Auto" protocol) is not tested.
334659607e0Smrg
335659607e0Smrg
336659607e0Smrg  [1m3.16.  PANIX[0m
337659607e0Smrg
338659607e0Smrg  The PC/AT version of PANIX supports the bus and PS/2 mouse with the
339659607e0Smrg  "Xqueue" protocol type.  The PC-98 version of PANIX supports the bus
340659607e0Smrg  mouse with the "Xqueue" protocol type.
341659607e0Smrg
342659607e0Smrg
343659607e0Smrg  [1m4.  Configuring Your Mouse[0m
344659607e0Smrg
345659607e0Smrg
346659607e0Smrg  Before using the xorgconfig program to set up mouse configuration, you
347659607e0Smrg  must identify the interface type, the device name and the protocol
348659607e0Smrg  type of your mouse.  Blindly trying every possible combination of
349659607e0Smrg  mouse settings will lead you nowhere.
350659607e0Smrg
351659607e0Smrg  The first thing you need to know is the interface type of the mouse
352659607e0Smrg  you are going to use.  It can be determined by looking at the
353659607e0Smrg  connector of the mouse.  The serial mouse has a D-Sub female 9- or
354659607e0Smrg  25-pin connector.  The bus mice have either a D-Sub male 9-pin
355659607e0Smrg  connector or a round DIN 9-pin connector.  The PS/2 mouse is equipped
356659607e0Smrg  with a small, round DIN 6-pin connector.  USB mice have a thin 
357659607e0Smrg  rectangular connector.  Some mice come with adapters with which the 
358659607e0Smrg  connector can be converted to another.  If you are to use such an 
359659607e0Smrg  adapter, remember that the connector at the very end of the mouse/adapter 
360659607e0Smrg  pair is what matters.
361659607e0Smrg
362659607e0Smrg  The next thing to decide is a device node to use for the given
363659607e0Smrg  interface.  For the bus and PS/2 mice, there is little choice; your OS
364659607e0Smrg  most possibly offers just one device node each for the bus mouse and
365659607e0Smrg  PS/2 mouse.  There may be more than one serial port to which the
366659607e0Smrg  serial mouse can be attached.
367659607e0Smrg
368659607e0Smrg  The next step is to guess the appropriate protocol type for the mouse.
369659607e0Smrg  The X server may be able to select a protocol type for the given mouse
370659607e0Smrg  automatically in some cases.  Otherwise, the user has to choose one
371659607e0Smrg  manually.  Follow the guidelines below.
372659607e0Smrg
373659607e0Smrg
374659607e0Smrg     [1mBus mouse[0m
375659607e0Smrg        The bus and InPort mice always use "BusMouse" protocol
376659607e0Smrg        regardless of the brand of the mouse.
377659607e0Smrg
378659607e0Smrg        Some OSs may allow you to specify "Auto" as the protocol type
379659607e0Smrg        for the bus mouse.
380659607e0Smrg
381659607e0Smrg
382659607e0Smrg     [1mPS/2 mouse[0m
383659607e0Smrg        The "PS/2" protocol should always be tried first for the PS/2
384659607e0Smrg        mouse regardless of the brand of the mouse.  Any PS/2 mouse
385659607e0Smrg        should work with this protocol type, although wheels and other
386659607e0Smrg        additional features are unavailable in the X server.
387659607e0Smrg
388659607e0Smrg        After verifying the mouse works with this protocol, you may
389659607e0Smrg        choose to specify one of "xxxPS/2" protocols so that extra
390659607e0Smrg        features are made available in the X server.  However, support
391659607e0Smrg        for these PS/2 mice assumes certain behavior of the underlying
392659607e0Smrg        OS and may not always work as expected.  Support for some PS/2
393659607e0Smrg        mouse models may be disabled all together for some OS platforms
394659607e0Smrg        for this reason.
395659607e0Smrg
396659607e0Smrg        Some OSs may allow you to specify "Auto" as the protocol type
397659607e0Smrg        for the PS/2 mouse and the X server will automatically adjust
398659607e0Smrg        itself.
399659607e0Smrg
400659607e0Smrg
401659607e0Smrg     [1mSerial mouse[0m
402659607e0Smrg        The server supports a wide range of mice, both old and new.  If
403659607e0Smrg        your mouse is of a relatively new model, it may conform to the
404659607e0Smrg        PnP COM device specification and the X server may be able to
405659607e0Smrg        detect an appropriate protocol type for the mouse automatically.
406659607e0Smrg
407659607e0Smrg        Specify "Auto" as the protocol type and start the X server.  If
408659607e0Smrg        the mouse is not a PnP mouse, or the X server cannot determine a
409659607e0Smrg        suitable protocol type, the server will print the following
410659607e0Smrg        error message and abort.
411659607e0Smrg
412659607e0Smrg
413659607e0Smrg        <mousename>: cannot determine the mouse protocol
414659607e0Smrg
415659607e0Smrg
416659607e0Smrg
417659607e0Smrg     If the X server generates the above error message, you need to
418659607e0Smrg     manually specify a protocol type for your mouse.  Choose one from
419659607e0Smrg     the following list:
420659607e0Smrg
421659607e0Smrg
422659607e0Smrg        +o  GlidePoint
423659607e0Smrg
424659607e0Smrg        +o  IntelliMouse
425659607e0Smrg
426659607e0Smrg        +o  Logitech
427659607e0Smrg
428659607e0Smrg        +o  Microsoft
429659607e0Smrg
430659607e0Smrg        +o  MMHittab
431659607e0Smrg
432659607e0Smrg        +o  MMSeries
433659607e0Smrg
434659607e0Smrg        +o  MouseMan
435659607e0Smrg
436659607e0Smrg        +o  MouseSystems
437659607e0Smrg
438659607e0Smrg        +o  ThinkingMouse
439659607e0Smrg
440659607e0Smrg     When you choose, keep in mind the following rule of thumb:
441659607e0Smrg
442659607e0Smrg
443659607e0Smrg        1. "Logitech" protocol is for old serial mouse models from
444659607e0Smrg           Logitech.  Modern Logitech mice use either "MouseMan" or
445659607e0Smrg           "Microsoft" protocol.
446659607e0Smrg
447659607e0Smrg        2. Most 2-button serial mice support the "Microsoft" protocol.
448659607e0Smrg
449659607e0Smrg        3. 3-button serial mice may work with the "Mousesystems"
450659607e0Smrg           protocol. If it doesn't, it may work instead with the
451659607e0Smrg           "Microsoft" protocol although the third (middle) button won't
452659607e0Smrg           function.  3-button serial mice may also work with the
453659607e0Smrg           "Mouseman" protocol under which the third button may function
454659607e0Smrg           as expected.
455659607e0Smrg
456659607e0Smrg        4. 3-button serial mice may have a small switch at the bottom of
457659607e0Smrg           the mouse to choose between ``MS'' and ``PC'', or ``2'' and
458659607e0Smrg           ``3''.  ``MS'' or ``2'' usually mean the "Microsoft"
459659607e0Smrg           protocol.  ``PC'' or ``3'' will choose the "MouseSystems"
460659607e0Smrg           protocol.
461659607e0Smrg
462659607e0Smrg        5. If the serial mouse has a roller or a wheel, it may be
463659607e0Smrg           compatible with the "IntelliMouse" protocol.
464659607e0Smrg
465659607e0Smrg        6. If the serial mouse has a roller or a wheel and it doesn't
466659607e0Smrg           work with the "IntelliMouse" protocol, you have to use it as
467659607e0Smrg           a regular 2- or 3-button serial mouse.
468659607e0Smrg
469659607e0Smrg     If the "Auto" protocol is specified and the mouse seems to be working,
470659607e0Smrg     but you find that not all features of the mouse are available, that
471659607e0Smrg     is because the X server does not have native support for that model
472659607e0Smrg     of mouse and is using a ``compatible'' protocol according to PnP
473659607e0Smrg     information.
474659607e0Smrg
475659607e0Smrg     If you suspect this is the case with your mouse, please enter a
476659607e0Smrg     bug report at http://bugzilla.freedesktop.org, using the xorg product.
477659607e0Smrg
478659607e0Smrg
479659607e0Smrg     [1mUSB mouse[0m
480659607e0Smrg        If your mouse is connected to the USB port, it can either be
481659607e0Smrg        supported by the "Auto" protocol, or by an OS-specific protocol
482659607e0Smrg        (see below), or as a generic Human Interface Device by the "usb"
483659607e0Smrg        protocol.
484659607e0Smrg
485659607e0Smrg
486659607e0Smrg     [1mStandardized protocols[0m
487659607e0Smrg        Mouse device drivers in your OS may use the standardized
488659607e0Smrg        protocol regardless of the model or the class of the mouse.  For
489659607e0Smrg        example, SVR4 systems may support "Xqueue" protocol.  In FreeBSD
490659607e0Smrg        the system mouse device /dev/sysmouse uses the "SysMouse"
491659607e0Smrg        protocol.  Please refer to the OS support section of this file
492659607e0Smrg        for more information.
493659607e0Smrg
494659607e0Smrg
495659607e0Smrg
496659607e0Smrg  [1m5.  xorg.conf Options[0m
497659607e0Smrg
498659607e0Smrg
499659607e0Smrg  The old Pointer section has been replaced by a more general
500659607e0Smrg  InputDevice section.  The following is a minimal example of an
501659607e0Smrg  InputDevice section for a mouse:
502659607e0Smrg
503659607e0Smrg
504659607e0Smrg  ______________________________________________________________________
505659607e0Smrg  Section "InputDevice"
506659607e0Smrg          Identifier      "Mouse 1"
507659607e0Smrg          Driver          "mouse"
508659607e0Smrg          Option          "Device"    "/dev/mouse"
509659607e0Smrg          Option          "Protocol"  "Auto"
510659607e0Smrg  EndSection
511659607e0Smrg  ______________________________________________________________________
512659607e0Smrg
513659607e0Smrg
514659607e0Smrg
515659607e0Smrg  The mouse driver supports the following config file options:
516659607e0Smrg
517659607e0Smrg
518659607e0Smrg  [1m5.1.  Buttons[0m
519659607e0Smrg
520659607e0Smrg  This option tells the X server the number of buttons on the mouse.
521659607e0Smrg  Currently there is no reliable way to automatically detect the correct
522659607e0Smrg  number.  This option is the only means for the X server to obtain it.
523659607e0Smrg  The default value is three.
524659607e0Smrg
525659607e0Smrg  Note that if you intend to assign Z axis movement to button events
526659607e0Smrg  using the ZAxisMapping option below, you need to take account of those
527659607e0Smrg  buttons into N too.
528659607e0Smrg
529659607e0Smrg
530659607e0Smrg          Option  "Buttons"   "N"
531659607e0Smrg
532659607e0Smrg
533659607e0Smrg
534659607e0Smrg  [1m5.2.  ZAxisMapping[0m
535659607e0Smrg
536659607e0Smrg  This option maps the Z axis (wheel) motion to buttons or to another
537659607e0Smrg  axis.
538659607e0Smrg          Option  "ZAxisMapping"      "X"
539659607e0Smrg          Option  "ZAxisMapping"      "Y"
540659607e0Smrg          Option  "ZAxisMapping"      "N1 N2"
541659607e0Smrg          Option  "ZAxisMapping"      "N1 N2 N3 N4"
542659607e0Smrg
543659607e0Smrg
544659607e0Smrg
545659607e0Smrg  The first example will map the Z axis motion to the X axis motion.
546659607e0Smrg  Whenever the user moves the wheel/roller, its movement is reported as
547659607e0Smrg  the X axis motion.  When the wheel/roller stays still, the real X axis
548659607e0Smrg  motion is reported as is.  The third example will map negative Z axis
549659607e0Smrg  motion to the button N1 and positive Z axis motion to the button N2.
550659607e0Smrg  If this option is used and the buttons N1 or N2 actually exists in the
551659607e0Smrg  mouse, their actions won't be detected by the X server.
552659607e0Smrg
553659607e0Smrg  The last example is useful for the mouse with two wheels of which the
554659607e0Smrg  second wheel is used to generate horizontal scroll action, and the
555659607e0Smrg  mouse which has a knob or a stick which can detect the horizontal
556659607e0Smrg  force applied by the user.  The motion of the second wheel will be
557659607e0Smrg  mapped to the buttons N3, for the negative direction, and N4, for the
558659607e0Smrg  positive direction.  If the buttons N3 and N4 actually exist in this
559659607e0Smrg  mouse, their actions won't be detected by the X server.
560659607e0Smrg
561659607e0Smrg  NOTE #1: horizontal movement may not always be detected by the current
562659607e0Smrg  version of the X11R6.8 X servers, because there appears to be no
563659607e0Smrg  accepted standard as to how the horizontal direction is encoded in
564659607e0Smrg  mouse data.
565659607e0Smrg
566659607e0Smrg  NOTE #2: Some mice think left is the negative horizontal direction,
567659607e0Smrg  others may think otherwise.  Moreover, there are some mice whose two
568659607e0Smrg  wheels are both mounted vertically, and the direction of the second
569659607e0Smrg  vertical wheel does not match the first one's.
570659607e0Smrg
571659607e0Smrg  You need to edit the xorg.conf file by hand to change this option if
572659607e0Smrg  the default value of "4 5 6 7" does not match the needs of your
573659607e0Smrg  configuration.
574659607e0Smrg
575659607e0Smrg
576659607e0Smrg  [1m5.3.  Resolution[0m
577659607e0Smrg
578659607e0Smrg  The following option will set the mouse device resolution to N counts
579659607e0Smrg  per inch, if possible:
580659607e0Smrg
581659607e0Smrg
582659607e0Smrg          Option  "Resolution"        "N"
583659607e0Smrg
584659607e0Smrg
585659607e0Smrg
586659607e0Smrg  Not all mice and OSs can support this option.
587659607e0Smrg
588659607e0Smrg
589659607e0Smrg  [1m5.4.  Drag Lock Buttons[0m
590659607e0Smrg
591659607e0Smrg  Some people find it difficult or inconvenient to hold a trackball
592659607e0Smrg  button down, while at the same time moving the ball. Drag lock buttons
593659607e0Smrg  simulate the holding down of another button. When a drag lock button
594659607e0Smrg  is  first pressed, its target buttons is "locked" down until the
595659607e0Smrg  second time the lock button is released, or until the button itself is
596659607e0Smrg  pressed and released. This allows the starting of a drag, the movement
597659607e0Smrg  of the trackball, and the ending of the drag to be separate
598659607e0Smrg  operations.
599659607e0Smrg
600659607e0Smrg
601659607e0Smrg          Option  "DragLockButtons"   "W X Y Z"
602659607e0Smrg
603659607e0Smrg
604659607e0Smrg  This option consists of pairs of buttons. Each lock button number is
605659607e0Smrg  followed by the number of the button that it locks. In the above,
606659607e0Smrg  button number "W" is a drag lock button for button "X" and button
607659607e0Smrg  number "Y" is a drag lock button for button "Z".
608659607e0Smrg
609659607e0Smrg  It may not be desirable to use multiple buttons as drag locks.
610659607e0Smrg  Instead, a "master drag lock button" may be defined. A master drag
611659607e0Smrg  lock button acts as a "META" key. After a master lock button is
612659607e0Smrg  released, the next button pressed is "locked" and not released until
613659607e0Smrg  the second time the real button is released.
614659607e0Smrg
615659607e0Smrg
616659607e0Smrg          Option  "DragLockButtons"   "M"
617659607e0Smrg
618659607e0Smrg
619659607e0Smrg
620659607e0Smrg  Since button "M" is unpaired it is a master drag lock button.
621659607e0Smrg
622659607e0Smrg
623659607e0Smrg  [1m6.  Mouse Gallery[0m
624659607e0Smrg
625659607e0Smrg
626659607e0Smrg  In all of the examples below, it is assumed that /dev/mouse is a link
627659607e0Smrg  to the appropriate serial port or PS/2 mouse device.
628659607e0Smrg
629659607e0Smrg
630659607e0Smrg  [1m6.1.  MS IntelliMouse  (serial, PS/2)[0m
631659607e0Smrg
632659607e0Smrg  This mouse has a wheel which also acts as the button 2 (middle
633659607e0Smrg  button).  The wheel movement is recognized as the Z axis motion.  This
634659607e0Smrg  behavior is not compatible with XFree86 versions prior to 3.3.2, but
635659607e0Smrg  is more consistent with the support for other mice with wheels or
636659607e0Smrg  rollers.  If you want to make the wheel behave like before, you can
637659607e0Smrg  use the "ZAxisMapping" option as described above.
638659607e0Smrg
639659607e0Smrg  IntelliMouse supports the PnP COM device specification.
640659607e0Smrg
641659607e0Smrg  To use this mouse as a serial device:
642659607e0Smrg
643659607e0Smrg          Option  "Protocol"  "Auto"
644659607e0Smrg
645659607e0Smrg
646659607e0Smrg  or:
647659607e0Smrg
648659607e0Smrg          Option  "Protocol"  "IntelliMouse"
649659607e0Smrg
650659607e0Smrg
651659607e0Smrg
652659607e0Smrg  To use this mouse as the PS/2 device and the OS supports PS/2 mouse
653659607e0Smrg  initialization:
654659607e0Smrg
655659607e0Smrg          Option  "Protocol"  "IMPS/2"
656659607e0Smrg
657659607e0Smrg
658659607e0Smrg
659659607e0Smrg  To use this mouse as the PS/2 device but the OS does not support PS/2
660659607e0Smrg  mouse initialization (the wheel won't work in this case):
661659607e0Smrg
662659607e0Smrg          Option  "Protocol"  "PS/2"
663659607e0Smrg
664659607e0Smrg
665659607e0Smrg
666659607e0Smrg  To use this mouse as the PS/2 device and the OS supports automatic
667659607e0Smrg  PS/2 mouse detection:
668659607e0Smrg
669659607e0Smrg
670659607e0Smrg          Option  "Protocol"  "Auto"
671659607e0Smrg
672659607e0Smrg
673659607e0Smrg
674659607e0Smrg  [1m6.2.  MS IntelliMouse Explorer (PS/2, USB)[0m
675659607e0Smrg
676659607e0Smrg  This mouse has a wheel which also acts as the button 2 (middle
677659607e0Smrg  button).  There are two side buttons; they are recognized as the
678659607e0Smrg  buttons 4 and 5.  The wheel movement is recognized as the Z axis
679659607e0Smrg  motion.
680659607e0Smrg
681659607e0Smrg  To use this mouse as the PS/2 device and the OS supports PS/2 mouse
682659607e0Smrg  initialization:
683659607e0Smrg
684659607e0Smrg          Option  "Protocol"  "ExplorerPS/2"
685659607e0Smrg
686659607e0Smrg
687659607e0Smrg
688659607e0Smrg  To use this mouse as the PS/2 device but the OS does not support PS/2
689659607e0Smrg  mouse initialization (the wheel and the side buttons won't work in
690659607e0Smrg  this case):
691659607e0Smrg
692659607e0Smrg          Option  "Protocol"  "PS/2"
693659607e0Smrg
694659607e0Smrg
695659607e0Smrg
696659607e0Smrg  To use this mouse as the PS/2 device and the OS supports automatic
697659607e0Smrg  PS/2 mouse detection:
698659607e0Smrg
699659607e0Smrg          Option  "Protocol"  "Auto"
700659607e0Smrg
701659607e0Smrg
702659607e0Smrg
703659607e0Smrg  To use this mouse as the USB device and the OS supports the generic
704659607e0Smrg  HID protocol:
705659607e0Smrg
706659607e0Smrg          Option  "Protocol"  "usb"
707659607e0Smrg
708659607e0Smrg
709659607e0Smrg
710659607e0Smrg  To use this mouse as the USB device and the OS supports automatic
711659607e0Smrg  mouse detection:
712659607e0Smrg
713659607e0Smrg          Option  "Protocol"  "Auto"
714659607e0Smrg
715659607e0Smrg
716659607e0Smrg
717659607e0Smrg  [1m6.3.  Kensington Thinking Mouse and Kensington Expert Mouse (serial,[0m
718659607e0Smrg  [1mPS/2)[0m
719659607e0Smrg
720659607e0Smrg  These mice have four buttons.  The Kensington Expert Mouse is really a
721659607e0Smrg  trackball.  Both Thinking mice  support the PnP COM device
722659607e0Smrg  specification.
723659607e0Smrg
724659607e0Smrg  To use this mouse as a serial device:
725659607e0Smrg
726659607e0Smrg          Option  "Protocol"  "Auto"
727659607e0Smrg
728659607e0Smrg
729659607e0Smrg  or:
730659607e0Smrg
731659607e0Smrg          Option  "Protocol"  "ThinkingMouse"
732659607e0Smrg
733659607e0Smrg
734659607e0Smrg  To use this mouse as the PS/2 device and the OS supports PS/2 mouse
735659607e0Smrg  initialization:
736659607e0Smrg
737659607e0Smrg          Option  "Protocol"  "ThinkingMousePS/2"
738659607e0Smrg
739659607e0Smrg
740659607e0Smrg
741659607e0Smrg  To use this mouse as the PS/2 device but the OS does not support PS/2
742659607e0Smrg  mouse initialization (the third and the fourth buttons act as though
743659607e0Smrg  they were the first and the second buttons):
744659607e0Smrg
745659607e0Smrg          Option  "Protocol"  "PS/2"
746659607e0Smrg
747659607e0Smrg
748659607e0Smrg
749659607e0Smrg  To use this mouse as the PS/2 device and the OS supports automatic
750659607e0Smrg  PS/2 mouse detection:
751659607e0Smrg
752659607e0Smrg          Option  "Protocol"  "Auto"
753659607e0Smrg
754659607e0Smrg
755659607e0Smrg
756659607e0Smrg  [1m6.4.  Genius NetScroll (PS/2)[0m
757659607e0Smrg
758659607e0Smrg  This mouse has four buttons and a roller.  The roller movement is
759659607e0Smrg  recognized as the Z axis motion.
760659607e0Smrg
761659607e0Smrg  To use this mouse as the PS/2 device and the OS supports PS/2 mouse
762659607e0Smrg  initialization:
763659607e0Smrg
764659607e0Smrg          Option  "Protocol"  "NetScrollPS/2"
765659607e0Smrg
766659607e0Smrg
767659607e0Smrg
768659607e0Smrg  To use this mouse as the PS/2 device but the OS does not support PS/2
769659607e0Smrg  mouse initialization (the roller and the fourth button won't work):
770659607e0Smrg
771659607e0Smrg          Option  "Protocol"  "PS/2"
772659607e0Smrg
773659607e0Smrg
774659607e0Smrg
775659607e0Smrg  To use this mouse as the PS/2 device and the OS supports automatic
776659607e0Smrg  PS/2 mouse detection:
777659607e0Smrg
778659607e0Smrg          Option  "Protocol"  "Auto"
779659607e0Smrg
780659607e0Smrg
781659607e0Smrg
782659607e0Smrg  [1m6.5.  Genius NetMouse and NetMouse Pro (serial, PS/2)[0m
783659607e0Smrg
784659607e0Smrg  These mice have a "magic button" which is used like a wheel or a
785659607e0Smrg  roller.  The "magic button" action is recognized as the Z axis motion.
786659607e0Smrg  NetMouse Pro is identical to NetMouse except that it has the third
787659607e0Smrg  button on the left hand side.
788659607e0Smrg
789659607e0Smrg  NetMouse and NetMouse Pro support the PnP COM device specification.
790659607e0Smrg  When used as a serial mouse, they are compatible with MS IntelliMouse.
791659607e0Smrg
792659607e0Smrg  To use these mice as a serial device:
793659607e0Smrg
794659607e0Smrg          Option  "Protocol"  "Auto"
795659607e0Smrg
796659607e0Smrg
797659607e0Smrg
798659607e0Smrg  or:
799659607e0Smrg
800659607e0Smrg          Option  "Protocol"  "IntelliMouse"
801659607e0Smrg
802659607e0Smrg
803659607e0Smrg
804659607e0Smrg  To use this mouse as the PS/2 device and the OS supports PS/2 mouse
805659607e0Smrg  initialization:
806659607e0Smrg
807659607e0Smrg          Option  "Protocol"  "NetMousePS/2"
808659607e0Smrg
809659607e0Smrg
810659607e0Smrg
811659607e0Smrg  To use this mouse as the PS/2 device but the OS does not support PS/2
812659607e0Smrg  mouse initialization (the "magic button" and the third button won't
813659607e0Smrg  work):
814659607e0Smrg
815659607e0Smrg          Option  "Protocol"  "PS/2"
816659607e0Smrg
817659607e0Smrg
818659607e0Smrg
819659607e0Smrg  To use this mouse as the PS/2 device and the OS supports automatic
820659607e0Smrg  PS/2 mouse detection:
821659607e0Smrg
822659607e0Smrg          Option  "Protocol"  "Auto"
823659607e0Smrg
824659607e0Smrg
825659607e0Smrg
826659607e0Smrg  [1m6.6.  Genius NetScroll Optical (PS/2, USB)[0m
827659607e0Smrg
828659607e0Smrg  This mouse has a wheel which also acts as the button 2 (middle
829659607e0Smrg  button), and two side buttons which are recognized as the buttons 4
830659607e0Smrg  and 5.  It is compatible with NetMouse and NetMouse Pro.
831659607e0Smrg
832659607e0Smrg  To use this mouse as the PS/2 device and the OS supports PS/2 mouse
833659607e0Smrg  initialization:
834659607e0Smrg
835659607e0Smrg          Option  "Protocol"  "NetMousePS/2"
836659607e0Smrg
837659607e0Smrg
838659607e0Smrg
839659607e0Smrg  To use this mouse as the PS/2 device but the OS does not support PS/2
840659607e0Smrg  mouse initialization (the wheel and the side buttons won't work):
841659607e0Smrg
842659607e0Smrg          Option  "Protocol"  "PS/2"
843659607e0Smrg
844659607e0Smrg
845659607e0Smrg
846659607e0Smrg  To use this mouse as the PS/2 device and the OS supports automatic
847659607e0Smrg  PS/2 mouse detection:
848659607e0Smrg
849659607e0Smrg          Option  "Protocol"  "Auto"
850659607e0Smrg
851659607e0Smrg
852659607e0Smrg
853659607e0Smrg  To use this mouse as the USB device and the OS supports the generic
854659607e0Smrg  HID protocol:
855659607e0Smrg
856659607e0Smrg          Option  "Protocol"  "usb"
857659607e0Smrg
858659607e0Smrg
859659607e0Smrg
860659607e0Smrg  To use this mouse as the USB device and the OS supports automatic
861659607e0Smrg  mouse detection:
862659607e0Smrg
863659607e0Smrg          Option  "Protocol"  "Auto"
864659607e0Smrg
865659607e0Smrg
866659607e0Smrg
867659607e0Smrg  [1m6.7.  ALPS GlidePoint (serial, PS/2)[0m
868659607e0Smrg
869659607e0Smrg  The serial version of this pad device has been supported since XFree86
870659607e0Smrg  3.2.  `Tapping' action is interpreted as the fourth button press.
871659607e0Smrg  (IMHO, the fourth button of GlidePoint should always be mapped to the
872659607e0Smrg  first button in order to make this pad behave like the other pad
873659607e0Smrg  products.)
874659607e0Smrg
875659607e0Smrg  To use this pad as a serial device:
876659607e0Smrg
877659607e0Smrg          Option  "Protocol"  "GlidePoint"
878659607e0Smrg
879659607e0Smrg
880659607e0Smrg
881659607e0Smrg  To use this mouse as the PS/2 device and the OS supports PS/2 mouse
882659607e0Smrg  initialization:
883659607e0Smrg
884659607e0Smrg          Option  "Protocol"  "GlidePointPS/2"
885659607e0Smrg
886659607e0Smrg
887659607e0Smrg
888659607e0Smrg  To use this mouse as the PS/2 device but the OS does not support PS/2
889659607e0Smrg  mouse initialization:
890659607e0Smrg
891659607e0Smrg          Option  "Protocol"  "PS/2"
892659607e0Smrg
893659607e0Smrg
894659607e0Smrg
895659607e0Smrg  To use this mouse as the PS/2 device and the OS supports automatic
896659607e0Smrg  PS/2 mouse detection:
897659607e0Smrg
898659607e0Smrg          Option  "Protocol"  "Auto"
899659607e0Smrg
900659607e0Smrg
901659607e0Smrg
902659607e0Smrg  [1m6.8.  ASCII MieMouse (serial, PS/2)[0m
903659607e0Smrg
904659607e0Smrg  This mouse appears to be OEM from Genius.  Although its shape is quite
905659607e0Smrg  different, it works like Genius NetMouse Pro.  This mouse has a "knob"
906659607e0Smrg  which is used like a wheel or a roller.  The "knob" action is
907659607e0Smrg  recognized as the Z axis motion.
908659607e0Smrg
909659607e0Smrg  MieMouse supports the PnP COM device specification.  When used as a
910659607e0Smrg  serial mouse, it is compatible with MS IntelliMouse.
911659607e0Smrg
912659607e0Smrg  To use this mouse as a serial device:
913659607e0Smrg
914659607e0Smrg          Option  "Protocol"  "Auto"
915659607e0Smrg
916659607e0Smrg
917659607e0Smrg  or:
918659607e0Smrg
919659607e0Smrg          Option  "Protocol"  "IntelliMouse"
920659607e0Smrg
921659607e0Smrg
922659607e0Smrg
923659607e0Smrg  To use this mouse as the PS/2 device and the OS supports PS/2 mouse
924659607e0Smrg  initialization:
925659607e0Smrg
926659607e0Smrg
927659607e0Smrg          Option  "Protocol"  "NetMousePS/2"
928659607e0Smrg
929659607e0Smrg
930659607e0Smrg
931659607e0Smrg  To use this mouse as the PS/2 device but the OS does not support PS/2
932659607e0Smrg  mouse initialization (the knob and the third button won't work):
933659607e0Smrg
934659607e0Smrg          Option  "Protocol"  "PS/2"
935659607e0Smrg
936659607e0Smrg
937659607e0Smrg
938659607e0Smrg  To use this mouse as the PS/2 device and the OS supports automatic
939659607e0Smrg  PS/2 mouse detection:
940659607e0Smrg
941659607e0Smrg          Option  "Protocol"  "Auto"
942659607e0Smrg
943659607e0Smrg
944659607e0Smrg
945659607e0Smrg  [1m6.9.  Logitech MouseMan+ and FirstMouse+ (serial, PS/2)[0m
946659607e0Smrg
947659607e0Smrg  MouseMan+ has two buttons on top, one side button and a roller.
948659607e0Smrg  FirstMouse+ has two buttons and a roller.  The roller movement is
949659607e0Smrg  recognized as the Z axis motion.  The roller also acts as the third
950659607e0Smrg  button.  The side button is recognized as the fourth button.
951659607e0Smrg
952659607e0Smrg  MouseMan+ and FirstMouse+ support the PnP COM device specification.
953659607e0Smrg  They have MS IntelliMouse compatible mode when used as a serial mouse.
954659607e0Smrg
955659607e0Smrg  To use these mice as a serial device:
956659607e0Smrg
957659607e0Smrg          Option  "Protocol"  "Auto"
958659607e0Smrg
959659607e0Smrg
960659607e0Smrg  or:
961659607e0Smrg
962659607e0Smrg          Option  "Protocol"  "IntelliMouse"
963659607e0Smrg
964659607e0Smrg
965659607e0Smrg
966659607e0Smrg  To use this mouse as the PS/2 device and the OS supports PS/2 mouse
967659607e0Smrg  initialization:
968659607e0Smrg
969659607e0Smrg          Option  "Protocol"  "MouseManPlusPS/2"
970659607e0Smrg
971659607e0Smrg
972659607e0Smrg
973659607e0Smrg  To use this mouse as the PS/2 device but the OS does not support PS/2
974659607e0Smrg  mouse initialization (the wheel and the fourth button won't work):
975659607e0Smrg
976659607e0Smrg          Option  "Protocol"  "PS/2"
977659607e0Smrg
978659607e0Smrg
979659607e0Smrg
980659607e0Smrg  To use this mouse as the PS/2 device and the OS supports automatic
981659607e0Smrg  PS/2 mouse detection:
982659607e0Smrg
983659607e0Smrg          Option  "Protocol"  "Auto"
984659607e0Smrg
985659607e0Smrg
986659607e0Smrg
987659607e0Smrg  [1m6.10.  IBM ScrollPoint (PS/2)[0m
988659607e0Smrg
989659607e0Smrg  ScrollPoint has a "stick" in between the two buttons.  This "stick" is
990659607e0Smrg  the same as the stick-shaped pointing device often found on notebook
991659607e0Smrg  computers, on which you move the mouse cursor by pushing the stick.
992659607e0Smrg  The stick movement is recognized as the Z axis motion.  You can push
993659607e0Smrg  the stick to right and left, as well as forward and backward.  Give
994659607e0Smrg  four numbers to ZAxisMapping option to map movement along all these
995659607e0Smrg  four directions to button actions.
996659607e0Smrg
997659607e0Smrg  This mouse is compatible with Logitech MouseMan+.  To use this mouse
998659607e0Smrg  as the PS/2 device and the OS supports PS/2 mouse initialization:
999659607e0Smrg
1000659607e0Smrg          Option  "Protocol"  "MouseManPlusPS/2"
1001659607e0Smrg
1002659607e0Smrg
1003659607e0Smrg
1004659607e0Smrg  To use this mouse as the PS/2 device but the OS does not support PS/2
1005659607e0Smrg  mouse initialization (the stick won't work):
1006659607e0Smrg
1007659607e0Smrg          Option  "Protocol"  "PS/2"
1008659607e0Smrg
1009659607e0Smrg
1010659607e0Smrg
1011659607e0Smrg  To use this mouse as the PS/2 device and the OS supports automatic
1012659607e0Smrg  PS/2 mouse detection:
1013659607e0Smrg
1014659607e0Smrg          Option  "Protocol"  "Auto"
1015659607e0Smrg
1016659607e0Smrg
1017659607e0Smrg
1018659607e0Smrg  [1m6.11.  8D ScrollMouse (serial, PS/2)[0m
1019659607e0Smrg
1020659607e0Smrg  ScrollMouse, also known as GyroMouse, has a "stick" similar to IBM
1021659607e0Smrg  ScrollPoint.  The stick movement is recognized as the Z axis motion.
1022659607e0Smrg  You can push the stick to right and left, as well as forward and
1023659607e0Smrg  backward.  Give four numbers to ZAxisMapping option to map movement
1024659607e0Smrg  along all these four directions to button actions.
1025659607e0Smrg
1026659607e0Smrg  ScrollMouse supports the PnP COM device specification.  When used as a
1027659607e0Smrg  serial mouse, it is compatible with MS IntelliMouse.
1028659607e0Smrg
1029659607e0Smrg  To use this mouse as a serial device:
1030659607e0Smrg
1031659607e0Smrg          Option  "Protocol"  "Auto"
1032659607e0Smrg
1033659607e0Smrg
1034659607e0Smrg  or:
1035659607e0Smrg
1036659607e0Smrg          Option  "Protocol"  "IntelliMouse"
1037659607e0Smrg
1038659607e0Smrg
1039659607e0Smrg
1040659607e0Smrg  To use this mouse as the PS/2 device and the OS supports PS/2 mouse
1041659607e0Smrg  initialization:
1042659607e0Smrg
1043659607e0Smrg          Option  "Protocol"  "IMPS/2"
1044659607e0Smrg
1045659607e0Smrg
1046659607e0Smrg
1047659607e0Smrg  To use this mouse as the PS/2 device but the OS does not support PS/2
1048659607e0Smrg  mouse initialization (the stick won't work):
1049659607e0Smrg
1050659607e0Smrg          Option  "Protocol"  "PS/2"
1051659607e0Smrg
1052659607e0Smrg
1053659607e0Smrg
1054659607e0Smrg  To use this mouse as the PS/2 device and the OS supports automatic
1055659607e0Smrg  PS/2 mouse detection:
1056659607e0Smrg          Option  "Protocol"  "Auto"
1057659607e0Smrg
1058659607e0Smrg
1059659607e0Smrg
1060659607e0Smrg  [1m6.12.  A4 Tech 4D mice (serial, PS/2, USB)[0m
1061659607e0Smrg
1062659607e0Smrg  A4 Tech produces quit a number of mice with one or two wheels.  Their
1063659607e0Smrg  mice may have 2, 3, or 4 buttons.  The wheels movement is recognized
1064659607e0Smrg  as the Z axis motion.  Give four numbers to ZAxisMapping option to map
1065659607e0Smrg  movement of both wheels to button actions.
1066659607e0Smrg
1067659607e0Smrg  4D mice support the PnP COM device specification.  When used as a
1068659607e0Smrg  serial mouse, it is compatible with MS IntelliMouse.
1069659607e0Smrg
1070659607e0Smrg  To use this mouse as a serial device:
1071659607e0Smrg
1072659607e0Smrg          Option  "Protocol"  "Auto"
1073659607e0Smrg
1074659607e0Smrg
1075659607e0Smrg  or:
1076659607e0Smrg
1077659607e0Smrg          Option  "Protocol"  "IntelliMouse"
1078659607e0Smrg
1079659607e0Smrg
1080659607e0Smrg
1081659607e0Smrg  To use this mouse as the PS/2 device and the OS supports PS/2 mouse
1082659607e0Smrg  initialization:
1083659607e0Smrg
1084659607e0Smrg          Option  "Protocol"  "IMPS/2"
1085659607e0Smrg
1086659607e0Smrg
1087659607e0Smrg
1088659607e0Smrg  To use this mouse as the PS/2 device but the OS does not support PS/2
1089659607e0Smrg  mouse initialization (the wheels won't work):
1090659607e0Smrg
1091659607e0Smrg          Option  "Protocol"  "PS/2"
1092659607e0Smrg
1093659607e0Smrg
1094659607e0Smrg
1095659607e0Smrg  To use this mouse as the PS/2 device and the OS supports automatic
1096659607e0Smrg  PS/2 mouse detection:
1097659607e0Smrg
1098659607e0Smrg          Option  "Protocol"  "Auto"
1099659607e0Smrg
1100659607e0Smrg
1101659607e0Smrg
1102659607e0Smrg  To use this mouse as the USB device and the OS supports the generic
1103659607e0Smrg  HID protocol:
1104659607e0Smrg
1105659607e0Smrg          Option  "Protocol"  "usb"
1106659607e0Smrg
1107659607e0Smrg
1108659607e0Smrg
1109659607e0Smrg  To use this mouse as the USB device and the OS supports automatic
1110659607e0Smrg  mouse detection:
1111659607e0Smrg
1112659607e0Smrg          Option  "Protocol"  "Auto"
1113659607e0Smrg
1114659607e0Smrg
1115659607e0Smrg
1116659607e0Smrg  [1m7.  Configuration Examples[0m
1117659607e0Smrg
1118659607e0Smrg
1119659607e0Smrg
1120659607e0Smrg  This section shows some example InputDevice section for popular mice.
1121659607e0Smrg  All the examples assume that the mouse is connected to the PS/2 mouse
1122659607e0Smrg  port, and the OS supports the PS/2 mouse initialization.  It is also
1123659607e0Smrg  assumed that /dev/mouse is a link to the PS/2 mouse port.
1124659607e0Smrg
1125659607e0Smrg  Logitech MouseMan+ has 4 buttons and a wheel.  The following example
1126659607e0Smrg  makes the wheel movement available as the button 5 and 6.
1127659607e0Smrg
1128659607e0Smrg
1129659607e0Smrg  ______________________________________________________________________
1130659607e0Smrg  Section "InputDevice"
1131659607e0Smrg          Identifier      "MouseMan+"
1132659607e0Smrg          Driver          "mouse"
1133659607e0Smrg          Option          "Device"    "/dev/mouse"
1134659607e0Smrg          Option          "Protocol"  "MouseManPlusPS/2"
1135659607e0Smrg          Option          "Buttons"   "6"
1136659607e0Smrg          Option          "ZAxisMapping"      "5 6"
1137659607e0Smrg  EndSection
1138659607e0Smrg  ______________________________________________________________________
1139659607e0Smrg
1140659607e0Smrg
1141659607e0Smrg
1142659607e0Smrg  You can change button number assignment using the xmodmap command
1143659607e0Smrg  AFTER you start the X server with the above configuration.  You may
1144659607e0Smrg  not like to use the wheel as the button 2 and rather want the side
1145659607e0Smrg  button (button 4) act like the button 2.  You may also want to map the
1146659607e0Smrg  wheel movement to the button 4 and 5.  This can be done by the
1147659607e0Smrg  following command:
1148659607e0Smrg
1149659607e0Smrg
1150659607e0Smrg          xmodmap -e "pointer = 1 6 3 2 4 5"
1151659607e0Smrg
1152659607e0Smrg
1153659607e0Smrg
1154659607e0Smrg  After this command is run, the correspondence between the buttons and
1155659607e0Smrg  button numbers will be as shown in the following table.
1156659607e0Smrg
1157659607e0Smrg
1158659607e0Smrg  Physical Buttons        Reported as:
1159659607e0Smrg  ------------------------------------
1160659607e0Smrg  1 Left Button             Button 1
1161659607e0Smrg  2 Wheel Button            Button 6
1162659607e0Smrg  3 Right Button            Button 3
1163659607e0Smrg  4 Side Button             Button 2
1164659607e0Smrg  5 Wheel Negative Move     Button 4
1165659607e0Smrg  6 Wheel Positive Move     Button 5
1166659607e0Smrg
1167659607e0Smrg  Starting in the Xorg 6.9 release, you can also achieve this in your
1168659607e0Smrg  configuration file by adding this to the "InputDevice" section in 
1169659607e0Smrg  xorg.conf:
1170659607e0Smrg
1171659607e0Smrg       Option "ButtonMapping" "1 6 3 2 4 5"
1172659607e0Smrg
1173659607e0Smrg  For the MS IntelliMouse Explorer which as a wheel and 5 buttons, you
1174659607e0Smrg  may have the following InputDevice section.
1175659607e0Smrg
1176659607e0Smrg
1177659607e0Smrg  ______________________________________________________________________
1178659607e0Smrg  Section "InputDevice"
1179659607e0Smrg          Identifier      "IntelliMouse Explorer"
1180659607e0Smrg          Driver          "mouse"
1181659607e0Smrg          Option          "Device"    "/dev/mouse"
1182659607e0Smrg          Option          "Protocol"  "ExplorerPS/2"
1183659607e0Smrg          Option          "Buttons"   "7"
1184659607e0Smrg          Option          "ZAxisMapping"      "6 7"
1185659607e0Smrg  EndSection
1186659607e0Smrg  ______________________________________________________________________
1187659607e0Smrg
1188659607e0Smrg
1189659607e0Smrg
1190659607e0Smrg  The IntelliMouse Explorer has 5 buttons, thus, you should give "7" to
1191659607e0Smrg  the Buttons option if you want to map the wheel movement to buttons (6
1192659607e0Smrg  and 7).  With this configuration, the correspondence between the
1193659607e0Smrg  buttons and button numbers will be as follows:
1194659607e0Smrg
1195659607e0Smrg
1196659607e0Smrg  Physical Buttons        Reported as:
1197659607e0Smrg  ------------------------------------
1198659607e0Smrg  1 Left Button             Button 1
1199659607e0Smrg  2 Wheel Button            Button 2
1200659607e0Smrg  3 Right Button            Button 3
1201659607e0Smrg  4 Side Button 1           Button 4
1202659607e0Smrg  5 Side Button 2           Button 5
1203659607e0Smrg  6 Wheel Negative Move     Button 6
1204659607e0Smrg  7 Wheel Positive Move     Button 7
1205659607e0Smrg
1206659607e0Smrg
1207659607e0Smrg
1208659607e0Smrg  You can change button number assignment using xmodmap AFTER you
1209659607e0Smrg  started the X server with the above configuration.
1210659607e0Smrg
1211659607e0Smrg
1212659607e0Smrg          xmodmap -e "pointer = 1 2 3 4 7 5 6"
1213659607e0Smrg
1214659607e0Smrg
1215659607e0Smrg
1216659607e0Smrg  The above command will moves the side button 2 to the button 7 and
1217659607e0Smrg  make the wheel movement reported as the button 5 and 6.  See the table
1218659607e0Smrg  below.
1219659607e0Smrg
1220659607e0Smrg
1221659607e0Smrg  Physical Buttons        Reported as:
1222659607e0Smrg  ------------------------------------
1223659607e0Smrg  1 Left Button             Button 1
1224659607e0Smrg  2 Wheel Button            Button 2
1225659607e0Smrg  3 Right Button            Button 3
1226659607e0Smrg  4 Side Button 1           Button 4
1227659607e0Smrg  5 Side Button 2           Button 7
1228659607e0Smrg  6 Wheel Negative Move     Button 5
1229659607e0Smrg  7 Wheel Positive Move     Button 6
1230659607e0Smrg
1231659607e0Smrg
1232659607e0Smrg
1233659607e0Smrg  For the A4 Tech WinEasy mouse which has two wheels and 3 buttons, you
1234659607e0Smrg  may have the following InputDevice section.
1235659607e0Smrg
1236659607e0Smrg
1237659607e0Smrg  ______________________________________________________________________
1238659607e0Smrg  Section "InputDevice"
1239659607e0Smrg          Identifier      "WinEasy"
1240659607e0Smrg          Driver          "mouse"
1241659607e0Smrg          Option          "Device"    "/dev/mouse"
1242659607e0Smrg          Option          "Protocol"  "IMPS/2"
1243659607e0Smrg          Option          "Buttons"   "7"
1244659607e0Smrg          Option          "ZAxisMapping"      "4 5 6 7"
1245659607e0Smrg  EndSection
1246659607e0Smrg  ______________________________________________________________________
1247659607e0Smrg
1248659607e0Smrg
1249659607e0Smrg
1250659607e0Smrg  The movement of the first wheel is mapped to the button 4 and 5.  The
1251659607e0Smrg  second wheel's movement will be reported as the buttons 6 and 7.
1252659607e0Smrg
1253659607e0Smrg  The Kensington Expert mouse is really a trackball. It has 4 buttons
1254659607e0Smrg  arranged in a rectangle around the ball.
1255659607e0Smrg
1256659607e0Smrg  ______________________________________________________________________
1257659607e0Smrg  Section "InputDevice"
1258659607e0Smrg          Identifier  "DLB"
1259659607e0Smrg          Driver      "mouse"
1260659607e0Smrg          Option      "Protocol" "ThinkingMousePS/2"
1261659607e0Smrg          Option      "Buttons" "3"
1262659607e0Smrg          Option      "Emulate3Buttons"
1263659607e0Smrg          Option      "Device" "/dev/mouse"
1264659607e0Smrg          Option      "DragLockButtons" "2 1 4 3"
1265659607e0Smrg  EndSection
1266659607e0Smrg  ______________________________________________________________________
1267659607e0Smrg
1268659607e0Smrg
1269659607e0Smrg  In this example, button 2 is a drag lock button for button number 1,
1270659607e0Smrg  and button 4 is a drag lock button for button 3.  Since button 2 is
1271659607e0Smrg  above button 1 and button 4 is above button 3 in the layout of this
1272659607e0Smrg  trackball, this is reasonable.
1273659607e0Smrg
1274659607e0Smrg  Because button 2 is being used as a drag lock, it can not be used as
1275659607e0Smrg  an ordinary button. However, it can be activated by using the
1276659607e0Smrg  "Emulate3Buttons" feature. However, some people my be unable to press
1277659607e0Smrg  two buttons at the same time. They may prefer the following
1278659607e0Smrg  InputDevice section which defines button 4 as a master drag lock
1279659607e0Smrg  button, and leaves button 2 free for ordinary use.
1280659607e0Smrg
1281659607e0Smrg  ______________________________________________________________________
1282659607e0Smrg  Section "InputDevice"
1283659607e0Smrg          Identifier  "MasterDLB"
1284659607e0Smrg          Driver      "mouse"
1285659607e0Smrg          Option      "Protocol" "ThinkingMousePS/2"
1286659607e0Smrg          Option      "Buttons" "3"
1287659607e0Smrg          Option      "Device" "/dev/mouse"
1288659607e0Smrg          Option      "DragLockButtons" "4"
1289659607e0Smrg  EndSection
1290659607e0Smrg  ______________________________________________________________________
1291659607e0Smrg
1292659607e0Smrg
1293659607e0Smrg
1294