-
Touchpad Control
There are two drawbacks to using a laptop: the touchpad and the touchpad.
First, you are typing something and the touchpad decides you've tapped in the secret code for "destroy, destroy, frustration is irrelevant" and whatever it was you were doing is gone.
Second, this still happens even though you've plugged in an external mouse and aren't using the touchpad at all.
The route to solving the first problem is through syndaemon and the route to solving the second is through synclient. Both are command line apps already installed in Knoppix (6.4.4. at least).
To get the right settings automatically when Knoppix start-ups you need an additional script in /etc/X11/Xsession.d and to get the settings to change automagically when you plug-in or unplug a USB mouse, you need to add an extra pair of rules to /etc/udev/rules.d.
There are examples of how to do this out there but they usually start with someone complaining what used to work has stopped and could they crib a new solution from someone who has already done all the hard work.
Seems Knoppix is no exception and none of the solutions out there work. Seems xhost + is missing somewhere for sentimental reasons or perhaps Knoppix is just using a very new X server with new and improved security (the kind that got Windows Vista such a bad name).
Here's my take on this:
Code:
# /etc/udev/rules.d/75-touchpad.rules
# Disable touchpad when USB mouse is plugged in and reenable when USB mouse is removed
ACTION=="add", SUBSYSTEM=="input", ENV{ID_INPUT_MOUSE}=="1", RUN+="/etc/X11/Xsession.d/50touchpad 1"
ACTION=="remove", SUBSYSTEM=="input", ENV{ID_INPUT_MOUSE}=="1", RUN+="/etc/X11/Xsession.d/50touchpad 0"
# EOF
and
Code:
#!/bin/sh
# /etc/X11/Xsession.d/50touchpad
if pidof X >/dev/null; then
# Turn touchpad off when a USB mouse is present
pidfile=/var/run/syndaemon.pid;
if [ -n "${XAUTHORITY}" ]; then
# Xsession initialisation
if lsusb -v 2>/dev/null | grep -qF Mouse; then
synclient TouchpadOff=1;
else
syndaemon -d -t -k -p $pidfile;
fi
else
# udev hotplug event
DISPLAY=":0";
USER=$(who | awk "/ $DISPLAY /"'{print $1}');
XAUTHORITY=/home/$USER/.Xauthority;
export DISPLAY XAUTHORITY;
synclient TouchpadOff=$1;
if [ "$1" -eq 1 ]; then
[ -f $pidfile ] && kill $(cat $pidfile);
[ -f $pidfile ] && sync;
else
[ ! -f $pidfile ] && syndaemon -d -t -k -p $pidfile;
[ ! -f $pidfile ] && sync;
fi
fi
fi
# EOF
The second must be executable as it is called by the rules in the first.
Enjoy.
Last edited by Forester; 03-17-2011 at 11:30 PM.
Posting Permissions
- You may not post new threads
- You may not post replies
- You may not post attachments
- You may not edit your posts
-
Forum Rules
LENOVO P520 Workstation W-2135 up to 128GB RAM 4TB SSD Win11P WiFi DVD/RW Gaming
$439.88
Lenovo Workstation Gaming NVIDIA RTX 2080 W-2135 up to 128GB RAM 4TB SSD Win11P
$739.99
Lenovo IdeaPad 5i Slim 5 16IRL8 16" (512GB SSD, Intel Core i5-1335U, 1.30GHz,...
$469.00
Lenovo 500w Gen 3 Laptop, 11.6" IPS Glass, N6000, 8GB, 128GB SSD, Win 11 Home
$186.99
Lenovo Ideapad 1i 15.6" FHD Notebook Intel Core i5-1235U 8GB RAM 256GB SSD
$339.99
Lenovo Ideapad 1 15Amn7 15.6" Laptop Ryzen 3 7320U 8GB 256GB SSD W11H-64
$189.99
Lenovo ThinkPad Yoga 11e 11.6" 2in1 Touch Intel Core i3 4GB RAM 128GB SSD Win10
$60.00
Lenovo ThinkPad E545 A6 5350M 2.9GHz 8GB RAM 320GB HDD NO OS
$99.00
Lenovo K14 AMD Laptop, 14" FHD IPS LED , Ryzen 5 5600U, 16GB, 256GB SSD
$569.00
Lenovo IdeaPad Flex 5 Chrome 14IAU7 i3-1215U 8GB 256GB SSD Chrome OS
$199.99