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
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.
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
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.
event=ibm/hotkey HKEY 00000080 0000100b
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.