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