#!/bin/bash set -e PATH=/bin:/usr/bin:/sbin:/usr/sbin DBUS_SEND="/usr/bin/dbus-send" usage() { echo "USAGE> input_keyevent {key name} {down | up}" echo "" echo "example>" echo " input_keyevent XF86Back" echo " -> Generate a 'down'+'up' event of XF86Back key" echo " input_keyevent XF86Back down" echo " -> Generate a 'down' event of XF86Back key echo " input_keyevent XF86Back up" echo " -> Generate a 'up' event of XF86Back key } failed_on_sending_dbus() { echo "Failed on sending key generation request ! (key name : $1)" exit 1 } if [ $# -lt 1 ]; then echo "Arguments are required." usage exit 1 fi if [ $# -gt 2 ]; then echo "Number of arguments are exceed." usage exit 1 fi if [ ! -x ${DBUS_SEND} ]; then echo "Tool doesn't exist or permission denied." exit 1 fi if [ "$#" = "1" ]; then $DBUS_SEND --system --type=method_call --print-reply --dest=org.enlightenment.wm /org/enlightenment/wm org.enlightenment.wm.Test.EventKey uint32:1 string:"$1" > /dev/null || failed_on_sending_dbus $1 $DBUS_SEND --system --type=method_call --print-reply --dest=org.enlightenment.wm /org/enlightenment/wm org.enlightenment.wm.Test.EventKey uint32:0 string:"$1" > /dev/null || failed_on_sending_dbus $1 else if [ "$#" = "2" ]; then case $2 in down) $DBUS_SEND --system --type=method_call --print-reply --dest=org.enlightenment.wm /org/enlightenment/wm org.enlightenment.wm.Test.EventKey uint32:1 string:"$1" > /dev/null || failed_on_sending_dbus $1 ;; up) $DBUS_SEND --system --type=method_call --print-reply --dest=org.enlightenment.wm /org/enlightenment/wm org.enlightenment.wm.Test.EventKey uint32:0 string:"$1" > /dev/null || failed_on_sending_dbus $1 ;; *) usage exit 1 esac fi fi