Triggerhappy is a lightweight hotkey daemon that
authormirko <mirko@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Wed, 17 Nov 2010 12:09:45 +0000 (12:09 +0000)
committermirko <mirko@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Wed, 17 Nov 2010 12:09:45 +0000 (12:09 +0000)
can launch arbitrary commands on input events.
It supports the hotplugging of devices and the
processing of key combinations.

Thanks to Stefan Tomanek!

git-svn-id: svn://svn.openwrt.org/openwrt/packages@24018 3c298f89-4303-0410-b956-a3cf2f4a3e73

utils/triggerhappy/Makefile [new file with mode: 0644]
utils/triggerhappy/files/triggerhappy-example.conf [new file with mode: 0644]
utils/triggerhappy/files/triggerhappy.hotplug [new file with mode: 0644]
utils/triggerhappy/files/triggerhappy.init [new file with mode: 0644]

diff --git a/utils/triggerhappy/Makefile b/utils/triggerhappy/Makefile
new file mode 100644 (file)
index 0000000..984708d
--- /dev/null
@@ -0,0 +1,53 @@
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=triggerhappy
+PKG_VERSION:=0.1.3
+PKG_REV:=f7c42167127fb8377f99440f943ab863433b14b5
+PKG_RELEASE:=1
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=git://github.com/wertarbyte/triggerhappy
+PKG_SOURCE_PROTO:=git
+PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
+PKG_SOURCE_VERSION:=$(PKG_REV)
+PKG_MD5SUM:=7da137a7d2ba1ce396231e821e68de4e
+
+include $(INCLUDE_DIR)/package.mk
+
+define Package/triggerhappy
+  SECTION:=utils
+  CATEGORY:=Utilities
+  TITLE:=handle input events and run configured programs
+  URL:=http://github.com/wertarbyte/triggerhappy
+endef
+
+define Package/triggerhappy/description
+       triggerhappy - handle input events and run configured programs
+       The daemon thd can handle hotplugged input devices and is configured through
+       simple configuration files in /etc/triggerhappy/triggers.d/.
+endef
+
+MAKE_FLAGS += \
+       $(TARGET_CONFIGURE_OPTS) \
+       $(1)
+
+define Package/triggerhappy/install
+       $(INSTALL_DIR) $(1)/usr/sbin
+       $(INSTALL_DIR) $(1)/etc
+       $(INSTALL_DIR) $(1)/etc/init.d
+       $(INSTALL_DIR) $(1)/etc/triggerhappy
+       $(INSTALL_DIR) $(1)/etc/triggerhappy/triggers.d/
+       $(INSTALL_DIR) $(1)/etc/hotplug.d/input/
+       $(INSTALL_BIN) $(PKG_BUILD_DIR)/thd $(1)/usr/sbin
+       $(INSTALL_BIN) $(PKG_BUILD_DIR)/th-cmd $(1)/usr/sbin
+       $(INSTALL_BIN) ./files/triggerhappy.init $(1)/etc/init.d/triggerhappy
+       $(INSTALL_BIN) ./files/triggerhappy.hotplug $(1)/etc/hotplug.d/input/10-triggerhappy
+       $(INSTALL_BIN) ./files/triggerhappy-example.conf $(1)/etc/triggerhappy/triggers.d/example.conf
+endef
+
+$(eval $(call BuildPackage,triggerhappy))
diff --git a/utils/triggerhappy/files/triggerhappy-example.conf b/utils/triggerhappy/files/triggerhappy-example.conf
new file mode 100644 (file)
index 0000000..3a8017a
--- /dev/null
@@ -0,0 +1,14 @@
+# This is an example configuration for the triggerhappy daemon (thd)
+# please note that every file to be processed must end in ".conf"
+#
+# To view a list of supported event codes, use "thd --listevents" or
+# "thd --dump /dev/input/event*"
+#
+# Format:
+# <eventcode> <value> <command>
+#
+# values for key events are 1 (pressed), 0 (released) or 2 (held)
+#
+## control an mpd instance
+# KEY_NEXTSONG         1       /usr/bin/mpc next
+# KEY_PREVSONG         1       /usr/bin/mpc prev
diff --git a/utils/triggerhappy/files/triggerhappy.hotplug b/utils/triggerhappy/files/triggerhappy.hotplug
new file mode 100644 (file)
index 0000000..78ad349
--- /dev/null
@@ -0,0 +1,15 @@
+#!/bin/sh
+THD_SOCKET=/tmp/triggerhappy.socket
+[ -S "$THD_SOCKET" ] || exit
+
+case "$ACTION" in
+       add)
+               DEVICE="/dev/$DEVNAME"
+               [ -c "$DEVICE" ] || exit
+               # offer device to triggerhappy daemon
+               /usr/sbin/th-cmd --socket "$THD_SOCKET" --add "$DEVICE"
+       ;;
+        remove)
+               # nothing to do
+       ;;
+esac
diff --git a/utils/triggerhappy/files/triggerhappy.init b/utils/triggerhappy/files/triggerhappy.init
new file mode 100644 (file)
index 0000000..e846d29
--- /dev/null
@@ -0,0 +1,10 @@
+#!/bin/sh /etc/rc.common
+START=93
+
+start() {
+       /usr/sbin/thd --socket /tmp/triggerhappy.socket --triggers /etc/triggerhappy/triggers.d/ --daemon /dev/input/event*
+}
+
+stop() {
+       /usr/sbin/th-cmd --socket /tmp/triggerhappy.socket --quit
+}