This manual page describes what pointer types (mice, tablets, etc) are currently managed
The information below is extracted from the texinfo file, which is the preferred source of
This manpage describes the various pointer types currently available in gpm. If you look
at the source code, you'll find that pointer-specific code is confined to `mice.c' (while
it used to only include mouse decoders, gpm now supports tablets and touchscreens as
The mouse type is specified on command line with the `-t' option. The option takes an
argument, which represents the name of a mouse type. Each type can be associated to dif-
ferent names. For old mouse types, one name is the old selection-compatible name, and
another is the XFree name. After version 1.18.1 of gpm, the number of synonyms was made
arbitrary and the actual name being used is made available to the function responsible for
mouse initialization. Therefore it is possible for a mouse decoder to behave slightly dif-
ferently according to the name being used for the device (if this feature was already
present, we wouldn't have for example ms+ and ms+lr as different mouse types).
The initialization procedure of each mouse type can also receive extra option, by means of
the -o command line option. Since interpretation of the option string is decoder-specific,
the allowed options are described in association to each mouse type. When no description
of option strings is provided, that means the option string is unused for that mouse type
and specifying one generates an error. When the document refer to ``standard serial
options'' it means that one of -o dtr, -o rts, -o both can be specified to toggle the con-
trol lines of the serial port.
The following mouse type are corrently recognized:
The Microsoft protocol, without any extension. It only reports two buttons. If your
device has three, you should either try running the mman decoder or msc. In the
latter case, you need to tell the mouse to talk msc protocol by toggling the DTR
and RTS lines (with one of -o drt, -o rts or -o both) or invoking `gpm -t msc'
while keeping the middle button pressed. Very annoying, indeed. This mouse decoder
accepts standard serial options, although they should not be needed.
ms This is the original Microsoft protocol, with a middle-button extension. Some old
two-button devices send some spurious packets which can be misunderstood as middle-
button events. If this is your case, use the `bare' mouse type. Some new two-but-
ton devices are ``plug and play'', and they don't play fair at all; in this case
try -t pnp. Many (most) three-button devices that use the microsoft protocol fail
to report some middle-button events during mouse motion. Since the protocol does
not distinguish between the middle button going up and the middle button going down
it would be liable to get out of step, so this decoder declares the middle button
to be up whenever the mouse moves. This prevents dragging with the middle button,
so you should probably use `-t ms+lr' instead of this decoder, especially if you
want to use X. This mouse decoder accepts standard serial options, although they
should not be needed.
ms+ This is the same as `-t ms' except that the middle button is not reset during mouse
motion. So you can drag with the middle button. However, if your mouse exhibits the
usual buggy behaviour the decoder is likely to get out of step with reality, think-
ing the middle button is up when it's down and vice versa. You should probably use
`-t ms+lr' instead of this decoder. This mouse decoder accepts standard serial
options, although they should not be needed.
ms+lr This is the same as `-t ms+' except that there is an additional facility to reset
the state of the middle button by pressing the other two buttons together. Do this
when the decoder gets into a confused state where it thinks the middle button is up
when it's down and vice versa. (If you get sick of having to do this, please don't
blame gpm; blame your buggy mouse! Note that most three-button mice that do the mi-
crosoft protocol can be made to do the MouseSystems protocol instead. The ``3 But-
ton Serial Mouse mini-HOWTO'' has information about this.) This mouse decoder
accepts standard serial options, although they should not be needed.
This is the standard protocol for three-button serial devices. Some of such
devices only enter MouseSystem mode if the RTS, DTR or both lines are pushed low.
Thus, you may try -t msc associated with -o rts, -o dtr or -o both.
The protocol used by the new Logitech devices with three buttons. It is backward
compatible with the Microsoft protocol, so if your mouse has three buttons and
works with -t ms or similar decoders you may try -t mman instead to use the middle
button. This mouse decoder accepts standard serial options, although they should
not be needed.
sun The protocol used on Sparc computers and a few others. This mouse decoder accepts
standard serial options, although they should not be needed.
Title says it all. This mouse decoder accepts standard serial options, although
they should not be needed.
This is the protocol used by old serial Logitech mice.
Some bus devices use this protocol, including those produced by Logitech.
The protocol used by most busmice.
ncr This `type' is able to decode the pointing pen found on some laptops (the NCR 3125
wacom The protocol used by the Wacom tablet. Since version 1.18.1 we have a new Wacom
decoder, as the old one was not working with new tablets. This decoder was tested
with Ultrapad, PenPartner, and Graphire tablets. Options: -o relative (default)
for relative mode, -o absolute for absolute mode.
The This mouse decoder accepts standard serial options, although they should not be
logim Used to turn Logitech mice into Mouse-Systems-Compatible. Obviously, it only works
with some of the Logitech mice.
pnp This decoder works with the new mice produces by our friend Bill, and maybe with
the old ones as well. The Pnp protocol is hardwired at 1200 baud and is upset by
normal initialization, so this is a -t bare decoder with no initialization at all.
This mouse decoder accepts standard serial options, although they should not be
ms3 A decoder for the new serial IntelliMouse devices, the ones with three buttons and
a protocol incompatible with older ones. The wheel is currently unused.
imps2 ``IntelliMouse'' on the ps/2 port. For serial ``IntelliMouse'' devices, use the
Decodes the ``Genius NetMouse'' type of devices on the ps/2 port. For serial
``Netmouse'' devices, use the ``ms3'' decoder.
cal A decoder of the ``Calcomp UltraSlate device.
calr Same as above, but in relative mode.
twid Support for the twiddler keyboard. As of gpm-1.14 this decoder includes a char gen-
erator for the text console, but doesn't yet support X keycodes. If used with `-R',
`gpm' will anyway repeat mouse events to the X server. More information about twid-
dler support can be found in `README.twiddler', in the gpm distribution.
A decoder for the Synaptics TouchPad connected to the serial port. This mouse
decoder accepts standard serial options, although they should not be needed.
Same as above, but for the devices attached to the ps2 port.
brw A decoder for the Fellowes Browser, a device with 4 buttons and a wheel. This
mouse decoder accepts standard serial options, although they should not be needed.
This mouse type uses the joystick device to generate mouse events. It is only
available if the header `linux/joystick.h' is found at compile time. The header
(and the device as well) has been introduced only during 2.1 development, and is
not present in version 2.0 of the kernel.
summa This is a decode for the Symmagraphics of Genius tablet, run in absolute mode. A
repeater is associated to this decoder, so it can -R summa can be used to generate
X events even for other absolute-pointing devices, like touchscreens. To use the
repeated data from X, you need a modified xf86Summa.o module.
mtouch A decoder for the MicroTouch touch screen. Please refer to the file `README.micro-
touch' in the source tree of gpm for further information. In the near future, any-
ways, I plan to fold back to this documentation the content of that file.
gunze A decoder for the gunze touch screen. Please refer to the file `README.gunze' in
the source tree of gpm for further information. In the near future, anyways, I plan
to fold back to this documentation the content of that file. The decoder accepts
the following options: smooth=, debounce=. An higher smoothness results in slower
motion as well; a smaller smoothness gives faster motion but, obviously, less
smooth. The default smoothness is 9. The debounce time is express in milliseconds
and is the minimum duration of an up-down event to be taken as a tap. Smaller
bounces are ignored.
acecad The Acecad tablet in absolute mode.
Genius WizardPad tablet
/dev/mouse The default mouse device
mice.c The source file for pointer decoders
gpm(8) The General Purpose Mouse server
The info file about `gpm', which gives more complete information and explains how to write
a gpm client.
4th Berkeley Distribution July 2000 GPM-TYPES(7)