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.
 |