Keyboard Shortcut To Toggle A Trackpad
I do not like laptop trackpads. They are not a good interface. A trackball would be more sensible and more like a mouse. I keep the trackpad on my Thinkpad T400 disabled and I use a small wireless mouse.
Despite my dislike, I decided I should have the trackpad available on demand. I wrote a script to toggle the trackpad. Opening a terminal window and running the script is a tad clunky. I prefer a clean desktop and that excluded a desktop shortcut. A *.desktop
file in /usr/local/share/applications might suffice, but then I have to wade through the panel menu to launch the script.
A keyboard shortcut made sense.
I wanted to use the built-in Fn
keys. There are three open Fn key combinations: F6, F10, and F11. I decided to use Fn+F6
.
I added an /etc/acpi/event
action and an /etc/acpi/trackpad.sh
script, that launches /usr/local/bin/trackpad-toggle
. I could have linked the action file directly to /usr/local/bin/trackpad-toggle
, but I wanted consistency with the other /etc/acpi/event
actions and scripts.
My trackpad-toggle
script worked great in a terminal. The script always failed with the Fn+F6
shortcut. Adding some temporary logging output commands revealed why. With the shortcut the script gets run in a non-interactive shell, which means the xinput
command failed. I used the xinput
and synclient
commands to determine the state of the trackpad and change the state. I added an interactive test to add when necessary an export DISPLAY=:0.0
snippet in the script to resolve the problem.
As I have been tinkering with Slackware 14.2 in preparation of updating to that release, I tested the new arrangement there too. The script again failed. This time I discovered for some reason the Fn+F6
shortcut is not recognized. I verified this with the acpi_listen
command. I noticed the Fn+F11
shortcut was recognized. I modified the acpi files to use that shortcut.
The shortcut again failed. This time I paid closer attention to the output of the acpi_listen
command. The event commands had changed.
Slackware 14.1:
event=ibm/hotkey HKEY 00000080 0000100b
Slackware 14.2:
event=button/fnf11 FF11 00000080 00000000 K
Next I discovered my trackpad-toggle
script failed when run as root. The script ran fine as non-root. Yeah, I know what the priesthood chants about running X as root. Yadda yadda. Testing as root is legitimate. Not that I expect to need the trackpad as root, but the breakage is Just Another Example of Broken Software.
I rebooted to 14.1 to use Fn+F11
and successfully tested.
One thing in free/libre software is certain. Some developer somewhere will declare something “deprecated” and remove support without asking anybody. Something is always broken.
This is why the Year of the Linux Desktop never arrives. Linux operating systems are high maintenance. People just want to get things done.
Posted: Usability Tagged: Slackware
Category: