[ltp] Ultranav (Alps) on R61 (tap-to-select, scrolling)

Christian Birchinger linux-thinkpad@linux-thinkpad.org
Thu, 12 Jun 2008 16:09:16 +0200


On Wed, Jun 11, 2008 at 02:37:45PM -0400, Daniel Black wrote:
> Hi, Christian,
> 
> On Wed, Jun 11, 2008 at 7:37 AM, Christian Birchinger <joker@netswarm.net>
> wrote:
> 
> > Hello
> >
> > Haven't read the whole thread, but i use the trackpointer as
> > normal mouse and the touchpad as scroll wheel (pad border)
> > on my R61. I also disabled mouse clicks on the touchpad.
> > The pad now only does scrolling at the border and mouse
> > pointer position changes, but no clicking. Is that what you
> > want?
> >
> 
> Yes, essentially.  I haven't embraced the trackpointer yet, but this sounds
> like a nice practice.  Basically, the only thing I was after was disabling
> tap-to-click.  As I mentioned a moment ago, I've installed the synaptics
> driver, loaded it with xorg.conf, and have a section specifically for it.
> Because the driver can't find the Alps/PS2 device, it gets unloaded.
> 
> I've seen all sorts of xorg.conf entries using /dev/psaux and other devices,
> but I've come to find that this driver looks for events instead.  However,
> if it can't find the device, that's a moot consideration.
> 
> Christian, if you're not opposed, could I see your xorg.conf?  Once I figure
> out the driver, having the right settings will be joyfully relevant.

This is my section for the R61's ALPS Pad

# **********************************************************************
# Mouse section
# **********************************************************************
Section "InputDevice"
        Identifier      "Synaptics0"
        Driver          "synaptics"
        Option          "SendCoreEvents"        "true"
        Option          "Protocol"              "auto-dev"  
        Option          "Device"                "/dev/psaux"
        Option          "SHMConfig"             "on"

        Option "LeftEdge" "130"  
        Option "RightEdge" "840" 
        Option "TopEdge" "130"   
        Option "BottomEdge" "640"
        Option "FingerLow" "7"   
        Option "FingerHigh" "8"
        Option "MaxTapTime" "0" # "180"
        Option "MinTapTime" "0" # "110"
        Option "ClickTime" "0"
        Option "EmulateMidButtonTime" "75"
        Option "VertScrollDelta" "20"     
        Option "HorizScrollDelta" "20"
        Option "MinSpeed" "0.40"      
        Option "MaxSpeed" "0.65"
        Option "AccelFactor" "0.030"
        Option "EdgeMotionMinSpeed" "200"
        Option "EdgeMotionMaxSpeed" "200"
        Option "UpDownScrolling" "1"     
        Option "LeftRightScrolling" "1"
        Option "CircularScrolling" "1" 
        Option "CircScrollDelta" "0.1"
        Option "CircScrollTrigger" "3"
        Option "VertEdgeScroll" "1"   
        Option "HorizEdgeScroll" "1"
        Option "VertTwoFingerScroll" "1" 
        Option "HorizTwoFingerScroll" "1"
        Option "LeftRightRepeat" "1"     
        Option "UpDownRepeat" "1"
EndSection


/proc/bus/input/devices must list:
...
N: Name="AlpsPS/2 ALPS/DualPoint TouchPad"
...
N: Name="DualPoint Stick"
...

Otherwise it only works both in legacy PS2 mouse emu mode.

The rest of my input config looks like this:

Section "InputDevice"
        Identifier      "Trackpointer0"
        Driver          "mouse"
        Option          "CorePointer"
        Option          "Protocol"              "ExplorerPS/2"
        Option          "Device"                "/dev/input/trackpointer"
EndSection

I isolated the trackpointer device. This is not really needed
and a normal /dev/input/mice rule would do the job as well. If
you want to isolate it as well for some reason you need this 
udev rule:

KERNEL=="mouse*", SUBSYSTEMS=="input", ATTRS{name}=="DualPoint Stick", SYMLINK+="input/trackpointer"

Sadly it is _NOT_ possible to use the real trackpointer driver
like with T61 Synaptics devices. So special trackpoint
sensitivity options are not possible, only basic mouse funcs.


Section "InputDevice"
        Identifier      "Mouse1"
        Driver          "evdev"
        Option          "SendCoreEvents"        "true"
        Option          "Name"                  "Logitech USB
        Receiver"
EndSection

This is just my external USB mouse with 9 buttons. It needs the
evdev driver to work.

Christian





Full xorg.conf (Also has some redundant and test stuff):
#
**********************************************************************
# ServerLayout sections.
# **********************************************************************

Section "ServerLayout"
        Identifier     "X.org Configured"
        Screen      0  "Screen0" 0 0
        InputDevice    "Trackpointer0" "CorePointer"
        InputDevice    "Synaptics0" "AlwaysCore"
        InputDevice    "Mouse0" "AlwaysCore"
        InputDevice    "Mouse1" "AlwaysCore"
        InputDevice    "Keyboard0" "CoreKeyboard"
EndSection

# **********************************************************************
# Files section.
# **********************************************************************

Section "Files"
        FontPath        "/usr/share/fonts/local/"
        FontPath        "/usr/share/fonts/java/"
        FontPath        "/usr/share/fonts/misc/:unscaled"
        FontPath        "/usr/share/fonts/75dpi/:unscaled"
        FontPath        "/usr/share/fonts/100dpi/:unscaled"
        FontPath        "/usr/share/fonts/Type1/"
        FontPath        "/usr/share/fonts/corefonts/"
        FontPath        "/usr/share/fonts/vista/"
        FontPath        "/usr/share/fonts/ttf-bitstream-vera/"
        FontPath        "/usr/share/fonts/misc/"
        FontPath        "/usr/share/fonts/75dpi/"
        FontPath        "/usr/share/fonts/100dpi/"
