diff options
Diffstat (limited to 'src/uzbl-browser')
-rwxr-xr-x | src/uzbl-browser | 90 |
1 files changed, 52 insertions, 38 deletions
diff --git a/src/uzbl-browser b/src/uzbl-browser index de4f7af..88d3742 100755 --- a/src/uzbl-browser +++ b/src/uzbl-browser @@ -1,66 +1,80 @@ #!/bin/sh -# this script implements a more useful out-of-the-box "browsing experience". -# it does so by combining uzbl-core with a set of "recommended" tools and practices. -# see docs for more info -# If you want to customize the behavior of the cookie-daemon or similar helper tools, -# copy them to your $XDG_DATA_HOME/uzbl/scripts/, edit them and update $PATH - -# Also, we assume existence of fifo/socket == correctly functioning cookie_daemon/event_manager. -# Checking correct functioning of the daemons here would be too complex here, and it's not implemented in uzbl-core either. -# But this shouldn't cause much problems.. +# +# This script implements a more useful out-of-the-box "browsing experience". +# It does so by combining uzbl-core with a set of "recommended" tools and +# practices. See docs for more info. +# +# If you want to customize the behavior any of the helper tools, copy them +# to your $XDG_DATA_HOME/uzbl/scripts/ and edit them PREFIX=/usr/local -if [ -z "$XDG_DATA_HOME" ] -then - export XDG_DATA_HOME=$HOME/.local/share -fi +EXAMPLES=$PREFIX/share/uzbl/examples -if [ -z "$XDG_CACHE_HOME" ] -then - export XDG_CACHE_HOME=$HOME/.cache -fi +XDG_DATA_HOME=${XDG_DATA_HOME:-$HOME/.local/share} +export XDG_DATA_HOME -if [ -z "$XDG_CONFIG_HOME" ] -then - export XDG_CONFIG_HOME=$HOME/.config -fi +XDG_CACHE_HOME=${XDG_CACHE_HOME:-$HOME/.cache} +export XDG_CACHE_HOME + +XDG_CONFIG_HOME=${XDG_CONFIG_HOME:-$HOME/.config} +export XDG_CONFIG_HOME # assure the relevant directories exist. -for dir in $XDG_CACHE_HOME/uzbl $XDG_DATA_HOME/uzbl $XDG_CONFIG_HOME/uzbl +for dir in "$XDG_CACHE_HOME"/uzbl "$XDG_DATA_HOME"/uzbl "$XDG_CONFIG_HOME"/uzbl do - if [ ! -d $dir ] + if [ ! -d "$dir" ] then - if ! mkdir -p $dir + if ! mkdir -p "$dir" then echo "could not create $dir" >&2 exit 2 fi fi done + # if no config exists yet in the recommended location, put the default (recommended) config there -if [ ! -f $XDG_CONFIG_HOME/uzbl/config ] +if [ ! -f "$XDG_CONFIG_HOME"/uzbl/config ] then - if ! cp $PREFIX/share/uzbl/examples/config/config $XDG_CONFIG_HOME/uzbl/config + if [ ! -r "$EXAMPLES"/config/config ] then - echo "Could not copy default config to $XDG_CONFIG_HOME/uzbl/config" >&2 + echo "Error: Global config not found; please check if your distribution ships them separately" exit 3 fi + if ! cp "$EXAMPLES"/config/config "$XDG_CONFIG_HOME"/uzbl/config + then + echo "Could not copy default config to $XDG_CONFIG_HOME/uzbl/config" >&2 + # Run with the global config as a last resort + config_file=$EXAMPLES/config/config + fi +fi + +# this variable is used by the default helper scripts as a location to +# load shared code from +if [ -z "$UZBL_UTIL_DIR" ] +then + if [ -d "$XDG_DATA_HOME"/uzbl/scripts/util ] + then + UZBL_UTIL_DIR=$XDG_DATA_HOME/uzbl/scripts/util + elif [ -d $EXAMPLES/data/scripts/util ] + then + UZBL_UTIL_DIR=$EXAMPLES/data/scripts/util + fi + export UZBL_UTIL_DIR fi -# Uncomment this for a slight speedup at the expense of not having -# stale cookie daemon sockets cleaned up. -#if [ ! -S $XDG_CACHE_HOME/uzbl/cookie_daemon_socket ] +# uzbl-cookie-manager will exit if another instance is already running. +# we could also check if its pid file exists to avoid having to spawn it. +#if [ ! -f "$XDG_CACHE_HOME"/uzbl/cookie_daemon_socket.pid ] #then - # if you want to customize it, copy to your $XDG_DATA_HOME/uzbl/scripts/ and update $PATH - uzbl-cookie-daemon -v start + ${UZBL_COOKIE_DAEMON:-uzbl-cookie-manager} #fi -DAEMON_SOCKET=$XDG_CACHE_HOME/uzbl/event_daemon -DAEMON_PID=${DAEMON_SOCKET}.pid - -#if [ -f "$DAEMON_PID" ] +# uzbl-event-manager will exit if one is already running. +# we could also check if its pid file exists to avoid having to spawn it. +DAEMON_SOCKET="$XDG_CACHE_HOME"/uzbl/event_daemon +#if [ ! -f "$DAEMON_SOCKET".pid ] #then - uzbl-event-manager -va start + ${UZBL_EVENT_MANAGER:-uzbl-event-manager -va start} #fi -exec uzbl-core "$@" --connect-socket $DAEMON_SOCKET +exec uzbl-core "$@" ${config_file:+--config "$config_file"} --connect-socket $DAEMON_SOCKET |