# example uzbl config. in a real config, we should obey the xdg spec
# all settings are optional. you can use uzbl without any config at all (but it won't do much)
-# keyboard behavior is vimstyle by default (all actions -> 1 key). set
+# keyboard behavior is vimstyle by default (all commands -> 1 key). set
# always_insert_mode to always be in insert mode and disable going out of it.
-# if you do this, make sure you've set a modkey so you can reach the actions
+# if you do this, make sure you've set a modkey so you can reach the commands
# from insert mode by combining them with the modkey
# TODO: ability to attach misc things (spawn <foo>, script <bar>,.. to internal events)
-set history_handler = /usr/share/uzbl/examples/scripts/history.sh
-set download_handler = /usr/share/uzbl/examples/scripts/download.sh
-set cookie_handler = /usr/share/uzbl/examples/scripts/cookies.sh
+# You can use any command in place of spawn
+set history_handler = spawn /usr/share/uzbl/examples/scripts/history.sh
+set download_handler = spawn /usr/share/uzbl/examples/scripts/download.sh
+set cookie_handler = spawn /usr/share/uzbl/examples/scripts/cookies.sh
+
set minimum_font_size = 6
-set default_font_size = 11
+set font_size = 11
+# monospace_size defaults to font_size, but you can alter it independently
+#set monospace_size = 10
# use with bind ... = sh <shell-oneliner>
-# notice the '' - it's a spacer to keep bash and sh from shifting the positional parameters
-# by one, so they will appear in the same position as with scripts invoked via spawn
-set shell_cmd = sh -c %s ''
+set shell_cmd = sh -c
# define how your titlebar should look like. (short = statusbar is also shown, long = show everything you must see if statusbar is off)
set title_format_short = TITLE - Uzbl browser <NAME>
set title_format_long = KEYCMD MODE TITLE - Uzbl browser <NAME> > SELECTED_URI
+# set the characters to use for, and the width of the progress bar
+set status_pbar_done = *
+set status_pbar_pending = -
+set status_pbar_width = 12
set modkey = Mod1
# reset to command mode when new page is loaded
#set proxy_url = http://127.0.0.1:8118
#values 0-3
#set http_debug = 0
-#set useragent = uzbl (Webkit %webkit-major%.%webkit-minor%.%webkit-micro%)
+#set useragent = uzbl (Webkit WEBKIT_MAJOR.WEBKIT_MINOR.WEBKIT_MICRO)
# Example user agent containing everything:
-#set useragent = Uzbl (Webkit %webkit-major%.%webkit-minor%.%webkit-micro%) (%sysname% %nodename% %kernrel% %kernver% %arch-system% [%arch-uzbl%]) (Commit %commit%)
+set useragent = Uzbl (Webkit WEBKIT_MAJOR.WEBKIT_MINOR.WEBKIT_MICRO) (SYSNAME NODENAME KERNREL KERNVER ARCH_SYSTEM [ARCH_UZBL]) (Commit COMMIT)
#set max_conns = 0
#set max_conns_host = 0
bind R = reload_ign_cache
bind + = zoom_in
bind - = zoom_out
+bind 0 = sh "echo set zoom_level = 1.0 > $4"
bind t = toggle_status
# Hilight matches. Notice the * after the slash - it makes the command incremental, i.e. gets called
# on every character you type. You can do `bind /_ = search %s' if you want it less interactive.
bind :wiki _ = uri http://wiki.archlinux.org/index.php/Special:Search?search=%s&go=Go
bind gg _ = uri http://www.google.com/search?q=%s
bind i = toggle_insert_mode
-bind I = toggle_insert_mode 0 # disable insert mode (1 to enable)
+# disable insert mode (1 to enable). note that Esc works to disable, regardless of this setting
+bind I = toggle_insert_mode 0
bind B = spawn /usr/share/uzbl/examples/scripts/insert_bookmark.sh
bind U = spawn /usr/share/uzbl/examples/scripts/load_url_from_history.sh
bind u = spawn /usr/share/uzbl/examples/scripts/load_url_from_bookmarks.sh
# with the sample yank script, you can yank one of the arguments into clipboard/selection
-bind yurl = spawn /usr/share/uzbl/examples/scripts/yank.sh 8 primary
-bind ytitle = spawn /usr/share/uzbl/examples/scripts/yank.sh 9 clipboard
+bind yurl = spawn /usr/share/uzbl/examples/scripts/yank.sh 6 primary
+bind ytitle = spawn /usr/share/uzbl/examples/scripts/yank.sh 7 clipboard
# does the same as yurl but without needing a script
-bind y2url = sh 'echo -n $6 | xclip'
+bind y2url = sh "echo -n $6 | xclip"
# go the page from primary selection
-bind p = sh "echo act uri `xclip -selection primary -o` > $4"
+bind p = sh "echo uri `xclip -selection primary -o` > $4"
# go to the page in clipboard
-bind P = sh "echo act uri `xclip -selection clipboard -o` > $4"
+bind P = sh "echo uri `xclip -selection clipboard -o` > $4"
bind ZZ = exit
-bind S = script alert("hi");
+bind S = js alert("hi");
# example showing how to use sh
# it sends a command to the fifo, whose path is told via a positional param
# if fifo_dir is not set, it'll echo to a file named (null) somewhere >:) remember to delete it
-bind XS = sh 'echo "act script alert (\"This is sent by the shell via a fifo\")" > "$4"'
-# Keyboard based link following: work in progress! No C DOM bindings yet, no click() event for hyperlinks so no referrer set..Quite basic but does the job for now...
+# Parameters are separated by spaces and the script body must be one parameter, so enclose it in
+# quotes and escape any inner quotes using backslashes
+bind XS = sh 'echo "js alert (\'This is sent by the shell via a fifo\')" > "$4"'
+
+
+# we ship some javascripts to do keyboard based link hinting/following. (webkit does not have C DOM bindings yet)
+# this is similar to how it works in vimperator (and konqueror)
+# TODO: did we resolve: "no click() event for hyperlinks so no referrer set" ?
#hit F to toggle the Hints (now in form of link numbering)
-bind F= script for (var i=0; i < document.links.length; i++) {var uzblid = 'uzbl_link_hint_';var li = document.links[i];var pre = document.getElementById(uzblid+i);if (pre) {li.removeChild(pre);} else {var hint = document.createElement('div');hint.setAttribute('id',uzblid+i);hint.innerHTML = i;hint.style.display='inline';hint.style.lineHeight='90%';hint.style.backgroundColor='red';hint.style.color='white';hint.style.fontSize='small-xx';hint.style.fontWeight='light';hint.style.margin='0px';hint.style.padding='2px';hint.style.position='absolute';hint.style.textDecoration='none';hint.style.left=li.style.left;hint.style.top=li.style.top;li.insertAdjacentElement('afterBegin',hint);}}
-#hit f followed by linknumber and ENTER to follow that link
-bind f_ = script window.location = document.links[%s].href;
+bind F = script /usr/share/uzbl/examples/scripts/hint.js
+# the most stable version:
+bind fl* = script /usr/share/uzbl/examples/scripts/follow_Numbers.js %s
+# using strings, not polished yet:
+bind fL* = script /usr/share/uzbl/examples/scripts/follow_Numbers_Strings.js %s
+
# "home" page if you will
set uri = uzbl.org