aboutsummaryrefslogtreecommitdiffhomepage
path: root/examples
diff options
context:
space:
mode:
authorGravatar Robert Manea <gotmor@gmail.com>2009-09-04 01:01:46 +0200
committerGravatar Robert Manea <gotmor@gmail.com>2009-09-04 01:01:46 +0200
commitd7c302be4dd7f30785bfa8bbb0f9c2cf4989f868 (patch)
tree46daa64242869af6e0c86c9d15698a584be43cb6 /examples
parentb235a942fb2cded2f81c07d2e00633aa6dcd3028 (diff)
parent369119525001e17d5e601578b3c61a0a3d5264fa (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/config6
-rwxr-xr-xexamples/data/uzbl/scripts/dispatcher.sh97
-rwxr-xr-xexamples/data/uzbl/scripts/download.sh3
-rwxr-xr-xexamples/data/uzbl/scripts/history.sh3
-rwxr-xr-xexamples/data/uzbl/scripts/load_url_from_bookmarks.sh2
-rwxr-xr-xexamples/data/uzbl/scripts/load_url_from_history.sh2
-rwxr-xr-xexamples/data/uzbl/scripts/scheme.py23
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'))