1b73be646Smrg Mouse Support in xf86-input-mouse 2b73be646Smrg Original version written by Kazutaka Yokota for XFree86 on 17 December 2002 3b73be646Smrg Updated by Alan Coopersmith for X.Org releases 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 32b73be646Smrg 5.2 ZAxisMapping 33659607e0Smrg 5.3 Resolution 34659607e0Smrg 5.4 Drag Lock Buttons 35659607e0Smrg 36659607e0Smrg 6. Mouse Gallery 37b73be646Smrg 6.1 MS IntelliMouse (serial, PS/2) 38659607e0Smrg 6.2 MS IntelliMouse Explorer (PS/2, USB) 39b73be646Smrg 6.3 Kensington Thinking Mouse and Kensington Expert Mouse (serial, 40b73be646Smrg PS/2) 41659607e0Smrg 6.4 Genius NetScroll (PS/2) 42659607e0Smrg 6.5 Genius NetMouse and NetMouse Pro (serial, PS/2) 43659607e0Smrg 6.6 Genius NetScroll Optical (PS/2, USB) 44659607e0Smrg 6.7 ALPS GlidePoint (serial, PS/2) 45659607e0Smrg 6.8 ASCII MieMouse (serial, PS/2) 46659607e0Smrg 6.9 Logitech MouseMan+ and FirstMouse+ (serial, PS/2) 47659607e0Smrg 6.10 IBM ScrollPoint (PS/2) 48659607e0Smrg 6.11 8D ScrollMouse (serial, PS/2) 49659607e0Smrg 6.12 A4 Tech 4D mice (serial, PS/2, USB) 50659607e0Smrg 51659607e0Smrg 7. Configuration Examples 52659607e0Smrg 53659607e0Smrg 54659607e0Smrg ______________________________________________________________________ 55659607e0Smrg 56b73be646Smrg 1. Introduction 57659607e0Smrg 58659607e0Smrg 59b73be646Smrg This document describes mouse support in the xf86-input-mouse driver 60b73be646Smrg for the Xorg X server. This driver is mainly used on non-Linux 61b73be646Smrg operating systems such as BSD & Solaris, as modern Linux systems use 62e4da38afSmrg the xf86-input-evdev or xf86-input-libinput drivers instead. 63659607e0Smrg 64659607e0Smrg Mouse configuration has often been mysterious task for novice users. 65659607e0Smrg However, once you learn several basics, it is straightforward to write 66659607e0Smrg the mouse "InputDevice" section in the xorg.conf file by hand. 67659607e0Smrg 68659607e0Smrg 69b73be646Smrg 2. Supported Hardware 70659607e0Smrg 71659607e0Smrg 72b73be646Smrg The xf86-input-mouse driver supports four classes of mice: serial, 73b73be646Smrg bus and PS/2 mice, and additional mouse types supported by specific 74b73be646Smrg operating systems, such as USB mice. 75659607e0Smrg 76659607e0Smrg 77b73be646Smrg Serial mouse 78b73be646Smrg The serial mouse was once the most popular pointing device for 79659607e0Smrg PCs. There have been numerous serial mouse models from a number 80659607e0Smrg of manufactures. Despite the wide range of variations, there 81659607e0Smrg have been relatively few protocols (data format) with which the 82659607e0Smrg serial mouse talks to the host computer. 83659607e0Smrg 84659607e0Smrg The modern serial mouse conforms to the PnP COM device 85659607e0Smrg specification so that the host computer can automatically detect 86659607e0Smrg the mouse and load an appropriate driver. The X server supports 87659607e0Smrg this specification and can detect popular PnP serial mouse 88659607e0Smrg models on most platforms. 89659607e0Smrg 90659607e0Smrg 91b73be646Smrg Bus mouse 92659607e0Smrg The bus mouse connects to a dedicated interface card in an 93659607e0Smrg expansion slot. Some video cards, notably those from ATI, and 94659607e0Smrg integrated I/O cards may also have a bus mouse connector. Some 95659607e0Smrg bus mice are known as `InPort mouse'. 96659607e0Smrg 97b73be646Smrg Note that some mouse manufacturers have sold a package including 98659607e0Smrg a serial mouse and a serial interface card. Don't confuse this 99659607e0Smrg type of products with the genuine bus mouse. 100659607e0Smrg 101659607e0Smrg 102b73be646Smrg PS/2 mouse 103b73be646Smrg They are sometimes called `Mouse-port mouse'. The PS/2 mouse was 104b73be646Smrg common for a generation after serial mice, and most laptops still 105b73be646Smrg use the PS/2 protocol for built-in pointer devices. 106659607e0Smrg 107659607e0Smrg The PS/2 mouse is an intelligent device and may have more than 108659607e0Smrg three buttons and a wheel or a roller. The PS/2 mouse is 109659607e0Smrg usually compatible with the original PS/2 mouse from IBM 110659607e0Smrg immediately after power up. The PS/2 mouse with additional 111659607e0Smrg features requires a specialized initialization procedure to 112659607e0Smrg enable these features. Without proper initialization, it 113659607e0Smrg behaves as though it were an ordinary two or three button mouse. 114659607e0Smrg 115659607e0Smrg 116b73be646Smrg USB mouse 117659607e0Smrg USB (Universal Serial Bus) ports are present on most modern 118659607e0Smrg computers. Several devices can be plugged into this bus, 119659607e0Smrg including mice and keyboards. 120659607e0Smrg 121b73be646Smrg This driver includes support for USB mice on some systems. 122659607e0Smrg 123659607e0Smrg Many mice nowadays can be used both as a serial mouse and as a PS/2 124b73be646Smrg mouse, or as both a PS/2 and a USB mouse. They have logic to distinguish 125b73be646Smrg which interface it is connected to. However, a mouse which is not 126b73be646Smrg marketed as compatible with both mouse interfaces lacks this logic and 127b73be646Smrg cannot be used in such a way, even if you can find an appropriate adapter 128b73be646Smrg with which you can connect the mouse to a different format port. 129b73be646Smrg 130b73be646Smrg This driver supports a mouse with a wheel, a roller or a knob. Its 131659607e0Smrg action is detected as the Z (third) axis motion of the mouse. As the 132659607e0Smrg X server or clients normally do not use the Z axis movement of the 133659607e0Smrg pointing device, a configuration option, "ZAxisMapping", is provided 134659607e0Smrg to assign the Z axis movement to another axis or a pair of buttons 135659607e0Smrg (see below). 136659607e0Smrg 137659607e0Smrg 138b73be646Smrg 3. OS Support for Mice 139b73be646Smrg 140659607e0Smrg 141b73be646Smrg 142b73be646Smrg 3.1. Summary of Supported Mouse Protocol Types 143659607e0Smrg 144659607e0Smrg 145659607e0Smrg Protocol Types 146659607e0Smrg serial PnP BusMouse PS/2 Extended PS/2 147659607e0Smrg OS platforms protocols serial protocol protocol protocols 148659607e0Smrg "Auto" "BusMouse" "PS/2" "xxxPS/2" USB 149659607e0Smrg ------------------------------------------------------------------------- 150659607e0Smrg BSD/OS Ok ? ? ? ? ? 151659607e0Smrg FreeBSD Ok Ok Ok Ok SP*1 SP*1 152659607e0Smrg FreeBSD(98) Ok ? Ok NA NA ? 153659607e0Smrg Interactive Unix Ok NA ?*1 ?*1 NA ? 154659607e0Smrg Linux Ok Ok Ok Ok Ok ? 155659607e0Smrg Linux/98 Ok ? Ok NA NA ? 156659607e0Smrg LynxOS Ok NA Ok Ok NA ? 157659607e0Smrg NetBSD Ok Ok Ok SP*1 SP*1 SP*1 158659607e0Smrg NetBSD/pc98 Ok ? Ok NA NA NA 159659607e0Smrg OpenBSD Ok Ok Ok Ok*1 Ok*1 Ok*1 160659607e0Smrg SCO Ok ? SP*1 SP*1 NA ? 161e4da38afSmrg Solaris Ok NA*1 ?*1 Ok Ok SP*1 162659607e0Smrg SVR4 Ok NA*1 SP*1 SP*1 NA ? 163659607e0Smrg PANIX Ok ? SP*1 SP*1 NA ? 164659607e0Smrg 165659607e0Smrg Ok: support is available, NA: not available, ?: untested or unknown. 166659607e0Smrg SP: support is available in a different form 167659607e0Smrg 168659607e0Smrg *1 Refer to the following sections for details. 169659607e0Smrg 170659607e0Smrg 171659607e0Smrg 172b73be646Smrg 3.2. BSD/OS 173659607e0Smrg 174659607e0Smrg No testing has been done with BSD/OS. 175659607e0Smrg 176659607e0Smrg 177b73be646Smrg 3.3. FreeBSD 178659607e0Smrg 179659607e0Smrg FreeBSD supports the "SysMouse" protocol which must be specified when 180659607e0Smrg the moused daemon is running in versions 2.2.1 or later. 181659607e0Smrg 182659607e0Smrg When running the mouseddaemon, you must always specify the 183659607e0Smrg /dev/sysmouse device and the "SysMouse" protocol to the X server, 184659607e0Smrg regardless of the actual type of your mouse. 185659607e0Smrg 186659607e0Smrg FreeBSD versions 2.2.6 or later include the kernel-level support for 187659607e0Smrg extended PS/2 mouse protocols and there is no need to specify the 188659607e0Smrg exact protocol name to the X server. Instead specify the "PS/2" or 189659607e0Smrg "Auto" protocol and the X server will automatically make use of the 190659607e0Smrg kernel-level support. 191659607e0Smrg 192659607e0Smrg In fact, "Auto" protocol support is really efficient in these 193659607e0Smrg versions. You may always specify "Auto" to any mouse, serial, bus or 194659607e0Smrg PS/2, unless the mouse is an old serial model which doesn't support 195659607e0Smrg PnP. 196659607e0Smrg 197659607e0Smrg FreeBSD versions 2.2.5 or earlier do not support extended PS/2 mouse 198659607e0Smrg protocols ("xxxPS/2"). Always specify the "PS/2" protocol for any 199659607e0Smrg PS/2 mouse in these versions regardless of the brand of the mouse. 200b73be646Smrg 201659607e0Smrg FreeBSD versions 3.1 or later have support for USB mice. Specify the 202659607e0Smrg "Auto" protocol for the /dev/ums0 device. (If the moused daemon is 203659607e0Smrg running for the USB mouse, you must use /dev/sysmouse instead of 204b73be646Smrg /dev/ums0 as explained above.) See the ums(4) manual page for details. 205659607e0Smrg 206659607e0Smrg 207b73be646Smrg 3.4. FreeBSD(98) 208659607e0Smrg 209659607e0Smrg The PS/2 mouse is not supported. 210659607e0Smrg 211659607e0Smrg 212b73be646Smrg 3.5. Interactive Unix 213659607e0Smrg 214659607e0Smrg The PnP serial mouse support (the "Auto" protocol) is not supported 215659607e0Smrg for the moment. 216659607e0Smrg 217659607e0Smrg The bus mouse and PS/2 mouse should be supported by using the 218659607e0Smrg appropriate device drivers. Use /dev/mouse for the "BusMouse" 219659607e0Smrg protocol and /dev/kdmouse for the "PS/2" protocol. These protocols 220659607e0Smrg are untested but may work. Please send success/failure reports to 221b73be646Smrg <mailto:michael.rohleder@stadt-frankfurt.de> 222659607e0Smrg 223659607e0Smrg 224b73be646Smrg 3.6. Linux 225659607e0Smrg 226659607e0Smrg All protocol types should work. 227659607e0Smrg 228659607e0Smrg 229b73be646Smrg 3.7. Linux/98 230659607e0Smrg 231659607e0Smrg The PS/2 mouse is not supported. 232659607e0Smrg 233659607e0Smrg 234b73be646Smrg 3.8. LynxOS 235659607e0Smrg 236659607e0Smrg The PnP serial mouse support (the "Auto" protocol) is disabled in 237659607e0Smrg LynxOS, because of limited TTY device driver functionality. 238659607e0Smrg 239659607e0Smrg 240b73be646Smrg 3.9. NetBSD 241659607e0Smrg 242659607e0Smrg NetBSD 1.3.x and former does not support extended PS/2 mouse protocols 243659607e0Smrg ("xxxPS/2"). The PS/2 mouse device driver /dev/pms emulates the bus 244659607e0Smrg mouse. Therefore, you should always specify the "BusMouse" protocol 245659607e0Smrg for any PS/2 mouse regardless of the brand of the mouse. 246659607e0Smrg 247659607e0Smrg The "wsmouse" protocol introduced in NetBSD 1.4 along with the wscons 248659607e0Smrg console driver is supported. You need to run binaries compiled on 249659607e0Smrg NetBSD 1.4 to have support for it though. Use "/dev/wsmouse0" for the 250b73be646Smrg device. Refer to the wsmouse(4) manual page for kernel configuration 251370b807fSmrg information. 252659607e0Smrg 253b73be646Smrg This driver also provides support for USB mice. See the ums(4) manual 254659607e0Smrg page for details. 255659607e0Smrg 256659607e0Smrg 257b73be646Smrg 3.10. NetBSD/pc98 258659607e0Smrg 259659607e0Smrg The PS/2 mouse is not supported. 260659607e0Smrg 261659607e0Smrg 262b73be646Smrg 263b73be646Smrg 3.11. OpenBSD 264659607e0Smrg 265659607e0Smrg The raw PS/2 mouse device driver /dev/psm0 uses the raw PS/2 mouse 266659607e0Smrg protocol. 267659607e0Smrg 268659607e0Smrg OpenBSD 2.2 and earlier does not support extended PS/2 mouse protocols 269b73be646Smrg ("xxxPS/2") . Therefore, you should specify the "PS/2" protocol for 270659607e0Smrg any PS/2 mouse regardless of the brand of the mouse. 271659607e0Smrg 272659607e0Smrg OpenBSD 2.3 and later support all extended PS/2 mouse protocols. You 273659607e0Smrg can select the "Auto" protocol for PnP PS/2 mice or any specific 274659607e0Smrg extended ("xxxPS/2") protocol for non PnP mice. 275659607e0Smrg 276659607e0Smrg There is also a cooked PS/2 mouse device driver /dev/pms0 which 277b73be646Smrg emulates the bus mouse. Specify the "BusMouse" protocol for any PS/2 278659607e0Smrg mouse regardless of the brand of the mouse when using this device. 279659607e0Smrg 280659607e0Smrg XFree86 3.3.6 support USB mice on OpenBSD 2.6 and later though the 281659607e0Smrg generic Human Interface Device (hid) /dev/uhid*. Select the "usb" 282659607e0Smrg protocol and the /dev/uhid* instance corresponding to your mouse as 283659607e0Smrg the device name. 284659607e0Smrg 285659607e0Smrg 286b73be646Smrg 3.12. OS/2 287659607e0Smrg 288b73be646Smrg X11R7.5/OS2 always uses the native mouse driver of the operating 289659607e0Smrg system and will support any type of pointer that the OS supports, 290659607e0Smrg whether it is serial, bus mouse, or PnP type. If the mouse works 291b73be646Smrg under Presentation Manager, it will also work under X11R7.5/OS2. 292659607e0Smrg 293659607e0Smrg Always specify "OSMouse" as the protocol type. 294659607e0Smrg 295659607e0Smrg 296b73be646Smrg 3.13. SCO 297659607e0Smrg 298659607e0Smrg The bus and PS/2 mouse are supported with the "OSMouse" protocol type. 299659607e0Smrg 300659607e0Smrg The "OSMouse" may also be used with the serial mouse. 301659607e0Smrg 302659607e0Smrg 303b73be646Smrg 3.14. Solaris 304659607e0Smrg 305e4da38afSmrg Testing has been done with Solaris 10 and 11. 306659607e0Smrg 307659607e0Smrg On Solaris 10 1/06 and later versions with "virtual mouse" support, 308b73be646Smrg all PS/2 and USB mice connected to the system can be accessed via the 309b73be646Smrg /dev/mouse device using the VUID protocol, including USB mice plugged 310b73be646Smrg in after the X server is started. On older releases or to address mice 311b73be646Smrg individually, specific devices and protocols may be used. 312659607e0Smrg 313659607e0Smrg Logitech and Microsoft bus mice have not been tested, but might work 314b73be646Smrg with the /dev/logi and /dev/msm devices. Standard 2 and 3 button PS/2 315b73be646Smrg mice work with the "PS/2" protocol type and the /dev/kdmouse device. 316b73be646Smrg USB mice work with the "VUID" protocol type and the /dev/mouse device. 317b73be646Smrg The PnP serial mouse support via the "Auto" protocol has been tested 318b73be646Smrg and does not work. The "Auto" protocol can however detect PS/2 and USB 319b73be646Smrg mice correctly. 320659607e0Smrg 321659607e0Smrg Additional USB mice can be connected using the "VUID" protocol type 322b73be646Smrg and the appropriate "/dev/usb/hid" device with the 323b73be646Smrg Option "StreamsModule" "usbms" 324b73be646Smrg line included in the associated "InputDevice" section. 325b73be646Smrg 326659607e0Smrg 327659607e0Smrg 328b73be646Smrg 3.15. SVR4 329659607e0Smrg 330659607e0Smrg The bus and PS/2 mouse may be supported with the "Xqueue" protocol 331659607e0Smrg type. 332659607e0Smrg 333659607e0Smrg The "Xqueue" may also be used with the serial mouse. 334659607e0Smrg 335659607e0Smrg The PnP serial mouse support (the "Auto" protocol) is not tested. 336659607e0Smrg 337659607e0Smrg 338b73be646Smrg 3.16. PANIX 339659607e0Smrg 340659607e0Smrg The PC/AT version of PANIX supports the bus and PS/2 mouse with the 341659607e0Smrg "Xqueue" protocol type. The PC-98 version of PANIX supports the bus 342659607e0Smrg mouse with the "Xqueue" protocol type. 343659607e0Smrg 344659607e0Smrg 345b73be646Smrg 4. Configuring Your Mouse 346659607e0Smrg 347659607e0Smrg 348b73be646Smrg Before editing the xorg.conf file to set up mouse configuration, you 349659607e0Smrg must identify the interface type, the device name and the protocol 350659607e0Smrg type of your mouse. Blindly trying every possible combination of 351659607e0Smrg mouse settings will lead you nowhere. 352659607e0Smrg 353659607e0Smrg The first thing you need to know is the interface type of the mouse 354659607e0Smrg you are going to use. It can be determined by looking at the 355659607e0Smrg connector of the mouse. The serial mouse has a D-Sub female 9- or 356659607e0Smrg 25-pin connector. The bus mice have either a D-Sub male 9-pin 357659607e0Smrg connector or a round DIN 9-pin connector. The PS/2 mouse is equipped 358b73be646Smrg with a small, round DIN 6-pin connector. USB mice have a thin 359b73be646Smrg rectangular connector. Some mice come with adapters with which the 360b73be646Smrg connector can be converted to another. If you are to use such an 361b73be646Smrg adapter, remember that the connector at the very end of the 362b73be646Smrg mouse/adapter pair is what matters. 363659607e0Smrg 364659607e0Smrg The next thing to decide is a device node to use for the given 365659607e0Smrg interface. For the bus and PS/2 mice, there is little choice; your OS 366659607e0Smrg most possibly offers just one device node each for the bus mouse and 367659607e0Smrg PS/2 mouse. There may be more than one serial port to which the 368659607e0Smrg serial mouse can be attached. 369659607e0Smrg 370659607e0Smrg The next step is to guess the appropriate protocol type for the mouse. 371659607e0Smrg The X server may be able to select a protocol type for the given mouse 372659607e0Smrg automatically in some cases. Otherwise, the user has to choose one 373659607e0Smrg manually. Follow the guidelines below. 374659607e0Smrg 375659607e0Smrg 376b73be646Smrg Bus mouse 377659607e0Smrg The bus and InPort mice always use "BusMouse" protocol 378659607e0Smrg regardless of the brand of the mouse. 379659607e0Smrg 380659607e0Smrg Some OSs may allow you to specify "Auto" as the protocol type 381659607e0Smrg for the bus mouse. 382659607e0Smrg 383659607e0Smrg 384b73be646Smrg PS/2 mouse 385659607e0Smrg The "PS/2" protocol should always be tried first for the PS/2 386659607e0Smrg mouse regardless of the brand of the mouse. Any PS/2 mouse 387659607e0Smrg should work with this protocol type, although wheels and other 388659607e0Smrg additional features are unavailable in the X server. 389659607e0Smrg 390659607e0Smrg After verifying the mouse works with this protocol, you may 391659607e0Smrg choose to specify one of "xxxPS/2" protocols so that extra 392659607e0Smrg features are made available in the X server. However, support 393659607e0Smrg for these PS/2 mice assumes certain behavior of the underlying 394659607e0Smrg OS and may not always work as expected. Support for some PS/2 395659607e0Smrg mouse models may be disabled all together for some OS platforms 396659607e0Smrg for this reason. 397659607e0Smrg 398659607e0Smrg Some OSs may allow you to specify "Auto" as the protocol type 399659607e0Smrg for the PS/2 mouse and the X server will automatically adjust 400659607e0Smrg itself. 401659607e0Smrg 402659607e0Smrg 403b73be646Smrg Serial mouse 404659607e0Smrg The server supports a wide range of mice, both old and new. If 405659607e0Smrg your mouse is of a relatively new model, it may conform to the 406659607e0Smrg PnP COM device specification and the X server may be able to 407659607e0Smrg detect an appropriate protocol type for the mouse automatically. 408659607e0Smrg 409659607e0Smrg Specify "Auto" as the protocol type and start the X server. If 410659607e0Smrg the mouse is not a PnP mouse, or the X server cannot determine a 411659607e0Smrg suitable protocol type, the server will print the following 412659607e0Smrg error message and abort. 413659607e0Smrg 414659607e0Smrg 415659607e0Smrg <mousename>: cannot determine the mouse protocol 416659607e0Smrg 417659607e0Smrg 418659607e0Smrg 419659607e0Smrg If the X server generates the above error message, you need to 420659607e0Smrg manually specify a protocol type for your mouse. Choose one from 421659607e0Smrg the following list: 422659607e0Smrg 423659607e0Smrg 424b73be646Smrg o GlidePoint 425659607e0Smrg 426b73be646Smrg o IntelliMouse 427659607e0Smrg 428b73be646Smrg o Logitech 429659607e0Smrg 430b73be646Smrg o Microsoft 431659607e0Smrg 432b73be646Smrg o MMHittab 433659607e0Smrg 434b73be646Smrg o MMSeries 435659607e0Smrg 436b73be646Smrg o MouseMan 437659607e0Smrg 438b73be646Smrg o MouseSystems 439659607e0Smrg 440b73be646Smrg o ThinkingMouse 441659607e0Smrg 442659607e0Smrg When you choose, keep in mind the following rule of thumb: 443659607e0Smrg 444659607e0Smrg 445659607e0Smrg 1. "Logitech" protocol is for old serial mouse models from 446659607e0Smrg Logitech. Modern Logitech mice use either "MouseMan" or 447659607e0Smrg "Microsoft" protocol. 448659607e0Smrg 449659607e0Smrg 2. Most 2-button serial mice support the "Microsoft" protocol. 450659607e0Smrg 451659607e0Smrg 3. 3-button serial mice may work with the "Mousesystems" 452659607e0Smrg protocol. If it doesn't, it may work instead with the 453659607e0Smrg "Microsoft" protocol although the third (middle) button won't 454659607e0Smrg function. 3-button serial mice may also work with the 455659607e0Smrg "Mouseman" protocol under which the third button may function 456659607e0Smrg as expected. 457659607e0Smrg 458659607e0Smrg 4. 3-button serial mice may have a small switch at the bottom of 459659607e0Smrg the mouse to choose between ``MS'' and ``PC'', or ``2'' and 460659607e0Smrg ``3''. ``MS'' or ``2'' usually mean the "Microsoft" 461659607e0Smrg protocol. ``PC'' or ``3'' will choose the "MouseSystems" 462659607e0Smrg protocol. 463659607e0Smrg 464659607e0Smrg 5. If the serial mouse has a roller or a wheel, it may be 465659607e0Smrg compatible with the "IntelliMouse" protocol. 466659607e0Smrg 467659607e0Smrg 6. If the serial mouse has a roller or a wheel and it doesn't 468659607e0Smrg work with the "IntelliMouse" protocol, you have to use it as 469659607e0Smrg a regular 2- or 3-button serial mouse. 470659607e0Smrg 471b73be646Smrg If the "Auto" protocol is specified and the mouse seems to be 472b73be646Smrg working, but you find that not all features of the mouse are 473b73be646Smrg available, that is because the X server does not have native 474b73be646Smrg support for that model of mouse and is using a ``compatible'' 475b73be646Smrg protocol according to PnP information. 476659607e0Smrg 477b73be646Smrg If you suspect this is the case with your mouse, please enter a bug 478b73be646Smrg report at http://bugzilla.freedesktop.org, using the xorg product. 479659607e0Smrg 480659607e0Smrg 481b73be646Smrg USB mouse 482659607e0Smrg If your mouse is connected to the USB port, it can either be 483659607e0Smrg supported by the "Auto" protocol, or by an OS-specific protocol 484659607e0Smrg (see below), or as a generic Human Interface Device by the "usb" 485659607e0Smrg protocol. 486659607e0Smrg 487659607e0Smrg 488b73be646Smrg Standardized protocols 489659607e0Smrg Mouse device drivers in your OS may use the standardized 490659607e0Smrg protocol regardless of the model or the class of the mouse. For 491659607e0Smrg example, SVR4 systems may support "Xqueue" protocol. In FreeBSD 492659607e0Smrg the system mouse device /dev/sysmouse uses the "SysMouse" 493659607e0Smrg protocol. Please refer to the OS support section of this file 494659607e0Smrg for more information. 495659607e0Smrg 496659607e0Smrg 497659607e0Smrg 498b73be646Smrg 5. xorg.conf Options 499659607e0Smrg 500659607e0Smrg 501659607e0Smrg The old Pointer section has been replaced by a more general 502b73be646Smrg InputDevice section. The following is a minimal example of an 503659607e0Smrg InputDevice section for a mouse: 504659607e0Smrg 505659607e0Smrg 506659607e0Smrg Section "InputDevice" 507659607e0Smrg Identifier "Mouse 1" 508659607e0Smrg Driver "mouse" 509659607e0Smrg Option "Device" "/dev/mouse" 510659607e0Smrg Option "Protocol" "Auto" 511659607e0Smrg EndSection 512659607e0Smrg 513659607e0Smrg 514659607e0Smrg 515659607e0Smrg The mouse driver supports the following config file options: 516659607e0Smrg 517659607e0Smrg 518b73be646Smrg 5.1. Buttons 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 525b73be646Smrg 526659607e0Smrg Note that if you intend to assign Z axis movement to button events 527659607e0Smrg using the ZAxisMapping option below, you need to take account of those 528659607e0Smrg buttons into N too. 529659607e0Smrg 530659607e0Smrg 531659607e0Smrg Option "Buttons" "N" 532659607e0Smrg 533659607e0Smrg 534659607e0Smrg 535b73be646Smrg 5.2. ZAxisMapping 536659607e0Smrg 537659607e0Smrg This option maps the Z axis (wheel) motion to buttons or to another 538659607e0Smrg axis. 539b73be646Smrg 540b73be646Smrg 541659607e0Smrg Option "ZAxisMapping" "X" 542659607e0Smrg Option "ZAxisMapping" "Y" 543659607e0Smrg Option "ZAxisMapping" "N1 N2" 544659607e0Smrg Option "ZAxisMapping" "N1 N2 N3 N4" 545659607e0Smrg 546659607e0Smrg 547659607e0Smrg 548659607e0Smrg The first example will map the Z axis motion to the X axis motion. 549659607e0Smrg Whenever the user moves the wheel/roller, its movement is reported as 550b73be646Smrg the X axis motion. When the wheel/roller stays still, the real X axis 551b73be646Smrg motion is reported as is. The third example will map negative Z axis 552659607e0Smrg motion to the button N1 and positive Z axis motion to the button N2. 553659607e0Smrg If this option is used and the buttons N1 or N2 actually exists in the 554659607e0Smrg mouse, their actions won't be detected by the X server. 555659607e0Smrg 556659607e0Smrg The last example is useful for the mouse with two wheels of which the 557659607e0Smrg second wheel is used to generate horizontal scroll action, and the 558659607e0Smrg mouse which has a knob or a stick which can detect the horizontal 559659607e0Smrg force applied by the user. The motion of the second wheel will be 560659607e0Smrg mapped to the buttons N3, for the negative direction, and N4, for the 561659607e0Smrg positive direction. If the buttons N3 and N4 actually exist in this 562659607e0Smrg mouse, their actions won't be detected by the X server. 563659607e0Smrg 564659607e0Smrg NOTE #1: horizontal movement may not always be detected by the current 565b73be646Smrg version of the X11R7.5 X servers, because there appears to be no 566659607e0Smrg accepted standard as to how the horizontal direction is encoded in 567659607e0Smrg mouse data. 568659607e0Smrg 569659607e0Smrg NOTE #2: Some mice think left is the negative horizontal direction, 570659607e0Smrg others may think otherwise. Moreover, there are some mice whose two 571659607e0Smrg wheels are both mounted vertically, and the direction of the second 572659607e0Smrg vertical wheel does not match the first one's. 573659607e0Smrg 574659607e0Smrg You need to edit the xorg.conf file by hand to change this option if 575659607e0Smrg the default value of "4 5 6 7" does not match the needs of your 576659607e0Smrg configuration. 577659607e0Smrg 578659607e0Smrg 579b73be646Smrg 5.3. Resolution 580659607e0Smrg 581659607e0Smrg The following option will set the mouse device resolution to N counts 582659607e0Smrg per inch, if possible: 583659607e0Smrg 584659607e0Smrg 585659607e0Smrg Option "Resolution" "N" 586659607e0Smrg 587659607e0Smrg 588659607e0Smrg 589659607e0Smrg Not all mice and OSs can support this option. 590659607e0Smrg 591b73be646Smrg 5.4. Drag Lock Buttons 592659607e0Smrg 593659607e0Smrg Some people find it difficult or inconvenient to hold a trackball 594659607e0Smrg button down, while at the same time moving the ball. Drag lock buttons 595659607e0Smrg simulate the holding down of another button. When a drag lock button 596b73be646Smrg is first pressed, its target buttons is "locked" down until the second 597b73be646Smrg time the lock button is released, or until the button itself is 598659607e0Smrg pressed and released. This allows the starting of a drag, the movement 599659607e0Smrg of the trackball, and the ending of the drag to be separate 600659607e0Smrg operations. 601659607e0Smrg 602659607e0Smrg 603659607e0Smrg Option "DragLockButtons" "W X Y Z" 604659607e0Smrg 605659607e0Smrg 606b73be646Smrg 607659607e0Smrg This option consists of pairs of buttons. Each lock button number is 608659607e0Smrg followed by the number of the button that it locks. In the above, 609659607e0Smrg button number "W" is a drag lock button for button "X" and button 610659607e0Smrg number "Y" is a drag lock button for button "Z". 611659607e0Smrg 612659607e0Smrg It may not be desirable to use multiple buttons as drag locks. 613659607e0Smrg Instead, a "master drag lock button" may be defined. A master drag 614659607e0Smrg lock button acts as a "META" key. After a master lock button is 615659607e0Smrg released, the next button pressed is "locked" and not released until 616659607e0Smrg the second time the real button is released. 617659607e0Smrg 618659607e0Smrg 619659607e0Smrg Option "DragLockButtons" "M" 620659607e0Smrg 621659607e0Smrg 622659607e0Smrg 623659607e0Smrg Since button "M" is unpaired it is a master drag lock button. 624659607e0Smrg 625659607e0Smrg 626b73be646Smrg 6. Mouse Gallery 627659607e0Smrg 628659607e0Smrg 629659607e0Smrg In all of the examples below, it is assumed that /dev/mouse is a link 630659607e0Smrg to the appropriate serial port or PS/2 mouse device. 631659607e0Smrg 632659607e0Smrg 633b73be646Smrg 6.1. MS IntelliMouse (serial, PS/2) 634659607e0Smrg 635659607e0Smrg This mouse has a wheel which also acts as the button 2 (middle 636659607e0Smrg button). The wheel movement is recognized as the Z axis motion. This 637659607e0Smrg behavior is not compatible with XFree86 versions prior to 3.3.2, but 638659607e0Smrg is more consistent with the support for other mice with wheels or 639659607e0Smrg rollers. If you want to make the wheel behave like before, you can 640659607e0Smrg use the "ZAxisMapping" option as described above. 641659607e0Smrg 642659607e0Smrg IntelliMouse supports the PnP COM device specification. 643659607e0Smrg 644659607e0Smrg To use this mouse as a serial device: 645659607e0Smrg 646659607e0Smrg Option "Protocol" "Auto" 647659607e0Smrg 648659607e0Smrg 649659607e0Smrg or: 650659607e0Smrg 651659607e0Smrg Option "Protocol" "IntelliMouse" 652659607e0Smrg 653659607e0Smrg 654659607e0Smrg 655659607e0Smrg To use this mouse as the PS/2 device and the OS supports PS/2 mouse 656659607e0Smrg initialization: 657659607e0Smrg Option "Protocol" "IMPS/2" 658659607e0Smrg 659659607e0Smrg 660659607e0Smrg 661659607e0Smrg To use this mouse as the PS/2 device but the OS does not support PS/2 662659607e0Smrg mouse initialization (the wheel won't work in this case): 663659607e0Smrg 664659607e0Smrg Option "Protocol" "PS/2" 665659607e0Smrg 666659607e0Smrg 667659607e0Smrg 668659607e0Smrg To use this mouse as the PS/2 device and the OS supports automatic 669659607e0Smrg PS/2 mouse detection: 670659607e0Smrg 671659607e0Smrg Option "Protocol" "Auto" 672659607e0Smrg 673659607e0Smrg 674659607e0Smrg 675b73be646Smrg 6.2. MS IntelliMouse Explorer (PS/2, USB) 676659607e0Smrg 677659607e0Smrg This mouse has a wheel which also acts as the button 2 (middle 678659607e0Smrg button). There are two side buttons; they are recognized as the 679659607e0Smrg buttons 4 and 5. The wheel movement is recognized as the Z axis 680659607e0Smrg motion. 681659607e0Smrg 682659607e0Smrg To use this mouse as the PS/2 device and the OS supports PS/2 mouse 683659607e0Smrg initialization: 684659607e0Smrg 685659607e0Smrg Option "Protocol" "ExplorerPS/2" 686659607e0Smrg 687659607e0Smrg 688659607e0Smrg 689659607e0Smrg To use this mouse as the PS/2 device but the OS does not support PS/2 690659607e0Smrg mouse initialization (the wheel and the side buttons won't work in 691659607e0Smrg this case): 692659607e0Smrg 693659607e0Smrg Option "Protocol" "PS/2" 694659607e0Smrg 695659607e0Smrg 696659607e0Smrg 697659607e0Smrg To use this mouse as the PS/2 device and the OS supports automatic 698659607e0Smrg PS/2 mouse detection: 699659607e0Smrg 700659607e0Smrg Option "Protocol" "Auto" 701659607e0Smrg 702659607e0Smrg 703659607e0Smrg 704659607e0Smrg To use this mouse as the USB device and the OS supports the generic 705659607e0Smrg HID protocol: 706659607e0Smrg 707659607e0Smrg Option "Protocol" "usb" 708659607e0Smrg 709659607e0Smrg 710659607e0Smrg 711659607e0Smrg To use this mouse as the USB device and the OS supports automatic 712659607e0Smrg mouse detection: 713659607e0Smrg 714659607e0Smrg Option "Protocol" "Auto" 715659607e0Smrg 716659607e0Smrg 717659607e0Smrg 718b73be646Smrg 6.3. Kensington Thinking Mouse and Kensington Expert Mouse (serial, 719b73be646Smrg PS/2) 720659607e0Smrg 721659607e0Smrg These mice have four buttons. The Kensington Expert Mouse is really a 722b73be646Smrg trackball. Both Thinking mice support the PnP COM device 723659607e0Smrg specification. 724659607e0Smrg 725659607e0Smrg To use this mouse as a serial device: 726659607e0Smrg 727659607e0Smrg Option "Protocol" "Auto" 728659607e0Smrg 729659607e0Smrg 730659607e0Smrg or: 731659607e0Smrg 732659607e0Smrg Option "Protocol" "ThinkingMouse" 733659607e0Smrg 734659607e0Smrg 735b73be646Smrg 736659607e0Smrg To use this mouse as the PS/2 device and the OS supports PS/2 mouse 737659607e0Smrg initialization: 738659607e0Smrg 739659607e0Smrg Option "Protocol" "ThinkingMousePS/2" 740659607e0Smrg 741659607e0Smrg 742659607e0Smrg 743659607e0Smrg To use this mouse as the PS/2 device but the OS does not support PS/2 744659607e0Smrg mouse initialization (the third and the fourth buttons act as though 745659607e0Smrg they were the first and the second buttons): 746659607e0Smrg 747659607e0Smrg Option "Protocol" "PS/2" 748659607e0Smrg 749659607e0Smrg 750659607e0Smrg 751659607e0Smrg To use this mouse as the PS/2 device and the OS supports automatic 752659607e0Smrg PS/2 mouse detection: 753659607e0Smrg 754659607e0Smrg Option "Protocol" "Auto" 755659607e0Smrg 756659607e0Smrg 757659607e0Smrg 758b73be646Smrg 6.4. Genius NetScroll (PS/2) 759659607e0Smrg 760b73be646Smrg This mouse has four buttons and a roller. The roller movement is 761659607e0Smrg recognized as the Z axis motion. 762659607e0Smrg 763659607e0Smrg To use this mouse as the PS/2 device and the OS supports PS/2 mouse 764659607e0Smrg initialization: 765659607e0Smrg 766659607e0Smrg Option "Protocol" "NetScrollPS/2" 767659607e0Smrg 768659607e0Smrg 769659607e0Smrg 770659607e0Smrg To use this mouse as the PS/2 device but the OS does not support PS/2 771659607e0Smrg mouse initialization (the roller and the fourth button won't work): 772659607e0Smrg 773659607e0Smrg Option "Protocol" "PS/2" 774659607e0Smrg 775659607e0Smrg 776659607e0Smrg 777659607e0Smrg To use this mouse as the PS/2 device and the OS supports automatic 778659607e0Smrg PS/2 mouse detection: 779659607e0Smrg 780659607e0Smrg Option "Protocol" "Auto" 781659607e0Smrg 782659607e0Smrg 783b73be646Smrg 6.5. Genius NetMouse and NetMouse Pro (serial, PS/2) 784659607e0Smrg 785659607e0Smrg These mice have a "magic button" which is used like a wheel or a 786b73be646Smrg roller. The "magic button" action is recognized as the Z axis motion. 787659607e0Smrg NetMouse Pro is identical to NetMouse except that it has the third 788659607e0Smrg button on the left hand side. 789659607e0Smrg 790659607e0Smrg NetMouse and NetMouse Pro support the PnP COM device specification. 791659607e0Smrg When used as a serial mouse, they are compatible with MS IntelliMouse. 792659607e0Smrg 793659607e0Smrg To use these mice as a serial device: 794659607e0Smrg 795659607e0Smrg Option "Protocol" "Auto" 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 826b73be646Smrg 6.6. Genius NetScroll Optical (PS/2, USB) 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 Option "Protocol" "Auto" 849659607e0Smrg 850659607e0Smrg 851659607e0Smrg 852659607e0Smrg To use this mouse as the USB device and the OS supports the generic 853659607e0Smrg HID protocol: 854659607e0Smrg 855659607e0Smrg Option "Protocol" "usb" 856659607e0Smrg 857659607e0Smrg 858659607e0Smrg 859659607e0Smrg To use this mouse as the USB device and the OS supports automatic 860659607e0Smrg mouse detection: 861659607e0Smrg 862659607e0Smrg Option "Protocol" "Auto" 863659607e0Smrg 864659607e0Smrg 865659607e0Smrg 866b73be646Smrg 6.7. ALPS GlidePoint (serial, PS/2) 867659607e0Smrg 868659607e0Smrg The serial version of this pad device has been supported since XFree86 869b73be646Smrg 3.2. `Tapping' action is interpreted as the fourth button press. 870659607e0Smrg (IMHO, the fourth button of GlidePoint should always be mapped to the 871659607e0Smrg first button in order to make this pad behave like the other pad 872659607e0Smrg products.) 873659607e0Smrg 874659607e0Smrg To use this pad as a serial device: 875659607e0Smrg 876659607e0Smrg Option "Protocol" "GlidePoint" 877659607e0Smrg 878659607e0Smrg 879659607e0Smrg 880659607e0Smrg To use this mouse as the PS/2 device and the OS supports PS/2 mouse 881659607e0Smrg initialization: 882659607e0Smrg 883659607e0Smrg Option "Protocol" "GlidePointPS/2" 884659607e0Smrg 885659607e0Smrg 886659607e0Smrg 887659607e0Smrg To use this mouse as the PS/2 device but the OS does not support PS/2 888659607e0Smrg mouse initialization: 889659607e0Smrg 890659607e0Smrg Option "Protocol" "PS/2" 891659607e0Smrg 892659607e0Smrg 893659607e0Smrg 894659607e0Smrg To use this mouse as the PS/2 device and the OS supports automatic 895659607e0Smrg PS/2 mouse detection: 896659607e0Smrg 897659607e0Smrg Option "Protocol" "Auto" 898659607e0Smrg 899659607e0Smrg 900659607e0Smrg 901b73be646Smrg 6.8. ASCII MieMouse (serial, PS/2) 902659607e0Smrg 903b73be646Smrg This mouse appears to be OEM from Genius. Although its shape is quite 904b73be646Smrg different, it works like Genius NetMouse Pro. This mouse has a "knob" 905b73be646Smrg which is used like a wheel or a roller. The "knob" action is 906659607e0Smrg recognized as the Z axis motion. 907659607e0Smrg 908b73be646Smrg MieMouse supports the PnP COM device specification. When used as a 909659607e0Smrg serial mouse, it is compatible with MS IntelliMouse. 910659607e0Smrg 911b73be646Smrg 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 Option "Protocol" "NetMousePS/2" 927659607e0Smrg 928659607e0Smrg 929659607e0Smrg 930659607e0Smrg To use this mouse as the PS/2 device but the OS does not support PS/2 931659607e0Smrg mouse initialization (the knob and the third button won't work): 932659607e0Smrg 933659607e0Smrg Option "Protocol" "PS/2" 934659607e0Smrg 935659607e0Smrg 936659607e0Smrg 937659607e0Smrg To use this mouse as the PS/2 device and the OS supports automatic 938659607e0Smrg PS/2 mouse detection: 939659607e0Smrg 940659607e0Smrg Option "Protocol" "Auto" 941659607e0Smrg 942659607e0Smrg 943659607e0Smrg 944b73be646Smrg 6.9. Logitech MouseMan+ and FirstMouse+ (serial, PS/2) 945659607e0Smrg 946659607e0Smrg MouseMan+ has two buttons on top, one side button and a roller. 947b73be646Smrg FirstMouse+ has two buttons and a roller. The roller movement is 948b73be646Smrg recognized as the Z axis motion. The roller also acts as the third 949b73be646Smrg button. The side button is recognized as the fourth button. 950659607e0Smrg 951659607e0Smrg MouseMan+ and FirstMouse+ support the PnP COM device specification. 952659607e0Smrg They have MS IntelliMouse compatible mode when used as a serial mouse. 953659607e0Smrg 954659607e0Smrg To use these mice as a serial device: 955659607e0Smrg 956659607e0Smrg Option "Protocol" "Auto" 957659607e0Smrg 958659607e0Smrg 959659607e0Smrg or: 960659607e0Smrg 961659607e0Smrg Option "Protocol" "IntelliMouse" 962659607e0Smrg 963659607e0Smrg 964659607e0Smrg 965659607e0Smrg To use this mouse as the PS/2 device and the OS supports PS/2 mouse 966659607e0Smrg initialization: 967659607e0Smrg 968659607e0Smrg Option "Protocol" "MouseManPlusPS/2" 969659607e0Smrg 970659607e0Smrg 971659607e0Smrg 972659607e0Smrg To use this mouse as the PS/2 device but the OS does not support PS/2 973659607e0Smrg mouse initialization (the wheel and the fourth button won't work): 974659607e0Smrg 975659607e0Smrg Option "Protocol" "PS/2" 976659607e0Smrg 977659607e0Smrg To use this mouse as the PS/2 device and the OS supports automatic 978659607e0Smrg PS/2 mouse detection: 979659607e0Smrg 980659607e0Smrg Option "Protocol" "Auto" 981659607e0Smrg 982659607e0Smrg 983659607e0Smrg 984b73be646Smrg 6.10. IBM ScrollPoint (PS/2) 985659607e0Smrg 986659607e0Smrg ScrollPoint has a "stick" in between the two buttons. This "stick" is 987659607e0Smrg the same as the stick-shaped pointing device often found on notebook 988659607e0Smrg computers, on which you move the mouse cursor by pushing the stick. 989659607e0Smrg The stick movement is recognized as the Z axis motion. You can push 990b73be646Smrg the stick to right and left, as well as forward and backward. Give 991659607e0Smrg four numbers to ZAxisMapping option to map movement along all these 992659607e0Smrg four directions to button actions. 993659607e0Smrg 994659607e0Smrg This mouse is compatible with Logitech MouseMan+. To use this mouse 995659607e0Smrg as the PS/2 device and the OS supports PS/2 mouse initialization: 996659607e0Smrg 997659607e0Smrg Option "Protocol" "MouseManPlusPS/2" 998659607e0Smrg 999659607e0Smrg 1000659607e0Smrg 1001659607e0Smrg To use this mouse as the PS/2 device but the OS does not support PS/2 1002659607e0Smrg mouse initialization (the stick won't work): 1003659607e0Smrg 1004659607e0Smrg Option "Protocol" "PS/2" 1005659607e0Smrg 1006659607e0Smrg 1007659607e0Smrg 1008659607e0Smrg To use this mouse as the PS/2 device and the OS supports automatic 1009659607e0Smrg PS/2 mouse detection: 1010659607e0Smrg 1011659607e0Smrg Option "Protocol" "Auto" 1012659607e0Smrg 1013659607e0Smrg 1014659607e0Smrg 1015b73be646Smrg 6.11. 8D ScrollMouse (serial, PS/2) 1016659607e0Smrg 1017659607e0Smrg ScrollMouse, also known as GyroMouse, has a "stick" similar to IBM 1018659607e0Smrg ScrollPoint. The stick movement is recognized as the Z axis motion. 1019659607e0Smrg You can push the stick to right and left, as well as forward and 1020b73be646Smrg backward. Give four numbers to ZAxisMapping option to map movement 1021659607e0Smrg along all these four directions to button actions. 1022659607e0Smrg 1023b73be646Smrg ScrollMouse supports the PnP COM device specification. When used as a 1024659607e0Smrg serial mouse, it is compatible with MS IntelliMouse. 1025659607e0Smrg 1026659607e0Smrg To use this mouse as a serial device: 1027659607e0Smrg 1028659607e0Smrg Option "Protocol" "Auto" 1029659607e0Smrg 1030659607e0Smrg 1031659607e0Smrg or: 1032659607e0Smrg 1033659607e0Smrg Option "Protocol" "IntelliMouse" 1034659607e0Smrg 1035659607e0Smrg 1036659607e0Smrg 1037659607e0Smrg To use this mouse as the PS/2 device and the OS supports PS/2 mouse 1038659607e0Smrg initialization: 1039659607e0Smrg 1040b73be646Smrg 1041659607e0Smrg Option "Protocol" "IMPS/2" 1042659607e0Smrg 1043659607e0Smrg 1044659607e0Smrg 1045659607e0Smrg To use this mouse as the PS/2 device but the OS does not support PS/2 1046659607e0Smrg mouse initialization (the stick won't work): 1047659607e0Smrg 1048659607e0Smrg Option "Protocol" "PS/2" 1049659607e0Smrg 1050659607e0Smrg 1051659607e0Smrg 1052659607e0Smrg To use this mouse as the PS/2 device and the OS supports automatic 1053659607e0Smrg PS/2 mouse detection: 1054b73be646Smrg 1055659607e0Smrg Option "Protocol" "Auto" 1056659607e0Smrg 1057659607e0Smrg 1058659607e0Smrg 1059b73be646Smrg 6.12. A4 Tech 4D mice (serial, PS/2, USB) 1060659607e0Smrg 1061659607e0Smrg A4 Tech produces quit a number of mice with one or two wheels. Their 1062659607e0Smrg mice may have 2, 3, or 4 buttons. The wheels movement is recognized 1063659607e0Smrg as the Z axis motion. Give four numbers to ZAxisMapping option to map 1064659607e0Smrg movement of both wheels to button actions. 1065659607e0Smrg 1066b73be646Smrg 4D mice support the PnP COM device specification. When used as a 1067659607e0Smrg serial mouse, it is compatible with MS IntelliMouse. 1068659607e0Smrg 1069659607e0Smrg To use this mouse as a serial device: 1070659607e0Smrg 1071659607e0Smrg Option "Protocol" "Auto" 1072659607e0Smrg 1073659607e0Smrg 1074659607e0Smrg or: 1075659607e0Smrg 1076659607e0Smrg Option "Protocol" "IntelliMouse" 1077659607e0Smrg 1078659607e0Smrg 1079659607e0Smrg 1080659607e0Smrg To use this mouse as the PS/2 device and the OS supports PS/2 mouse 1081659607e0Smrg initialization: 1082659607e0Smrg 1083659607e0Smrg Option "Protocol" "IMPS/2" 1084659607e0Smrg 1085659607e0Smrg 1086659607e0Smrg 1087659607e0Smrg To use this mouse as the PS/2 device but the OS does not support PS/2 1088659607e0Smrg mouse initialization (the wheels won't work): 1089659607e0Smrg 1090659607e0Smrg Option "Protocol" "PS/2" 1091659607e0Smrg 1092659607e0Smrg 1093659607e0Smrg 1094659607e0Smrg To use this mouse as the PS/2 device and the OS supports automatic 1095659607e0Smrg PS/2 mouse detection: 1096659607e0Smrg 1097659607e0Smrg Option "Protocol" "Auto" 1098659607e0Smrg 1099659607e0Smrg 1100659607e0Smrg 1101659607e0Smrg To use this mouse as the USB device and the OS supports the generic 1102659607e0Smrg HID protocol: 1103659607e0Smrg 1104659607e0Smrg Option "Protocol" "usb" 1105659607e0Smrg 1106659607e0Smrg To use this mouse as the USB device and the OS supports automatic 1107659607e0Smrg mouse detection: 1108659607e0Smrg 1109659607e0Smrg Option "Protocol" "Auto" 1110659607e0Smrg 1111659607e0Smrg 1112659607e0Smrg 1113b73be646Smrg 7. Configuration Examples 1114659607e0Smrg 1115659607e0Smrg 1116659607e0Smrg This section shows some example InputDevice section for popular mice. 1117659607e0Smrg All the examples assume that the mouse is connected to the PS/2 mouse 1118659607e0Smrg port, and the OS supports the PS/2 mouse initialization. It is also 1119659607e0Smrg assumed that /dev/mouse is a link to the PS/2 mouse port. 1120659607e0Smrg 1121b73be646Smrg Logitech MouseMan+ has 4 buttons and a wheel. The following example 1122659607e0Smrg makes the wheel movement available as the button 5 and 6. 1123659607e0Smrg 1124659607e0Smrg 1125659607e0Smrg Section "InputDevice" 1126659607e0Smrg Identifier "MouseMan+" 1127659607e0Smrg Driver "mouse" 1128659607e0Smrg Option "Device" "/dev/mouse" 1129659607e0Smrg Option "Protocol" "MouseManPlusPS/2" 1130659607e0Smrg Option "Buttons" "6" 1131659607e0Smrg Option "ZAxisMapping" "5 6" 1132659607e0Smrg EndSection 1133659607e0Smrg 1134659607e0Smrg 1135659607e0Smrg 1136659607e0Smrg You can change button number assignment using the xmodmap command 1137659607e0Smrg AFTER you start the X server with the above configuration. You may 1138659607e0Smrg not like to use the wheel as the button 2 and rather want the side 1139b73be646Smrg button (button 4) act like the button 2. You may also want to map the 1140659607e0Smrg wheel movement to the button 4 and 5. This can be done by the 1141659607e0Smrg following command: 1142659607e0Smrg 1143659607e0Smrg 1144659607e0Smrg xmodmap -e "pointer = 1 6 3 2 4 5" 1145659607e0Smrg 1146659607e0Smrg 1147659607e0Smrg 1148659607e0Smrg After this command is run, the correspondence between the buttons and 1149659607e0Smrg button numbers will be as shown in the following table. 1150659607e0Smrg 1151659607e0Smrg 1152659607e0Smrg Physical Buttons Reported as: 1153659607e0Smrg ------------------------------------ 1154659607e0Smrg 1 Left Button Button 1 1155659607e0Smrg 2 Wheel Button Button 6 1156659607e0Smrg 3 Right Button Button 3 1157659607e0Smrg 4 Side Button Button 2 1158659607e0Smrg 5 Wheel Negative Move Button 4 1159659607e0Smrg 6 Wheel Positive Move Button 5 1160659607e0Smrg 1161b73be646Smrg 1162b73be646Smrg 1163659607e0Smrg Starting in the Xorg 6.9 release, you can also achieve this in your 1164b73be646Smrg configuration file by adding this to the "InputDevice" section in 1165659607e0Smrg xorg.conf: 1166659607e0Smrg 1167b73be646Smrg Option "ButtonMapping" "1 6 3 2 4 5" 1168b73be646Smrg 1169b73be646Smrg 1170659607e0Smrg 1171659607e0Smrg For the MS IntelliMouse Explorer which as a wheel and 5 buttons, you 1172659607e0Smrg may have the following InputDevice section. 1173659607e0Smrg 1174659607e0Smrg 1175659607e0Smrg Section "InputDevice" 1176659607e0Smrg Identifier "IntelliMouse Explorer" 1177659607e0Smrg Driver "mouse" 1178659607e0Smrg Option "Device" "/dev/mouse" 1179659607e0Smrg Option "Protocol" "ExplorerPS/2" 1180659607e0Smrg Option "Buttons" "7" 1181659607e0Smrg Option "ZAxisMapping" "6 7" 1182659607e0Smrg EndSection 1183659607e0Smrg 1184659607e0Smrg 1185659607e0Smrg 1186659607e0Smrg The IntelliMouse Explorer has 5 buttons, thus, you should give "7" to 1187659607e0Smrg the Buttons option if you want to map the wheel movement to buttons (6 1188659607e0Smrg and 7). With this configuration, the correspondence between the 1189659607e0Smrg buttons and button numbers will be as follows: 1190659607e0Smrg 1191659607e0Smrg 1192659607e0Smrg Physical Buttons Reported as: 1193659607e0Smrg ------------------------------------ 1194659607e0Smrg 1 Left Button Button 1 1195659607e0Smrg 2 Wheel Button Button 2 1196659607e0Smrg 3 Right Button Button 3 1197659607e0Smrg 4 Side Button 1 Button 4 1198659607e0Smrg 5 Side Button 2 Button 5 1199659607e0Smrg 6 Wheel Negative Move Button 6 1200659607e0Smrg 7 Wheel Positive Move Button 7 1201659607e0Smrg 1202659607e0Smrg 1203659607e0Smrg 1204659607e0Smrg You can change button number assignment using xmodmap AFTER you 1205659607e0Smrg started the X server with the above configuration. 1206659607e0Smrg 1207659607e0Smrg 1208659607e0Smrg xmodmap -e "pointer = 1 2 3 4 7 5 6" 1209659607e0Smrg 1210659607e0Smrg 1211659607e0Smrg 1212659607e0Smrg The above command will moves the side button 2 to the button 7 and 1213b73be646Smrg make the wheel movement reported as the button 5 and 6. See the table 1214659607e0Smrg below. 1215659607e0Smrg 1216659607e0Smrg 1217659607e0Smrg Physical Buttons Reported as: 1218659607e0Smrg ------------------------------------ 1219659607e0Smrg 1 Left Button Button 1 1220659607e0Smrg 2 Wheel Button Button 2 1221659607e0Smrg 3 Right Button Button 3 1222659607e0Smrg 4 Side Button 1 Button 4 1223659607e0Smrg 5 Side Button 2 Button 7 1224659607e0Smrg 6 Wheel Negative Move Button 5 1225659607e0Smrg 7 Wheel Positive Move Button 6 1226659607e0Smrg 1227659607e0Smrg 1228659607e0Smrg 1229659607e0Smrg For the A4 Tech WinEasy mouse which has two wheels and 3 buttons, you 1230659607e0Smrg may have the following InputDevice section. 1231659607e0Smrg 1232659607e0Smrg 1233b73be646Smrg 1234659607e0Smrg Section "InputDevice" 1235659607e0Smrg Identifier "WinEasy" 1236659607e0Smrg Driver "mouse" 1237659607e0Smrg Option "Device" "/dev/mouse" 1238659607e0Smrg Option "Protocol" "IMPS/2" 1239659607e0Smrg Option "Buttons" "7" 1240659607e0Smrg Option "ZAxisMapping" "4 5 6 7" 1241659607e0Smrg EndSection 1242659607e0Smrg 1243659607e0Smrg 1244659607e0Smrg 1245b73be646Smrg The movement of the first wheel is mapped to the button 4 and 5. The 1246659607e0Smrg second wheel's movement will be reported as the buttons 6 and 7. 1247659607e0Smrg 1248659607e0Smrg The Kensington Expert mouse is really a trackball. It has 4 buttons 1249659607e0Smrg arranged in a rectangle around the ball. 1250659607e0Smrg 1251b73be646Smrg 1252659607e0Smrg Section "InputDevice" 1253659607e0Smrg Identifier "DLB" 1254659607e0Smrg Driver "mouse" 1255659607e0Smrg Option "Protocol" "ThinkingMousePS/2" 1256659607e0Smrg Option "Buttons" "3" 1257659607e0Smrg Option "Emulate3Buttons" 1258659607e0Smrg Option "Device" "/dev/mouse" 1259659607e0Smrg Option "DragLockButtons" "2 1 4 3" 1260659607e0Smrg EndSection 1261659607e0Smrg 1262659607e0Smrg 1263659607e0Smrg In this example, button 2 is a drag lock button for button number 1, 1264659607e0Smrg and button 4 is a drag lock button for button 3. Since button 2 is 1265659607e0Smrg above button 1 and button 4 is above button 3 in the layout of this 1266659607e0Smrg trackball, this is reasonable. 1267659607e0Smrg 1268659607e0Smrg Because button 2 is being used as a drag lock, it can not be used as 1269659607e0Smrg an ordinary button. However, it can be activated by using the 1270659607e0Smrg "Emulate3Buttons" feature. However, some people my be unable to press 1271659607e0Smrg two buttons at the same time. They may prefer the following 1272659607e0Smrg InputDevice section which defines button 4 as a master drag lock 1273659607e0Smrg button, and leaves button 2 free for ordinary use. 1274659607e0Smrg 1275659607e0Smrg Section "InputDevice" 1276659607e0Smrg Identifier "MasterDLB" 1277659607e0Smrg Driver "mouse" 1278659607e0Smrg Option "Protocol" "ThinkingMousePS/2" 1279659607e0Smrg Option "Buttons" "3" 1280659607e0Smrg Option "Device" "/dev/mouse" 1281659607e0Smrg Option "DragLockButtons" "4" 1282659607e0Smrg EndSection 1283659607e0Smrg 1284659607e0Smrg 1285659607e0Smrg 1286