<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<TITLE>XFree86 implementation </TITLE>
</HEAD>
<BODY BGCOLOR="#efefef" TEXT="black" LINK="blue" VLINK="#551A8B" ALINK="red">

<A HREF="xinput.html"><EM> Information about the XInput extension in XFree86[tm]</EM></A>
 <b>:</b> <EM>XFree86 implementation </EM><BR>
<b>Previous:</b> <A HREF="xinput2.html"><EM>Description </EM></A><BR>
<b>Next:</b> <A HREF="xinput.html"><EM> Information about the XInput extension in XFree86[tm]</EM></A>


<HR NOSHADE>
  <H2><A NAME="3"></A>3. XFree86 implementation </H2>

<p>The XFree86 implementation contains 2 parts : the server part and two
clients (<em>xsetpointer</em> and <em>xsetmode</em>).</p>

<H3><A NAME="4"></A>3.1. Server side </H3>

<p>The server supports the following extended devices :
<ul>
<li>Joystick (only on  supported systems ie. Linux, FreeBSD
and NetBSD). Features :
<ul>
<li>Relative mode.</li>
<li>2 valuators (x and y axis).</li>
<li>2 buttons.</li>
</ul>

</li>
<li>Elographics touchscreen. Features :
<ul>
<li>Absolute mode.</li>
<li>2 valuators (x and y axis).</li>
<li>1 button.</li>
</ul>

</li>
<li>Stylus on MicroTouch touchscreen. Features :
<ul>
<li>Absolute mode.</li>
<li>2 valuators (x and y axis).</li>
<li>1 button.</li>
</ul>

</li>
<li>Finger on MicroTouch touchscreen. Features :
<ul>
<li>Absolute mode.</li>
<li>2 valuators (x and y axis).</li>
<li>1 button.</li>
</ul>

</li>
<li>Mouse. Features :
<ul>
<li>Relative mode.</li>
<li>2 valuators (x and y axis).</li>
<li>up to 4 buttons.</li>
</ul>

</li>
<li>Wacom stylus. Features :
<ul>
<li>Absolute or relative modes.</li>
<li>6 valuators :
<ol>
<li>X axis.</li>
<li>Y axis.</li>
<li>pressure.</li>
<li>X tilt.</li>
<li>Y tilt.</li>
<li>wheel.</li>
</ol>
</li>
<li>3 buttons.</li>
<li>Proximity report.</li>
<li>Motion history capability.</li>
<li>Macro/function buttons are reported as keys.</li>
</ul>

</li>
<li>Wacom eraser. Features :
<ul>
<li>Absolute or relative modes.</li>
<li>6 valuators :
<ol>
<li>X axis.</li>
<li>Y axis.</li>
<li>pressure.</li>
<li>X tilt.</li>
<li>Y tilt.</li>
<li>wheel.</li>
</ol>
</li>
<li>1 button.</li>
<li>Proximity report.</li>
<li>Motion history capability.</li>
<li>Macro/function buttons are reported as keys.</li>
</ul>

</li>
<li>Wacom cursor. Features :
<ul>
<li>Absolute or relative modes.</li>
<li>6 valuators :
<ol>
<li>X axis.</li>
<li>Y axis.</li>
<li>pressure.</li>
<li>X tilt.</li>
<li>Y tilt.</li>
<li>wheel.</li>
</ol>
</li>
<li>16 buttons.</li>
<li>Proximity report.</li>
<li>Motion history capability.</li>
<li>Macro/function buttons are reported as keys.</li>
</ul>

</li>
<li>SummaSketch tablet. Features :
<ul>
<li>Absolute or relative modes.</li>
<li>2 valuators (x and y axis).</li>
<li>2 buttons stylus or 4 buttons puck.</li>
<li>Proximity report.</li>
<li>Motion history capability.</li>
</ul>

</li>
<li>AceCad tablet. Features :
<ul>
<li>Absolute or relative modes.</li>
<li>2 valuators (x and y axis).</li>
<li>2 buttons stylus or 4 buttons puck.</li>
<li>Proximity report.</li>
<li>Motion history capability.</li>
</ul>

</li>
<li>Calcomp DrawingBoard tablet. Features :
<ul>
<li>Absolute or relative modes.</li>
<li>2 valuators (x and y axis).</li>
<li>4 buttons stylus or 16 buttons puck.</li>
<li>Proximity report.</li>
<li>Motion history capability.</li>
</ul>

</li>
<li>SWITCH virtual device. Features :
<ul>
<li>Absolute mode.</li>
<li>1 valuator (device id) which reports the id of the device controlling
the core pointer (works with the AlwaysCore feature see bellow).</li>
</ul>

</li>
<li>SGI button box. Features :
<ul>
<li>Absolute or relative modes.</li>
<li>8 valuators.</li>
<li>32 buttons.</li>
<li>Motion history capability.</li>
</ul>

	</li>
</ul>
</p>
<p>To  enable  an   extended  device, you  must   add   en  entry  in the
<em>XF86Config</em> file.   Consult   to  the <em>XF86Config</em>  man
pages to see the details. </p>

<p>The  XFree86 implementation supports  a  non  standard feature  called
<em>AlwaysCore</em> which enables an  XInput device to send both  core
and extended events at the same time. To enable it you have to add the
<em>AlwaysCore</em> keyword to the  subsection describing your  device
in the <em>XF86Config</em>  file.  The  <em>SWITCH</em> virtual device
reports a Motion event when another  device takes over the control of
the core pointer. The id of the new device is reported in the first
valuator of the event.</p>

<H3><A NAME="5"></A>3.2. Clients </H3>

<p><em>xsetpointer</em> is used to  change the device controlling the core
pointer and to list available extended devices. </p>

<p><em>xsetmode</em> is used to change the mode (absolute or relative) of
an extended device. The device  has to  support relative and  absolute
modes and the device must not control the core pointer. </p>

<p>Consult the man pages for details.</p>

<p>
<pre>
$XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/xinput.sgml,v 3.6.2.3 1999/06/30 13:00:30 hohndel Exp $




$XConsortium: xinput.sgml /main/3 1996/10/27 11:06:13 kaleb $
</pre>
</p>

 <HR NOSHADE>
<A HREF="xinput.html"><EM> Information about the XInput extension in XFree86[tm]</EM></A>
 <b>:</b> <EM>XFree86 implementation </EM><BR>
<b>Previous:</b> <A HREF="xinput2.html"><EM>Description </EM></A><BR>
<b>Next:</b> <A HREF="xinput.html"><EM> Information about the XInput extension in XFree86[tm]</EM></A>



</BODY>
</HTML>
