Sunday, September 11, 2016

Kali Linux : Touchpad issues - tapping, reverse/natural scrolling

Since I've started using Kali Linux, I have often encountered problems with my touchpad. The problem can either be with tapping (tapping the touchpad doesn't result in a click, and I have to press the physical button), or with scrolling (two finger scrolling doesn't work).

I have come across the following 3 fixes. At least one of them should work for you-

Fix 1: Easiest - GUI setting

This fix requires no fancy commands. You just have to go to Mouse & Touchpad settings and make appropriate changes. To go to the settings, you can either-
  • Press the windows key (on the lower bottom, Ctrl key, Function key, Windows key, Alt key), and type mouse in the search bar that shows up.
  • Click the activities button on the top left, and type mouse in the search bar that shows up.

Now, you should see something like this-

You can check the tap to click and two finger scroll options and your problem is solved.

If, however, you see something like this-

Then you have to use the next fixes, as the Mouse and Touchpad setting are useless for you.

Fix 2 : Tapping and reverse Scroll

If you are able to scroll just fine, but your touchpad is not registering the taps, then just type this command into the terminal-
synclient tapbutton1=1
This should enable tapping for you.

In my case, I had scrolling working without any problems, but I prefer natural scrolling, and that option wasn't there for me in mouse & touchpad settings. However, if you type synclient into the terminal, you see something like this-

    Parameter settings:
        LeftEdge                = 1618
        RightEdge               = 5366
        TopEdge                 = 1356
        BottomEdge              = 4536
        FingerLow               = 25
        FingerHigh              = 30
        MaxTapTime              = 180
        MaxTapMove              = 251
        MaxDoubleTapTime        = 100
        SingleTapTimeout        = 180
        ClickTime               = 100
        EmulateMidButtonTime    = 75
        EmulateTwoFingerMinZ    = 282
        EmulateTwoFingerMinW    = 7
        VertScrollDelta         = 114
        HorizScrollDelta        = 114
        VertEdgeScroll          = 0
        HorizEdgeScroll         = 0
        CornerCoasting          = 0
        VertTwoFingerScroll     = 1
        HorizTwoFingerScroll    = 0
        MinSpeed                = 1
        MaxSpeed                = 1.75
        AccelFactor             = 0.035014
        TouchpadOff             = 0
        LockedDrags             = 0
        LockedDragTimeout       = 5000
        RTCornerButton          = 0
        RBCornerButton          = 0
        LTCornerButton          = 0
        LBCornerButton          = 0
        TapButton1              = 1
        TapButton2              = 0
        TapButton3              = 0
        ClickFinger1            = 1
        ClickFinger2            = 1
        ClickFinger3            = 1
        CircularScrolling       = 0
        CircScrollDelta         = 0.1
        CircScrollTrigger       = 0
        CircularPad             = 0
        PalmDetect              = 0
        PalmMinWidth            = 10
        PalmMinZ                = 200
        CoastingSpeed           = 20
        CoastingFriction        = 50
        PressureMotionMinZ      = 30
        PressureMotionMaxZ      = 160
        PressureMotionMinFactor = 1
        PressureMotionMaxFactor = 1
        GrabEventDevice         = 0
        TapAndDragGesture       = 1
        AreaLeftEdge            = 0
        AreaRightEdge           = 0
        AreaTopEdge             = 0
        AreaBottomEdge          = 0
        HorizHysteresis         = 28
        VertHysteresis          = 28
        ClickPad                = 0

You can quickly notice the VertScrollDelta (delta usually refers to rate of change, here speed of scrolling) parameter which for me is set to 114. I decided to check if making it -114 would make it scroll at the same speed but in the opposite direction. To test that, I tried the following command-
synclient VertScrollDelta=-114
And turns out I was right and it did reverse the direction of scrolling.

Little problem

These changes that we made aren't persistent, and the synclient setting would revert to default every time you start your system again. There are many solutions to this, one of which include editing files in /usr/share/X11/xorg.conf.d/. However, these files tend to get overwritten and we have to deal with a lot of other mess to fix that behavior.

Instead, we will use a very simple solution, and just run the above two commands on system startup.

Add the commands to startup

Step 1 : Navigate to the .config directory
cd ~/.config/
Step 2 : Check if autostart folder exists
Step 3: If it doesn't exist, create the folder. If it exists, skip this step
mkdir autostart
Step 4: Navigate to autostart folder
cd autostart
Step 5: Use your favorite text editor [vim v/s/ sublime text?] (or cat ). I'm using leafpad to make things look less intimidating.
leafpad script.desktop
Step 6: A leafpad windows will pop up. Paste one of the following into the window and then save and then close leafpad.
If you are logged in as root (probably the case)
[Desktop Entry]

If you are logged in as another user (if you created a non-superuser account)
[Desktop Entry]
Exec=/home/<name here>/

Note 1 : To find the <name here> in second case, just navigate to home (cd ~) and find present working directory (pwd)
Note 2 : (If you're curious why I didn't use ~ and instead made two different scripts for root and other users) Exec=~/ didn't work for me. Maybe it does work in general, and there was some other factor in play for me, or maybe it isn't supposed to work at all. Not sure. Any comments in this regard are welcome.

Step 7: Change directory to home.
cd ~
Step 8: Create a file called
Step 9: Paste the following code into it. Then save.

synclient tapbutton1=1 #To enable tapping
synclient VertScrollDelta=-114 #To reverse direction of scroll
PS: Paste only the lines required by you.

Step 10: Make it executable
chmod 777
chmod a+x
Restart Kali and see if your tapping and reverse scroll are still working. If not, go through the steps again and see what you missed. Everything is case sensitive so you have to be very careful in that regard.


If typing the commands into the terminal worked for you, but automation by adding the commands to startup didn't, then here is one simple troubleshooting tip to isolate the problem.

Open a terminal and type
If your tapping/reverse scrolling is working fine now, then your script is fine, but the autostart directory content is not. Recheck steps 1 to 6.
If your tapping/reverse scrolling isn't working fine, then your script is flawed. Recheck step 7 to 10.

Fix 3 : modprobe method

I found out about this method here. It did fix a few things for me, but like the second reply on the thread, what happened with me was- 

Earlier my scroll was working and tap to click wasn't
After running the commands
Tap to click started working and two finger scroll stopped working

Also, even when my scroll was working it wasn't natural scroll and that's a bit inconvenient for me. So, Fix 2 above was the best fix for me. However, I've included this fix because it seems to work with most people. So here it is- 

Step 1 : Open a terminal. 
Step 2 : Type the following command. Your mouse pointer will stop working after typing the first command and will resume continue working (hopefully with the touchpad problems solved) after the second.
modprobe -r psmouse 
modprobe psmouse proto=imps


Follow these steps-

Step 1 : Navigate to required directory
cd /etc/modprobe.d/
Step 2 : Open text editor
leafpad whatever.conf
Step 3:  Paste this-
options psmouse proto=imps

Step 4: Save and exit

Restart and see if the changes are persistent. 

Again, I reiterate, this method is based on a fix I found on Kali Forums, and you should read further there if you are facing any problems.

That said, if you are facing any problems, then feel free to comment. If you followed the guide but had to do something a bit different to get it working, then also comment, as it may help others.


  1. or try this its worked for me...

    apt remove xserver-xorg-input-synaptics

    1. How would removing this package fix the problem?

    2. before i did upgrade for package for this i got a problem in sysytem and once i fixed it i found out my touchepad settings is gone,,, so i should remove it. before this command i had to check out what kind a pakg i have with this .... dpkg -l |grep xserver-xorg-input


© Kali Tutorials, 2016. Unauthorized use and/or duplication of this material without express and written permission from this site’s author and/or owner is strictly prohibited. Excerpts and links may be used, provided that full and clear credit is given to Shashwat Chaudhary and Kali Tutorials with appropriate and specific direction to the original content.
Bitcoin: 1B5aLqJcMW7zznffTxQwta8JTZsxBDPguC