blob: 3d0aa0345b4d7a5707bf7e2b222876fa6ad9dcad (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
|
#!/bin/sh
#
# Sample uzbl eventhandler
#
# demonstrating one possible way to access and process
# uzbl's event messages
#
# Usage: uzbl | eventhandler
#
VERBOSE=1
ALTPRESSED=0
log () {
[ -n "$VERBOSE" ] && echo "$1"
}
fifo () {
log "$1 > ${FIFO_PATH:-unset}"
[ -n "$FIFO_PATH" ] && echo "$1" > "$FIFO_PATH"
}
log "Init eventhandler"
clear_modifiers() {
ALT_PRESSED=0
CONTROL_PRESSED=0
#etc.
fifo 'set status_message = '
}
while read EVENT; do
if [ "$(echo $EVENT | cut -d ' ' -f 1)" != 'EVENT' ]; then
continue;
fi
EVENT="`echo $EVENT | sed 's/^EVENT //'`"
# get eventname
ENAME=`echo "$EVENT" | sed -ne 's/\([A-Z]*\) .*/\1/p'`
if [ x"$ENAME" = 'xFIFO_SET' ]; then
FIFO_PATH=`echo $EVENT | cut -d ' ' -f 3`
elif [ x"$ENAME" = x'KEY_PRESS' ]; then
KEY=$(echo "$EVENT" | sed -ne 's/KEY_PRESS \[.*\] \(.*$\)/\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
#
fifo 'set status_message = @status_message <span foreground="red" weight="bold">Alt</span>'
fi
if [ "$ALT_PRESSED" = 1 ]; then
# Keys
#
if [ x"$KEY" = x'a' ]; then
ALT_PRESSED=0
fifo 'set inject_html = <html><body> <h1>You pressed Alt+a </h1> </body></html>'
fifo 'set status_message = '
# 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
fifo 'set inject_html = <html><body> <h1>You pressed Alt+b </h1> </body></html>'
fifo 'set status_message = '
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
fifo 'set status_message = @status_message <span foreground="red" weight="bold">Control</span>'
#etc.
fi
fi
done
|