first draft of new config spec
authorDieter Plaetinck <dieter@plaetinck.be>
Sat, 9 May 2009 14:03:44 +0000 (16:03 +0200)
committerDieter Plaetinck <dieter@plaetinck.be>
Sat, 9 May 2009 14:03:44 +0000 (16:03 +0200)
Makefile
docs/config-syntax [new file with mode: 0644]
examples/configs/sampleconfig [deleted file]
examples/configs/sampleconfig-dev

index 622a79a..2d6b8c9 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -6,10 +6,10 @@ test: uzbl
        ./uzbl --uri http://www.uzbl.org
 
 test-config: uzbl
-       ./uzbl --uri http://www.uzbl.org --config examples/configs/sampleconfig-dev
+       ./uzbl --uri http://www.uzbl.org < examples/configs/sampleconfig-dev
 
 test-config-real: uzbl
-       ./uzbl --uri http://www.uzbl.org --config /usr/share/uzbl/examples/configs/sampleconfig
+       ./uzbl --uri http://www.uzbl.org < /usr/share/uzbl/examples/configs/sampleconfig
        
 clean:
        rm -f uzbl
diff --git a/docs/config-syntax b/docs/config-syntax
new file mode 100644 (file)
index 0000000..2315b6c
--- /dev/null
@@ -0,0 +1,38 @@
+Configuration setting at startup and changing at runtime happens through one of these:
+- stdin at startup (TODO: see if we can keep listening while running) (write command to it + "\n")
+- fifo (write command to it + "\n")
+- socket (uzblctrl -s <file> -c <comand>
+
+Lines written to the above starting with '#' or being empty, are ignored.
+
+** Command syntax:
+commands can have no, one or 2 arguments.
+
+<command>[\t<arg1>[\t<arg2>]]
+
+The 'bind' command is a special command, where argument 1 is a keyboard character (combo) and argument 2 is a command as specified above.
+You can also use a '_' in the <chars> part to denote where you pass on whatever you want, which will be replaced into the specififed command whereever %s is mentioned
+
+** commands
+Commands where one of the arguments is "parameter" expect this arugment to be a valid variable identifier (eg uzbl.behave.status_format) 
+
+set              parameter value # make sure the value complies with the datatype.
+toggle           parameter    # expects parameter to be a gboolean. (eg status, insert_mode, ..)
+get              parameter
+bind             <chars> <command>
+script           <JS code to execute>
+script_file      <filename containing JS code to execute>
+back
+forward
+scroll_vert      <int>
+scroll_horz      <int>
+reload
+reload_ign_cache
+stop
+zoom_in
+zoom_out
+spawn            <filename for process to start asynchronously>
+exit
+search           <string>
+
+The 'set' command may do more then just set the variable. eg 'set uri' commands will also cause uzbl to navigate to the uri.
\ No newline at end of file
diff --git a/examples/configs/sampleconfig b/examples/configs/sampleconfig
deleted file mode 100644 (file)
index 92a7cfc..0000000
+++ /dev/null
@@ -1,70 +0,0 @@
-
-# example uzbl config. in a real config, we should obey the xdg spec
-
-# all keys in the behavior group are optional.  if not set, the corresponding behavior is disabed.
-# bindings_internal denote keys to trigger actions internally in uzbl
-# bindings_external denote keys to trigger scripts outside uzbl
-
-# keyboard behavior is vimstyle by default (all actions -> 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
-# from insert mode by combining them with the modkey
-
-[behavior]
-history_handler = /usr/share/uzbl/examples/scripts/history.sh
-download_handler = /usr/share/uzbl/examples/scripts/download.sh
-cookie_handler = /usr/share/uzbl/examples/scripts/cookies.sh
-status_format = <span font_family="monospace"><span background="khaki" foreground="black">MODE</span> [<span weight="bold" foreground="red">KEYCMD</span>] <span foreground="#606060"> LOAD_PROGRESSBAR </span><span foreground="#99FF66">URI</span> <span foreground="khaki">NAME</span></span>
-# you can optionally use this setting to override the background color of the statusbar from your GTK theme.
-status_background = #303030
-fifo_dir = /tmp
-socket_dir = /tmp
-always_insert_mode = 0
-modkey = Mod1
-show_status = 1
-status_top = 0
-
-[bindings]
-# scroll down/up/left/right
-j = scroll_vert 20
-k = scroll_vert -20
-h = scroll_horz -20
-l = scroll_horz 20
-b = back
-m = forward
-s = stop
-r = reload
-R = reload_ign_cache
-+ = zoom_in
-- = zoom_out
-t = toggle_status
-#hilight matches
-/_ = search %s
-#jump to next
-; = search
-gh      = uri http://www.uzbl.org
-o _     = uri %s
-:wiki _ = uri http://wiki.archlinux.org/index.php/Special:Search?search=%s&go=Go
-gg _    = uri http://www.google.com/search?q=%s
-i = insert_mode
-B = spawn /usr/share/uzbl/examples/scripts/insert_bookmark.sh
-u = spawn /usr/share/uzbl/examples/scripts/load_url_from_history.sh
-U = spawn /usr/share/uzbl/examples/scripts/load_url_from_bookmarks.sh
-ZZ = exit
-S = script alert("hi");
-
-# 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...
-#hit F to toggle the Hints (now in form of link numbering)
-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
-f_ = script window.location = document.links[%s].href;
-
-[network]
-proxy_server = 
-#values 0-3
-http_debug = 0
-user-agent = uzbl (Webkit %webkit-major%.%webkit-minor%.%webkit-micro%)
-# Example user agent containing everything:
-#user-agent = Uzbl (Webkit %webkit-major%.%webkit-minor%.%webkit-micro%) (%sysname% %nodename% %kernrel% %kernver% %arch-system% [%arch-uzbl%]) (Commit %commit%)
-max_conns =
-max_conns_per_host =
index 69c7362..119e3a0 100644 (file)
 # if you do this, make sure you've set a modkey so you can reach the actions
 # from insert mode by combining them with the modkey
 
-[behavior]
-history_handler = ./examples/scripts/history.sh
-download_handler = ./examples/scripts/download.sh
-cookie_handler = ./examples/scripts/cookies.sh
-fifo_dir = /tmp
-socket_dir = /tmp
-always_insert_mode = 0
-modkey = Mod1
-show_status = 1
-status_top = 0
-status_format = <span font_family="monospace"><span background="khaki" foreground="black">MODE</span> [<span weight="bold" foreground="red">KEYCMD</span>] <span foreground="#606060"> LOAD_PROGRESSBAR </span><span foreground="#99FF66">URI</span> <span foreground="khaki">NAME</span></span>
+set    uzbl.behave.history_handler     ./examples/scripts/history.sh
+set    uzbl.behave.download_handler    ./examples/scripts/download.sh
+set    uzbl.behave.cookie_handler      ./examples/scripts/cookies.sh
+set    uzbl.behave.fifo_dir    /tmp
+set    uzbl.behave.socket_dir  /tmp
+set    uzbl.behave.always_insert_mode  0
+set    uzbl.behave.modkey      Mod1
+set    uzbl.behave.show_status 1
+set    uzbl.behave.status_top  0
+set    uzbl.behave.status_format       <span font_family="monospace"><span background="khaki" foreground="black">MODE</span> [<span weight="bold" foreground="red">KEYCMD</span>] <span foreground="#606060"> LOAD_PROGRESSBAR </span><span foreground="#99FF66">URI</span> <span foreground="khaki">NAME</span></span>
 # you can optionally use this setting to override the background color of the statusbar from your GTK theme.
-status_background = #303030
+set    uzbl.behave.status_background   #303030
 
-[bindings]
 # scroll down/up/left/right
-j = scroll_vert 20
-k = scroll_vert -20
-h = scroll_horz -20
-l = scroll_horz 20
-b = back
-m = forward
-s = stop
-r = reload
-R = reload_ign_cache
-+ = zoom_in
-- = zoom_out
-t = toggle_status
+bind   j       scroll_vert     20
+bind   k       scroll_vert     -20
+bind   h       scroll_horz     -20
+bind   l       scroll_horz     20
+bind   b       back
+bind   m       forward
+bind   s       stop
+bind   r       reload
+bind   R       reload_ign_cache
+bind   +       zoom_in
+bind   -       zoom_out
+bind   t       toggle  uzbl.behave.show_status
 #hilight matches
-/_ = search %s
+bind   /_      search %s
 #jump to next
-; = search
-gh      = uri http://www.uzbl.org
-o _     = uri %s
-:wiki _ = uri http://wiki.archlinux.org/index.php/Special:Search?search=%s&go=Go
-gg _    = uri http://www.google.com/search?q=%s
-i = insert_mode
-B = spawn ./examples/scripts/insert_bookmark.sh
-u = spawn ./examples/scripts/load_url_from_history.sh
-U = spawn ./examples/scripts/load_url_from_bookmarks.sh
-ZZ = exit
-S = script alert("hi");
-
+bind   ;       search
+bind   gh      set     uzbl.state.uri  http://www.uzbl.org
+bind   o _     set     uzbl.state.uri  %s
+bind   :wiki _ set     uzbl.state.uri  http://wiki.archlinux.org/index.php/Special:Search?search=%s&go=Go
+bind   gg _    set     uzbl.state.uri  http://www.google.com/search?q=%s
+bind   i       toggle  uzbl.behave.insert_mode
+bind   B       spawn   ./examples/scripts/insert_bookmark.sh
+bind   u       spawn   ./examples/scripts/load_url_from_history.sh
+bind   U       spawn   ./examples/scripts/load_url_from_bookmarks.sh
+bind   ZZ      exit
+bind   S       script  alert("hi");
 # 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...
 #hit F to toggle the Hints (now in form of link numbering)
-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);}}
+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
-f_ = script window.location = document.links[%s].href;
+bind   f_      script  window.location = document.links[%s].href;
+
 
-[network]
 # to start a local socks server, do : ssh -fND localhost:8118 localhost
-#proxy_server = http://127.0.0.1:8118
+set    uzbl.net.proxy_url      http://127.0.0.1:8118
 #values 0-3
-http_debug = 0
-user-agent = uzbl (Webkit %webkit-major%.%webkit-minor%.%webkit-micro%)
+set    uzbl.behave.http_debug = 0
+set    uzbl.net.useragent      uzbl (Webkit %webkit-major%.%webkit-minor%.%webkit-micro%)
 # Example user agent containing everything:
-#user-agent = Uzbl (Webkit %webkit-major%.%webkit-minor%.%webkit-micro%) (%sysname% %nodename% %kernrel% %kernver% %arch-system% [%arch-uzbl%]) (Commit %commit%)
-max_conns = 
-max_conns_per_host = 
-
+#set   uzbl.net.useragent      Uzbl (Webkit %webkit-major%.%webkit-minor%.%webkit-micro%) (%sysname% %nodename% %kernrel% %kernver% %arch-system% [%arch-uzbl%]) (Commit %commit%)
+set    uzbl.net.max_conns      0
+set    uzbl.net.max_conns_host 0