95a46c5577
Signed-off-by: Nico Schottelius <nico@ikn.schottelius.org>
103 lines
3.3 KiB
Text
103 lines
3.3 KiB
Text
|
|
This file tells how to use gpm and X with a touch screen (this is
|
|
being written as an addition to gpm 1.17.5 and currently the only
|
|
supported touchscreen is the MicroTouch).
|
|
|
|
|
|
USER INTERFACE
|
|
--------------
|
|
|
|
The decoder currently implemented in gpm is quite simple: it only
|
|
supports mouse motion and button-1 events.
|
|
|
|
When a user touches the screen, the decoder generates mouse motion
|
|
events. Tapping on the screen generates button-press (as well as drag and
|
|
release) events.
|
|
|
|
A "tap" is a finger-down event generated quickly after a finger-up
|
|
(half a secon at most). This means that you'll usually move the
|
|
pointer to the desired position and then tap on it.
|
|
|
|
Double-and triple clicks are easily generated by repeated tapping.
|
|
|
|
Since tapping is usually accompanied by a small movement, the decoder
|
|
will use the coordinates of the finger-up event for the button-press.
|
|
Further dragging will be relative to the tapping position (i.e., the
|
|
finger-up position). Moreover, the last coordinate pair received on
|
|
finger-up is discarded, because it usually is slightly offset (due to
|
|
the non-negligible area of the fingertip)
|
|
|
|
|
|
GPM OPERATION
|
|
-------------
|
|
|
|
In order to run the touchscreen with gpm, you need to update the
|
|
/dev/mouse symbolic link to point to the right serial port; then
|
|
invoke gpm with a command line like
|
|
|
|
gpm -t mtouch
|
|
|
|
Unfortunately, there is currently no way to paste text. I think some
|
|
modifier key should be eligible to this role but this would mean an
|
|
in-depth modification to gpm. We have to discuss about it to make the
|
|
right choice.
|
|
|
|
|
|
Calibration
|
|
-----------
|
|
|
|
To calibrate the touchscreen, use the program "microtouch-setup" found
|
|
in the source tree of gpm. The gpm daemon must already be running in
|
|
order for the program to work flawlessly, as the program stops and
|
|
restarts gpm internally (it depends on gpm for correct serial port
|
|
initialization). "microtouch-setup" uses /dev/mouse to access the
|
|
serial port, so /dev/mouse should point to a "ttyS" device.
|
|
|
|
|
|
X OPERATION
|
|
-----------
|
|
|
|
In order to use the touchscreen in X, you should install in your
|
|
system the "Summa" module, as modified by Frank Holtz (the driver is
|
|
available from http://www.hof-berlin.de/tablet/tablet.html).
|
|
|
|
Gpm must run in repeater mode, with a command line like:
|
|
gpm -t mtouch -Rsumma
|
|
, which instructs gpm to repeat packets according to the Summa protocol.
|
|
|
|
Then, you need to add the following sections to your XF86config:
|
|
|
|
Section "module"
|
|
Load "xf86Summa.so"
|
|
EndSection
|
|
|
|
Section "Xinput"
|
|
Subsection "SummaSketch"
|
|
Port "/dev/gpmdata"
|
|
DeviceName "touchscreen"
|
|
Mode Absolute
|
|
AlwaysCore
|
|
EndSubSection
|
|
EndSection
|
|
|
|
|
|
Moreover, you should disable the "Pointer" section. I used a trick
|
|
like this one:
|
|
|
|
Section "Pointer"
|
|
Protocol "MouseSystems"
|
|
Device "/dev/fifo"
|
|
EndSection
|
|
|
|
Where /dev/fifo is just a plain unused fifo ("mknod /dev/fifo p")
|
|
|
|
Calibration
|
|
-----------
|
|
|
|
To calibrate the touchscreen, use the program "microtouch-setup" found
|
|
in the source tree of gpm (yes, it is the same program used for the
|
|
text mode). The gpm daemon must already be running in order for the
|
|
program to work flawlessly, as the program stops and restarts gpm
|
|
internally (it depends on gpm for correct serial port
|
|
initialization). "microtouch-setup" uses /dev/mouse to access the
|
|
serial port, so /dev/mouse should point to a "ttyS" device.
|