diff options
author | 2009-09-04 01:01:46 +0200 | |
---|---|---|
committer | 2009-09-04 01:01:46 +0200 | |
commit | d7c302be4dd7f30785bfa8bbb0f9c2cf4989f868 (patch) | |
tree | 46daa64242869af6e0c86c9d15698a584be43cb6 /examples | |
parent | b235a942fb2cded2f81c07d2e00633aa6dcd3028 (diff) | |
parent | 369119525001e17d5e601578b3c61a0a3d5264fa (diff) |
Merge branch 'event-messages' of git://github.com/Dieterbe/uzbl into event-messages
Conflicts:
uzbl.c
Diffstat (limited to 'examples')
-rw-r--r-- | examples/config/uzbl/config | 6 | ||||
-rwxr-xr-x | examples/data/uzbl/scripts/dispatcher.sh | 97 | ||||
-rwxr-xr-x | examples/data/uzbl/scripts/download.sh | 3 | ||||
-rwxr-xr-x | examples/data/uzbl/scripts/history.sh | 3 | ||||
-rwxr-xr-x | examples/data/uzbl/scripts/load_url_from_bookmarks.sh | 2 | ||||
-rwxr-xr-x | examples/data/uzbl/scripts/load_url_from_history.sh | 2 | ||||
-rwxr-xr-x | examples/data/uzbl/scripts/scheme.py | 23 |
7 files changed, 129 insertions, 7 deletions
diff --git a/examples/config/uzbl/config b/examples/config/uzbl/config index ab2cf7f..efc4780 100644 --- a/examples/config/uzbl/config +++ b/examples/config/uzbl/config @@ -4,14 +4,14 @@ # keyboard behavior in this sample config is sort of vimstyle # Handlers -set history_handler = spawn $XDG_DATA_HOME/uzbl/scripts/history.sh set download_handler = spawn $XDG_DATA_HOME/uzbl/scripts/download.sh set cookie_handler = spawn $XDG_DATA_HOME/uzbl/scripts/cookies.py #set new_window = sh 'echo uri "$8" > $4' # open in same window set new_window = sh 'uzbl -u $8' # equivalent to the default behaviour -set load_start_handler = set status_message = <span foreground="khaki">wait</span> +set scheme_handler = spawn $XDG_DATA_HOME/uzbl/scripts/scheme.py +set load_start_handler = chain 'set keycmd = ' 'set status_message = <span foreground="khaki">wait</span>' set load_commit_handler = set status_message = <span foreground="green">recv</span> -set load_finish_handler = set status_message = <span foreground="gold">done</span> +set load_finish_handler = chain 'set status_message = <span foreground="gold">done</span>' 'spawn $XDG_DATA_HOME/uzbl/scripts/history.sh' diff --git a/examples/data/uzbl/scripts/dispatcher.sh b/examples/data/uzbl/scripts/dispatcher.sh new file mode 100755 index 0000000..e8c3aed --- /dev/null +++ b/examples/data/uzbl/scripts/dispatcher.sh @@ -0,0 +1,97 @@ +#!/bin/sh +# +# Sample uzbl eventhandler +# +# demonstrating one possible way to access and process +# uzbl's event messages +# +# Usage: uzbl | eventhandler +# + +VERBOSE=1 + + +ALTPRESSED=0 +KEYCMD= # buffer for building up commands + +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 diff --git a/examples/data/uzbl/scripts/download.sh b/examples/data/uzbl/scripts/download.sh index aa1ca09..c8eb6ba 100755 --- a/examples/data/uzbl/scripts/download.sh +++ b/examples/data/uzbl/scripts/download.sh @@ -8,6 +8,9 @@ GET="wget --user-agent=Firefox" dest="$HOME" url="$8" +http_proxy="$9" +export http_proxy + test "x$url" = "x" && { echo "you must supply a url! ($url)"; exit 1; } # only changes the dir for the $get sub process diff --git a/examples/data/uzbl/scripts/history.sh b/examples/data/uzbl/scripts/history.sh index d726f9c..7c83aa6 100755 --- a/examples/data/uzbl/scripts/history.sh +++ b/examples/data/uzbl/scripts/history.sh @@ -1,6 +1,5 @@ #!/bin/sh -#TODO: strip 'http://' part file=${XDG_DATA_HOME:-$HOME/.local/share}/uzbl/history [ -d `dirname $file` ] || exit 1 -echo "$8 $6 $7" >> $file +echo `date +'%Y-%m-%d %H:%M:%S'`" $6 $7" >> $file diff --git a/examples/data/uzbl/scripts/load_url_from_bookmarks.sh b/examples/data/uzbl/scripts/load_url_from_bookmarks.sh index f57d7b3..1e9f9e7 100755 --- a/examples/data/uzbl/scripts/load_url_from_bookmarks.sh +++ b/examples/data/uzbl/scripts/load_url_from_bookmarks.sh @@ -17,4 +17,4 @@ else fi #[ -n "$goto" ] && echo "uri $goto" > $4 -[ -n "$goto" ] && uzblctrl -s $5 -c "uri $goto" +[ -n "$goto" ] && echo "uri $goto" | socat - unix-connect:$5 diff --git a/examples/data/uzbl/scripts/load_url_from_history.sh b/examples/data/uzbl/scripts/load_url_from_history.sh index 1eaf0f2..62e02ac 100755 --- a/examples/data/uzbl/scripts/load_url_from_history.sh +++ b/examples/data/uzbl/scripts/load_url_from_history.sh @@ -21,4 +21,4 @@ else fi [ -n "$goto" ] && echo "uri $goto" > $4 -#[ -n "$goto" ] && uzblctrl -s $5 -c "uri $goto" +#[ -n "$goto" ] && echo "uri $goto" | socat - unix-connect:$5 diff --git a/examples/data/uzbl/scripts/scheme.py b/examples/data/uzbl/scripts/scheme.py new file mode 100755 index 0000000..7286703 --- /dev/null +++ b/examples/data/uzbl/scripts/scheme.py @@ -0,0 +1,23 @@ +#!/usr/bin/env python + +import os, subprocess, sys, urlparse + +def detach_open(cmd): + # Thanks to the vast knowledge of Laurence Withers (lwithers) and this message: + # http://mail.python.org/pipermail/python-list/2006-November/587523.html + if not os.fork(): + null = os.open(os.devnull,os.O_WRONLY) + for i in range(3): os.dup2(null,i) + os.close(null) + subprocess.Popen(cmd) + print 'USED' + +if __name__ == '__main__': + uri = sys.argv[8] + u = urlparse.urlparse(uri) + if u.scheme == 'mailto': + detach_open(['xterm', '-e', 'mail %s' % u.path]) + elif u.scheme == 'xmpp': + detach_open(['gajim-remote', 'open_chat', uri]) + elif u.scheme == 'git': + detach_open(['git', 'clone', uri], cwd=os.path.expanduser('~/src')) |