You are not logged in.
i never use my touchpad except for when i don't have my USB mouse connected. so it would make sense to have it disabled when i do.
i've read on the Arch-wiki that you can do this through udev, but i'm not quite confident enough to try that out yet, and then i stumbled across this simple solution, which i really like, because it is so simple. in fact, it is a bit of a hack, but it works.
this is for synaptics touchpads only, as the synclient is the synaptics touchpad driver. however, the concept stays the same for any other touchpad i guess.
make a bash-script somewhere (some place where you have your bash scripts). i called it 'touchoff.bash'.
gedit touchoff.bash
Gedit opens to an empty file. copy-paste in this code:
#!/bin/bash
# thank you: http://www.linuxquestions.org/questions/debian-26/shmconfig-in-debian-645503/#post3838794
# script to turn off touchpad if mouse present at login
# synclient is the synaptic utility to manage the touchpad
# grep the "lsusb" output and do a wordcount on number of lines with "Logitech" which should = 1 if a Logitech mouse is present
#
# Obviously the "Logitech" should be replaced with your brand of mouse, and perhaps be more exact in case you have other USB devices that have similar names
/usr/bin/synclient touchpadoff=`lsusb | grep Logitech | wc -l`
save it.
now type:
chmod +x touchoff.bash
this makes it executable.
now, if you want to try how this works in the terminal (for better understanding, and to test if it actually works), type this:
synclient touchpadoff=1
this should disable the touchpad (try it!) to enable it again, type:
synclient touchpadoff=0
so now you have your own script for switching the touchpad on and off when a USB mouse is present. however, this is not nearly good enough. we want this stuff to happen automatically on start-up! so, let's add it to the Openbox autostart.sh file.
right-click somewhere to bring up the Openbox menu. go: Settings > Openbox Config > Edit autostart.sh
in the file, move somewhere to the bottom, so all the other stuff is loaded already before executing this command. now add the link to your script. for me, this is:
/usr/local/bin/scripts/touchoff.bash &
for you it might be a different directory, so mind that stuff. also, do not forget the &. if you want to know why, read the autostart.sh documentation, google it.
try it out! logout, log back in, and see if it works!
Offline
^ i hate... hey, i hate a lot of things! anyway, i didn't really like it when i was very very new to linux that there were people explaining things halfway. so stuff like 'put that in your config file'... and me: 'where the hell is the file?'... have to do a separate google to find that out, while he could've been more specific. explain stuff, we are all newbies damnit!
so, you know that one song by Michael Jackson, that goes: "if you wanna make the world a better place, take a look at yourself and make that, CHAAAAAAAANGE!"... so that's why!
Last edited by rhowaldt (2011-11-09 19:40:22)
Offline
lol... That is the ONLY song by MJ I ever liked and own
I use the same philosophy in all of my How To's as well
Offline
Very nice, very nice, thanks Ro!
I additionally have 'ton.sh' and 'toff.sh' scripts which are simply synclient touchpadoff=0/1 called by keyboard shortcuts. There is also syndaemon to disable touchpad when typing...
100 Euro Question: How to disable mouse when touchpad is connected? (kidding)
Sweaty lads picking up the soap | I love the new "Ignore user" button
Offline
thank you for this.
Offline
Thank you rhowaldt!
Offline
Nice write up!
On waldorf, I had to install usbutils first, to get lsusb
sudo apt-get install usbutils
Offline
i see a lot of stuff around on turning off your touch pad but no-one says why? I dont use my touch pad but what advantage is there in turning it off - is it using a lot of resources or something?
Troll = not a fanatic
slave of #! and arch
Offline
Techniques to Disable Touchpad – Why would you want to?
Want to know how to Disable the Touchpad on your laptop? There are many reasons to want to turn off or disable touchpads. I know it frustrates me greatly when the bottom of my palms brush the touchpad. The character I was typing suddenly quits appearing, and the random mouse and keyboard effects that happen next cause me no end of grief. Occasionally, I will run across a touchpad that is malfunctioning and is causing random effects without being touched, and there is good reason to want to disable it for this as well.
(from http://disabletouchpad.net/; the "techniques" are for Windows)
Last edited by pidsley (2012-05-25 17:40:10)
Offline
^ exactly that. i touch my touchpad with the bottom of my hands when i type, my mouse moves around, it is annoying. plus, i never use it. so anything i never use AND is annoying at the same thing, i turn off
Offline
Yeah, this doesn't work for me. I'm 100% I did everything correct. I went over everything a lot of times. It doesn't work.
The scrip works. If I click it. So clearly, lsusb works, the script works, the touchpad gets disabled if I have my mouse in and it doesn't if I don't.
The problem is that it's not automatic. I tried relog, restart, nada.
If I un-plug and plug my mouse again the touchpad stays on.
If I start #! with my mouse plugged in the touchpad stays on.
Whatever I do, the touchpad only turns off if two conditions are met
1) I click the script
2) The mouse is plugged in
Both in the same time.
The autostart is set fine. I've put the touchoff.bash in /home/astoria/documents/touchoff.bash &
Offline
^ It's not meant to be automatic, it's meant to run once on log in.
If you want things to be automatic, e.g. when you (un)plug your mice, you need to go with udev rules: https://wiki.archlinux.org/index.php/To … _detection
If you can't sit by a cozy fire with your code in hand enjoying its simplicity and clarity, it needs more work. --Carlos Torres
I am a #! forum moderator. Feel free to send me a PM with any question you have!
Offline
In my case, the command
synclient touchpadoff=1
worked immediately and was simple enough for me.
And thanks, this is the answer I was expecting.
Offline
In my case, the command
synclient touchpadoff=1
worked immediately and was simple enough for me.
And thanks, this is the answer I was expecting.
This also worked for me. My question is: Since I don't need the script, how do I make this the default loaded on startup?
regards
Hachiman
Offline
Wow, really helpful. Thank you.
Offline
on startup include it in /home/one/.config/openbox/autostart file. add a line
synclient touchpadoff=1
if you need it back synclient touchpadoff=0 in console
another thing to do without script is to make shortcut keys
obstacles are only in your mind. how you deal with them is what "matters".
Offline
I achieve the same by having this in my .xinitrc:
if [ `ls -d /sys/class/input/mouse* | wc -w` -gt 1 ];then
synclient TouchpadOff=1
fi
To switch the touchpad on when unplugging the mouse, and off again when plugging it in, I have this:
/etc/udev/rules.d/62-touchpad.rules
ACTION=="add", ATTRS{bInterfaceClass}=="03", ATTRS{bInterfaceSubClass}=="01", ATTRS{bInterfaceProtocol}=="02", ENV{REMOVE_CMD}="/usr/local/bin/touchpadtoggle 0", RUN+="/usr/local/bin/touchpadtoggle 1"
/usr/local/bin/touchpadtoggle
#!/bin/bash
export XAUTHORITY="/home/<username>/.Xauthority"
# xfile=$(find /var/run/gdm/ -name *<username>* -print -quit)
# export XAUTHORITY="$xfile/database"
export DISPLAY=":0.0"
/usr/bin/synclient touchpadoff=$1
You might have to find out how to handle authorisation if you don't use either slim or startx to start your WM/DE. The two lines I commented out are needed for GDM. The attributes in the udev rule should work with every USB mouse.
Offline
is there a command to toggle it?
for instance is there a way for a if 1=true then off and vice versa for a script?
obstacles are only in your mind. how you deal with them is what "matters".
Offline
is there a command to toggle it?
for instance is there a way for a if 1=true then off and vice versa for a script?
I don't really get your question - I am not even sure if you are talking to me...
Anyway:
Both the snippet for xinitrc and the udev rule will toggle the touchpad according to certain conditions.
if [ `ls -d /sys/class/input/mouse* | wc -w` -gt 1 ];then... checks if there is more than one mouse connected and switches off the touchpad if true, and does nothing if false.
The udev-rule checks if a mouse is being (dis)connected and calls the touchpadtoggle script with the according parameter (0 when disconnecting it, 1 when connecting).
If you want to toggle manually, just use synclient TouchpadOff=X.
Offline
I was woundering if there was a single script that could be used for two functions.
touchpadoff=1 then touchpadoff=0 and vice versa. my reasoning is that it would be nice to get the touchpad on off button working.
edit: the more i think about it this may be a unintentional hijack let me know.
Last edited by bleach (2013-08-13 10:02:21)
obstacles are only in your mind. how you deal with them is what "matters".
Offline
^ you're looking for this script...
#!#!#! Forum etiquette #!#!#!
Are you a new member!? Have you introduced yourself?!
CLI basics | LVM | smxi | chrooting | multiarch
Offline
thank you that is what I was looking for.
obstacles are only in your mind. how you deal with them is what "matters".
Offline
Copyright © 2012 CrunchBang Linux.
Proudly powered by Debian. Hosted by Linode.
Debian is a registered trademark of Software in the Public Interest, Inc.
Server: acrobat