====== The Python Cookie Daemon ====== **This page is obsolete, uzbl no longer uses cookie daemons.** This application is a re-write of the original cookies.py script found in uzbl's master branch. This script provides more functionality than the original cookies.py by adding command line options to specify different cookie jar locations, socket locations, verbose output, etc. Check the usage section below for the full list of options. ===== Download ===== * [[http://github.com/mason-larobina/uzbl/blob/experimental/examples/data/uzbl/scripts/cookie_daemon.py|Link to the latest cookie_daemon.py in the maintainers github repo.]] * [[http://github.com/mason-larobina/uzbl/raw/experimental/examples/data/uzbl/scripts/cookie_daemon.py|Direct download of the latest cookie_daemon.py commit.]] ===== Configuring ===== ==== Getting uzbl to talk to the daemon ==== In order to get uzbl to talk to the running cookie daemon you add the following to your uzbl config: set cookie_handler = talk_to_socket $HOME/.cache/uzbl/cookie_daemon_socket or if you prefer using XDG variables: set cookie_handler = talk_to_socket $XDG_CACHE_HOME/uzbl/cookie_daemon_socket Remember that talk_to_socket doesn't have the ability to launch the cookie daemon that creates the cookie socket yet so you need to start it manually before running uzbl. If you don't like this option then follow the instructions in the next section to make a uzbl wrapper that launches the cookie_daemon.py when starting uzbl. ==== Command line options ==== The following is the output of 'cookie_daemon.py -h' which lists the command line options available in the cookie daemon (at the time of writing). Usage: cookie_daemon.py [options] Options: -h, --help show this help message and exit -n, --no-daemon don't daemonise the process. -v, --verbose print verbose output. -t SECONDS, --daemon-timeout=SECONDS shutdown the daemon after x seconds inactivity. WARNING: Do not use this when launching the cookie daemon manually. -s SOCKET, --cookie-socket=SOCKET manually specify the socket location. -j FILE, --cookie-jar=FILE manually specify the cookie jar location. -m, --memory store cookies in memory only - do not write to disk -u, --use-whitelist use cookie whitelist policy -w FILE, --cookie-whitelist=FILE manually specify whitelist location ===== Create an automatic cookie daemon launcher ===== If you don't want to be manually launching the cookie_daemon every time you log on in order to use cookies in uzbl then I've found a very easy solution to that problem. I've made a hidden .bin directory in my home folder that contains a file named 'uzbl' which launches the cookie_daemon before directly launching '/usr/bin/uzbl'. An alternative would be to place the script in /usr/local/bin/uzbl. The ~/.bin/uzbl script: #!/bin/sh # Launch cookie daemon. $XDG_DATA_HOME/uzbl/scripts/cookie_daemon.py start & # Launch uzbl directly. /usr/bin/uzbl $@ Now make the script executable: chmod +x ~/.bin/uzbl And remember to add the directory "~/.bin" to your $PATH by adding the following to your ~/.bashrc export PATH="~/.bin:$PATH" You will need to run the following or log-out and log back in for the new path in your $PATH variable to register. source ~/.bashrc ===== Running multiple cookie daemons ===== Running multiple cookie daemons is very easy **as long as you specify unique cookie socket locations and cookie jars to each daemon**. The best way to show this in action is to modify the launcher above to always use its own cookie socket and cookie jar: #!/bin/bash # My custom cookie socket and cookie jar locations COOKIE_SOCKET="$XDG_CACHE_HOME/uzbl/launcher_cookie_socket" COOKIE_JAR="$XDG_DATA_HOME/uzbl/launcher_cookie_jar" # Launch the daemon. $XDG_DATA_HOME/uzbl/scripts/cookie_daemon.py -v --cookie-socket=$COOKIE_SOCKET --cookie-jar=$COOKIE_JAR start & # Generate the new config CONFIG="`cat $XDG_CONFIG_HOME/uzbl/config`\nset cookie_handler = talk_to_socket $COOKIE_SOCKET\n" # Launch uzbl directly and send it the new config via stdin echo -e "$CONFIG" | /usr/bin/uzbl $@ -c -