Any program can only be really useful if it complies with the Unix philosophy. Web browsers (and other tools that work with HTML, such as feed readers) are frequent violators of this principle:
- They build in way too much things into one (complex) program, dramatically decreasing the options to do things the way you want.
- They store things in way too fancy formats (XML, RDF, SQLite, etc.) which are hard to store under version control, reuse in other scripts, and so on.
The Uzbl project was started as an attempt to resolve this.
"Uzbl" is an umbrella project consisting of different flavors. In the future more things may come, but for now:
- Uses WebKitGtk+ for rendering and network interaction (libsoup). CSS, JavaScript, and plugin support come for free.
- Provides interfaces to get data in (commands/configuration) and out (events): stdin/stdout/fifo/Unix sockets.
- You see a WebKit view and (optionally) a status bar which gets populated externally.
- No built-in means for URL changing, loading/saving of bookmarks, saving history, keybindings, downloads, etc.
- Extra functionality: many sample scripts come with it. More are available on the Uzbl wiki or you can write them yourself.
- Entire configuration/state can be changed at runtime.
- Uzbl keeps it simple, and puts you in charge.
- Uses a set of scripts (mostly Python) that will fit most people, so things work out of the box; yet plenty of room for customization.
- Brings everything you expect: URL changing, history, downloads, form filling, link navigation, cookies, event management, etc.
- Advanced, customizable keyboard interface with support for modes, modkeys, multichars, variables (keywords) etc. (e.g., you can tweak the interface to be Vi-like, Emacs-like or any-other-program-like).
- Adequate default configuration.
- Focus on plaintext storage for your data and configuration files in simple, easy-to-parse formats and adherence to the XDG basedir spec.
- Visually, similar to
uzbl-core
except that the status bar contains useful information. - One window per page.
- Spawns one window containing multiple tabs, each tab containing a full
embedded
uzbl-browser
. - Ideal as a quick and simple solution to manage multiple
uzbl-browser
instances without getting lost.
Throughout the documentation, when referring to uzbl
we mean uzbl-core
,
unless otherwise specified.
The general idea is that Uzbl by default is very bare bones. You can send it commands to update settings and perform actions, through various interfaces. There is a limited, built-in default configuration. It sets a basic status bar, title format, and network connection settings. By default, there are no keybindings defined at all (default keybindings would be counterproductive when you try to customize). For examples of the possibilities what you can do, please see the sample configurations, and wiki page.
There are several interfaces to interact with Uzbl:
-
uzbl --config <filename>
:<filename>
will be read line by line, and the commands in it will be executed. Useful to configure Uzbl at startup. If you have a file in$XDG_CONFIG_HOME/uzbl/config
(this expands to~/.config/uzbl/config
on most systems), it will be automatically recognized. -
stdin
: to write commands intostdin
, use--config -
(or-c -
). -
Interactive: you can enter commands (and bind them to shortcuts, even at runtime). By default, the behaviour is modal (vi-like):
- command mode: every keystroke is interpreted to run commands
- insert mode: keystrokes are not interpreted so you can enter text into html forms
There is also support for "chained" commands (multiple characters long), and keyworded commands. Also you can trigger incremental matching on commands and variables after pressing return. See the sample configuration file for more information.
By default, copy and paste works when typing commands:
insert
(paste X cliboard)shift insert
(paste primary selection buffer)
-
FIFO & socket files: If enabled by setting their paths through one of the above means, you can have socket and FIFO files available which are very useful to control
uzbl
using external programs.-
The advantage of the FIFO is you can write directly to it, but it's half duplex only (
uzbl
cannot send a response to you). -
The socket is full duplex but a socket-compatible wrapper such as
socat
is needed to work with it. For example:echo | socat - unix-connect:
-
When uzbl
forks a new instance (e.g., "open in new window") it will use the
same command line arguments (e.g., the same --config <file>
), except --uri
and --named
. If you made changes to the configuration at runtime, these are
not passed on to the child.
A minimal browser which encompasses a default configuration file and event manager which gives a comparable browsing experience to the more common browsers. For more, see its documentation.
A flavor of uzbl
built on top of uzbl-browser
which adds tabbed browsing.
For more, see its documentation.
Multiple commands and variables mention that they are not supported in WebKit2.
WebKit2 changes many things compared to WebKit1, some of which impact uzbl
greatly. It works, but many of the core features are not supported (cookie
management, the scroll
command, HTML5 database control, injecting JavaScript
into the page, and more). As such, using WebKit2 is not recommended for
day-to-day usage currently. For a list of what is missing, see this
bug.
Uzbl
will read commands via standard input, named FIFO pipe (once fifo_dir
is set) and Unix socket (once socket_dir
is set). For convenience, uzbl
can
also be instructed to read commands from a file on startup by using the
--config
option. Indeed, the config file is nothing more than a list of
commands with support for comments (using the #
character).
Each command starts with the name of a command or a uzbl
variable that expands
to it. A command is terminated by a newline. Empty lines and lines that start
with the hash sign (ignoring leading whitespace) are ignored by the parser.
Command names are always written in lowercase.
A list of commands supported by uzbl
is given here. Optional arguments are
given in square brackets ([]
) with literal strings options in lowercase
separated by a pipe (|
) character. N
indicates an integer value and other
uppercase values are placeholders describing what the value should be. Required
options are given in angle brackets (<>
). Arguments on which argument
splitting is not performed are given in curly braces ({}
). Variable arguments
are indicated with ellipses (...
). As an example:
`example1 <a|b> <N> [URI...]`
means that the command example
requires its first argument which must either
be a literal a
or b
, a second argument which is an integer, and any
remaining arguments are treated as URIs. Another example:
`example2 <KEY> {VALUE}`
means that the first argument is split off used as a key and the remaining
string is used verbatim. The command example2 key many args
would have key
as KEY
and many args
as VALUE
.
back [N]
- Navigate to the Nth (default: 1) previous URI in the instance history.
forward [N]
- Navigate to the Nth (default: 1) next URI in the instance history.
reload [cached|full]
- Reload the current page. If
cached
is given (the default), the cache is used. Iffull
is given, the cache is ignored.
- Reload the current page. If
stop
- Stop loading the current page. This usually means that no new network requests are made, but JavaScript can still run.
uri {URI}
- Tell
uzbl
to navigate to the given URI.
- Tell
download <URI> [DESTINATION]
- Tell WebKit to download a URI. In WebKit2, the destination parameter is
ignored (the
download_handler
mechanism is used instead).
- Tell WebKit to download a URI. In WebKit2, the destination parameter is
ignored (the
load <COMMAND>
- Load content into the page. Supported subcommands include:
html <URI> <CONTENT>
- Load content as HTML relative to a URI.
text <CONTENT>
- Load content as plain text.
error_html <URI> <BASE_URI> <CONTENT>
- Load content an error page (which does not appear in the forward/back list) at the given URI with the given
- Load content into the page. Supported subcommands include:
save [FORMAT] [PATH]
(WebKit2 >= 1.9.90)- Save the current page to a file in the given format. If no path is given, WebKit determines the output path. Currently supported formats include: mhtml (the default).
frame <list|focus|reload|stop|dump|inject|get|set> [NAME]
(WebKit1 only)- Operate on frames in the current page. If not name is given, the
_current
frame is used. Supported subcommands include:list
(Unimplemented)- Returns a JSON object representing the of frames in the frame.
focus
(Unimplemented)- Give focus to the frame.
reload
- Reload the frame.
stop
- Stop loading the frame.
save
(Unimplemented)- Save the content frame.
load
(Unimplemented)- Load content into the frame.
get <VARIABLE>
(Unimplemented)- Get information about a frame.
set <VARIABLE> <VALUE>
(Unimplemented)- Set information about a frame.
- Operate on frames in the current page. If not name is given, the
cookie <add|delete|clear>
- Manage cookies in
uzbl
. The subcommands work as follows:add <HOST> <PATH> <NAME> <VALUE> <SCHEME> <EXPIRATION>
(WebKit1 only)- Manually add a cookie.
delete <DOMAIN> <PATH> <NAME> <VALUE>
(WebKit1 only)- Delete a cookie from the cookie jar.
clear all
- Delete all cookies.
clear domain [DOMAIN...]
- Delete all cookies matching the given domains.
- Manage cookies in
scroll <horizontal|vertical> <VALUE>
(WebKit2 broken)- Scroll either the horizontal or vertical scrollbar for the page. The value
may be one of:
begin
- Scrolls to the beginning of the page (either left or up).
end
- Scrolls to the end of the page (either right or down).
[-]N
- Scrolls N "units" as defined by the scrollbar (seems to be pixels).
[-]N%
- Scrolls N% of a single page.
N!
- Scrolls to position N on the scrollbar (also in "units").
N%!
- Scrolls to position N% on the scrollbar.
- Scroll either the horizontal or vertical scrollbar for the page. The value
may be one of:
zoom <in|out|set> [VALUE]
- Zoom either in or out by the given amount. When setting, the value is
required. If no value is given, the variable
zoom_step
is used.
- Zoom either in or out by the given amount. When setting, the value is
required. If no value is given, the variable
hardcopy [REGION]
- Print the given region. Supported regions include:
page
(the default)- Prints the entire page.
frame [NAME]
- Prints the frame with the given name or the current frame if no name is given.
- Print the given region. Supported regions include:
geometry <SIZE>
- Set the size of the
uzbl
window. This is subject to window manager policy. If the size ismaximized
, theuzbl
window will try to maximize itself. Otherwise, the size is parsed using theWIDTHxHEIGHT±XOFFSET±YOFFSET
pattern.
- Set the size of the
snapshot <PATH> <FORMAT> <REGION> [FLAG...]
(WebKit2 >= 1.11.92 or WebKit1 >= 1.9.6)-
Saves the current page as an image to the given path. Currently supported formats include:
png
. Acceptable regions include:visible
- Only includes the regions of the page which are currently visible.
document
(WebKit2 only)- Includes the entire page.
Accepted flags include:
selection
(WebKit2 only)- Include the selection highlighting in the image.
-
plugin <COMMAND>
- Exposes control of plugin-related information. Supported subcommands include:
search <DIRECTORY>
(WebKit2 only)- Add the directory to the search path for plugins.
refresh
(WebKit1 only)- Refresh the plugin database.
toggle [NAME...]
(WebKit1 only)- Toggle whether the given plugins are enabled (or all if none are given).
- Exposes control of plugin-related information. Supported subcommands include:
remove_all_db
(WebKit1 only)- Remove all web databases.
spell <COMMAND>
(WebKit1 >= 1.5.1)- Use WebKit's spell check logic. Supported subcommands include:
ignore [WORD...]
- Add the given words to the list of words to ignore.
learn [WORD...]
- Teaches that the given words are spelled correctly.
autocorrect <WORD>
- Returns the word as autocorrected by the checker.
guesses <WORD>
- Returns the guesses for the word given by the checker as a JSON list.
- Use WebKit's spell check logic. Supported subcommands include:
cache <COMMAND>
(WebKit2 only)- Controls the cache used by WebKit. Supported subcommands include:
clear
- Clears all cache.
- Controls the cache used by WebKit. Supported subcommands include:
favicon <COMMAND>
- Controls the favicon database. Supported subcommands include:
clear
- Clears all cached favicons.
uri <URI>
- Returns the URI of the favicon for the given URI.
save <URI> <PATH>
(Unimplemented)- Saves the favicon for the given URI to a path.
- Controls the favicon database. Supported subcommands include:
css <COMMAND>
- Controls CSS settings in web pages. Supported subcommands include:
add <URI>
(WebKit1)add <URI> [LOCATION] [BASE_URI] [WHITELIST] [BLACKLIST]
(WebKit2 < 2.5.1)add <URI> [LOCATION] [LEVEL] [WHITELIST] [BLACKLIST]
(WebKit2 >= 2.5.1)- Adds a CSS file to pages when loaded. WebKit1 only uses the URI
parameter and only supports one extra stylesheet at a time. For
WebKit2, the location can be one of
all
(the default) ortop_only
. Fortop_only
, child frames do not use the stylesheet. The base URI, if given, is used during CSS processing (up to 2.5.1). The level can beuser
(the default) orauthor
and it is treated as if provided that way (author
is the website). The white and blacklists are comma-separated URI patterns which must match the formatprotocol://host/path
and may use*
as a wildcard.
- Adds a CSS file to pages when loaded. WebKit1 only uses the URI
parameter and only supports one extra stylesheet at a time. For
WebKit2, the location can be one of
clear
Clears all user-supplied stylesheets.
- Controls CSS settings in web pages. Supported subcommands include:
script <COMMAND>
(WebKit2 >= 2.5.1)add <URI> [LOCATION] [WHERE] [WHITELIST] [BLACKLIST]
- Adds a JavaScript file to pages when loaded. The location can be either
all
(the default) ortop_only
which indicates which frame(s) should execute the code when a page is loaded. The code can either be added to thestart
(the default) orend
of loaded pages. The white and blacklist arguments are the same format ascss add
.
- Adds a JavaScript file to pages when loaded. The location can be either
clear
Clears all user-supplied scripts.listen <NAME>
Listen to messages on a given message handler call. Accessible viawindow.webkit.messageHandlers.NAME.postMessage(value)
from the web page. Events will be sent in the formSCRIPT_MESSAGE <NAME> <MESSAGE>
.ignore <NAME>
Stop listening to names on the given message handler calls.
scheme <SCHEME> {COMMAND}
- Registers a custom scheme handler for
uzbl
. The handler should accept a single argument for the URI to load and return HTML.
- Registers a custom scheme handler for
menu <COMMAND>
- Controls the context menu shown in
uzbl
. Supported subcommands include:add <OBJECT> <NAME> <COMMAND>
- Appends a new entry to the menu with the given name and runs the given command when used.
add_separator <OBJECT> <NAME>
- Appends a new separator to the menu with the given name.
remove <NAME>
- Remove items which have the given name.
query <NAME>
- Returns the command for the item with the given name.
list
- Returns the names of items in the menu as a JSON list. The list of supported objects is:
document
link
image
media
editable
(WebKit2 >= 1.9.4)scrollbar
(WebKit2 >= 1.11.4)selection
(WebKit2 >= 2.7.1)
- Controls the context menu shown in
search <COMMAND>
- Controls WebKit's search mechanisms. Supported subcommands include:
option <OPTION...>
- Manage options for searching. Options may be prefixed with
+
to set,-
to unset,!
to toggle, and~
to reset to its default. The default options havewrap
enabled. Recognized options include:wrap
- If set, searches will wrap around when the start or end of the document is reached.
case_insensitive
- If set, searches are case-insensitive.
word_start
(WebKit2 only)- If set, searches will only match the start of words.
camel_case
(WebKit2 only)- If set, capital letters in the middle of words are considered the start of a word.
- Manage options for searching. Options may be prefixed with
options
- Returns the current options as a JSON list.
clear
- Turn off searching. The current options and search string are preserved.
reset
- Turn off searching, setting the options back to the default and forgetting the search string.
find {STRING}
- Search forward in the document for the string. If no string is given, the previous search string is used.
rfind {STRING}
- As
find
, but searches backwards in the document.
- As
next
- Jumps to the next instance of the search string in the document in the
same direction as the last
find
orrfind
command.
- Jumps to the next instance of the search string in the document in the
same direction as the last
prev
- As
next
, but searches in the opposite direction from the lastfind
orrfind
command.
- As
- Controls WebKit's search mechanisms. Supported subcommands include:
security <SCHEME> <COMMAND> <OPTION>
(WebKit2 or WebKit2 >= 1.11.1)-
Controls security options for a scheme. Recognized commands include:
get
- Returns
true
if the option is set for the scheme,false
otherwise.
- Returns
set
- Sets the option for the scheme. With WebKit2, be careful setting options since they cannot (currently) be unset.
unset
(WebKit1 only)- Unsets the option for the scheme.
Supported options include ("scheme" here is used as "content referenced with this scheme"):
local
- If set, non-local schemes cannot link or access pages this scheme.
no_access
- If set, the scheme cannot access other schemes.
display_isolated
- If set, the scheme can only be displayed in the same scheme.
secure
- If set, the scheme is considered "secure" and will not generate warnings when referenced by an HTTPS page.
cors_enabled
- If set, the scheme is allowed to make cross-origin resource sharing.
empty_document
- If set, the scheme is allowed to be committed synchronously.
-
dns <COMMAND>
(WebKit2 only)- Manage DNS settings. Supported subcommands include:
fetch <HOSTNAME>
- Prefetch the DNS entry for the given hostname.
- Manage DNS settings. Supported subcommands include:
inspector <COMMAND>
- Control the web inspector. Supported subcommands include:
show
- Show the web inspector.
close
- Close the web inspector.
attach
(WebKit2 only)- Request that the inspector be attached to the current page.
detach
(WebKit2 only)- Request that the inspector be detached to the current page.
coord <X> <Y>
(WebKit1 only)- Inspect the page at the given coordinate. The coordinate is relative to the current viewport.
node <NODE>
(WebKit1 >= 1.3.17) (Unimplemented)- Inspect the node which matches the given CSS selector string. If multiple nodes match, the first one is used.
- Control the web inspector. Supported subcommands include:
js <CONTEXT> <file|string> <VALUE>
- Run JavaScript code. If
file
is given, the value is interpreted as a path to a file to run, otherwise the value is executed as JavaScript code. Currently supported contexts include:uzbl
- Run the code in the
uzbl
context. This context does not (currently) have access to the page's contents.
- Run the code in the
clean
- Create a new context just for this command. This is the most secure option and should be preferred where possible.
frame
(WebKit1 only)- Run the code in the current frame's context.
page
(WebKit2 broken)- Run the code in the current page's context. Be careful putting code into this context since anything in here may be hijacked by a malicious webpage. The context is cleared on each page load.
- Run JavaScript code. If
spawn <COMMAND> [ARGUMENT...]
(WILL CHANGE)-
Spawn a command on the system with the given arguments. This ignore the stdout of the command. Will become
spawn async
in the future. The first argument command may use the following format to support fallback directories:dir1:dir2:dir3:subpath
This will try
@{dir1}@{subpath}
followed by @{dir2}@{subpath}and so on. The first file which exists is used. If none of them exist, it is used as the command verbatim and the
PATH` environment variable is used.
-
spawn_sync <COMMAND> [ARGUMENT...]
(DEPRECATED)- Spawn a command on the system synchronously with the given arguments and
return its stdout. Will become
spawn async
in the future.
- Spawn a command on the system synchronously with the given arguments and
return its stdout. Will become
spawn_sync_exec <COMMAND> [ARGUMENT...]
(DEPRECATED)- Spawn a command synchronously and then execute the output as
uzbl
commands. This will disappear in the future and the command should communicate touzbl
over either the FIFO or the socket.
- Spawn a command synchronously and then execute the output as
spawn_sh <COMMAND> [ARGUMENT...]
(DEPRECATED)- Spawn a command using the default shell. This is deprecated for
spawn @shell_cmd ...
.
- Spawn a command using the default shell. This is deprecated for
spawn_sh_sync <COMMAND> [ARGUMENT...]
(DEPRECATED)- Spawn a command using the default shell. This is deprecated for
spawn_sync @shell_cmd ...
.
- Spawn a command using the default shell. This is deprecated for
chain <COMMAND...>
- Execute a chain of commands. This is useful for commands which should not have any interruption between them.
include {PATH}
- Execute a file as a list of uzbl commands.
exit
- Closes
uzbl
.
- Closes
set <NAME> {VALUE}
- Set a variable to the given value. Unsetting a variable is not possible (currently). Set it to the empty string (behavior is the same).
toggle <VARIABLE> [OPTION...]
- Toggles a variable. If any options are given, a value is chosen from the
list, the option following the current value is used, defaulting to the
first value if the current value is not found. Without any options,
non-strings are toggled between 0 and 1 (if it is neither of these values,
0 is set). User values are set to the empty string unless they are
0
or1
in which case the other is set. If the variable does not exist, it is set to1
.
- Toggles a variable. If any options are given, a value is chosen from the
list, the option following the current value is used, defaulting to the
first value if the current value is not found. Without any options,
non-strings are toggled between 0 and 1 (if it is neither of these values,
0 is set). User values are set to the empty string unless they are
print {STRING}
- Performs variable expansion on the string and returns the value.
dump_config
- Dumps the current config (which may have been changed at runtime) to
stdout. Uses a format which can be piped into
uzbl
again or saved as a config file.
- Dumps the current config (which may have been changed at runtime) to
stdout. Uses a format which can be piped into
dump_config_as_events
- Dump the current config as a series of
VARIABLE_SET
events, which can be handled by an event manager.
- Dump the current config as a series of
event <NAME> [ARGUMENTS...]
- Send a custom event.
request <NAME> <COOKIE> [ARGUMENTS...]
- Send a synchronous request and returns the result of the request. This is
meant to be used for synchronous communication between the event manager
and
uzbl
sincespawn_sync
is not usable to talk to the event manager.
- Send a synchronous request and returns the result of the request. This is
meant to be used for synchronous communication between the event manager
and
Uzbl
has a lot of internal variables and constants. You can get the values
(see the print
command), and for variables you can also change the value at
runtime. Some of the values can be passed at start up through command line
arguments, others need to be set by using commands (e.g., in the configuration
file).
- Some variables have callback functions which will get called after setting the variable to perform some additional logic (see below).
- Besides the builtin variables you can also define your own ones and use them in the exact same way as the builtin ones.
Integer variables may be negative, boolean values should be either 0
or 1
.
Commands are variables intended to be executed as uzbl commands. All user
variables are treated as strings.
verbose
(integer) (default: 0)- Controls the verbosity of
uzbl
as it runs.
- Controls the verbosity of
frozen
(boolean) (default: 0)- If non-zero, all network requests and navigation are blocked. This is useful for blocking pages from redirecting or loading any content after the core content is loaded. Network connections which have already started will still complete.
print_events
(boolean) (default: 0)- If non-zero, events will be printed to stdout.
handle_multi_button
(boolean) (default: 0)- If non-zero,
uzbl
will intercept all double and triple clicks and the page will not see them.
- If non-zero,
fifo_dir
(string) (no default)- Sets the directory for the FIFO. If set previously, the old FIFO is removed.
socket_dir
(string) (no default)- Sets the directory for the socket. If set previously, the old socket is removed.
scheme_handler
(command) (no default)- The command to use when determining what to do when navigating to a new
URI. It is passed the URI as an extra argument. If the command returns a
string with the first line containing only the word
USED
, the navigation is ignored.
- The command to use when determining what to do when navigating to a new
URI. It is passed the URI as an extra argument. If the command returns a
string with the first line containing only the word
request_handler
(command) (no default) (synchronous in WebKit1)- The command to use when a new network request is about to be initiated. The
URI is passed as an argument. If the command returns a non-empty string,
the first line of the result is used as the new URI. To cancel a request,
use the URI
about:blank
. In WebKit2,IGNORE
andDOWNLOAD
may be used. - NOTE: Do not use
request
in WebKit1 as this is called synchronously and will just pauseuzbl-core
until therequest
timeout occurs.
- The command to use when a new network request is about to be initiated. The
URI is passed as an argument. If the command returns a non-empty string,
the first line of the result is used as the new URI. To cancel a request,
use the URI
download_handler
(command) (no default) (synchronous in WebKit1)- The command to use when determining where to save a downloaded file. It is passed the URI, suggested filename, content type, and total size as arguments. If a destination is known, it is passed as well. The result is used as the final destination. If it is empty, the download is cancelled.
- NOTE: Do not use
request
in WebKit1 as this is called synchronously and will just pauseuzbl-core
until therequest
timeout occurs.
mime_handler
(command) (no default) (WebKit1 only)- The command to use when determining what to do with content based on its mime type. It is passed the mime type and disposition as arguments.
authentication_handler
(command) (no default) (WebKit1 only)- The command to use when requesting authentication.
permission_handler
(command) (no default)- The command to use when WebKit requesting permission for an action.
tls_error_handler
(command) (no default) (WebKit2 >= 2.3.1)- The command to use when a TLS error occurs. The handler may return
ALLOW
to ignore the TLS error for the session.
- The command to use when a TLS error occurs. The handler may return
shell_cmd
(string) (default:sh -c
)- The command to use as a shell. This is used in the
spawn_sh
andsync_sh
commands as well as@()@
expansion.
- The command to use as a shell. This is used in the
enable_builtin_auth
(boolean) (default: 0) (WebKit1 only)- If non-zero, WebKit will handle HTTP authentication dialogs. WebKit2 acts
as if this were always
1
.
- If non-zero, WebKit will handle HTTP authentication dialogs. WebKit2 acts
as if this were always
icon
(string) (no default)- The path to an image to use as an icon for
uzbl
. Overridesicon_name
when set.
- The path to an image to use as an icon for
icon_name
(string) (no default)- The name of an icon use as an icon for
uzbl
. Overridesicon
when set.
- The name of an icon use as an icon for
window_role
(string) (no default)- Sets the role of the window. This is used to hint to the window manager how to handle the window.
auto_resize_window
(boolean) (default: 0) (WebKit1 only)- If non-zero, WebKit will try to honor JavaScript moving the window. May still be blocked by window manager policy.
show_status
(boolean) (default: 1)- If non-zero, the status bar is shown.
status_top
(boolean) (default: 0)- If non-zero, the status bar is placed above the page, otherwise it is placed below.
status_format
(string) (default:<b>@[@TITLE]@</b> - @[@uri]@ - <span foreground="#bbb">@NAME</span>
)- The format string of the content in the status bar.
status_format_right
(string) (no default)- The format string of the content in right side of the status bar. The right side is elided if the left side overflows.
status_background
(string) (no default)- The background color of the status bar. Most common formats supported.
title_format_long
(string (default:@keycmd @TITLE - Uzbl browser <@NAME> > @SELECTED_URI
)- `The title to use when no status bar is shown.
title_format_short
(string (default:@TITLE - Uzbl browser <@NAME>
)- `The title to use when the status bar is shown.
enable_compositing_debugging
(boolean) (default: 0) (WebKit2 only)- If non-zero, draw borders when using accelerated compositing.
default_context_menu
(boolean) (default: 0) (WebKit2 or WebKit2 >= 1.9.0)- If non-zero, display the default context menu, ignoring any custom menu items.
print_backgrounds
(boolean) (default: 1)- If non-zero, print backgrounds when printing pages.
proxy_url
(string) (no default) (WebKit1 only)- If set, the value is used as a network proxy.
max_conns
(integer) (default: 100) (WebKit1 only)- The maximum number of connections to initialize total.
max_conns_host
(integer) (default: 6) (WebKit1 only)- The maximum number of connections to use per host.
http_debug
(enumeration) (default:none
) (WebKit1 only)- Debugging level for HTTP connections. Acceptable values include:
none
minimal
headers
body
- Debugging level for HTTP connections. Acceptable values include:
ssl_ca_file
(string) (no default) (WebKit1 only)- The path to the CA certificate file in PEM format to use for trusting SSL certificates. By default, the system store is used.
ssl_policy
(enumeration) (default:fail
)- The policy to use for handling SSL failures. Acceptable values include:
ignore
fail
- The policy to use for handling SSL failures. Acceptable values include:
cache_model
(enumeration) (default:unknown
)- The model to use for caching content. Acceptable values include:
document_viewer
- Disables all caching.
web_browser
- Caches heavily to attempt to minimize network usage.
document_browser
- Caches moderately. This is optimized for navigation of local resources.
- The model to use for caching content. Acceptable values include:
enable_private
(boolean) (default: 0)- If non-zero, enables WebKit's private browsing mode. Also sets the
UZBL_PRIVATE
environment variable for external plugins. DNS prefetching is separate from this; see theenable_dns_prefetch
variable. It is currently experimental in WebKitGtk itself.
- If non-zero, enables WebKit's private browsing mode. Also sets the
permissive
(boolean) (default: 0)- If non-zero, permission will be granted by default (if
enable_private
is 0) ifpermission_handler
is either not set or returns an invalid value.
- If non-zero, permission will be granted by default (if
enable_universal_file_access
(boolean) (default: 0) (WebKit1 only)- If non-zero, content accessed via the
file
scheme will be allowed to access all other content.
- If non-zero, content accessed via the
enable_cross_file_access
(boolean) (default: 0) (WebKit1 only)- If non-zero, content accessed via the
file
scheme will be allowed to access otherfile
content.
- If non-zero, content accessed via the
enable_hyperlink_auditing
(boolean) (default: 0)- If non-zero,
<a ping>
will be allowed in WebKit.
- If non-zero,
enable_xss_auditing
(boolean) (default: 0) (WebKit2 only)- If non-zero, WebKit will attempt to filter reflecting XSS attacks.
cookie_policy
(enumeration) (default:always
) (reading the value is broken in WebKit2)- Sets the cookie policy for WebKit. Acceptable values include:
always
never
first_party
- Blocks third-party cookies.
- Sets the cookie policy for WebKit. Acceptable values include:
enable_dns_prefetch
(boolean) (default: 1) (WebKit >= 1.3.13)- If non-zero, WebKit will prefetch domain names while browsing.
display_insecure_content
(boolean) (default: 1) (WebKit1 >= 1.11.2)- If non-zero, HTTPS content will be allowed to display content served over HTTP.
run_insecure_content
(boolean) (default: 1) (WebKit1 >= 1.11.2)- If non-zero, HTTPS content will be allowed to run content served over HTTP.
maintain_history
(boolean) (default: 1) (WebKit1 only)- If non-zero, WebKit will maintain a back/forward list.
profile_js
(boolean) (default: 0) (WebKit1 only)- If non-zero, the inspector will profile running JavaScript. Profiles are
available as the
Console.profiles
variable in JavaScript.
- If non-zero, the inspector will profile running JavaScript. Profiles are
available as the
profile_timeline
(boolean) (default: 0) (WebKit1 only)- If non-zero, the inspector will profile network activity.
forward_keys
(boolean) (default: 0)- If non-zero,
uzbl
will pass keypresses to WebKit.
- If non-zero,
useragent
(string) (no default)- The string to send as the
User-Agent
HTTP header. Setting this variable does not update the useragent in JavaScript as seen by thenavigator.userAgent
variable.
- The string to send as the
accept_languages
(string) (no default)- The list of languages to send with the
Accept-Language
HTTP header. In WebKit1, if set toauto
, the list will be constructed from the system.
- The list of languages to send with the
zoom_level
(double) (default: 1.0)- The current zoom level of the page.
zoom_step
(double) (default: 0.1)- The amount to step by default with the
zoom in
andzoom out
commands. Must be greater than 0.
- The amount to step by default with the
zoom_text_only
(boolean) (default: 1 in WebKit1; 0 in WebKit2) (WebKit2 >= 1.7.91 or WebKit1)- If non-zero, only text will be zoomed on a page.
caret_browsing
(boolean) (default: 0)- If non-zero, pages may be navigated using the arrows to move a cursor (similar to a word processor).
enable_frame_flattening
(boolean) (default: 0) (WebKit >= 1.3.5)- If non-zero, frames will be expanded and collapsed into a single scrollable area.
enable_smooth_scrolling
(boolean) (default: 0) (WebKit >= 1.9.0)- If non-zero, scrolling the page will be smoothed.
page_view_mode
(enumeration) (default:web
) (not in WebKit2 >= 2.5.1)- How to render content on a page. Acceptable values include:
web
- Render content as a web page.
source
- Display the source of a page as plain text.
- How to render content on a page. Acceptable values include:
transparent
(boolean) (default: 0) (WebKit1 only)- If non-zero, the web page will have a transparent background rather than a solid color.
window_view_mode
(enumeration) (default:windowed
) (WebKit1 >= 1.3.4)- Sets the value web pages will see for how the content is presented to the
user. Acceptable values include:
windowed
floating
fullscreen
maximized
minimized
- Sets the value web pages will see for how the content is presented to the
user. Acceptable values include:
enable_fullscreen
(boolean) (default: 0) (WebKit >= 1.3.4)- If non-zero, Mozilla-style JavaScript APIs will be enabled for JavaScript.
editable
(boolean) (default: 0) (WebKit1 only)- If non-zero, web pages will be editable similar to a WYSIWYG editor.
enable_scripts
(boolean) (default: 1)- If non-zero, JavaScript will be allowed to execute on web pages.
javascript_windows
(boolean) (default: 0)- If non-zero, JavaScript in a page will be allowed to open windows without user intervention.
javascript_modal_dialogs
(boolean) (default: 0) (WebKit2 only)- If non-zero, JavaScript in a page will be allowed to create modal windows
via the
window.showModalDialog
API.
- If non-zero, JavaScript in a page will be allowed to create modal windows
via the
javascript_dom_paste
(boolean) (default: 0) (WebKit1 only)- If non-zero, JavaScript in a page will be able to paste content from the system clipboard.
javascript_clipboard
(boolean) (default: 0) (WebKit >= 1.3.0)- If non-zero, JavaScript in a page will be able to access content in the system clipboard directly.
javascript_console_to_stdout
(boolean) (default: 0) (WebKit2 >= 2.1.1)- If non-zero, JavaScript's console output will be put on stdout as well.
autoload_images
(boolean) (default: 1)- If non-zero, images will automatically be loaded.
autoload_icons
(boolean) (default: 0) (WebKit2 only)- If non-zero, favicons will be loaded regardless of the
autoload_images
variable.
- If non-zero, favicons will be loaded regardless of the
autoshrink_images
(boolean) (default: 1) (WebKit1 only)- If non-zero, stand-alone images will be resized to fit within the window.
use_image_orientation
(boolean) (default: 0) (WebKit1 only)- If non-zero, image orientation tags will be used to reorient images once loaded.
enable_spellcheck
(boolean) (default: 0)- If non-zero, spell checking will be enabled in text entries.
spellcheck_languages
(string) (no default)- A comma-separated list of languages to use for spell checking. Must be set
for
enable_spellcheck
to actually mean anything.
- A comma-separated list of languages to use for spell checking. Must be set
for
resizable_text_areas
(boolean) (default: 1)- If non-zero, text area form elements will be resizable with a drag handle.
enable_spatial_navigation
(boolean) (default: 0) (WebKit1 or WebKit2 >= 2.3.3)- If non-zero, the arrow keys will navigate between form elements.
editing_behavior
(enumeration) (default:unix
) (WebKit1 only)- Sets the behavior of text area elements to behave closer to native widgets
on different platforms. Acceptable values include:
mac
unix
windows
- Sets the behavior of text area elements to behave closer to native widgets
on different platforms. Acceptable values include:
enable_tab_cycle
(boolean) (default: 1)- If non-zero, the tab key will navigate between form elements, otherwise it will always be interpreted as an insertion of a tab character.
default_encoding
(string) (default:iso-8859-1
)- The encoding to assume pages use if not indicated in HTTP headers.
custom_encoding
(string) (no default)- If non-empty, the value is used to override any other encoding used for the page. Causes the page to be reloaded. Set to the empty string to clear any custom encoding.
enforce_96_dpi
(boolean) (default: 0) (WebKit1 only)- If non-zero, the display will be assumed to be 96-dpi.
default_font_family
(string) (default:sans-serif
)- The font family to use by default for all text.
monospace_font_family
(string) (default:monospace
)- The font family to use by default for monospace text.
sans_serif_font_family
(string) (default:sans-serif
)- The font family to use by default for sans serif text.
serif_font_family
(string) (default:serif
)- The font family to use by default for serif text.
cursive_font_family
(string) (default:serif
)- The font family to use by default for any cursive text.
fantasy_font_family
(string) (default:serif
)- The font family to use by default for any fantasy text.
pictograph_font_family
(string) (default:serif
) (WebKit2 only)- The font family to use by default for any pictographic text.
Note: In WebKit2, font sizes are in pixels, whereas WebKit1 uses points.
minimum_font_size
(integer) (default: 5) (WebKit1 only)- The minimum font size to use for text.
minimum_logical_font_size
(integer) (default: 5) (WebKit1 only)- The minimum logical font size to use for text. This is the size after any transforms or "smaller" CSS specifications.
font_size
(integer) (default: 12)- The default font size for text.
monospace_size
(integer) (default: 10)- The default font size for monospace text.
enable_plugins
(boolean) (default: 1)- If non-zero, plugins will be enabled on the page.
enable_java_applet
(boolean) (default: 1)- If non-zero, Java will be enabled for the page. This includes the
applet
HTML tag which is not controlled by theenable_plugins
variable.
- If non-zero, Java will be enabled for the page. This includes the
enable_webgl
(boolean) (default: 0) (WebKit >= 1.3.14)- If non-zero, WebGL will be enabled.
enable_webaudio
(boolean) (default: 0) (WebKit >= 1.7.5)- If non-zero, the WebAudio API will be enabled.
enable_3d_acceleration
(boolean) (default: 0) (WebKit1 >= 1.7.90)- If non-zero, the GPU will be used to render animations and 3D CSS transforms.
enable_2d_acceleration
(boolean) (default: 0) (WebKit2 >= 2.1.1)- If non-zero, 2D canvas operations will be accelerated by hardware.
enable_inline_media
(boolean) (default: 1) (WebKit >= 1.9.3)- If non-zero, media playback within a page will be enabled, otherwise, only fullscreen playback is allowed.
require_click_to_play
(boolean) (default: 0) (WebKit >= 1.9.3)- If non-zero, media may automatically play on a page, otherwise a user interaction is required to even load the media.
enable_css_shaders
(boolean) (default: 0) (WebKit1 >= 1.11.1 and < 2.3.5)- If non-zero, CSS shaders will be enabled.
enable_media_stream
(boolean) (default: 0) (WebKit1 >= 1.11.1 or WebKit2 >= 2.3.2)- If non-zero, the Media Stream API will be enabled.
enable_media_source
(boolean) (default: 0) (WebKit >= 2.3.3)- If non-zero, the MediaSource API will be enabled.
enable_database
(boolean) (default: 1)- If non-zero, the HTML5 client-side SQL API for JavaScript is enabled.
enable_local_storage
(boolean) (default: 1)- If non-zero, the HTML5 local storage API is enabled.
enable_pagecache
(boolean) (default: 0)- If non-zero, WebKit will "freeze" pages when navigating to optimize back/forward navigation. See this article for more information.
enable_offline_app_cache
(boolean) (default: 1)- If non-zero, HTML5 web application cache support will be enabled. This allows web applications to run locally without a network connection.
app_cache_size
(size) (default: [no quota]) (WebKit1 >= 1.3.13)- The maximum size (in bytes) of the local application cache.
web_database_directory
(string) (default:$XDG_DATA_HOME/webkit/databases
) (WebKit1 only)- Where to store web databases.
web_database_quota
(size) (default: 5242880) (WebKit1 only)- The maximum size (in bytes) of web databases. (Note: It is unclear if this is a total quota or per-database quota.)
local_storage_path
(string) (default:$XDG_DATA_HOME/webkit/databases
) (WebKit1 >= 1.5.2 or WebKit2 >= 1.7.2)- Where to store HTML5
localStorage
data.
- Where to store HTML5
disk_cache_directory
(string) (no default) (WebKit2 >= 1.11.92)- Where to store cache files.. Must be set before loading any pages to have an effect.
web_extensions_directory
(string) (no default) (WebKit2 only)- Where to look for web extension libraries. Must be set before loading any pages.
enable_site_workarounds
(boolean) (default: 0)- If non-zero, WebKit will use site-specific rules to workaround known broken behavior.
Constants may not be assigned to. When dumping variables using dump_config
,
they are written as comments.
inspected_uri
(string) (WebKit >= 1.3.17)- The URI which the inspector is currently focusing on.
current_encoding
(string) (WebKit1 only)- The encoding of the current page.
geometry
(string)- A string giving the current window geometry of
uzbl
in<width>x<height>+<xoffset>+<yoffset>
format.
- A string giving the current window geometry of
plugin_list
(string) (WebKit2 >= 1.11.4 or WebKit1 >= 1.3.8) (WebKit2 broken)- A JSON-formatted list describing loaded plugins.
is_online
(boolean)- If non-zero, a network is available (not necessarily the Internet).
uri
(string)- The current top-level URI of the view.
embedded
(boolean)- If non-zero,
uzbl
is embedded in another window, otherwise it is stand-alone.
- If non-zero,
WEBKIT_MAJOR
(integer)- The major version of WebKit at runtime.
WEBKIT_MINOR
(integer)- The minor version of WebKit at runtime.
WEBKIT_MICRO
(integer)- The micro version of WebKit at runtime.
WEBKIT_UA_MAJOR
(integer) (WebKit2 broken)- The major useragent version of WebKit at compile time.
WEBKIT_UA_MINOR
(integer) (WebKit2 broken)- The minor useragent version of WebKit at compile time.
HAS_WEBKIT2
(boolean)- If non-zero,
uzbl
is using WebKit2.
- If non-zero,
ARCH_UZBL
(string)- The architecture
uzbl
is compiled for.
- The architecture
COMMIT
(string)- The commit string of
uzbl
at compiled time.
- The commit string of
TITLE
(string)- The title of the current page.
SELECTED_URI
(string)- The URI of the link is hovering over; empty if there is no link.
NAME
(string)- The name of the
uzbl
instance (defaults to the pid).
- The name of the
PID
(integer)- The process ID of
uzbl
.
- The process ID of
_
(string)- The last result from a command.
Variable expansion works similarly to shell interpreters (sh, bash, etc.). This means you can construct strings with uzbl variables in them and have uzbl replace the variable name with its contents.
In order to let uzbl know what to expand you'll need to prepend @ to the variable name:
print The variable \@show_status contains @show_status
The above example demonstrates two things:
\
is treated as escape character and will use the character immediately following it literally this means\@show_status
will not expand to the variable content but be rather printed as@show_status
- prepending the variable with
@
will expand to its contents
As in the shell you can use @{uzbl_var}
to denote the beginning/end of the
variable name in cases where it is not obvious what belongs to the name and
what not, e.g., print @{show_status}foobar
There are multiple constructs for more complex expansion.
@(+command arg1 arg2)@
- This is equivalent to running
spawn_sync command arg1 arg2
and is replaced by the first line of its stdout.
- This is equivalent to running
@(command arg1 arg2)@
- This is equivalent to running
spawn_sh_sync command arg1 arg2
and is replaced by the first line of its stdout.
- This is equivalent to running
@/+file/@
- This is equivalent to running
include file
and is replaced by its result.
- This is equivalent to running
@/command arg1 arg2/@
- This is equivalent to running
command arg1 arg2
and is replaced by its result.
- This is equivalent to running
@*+javascript_file*@
- This is equivalent to running
js uzbl file javascript_file
and is replaced by its result.
- This is equivalent to running
@*javascript*@
- This is equivalent to running
js uzbl string javascript
and is replaced by its result.
- This is equivalent to running
@<+javascript_file>@
- This is equivalent to running
js page file javascript_file
and is replaced by its result.
- This is equivalent to running
@<javascript>@
- This is equivalent to running
js page string javascript
and is replaced by its result.
- This is equivalent to running
@-+javascript_file-@
- This is equivalent to running
js clean file javascript_file
and is replaced by its result.
- This is equivalent to running
@-javascript-@
- This is equivalent to running
js clean string javascript
and is replaced by its result.
- This is equivalent to running
@[string]@
- This escapes
string
for XML entities. This is most useful when using page-defined strings in thestatus_bar
variable.
- This escapes
Uzbl has a JavaScript API available via the js uzbl
command. There is a
global uzbl
object can control uzbl
through two properties: variables
and
commands
. For example, to set the verbose
variable:
uzbl.variables.verbose = 1
To call the back
command:
uzbl.commands.back()
All arguments to commands be converted to strings, so {}
will appear to
commands as [object Object]
, not JavaScript objects.
Currently, access to the webpage is not available through the uzbl
context.
This is currently impossible with WebKit2 (since even uzbl
does not have
access to the page's JavaScript context) and crashes WebKit1.
The contents of the status bar can be customized by setting the status_format
variable. The contents of the window title can be customized by setting the
title_format_short
variable (which is used when the status bar is displayed)
and the title_format_long
variable (which is used when the status bar is not
displayed). Their values can be set using the expansion and substitution
techniques described above.
These variables are expanded in multiple stages; once when the variable is set, and again every time that the status bar or window title are updated. Expansions that should be evaluated on every update need to be escaped:
set title_format_short = @(date)@
# this expansion will be evaluated when the variable is set.
# the title will stay constant with the date that the variable was set.
set title_format_short = \@(date)\@
# this expansion will be evaluated when the window title is updated.
# the date in the title will change when you change pages, for example.
set title_format_short = \\\@(date)\\\@
# the title will stay constant as a literal "@(date)@"
The status_format
and status_format_right
variables can contain
Pango
markup . In these variables, expansions that might produce the characters <
,
&
or >
should be wrapped in @[]@
substitutions so that they don't
interfere with the status bar's markup; see the sample config for examples.
You can use external scripts with Uzbl the following ways:
- Let
uzbl
call them. These scripts are called "handlers" in theuzbl
config. These are typically used for policy requests so that behavior can be controlled with external logic. - Call them yourself from inside
uzbl
. You can bind keys with this. Examples: add new bookmark, load new URL. - You could also use
xbindkeys
or your WM config to trigger scripts ifuzbl
does not have focus.
Scripts called by uzbl
(the commands starting with spawn
) have access to
the following environment variables:
$UZBL_CONFIG
- The configuration file loaded by this
uzbl
instance.
- The configuration file loaded by this
$UZBL_PID
- The process ID of this
uzbl
instance.
- The process ID of this
$UZBL_XID
- The X Windows ID of the process.
$UZBL_FIFO
- The filename of the FIFO being used, if any.
$UZBL_SOCKET
- The filename of the Unix socket being used, if any.
$UZBL_URI
- The URI of the current page.
$UZBL_TITLE
- The current page title.
$UZBL_PRIVATE
- Set if the
enable_private
variable is non-zero, unset otherwise.
- Set if the
Handler scripts (download_handler
, scheme_handler
, request_handler
,
mime_handler
, authentication_handler
, permission_handler
, and
tls_error_handler
) are called with special arguments:
-
download handler
url
- The URL of the item to be downloaded.
suggested_filename
- A filename suggested by the server or based on the URL.
content_type
- The mimetype of the file to be downloaded.
total_size
- The size of the file to be downloaded in bytes. This may be inaccurate.
destination_path
- This is only present if the download was started explicitly using the
download
command. If it is present, this is the path that the file should be saved to. A download handler using WebKit's internal downloader can just echo this path and exit when this argument is present.
-
scheme handler
uri
- The URI of the page to be navigated to.
src_frame
- The name of the frame which is targeted for the navigation.
dest_frame
- The name of the frame which is targeted for the navigation.
type
- The type of navigation that triggered the request. Known values include:
link
form_submission
back_forward
reload
form_resubmission
other
unknown
button
- The mouse button used for the navigation (or 0 if a mouse was not used).
modifiers
- The modifiers used for the navigation. This uses the same format as the
KEY_PRESS
andKEY_RELEASE
events.
is_gesture
true
if the action was triggered by a gesture,false
otherwise.
-
request handler
uri
- The URI of the resource which is being requested.
can_display
- One of
can_display
,cant_display
, orunknown
to indicate whether WebKit knows how to display the data given its MIME type (unknown
means thatuzbl
was unable to determine the answer).
frame
- The name of the frame requesting the resource (unavailable in WebKit2).
redirect
- Whether the request is a redirect or not (
unknown
in WebKit2)
-
mime handler
mime_type
- The mime type of the resource.
disposition
- The disposition of the resource. Empty if unknown.
-
authentication handler
host
- The host requesting authentication.
realm
- The realm requesting authentication.
retry
- Either
retrying
orinitial
depending on whether this request is a retrial of a previous request.
scheme
- The authentication scheme being used. Known values include:
default
http_basic
http_digest
html_form
ntlm
negotiate
client_certificate_requested
server_trust_evaluation_requested
proxy
- Either
proxy
if a proxy is requesting authentication ororigin
if a remote server is.
port
- The port connected to.
save
- Either
can_save
orcant_save
depending on whether WebKit itself can save the credentials.
-
permission handler
uri
- The URI requesting permission.
action
- The data or action WebKit is requesting permission for. Known values
include:
geolocation
-
tls error handler
host
- The host which failed TLS verification.
flags
- A comma-separated list of the reasons the host failed TLS verification.
Known flags include:
unknown_ca
bad_identity
not_activated
expired
revoked
insecure
error
cert_info
- A JSON object with information describing the certificate.
As mentined before, the contents of the window title can be customized by
setting the title_format_short
variable and the title_format_long
variable
(see above to figure out when each of them is used). You can also set icon
variable to path of the icon file. Some advanced window managers can also take
WM_WINDOW_ROLE
in account, which can be set by modifying window_role
variable.
Uzbl does not automatically use the current page's favicon as its icon. This can, however, be done with external scripts.
Uzbl sets the UZBL_URI
property on its window which is always the uri of the
page loaded into uzbl, except for web inspector windows which does not have the
property.
Unlike commands, events are not handled in uzbl
itself, but are dispatched
asynchronously through a text stream on stdout
and/or through a socket.
You'll usually use uzbl
by connecting it to a so-called "event manager" (EM).
An EM is a privileged communicator with uzbl
. EM sockets are given on the
command line via the --connect-socket
argument. EM sockets receive requests
in addition to events. All sockets receive event output.
An example EM is shipped with uzbl
called uzbl-event-manager
. See its
documentation for more.
Many of the features of larger browsers are intended to be implemented via an
EM. The EM receives all events and requests from uzbl
and can implement
history, keybindings, cookie management, and more. For more on the EM shipped
with uzbl
, see its documentation
Events are reported in the following format.
EVENT <NAME> <EVENT_NAME> {DETAILS}
Events are line-oriented, so newlines are not supported within events.
Requests use the following format:
REQUEST-<COOKIE> <REQUEST_NAME> [ARGUMENTS...]
Only EM sockets receive REQUEST lines. Currently, if a reply is not received
within one second from uzbl
sending a request, uzbl
will continue without a
reply. This is because the request blocks the GUI thread. Replies to a request
use the following format:
REPLY-<COOKIE> <REPLY>
If the cookie does not match the cookie from the request, uzbl
will ignore it.
Uzbl will report various events by default. All of these events are part of uzbl itself and will be emitted based on what is happening within uzbl-core.
NAVIGATION_STARTING <URI> <SRCFRAME> <DESTFRAME> <TYPE>
- Sent when a main navigation is requested for a frame. See
scheme_handler
for the types available.
- Sent when a main navigation is requested for a frame. See
LOAD_START
- Sent when a main page navigation is started. This is before WebKit even looks at the URI, so the name, protocol, or port may still be invalid.
LOAD_REDIRECTED <URI>
- Sent when the main page navigation has been redirected to a new URI.
LOAD_COMMIT <URI>
- Sent when the main page navigation has been committed and the network request has been sent to the server.
LOAD_PROGRESS <PROGRESS>
- Sent when the load percentage changes. The progress is in percentage.
LOAD_CANCELLED <URI>
- Sent when the user has cancelled a load (e.g., by setting the URI in the middle of another load).
LOAD_ERROR <URI> <CODE> <MESSAGE>
- Sent when WebKit has failed to load a page.
LOAD_FINISH <URI>
- Sent when a page navigation is complete. All of the top-level resources have been retrieved by this point.
TLS_ERROR <HOST> <FLAGS> <INFO>
(WebKit2 >= 2.3.1)- The event sent if a
tls_error_handler
is not valid. See its documentation for the argument formats.
- The event sent if a
REQUEST_QUEUED <URI>
(WebKit1 only)- Sent when a request is queued for the network.
REQUEST_STARTING <URI>
- Sent when a request has been sent to the server.
REQUEST_FINISHED <URI>
- Sent when a request has completed.
KEY_PRESS <MODIFIERS> <KEY>
- Sent when a key (e.g., Shift, Ctrl, etc.) is pressed. The key is in UTF-8.
This event is also used for mouse clicks which use the format
<REP>Button<VALUE>
which would be2Button1
for a double click of the main mouse button (rep is empty for single clicks). Multiple clicks usually only show as aKEY_RELEASE
event due to GDK implementation details.
- Sent when a key (e.g., Shift, Ctrl, etc.) is pressed. The key is in UTF-8.
This event is also used for mouse clicks which use the format
KEY_RELEASE <MODIFIERS> <KEY>
- Sent when a key (e.g., Shift, Ctrl, etc.) is released. The key is in UTF-8.
MOD_PRESS <MODIFIERS> <MODIFIER>
- Sent when a modifier (e.g., Shift, Ctrl, etc.) is pressed.
MOD_RELEASE <MODIFIERS> <MODIFIER>
- Sent when a modifier (e.g., Shift, Ctrl, etc.) is released.
BUILTINS <COMMANDS>
- On startup,
uzbl
will emit this event with a JSON list of the names of all commands it understands.
- On startup,
COMMAND_ERROR <REASON>
- Sent when
uzbl
cannot execute a command.
- Sent when
COMMAND_EXECUTED <NAME> [ARGS...]
- Sent after a command has executed.
FILE_INCLUDED <PATH>
- Sent after a file is included.
FIFO_SET
- Sent
uzbl
opens a communication FIFO.
- Sent
SOCKET_SET <PATH>
- Sent
uzbl
opens a communication socket.
- Sent
INSTANCE_START <PID>
- Sent on startup.
PLUG_CREATED <ID>
- Sent if
uzbl
is started in plug mode. The ID is for the Xembed socket.
- Sent if
INSTANCE_EXIT <PID>
- Sent before
uzbl
quits. When this is sent,uzbl
has already stopped listening on all sockets.
- Sent before
VARIABLE_SET <NAME> <str|int|ull|double> {VALUE}
- Sent when a variable has been set. Not all variable changes cause a
VARIABLE_SET
event to occur (e.g., any variable managed by WebKit behind the scenes does not trigger this event).
- Sent when a variable has been set. Not all variable changes cause a
BLUR_ELEMENT <NAME>
(WebKit1 only)- Sent when an element loses focus.
FOCUS_ELEMENT <NAME>
(WebKit1 only)- Sent when an element gains focus.
INSECURE_CONTENT <REASON>
(WebKit2 >= 1.11.4)- Sent when insecure content is used on a secure page.
LINK_HOVER <URI> <TITLE>
- Sent when a link is hovered over using the mouse.
LINK_UNHOVER <URI>
- Sent when a link is hovered over using the mouse. The URI is the previously hovered link URI.
FORM_ACTIVE <BUTTON>
- Sent when a form element has gained focus because of a mouse click.
ROOT_ACTIVE <BUTTON>
- Sent when the background page has been clicked.
SCROLL_HORIZ <VALUE> <MIN> <MAX> <PAGE>
- Sent when the page horizontal scroll bar changes. The min and max values are the bounds for scrolling, page is the size that fits in the viewport and the value is the current position of the scrollbar.
SCROLL_VERT <VALUE> <MIN> <MAX> <PAGE>
- Similar to
SCROLL_HORIZ
, but for the vertical scrollbar.
- Similar to
TITLE_CHANGED <TITLE>
- Sent when the page title changes.
WEB_PROCESS_CRASHED
(WebKit2 only)- Sent when the main rendering process crashed.
WEB_PROCESS_STARTED
(WebKit2 only)- Sent when a new web process is started.
SCRIPT_MESSAGE <NAME> <MESSAGE>
(WebKit2 >= 2.5.1)- Sent when an injected web script sends a message to a listened message handler.
GEOMETRY_CHANGED <GEOMETRY>
- Sent when the geometry changes.
WEBINSPECTOR <open|close>
- Sent when the web inspector window is opened or closed.
REQ_NEW_WINDOW <URI>
- Sent when a new window is being requested.
CLOSE_WINDOW
- Sent when
uzbl
is closing its window.
- Sent when
FOCUS_LOST
- Sent when
uzbl
loses the keyboard focus.
- Sent when
FOCUS_GAINED
- Sent when
uzbl
gains the keyboard focus.
- Sent when
DOWNLOAD_STARTED <DESTINATION>
- Sent when a download to the given URI has started.
DOWNLOAD_PROGRESS <DESTINATION> <PROGRESS>
- Sent when progress for a download has been updated. The progress is a value between 0 and 1.
DOWNLOAD_ERROR <DESTINATION> <REASON> <CODE> <MESSAGE>
- Sent when a download has an error.
DOWNLOAD_COMPLETE <DESTINATION>
- Sent when a download has completed.
ADD_COOKIE <DOMAIN> <PATH> <NAME> <VALUE> <SCHEME> <EXPIRATION>
- Sent when a cookie is added.
DELETE_COOKIE <DOMAIN> <PATH> <NAME> <VALUE> <SCHEME> <EXPIRATION>
- Sent when a cookie is deleted.
uzbl
is invoked as
uzbl-core [ARGUMENTS] [URI]
where arguments
and uri
are both optional. arguments
can be:
-u
,--uri=URI
- URI to load at startup. Equivalent to
uzbl-core <uri>
oruri URI
afteruzbl
has launched. This overrides the optional URI without the flag.
- URI to load at startup. Equivalent to
-v
,--verbose
- Sets
verbose
to be non-zero.
- Sets
-n
,--named=NAME
- Name of the current instance (defaults to Xorg window id or random for GtkSocket mode).
-c
,--config=FILE
- Path to config file or
-
for stdin.
- Path to config file or
-s
,--xembed-socket=SOCKETID
- Xembed socket ID.
--connect-socket=CSOCKET
- Connect to server socket for event managing.
-p
,--print-events
- Sets
print_events
to be non-zero.
- Sets
-g
,--geometry=GEOMETRY
- Runs
geometry GEOMETRY
with the given value on startup. Ignored ifuzbl
is embedded.
- Runs
-V
,--version
- Print the version and exit.
--display=DISPLAY
- X display to use.
--help
- Display help.
uzbl-core scheme://address
will work as you expect. If you don't provide the
scheme://
part, it will check if the argument is an existing file in the
filesystem, if it is, it will prepend file://
, if not, it will prepend
http://
.
Please report new issues to the Uzbl bugtracker.