From 8d714bb94fc900cee4fa91048e5c91a67e66a224 Mon Sep 17 00:00:00 2001 From: Dieter Plaetinck Date: Sat, 9 May 2009 16:03:44 +0200 Subject: [PATCH] first draft of new config spec --- Makefile | 4 +- docs/config-syntax | 38 +++++++++++++++ examples/configs/sampleconfig | 70 ---------------------------- examples/configs/sampleconfig-dev | 92 ++++++++++++++++++------------------- 4 files changed, 84 insertions(+), 120 deletions(-) create mode 100644 docs/config-syntax delete mode 100644 examples/configs/sampleconfig diff --git a/Makefile b/Makefile index 622a79a..2d6b8c9 100644 --- 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 index 0000000..2315b6c --- /dev/null +++ b/docs/config-syntax @@ -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 -c + +Lines written to the above starting with '#' or being empty, are ignored. + +** Command syntax: +commands can have no, one or 2 arguments. + +[\t[\t]] + +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 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 +script +script_file +back +forward +scroll_vert +scroll_horz +reload +reload_ign_cache +stop +zoom_in +zoom_out +spawn +exit +search + +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 index 92a7cfc..0000000 --- a/examples/configs/sampleconfig +++ /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 = MODE [KEYCMD] LOAD_PROGRESSBAR URI NAME -# 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 = diff --git a/examples/configs/sampleconfig-dev b/examples/configs/sampleconfig-dev index 69c7362..119e3a0 100644 --- a/examples/configs/sampleconfig-dev +++ b/examples/configs/sampleconfig-dev @@ -10,63 +10,59 @@ # 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 = MODE [KEYCMD] LOAD_PROGRESSBAR URI NAME +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 MODE [KEYCMD] LOAD_PROGRESSBAR URI NAME # 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 -- 1.7.9.5