[ltp] "ThinkPad USB Keyboard with TrackPoint" in Linux?

Richard Neill linux-thinkpad@linux-thinkpad.org
Sat, 03 Jul 2010 12:26:34 +0100


I've got one. It works really well.

The only problem is that I haven't figured out a way to alter the 
default trackpoint sensitivity (I'd prefer to increase it).

If you just plug it in, it will work. However, you may wish to be clever
with xorg settings.

If you set up some udev rules such as below, you can then set Xorg.conf 
rules for each mouse-device. So for example, you might want 
emulated-scroll + emulated middle-click on the trackpoint, while setting 
the track-pad to disabled. You might also have different rules for an 
external mouse.

Richard

----
/etc/udev/rules.d/10-local.rules
----

#Here are my rules, on mandriva 2009.0. Your specific values may differ.

#First, identify the devices. cat /dev/input/mouseX and cat 
/dev/input/eventX while moving the devices
#Second, find a relevant udev rule. Pick one stanza only for 
identification. udevinfo -a -n /dev/input/mouseX
#Third, write the rule here. Remember use "==" to match attributes, and 
"=" to define attributes.
#Fourth: run   udevcontrol reload_rules; udevtrigger to make it update, 
then test.  (if inotify is enabled, the udevcontrol reload_rules may be 
omitted)
#Fifth, use the symlink in xorg.conf
#See http://reactivated.net/writing_udev_rules.html for an excellent 
explanation of udev rules

#Be careful: the touchpad and trackpoint have very similar attributes.

#PS/2 mouse (usually /dev/input/mouse1)
#Symlink as /dev/input/ps2mouse
KERNEL=="mouse*", DRIVERS=="psmouse", ATTRS{description}=="i8042 AUX 
port", NAME="input/%k", SYMLINK="input/ps2mouse"

#Trackpoint (usually /dev/input/mouse4)
#Symlink as /dev/input/trackpoint
KERNEL=="mouse*", SUBSYSTEM=="input", ATTRS{bInterfaceProtocol}=="02", 
ATTRS{bInterfaceSubClass}=="01", ATTRS{bInterfaceClass}=="03", 
ATTRS{bInterfaceNumber}=="01", NAME="input/%k", SYMLINK="input/trackpoint"

#Synaptics touchpad (in mouse mode) (usually /dev/input/mouse3)
#Symlink as /dev/input/synaptics-mouse
KERNEL=="mouse*", SUBSYSTEM=="input", ATTRS{interface}=="Rel", 
ATTRS{bInterfaceProtocol}=="02", ATTRS{bInterfaceSubClass}=="01", 
ATTRS{bInterfaceClass}=="03", ATTRS{bInterfaceNumber}=="00", 
NAME="input/%k", SYMLINK="input/synaptics-mouse"

#Synaptics touchpad (in event mode) (usually /dev/input/event8).  This 
isn't really very useful.
#Symlink as /dev/input/synaptics-event
KERNEL=="event*", SUBSYSTEM=="input", ATTRS{interface}=="Rel", 
ATTRS{bInterfaceProtocol}=="02", ATTRS{bInterfaceSubClass}=="01", 
ATTRS{bInterfaceClass}=="03", ATTRS{bInterfaceNumber}=="00", 
NAME="input/%k", SYMLINK="input/synaptics-event"

#Synaptics touchpad (in event mode, with the synaptics-usb driver) 
(usually /dev/input/event8).
#See http://www.jan-steinhoff.de/linux/synaptics-usb.html
#Symlink as /dev/input/synaptics-usb
KERNEL=="event*", SUBSYSTEM=="input", DRIVERS=="synaptics-usb", 
ATTRS{interface}=="Abs", ATTRS{bInterfaceProtocol}=="00", 
ATTRS{bInterfaceSubClass}=="00", ATTRS{bInterfaceClass}=="00", 
ATTRS{bInterfaceNumber}=="00", NAME="input/%k", 
SYMLINK="input/synaptics-usb"

#My new USB mouse (usually /dev/input/mouse2)
#Symlink as /dev/input/oczmouse
KERNEL=="mouse*", DRIVERS=="usb", ATTRS{product}=="PS/2+USB Mouse", 
ATTRS{manufacturer}=="A4Tech", NAME="input/%k", SYMLINK="input/oczmouse"


---
xorg.conf fragment
---

Section "ServerLayout"
	Identifier	"layout1"
	Screen      0  	"Screen0" 0 0
	InputDevice	"Keyboard1" 	"CoreKeyboard"
	# InputDevice	"ps2mouse" 	"CorePointer"
	InputDevice	"oczmouse" 	"CorePointer"
	InputDevice	"trackpoint"	"SendCoreEvents"
	#  InputDevice	"synaptics-mouse"  	"SendCoreEvents"	#As a simple mouse. 
Pick one or the other.
	InputDevice	"synaptics-usb"  	"SendCoreEvents"   	#Via the 
synaptics-usb driver.
	#InputDevice	"wizardpen" 	"SendCoreEvents"		#Currently causes crashes - 
make sure to re-compile for the current version of X.
EndSection

#This is the ordinary PS/2 mouse. It has 3 buttons + wheel, and works as 
normal. (middle-btn-drag is possible in xfig)
#Section "InputDevice"
#	Identifier	"ps2mouse"
#	Driver		"mouse"
#	Option		"Protocol" "ExplorerPS/2"
#	Option		"Device" "/dev/input/ps2mouse"
#EndSection

#This is the ordinary USB (OCZ) mouse. It has 3 buttons + wheel, and 
works as normal. (middle-btn-drag is possible in xfig)
Section "InputDevice"
	Identifier	"oczmouse"
	Driver		"mouse"
	Option		"Protocol" "ExplorerPS/2"
	Option		"Device" "/dev/input/oczmouse"
EndSection

#This is the trackpoint. The middle button can be tap-to-paste, OR drag 
to emulate horiz and vert wheels.  (Can't middle-drag though).
Section "InputDevice"
	Identifier	"trackpoint"
	Driver		"mouse"
	Option		"Device"	"/dev/input/trackpoint"
	Option		"Protocol"	"ExplorerPS/2"
	#  Option	"Emulate3Buttons"	"true"		#Useful sometimes, but not when the 
3 buttons are in a row.
	Option		"EmulateWheel"	"on"
	Option		"EmulateWheelButton"	"2"
	Option		"EmulateWheelTimeout"	"200"
	Option		"XAxisMapping"		"6 7"
	Option		"YAxisMapping"		"4 5"
	#  Option	"ZAxisMapping"		"10 11"   		#Sometimes necessary.
EndSection

#Synaptics as mouse. (in mouse mode). Disabled deliberately.
#Section "InputDevice"
#	Identifier 	"synaptics-mouse"
#	Driver		"mouse"
#	Option		"Device"	"/dev/input/synaptics-mouse"
#	Option		"Protocol"	"ExplorerPS/2"
#	Option		"ZAxisMapping"	"6 7"
#EndSection

#Alternative: use touchpad for scroll. Double-tap it, then drag => 
Hor/Vert scroll.
#1) The synaptics hardware defaults to thinking that double-click+move 
means click+drag.
#2) The use of EmulateWheel on button 1 makes this into an emulated scroll.
#Section "InputDevice"
#	Identifier	"synaptics-mouse"
#	Driver		"mouse"
#	Option		"Device"	"/dev/input/synaptics-mouse"
#	Option		"Protocol"	"ExplorerPS/2"
#	Option		"EmulateWheel"	"on"
#	Option		"EmulateWheelButton"	"1"
#	Option		"EmulateWheelTimeout"	"0"
#	Option		"XAxisMapping"	"6 7"
#	Option		"YAxisMapping"	"4 5"
#	#  Option	"ZAxisMapping"	"10 11"   Sometimes necessary.
#EndSection

#Synaptics in normal (event) mode, via the synaptics-usb driver. See 
http://www.jan-steinhoff.de/linux/synaptics-usb.html Also, remember to 
do: synaptics-usb-rebind to_synaptics-usb
Section "InputDevice"
	Identifier	"synaptics-usb"
	Driver		"synaptics"
	Option		"Device"	"/dev/input/synaptics-event"
	Option		"Protocol"	"auto-dev"			#Will override the Device setting anyway.
	Option		"ZAxisMapping"	"6 7"
	Option		"SHMConfig"	"true"
	Option		"LeftEdge"	"120"
	Option		"RightEdge"	"830"
	Option		"TopEdge"	"120"
	Option		"BottomEdge"	"650"
	Option		"FingerLow"	"14"
	Option		"FingerHigh"	"15"
	Option		"MaxTapTime"	"180"
	Option		"MaxTapMove"	"110"
	Option		"EmulateMidButtonTime"	"75"
	Option		"VertScrollDelta"	"20"
	Option		"HorizScrollDelta"	"20"
	Option		"MinSpeed"		"0.3"
	Option		"MaxSpeed"		"0.75"
	Option		"AccelFactor"		"0.015"
	Option		"EdgeMotionMinSpeed"	"200"
	Option		"EdgeMotionMaxSpeed"	"200"
	Option		"UpDownScrolling"	"1"
	Option		"CircularScrolling"	"1"
	Option		"CircScrollDelta"	"0.1"
	Option		"CircScrollTrigger"	"2"
	Option		"GuestMouseOff"		"0"
	Option		"SHMConfig"    "on"			#For Kcontrol's config.
EndSection
















On 03/07/10 12:01, August Lilleaas wrote:
> Here's the keyboard:
> http://shop.lenovo.com/SEUILibrary/controller/e/web/LenovoPortal/en_US/catalog.workflow:item.detail?GroupID=38&Code=55Y9003&current-category-id=E9ADAEB6787146E29B78400A33E7FE8A
> <http://shop.lenovo.com/SEUILibrary/controller/e/web/LenovoPortal/en_US/catalog.workflow:item.detail?GroupID=38&Code=55Y9003&current-category-id=E9ADAEB6787146E29B78400A33E7FE8A>
>
> <http://shop.lenovo.com/SEUILibrary/controller/e/web/LenovoPortal/en_US/catalog.workflow:item.detail?GroupID=38&Code=55Y9003&current-category-id=E9ADAEB6787146E29B78400A33E7FE8A>I
> would like to use it on my PC running Linux. Does it require special
> windows only software, being both a mouse and a keyboard? Or perhaps it
> appears as a USB hub with a mouse and a keyboard attached to it? Or
> something else?
>
> --
> August Lilleaas