#!/bin/sh # $1 = $xid # $2 = $p = _SURF_FIND _SURF_BMARK _SURF_URI _SURF_URI_RAW (what SETPROP sets in config.h) # # // replace default setprop with this one # #define SETPROP(p) { .v = (char *[]){ "/bin/sh", "-c", "surf.sh $0 $1", winid, p, NULL } } # # // fix shift+slash keybinding in spanish keyboard (f.example) # { MODKEY, GDK_g, spawn, SETPROP("_SURF_URI") }, # { MODKEY|GDK_SHIFT_MASK,GDK_g, spawn, SETPROP("_SURF_URI_RAW") }, # { MODKEY, GDK_f, spawn, SETPROP("_SURF_FIND") }, # { MODKEY, GDK_b, spawn, SETPROP("_SURF_BMARK") }, font='-*-terminus-medium-*-*-*-*-*-*-*-*-*-*-*' normbgcolor='#181818' normfgcolor='#e9e9e9' selbgcolor='#dd6003' selfgcolor='#e9e9e9' bmarks=~/.surf/bookmarks.txt xid=$1 p=$2 uri=`xprop -id $xid _SURF_URI | cut -d '"' -f 2` kw=`xprop -id $xid _SURF_FIND | cut -d '"' -f 2` dmenu="dmenu -e $xid -fn $font -nb $normbgcolor -nf $normfgcolor \ -sb $selbgcolor -sf $selfgcolor" s_xprop() { [ -n "$2" ] && xprop -id $xid -f $1 8s -set $1 "$2" } case "$p" in "_SURF_FIND") ret="`echo $kw | $dmenu -p find:`" s_xprop _SURF_FIND "$ret" ;; "_SURF_BMARK") grep "$uri" $bmarks >/dev/null 2>&1 || echo "$uri" >> $bmarks ;; "_SURF_URI_RAW") ret=`echo $uri | $dmenu -p "uri:"` s_xprop _SURF_GO "$ret" ;; "_SURF_URI") sel=`tac $bmarks 2> /dev/null | $dmenu -p "uri [dgtwy*]:"` [ -z "$sel" ] && exit opt=$(echo $sel | cut -d ' ' -f 1) arg=$(echo $sel | cut -d ' ' -f 2-) case "$opt" in "d") # del.icio.us ret="http://del.icio.us/save?url=$uri" ;; "g") # google for it ret="http://www.google.com/search?q=$arg" ;; "t") # tinyurl ret="http://tinyurl.com/create.php?url=$uri" ;; "w") # wikipedia ret="http://wikipedia.org/wiki/$arg" ;; "y") # youtube ret="http://www.youtube.com/results?search_query=$arg&aq=f" ;; *) ret="$sel" ;; esac s_xprop _SURF_GO "$ret" ;; *) echo Unknown xprop ;; esac