- Learn Linux
- Learn Electronics
- Raspberry Pi
- LPI certification
- News & Reviews
29 January 2014
I recently bought a Dell Inspiron 17 laptop, to primarily run Linux. This is a 17" laptop with touchscreen and a Touchpad. The touchpad is a single rectangular area which appears to integrate the two "mouse" buttons with a line marked on top of the touchpad. This is sometimes called a clickpad as the entire pad can be cliked.
I noticed some odd behaviour during the Ubuntu live desktop, whenever I used the trackpad. It would sometimes appear to work, but then other times it would become completely erratic with windows being moved around the screen. It turned out that it was when I was trying to drag a window (with the mouse button held down) that this would happen. This was bizarre especially as the touchscreen was working fine and that sometimes the touchpad appeared to work correctly. I had also ruled out a hardware problem as the touchpad worked fine in Windows 8 and Windows 8.1. I went through the install of Ubuntu by using the touchscreen (after all I would have to apply any fix to the installed system anyway) and then fixed the behaviour after the install.
I later worked out that I could have fixed the main problem temporarily during the install with the following command.
The touchpad is created as a single pad with the buttons marked on rather than being separate physical buttons.
My first though was to search the Internet for others with similar problems. I couldn't find any similar problems through Google although it was difficult think of a search term that would show the same symptoms without showing unrelated issues. I therefore spent time trying to identify what was happening, when it was happening and then trying to find a solution within the X input controller configuration files.
Here's an explanation of what the issue was. First we need to consider the touchpad in more detail.
The touchpad is a single piece of material that detects finger movement and can be pressed down. It supports finger gestures such as using two fingers to zoom and scroll (which is different from my previous laptops from Dell and other manufacturers which have typically included a separate scroll area on the pad).
The first thing to note is that the touchpad detected finger movement for the entire pad including the button area at the bottom. Another thing is that there is only one button press sensor which is activated if the left button is pressed, the right button is pressed or indeed any other part of the touchpad is pressed firmly.
So one possible solution comes to mind which is to ignore the buttons and the bottom and instead just press the touchpad hard with your finger. Having used touchpads for a long time this feels very alien and is actually very difficult to do. With traditional touchpad buttons you normally use your thumb which is easier than pressing down with a finger, but also if you are pressing down with the same finger that you are controller the cursor position then the finger is likely to move slightly when pressing.
Also it's not that the touchpad buttons weren't working, it has already worked out that a finger on the right button whilst pressing down is classed as a right mouse button press, but what was happening is that when there were was two fingers on the touchpad (actually one finger and one thumb) then it saw any movement of the fingers as being a gesture. This is the case even if the finger is only resting lightly on the touchpad.
I found that using the synclient (synaptic touchpad client) software I could find the logical position of the bottom of the pad and by telling it that the bottom edge was lower it would ignore the thumb resting on the button.
To find the current position I used
synclient -l | grep BottomEdge BottomEdge = 4416 AreaBottomEdge = 0
BottomEdge is the physical edge and changing the AreaBottomEdge was used to create a dead area on the bottom.
Now that I had worked out a way of creating a temporary fix I could put in a permanent fix.
The files used to configure the input devices are stored within the X configuration at /usr/share/X11/xorg.conf.d/ The particular file for the touchpad is the file called 50-synaptics.conf.
The file shouldn't however be edited in that folder as it can be replaced by future package updates. So first it should be copied to the /etc/X11/xorg.conf.d folder.
Then look for the section that refers to clickpads and update it as follows by adding the AreaBottomEdge entry
# 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" # To disable the bottom edge area so the buttons only work as buttons, # not for movement, set the AreaBottomEdge Option "AreaBottomEdge" "82%" EndSection
There is still one thing with the touchpad in Ubuntu that doesn't behave quite as I'd like it (or indeed as it does in Windows 8 / Windows 8.1). The mouse cursor can still act erratically (or more likely just not drag / scroll) if a finger is resetting on the main area of the clickpad when the left mouse button is pressed with the thumb. I haven't yet found a fix in Ubuntu for this, but at least I can change my behaviour slightly to avoid this. I therefore now remove my finger from the touchpad when pressing the button and I have started using a two finger drag to scroll the page (which is an improvement especially over the hidden grab scrollbars that Ubuntu uses).
It would be nice to get a solution to this as well, so if anyone else has found a solution so that a finger can be left on the main area of the touchpad whilst clicking the clickpad with a thumb then please let me know so that I can update this.
The single touchpad / clickpad looks good, but is not as user friendly, or easy to setup in Linux as traditional touchpads. I don't think there is any benefit in being able to press at any position (sometimes called a clickpad), as it's difficult to keep the cursor in the same position when pressing on the pad.
After configuration the gestures do work well and I have become a fan of the two finger scrolling.
The Dell Inspiron 17 - 7737 on which this was tested also benefits from having a touchscreen, which works well in Ubuntu Linux.