EndSection

# **********************************************************************
# Module section
# **********************************************************************

Section "Module"
        Load  "glx"
        Load  "extmod"
        Load  "dri"
        Load  "record"
        Load  "dbe"
        Load  "GLcore"
        Load  "xtrap"
        Load  "type1"
        Load  "freetype"
EndSection

# **********************************************************************
# Extensions section
# **********************************************************************

Section "Extensions"
        Option "Composite" "Enable"
EndSection

# **********************************************************************
# Keyboard section
# **********************************************************************

Section "InputDevice"
        Identifier      "Keyboard0"
        Driver          "kbd"
        Option          "AutoRepeat"    "250 40"
        Option          "XkbModel"      "pc104" 
        Option          "XkbLayout"     "ch"    
        Option          "XkbVariant"    "de_nodeadkeys"
EndSection

# **********************************************************************
# Mouse section
# **********************************************************************
Section "InputDevice"
        Identifier      "Synaptics0"
        Driver          "synaptics"
        Option          "SendCoreEvents"        "true"
        Option          "Protocol"              "auto-dev"
        Option          "Device"                "/dev/psaux"
        Option          "SHMConfig"             "on"

        Option "LeftEdge" "130"
        Option "RightEdge" "840"
        Option "TopEdge" "130"
        Option "BottomEdge" "640" 
        Option "FingerLow" "7"
        Option "FingerHigh" "8"
        Option "MaxTapTime" "0" # "180"
        Option "MinTapTime" "0" # "110"
        Option "ClickTime" "0"
        Option "EmulateMidButtonTime" "75"
        Option "VertScrollDelta" "20"
        Option "HorizScrollDelta" "20"
        Option "MinSpeed" "0.40"
        Option "MaxSpeed" "0.65"
        Option "AccelFactor" "0.030"
        Option "EdgeMotionMinSpeed" "200"
        Option "EdgeMotionMaxSpeed" "200"
        Option "UpDownScrolling" "1"
        Option "LeftRightScrolling" "1"
        Option "CircularScrolling" "1"
        Option "CircScrollDelta" "0.1"
        Option "CircScrollTrigger" "3"
        Option "VertEdgeScroll" "1"
        Option "HorizEdgeScroll" "1"
        Option "VertTwoFingerScroll" "1"
        Option "HorizTwoFingerScroll" "1"
        Option "LeftRightRepeat" "1"
        Option "UpDownRepeat" "1"
EndSection

Section "InputDevice"
        Identifier      "Trackpointer0"
        Driver          "mouse"
        Option          "CorePointer"
        Option          "Protocol"              "ExplorerPS/2"
        Option          "Device"
        "/dev/input/trackpointer"

        Option          "EmulateWheel"          "true"
        Option          "EmulateWheelTimeOut"   "200"
        Option          "EmulateWheelButton"    "2"
        Option          "YAxisMapping"          "4 5"
        Option          "XAxisMapping"          "6 7"
        Option          "ZAxisMapping"          "4 5"
EndSection

Section "InputDevice"
        Identifier      "Mouse0"
        Driver          "mouse"
        Option          "SendCoreEvents"        "true"
        Option          "Protocol"              "auto"
        Option          "Device"
        "/dev/input/mouse2"
        Option          "ZAxisMapping"          "4 5"
EndSection

Section "InputDevice"
        Identifier      "Mouse1"
        Driver          "evdev"
        Option          "SendCoreEvents"        "true"
        Option          "Name"                  "Logitech USB
        Receiver"
EndSection

# **********************************************************************
# Monitor section
# **********************************************************************

Section "Monitor"
        Identifier   "Monitor0"
        VendorName   "Lenovo"
        ModelName    "Thinkpad R61 TFT"
EndSection

# **********************************************************************
# Graphics device section
# **********************************************************************

Section "Device"
        Identifier  "Card0"
        Driver      "nvidia"
        VendorName  "nVidia Corporation"
        BoardName   "nVidia Quadro NVS 140M"
        BusID       "PCI:1:0:0"
        Option      "NoLogo" "true"
        Option      "DPI"    "96 x 96"
        Option      "AllowDDCCI" "true"
        Option      "AllowGLXWithComposite"    "true"
        Option      "AddARGBGLXVisuals"        "true"
EndSection

# **********************************************************************
# Screen sections
# **********************************************************************

Section "Screen"
        Identifier "Screen0"
        Device     "Card0"
        Monitor    "Monitor0"
        SubSection "Display"
                Viewport   0 0
                Depth     1
                Modes      "1680x1050"
        EndSubSection
        SubSection "Display"
                Viewport   0 0
                Depth     4
                Modes      "1680x1050"
        EndSubSection
        SubSection "Display"
                Viewport   0 0
                Depth     8
                Modes      "1680x1050"
        EndSubSection
        SubSection "Display"
                Viewport   0 0
                Depth     15
                Modes      "1680x1050"
        EndSubSection
        SubSection "Display"
                Viewport   0 0
                Depth     16
                Modes      "1680x1050"
        EndSubSection
        SubSection "Display"
                Viewport   0 0
                Depth     24
                Modes      "1680x1050"
        EndSubSection
EndSection