GPM-TYPES(7)
π GPM-TYPES π
okay bestie, this is the miscellaneous information manual page alllll about gpm-types β aka the pointer types (mice, tablets, etc.) that gpm can babysit for you. heads up tho: everything below got extracted from the texinfo file, which is the preferred source of information. so if you want the β¨canonβ¨ version, go there. π«Ά
β¨ DESCRIPTION β¨
This manpage is the full rundown of every pointer type gpm currently has in its roster. And ngl, if you go peeking at the source code, you'll see that all the pointer-specific code is confined to mice.c β and the way that it used to only include mouse decoders, but now gpm supports tablets and touchscreens too?? we love growth π
So, the mouse type gets specified on the command line with the -t option. That option takes an argument, and the argument is the name of a mouse type. Each type can be associated to different names. For the old mouse types, one name is the old selection-compatible name and another one 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. Which means β and this is lowkey iconic β a mouse decoder can behave slightly differently depending on which name is being used for the device. (fr fr, if this feature had already been present, we wouldn't have, like, ms+ and ms+lr as two different mouse types. iykyk.)
The initialization procedure of each mouse type can also receive an extra option, by means of the -o command line option. Since interpretation of that option string is decoder-specific, the allowed options are described right next to each mouse type. And if no description of option strings is provided for a type? That means the option string is unused for that mouse type, and specifying one generates an error. π
And when this doc says "standard serial options", it means one of -o dtr, -o rts, -o both can be specified to toggle the control lines of the serial port. π
The following mouse types are currently recognized, bestie, and yes we're going through ALL of them:
- bare Microsoft β The Microsoft protocol, without any extension whatsoever. It only reports two buttons. If your device has three, you should either try running the
mmandecoder ormsc. In the latter case, you need to tell the mouse to talkmscprotocol by toggling the DTR and RTS lines (with one of-o drt,-o rtsor-o both) or invokinggpm -t mscwhile 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 that's your situation, use the
baremouse type. Some new two-button devices are "plug and play" and they don't play fair at all; in that case try-t pnp. Many (most) three-button devices that use the microsoft protocol fail to report some middle-button events during mouse motion. And 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. That prevents dragging with the middle button, so you should probably use-t ms+lrinstead 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 msexcept 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, thinking the middle button is up when it's down and vice versa. You should probably use-t ms+lrinstead 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's 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. (And if you get sick of having to do this, please don't blamegpm; blame your buggy mouse! Note that most three-button mice that do the microsoft protocol can be made to do the MouseSystems protocol instead β the "3 Button Serial Mouse mini-HOWTO" has information about this.) This mouse decoder accepts standard serial options, although they should not be needed. - msc MouseSystems β 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 mscassociated with-o rts,-o dtror-o both. - mman Mouseman β 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 msor similar decoders, you may try-t mmaninstead 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.
- mm MMSeries β Title says it all. This mouse decoder accepts standard serial options, although they should not be needed.
- logi Logitech β This is the protocol used by old serial Logitech mice.
- bm BusMouse β Some bus devices use this protocol, including those produced by Logitech.
- ps2 PS/2 β The protocol used by most busmice.
- ncr β This
typeis able to decode the pointing pen found on some laptops (the NCR 3125 pen). - wacom β The protocol used by the Wacom tablet. Since version 1.18.1 we have a new Wacom decoder, because 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 absolutefor absolute mode. - genitizer β The This mouse decoder accepts standard serial options, although they should not be needed. (no bestie i don't know what happened to that sentence either, i'm just reporting what it says π)
- 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 baredecoder with no initialization at all. This mouse decoder accepts standard serial options, although they should not be needed. - 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. This type can also be used for a generic 2-button ps/2 mouse too, since it will auto-detect the type. (auto-detect?? we love a self-aware queen π)
- netmouse β Decodes the "Genius NetMouse" type of devices on the ps/2 port. For serial "Netmouse" devices, use the
ms3decoder. - 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.14this decoder includes a char generator for the text console, but doesn't yet support X keycodes. If used with-R,gpmwill anyway repeat mouse events to the X server. More information about twiddler support can be found inREADME.twiddler, in thegpmdistribution. - syn synaptics β A decoder for the Synaptics TouchPad connected to the serial port. This mouse decoder accepts standard serial options, although they should not be needed.
- synps2 synaptics_ps2 β 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.
- js Joystick β This mouse type uses the joystick device to generate mouse events. It is only available if the header
linux/joystick.his 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 summacan be used to generate X events even for other absolute-pointing devices, like touchscreens. To use the repeated data from X, you need a modifiedxf86Summa.omodule. - mtouch β A decoder for the MicroTouch touch screen. Please refer to the file
README.microtouchin the source tree ofgpmfor further information. In the near future, anyways, 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.gunzein the source tree ofgpmfor 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.
- wp wizardpad β Genius WizardPad tablet
π¦ FILES π¦
src/mice.cβ The source file for pointer decoders
π SEE ALSO π
gpm(8)β The General Purpose Mouse server- The info file about
gpm, which gives more complete information and explains how to write agpmclient.
and that's the whole page bestie!! π₯° this one's from the 4th Berkeley Distribution, dated July 2000 β and it's GPM-TYPES(7), misc info manual, so you already know where to find it. mwah π β¨ππ
π¦ where this page comes from
- alpine 3.22: gpm-doc 1.20.7-r5 Β· GPL-2.0-or-later
- alpine 3.23: gpm-doc 1.20.7-r6 Β· GPL-2.0-or-later
- alpine 3.24: gpm-doc 1.20.7-r6 Β· GPL-2.0-or-later
- arch rolling: gpm 1.20.7.r38.ge82d1a6-7 Β· GPL
- nixpkgs unstable: gpm 1.20.7-unstable-2020-06-17
- opensuse-leap 16.0: gpm 1.20.7-160000.2.2 Β· GPL-2.0-or-later AND GPL-3.0-or-later
- opensuse-leap 16.0: gpm 1.20.7-160000.2.2 Β· GPL-2.0-or-later AND GPL-3.0-or-later
- opensuse-leap 16.0: gpm 1.20.7-160000.2.2 Β· GPL-2.0-or-later AND GPL-3.0-or-later
- opensuse-leap 16.0: gpm 1.20.7-160000.2.2 Β· GPL-2.0-or-later AND GPL-3.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms