gksyn: a gkrellm panel to control synaptics touchpads
Please notice: recent GNOME panels use gconf to control the touchpad behaviour, so that gksyn do not work anymore. I suggest you use instead the very nice touchpad_indicator by atareao.
gksyn is a GKrellm plugin to control synaptics touchpad behaviour.
Basically, the purpose of this plugin is to select if the touchpad is active or not. The rationale of this is that, when typing on the keyboard, too much often you can touch the active touchpad area an find yourself typing in a completed unwanted position or window.
After enabled, in your gkrellm you will have a new panel with an icon (a grey square with a green check in it) and the word “On” on the rigth. That means that your touchpad is enabled (see image to the right).
If you click on the word “on”, it will change to “Auto”. Now your touchpad will be enabled only if you are not typing for at least 2 seconds (default value that can be changed with the configuration tab of the plugin). When you type, the touchpad will be disabled and the icon will change to a grey square with a red cross on it.
If you click again on the “Auto” label, the touchpad will be put in a continuos “Off” status. This could be handy when you have an external mouse connected, but quite bad if not… so if the plugin does not detect an external mouse it will not let you switch to Off.
gksyn is basically a wrapper for the
syndaemon utility that comes with the synaptics package, with an added graphic interface and interactivity that gives you a nice feedback.
In the summer of 2005, Pietro Franchi proposed a cute patch to extend its funcionality (adding starting state configurability) and enhance the look. That lead to a 1.1.1 release. Moreover, now the software unpacks on its own subdirectory, as suggested by several users.
After trying to track the synaptics daemon, I decided to substantially change the approach, especially after the decision to disable SHM by default. So the version 2 should be independent (well, more independent) from the driver.
Convinced? So, download
gksyn, you have to:
- have gkrellm 2.2 or better installed, included development library;
- have synaptics driver installed. In debian-based linux distribution that means install the
- Uncompress the archive with
tar xvzf gksyn-x.y.z.tar.gz
setlb.soto your plugin directory ($HOME/.gkrellm/plugins)
- restart gkrellm, enable plugin and enjoy.
I hope you enjoy the plugin; please drop me a note if you did.
CAVEATS AND THE GORY DETAILS.
gksyn v2 uses the standard synaptics utilities.
This version of the
gksyn plugin uses (spawns) the commands
syndaemon, which do the real work of speaking with the touchpad. That way,
gksyn will be independent from updates (I hope) of the underlying drivers. Basically, if
symdaemon works for you,
gksyn should too.
One of the collateral effect of this is the necessity of using a
LD_PRELOAD trick to call the
syndaemon program. That program, infact, uses standard output to tell the user the status of the touchpad. Unfortunately, the buffering rules in Unix pipes make it impossible to use it as a subprocess and at the same time reading the output in real time: being not connect to a tty, the libc changes the
stdout buffering to full mode… so I used a little trick to change that. The problem is that
gksyn have to find the preload library, and that means that if your plugin directory is not the default one, you have to modify the source (search for the
the “off” status.
The off status is very dangerous. If you switch off the touchpad you can be stuck. To solve this, the plugin tries hard to guess if there is another mouse in the laptop, by looking at
/proc/bus/input/devices. In case of doubt,
gksyn refuses to switch to off state. You can change this, if you want, look at the function
In that case I strongly advise you to define a key to reenable the mouse. Under gnome, is simply a matter of going to System->Preferences->Keyboard Shortcut and define a new action, with the command “
synclient touchpadoff=0“, then assign it to a key combination. It can save your day.
ACKNOWLEDGMENT: (and links)
The software was written by a cut’n’paste and #include exercise of other’s people software, and more explicitly from: