User Tools

Site Tools


experimental-branch

Backwards-Incompatible Changes

In the experimental branch as of 2011-04-19

Alt key renamed

As a result of some backend key bindings changes, what was <Alt> key is now known as <Mod1>.

The easiest way to update your config so that all your old bindings still work is to add this line:

@modmap <Mod1>          <Alt>

Merged into the master branch

parseenv() removed

Uzbl used to expand strings like $FOO in the config file to the value of the environment variable FOO. This has been removed because it had a slow implementation and interfered with using variables like $UZBL_TITLE, $UZBL_URI, etc. in sh lines.

Environment variables can be read in a configuration file by doing:

set foo  = @(echo $FOO)@

So to update your configuration, replace lines like

set scripts_dir      = $XDG_DATA_HOME/uzbl:@prefix/share/uzbl/examples/data:scripts

with:

set data_home  = @(echo $XDG_DATA_HOME)@
set scripts_dir      = @data_home/uzbl:@prefix/share/uzbl/examples/data:scripts

download handler

The old approach to downloads (passing the URL to an external program to do the download) had problems, e.g. Webkit-GTK doesn't provide any way to look at the request that triggered a download, so downloads triggered by POST requests didn't work. The new approach is to have Webkit perform the download, and use a download_handler script to determine where to save the file.

In your config, replace the line:

@on_event   DOWNLOAD_REQUEST    spawn @scripts_dir/download.sh %s \@proxy_url

with:

set download_handler    = sync_spawn @scripts_dir/download.sh

(where download.sh is the file examples/data/scripts/download.sh from the experimental branch)

The DOWNLOAD_PROGRESS and DOWNLOAD_COMPLETE events can be used to perform actions as the download continues and after it finishes.

It is still possible to have downloads handled entirely by an external script, just make sure your download_handler script doesn't write anything to stdout:

#!/bin/sh
wget -q $1 &

positional arguments

Information about the current instance of uzbl is now available to scripts as environment variables instead of as arguments passed to the script.

The example scripts have been changed to reflect this, but in your scripts called by uzbl, and in “sh” commands in your configuration, do the following replacements:

Replace this… …with this
$1 $UZBL_CONFIG
$2 $UZBL_PID
$3 $UZBL_XID
$4 $UZBL_FIFO
$5 $UZBL_SOCKET
$6 $UZBL_URI
$7 $UZBL_TITLE
$N $N-7

The talk_to_socket/cookie daemon approach to cookie persistence and distribution has been removed. Instead, use the new load_cookies.sh script and cookies.py plugin to the python event manager, or some other system based on the ADD_COOKIE and DELETE_COOKIE events and add_cookie and delete_cookie commands.

Replace:

set cookie_handler      = talk_to_socket $XDG_CACHE_HOME/uzbl/cookie_daemon_socket

with:

sync_spawn_exec @scripts_dir/load_cookies.sh
sync_spawn_exec @scripts_dir/load_cookies.sh @data_home/uzbl/session-cookies.txt

If you need blacklisting or whitelisting, take a look at the BLACKLIST_COOKIE and WHITELIST_COOKIE events.

experimental-branch.txt · Last modified: 2016/08/31 14:10 (external edit)