From 7c7bd642757cad50e2d08b054e59e75ca4c3cfb2 Mon Sep 17 00:00:00 2001 From: Dieter Plaetinck Date: Thu, 3 Sep 2009 16:42:39 +0200 Subject: add sample key handler from RobM. taken from http://lists.uzbl.org/pipermail/uzbl-dev-uzbl.org/2009-August/000261.html --- examples/data/uzbl/scripts/dispatcher.sh | 76 ++++++++++++++++++++++++++++++++ 1 file changed, 76 insertions(+) create mode 100644 examples/data/uzbl/scripts/dispatcher.sh (limited to 'examples') diff --git a/examples/data/uzbl/scripts/dispatcher.sh b/examples/data/uzbl/scripts/dispatcher.sh new file mode 100644 index 0000000..6f33406 --- /dev/null +++ b/examples/data/uzbl/scripts/dispatcher.sh @@ -0,0 +1,76 @@ +#!/bin/sh +# +# Sample uzbl key handler +# +# demonstrating one possible way to access and process +# uzbl's event messages +# +# Usage: uzbl | keyhandler +# + +ALTPRESSED=0 + +clear_modifiers() { + ALT_PRESSED=0 + CONTROL_PRESSED=0 + #etc. + echo 'set status_message = ' > "$FIFO_PATH" +} + +while read EVENT; do + # get eventname + ENAME=`echo "$EVENT" | sed -ne 's/\([A-Z]*\) .*/\1/p'` + + if [ x"$ENAME" = x'KEYPRESS' ]; then + KEY=$(echo "$EVENT" | sed -ne 's/KEYPRESS \[.*\] \(.*$\)/\1/p') + FIFO_PATH='/tmp/uzbl_fifo_'$(echo "$EVENT" | sed -ne 's/KEYPRESS \[\(.*\)\] .*$/\1/p') + + # Clear mofifiers on Escape + # + [ "$KEY" = Escape ] && clear_modifiers + + # Modifier: Alt_L + # + if [ x"$KEY" = x'Alt_L' ];then + clear_modifiers + ALT_PRESSED=1 + + # place an indicator showing the active modifier + # on uzbl's statusbar + # + echo 'set status_message = @status_message Alt' > "$FIFO_PATH" + fi + + if [ "$ALT_PRESSED" = 1 ]; then + + # Keys + # + if [ x"$KEY" = x'a' ]; then + ALT_PRESSED=0 + echo 'set inject_html =

You pressed Alt+a

' > "$FIFO_PATH" + echo 'set status_message = ' > "$FIFO_PATH" + + # delete keycmd + # here not needed. loading a new page + # resets it by default + # + #echo 'set keycmd = ' > "$F_PATH" + fi + if [ x"$KEY" = x'b' ]; then + ALT_PRESSED=0 + echo 'set inject_html =

You pressed Alt+b

' > "$FIFO_PATH" + echo 'set status_message = ' > "$FIFO_PATH" + fi + + fi + + # Modifier: Control_L and Control_R. + # + if [ x"$KEY" = x'Control_L' -o x"$KEY" = x'Control_R' ];then + clear_modifiers + CONTROL_PRESSED=1 + echo 'set status_message = @status_message Control' > "$FIFO_PATH" + #etc. + fi + fi +done -- cgit v1.2.3