This is the device in question:
Contents |
http://www.3dconnexion.com/products/spacenavigator.html
http://www.3dconnexion.com/service/software-developer.html is a good source of info. Windows is better documented than Linux.
There are basically three options (mutually exclusive) to use this device under Linux/MeeGo:
http://spacenav.sourceforge.net/
tar xvf spacenavd-0.5.tar.gz cd spacenavd-0.5 ./configure make
This creates a socket-based server you app can connect to. For examples, please check the example included in the SDK: http://sourceforge.net/projects/spacenav/files/spacenav%20library%20%28SDK%29/
As soon as you connect this device to your MeeGo system, the native driver (evdev) will pick it up and add it to the list of pointer device (i.e. a mouse). You can check this using xinput as follows:
Install xinput first (not installed by default)
zypper in xorg-x11-utils-xinput (in MeeGo 1.2, slightly different name in MeeGo 1.0)
xinput --list Virtual core pointer id=2 [master pointer (3)] ? Virtual core XTEST pointer id=4 [slave pointer (2)] ? CHESEN USB Keyboard id=9 [slave pointer (2)] ? 3Dconnexion Space Navigator id=10 [slave pointer (2)] ? Dell Dell USB Mouse id=11 [slave pointer (2)] ? EVTouch TouchScreen id=12 [slave pointer (2)] Virtual core keyboard id=3 [master keyboard (2)] ? Virtual core XTEST keyboard id=5 [slave keyboard (3)] ? Video Bus id=6 [slave keyboard (3)] ? Power Button id=7 [slave keyboard (3)] ? CHESEN USB Keyboard id=8 [slave keyboard (3)]
At that point, the mouse is essentially functional but extremely sensitive. To correct this, you can play with the device properties named Device Accel Constant Deceleration (237) and/or Device Accel Adaptive Deceleration (239). I've had some good luck setting property '237' between 20 and 50.
xinput --list-props 10
Device '3Dconnexion Space Navigator':
Device Enabled (118): 1
Device Accel Profile (236): 0
Device Accel Constant Deceleration (237): 1.000000
Device Accel Adaptive Deceleration (239): 1.000000
Device Accel Velocity Scaling (240): 10.000000
Evdev Reopen Attempts (234): 10
Evdev Axis Inversion (241): 0, 0
Evdev Axes Swap (243): 0
Axis Labels (244): "Rel X" (126), "Rel Y" (127), "Rel Z" (256), "Rel Rotary X" (257), "Rel Rotary Y" (258), "Rel Rotary Z" (259)
Button Labels (245): "Button 0" (254), "Button 1" (255), "Button Unknown" (235), "Button Wheel Up" (122), "Button Wheel Down" (123)
Evdev Middle Button Emulation (246): 2
Evdev Middle Button Timeout (247): 50
Evdev Wheel Emulation (248): 0
Evdev Wheel Emulation Axes (249): 0, 0, 4, 5
Evdev Wheel Emulation Inertia (250): 10
Evdev Wheel Emulation Timeout (251): 200
Evdev Wheel Emulation Button (252): 4
Evdev Drag Lock Buttons (253): 0
xinput --set-prop 10 237 20
It should be possible to set this directly in xorg.conf.d but no real luck yet so far. In the meantime an easy work around is to add this line to a script file that runs when system boots up:
xinput set-prop "3Dconnexion Space Navigator" 237 20