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