Triggerhappy is a lightweight hotkey daemon that
Triggerhappy is a lightweight hotkey daemon that
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

--- /dev/null
+++ b/utils/triggerhappy/Makefile
@@ -1,1 +1,54 @@
+#
+# 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))
+

--- /dev/null
+++ b/utils/triggerhappy/files/triggerhappy-example.conf
@@ -1,1 +1,15 @@
+# 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
 

--- /dev/null
+++ b/utils/triggerhappy/files/triggerhappy.hotplug
@@ -1,1 +1,16 @@
+#!/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
+

--- /dev/null
+++ b/utils/triggerhappy/files/triggerhappy.init
@@ -1,1 +1,11 @@
+#!/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
+}
+

comments