Free Software

Software Engineering with FOSS and Linux

Fully disabling touchpad in Ubuntu 9.10 Karmic Koala

Ubuntu 9.04 used to allow you to fully disable the touchpad through the System -> Preferences -> Mouse -> Touchpad menu. In 9.10 this has been replaced with a ‘Disable touchpad while typing’ option, which I find inadequate in several cases. Here’s a way to fully disable your touchpad in 9.10:

  • First, find the HAL configuration file for your touchpad. Mine lies in /usr/share/hal/fdi/policy/20thirdparty/11-x11-synaptics.fdi, but according to some posts it might be found in /usr/share/fdi/policy/10osvendor/11-x11-synaptics.fdi
  • Either delete the HAL configuration file, or rename it to something else (without the .fdi extension). This way hald (the HAL daemon) will not reset the touchpad driver when we will disable it.
  • In a console, run xinput list to find the name of your touchpad device under X. For example, I get:

$ xinput list |grep -i touchpad

“AlpsPS/2 ALPS DualPoint TouchPad”    id=8    [XExtensionPointer]

  • To disable the  touchpad, run:

xinput set-int-prop “AlpsPS/2 ALPS DualPoint TouchPad” “Device Enabled” 8 0

Of course you should replace “AlpsPS/2 ALPS DualPoint TouchPad” with your own device name, as shown by xinput list.

To automatically disable your touchpad each time you log into X, you should add a startup script. In Gnome, use System -> Preferences -> Startup Applications, click on ‘Add’,  use a name like ‘Disable Touchpad’ and type in the xinput set-int-prop line in the Command field.

To facilitate touchpad handling (i.e. to enable/disable it at will, for example when you plug in/out a mouse), you could create the following script:

#! /bin/sh
### BEGIN INIT INFO
# Provides:          touchpad
# Required-Start:    $remote_fs $syslog $all
# Required-Stop:
# Default-Start:
# Default-Stop:    2
# Short-Description: Disables the touchpad
### END INIT INFO

PATH=/sbin:/usr/sbin:/bin:/usr/bin
TOUCHPAD=”AlpsPS/2 ALPS DualPoint TouchPad”

. /lib/init/vars.sh
. /lib/lsb/init-functions

case “$1” in
start)
xinput set-int-prop “$TOUCHPAD” “Device Enabled” 8 1
;;
restart|reload|force-reload)
rmmod psmouse && modprobe psmouse
;;
stop)
xinput set-int-prop “$TOUCHPAD” “Device Enabled” 8 0
;;
*)
echo “Usage: $0 start|stop” >&2
exit 3
;;
esac

Of course you should use your own device in the TOUCHPAD=… line. Save it in /etc/init.d/touchpad, and set it to off by default:

sudo update-rc.d touchpad stop 99 2 .

Note: The rmmode psmouse && modprobe psmouse commands in the restart option will reset your touchpad (and, incidentally, your mouse) if your driver fails due to a bug described here.

January 4, 2010 Posted by | linux | | 26 Comments