mirror of https://github.com/tLDP/LDP
239 lines
8.7 KiB
Plaintext
239 lines
8.7 KiB
Plaintext
<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook V3.1//EN">
|
|
<article>
|
|
|
|
<artheader>
|
|
<title>Second Mouse in X mini-HOWTO</title>
|
|
<author>
|
|
<firstname>Greg</firstname>
|
|
<surname>Wierzchowski</surname>
|
|
<affiliation>
|
|
<address><email>greg.wierzchowski@usa.net</email></address>
|
|
</affiliation>
|
|
</author>
|
|
|
|
<pubdate>2001-07-18</pubdate>
|
|
<abstract>
|
|
<para>Quick instructions to enable a second mouse in X.</para>
|
|
</abstract>
|
|
|
|
<revhistory>
|
|
<revision>
|
|
<revnumber>1.2</revnumber>
|
|
<date>2001-11-17</date>
|
|
<authorinitials>GW</authorinitials>
|
|
<revremark>Corrected for the Wheel Mouse in XFree 3.x.</revremark>
|
|
</revision>
|
|
<revision>
|
|
<revnumber>1.1</revnumber>
|
|
<date>2001-07-21</date>
|
|
<authorinitials>GW</authorinitials>
|
|
<revremark>Added "Alternatives" section.</revremark>
|
|
</revision>
|
|
<revision>
|
|
<revnumber>1.0</revnumber>
|
|
<date>2001-07-18</date>
|
|
<authorinitials>GW</authorinitials>
|
|
<revremark>Initial Release.</revremark>
|
|
</revision>
|
|
</revhistory>
|
|
|
|
<keywordset>
|
|
<keyword>
|
|
XFree
|
|
</keyword>
|
|
<keyword>
|
|
mouse
|
|
</keyword>
|
|
</keywordset>
|
|
|
|
</artheader>
|
|
|
|
|
|
<section id="intro"><title>Introduction</title>
|
|
|
|
<para>
|
|
This mini-HOWTO was created by gathering the information already available on
|
|
the internet, in newsgroups and other HOWTOs. I needed to hook up an USB mouse
|
|
in addition to the built-in trackpoint on my Thinkpad laptop.
|
|
</para>
|
|
<para>
|
|
Examples in this mini-HOWTO pertain to my particular hardware configuration,
|
|
which is PS/2 mouse as a primary pointer and USB wheel mouse as an additional
|
|
one. It should be pretty straightforward to implement another combination, say,
|
|
a PS/2 and a serial mice. Two things that would have to be changed are the
|
|
<emphasis>mouse
|
|
protocol</emphasis> and the <emphasis>mouse device</emphasis>. Wherever
|
|
possible, I try to provide appropriate examle.
|
|
</para>
|
|
<para>
|
|
The instructions for X are divided into two sections, one for XFree version 3 and one
|
|
for XFree 4. The format of the XF86Config file has significantly changed between
|
|
versions and requires slightly different approach. In XFree 3.x, the second
|
|
mouse has to appear in an <emphasis>Xinput</emphasis> section, which has
|
|
slightly different syntax than the regular <emphasis>Pointer</emphasis> section.
|
|
In XFree 4.x, it's just another pointer.
|
|
</para>
|
|
</section>
|
|
<section id="copyright"><title>Copyright and License</title>
|
|
<para>This document is copyright 2001 by Greg Wierzchowski and is released under
|
|
the terms of the GNU Free Documentation License, which is hereby incorporated
|
|
by reference. Send feedback to
|
|
<ulink url="mailto:greg.wierzchowski@usa.net"><citetitle>greg.wierzchowski@usa.net</citetitle></ulink>.
|
|
</para>
|
|
</section>
|
|
|
|
<section id="protocol"><title>Mouse Protocols</title>
|
|
<para>Two most important parameters in the <filename>XF86Config</filename> file, ones that are crucial to the mouse working properly are the <emphasis>Protocol</emphasis> and <emphasis>Device</emphasis>.
|
|
</para>
|
|
<para>
|
|
As far as <emphasis>Protocol</emphasis> is concerned, it seems that
|
|
<emphasis>gpm</emphasis> uses compatible protocol names, so please look there
|
|
for the detailed information. Here is the excerpt taken from the gpm info page
|
|
(just the few most commont types):
|
|
<table frame="all">
|
|
<title>Most Common Mouse Protocols in X</title>
|
|
<tgroup cols="2">
|
|
<colspec colname="column1">
|
|
<colspec colname="column2">
|
|
<thead>
|
|
<row>
|
|
<entry>Protocol Name</entry>
|
|
<entry>Description</entry>
|
|
</row>
|
|
</thead>
|
|
<tbody>
|
|
<row>
|
|
<entry>Microsoft</entry>
|
|
<entry>Standard Microsoft mice.</entry>
|
|
</row>
|
|
<row>
|
|
<entry>MouseSystems</entry>
|
|
<entry>This is the standard protocol for three-button serial devices.</entry>
|
|
</row>
|
|
<row>
|
|
<entry>MMSeries</entry>
|
|
<entry>Title says it all. This mouse decoder accepts standard serial
|
|
options, although they should not be needed.</entry>
|
|
</row>
|
|
<row>
|
|
<entry>Logitech</entry>
|
|
<entry>This is the protocol used by old serial Logitech mice.</entry>
|
|
</row>
|
|
<row>
|
|
<entry>BusMouse</entry>
|
|
<entry>Some bus devices use this protocol, including those produced by
|
|
Logitech.</entry>
|
|
</row>
|
|
<row>
|
|
<entry>PS/2</entry>
|
|
<entry>The protocol used by most busmice.</entry>
|
|
</row>
|
|
<row>
|
|
<entry>IMPS/2</entry>
|
|
<entry>"IntelliMouse" on the ps/2 port. <emphasis>Also works with USB
|
|
mice</emphasis></entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
</para>
|
|
</section>
|
|
|
|
<section id="xfree3"><title>XFree 3.x</title>
|
|
<para>
|
|
In XFree 3.x, additional pointing devices, like mice or tablets, are defined
|
|
through the use of an <emphasis>Xinput</emphasis> section. The primary mouse is
|
|
defined as usual:
|
|
<programlisting>
|
|
Section "Pointer"
|
|
Protocol "PS/2"
|
|
Device "/dev/mouse"
|
|
EndSection
|
|
</programlisting>
|
|
In the case above, it's a regular three-button PS/2 mouse, which works for the
|
|
trackpoint as well. Now, for the USB mouse:
|
|
<programlisting>
|
|
Section "Xinput"
|
|
SubSection "Mouse"
|
|
DeviceName "USB Mice"
|
|
Protocol "IMPS/2"
|
|
ZAxisMapping 4 5
|
|
Port "/dev/input/mice"
|
|
Alwayscore
|
|
EndSubSection
|
|
EndSection
|
|
</programlisting>
|
|
My mouse is a wheel mouse, thus the protocol is <emphasis>IMPS/2</emphasis>. ZAxisMapping line is also needed for the wheel to work.
|
|
I also want the mouse to always work alongside the other one, and this is achieved
|
|
through the <emphasis>AlwaysCore</emphasis> option. If. for example, this was
|
|
a serial mouse, the <emphasis>Port</emphasis> would read
|
|
<command>"/dev/ttyS0"</command> for <command>COM1</command>.
|
|
</para>
|
|
|
|
</section>
|
|
|
|
<section id="xfree4"><title>XFree 4.x</title>
|
|
<para>
|
|
With XFree 4.x the task is even easier. First, the primary mouse, usually present in the config file already:
|
|
<programlisting>
|
|
Section "InputDevice"
|
|
Identifier "Mouse0"
|
|
Driver "mouse"
|
|
Option "Device" "/dev/mouse"
|
|
Option "Protocol" "PS/2"
|
|
Option "Emulate3Buttons" "off"
|
|
Option "ZAxisMapping" "4 5"
|
|
EndSection
|
|
</programlisting>
|
|
To add another mouse just copy the above section and modify it, so that it reads:
|
|
<programlisting>
|
|
Section "InputDevice"
|
|
Identifier "Mouse1"
|
|
Driver "mouse"
|
|
Option "Device" "/dev/input/mice"
|
|
Option "Protocol" "IMPS/2"
|
|
Option "Emulate3Buttons" "off"
|
|
Option "ZAxisMapping" "4 5"
|
|
EndSection
|
|
</programlisting>
|
|
Well, this way you can define as many additional pointers as you wish, and the same applies to joysticks and tablets.
|
|
</para>
|
|
<para>
|
|
To make both mice work together, there's one more change to be made to the <filename>XF86Config</filename> file.
|
|
There is a section called <emphasis>ServerLayout</emphasis> where all the components are specified. Here's how it looks <emphasis>before</emphasis> adding a second mouse:
|
|
<programlisting>
|
|
Section "ServerLayout"
|
|
Identifier "XFree86 Configured"
|
|
Screen 0 "Screen0" 0 0
|
|
InputDevice "Mouse0" "CorePointer"
|
|
InputDevice "Keyboard0" "CoreKeyboard"
|
|
EndSection
|
|
</programlisting>
|
|
And <emphasis>after</emphasis> adding the second mouse:
|
|
<programlisting>
|
|
Section "ServerLayout"
|
|
Identifier "XFree86 Configured"
|
|
Screen 0 "Screen0" 0 0
|
|
InputDevice "Mouse0" "CorePointer"
|
|
InputDevice "Mouse1" "AlwaysCore"
|
|
InputDevice "Keyboard0" "CoreKeyboard"
|
|
EndSection
|
|
</programlisting>
|
|
</para>
|
|
</section>
|
|
|
|
<section id="alternatives"><title>Alternatives</title>
|
|
<para>
|
|
Another way to use two (or more) mice at the same time is to use a program such as <emphasis>MultiMouse</emphasis> by Takashi Manabe. It's a daemon multiplexing several mice and making them available through the special device <filename>/dev/mumse</filename> as a MouseSystems compatible mouse.
|
|
</para><para> According to the author: <quote>This program allows you to use multiple mice at the same time. This program is developed for a subnote user who want to use both a pre-mounted pointing device and a external serial mouse.</quote></para><para>I'm not sure if the program supports second mouse other than serial, but the advantage is that the second mouse works in console mode too. <command>MultiMouse</command> can be found at Sunsite (sunsite.unc.edu /pub/Linux/system/Misc) and Tucows (www.tucows.com Linux Console -> Utilities).
|
|
</para>
|
|
</section>
|
|
|
|
<section id="credits"><title>Credits</title>
|
|
<para>
|
|
Special thanks to all the people who contribute to the Linux community and who made this HOWTO possible.
|
|
</para>
|
|
</section>
|
|
</article>
|
|
|