Fixing the Atrocious Lenovo Touchpad

heyoSadly Lenovo got a whiff of Macintosh style fervor and got a little overzealous with their current laptop offerings, resulting in a really irritating button-less laptop design.
Luckily, you can revert this to be usable like the older models using some xorg trickery.

The following will:

  • Disable any motion on the large trackpad
  • Carve out the trackpad into LEFT, RIGHT and MIDDLE buttons
  • Utilize the trackpoint (little red pointer) for mouse movement only.

Here’s how:

  • Install the xorg-x11-drv-synaptics package (probably already installed).
yum install x11-drv-synaptics -y
  • Copy and paste the below command as root.
  • Restart X11 or reboot.
cat > /etc/X11/xorg.conf.d/51-fix-lenovo-trackpad.conf << EOF
Section "InputClass"
        Identifier "touchpad catchall"
        Driver "synaptics"
        MatchIsTouchpad "on"
        MatchDevicePath "/dev/input/event*"
####################################
## The lines that you need to add ##
# Enable left mouse button by tapping
        Option "TapButton1" "1"
# Enable vertical scrolling
        Option "VertEdgeScroll" "1"
# Enable right mouse button by tapping lower right corner
        Option "RBCornerButton" "3"
####################################

EndSection

# This option enables the bottom right corner to be a right button 
# on non-synaptics clickpads.
# This option is only interpreted by clickpads.
Section "InputClass"
        Identifier "Default clickpad buttons"
        MatchDriver "synaptics"
        Option "SoftButtonAreas" "50% 0 82% 0 0 0 0 0"
EndSection

# This option disables software buttons on Apple touchpads.
# This option is only interpreted by clickpads.
Section "InputClass"
        Identifier "Disable clickpad buttons on Apple touchpads"
        MatchProduct "Apple|bcm5974"
        MatchDriver "synaptics"
        Option "SoftButtonAreas" "0 0 0 0 0 0 0 0"
EndSection

# Quirks for special touchpads
# Force clickpad on for wireless trackpad. The propbit isn't set 
# on 3.3.  Remove once we're on 3.4
Section "InputClass"
        Identifier "Disable clickpad buttons on Apple touchpads"
        MatchProduct "Apple Wireless Trackpad"
        MatchDriver "synaptics"
        Option "ClickPad" "on"
EndSection
 
# Some devices have the buttons as part of the lower edge of the
# touchpad. Pressing a button moves the cursor, causing cursor 
# jumps and erroneous clicks.
# Use synaptics area property to work around this, udev labels 
# these devices for us as touchpad_button_overlap.
# Affected: Dell Mini
Section "InputClass"
        Identifier "touchpad button overlap"
        MatchIsTouchpad "on"
        MatchTag "touchpad_button_overlap"
        Option "AreaBottomEdge" "4000"
EndSection
 
# Some devices have the buttons on the top of the touchpad. 
# For those, set the touchpad buttons to exactly that.
# Affected: Lenovo T440, x240 etc.
Section "InputClass"
        Identifier "touchpad buttons on top"
        MatchIsTouchpad "on"
        MatchTag "touchpad_softbutton_top"
        Option "SoftButtonAreas" "60% 0 0 0 40% 60% 0 0"
EndSection

### Revert trackpad to a motionless, normal mouse surface
#Section "InputClass"
# Identifier "enable 3 bottom software buttons"
# MatchDriver "synaptics"
# # right button: 60% to right edge, 82% to bottom edge
# # middle button: 40% to 60%, 82% to bottom edge
# Option "SoftButtonAreas" "60% 0 82% 0 40% 60% 82% 0"
#EndSection
Section "InputClass"
        Identifier "Default clickpad buttons"
        MatchDriver "synaptics"
        Option "SoftButtonAreas" "70% 0 1 42% 36% 70% 1 42%"
        Option "AreaBottomEdge" "1"
EndSection
EOF

NOTE: To get used to how the mousepad would now be carved up I found it useful to also use a Firefox addon which you can disable middle-click until you get used to how things are divided.

The default behavior for middle-click is the close a tab, this addon lets you disable this within the settings and also adds functionality to color unread tabs red for easy distinction.

In newer model Lenovos they have reverted back to hardware mouse buttons.

About Will Foster

hobo devop/sysadmin, all-around nice guy.
This entry was posted in open source, sysadmin and tagged , , , , , , . Bookmark the permalink.

Have a Squat, Leave a Reply ..

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s