Showing posts with label synaptics. Show all posts
Showing posts with label synaptics. Show all posts

Thursday, September 10, 2009

Disabling Macbook Pro Touchpad

We may want to disable Macbook Pro (or any other Laptop) Touchpad, such cases are:
(i) We have connected a USB mouse, so we do not want to use touchpad for now.
(ii) While typing, there is no use of touchpad, if touchpad is too sensitive, the cursor keeps on jumping due to slight touch of palm or finger.

I have written a script to disable/enable touchpad (which is using synaptics driver).





#!/bin/bash

## Disable touchpad if USB Mouse is attached

SYNAPTICS=`which synclient`

if [[ "$SYNAPTICS" == "" ]]
then
echo "$0: please install synaptics touchpad driver."
echo "Also make sure that 'Option \"SHMConfig\" \"on\"'"
echo " is added in Touchpad device Section in /etc/X11/xorg.conf"
exit
fi

USB_mouse_present=`grep -ic "usb.*mouse" /proc/bus/input/devices`
# if no USB Mouse; enable touchpad
if [ $USB_mouse_present -eq 0 ]
then
$SYNAPTICS TouchpadOff=0
else
$SYNAPTICS TouchpadOff=1
fi

# if any parameter [on|off] is given, override previous command
if [ $# -ge 1 ]
then
if [ "$1" = "on" ]
then
$SYNAPTICS TouchpadOff=0
else
$SYNAPTICS TouchpadOff=1
fi
fi

exit 0



Sample Run:
Turn on touchpad

$ ./touchpad.sh on

Turn off touchpad

$ ./touchpad.sh off

If we have plugged USB mouse, then just give following command

$ ./touchpad.sh

On removing USB mouse, give following, the touchpad will be enabled automatically. :)

$ ./touchpad.sh


PS: The configuration for synaptics driver can be referred from here or here.

Friday, May 22, 2009

Macbook Pro Touchpad: Synaptics Configuration in xorg.conf

I was trying to use touchpad on Macbook Pro (4,1) in Debian 5.0 (Lenny).
By default, it does not have tapping support, and multitouch support.
Even touchpad driver was also unavailable. Therefore, I had compiled
Linux kernel 2.6.29.3 added support for Apple Macbook Touchpad Driver.
Then after booting in new kernel with NVIDIA 8600 GT driver, I have
modified the xorg.conf with following lines.

## In case, you want to revert
$ sudo cp /etc/X11/xorg.conf /etc/X11/xorg.conf.bk
$ sudo vi /etc/X11/xorg.conf



...
Section "ServerLayout"
Identifier "Layout0"
...
# Add Synaptics Touchpad as mouse
InputDevice "Synaptics Touchpad" "SendCoreEvents" #"CorePointer"
InputDevice "Mouse0" "CorePointer"
EndSection

...

Section "Module"
...
# Load synaptics driver for Macbook Pro Touchpad
Load "synaptics"
EndSection

...

Section "InputDevice"
Identifier "Synaptics Touchpad"
Driver "synaptics"
Option "SendCoreEvents" "true"
Option "Device" "/dev/mouse0"
Option "Protocol" "auto-dev"
# not using edge scrolling
Option "HorizEdgeScroll" "0"
Option "VertEdgeScroll" "0"

# use two finger scrolling
Option "VertTwoFingerScroll" "1"
Option "HorizTwoFingerScroll" "1" # set to 0 if you don't want horizontal scrolling

# scroll speed, lower is faster
Option "HorizScrollDelta" "15"
Option "VertScrollDelta" "15"

# minimum pressure motion factor
Option "PressureMotionMinZ" "10"

# touch and untouch thresholds, higher numbers if you like to push hard
Option "FingerLow" "20"
Option "FingerHigh" "60" # change to 30 or 40 if you like

# FingerPress (Integer) : Above which counts as press
Option "FingerPress" "130"

# borders based on output from synclient
Option "LeftEdge" "70"
Option "RightEdge" "1120"
Option "TopEdge" "50"
Option "BottomEdge" "750"

# speeds, smaller number for a slower mouse
Option "MinSpeed" "0.8" # 0.5 is very slow, 1.5 is very fast
Option "MaxSpeed" "1.3" # up to 1.5 works ok
Option "AccelFactor" "0.10"

# tap times, change to suit your tapping habits
Option "MaxTapMove" "100"
Option "MaxTapTime" "100"
Option "MaxDoubleTapTime" "200"

# don't change these or two finger tap stops working
Option "TapButton2" "3"
Option "TapButton3" "2"

# must be commented out or normal tapping wont work
#Option "TapButton1" "0"

# Right Top Corner Button as right click
Option "RTCornerButton" "2"
Option "RBCornerButton" "0"

# Left Top Corner Button as middle click
Option "LTCornerButton" "3"
Option "LBCornerButton" "0"

# Palm Detection: Useful while typing
Option "PalmDetect" "on"
Option "PalmMinWidth" "10"
Option "PalmMinZ" "200"

# needed for disabled while typing fix
Option "SHMConfig" "on"
EndSection
...