This project is daemon which listens to dbus signals and runs applications accordingly. The signals, application to run and some rules that will be evaluated against incoming dbus signals can be easily changed in the configuration file. This application is mainly intended to work with the openmoko framework so end users will be able to run application uppon events without too much effort, though that isn't a limitation. For example, one can set the aux button to launch the dialer and the other can set a sound when screen is dimmed with as little as no effort.
(The default config file is set so open moko terminal will be run when the aux button is pressed for two or more seconds)
- author: Tom Hacohen <available_at_profile>
- this is a python script so code resides in /usr/bin/siglaunchd (hopefuly in a public svn soon)
- link: package
How To Use
siglaunchd connects to predefined dbus signals checks some parameters and if the signal matches the application associated with it is launched.
This daemon reads the configuration file looking for records of the type:
- bin is the binary to run (and parameters)
- interface, busname, path and signal are dbus related
- rules are seperated by a ',' and look like id(=|<|>)value.
For example if I a rule to check if the first parameter got from the dbus signal equals to "test" the rule will be: 0=test
Example configuration file line: "DISPLAY=:0.0 openmoko-terminal2"=org.freesmartphone.Device.Input;org.freesmartphone.oeventsd;/org/freesmartphone/Device/Input;Event;0=AUX,1=released,2>1
I used this configuration to run the openmoko-terminal2 everytime I held the aux button for more than 2 seconds.
You can actually add as many lines you want to the config and associate as many applications needed to a single signal with different/same rules(in different lines) .
This daemon is designed for use with the openmoko framework, read about the framework dbus signals at: http://git.freesmartphone.org/?p=specs.git;a=blob_plain;f=html/index.html
Please send me feedback about bugs/suggestions. Enjoy.
- upgrade the rules system (add more complex variable types for comparison in the rules)
- add errors (and a log file?) when the configuration file is broken
- build sample applications to go with it
- < and > only supports floats, add string support (= works with strings).
- add support for SIGHUP so configuration will be loaded without app restart
- change the config files to be in xml/other format instead of the current custom one