summaryrefslogtreecommitdiff
path: root/config
diff options
context:
space:
mode:
authorUrbain Vaes <urbain@vaes.uk>2015-08-06 13:05:00 +0200
committerUrbain Vaes <urbain@vaes.uk>2015-08-06 13:05:00 +0200
commit2d015ad8f1acb6d79f76b8ca85a7fe3e0fa2135f (patch)
tree276959417bb462f86f35da0639cf3168973486ad /config
parent9f0c3986ffe06ed68ccc16aac2913a73fabfbdb2 (diff)
Add uzbl config
Diffstat (limited to 'config')
-rw-r--r--config/uzbl/config494
1 files changed, 494 insertions, 0 deletions
diff --git a/config/uzbl/config b/config/uzbl/config
new file mode 100644
index 0000000..fc00b2c
--- /dev/null
+++ b/config/uzbl/config
@@ -0,0 +1,494 @@
+## Core settings
+
+# Common directory locations
+set prefix = @(echo $PREFIX)@
+set data_home = @(echo $XDG_DATA_HOME)@
+set cache_home = @(echo $XDG_CACHE_HOME)@
+set config_home = @(echo $XDG_CONFIG_HOME)@
+
+# Interface paths
+set fifo_dir = /tmp
+set socket_dir = /tmp
+
+# Shell command
+set shell_cmd = sh -c
+
+# === General config aliases =================================================
+
+# Config related events (use the request function):
+# request MODE_CONFIG <mode> <key> = <value>
+set mode_config = request MODE_CONFIG
+# request ON_EVENT <EVENT_NAME> <command>
+set on_event = request ON_EVENT
+# request ON_SET <key/glob> <command>
+set on_set = request ON_SET
+# request MODMAP <From> <To>
+set modmap = request MODMAP
+# request IGNORE_KEY <glob>
+set ignore_key = request IGNORE_KEY
+# request TOGGLE_MODES <mode1> <mode2> ... <moden>
+set toggle_modes = request TOGGLE_MODES
+
+set set_mode = set mode =
+set set_status = set status_message =
+
+# Spawn path shortcuts. In spawn the first dir+path match is used in "dir1:dir2:dir3:executable"
+set scripts_dir = @data_home/uzbl:@prefix/share/uzbl/examples/data:scripts
+
+# === Hardcoded handlers =====================================================
+
+# These handlers can't be moved to the new event system yet as we don't
+# support events that can wait for a response from a script.
+set scheme_handler = sync_spawn @scripts_dir/scheme.py
+#set request_handler = sync_spawn @scripts_dir/request.py
+set authentication_handler = sync_spawn @scripts_dir/auth.py
+set download_handler = sync_spawn @scripts_dir/download.sh
+
+# === Dynamic event handlers =================================================
+
+# What to do when a website wants to open a new window:
+# Open link in new window
+@on_event NEW_WINDOW sh 'uzbl-browser ${1:+-u "$1"}' %r
+# Open in current window (also see the REQ_NEW_WINDOW event handler below)
+#@on_event NEW_WINDOW uri %s
+# Open in new tab. Other options are NEW_TAB_NEXT, NEW_BG_TAB and NEW_BG_TAB_NEXT.
+#@on_event NEW_WINDOW event NEW_TAB %s
+
+# What to do when the user requests a new window:
+# If your the NEW_WINDOW handler opens the uri in the current window, you'll
+# probably want to change this handler to open a new window or tab.
+@on_event REQ_NEW_WINDOW event NEW_WINDOW %s
+
+# Load start handler
+@on_event LOAD_START @set_status <span foreground="khaki">wait</span>
+# Reset the keycmd on navigation
+@on_event LOAD_START @set_mode
+
+# Load commit handlers
+@on_event LOAD_COMMIT @set_status <span foreground="green">recv</span>
+
+ # add some javascript to the page for other 'js' and 'script' commands to access later.
+@on_event LOAD_COMMIT js uzbl = {};
+@on_event LOAD_COMMIT script @scripts_dir/formfiller.js
+@on_event LOAD_COMMIT script @scripts_dir/follow.js
+
+# Userscripts/per-site-settings. See the script and the example configuration for details
+#@on_event LOAD_COMMIT spawn @scripts_dir/per-site-settings.py @data_home/uzbl/per-site-settings
+
+# Load finish handlers
+@on_event LOAD_FINISH @set_status <span foreground="gold">done</span>
+@on_event LOAD_FINISH spawn @scripts_dir/history.sh
+
+# Switch to insert mode if a (editable) html form is clicked
+@on_event FOCUS_ELEMENT sh 'if [ "$1" = INPUT -o "$1" = TEXTAREA -o "$1" = SELECT ]; then echo "@set_mode insert" > $UZBL_FIFO; fi' %s
+# Switch to command mode if anything else is clicked
+@on_event ROOT_ACTIVE @set_mode command
+
+# Example CONFIG_CHANGED event handler
+#@on_event CONFIG_CHANGED print Config changed: %1 = %2
+
+# Scroll percentage calculation
+@on_event SCROLL_VERT set scroll_message = \@<(function(curr, min, max, size){if(max == size) return '--'; var p=(curr/(max - size)); return Math.round(10000*p)/100;})(%1,%2,%3,%4)>\@%
+
+# === Behaviour and appearance ===============================================
+
+# Custom CSS can be defined here, including link follower hint styles
+set stylesheet_uri = file://@config_home/uzbl/style.css
+
+set show_status = 1
+set status_top = 0
+set status_background = #303030
+
+set modcmd_style = weight="bold" foreground="red"
+set keycmd_style = weight="light" foreground="red"
+set prompt_style = foreground="grey"
+set cursor_style = underline="single"
+set completion_style = foreground="green"
+set hint_style = weight="bold"
+
+set mode_section = <span background="khaki" foreground="black">[\@[\@mode_indicator]\@]</span>
+set keycmd_section = [<span \@prompt_style>\@[\@keycmd_prompt]\@</span><span \@modcmd_style>\@modcmd</span><span \@keycmd_style>\@keycmd</span><span \@completion_style>\@completion_list</span>]
+set progress_section = <span foreground="#606060">\@[\@progress.output]\@</span>
+set scroll_section = <span foreground="#606060">\@[\@scroll_message]\@</span>
+set uri_section = <span foreground="#99FF66">\@[\@uri]\@</span>
+set name_section = <span foreground="khaki">\@[\@NAME]\@</span>
+set status_section = <span foreground="orange">\@status_message</span>
+set selected_section = <span foreground="#606060">\@[\@SELECTED_URI]\@</span>
+
+set download_section = <span foreground="white">\@downloads</span>
+
+set status_format = <span font_family="monospace">@mode_section @keycmd_section @progress_section @name_section @status_section @scroll_section @selected_section @download_section</span>
+set status_format_right = <span font_family="monospace"><span foreground="#666">uri:</span> @uri_section</span>
+
+set title_format_long = \@keycmd_prompt \@raw_modcmd \@raw_keycmd \@TITLE - Uzbl browser <\@NAME> \@SELECTED_URI
+
+# Progress bar config
+# %d = done, %p = pending %c = percent done, %i = int done, %s = spinner,
+# %t = percent pending, %o = int pending, %r = sprite scroll
+set progress.width = 8
+set progress.format = [%d>%p]%c
+set progress.done = =
+set progress.pending =
+
+# === Useragent setup ========================================================
+
+set useragent = Uzbl (Webkit @{WEBKIT_MAJOR}.@{WEBKIT_MINOR}) (@(+uname -sm)@ [@ARCH_UZBL])
+
+# === Configure cookie blacklist ========================================================
+
+# Accept 'session cookies' from uzbl.org (when you have a whitelist all other cookies are dropped)
+#request WHITELIST_COOKIE domain 'uzbl.org$' expires '^$'
+
+# Drop google analytics tracking cookies (applied after whitelists if any)
+#request BLACKLIST_COOKIE name '^__utm.$'
+
+# === SSL related configuration ==============================================
+
+# Set it to certificates store of your distribution, or your own CAfile.
+set ssl_ca_file = /etc/ssl/certs/ca-certificates.crt
+set ssl_verify = 1
+# Command to toggle ssl_verify value:
+@cbind !ssl = chain 'toggle ssl_verify' 'reload'
+# Example SSL error handler:
+@on_event LOAD_ERROR js var patt=new RegExp('SSL handshake failed'); if (patt.test('%3')) {alert ('%3');}
+
+# === Key binding configuration ==============================================
+# --- Internal modmapping and ignoring ---------------------------------------
+
+#modmap <From> <To>
+@modmap <Control> <Ctrl>
+@modmap <ISO_Left_Tab> <Shift-Tab>
+@modmap <space> <Space>
+@modmap <KP_Enter> <Enter>
+
+#ignore_key <glob>
+@ignore_key <ISO_*>
+@ignore_key <Shift>
+@ignore_key <Multi_key>
+@ignore_key <Mod2>
+
+# --- Bind aliases -----------------------------------------------------------
+
+# request BIND <bind cmd> = <command>
+set bind = request MODE_BIND global
+
+# request MODE_BIND <mode> <bind cmd> = <command>
+set mode_bind = request MODE_BIND
+
+# Insert mode binding alias
+set ibind = @mode_bind insert
+
+# Command mode binding alias
+set cbind = @mode_bind command
+
+# Non-insert mode bindings alias (ebind for edit-bind).
+set ebind = @mode_bind global,-insert
+
+# --- Global & keycmd editing binds ------------------------------------------
+
+# Resets keycmd and returns to default mode.
+@on_event ESCAPE @set_mode
+@on_event ESCAPE event KEYCMD_CLEAR
+@on_event ESCAPE js uzbl.follow.clearHints()
+@on_event ESCAPE search_clear
+@on_event ESCAPE js window.getSelection().removeAllRanges()
+@bind <Escape> = event ESCAPE
+@bind <Ctrl>[ = event ESCAPE
+
+# Commands for editing and traversing the keycmd.
+@ebind <Return> = event KEYCMD_EXEC_CURRENT
+@ebind <Home> = event SET_CURSOR_POS 0
+@ebind <End> = event SET_CURSOR_POS -1
+@ebind <Left> = event SET_CURSOR_POS -
+@ebind <Right> = event SET_CURSOR_POS +
+@ebind <BackSpace> = event KEYCMD_BACKSPACE
+@ebind <Delete> = event KEYCMD_DELETE
+@ebind <Tab> = event START_COMPLETION
+# Readline-ish bindings.
+@ebind <Ctrl>w = event KEYCMD_STRIP_WORD \ -./&?=
+@ebind <Ctrl>u = event SET_KEYCMD
+@ebind <Ctrl>a = event SET_CURSOR_POS 0
+@ebind <Ctrl>e = event SET_CURSOR_POS -1
+
+@ebind <Up> = event HISTORY_PREV
+@ebind <Down> = event HISTORY_NEXT
+@ebind <Ctrl>r<search:>_ = event HISTORY_SEARCH %s
+# Keycmd injection/append examples.
+#@ebind <Ctrl>su = event INJECT_KEYCMD \@uri
+#@ebind <Ctrl>st = event INJECT_KEYCMD \@title
+#@ebind <Ctrl>du = event APPEND_KEYCMD \@uri
+#@ebind <Ctrl>dt = event APPEND_KEYCMD \@title
+
+# --- Mouse bindings ---------------------------------------------------------
+
+# Middle click open in new window
+@bind <Button2> = sh 'if [ "$1" ]; then echo "event REQ_NEW_WINDOW $1" > "$UZBL_FIFO"; else echo "uri $(xclip -o | sed s/\\\@/%40/g)" > "$UZBL_FIFO"; fi' '\@SELECTED_URI'
+
+# --- Keyboard bindings ------------------------------------------------------
+
+# With this command you can enter in any command at runtime when prefixed with
+# a colon.
+@cbind :_ = %s
+
+# open a new window or a new tab (see the on_event NEW_WINDOW settings above)
+@cbind w = event REQ_NEW_WINDOW
+
+# Page movement binds
+@cbind j = scroll vertical 20
+@cbind k = scroll vertical -20
+@cbind h = scroll horizontal -20
+@cbind l = scroll horizontal 20
+@cbind <Page_Up> = scroll vertical -100%
+@cbind <Page_Down> = scroll vertical 100%
+@cbind <Ctrl>f = scroll vertical 100%
+@cbind <Ctrl>b = scroll vertical -100%
+@cbind gg = scroll vertical begin
+@cbind G = scroll vertical end
+@cbind ^ = scroll horizontal begin
+@cbind $ = scroll horizontal end
+@cbind <Space> = scroll vertical end
+@cbind <Ctrl>g<Go To:>_ = scroll vertical %r!
+
+# Navigation binds
+@cbind H = back
+@cbind L = forward
+@cbind S = stop
+@cbind r = reload
+@cbind R = reload_ign_cache
+
+# Zoom binds
+@cbind + = zoom_in
+@cbind - = zoom_out
+@cbind T = toggle zoom_type
+@cbind 1 = set zoom_level = 1.0
+@cbind 2 = set zoom_level = 2.0
+
+# Appearance binds
+@cbind s = toggle show_status
+
+# Page searching binds
+@cbind /* = search %s
+@cbind ?* = search_reverse %s
+
+# Jump to next and previous items
+@cbind n = search
+@cbind N = search_reverse
+
+# Print pages to a printer
+@cbind <Ctrl>p = hardcopy
+
+# Web searching binds
+@cbind go<Google:>_ = uri http://www.google.co.uk/search?q=\@<encodeURIComponent(%r)>\@
+@cbind ddg<DuckDuckGo:>_ = uri http://duckduckgo.com/?q=%s
+@cbind \\awiki<Archwiki:>_ = uri http://wiki.archlinux.org/index.php/Special:Search?search=\@<encodeURIComponent(%r)>\@&go=Go
+@cbind \\wiki<Wikipedia:>_ = uri http://en.wikipedia.org/w/index.php?title=Special:Search&search=\@<encodeURIComponent(%r)>\@&go=Go
+
+# Handy binds
+@cbind s<var:>_<value:>_ = set %1 = %2
+@cbind ZZ = exit
+
+# Dump config to stdout
+@cbind !dump = sh 'echo dump_config > "$UZBL_FIFO"'
+
+# Reload all variables in the config
+@cbind !reload = sh "sed '/^# === Post-load misc commands/,$d' \"$UZBL_CONFIG\" | grep '^set ' > \"$UZBL_FIFO\""
+
+# Uri opening prompts
+@cbind o<uri:>_ = uri %s
+
+# Or have it load the current uri into the keycmd for editing
+@cbind O<uri:\@uri>_ = uri %s
+
+# Mode setting binds
+@cbind i = @set_mode insert
+
+# Hard-bound bookmarks
+@cbind gh = uri http://www.google.co.uk
+
+# New window binds
+@cbind t = event REQ_NEW_WINDOW
+
+# SSL-ify bindings
+@cbind zs = uri \@(echo "$UZBL_URI" | sed -e 's/^http:/https:/')\@
+@cbind zS = event REQ_NEW_WINDOW \@(echo "$UZBL_URI" | sed -e 's/^http:/https:/')\@
+
+# Yanking & pasting binds
+@cbind yu = sh 'echo -n "$UZBL_URI" | xclip'
+@cbind yU = sh 'echo -n "$1" | xclip' '\@SELECTED_URI'
+@cbind yy = sh 'echo -n "$UZBL_TITLE" | xclip'
+@cbind ys = spawn @scripts_dir/follow.sh \@< uzbl.follow.followSelection('returnuri') >\@ clipboard
+
+# Clone current window
+@cbind c = event REQ_NEW_WINDOW \@uri
+
+# Go the page from primary selection
+@cbind p = sh 'echo "uri $(xclip -o | sed s/\\\@/%40/g)" > "$UZBL_FIFO"'
+
+# Go to the page in clipboard
+@cbind P = sh 'echo "uri $(xclip -selection clipboard -o | sed s/\\\@/%40/g)" > "$UZBL_FIFO"'
+
+# Start a new uzbl instance from the page in primary selection
+@cbind 'p = sh 'echo "event REQ_NEW_WINDOW $(xclip -o)" > "$UZBL_FIFO"'
+
+# paste primary selection into keycmd at the cursor position
+@bind <Shift><Insert> = sh 'echo "event INJECT_KEYCMD $(xclip -o | sed s/\\\@/%40/g)" > "$UZBL_FIFO"'
+
+# Bookmark inserting binds
+@cbind <Ctrl>m<tags:>_ = sh 'echo "$UZBL_URI $1" >> "$XDG_DATA_HOME"/uzbl/bookmarks' '%s'
+
+# Or use a script to insert a bookmark.
+@cbind M = spawn @scripts_dir/insert_bookmark.sh
+
+# Bookmark/history loading
+@cbind U = spawn @scripts_dir/load_url_from_history.sh
+@cbind u = spawn @scripts_dir/load_url_from_bookmarks.sh
+
+# Temporary bookmarks
+@cbind <Ctrl>d = spawn @scripts_dir/insert_temp.sh
+@cbind D = spawn @scripts_dir/load_url_from_temps.sh
+
+# Link following (similar to vimperator and konqueror)
+# Set custom keys you wish to use for navigation. Some common examples:
+set follow_hint_keys = 0123456789
+#set follow_hint_keys = qwerty
+#set follow_hint_keys = asdfghjkl;
+#set follow_hint_keys = thsnd-rcgmvwb/;789aefijkopquxyz234
+@cbind fl* = spawn @scripts_dir/follow.sh \@< uzbl.follow("\@follow_hint_keys", "%s", 'click') >\@
+@cbind Fl* = spawn @scripts_dir/follow.sh \@< uzbl.follow("\@follow_hint_keys", "%s", 'newwindow') >\@
+@cbind fL* = spawn @scripts_dir/follow.sh \@< uzbl.follow("\@follow_hint_keys", "%s", 'returnuri') >\@ set
+@cbind FL* = spawn @scripts_dir/follow.sh \@< uzbl.follow("\@follow_hint_keys", "%s", 'returnuri') >\@ clipboard
+@cbind fi = spawn @scripts_dir/go_input.sh
+
+@cbind fs = spawn @scripts_dir/follow.sh \@< uzbl.follow.followSelection('returnuri') >\@ set
+@cbind fS = spawn @scripts_dir/follow.sh \@< uzbl.follow.followSelection('click') >\@
+@cbind Fs = spawn @scripts_dir/follow.sh \@< uzbl.follow.followSelection('newwindow') >\@
+@cbind FS = spawn @scripts_dir/follow.sh \@< uzbl.follow.followSelection('returnuri') >\@ clipboard
+
+@cbind ft* = spawn @scripts_dir/follow.sh \@< uzbl.follow.followTextContent("%s", 'returnuri') >\@ set
+@cbind fT* = spawn @scripts_dir/follow.sh \@< uzbl.follow.followTextContent("%s", 'click') >\@
+@cbind Ft* = spawn @scripts_dir/follow.sh \@< uzbl.follow.followTextContent("%s", 'newwindow') >\@
+@cbind FT* = spawn @scripts_dir/follow.sh \@< uzbl.follow.followTextContent("%s", 'returnuri') >\@ clipboard
+
+@cbind '* = spawn @scripts_dir/follow.sh \@< uzbl.follow.followTextContent("%s", 'click') >\@
+
+# Form filler binds
+# This script allows you to configure (per domain) values to fill in form
+# fields (eg login information) and to fill in these values automatically.
+# This implementation allows you to save multiple profiles for each form
+# (think about multiple accounts on some website).
+set formfiller = spawn @scripts_dir/formfiller.sh
+@cbind ze = @formfiller edit
+@cbind zn = @formfiller new
+@cbind zl = @formfiller load
+@cbind zo = @formfiller once
+
+# --- Uzbl tabbed binds ------------------------------------------------------
+
+# Tab opening
+@cbind gn = event NEW_TAB
+@cbind gN = event NEW_TAB_NEXT
+@cbind go<uri:>_ = event NEW_TAB %s
+@cbind gO<uri:>_ = event NEW_TAB_NEXT %s
+
+# Closing / resting
+@cbind gC = exit
+@cbind gQ = event CLEAN_TABS
+
+# Tab navigating
+@cbind g< = event FIRST_TAB
+@cbind g> = event LAST_TAB
+@cbind gt = event NEXT_TAB
+@cbind gT = event PREV_TAB
+@cbind gi<index:>_ = event GOTO_TAB %s
+
+# Preset loading
+set preset = event PRESET_TABS
+@cbind gs<preset save:>_ = @preset save %s
+@cbind glo<preset load:>_ = @preset load %s
+@cbind gd<preset del:>_ = @preset del %s
+# This doesn't work right now.
+#@cbind gli = @preset list
+
+# === Context menu items =====================================================
+
+# Default context menu
+menu_add Google = set uri = http://google.com
+menu_add Go Home = set uri = http://uzbl.org
+menu_separator separator_1
+menu_add Quit uzbl = exit
+
+# Link context menu
+menu_link_add Print Link = print \@SELECTED_URI
+
+# === Mode configuration =====================================================
+
+# Define some mode specific uzbl configurations.
+set command = @mode_config command
+set insert = @mode_config insert
+set stack = @mode_config stack
+
+# Command mode config.
+@command keycmd_style = foreground="red"
+@command status_background = #202020
+@command mode_indicator = Cmd
+@command keycmd_events = 1
+@command forward_keys = 0
+@command modcmd_updates = 1
+
+# Insert mode config.
+@insert status_background = #303030
+@insert mode_indicator = Ins
+@insert forward_keys = 1
+@insert keycmd_events = 0
+@insert modcmd_updates = 0
+
+# Multi-stage-binding mode config.
+@stack keycmd_style = foreground="red"
+@stack status_background = #202020
+@stack mode_indicator = Bnd
+@stack prompt_style = foreground="#888" weight="light"
+@stack keycmd_events = 1
+@stack modcmd_updates = 1
+@stack forward_keys = 0
+
+set default_mode = command
+
+# === Post-load misc commands ================================================
+sync_spawn_exec @scripts_dir/load_cookies.sh
+sync_spawn_exec @scripts_dir/load_cookies.sh @data_home/uzbl/session-cookies.txt
+
+# Set the "home" page.
+set uri = uzbl.org/doesitwork/@COMMIT
+
+# Custom configuration
+bind \sr<Surfraw:>_ = sh 'echo "set uri = $(surfraw -print %s)" > $4'
+bind \gg<Google:>_ = sh 'echo "set uri = $(surfraw -print $8 %s)" > $4' google
+bind \google<Google:>_ = sh 'echo "set uri = $(surfraw -print $8 %s)" > $4' google
+bind \glucky<Google Lucky:>_ = sh 'echo "set uri = $(surfraw -print $8 -l %s)" > $4' google
+bind \gi<Google Image:>_ = sh 'echo "set uri = $(surfraw -print $8 -search=$9 %s)" > $4' google images
+bind \gimage<Google Image:>_ = sh 'echo "set uri = $(surfraw -print $8 -search=$9 %s)" > $4' google images
+bind \glinux<Google Linux:>_ = sh 'echo "set uri = $(surfraw -print $8 -search=$9 %s)" > $4' google linux
+bind \gbsd<Google BSD:>_ = sh 'echo "set uri = $(surfraw -print $8 -search=$9 %s)" > $4' google bsd
+bind \gusa_ = sh 'echo "set uri = $(surfraw -print $8 -search=$9 %s)" > $4' google unclesam
+bind \wiki<Wikipedia:>_ = sh 'echo "set uri = $(surfraw -print $8 %s)" > $4' wikipedia
+bind \imdb<IMBD:>_ = sh 'echo "set uri = $(surfraw -print $8 %s)" > $4' imdb
+bind \aur<AUR:>_ = sh 'echo "set uri = $(surfraw -print $8 %s)" > $4' aur
+bind \freshmeat<Freshmeat:>_ = sh 'echo "set uri = $(surfraw -print $8 %s)" > $4' freshmeat
+bind \weather<Weather:>_ = sh 'echo "set uri = $(surfraw -print $8 %s)" > $4' weather
+
+bind 'sr _ = sh 'surfraw -g %s'
+bind 'gg _ = sh 'surfraw -g $8 %s' google
+bind 'google _ = sh 'surfraw -g $8 %s' google
+bind 'glucky _ = sh 'surfraw -g $8 -l %s' google
+bind 'gi _ = sh 'surfraw -g $8 -search=$9 %s' google images
+bind 'gimage _ = sh 'surfraw -g $8 -search=$9 %s' google images
+bind 'glinux _ = sh 'surfraw -g $8 -search=$9 %s' google linux
+bind 'gbsd _ = sh 'surfraw -g $8 -search=$9 %s' google bsd
+bind 'gusa _ = sh 'surfraw -g $8 -search=$9 %s' google unclesam
+bind 'wiki _ = sh 'surfraw -g $8 %s' wikipedia
+bind 'imdb _ = sh 'surfraw -g $8 %s' imdb
+bind 'aur _ = sh 'surfraw -g $8 %s' aur
+bind 'freshmeat _ = sh 'surfraw -g $8 %s' freshmeat
+bind 'weather _ = sh 'surfraw -g $8 %s' weather
+
+# vim: set fdm=syntax: