Git Product home page Git Product logo

uzbl's Introduction

INTRODUCTION

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.

EDITIONS

"Uzbl" is an umbrella project consisting of different flavors. In the future more things may come, but for now:

uzbl-core

Main component meant for integration with other tools and scripts.

  • 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.

uzbl-browser

A minimal browser which encompasses a default configuration file, event manager and a selection of scripts which gives a comparable browsing experience to the more common browsers.

  • 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.

uzbl-tabbed

A flavor of uzbl built on top of uzbl-browser which adds tabbed browsing.

  • 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.

CONFIGURATION / CONTROL:

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 into stdin, 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 for --named. If you made changes to the configuration at runtime, these are not passed on to the child.

WebKit1 vs. WebKit2

WebKit2 changes many things compared to WebKit1, some of which impact uzbl greatly. This version of uzbl only supports WebKit1 while older version tried to support both at the same time.

For a uzbl built on WebKit2 check out the next branch

COMMAND SYNTAX

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.

Navigation

  • 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. If full is given, the cache is ignored.
  • 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.
  • download <URI> [DESTINATION]
    • Tell WebKit to download a URI.

Page

  • 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
  • frame <list|focus|reload|stop|dump|inject|get|set> [NAME]
    • 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.

Cookie

  • cookie <add|delete|clear>
    • Manage cookies in uzbl. The subcommands work as follows:
      • add <HOST> <PATH> <NAME> <VALUE> <SCHEME> <EXPIRATION>
        • Manually add a cookie.
      • delete <DOMAIN> <PATH> <NAME> <VALUE>
        • Delete a cookie from the cookie jar.
      • clear all
        • Delete all cookies.
      • clear domain [DOMAIN...]
        • Delete all cookies matching the given domains.

Display

  • scroll <horizontal|vertical> <VALUE>
    • 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.
  • 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.
  • 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.
  • geometry <SIZE>
    • Set the size of the uzbl window. This is subject to window manager policy. If the size is maximized, the uzbl window will try to maximize itself. Otherwise, the size is parsed using the WIDTHxHEIGHT±XOFFSET±YOFFSET pattern.
  • snapshot <PATH> <FORMAT> <REGION> [FLAG...] (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.

Content

  • plugin <COMMAND>
    • Exposes control of plugin-related information. Supported subcommands include:
      • refresh
        • Refresh the plugin database.
      • toggle [NAME...]
        • Toggle whether the given plugins are enabled (or all if none are given).
  • remove_all_db
    • 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.
  • 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.
  • css <COMMAND>
    • Controls CSS settings in web pages. Supported subcommands include:
      • add <URI>
        • Adds a CSS file to pages when loaded. Despite the name, subsequent calls replace any previous invocation. Meaning that only one single stylesheet may be activated with this command.
      • clear Clears all user-supplied stylesheets.
  • 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. When run, the output is interpreted as content at the URL with a leading line with the MIME type.
  • 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

Search

  • 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 have wrap 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.
      • 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.
      • next
        • Jumps to the next instance of the search string in the document in the same direction as the last find or rfind command.
      • prev
        • As next, but searches in the opposite direction from the last find or rfind command.
  • security <SCHEME> <COMMAND> <OPTION>
    • Controls security options for a scheme. Recognized commands include:

      • get
        • Returns true if the option is set for the scheme, false otherwise.
      • set
        • Sets the option for the scheme.
      • 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.
  • inspector <COMMAND>
    • Control the web inspector. Supported subcommands include:
      • show
        • Show the web inspector.
      • close
        • Close the web inspector.
      • coord <X> <Y>
        • 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.

Execution

  • 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.
      • clean
        • Create a new context just for this command. This is the most secure option and should be preferred where possible.
      • frame
        • Run the code in the current frame's context.
      • page
        • 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.
  • 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 thePATH` 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_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 to uzbl over either the FIFO or the socket.
  • spawn_sh <COMMAND> [ARGUMENT...] (DEPRECATED)
    • Spawn a command using the default shell. This is deprecated for spawn @shell_cmd ....
  • spawn_sh_sync <COMMAND> [ARGUMENT...] (DEPRECATED)
    • Spawn a command using the default shell. This is deprecated for spawn_sync @shell_cmd ....

Uzbl

  • 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.

Variable

  • 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 or 1 in which case the other is set. If the variable does not exist, it is set to 1.
  • 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.
  • dump_config_as_events
    • Dump the current config as a series of VARIABLE_SET events, which can be handled by an event manager.
  • 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 since spawn_sync is not usable to talk to the event manager.
  • choose <NAME> <COOKIE> [ARGUMENTS...]
    • Send a synchronous choose and returns the result of the request. This is meant to implement the file_chooser_handler and color_chooser_handler where a result should be waited upon indefinitely. This will hang uzbl if it is not replied to.

VARIABLES AND CONSTANTS

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.

Uzbl

  • verbose (integer) (default: 0)
    • Controls the verbosity of uzbl as it runs.
  • 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.

Communication

  • 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.

Handler

  • navigation_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.
  • request_handler (command) (no default)
    • 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.
    • NOTE: Do not use request in WebKit1 as this is called synchronously and will just pause uzbl-core until the request timeout occurs.
  • 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 pause uzbl-core until the request 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.
  • file_chooser_handler (command) (no default) (WebKit >= 1.9.4)
    • The command to use when a web page requests a file. By default, the GTK widget file dialog.
  • shell_cmd (string) (default: sh -c)
    • The command to use as a shell. This is used in the spawn_sh and sync_sh commands as well as @()@ expansion.
  • enable_builtin_auth (boolean) (default: 0)
    • If non-zero, WebKit will handle HTTP authentication dialogs.

Window

  • icon (string) (no default)
    • The path to an image to use as an icon for uzbl. Overrides icon_name when set.
  • icon_name (string) (no default)
    • The name of an icon use as an icon for uzbl. Overrides icon when set.
  • 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.

UI

  • 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.

Customization

  • default_context_menu (boolean) (default: 0)
    • If non-zero, display the default context menu, ignoring any custom menu items.

Printing

  • print_backgrounds (boolean) (default: 1)
    • If non-zero, print backgrounds when printing pages.

Network

  • 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
  • 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
  • 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.

Security

  • 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 the enable_dns_prefetch variable. It is currently experimental in WebKitGtk itself.
  • permissive (boolean) (default: 0)
    • If non-zero, permission will be granted by default (if enable_private is 0) if permission_handler is either not set or returns an invalid value.
  • 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.
  • enable_cross_file_access (boolean) (default: 0) (WebKit1 only)
    • If non-zero, content accessed via the file scheme will be allowed to access other file content.
  • enable_hyperlink_auditing (boolean) (default: 0)
    • If non-zero, <a ping> will be allowed in WebKit.
  • cookie_policy (enumeration) (default: always)
    • Sets the cookie policy for WebKit. Acceptable values include:
      • always
      • never
      • first_party
        • Blocks third-party cookies.
  • 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.

Inspector

  • 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.
  • profile_timeline (boolean) (default: 0) (WebKit1 only)
    • If non-zero, the inspector will profile network activity.

Page

  • forward_keys (boolean) (default: 0)
    • If non-zero, uzbl will pass keypresses to WebKit.
  • 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 the navigator.userAgent variable.
  • accept_languages (string) (no default)
    • The list of languages to send with the Accept-Language HTTP header. In WebKit1, if set to auto, the list will be constructed from the system.
  • 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 and zoom out commands. Must be greater than 0.
  • zoom_text_only (boolean) (default: 0)
    • 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)
    • 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.
  • 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
  • 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)
    • If non-zero, web pages will be editable similar to a WYSIWYG editor.

JavaScript

  • 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_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.

Image

  • autoload_images (boolean) (default: 1)
    • If non-zero, images will automatically be loaded.
  • 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.

Spell checking

  • 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.

Form

  • 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)
    • 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
  • 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.

Text

  • 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.

Font

  • 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.

Font size

Note: font sizes are in points.

  • minimum_font_size (integer) (default: 5)
    • The minimum font size to use for text.
  • minimum_logical_font_size (integer) (default: 5)
    • 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.

Features

  • 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 the enable_plugins variable.
  • 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_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)
    • 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.

HTML5 Database

  • 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)
    • Where to store HTML5 localStorage data.

Hacks

  • enable_site_workarounds (boolean) (default: 0)
    • If non-zero, WebKit will use site-specific rules to workaround known broken behavior.

Constants

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.
  • plugin_list (string) (WebKit1 >= 1.3.8)
    • A JSON-formatted list describing loaded plugins.
  • is_online (boolean)
    • If non-zero, a network is available (not necessarily the Internet).
  • is_playing_audio (boolean)
    • If non-zero, audio is playing.
  • 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.
  • 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)
    • The major useragent version of WebKit at compile time.
  • WEBKIT_UA_MINOR (integer)
    • The minor useragent version of WebKit at compile time.
  • HAS_WEBKIT2 (boolean)
    • If non-zero, uzbl is using WebKit2.
  • ARCH_UZBL (string)
    • The architecture uzbl is compiled for.
  • COMMIT (string)
    • The commit string of uzbl at compiled time.
  • 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).
  • PID (integer)
    • The process ID of uzbl.
  • _ (string)
    • The last result from a command.

VARIABLE EXPANSION

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.

Shell expansion

  • @(+command arg1 arg2)@
    • This is equivalent to running spawn_sync command arg1 arg2 and is replaced by the first line of its stdout.
  • @(command arg1 arg2)@
    • This is equivalent to running spawn_sh_sync command arg1 arg2 and is replaced by the first line of its stdout.

Uzbl command expansion

  • @/+file/@
    • This is equivalent to running include file and is replaced by its result.
  • @/command arg1 arg2/@
    • This is equivalent to running command arg1 arg2 and is replaced by its result.

JavaScript expansion

  • @*+javascript_file*@
    • This is equivalent to running js uzbl file javascript_file and is replaced by its result.
  • @*javascript*@
    • This is equivalent to running js uzbl string javascript and is replaced by its result.
  • @<+javascript_file>@
    • This is equivalent to running js page file javascript_file and is replaced by its result.
  • @<javascript>@
    • This is equivalent to running js page string javascript and is replaced by its result.
  • @-+javascript_file-@
    • This is equivalent to running js clean file javascript_file and is replaced by its result.
  • @-javascript-@
    • This is equivalent to running js clean string javascript and is replaced by its result.

XML escaping

  • @[string]@
    • This escapes string for XML entities. This is most useful when using page-defined strings in the status_bar variable.

JavaScript API

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.

Accessing the web page

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.

TITLE AND STATUS BAR EVALUATION

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.

EXTERNAL SCRIPTS

You can use external scripts with Uzbl the following ways:

  • Let uzbl call them. These scripts are called "handlers" in the uzbl 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 if uzbl 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.
  • $UZBL_PID
    • The process ID of this uzbl instance.
  • $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.

Handler scripts (download_handler, navigation_handler, request_handler, mime_handler, authentication_handler, permission_handler, tls_error_handler, file_chooser_handler, and color_chooser_handler) are called with special arguments:

  • download handler

    1. url
    • The URL of the item to be downloaded.
    1. suggested_filename
    • A filename suggested by the server or based on the URL.
    1. content_type
    • The mimetype of the file to be downloaded.
    1. total_size
    • The size of the file to be downloaded in bytes. This may be inaccurate.
    1. 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.
  • navigation handler

    1. uri
    • The URI of the page to be navigated to.
    1. src_frame
    • The name of the frame which is targeted for the navigation.
    1. dest_frame
    • The name of the frame which is targeted for the navigation.
    1. type
    • The type of navigation that triggered the request. Known values include:
      • link
      • form_submission
      • back_forward
      • reload
      • form_resubmission
      • other
      • unknown
    1. button
    • The mouse button used for the navigation (or 0 if a mouse was not used).
    1. modifiers
    • The modifiers used for the navigation. This uses the same format as the KEY_PRESS and KEY_RELEASE events.
    1. is_gesture
    • true if the action was triggered by a gesture, false otherwise.
  • request handler

    1. uri
    • The URI of the resource which is being requested.
    1. can_display
    • One of can_display, cant_display, or unknown to indicate whether WebKit knows how to display the data given its MIME type (unknown means that uzbl was unable to determine the answer).
    1. frame
    • The name of the frame requesting the resource.
    1. redirect
    • Whether the request is a redirect or not
  • mime handler

    1. mime_type
    • The mime type of the resource.
    1. disposition
    • The disposition of the resource. Empty if unknown.
  • authentication handler

    1. host
    • The host requesting authentication.
    1. realm
    • The realm requesting authentication.
    1. retry
    • Either retrying or initial depending on whether this request is a retrial of a previous request.
    1. 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
    1. proxy
    • Either proxy if a proxy is requesting authentication or origin if a remote server is.
    1. port
    • The port connected to.
    1. save
    • Either can_save or cant_save depending on whether WebKit itself can save the credentials.
  • permission handler

    1. uri
    • The URI requesting permission.
    1. action
    • The data or action WebKit is requesting permission for. Known values include:
      • geolocation
      • unknown
    1. description
    • A description for the request (if available).
  • tls error handler

    1. host
    • The host which failed TLS verification.
    1. 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
    1. cert_info
    • A JSON object with information describing the certificate.
  • file chooser handler

    1. mode
    • Either multiple or single for whether a single file or multiple files were requested.
    1. mimetypes
    • A comma-separated list of mimetypes requested.
  • color chooser handler

    1. region
    • The region of the element requesting a color in the WIDTHxHEIGHT+X+Y format.

WINDOW MANAGER INTEGRATION

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.

EVENTS

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. Please be aware that events contain sensitive information such as cookie data and keystrokes (e.g., passwords).

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

Format

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.

Built-in events

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
  • NAVIGATION_STARTING <URI> <SRCFRAME> <DESTFRAME> <TYPE>
    • Sent when a main navigation is requested for a frame. See navigation_handler for the types available.
  • 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.
  • 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.
Input
  • 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 be 2Button1 for a double click of the main mouse button (rep is empty for single clicks). Multiple clicks usually only show as a KEY_RELEASE event due to GDK implementation details.
  • 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.
Commands
  • BUILTINS <COMMANDS>
    • On startup, uzbl will emit this event with a JSON list of the names of all commands it understands.
  • COMMAND_ERROR <REASON>
    • Sent when uzbl cannot execute a command.
  • COMMAND_EXECUTED <NAME> [ARGS...]
    • Sent after a command has executed.
  • FILE_INCLUDED <PATH>
    • Sent after a file is included.
Uzbl
  • FIFO_SET
    • Sent uzbl opens a communication FIFO.
  • SOCKET_SET <PATH>
    • Sent uzbl opens a communication socket.
  • INSTANCE_START <PID>
    • Sent on startup.
  • PLUG_CREATED <ID>
    • Sent if uzbl is started in plug mode. The ID is for the Xembed socket.
  • INSTANCE_EXIT <PID>
    • Sent before uzbl quits. When this is sent, uzbl has already stopped listening on all sockets.
  • 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).
Page
  • BLUR_ELEMENT <NAME> (WebKit1 only)
    • Sent when an element loses focus.
  • FOCUS_ELEMENT <NAME> (WebKit1 only)
    • Sent when an element gains focus.
  • 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.
  • TITLE_CHANGED <TITLE>
    • Sent when the page title changes.
Window
  • 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.
  • FOCUS_LOST
    • Sent when uzbl loses the keyboard focus.
  • FOCUS_GAINED
    • Sent when uzbl gains the keyboard focus.
Download
  • 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.
Cookie
  • 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.

COMMAND LINE ARGUMENTS

uzbl is invoked as

uzbl-core [ARGUMENTS] [URI]

where arguments and uri are both optional. arguments can be:

  • -v, --verbose
    • Sets verbose to be non-zero.
  • -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.
  • -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.
  • -g, --geometry=GEOMETRY
    • Runs geometry GEOMETRY with the given value on startup. Ignored if uzbl is embedded.
  • -V, --version
    • Print the version and exit.
  • --web-extensions-dir
    • Directory that will be searched for webkit extensions
  • --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://.

BUGS

Please report new issues to Uzbl's issues page on github

uzbl's People

Contributors

anydot avatar axelson avatar barrucadu avatar bct avatar christer avatar cipriancraciun avatar dequis avatar dieterbe avatar dylex avatar haxney avatar helmutg avatar hmkemppainen avatar holizz avatar jakeprobst avatar jspricke avatar keis avatar kongo2002 avatar konubinix avatar mason-larobina avatar mathstuf avatar mxey avatar niamster avatar nmeum avatar oschwand avatar pawelz avatar psychon avatar robm avatar sloonz avatar tailhook avatar tczy avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

uzbl's Issues

command to minimize uzbl window

Please paste the output of uzbl-core --bug-info here:

** (uzbl-core:6341): WARNING **: Error retrieving accessibility bus address: org.freedesktop.DBus.Error.ServiceUnknown: The name org.a11y.Bus was not provided by any .service files
Commit: 2012.05.14-1154-g35db169
GTK compile: 3.14.5
GTK run: 3.14.5
WebKit compile: 2.4.1
WebKit run: 2.4.1
WebKit2: 0
libsoup compile: 2.48.0
libsoup run: 2.48.0

Testing Platform: Raspbery pi 3
OS: Raspbian jessie
command Used: uzbl -c -
Problem: Is there any command to minimize the uzbl window?

uzbl-browser terminated by signal SIGABRT

Please paste the output of uzbl-core --bug-info here:

Commit: v0.9.0-28-g834f843
GTK compile: 3.18.9
GTK run: 3.18.9
WebKit compile: 2.10.8
WebKit run: 2.10.8
WebKit2: 1
libsoup compile: 2.52.2
libsoup run: 2.52.2

So I'm trying to upgrade to 0.9 from next branch about 6 months old. My config is upgraded according to UPGRADE doc. uzbl-core runs (although I can't control it, like there's no event-manager running, it shows "[]" in status bar), but uzbl-browser dies every time I'm trying to run it with a long debug exhaust:

murchik@mooxps ~> uzbl-browser http://tulup.ru

(uzbl-core:16732): GLib-GObject-WARNING **: g_object_set_valist: construct property "website-data-manager" for object 'WebKitWebContext' can't be set after construction

(uzbl-core:16732): GLib-GObject-WARNING **: g_object_set_valist: construct property "local-storage-directory" for object 'WebKitWebsiteDataManager' can't be set after construction
*** stack smashing detected ***: uzbl-core terminated
======= Backtrace: =========
/usr/lib/libc.so.6(+0x6f364)[0x7f5a0132f364]
/usr/lib/libc.so.6(__fortify_fail+0x37)[0x7f5a013b8017]
/usr/lib/libc.so.6(__fortify_fail+0x0)[0x7f5a013b7fe0]
uzbl-core[0x41651c]
uzbl-core[0x41b225]
uzbl-core[0x41b702]
/usr/lib/libglib-2.0.so.0(g_hash_table_foreach+0x60)[0x7f5a01f2f3b0]
uzbl-core[0x40fc7b]
uzbl-core[0x41010a]
uzbl-core[0x413fcf]
uzbl-core[0x41cbe9]
/usr/lib/libglib-2.0.so.0(g_main_context_dispatch+0x15a)[0x7f5a01f3fc3a]
/usr/lib/libglib-2.0.so.0(+0x49fe0)[0x7f5a01f3ffe0]
/usr/lib/libglib-2.0.so.0(g_main_loop_run+0xc2)[0x7f5a01f40302]
/usr/lib/libgtk-3.so.0(gtk_main+0x85)[0x7f5a02f8de75]
uzbl-core[0x40ac79]
/usr/lib/libc.so.6(__libc_start_main+0xf0)[0x7f5a012e0710]
uzbl-core[0x40add9]
======= Memory map: ========
00400000-00426000 r-xp 00000000 08:02 5515145                            /usr/bin/uzbl-core
00625000-00626000 r--p 00025000 08:02 5515145                            /usr/bin/uzbl-core
00626000-00628000 rw-p 00026000 08:02 5515145                            /usr/bin/uzbl-core
01354000-01777000 rw-p 00000000 00:00 0                                  [heap]
7f5970000000-7f5970022000 rw-p 00000000 00:00 0 
7f5970022000-7f5974000000 ---p 00000000 00:00 0 
7f5974000000-7f5974022000 rw-p 00000000 00:00 0 
7f5974022000-7f5978000000 ---p 00000000 00:00 0 
7f5978000000-7f5978021000 rw-p 00000000 00:00 0 
7f5978021000-7f597c000000 ---p 00000000 00:00 0 
7f597c000000-7f597c021000 rw-p 00000000 00:00 0 
7f597c021000-7f5980000000 ---p 00000000 00:00 0 
7f5980000000-7f5980021000 rw-p 00000000 00:00 0 
7f5980021000-7f5984000000 ---p 00000000 00:00 0 
7f5988000000-7f5988021000 rw-p 00000000 00:00 0 
7f5988021000-7f598c000000 ---p 00000000 00:00 0 
7f598c000000-7f598c021000 rw-p 00000000 00:00 0 
7f598c021000-7f5990000000 ---p 00000000 00:00 0 
7f5990000000-7f5990021000 rw-p 00000000 00:00 0 
7f5990021000-7f5994000000 ---p 00000000 00:00 0 
7f5994000000-7f5994021000 rw-p 00000000 00:00 0 
7f5994021000-7f5998000000 ---p 00000000 00:00 0 
7f599889d000-7f59988d7000 r-xp 00000000 08:02 5607748                    /usr/lib/libvoikko.so.1.14.3
7f59988d7000-7f5998ad6000 ---p 0003a000 08:02 5607748                    /usr/lib/libvoikko.so.1.14.3
7f599889d000-7f59988d7000 r-xp 00000000 08:02 5607748                    /usr/lib/libvoikko.so.1.14.3                                                                                [133/2568]
7f59988d7000-7f5998ad6000 ---p 0003a000 08:02 5607748                    /usr/lib/libvoikko.so.1.14.3
7f5998ad6000-7f5998ad8000 r--p 00039000 08:02 5607748                    /usr/lib/libvoikko.so.1.14.3
7f5998ad8000-7f5998ad9000 rw-p 0003b000 08:02 5607748                    /usr/lib/libvoikko.so.1.14.3
7f5998ad9000-7f5998ada000 r-xp 00000000 08:02 5607752                    /usr/lib/enchant/libenchant_voikko.so
7f5998ada000-7f5998cda000 ---p 00001000 08:02 5607752                    /usr/lib/enchant/libenchant_voikko.so
7f5998cda000-7f5998cdb000 r--p 00001000 08:02 5607752                    /usr/lib/enchant/libenchant_voikko.so
7f5998cdb000-7f5998cdc000 rw-p 00002000 08:02 5607752                    /usr/lib/enchant/libenchant_voikko.so
7f5998cdc000-7f5998d84000 r-xp 00000000 08:02 5531355                    /usr/lib/libaspell.so.15.1.5
7f5998d84000-7f5998f83000 ---p 000a8000 08:02 5531355                    /usr/lib/libaspell.so.15.1.5
7f5998f83000-7f5998f88000 r--p 000a7000 08:02 5531355                    /usr/lib/libaspell.so.15.1.5
7f5998f88000-7f5998f8a000 rw-p 000ac000 08:02 5531355                    /usr/lib/libaspell.so.15.1.5
7f5998f8a000-7f5998f8c000 r-xp 00000000 08:02 5583317                    /usr/lib/enchant/libenchant_aspell.so
7f5998f8c000-7f599918b000 ---p 00002000 08:02 5583317                    /usr/lib/enchant/libenchant_aspell.so
7f599918b000-7f599918c000 r--p 00001000 08:02 5583317                    /usr/lib/enchant/libenchant_aspell.so
7f599918c000-7f599918d000 rw-p 00002000 08:02 5583317                    /usr/lib/enchant/libenchant_aspell.so
7f599918d000-7f59991e2000 r-xp 00000000 08:02 5531392                    /usr/lib/libhunspell-1.3.so.0.0.0
7f59991e2000-7f59993e1000 ---p 00055000 08:02 5531392                    /usr/lib/libhunspell-1.3.so.0.0.0
7f59993e1000-7f59993e2000 r--p 00054000 08:02 5531392                    /usr/lib/libhunspell-1.3.so.0.0.0
7f59993e2000-7f59993e7000 rw-p 00055000 08:02 5531392                    /usr/lib/libhunspell-1.3.so.0.0.0
7f59993e7000-7f59993ec000 r-xp 00000000 08:02 5607751                    /usr/lib/enchant/libenchant_myspell.so
7f59993ec000-7f59995eb000 ---p 00005000 08:02 5607751                    /usr/lib/enchant/libenchant_myspell.so
7f59995eb000-7f59995ec000 r--p 00004000 08:02 5607751                    /usr/lib/enchant/libenchant_myspell.so
7f59995ec000-7f59995ed000 rw-p 00005000 08:02 5607751                    /usr/lib/enchant/libenchant_myspell.so
7f59995ed000-7f59995f8000 r-xp 00000000 08:02 5531398                    /usr/lib/libhspell.so.0
7f59995f8000-7f59997f7000 ---p 0000b000 08:02 5531398                    /usr/lib/libhspell.so.0
7f59997f7000-7f59997f8000 r--p 0000a000 08:02 5531398                    /usr/lib/libhspell.so.0
7f59997f8000-7f59997fb000 rw-p 0000b000 08:02 5531398                    /usr/lib/libhspell.so.0
7f59997fb000-7f59997fc000 ---p 00000000 00:00 0 
7f59997fc000-7f5999ffc000 rw-p 00000000 00:00 0                          [stack:16789]
7f5999ffc000-7f5999ffd000 ---p 00000000 00:00 0 
7f5999ffd000-7f599a7fd000 rw-p 00000000 00:00 0                          [stack:16788]
7f599a7fd000-7f599a7fe000 ---p 00000000 00:00 0 
7f599a7fe000-7f599affe000 rw-p 00000000 00:00 0                          [stack:16787]
7f599affe000-7f599afff000 ---p 00000000 00:00 0 
7f599afff000-7f599b7ff000 rw-p 00000000 00:00 0                          [stack:16769]
7f599b7ff000-7f599b800000 ---p 00000000 00:00 0 
7f599b800000-7f599c000000 rw-p 00000000 00:00 0                          [stack:16770]
7f599c000000-7f599c021000 rw-p 00000000 00:00 0 
7f599c021000-7f59a0000000 ---p 00000000 00:00 0 
7f59a0000000-7f59a0021000 rw-p 00000000 00:00 0 
7f59a0021000-7f59a4000000 ---p 00000000 00:00 0 
7f59a4000000-7f59a4021000 rw-p 00000000 00:00 0 
7f59a4021000-7f59a8000000 ---p 00000000 00:00 0 
7f59a81fd000-7f59a81ff000 r-xp 00000000 08:02 5531413                    /usr/lib/enchant/libenchant_hspell.so
7f59a81ff000-7f59a83fe000 ---p 00002000 08:02 5531413                    /usr/lib/enchant/libenchant_hspell.so
7f59a83fe000-7f59a83ff000 r--p 00001000 08:02 5531413                    /usr/lib/enchant/libenchant_hspell.so
7f59a83ff000-7f59a8400000 rw-p 00002000 08:02 5531413                    /usr/lib/enchant/libenchant_hspell.so
7f59a8400000-7f59a8600000 rw-p 00000000 00:00 0 
7f59a87f9000-7f59a87fa000 ---p 00000000 00:00 0 
7f59a87fa000-7f59a8ffa000 rw-p 00000000 00:00 0                          [stack:16771]
7f59a87f9000-7f59a87fa000 ---p 00000000 00:00 0                                                                                                                                       [84/2568]
7f59a87fa000-7f59a8ffa000 rw-p 00000000 00:00 0                          [stack:16771]
7f59a8ffa000-7f59a8ffb000 ---p 00000000 00:00 0 
7f59a8ffb000-7f59a97fb000 rw-p 00000000 00:00 0                          [stack:16743]
7f59a97fb000-7f59a97fc000 ---p 00000000 00:00 0 
7f59a97fc000-7f59a9ffc000 rw-p 00000000 00:00 0                          [stack:16742]
7f59a9ffc000-7f59a9ffd000 ---p 00000000 00:00 0 
7f59a9ffd000-7f59aa7fd000 rw-p 00000000 00:00 0                          [stack:16741]
7f59aa7fd000-7f59aa7fe000 ---p 00000000 00:00 0 
7f59aa7fe000-7f59aaffe000 rw-p 00000000 00:00 0                          [stack:16740]
7f59aaffe000-7f59aafff000 ---p 00000000 00:00 0 
7f59aafff000-7f59ab7ff000 rw-p 00000000 00:00 0                          [stack:16739]
7f59ab7ff000-7f59ab800000 ---p 00000000 00:00 0 
7f59ab800000-7f59ac000000 rw-p 00000000 00:00 0                          [stack:16738]
7f59ac000000-7f59ac021000 rw-p 00000000 00:00 0 
7f59ac021000-7f59b0000000 ---p 00000000 00:00 0 
7f59b01f7000-7f59b0258000 r-xp 00000000 08:02 5575485                    /usr/lib/libibus-1.0.so.5.0.513
7f59b0258000-7f59b0458000 ---p 00061000 08:02 5575485                    /usr/lib/libibus-1.0.so.5.0.513
7f59b0458000-7f59b045a000 r--p 00061000 08:02 5575485                    /usr/lib/libibus-1.0.so.5.0.513
7f59b045a000-7f59b045b000 rw-p 00063000 08:02 5575485                    /usr/lib/libibus-1.0.so.5.0.513
7f59b045b000-7f59b045c000 rw-p 00000000 00:00 0 
7f59b045c000-7f59b0463000 r-xp 00000000 08:02 5792755                    /usr/lib/gtk-3.0/3.0.0/immodules/im-ibus.so
7f59b0463000-7f59b0662000 ---p 00007000 08:02 5792755                    /usr/lib/gtk-3.0/3.0.0/immodules/im-ibus.so
7f59b0662000-7f59b0663000 r--p 00006000 08:02 5792755                    /usr/lib/gtk-3.0/3.0.0/immodules/im-ibus.so
7f59b0663000-7f59b0664000 rw-p 00007000 08:02 5792755                    /usr/lib/gtk-3.0/3.0.0/immodules/im-ibus.so
7f59b0664000-7f59b0665000 ---p 00000000 00:00 0 
7f59b0665000-7f59b0e65000 rw-p 00000000 00:00 0                          [stack:16737]
7f59b0e65000-7f59b0e66000 ---p 00000000 00:00 0 
7f59b0e66000-7f59b1666000 rw-p 00000000 00:00 0                          [stack:16736]
7f59b1666000-7f59b1667000 ---p 00000000 00:00 0 
7f59b1667000-7f59b1669000 rwxp 00000000 00:00 0 
7f59b1669000-7f59f1668000 ---p 00000000 00:00 0 
7f59f1668000-7f59f1800000 r--p 00000000 08:02 5607906                    /usr/lib/locale/locale-archive
7f59f1800000-7f59f1a00000 rw-p 00000000 00:00 0 
7f59f1a78000-7f59f1a80000 rw-p 00000000 00:00 0 
7f59f1a80000-7f59f1ad4000 r--p 00000000 08:02 5772775                    /usr/share/fonts/TTF/DejaVuSansMono.ttf
7f59f1ad4000-7f59f1ae9000 rw-p 00000000 00:00 0 
7f59f1ae9000-7f59f1aef000 rw-p 00000000 00:00 0 
7f59f1aef000-7f59f1b13000 r--s 00000000 08:02 3679844                    /var/cache/fontconfig/923e285e415b1073c8df160bee08820f-le64.cache-4
7f59f1b13000-7f59f1b24000 r-xp 00000000 08:02 5516059                    /usr/lib/liblz4.so.1.7.1
7f59f1b24000-7f59f1d23000 ---p 00011000 08:02 5516059                    /usr/lib/liblz4.so.1.7.1
7f59f1d23000-7f59f1d24000 r--p 00010000 08:02 5516059                    /usr/lib/liblz4.so.1.7.1
7f59f1d24000-7f59f1d25000 rw-p 00011000 08:02 5516059                    /usr/lib/liblz4.so.1.7.1
7f59f1d25000-7f59f1d29000 r-xp 00000000 08:02 5515533                    /usr/lib/libcap.so.2.25
7f59f1d29000-7f59f1f28000 ---p 00004000 08:02 5515533                    /usr/lib/libcap.so.2.25
7f59f1f28000-7f59f1f29000 rw-p 00003000 08:02 5515533                    /usr/lib/libcap.so.2.25
7f59f1f29000-7f59f1f30000 r-xp 00000000 08:02 5555678                    /usr/lib/libdatrie.so.1.3.3
7f59f1f30000-7f59f212f000 ---p 00007000 08:02 5555678                    /usr/lib/libdatrie.so.1.3.3
7f59f212f000-7f59f2130000 r--p 00006000 08:02 5555678                    /usr/lib/libdatrie.so.1.3.3
7f59f2130000-7f59f2131000 rw-p 00007000 08:02 5555678                    /usr/lib/libdatrie.so.1.3.3
7f59f2131000-7f59f2136000 r-xp 00000000 08:02 5526221                    /usr/lib/libXdmcp.so.6.0.0
7f59f2130000-7f59f2131000 rw-p 00007000 08:02 5555678                    /usr/lib/libdatrie.so.1.3.3                                                                                  [35/2568]
7f59f2131000-7f59f2136000 r-xp 00000000 08:02 5526221                    /usr/lib/libXdmcp.so.6.0.0
7f59f2136000-7f59f2335000 ---p 00005000 08:02 5526221                    /usr/lib/libXdmcp.so.6.0.0
7f59f2335000-7f59f2336000 r--p 00004000 08:02 5526221                    /usr/lib/libXdmcp.so.6.0.0
7f59f2336000-7f59f2337000 rw-p 00005000 08:02 5526221                    /usr/lib/libXdmcp.so.6.0.0
7f59f2337000-7f59f2339000 r-xp 00000000 08:02 5526226                    /usr/lib/libXau.so.6.0.0
7f59f2339000-7f59f2539000 ---p 00002000 08:02 5526226                    /usr/lib/libXau.so.6.0.0
7f59f2539000-7f59f253a000 r--p 00002000 08:02 5526226                    /usr/lib/libXau.so.6.0.0
7f59f253a000-7f59f253b000 rw-p 00003000 08:02 5526226                    /usr/lib/libXau.so.6.0.0
7f59f253b000-7f59f2589000 r-xp 00000000 08:02 5565241                    /usr/lib/libdbus-1.so.3.14.6
7f59f2589000-7f59f2789000 ---p 0004e000 08:02 5565241                    /usr/lib/libdbus-1.so.3.14.6
7f59f2789000-7f59f278a000 r--p 0004e000 08:02 5565241                    /usr/lib/libdbus-1.so.3.14.6
7f59f278a000-7f59f278b000 rw-p 0004f000 08:02 5565241                    /usr/lib/libdbus-1.so.3.14.6
7f59f278b000-7f59f278c000 rw-p 00000000 00:00 0 
7f59f278c000-7f59f27ba000 r-xp 00000000 08:02 5532571                    /usr/lib/libatspi.so.0.0.1
7f59f27ba000-7f59f29b9000 ---p 0002e000 08:02 5532571                    /usr/lib/libatspi.so.0.0.1
7f59f29b9000-7f59f29bc000 r--p 0002d000 08:02 5532571                    /usr/lib/libatspi.so.0.0.1
7f59f29bc000-7f59f29bd000 rw-p 00030000 08:02 5532571                    /usr/lib/libatspi.so.0.0.1
7f59f29bd000-7f59f2a38000 r-xp 00000000 08:02 5531587                    /usr/lib/liborc-0.4.so.0.25.0
7f59f2a38000-7f59f2c38000 ---p 0007b000 08:02 5531587                    /usr/lib/liborc-0.4.so.0.25.0
7f59f2c38000-7f59f2c3a000 r--p 0007b000 08:02 5531587                    /usr/lib/liborc-0.4.so.0.25.0
7f59f2c3a000-7f59f2c3e000 rw-p 0007d000 08:02 5531587                    /usr/lib/liborc-0.4.so.0.25.0
7f59f2c3e000-7f59f2c63000 r-xp 00000000 08:02 5516157                    /usr/lib/liblzma.so.5.2.2
7f59f2c63000-7f59f2e62000 ---p 00025000 08:02 5516157                    /usr/lib/liblzma.so.5.2.2
7f59f2e62000-7f59f2e63000 r--p 00024000 08:02 5516157                    /usr/lib/liblzma.so.5.2.2
7f59f2e63000-7f59f2e64000 rw-p 00025000 08:02 5516157                    /usr/lib/liblzma.so.5.2.2
7f59f2e64000-7f59f2e77000 r-xp 00000000 08:02 5531571                    /usr/lib/libgpg-error.so.0.17.0
7f59f2e77000-7f59f3076000 ---p 00013000 08:02 5531571                    /usr/lib/libgpg-error.so.0.17.0
7f59f3076000-7f59f3077000 r--p 00012000 08:02 5531571                    /usr/lib/libgpg-error.so.0.17.0
7f59f3077000-7f59f3078000 rw-p 00013000 08:02 5531571                    /usr/lib/libgpg-error.so.0.17.0
7f59f3078000-7f59f3150000 r-xp 00000000 08:02 5516273                    /usr/lib/libgcrypt.so.20.0.5
7f59f3150000-7f59f3350000 ---p 000d8000 08:02 5516273                    /usr/lib/libgcrypt.so.20.0.5
7f59f3350000-7f59f3351000 r--p 000d8000 08:02 5516273                    /usr/lib/libgcrypt.so.20.0.5
7f59f3351000-7f59f3359000 rw-p 000d9000 08:02 5516273                    /usr/lib/libgcrypt.so.20.0.5
7f59f3359000-7f59f335a000 rw-p 00000000 00:00 0 
7f59f335a000-7f59f3383000 r-xp 00000000 08:02 5585816                    /usr/lib/libgraphite2.so.3.0.1
7f59f3383000-7f59f3582000 ---p 00029000 08:02 5585816                    /usr/lib/libgraphite2.so.3.0.1
7f59f3582000-7f59f3584000 r--p 00028000 08:02 5585816                    /usr/lib/libgraphite2.so.3.0.1
7f59f3584000-7f59f3585000 rw-p 0002a000 08:02 5585816                    /usr/lib/libgraphite2.so.3.0.1
7f59f3585000-7f59f3594000 r-xp 00000000 08:02 5511269                    /usr/lib/libbz2.so.1.0.6
7f59f3594000-7f59f3793000 ---p 0000f000 08:02 5511269                    /usr/lib/libbz2.so.1.0.6
7f59f3793000-7f59f3795000 rw-p 0000e000 08:02 5511269                    /usr/lib/libbz2.so.1.0.6
7f59f3795000-7f59f37a1000 r-xp 00000000 08:02 5557777                    /usr/lib/libgbm.so.1.0.0
7f59f37a1000-7f59f39a1000 ---p 0000c000 08:02 5557777                    /usr/lib/libgbm.so.1.0.0
7f59f39a1000-7f59f39a2000 r--p 0000c000 08:02 5557777                    /usr/lib/libgbm.so.1.0.0
7f59f39a2000-7f59f39a3000 rw-p 0000d000 08:02 5557777                    /usr/lib/libgbm.so.1.0.0
7f59f39a3000-7f59f39b1000 r-xp 00000000 08:02 5525986                    /usr/lib/libdrm.so.2.4.0
7f59f39b1000-7f59f3bb0000 ---p 0000e000 08:02 5525986                    /usr/lib/libdrm.so.2.4.0
7f59f3bb0000-7f59f3bb1000 r--p 0000d000 08:02 5525986                    /usr/lib/libdrm.so.2.4.0
7f59f3bb1000-7f59f3bb2000 rw-p 0000e000 08:02 5525986                    /usr/lib/libdrm.so.2.4.0
7f59f3bb2000-7f59f3bb7000 r-xp 00000000 08:02 5529703                    /usr/lib/libXxf86vm.so.1.0.0
7f59f335a000-7f59f3383000 r-xp 00000000 08:02 5585816                    /usr/lib/libgraphite2.so.3.0.1                                                                                [0/2568]
7f59f3383000-7f59f3582000 ---p 00029000 08:02 5585816                    /usr/lib/libgraphite2.so.3.0.1
7f59f3582000-7f59f3584000 r--p 00028000 08:02 5585816                    /usr/lib/libgraphite2.so.3.0.1
7f59f3584000-7f59f3585000 rw-p 0002a000 08:02 5585816                    /usr/lib/libgraphite2.so.3.0.1
7f59f3585000-7f59f3594000 r-xp 00000000 08:02 5511269                    /usr/lib/libbz2.so.1.0.6
7f59f3594000-7f59f3793000 ---p 0000f000 08:02 5511269                    /usr/lib/libbz2.so.1.0.6
7f59f3793000-7f59f3795000 rw-p 0000e000 08:02 5511269                    /usr/lib/libbz2.so.1.0.6
7f59f3795000-7f59f37a1000 r-xp 00000000 08:02 5557777                    /usr/lib/libgbm.so.1.0.0
7f59f37a1000-7f59f39a1000 ---p 0000c000 08:02 5557777                    /usr/lib/libgbm.so.1.0.0
7f59f39a1000-7f59f39a2000 r--p 0000c000 08:02 5557777                    /usr/lib/libgbm.so.1.0.0
7f59f39a2000-7f59f39a3000 rw-p 0000d000 08:02 5557777                    /usr/lib/libgbm.so.1.0.0
7f59f39a3000-7f59f39b1000 r-xp 00000000 08:02 5525986                    /usr/lib/libdrm.so.2.4.0
7f59f39b1000-7f59f3bb0000 ---p 0000e000 08:02 5525986                    /usr/lib/libdrm.so.2.4.0
7f59f3bb0000-7f59f3bb1000 r--p 0000d000 08:02 5525986                    /usr/lib/libdrm.so.2.4.0
7f59f3bb1000-7f59f3bb2000 rw-p 0000e000 08:02 5525986                    /usr/lib/libdrm.so.2.4.0
7f59f3bb2000-7f59f3bb7000 r-xp 00000000 08:02 5529703                    /usr/lib/libXxf86vm.so.1.0.0
7f59f3bb7000-7f59f3db6000 ---p 00005000 08:02 5529703                    /usr/lib/libXxf86vm.so.1.0.0
7f59f3db6000-7f59f3db7000 r--p 00004000 08:02 5529703                    /usr/lib/libXxf86vm.so.1.0.0
7f59f3db7000-7f59f3db8000 rw-p 00005000 08:02 5529703                    /usr/lib/libXxf86vm.so.1.0.0
7f59f3db8000-7f59f3dbc000 r-xp 00000000 08:02 5528578                    /usr/lib/libxcb-dri2.so.0.0.0
7f59f3dbc000-7f59f3fbb000 ---p 00004000 08:02 5528578                    /usr/lib/libxcb-dri2.so.0.0.0
7f59f3fbb000-7f59f3fbc000 r--p 00003000 08:02 5528578                    /usr/lib/libxcb-dri2.so.0.0.0
7f59f3fbc000-7f59f3fbd000 rw-p 00004000 08:02 5528578                    /usr/lib/libxcb-dri2.so.0.0.0
7f59f3fbd000-7f59f3fd4000 r-xp 00000000 08:02 5528546                    /usr/lib/libxcb-glx.so.0.0.0
7f59f3fd4000-7f59f41d4000 ---p 00017000 08:02 5528546                    /usr/lib/libxcb-glx.so.0.0.0
7f59f41d4000-7f59f41d6000 r--p 00017000 08:02 5528546                    /usr/lib/libxcb-glx.so.0.0.0
7f59f41d6000-7f59f41d7000 rw-p 00019000 08:02 5528546                    /usr/lib/libxcb-glx.so.0.0.0
7f59f41d7000-7f59f41d8000 r-xp 00000000 08:02 5528680                    /usr/lib/libX11-xcb.so.1.0.0
7f59f41d8000-7f59f43d7000 ---p 00001000 08:02 5528680                    /usr/lib/libX11-xcb.so.1.0.0
7f59f43d7000-7f59f43d8000 r--p 00000000 08:02 5528680                    /usr/lib/libX11-xcb.so.1.0.0
7f59f43d8000-7f59f43d9000 rw-p 00001000 08:02 5528680                    /usr/lib/libX11-xcb.so.1.0.0
7f59f43d9000-7f59f4402000 r-xp 00000000 08:02 5557778                    /usr/lib/libglapi.so.0.0.0
7f59f4402000-7f59f4601000 ---p 00029000 08:02 5557778                    /usr/lib/libglapi.so.0.0.0
7f59f4601000-7f59f4605000 r--p 00028000 08:02 5557778                    /usr/lib/libglapi.so.0.0.0
7f59f4605000-7f59f4606000 rw-p 0002c000 08:02 5557778                    /usr/lib/libglapi.so.0.0.0
7f59f4606000-7f59f4607000 rw-p 00000000 00:00 0 
7f59f4607000-7f59f4608000 r-xp 00000000 08:02 5529725                    /usr/lib/libxshmfence.so.1.0.0
7f59f4608000-7f59f4808000 ---p 00001000 08:02 5529725                    /usr/lib/libxshmfence.so.1.0.0
7f59f4808000-7f59f4809000 r--p 00001000 08:02 5529725                    /usr/lib/libxshmfence.so.1.0.0
7f59f4809000-7f59f480a000 rw-p 00002000 08:02 5529725                    /usr/lib/libxshmfence.so.1.0.0
7f59f480a000-7f59f480f000 r-xp 00000000 08:02 5528598                    /usr/lib/libxcb-sync.so.1.0.0
7f59f480f000-7f59f4a0f000 ---p 00005000 08:02 5528598                    /usr/lib/libxcb-sync.so.1.0.0
7f59f4a0f000-7f59f4a10000 r--p 00005000 08:02 5528598                    /usr/lib/libxcb-sync.so.1.0.0
7f59f4a10000-7f59f4a11000 rw-p 00006000 08:02 5528598                    /usr/lib/libxcb-sync.so.1.0.0
7f59f4a11000-7f59f4a14000 r-xp 00000000 08:02 5528560                    /usr/lib/libxcb-shape.so.0.0.0
7f59f4a14000-7f59f4c13000 ---p 00003000 08:02 5528560                    /usr/lib/libxcb-shape.so.0.0.0
7f59f4c13000-7f59f4c14000 r--p 00002000 08:02 5528560                    /usr/lib/libxcb-shape.so.0.0.0
7f59f4c14000-7f59f4c15000 rw-p 00003000 08:02 5528560                    /usr/lib/libxcb-shape.so.0.0.0
7f59f4c15000-7f59f4c1b000 r-xp 00000000 08:02 5528536                    /usr/lib/libxcb-xfixes.so.0.0.0
7f59f4c1b000-7f59f4e1b000 ---p 00006000 08:02 5528536                    /usr/lib/libxcb-xfixes.so.0.0.0fish: Job 2, “uzbl-browser http://tulup.ru” terminated by signal SIGABRT (Abort)

Same happpens with current master branch. I'm getting it from uzbl-tabbed-next-git AUR package btw.

There was another issue here on github that looked similar, but I checked, the exhaust is different, and versions are different.

Any ideas what's happening?

No new releases?

Hi developers and contributors,

You are actively developing uzbl, I wanted to ask why there aren't any new GitHub releases (stable versions) since 2012.

I am using this excellent browser all the time on Arch Linux but we are not getting new versions maybe because there aren't any new stable releases here on GitHub.

Thanks,
Aleksandar

Frame command in webkit2

Frame command is not supported under webkit2 it should provide an interface for reloading individual frames of the page.

Possible to implement from within the extension?

Ref #225

[0.9] Repair form filler

Upon hitting zn an empty (!) text file is opened in the editor.

Upon saving, a file is written (eg. data/dforms/duckduckgo.com.default).

Upon hitting ze again an empty file is opened which will overwrite the original one upon saving.

zl stays without effect.

If I remember correctly the file used to have the field names or id's pre-filled, but even then, formfiller "load" never worked for me.

uzbl segfaults upon every ~10th invocation

Please paste the output of uzbl-core --bug-info here:

Commit: 2012.05.14-1330-g14535ad
GTK compile: 3.18.7
GTK run: 3.18.7
WebKit compile: 2.4.9
WebKit run: 2.4.9
WebKit2: 0
libsoup compile: 2.52.2
libsoup run: 2.52.2

I am continuing investigation of the segfault issue I briefly mentioned within #191:

However, a plain call to uzbl-browser segfaults quite often for me, causing opening a new window to fail on that other level.

I was not able to do much debugging, but for now it seems that having an "older" uzbl-instance already open results in more segfaults (~50%) as opposed to having a fresh one or none open (0-10%) at the time of launching an instance.

Here are my answers to your questions, @keis:

Does it happen running uzbl-browser from the terminal or only from within a running browser

Both.

Does it happen (more often) with certain urls?

Apparently it happens just as often even when the command is run without any URL specified.

Does it happen running a uzbl-core without connecting to the em

I suppose running uzbl-core without any arguments, equals without em? Yes, it happens too. (This time, the 6th invocation failed.)

Does it happen running a uzbl-core without config and without connecting to the em

It happens when running uzbl-core -c /dev/null. Does that count as "without config"?

This time, the 8th invocation failed when issueing the command, then Ctrl-C, issueing the command, then Ctrl-C and so forth.

uzbl resize its window when moving mouse around

When moving mouse around, hover to a picture not fully displayed, or hover to some javascript/frame thing, uzbl resize its window, tring to show the full content of picture/frame/javascript

Case-insensitive and smart case search

Searches are case-sensitive by default. I think we should set search option case_insensitive in config by default. PR welcome?

Smart case search would be even better, but according to the README, it seems that search is a Webkit feature, so I suppose we are restricted by what Webkit has to offer?

Keep window open when closing the last (only) tab

Is there a way to prevent closing the window when closing the last tab?

If there is only one tab and I close it, I'd like uzbl to open a blank page or home page in its place instead of closing the whole browser. Now I'm using the CLEAN_TABS event for this (as a temporary solution), but this way I have to use another key for closing the last tab.

Maybe some command could check whether it's the last tab and use the exit or CLEAN_TABS event depending on the command's output?

Downloads work, but progress stays at 0%

Please paste the output of uzbl-core --bug-info here:

Commit: 2012.05.14-1337-g2bdfdf7
GTK compile: 3.18.7
GTK run: 3.18.8
WebKit compile: 2.4.9
WebKit run: 2.4.9
WebKit2: 0
libsoup compile: 2.52.2
libsoup run: 2.52.2

Heading says it all.

Replace asyncore with asyncio

asyncore is AFAIK mostly dead at this point and being replaced by asyncio. It's not only hip and cool but also offers a higher level of abstraction and would make it easier to integrate with other tools.

This would mean dropping python2 (again ; )

Allow to cycle through settings

=> just like toggle, but with multiple settings

Use case:

@cbind !xx = chain 'cycle proxy_url http://127.0.0.1:8123#polipo http://127.0.0.1:8118#privoxy ""' 'reload'

The above should switch to polipo upon first invocation, to privoxy upon second and to no proxy (note the "") upon third. (On the fourth, back to polipo and so on ...; also reload upon every invocation)

Any way to achieve this in current master?

<Space> binding no longer works

Something broke the <Space> binding.

Other fun things happened in the meantime of me trying simple fixes. This crashes the event manager:

@cbind  \              = scroll vertical 50%
Feb 04 14:42:19 megas uzbl-event-manager[22073]: uzbl-instance[22793]: ERROR: error in handler for 'MODE_BIND'
Feb 04 14:42:19 megas uzbl-event-manager[22073]: Traceback (most recent call last):
Feb 04 14:42:19 megas uzbl-event-manager[22073]: File "/home/boeckb/.local/share/uzbl/python/uzbl/core.py", line 173, in event
Feb 04 14:42:19 megas uzbl-event-manager[22073]: handler(*args, **kargs)
Feb 04 14:42:19 megas uzbl-event-manager[22073]: File "/home/boeckb/.local/share/uzbl/python/uzbl/plugins/bind.py", line 384, in parse_mode_bind
Feb 04 14:42:19 megas uzbl-event-manager[22073]: self.mode_bind(modes, glob, command)
Feb 04 14:42:19 megas uzbl-event-manager[22073]: File "/home/boeckb/.local/share/uzbl/python/uzbl/plugins/bind.py", line 338, in mode_bind
Feb 04 14:42:19 megas uzbl-event-manager[22073]: bind = Bind(glob, handler, *args, **kargs)
Feb 04 14:42:19 megas uzbl-event-manager[22073]: File "/home/boeckb/.local/share/uzbl/python/uzbl/plugins/bind.py", line 188, in __init__
Feb 04 14:42:19 megas uzbl-event-manager[22073]: raise ArgumentError('glob cannot be blank')
Feb 04 14:42:19 megas uzbl-event-manager[22073]: uzbl.plugins.bind.ArgumentError: glob cannot be blank
Feb 04 14:42:19 megas uzbl-event-manager[22073]: Traceback (most recent call last):
Feb 04 14:42:19 megas uzbl-event-manager[22073]: File "/home/boeckb/.local/share/uzbl/python/uzbl/core.py", line 173, in event
Feb 04 14:42:19 megas uzbl-event-manager[22073]: handler(*args, **kargs)
Feb 04 14:42:19 megas uzbl-event-manager[22073]: File "/home/boeckb/.local/share/uzbl/python/uzbl/plugins/bind.py", line 384, in parse_mode_bind
Feb 04 14:42:19 megas uzbl-event-manager[22073]: self.mode_bind(modes, glob, command)
Feb 04 14:42:19 megas uzbl-event-manager[22073]: File "/home/boeckb/.local/share/uzbl/python/uzbl/plugins/bind.py", line 338, in mode_bind
Feb 04 14:42:19 megas uzbl-event-manager[22073]: bind = Bind(glob, handler, *args, **kargs)
Feb 04 14:42:19 megas uzbl-event-manager[22073]: File "/home/boeckb/.local/share/uzbl/python/uzbl/plugins/bind.py", line 188, in __init__
Feb 04 14:42:19 megas uzbl-event-manager[22073]: raise ArgumentError('glob cannot be blank')
Feb 04 14:42:19 megas uzbl-event-manager[22073]: uzbl.plugins.bind.ArgumentError: glob cannot be blank

GTK warning with GTK 3.20.2

Seems like we've been doing some things improperly. Not that the docs ever mention pitfalls like this.

(uzbl-core:28192): Gtk-WARNING **: Drawing a gadget with negative dimensions. Did you forget to allocate a size? (node box owner UzblStatusBar)

See: GNOME/gtk@dde3362 and GNOME/gtk@51af704.

Release 0.9

0.9 is to be the release of the collected patches over the past years. It is only targeting webkit1 which is the only stable webkit target for now. uzbl-next will drop webkit1 support and focus on getting all features working in webkit2

Please help test the master branch and report any major issues. If you have tested it and it works fine please drop a comment below to that effect.

ping @sandio @GSI @ballsystemlord @rumpelsepp

cbind's starting with a backslash (\) no longer work

Please paste the output of uzbl-core --bug-info here:

Commit: v0.9.0-17-g5af1c22
GTK compile: 3.18.9
GTK run: 3.18.9
WebKit compile: 2.4.10
WebKit run: 2.4.10
WebKit2: 0
libsoup compile: 2.52.2
libsoup run: 2.52.2

With the default config, nothing happens upon typing \wiki.

Support multicharacter commands

allow multicharacter commands, showing command in statusbar while entered. Entering ends when command is fully entered or by timeout and/or escape pressed (both will abort entering current command)

Adapt to construct properties for webkit

Commit: v0.9.0-21-g21890f2
GTK compile: 3.18.7
GTK run: 3.18.7
WebKit compile: 2.10.7
WebKit run: 2.10.7
WebKit2: 1
libsoup compile: 2.52.2
libsoup run: 2.52.2

Looks like some properties has been moved to construct only.

(uzbl-core:14457): GLib-GObject-WARNING **: g_object_set_valist: construct property "website-data-manager" for object 'WebKitWebContext' can't be set after construction
(uzbl-core:14457): GLib-GObject-WARNING **: g_object_set_valist: construct property "local-storage-directory" for object 'WebKitWebsiteDataManager' can't be set after construction

Similiar to web-extension-dir these should be command line flags and read-only variables.

Bug: Xorg hangs/stops responding upon following a link via keyboard hints

Just to be sure, I verified this in Fluxbox and dwm:

I bring up keyboard hints. They show fine. Upon entering the last character of the hint, Xorg hangs. I have to switch to the console (ie Ctrl+Alt+F2), kill and restart Xorg.

  • It's insufficient to just kill all uzbl-related processes (core, em, follow.sh).
  • If there's only one link visible in the uzbl window, the hang is caused upon bringing up the hints (unsurprisingly).
  • Apparantly follow.sh keeps running (stuck too?), but I wonder how that could cause Xorg to hang (given that MEM/CPU usage stays at normal levels).

[0.9] Floating point formatting problems

set zoom_level 2.0 works, but being more precise (eg set zoom_level 2.2) seems to have no effect.

Thus I (have to) use the following workaround in order to set a zoom_level of 1.3:

@cbind 0 = chain 'set zoom_level 1.0' 'zoom_in' 'zoom_in' 'zoom_in'

(Maybe this issue is of minor relevance for the 0.9 release, but as it also exists in next ...)

[0.9] SSL CA bundle not found (Arch Linux)

With the default config on Arch Linux:

# uzbl-browser
(uzbl-core:1192): libsoup-WARNING **: Could not set SSL credentials from '/etc/ssl/certs/ca-bundle.crt': Failed to open file '/etc/ssl/certs/ca-bundle.crt': No such file or directory

Setting it to the actual path resolves the issue:

set ssl_ca_file = /etc/ssl/certs/ca-certificates.crt

... but would there be any way of referencing the bundle "cross-distribution" safely?

URL cannot be shown

Please paste the output of uzbl-core --bug-info here:

Commit: v0.9.0-21-g21890f2
GTK compile: 3.18.8
GTK run: 3.18.8
WebKit compile: 2.4.9
WebKit run: 2.4.9
WebKit2: 0
libsoup compile: 2.52.2
libsoup run: 2.52.2

I get URL cannot be shown when I try to re-open uzbl-tabbed with an HTML opened from the file system. Is that exepected? I loads fine when I go to that location and load it though.

[0.9] HTTP auth handler is broken

So, first of all auth handler was dying on:

Traceback (most recent call last):
  File "/usr/share/uzbl/examples/data/scripts/auth.py", line 55, in <module>
    me, info, host, realm = sys.argv
ValueError: too many values to unpack

I printed out sys.argv, it looked like this:

['/usr/share/uzbl/examples/data/scripts/auth.py', 'tulup.ru', 'tulup.ru', 'initial', 'http_basic', 'origin', '443', 'cant_save']

So first four values are still what we need, and the rest we don't, I guess.

So script stopped failing after I fixed that, but auth still didn't work. So I set enable_builtin_auth to 1 and commented out all auth handlers and that worked. A bit weird, though: it doesn't wait till I enter credentials and page in the background shows auth error, so I have to refresh the page after I enter username/password and then it works.

Is there a right approach to this?

Also just a reminder of an old problem: would it be possible to share HTTP auth between different tabs in uzbl-tabbed? Right now you have to authorize in every single tab you open with the same URL.

Please paste the output of uzbl-core --bug-info here:

Commit: v0.9.0
GTK compile: 3.18.9
GTK run: 3.18.9
WebKit compile: 2.4.9
WebKit run: 2.4.9
WebKit2: 0
libsoup compile: 2.52.2
libsoup run: 2.52.2

Duplicated REQ_NEW_WINDOW from link

With a simple test page like

 <a href="http://google.com" target="_blank">test</a>

each time you click the link uzbl will send more and more REQ_NEW_WINDOW events. Starting from 1 and increasing by 1 each time so the 5th time you click the link 5 new windows are requested.

Add context to clicks

The function get_click_context that used to provide a description of what was clicked does nothing in webkit2. This information is most likely available to the extension.

We could either query the extension when clicks happen or have the event originate from the extension.

Ref #225

uzbl-brower, uzbl-tabbed crashes by segmentation fauld

I build with webkit2 and gtk2. uzbl-browser and uzbl-tabbed always crash.

Here is the standard output by uzbl-browser,

(uzbl-core:2441): GLib-GObject-WARNING **: g_object_set_valist: construct property "website-data-manager" for object 'WebKitWebContext' can't be set after construction

(uzbl-core:2441): GLib-GObject-WARNING **: g_object_set_valist: construct property "local-storage-directory" for object 'WebKitWebsiteDataManager' can't be set after construction

(uzbl-core:2441): GLib-GObject-WARNING **: g_object_get_valist: object class 'WebKitWebView' has no property named 'editor-state'
zsh: segmentation fault (core dumped)  uzbl-browser

And here is the output by gdb,

Program terminated with signal SIGSEGV, Segmentation fault.
#0  0x00007fbfef4c899e in webkit_editor_state_get_typing_attributes ()
   from /usr/lib/libwebkit2gtk-4.0.so.37
[Current thread is 1 (Thread 0x7fbff1572940 (LWP 31909))]
(gdb) bt
#0  0x00007fbfef4c899e in webkit_editor_state_get_typing_attributes ()
   from /usr/lib/libwebkit2gtk-4.0.so.37
#1  0x00000000004205cd in get_editor_state () at src/variables.c:3319
#2  0x000000000041aa3d in get_variable_string (var=0x16671d0) at src/variables.c:572
#3  0x000000000041b640 in variable_expand (var=0x16671d0, buf=0x175d480) at src/variables.c:1008
#4  0x000000000041a92a in send_variable_event (name=0x1667200 "editor_state", var=0x16671d0)
    at src/variables.c:527
#5  0x000000000041b335 in dump_variable_event (key=0x1667200, value=0x16671d0, data=0x0)
    at src/variables.c:893
#6  0x00007fbfebc080c0 in g_hash_table_foreach (hash_table=0x1641640, 
    func=0x41b2fe <dump_variable_event>, user_data=0x0) at ghash.c:1550
#7  0x000000000041a6aa in uzbl_variables_dump_events () at src/variables.c:415
#8  0x0000000000411886 in cmd_dump_config_as_events (argv=0x1c41b60, result=0x1761880)
    at src/commands.c:2934
#9  0x000000000040d6f0 in uzbl_commands_run_parsed (info=0x421ab8 <builtin_command_table+888>, 
    argv=0x1c41b60, result=0x1761880) at src/commands.c:242
#10 0x000000000040d828 in uzbl_commands_run (cmd=0x7fbf90001300 "dump_config_as_events", 
    result=0x1761880) at src/commands.c:280
#11 0x0000000000417b36 in run_command (item=0x7fbf90001320, data=0x0) at src/io.c:382
#12 0x0000000000420b39 in uzbl_rb_async_queue_watch_dispatch (source=0x1663f00, 
    callback=0x417ad9 <run_command>, user_data=0x0)
    at src/3p/async-queue-source/rb-async-queue-watch.c:85
#13 0x00007fbfebc181bd in g_main_dispatch (context=0x16403e0) at gmain.c:3111
#14 g_main_context_dispatch (context=context@entry=0x16403e0) at gmain.c:3710
#15 0x00007fbfebc18558 in g_main_context_iterate (context=0x16403e0, block=block@entry=1, 
    dispatch=dispatch@entry=1, self=<optimized out>) at gmain.c:3781
#16 0x00007fbfebc18872 in g_main_loop_run (loop=0x18c8f70) at gmain.c:3975
#17 0x00007fbfedbd3215 in gtk_main () at gtkmain.c:1207
#18 0x000000000040c883 in main (argc=1, argv=0x7fff2d865bf8) at src/uzbl-core.c:396

Here is part of my Makefile,

PREFIX     ?= /usr
ENABLE_WEBKIT2 ?= yes
ENABLE_GTK3    ?= no

When I invoke "uzbl-core", it works and I see the uzbl website.

Critical Error on Console

When trying to run uzbl-browser from the command line, I get the following twice on the console:

(uzbl-core:1704): GLib-GObject-CRITICAL **: g_closure_unref: assertion 'closure->ref_count > 0' failed

This is on the latest build of uzbl-next, backed on to the latest libwebkitgtk-3.0 available in official raspbian repositories (2.4.1-1rpi53rpi1g on the RaspberryPi's I'm running this on).

uzbl segfault regarding libpixman

Please paste the output of uzbl-core --bug-info here:

Commit: v0.9.0-21-g4851bae
GTK compile: 3.20.2
GTK run: 3.20.2
WebKit compile: 2.4.10
WebKit run: 2.4.10
WebKit2: 0
libsoup compile: 2.54.0
libsoup run: 2.54.0

This happened upon scrolling down on a one-page website.
(No link, as I run into this issue randomly and cannot reproduce it based on repeating the same steps on the same website)

(gdb) bt                                                                                                               [1/1224]
#0  0x00007f398a9a1470 in ?? () from /usr/lib/libpixman-1.so.0
#1  0x00007f398a9a1619 in ?? () from /usr/lib/libpixman-1.so.0
#2  0x00007f398a91eca1 in pixman_image_composite32 () from /usr/lib/libpixman-1.so.0
#3  0x00007f3993cea0a4 in ?? () from /usr/lib/libcairo.so.2
#4  0x00007f3993d262ca in ?? () from /usr/lib/libcairo.so.2
#5  0x00007f3993d2688e in ?? () from /usr/lib/libcairo.so.2
#6  0x00007f3993d26ba9 in ?? () from /usr/lib/libcairo.so.2
#7  0x00007f3993cde419 in ?? () from /usr/lib/libcairo.so.2
#8  0x00007f3993d29c31 in ?? () from /usr/lib/libcairo.so.2
#9  0x00007f3993d56d6c in ?? () from /usr/lib/libcairo.so.2
#10 0x00007f3993d3c334 in ?? () from /usr/lib/libcairo.so.2
#11 0x00007f3993d3c659 in ?? () from /usr/lib/libcairo.so.2
#12 0x00007f3993d3d08e in ?? () from /usr/lib/libcairo.so.2
#13 0x00007f3993cde730 in ?? () from /usr/lib/libcairo.so.2
#14 0x00007f3993d58298 in ?? () from /usr/lib/libcairo.so.2
#15 0x00007f3993d2a157 in ?? () from /usr/lib/libcairo.so.2
#16 0x00007f3993ce779c in ?? () from /usr/lib/libcairo.so.2
#17 0x00007f3993ce0139 in ?? () from /usr/lib/libcairo.so.2
#18 0x00007f3993cd8f55 in cairo_fill () from /usr/lib/libcairo.so.2
#19 0x00007f399591c938 in ?? () from /usr/lib/libwebkitgtk-3.0.so.0
#20 0x00007f39959166e2 in ?? () from /usr/lib/libwebkitgtk-3.0.so.0
#21 0x00007f399597d32e in ?? () from /usr/lib/libwebkitgtk-3.0.so.0
#22 0x00007f39959774d8 in ?? () from /usr/lib/libwebkitgtk-3.0.so.0
#23 0x00007f399613835b in ?? () from /usr/lib/libwebkitgtk-3.0.so.0
#24 0x00007f399611dba8 in ?? () from /usr/lib/libwebkitgtk-3.0.so.0
#25 0x00007f3996125d60 in ?? () from /usr/lib/libwebkitgtk-3.0.so.0
#26 0x00007f39961262cd in ?? () from /usr/lib/libwebkitgtk-3.0.so.0
#27 0x00007f399612a03e in ?? () from /usr/lib/libwebkitgtk-3.0.so.0
#28 0x00007f39960ee830 in ?? () from /usr/lib/libwebkitgtk-3.0.so.0
#29 0x00007f39960daaa0 in ?? () from /usr/lib/libwebkitgtk-3.0.so.0
#30 0x00007f39961b2c88 in ?? () from /usr/lib/libwebkitgtk-3.0.so.0
#31 0x00007f39961bd76c in ?? () from /usr/lib/libwebkitgtk-3.0.so.0
#32 0x00007f39961be991 in ?? () from /usr/lib/libwebkitgtk-3.0.so.0
#33 0x00007f39961c03d2 in ?? () from /usr/lib/libwebkitgtk-3.0.so.0
#34 0x00007f39961bda37 in ?? () from /usr/lib/libwebkitgtk-3.0.so.0
#35 0x00007f39961be991 in ?? () from /usr/lib/libwebkitgtk-3.0.so.0
#36 0x00007f39961c03d2 in ?? () from /usr/lib/libwebkitgtk-3.0.so.0
#37 0x00007f39961bda37 in ?? () from /usr/lib/libwebkitgtk-3.0.so.0
#38 0x00007f39961be991 in ?? () from /usr/lib/libwebkitgtk-3.0.so.0
#39 0x00007f39961beca4 in ?? () from /usr/lib/libwebkitgtk-3.0.so.0
#40 0x00007f3996055eaf in ?? () from /usr/lib/libwebkitgtk-3.0.so.0
#41 0x00007f39967f0ef2 in ?? () from /usr/lib/libwebkitgtk-3.0.so.0
#42 0x00007f39958c541b in ?? () from /usr/lib/libwebkitgtk-3.0.so.0
#43 0x00007f39959e1e80 in ?? () from /usr/lib/libwebkitgtk-3.0.so.0
#44 0x00007f3995a035e2 in ?? () from /usr/lib/libwebkitgtk-3.0.so.0
#45 0x00007f399313b823 in ?? () from /usr/lib/libglib-2.0.so.0
#46 0x00007f399313adba in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#47 0x00007f399313b160 in ?? () from /usr/lib/libglib-2.0.so.0
#48 0x00007f399313b482 in g_main_loop_run () from /usr/lib/libglib-2.0.so.0
#49 0x00007f39944db525 in gtk_main () from /usr/lib/libgtk-3.so.0
#50 0x000000000040a5e9 in ?? ()
#51 0x00007f3992811710 in __libc_start_main () from /usr/lib/libc.so.6
#52 0x000000000040a749 in ?? ()

regression testing use unit tests

Sorry to disappear on you. @keis mentioned that he needed regression testers. I have found when programming that the only way to reliably do this is by unit testing. After reading a lot about it I found that I could jut use a very simple frame work (two lines of c), to unit test my personal projects. This will not do for uzbl, it's too big and has too many dependencies.
I started looking for another framework which I hoped to find one that used mock-up structs and functions. I found cmocka, but I can't for the life of me figure it out. I gave up on that one and decided to use check. Are there any comments on this choice/better frameworks?
https://libcheck.github.io/check/
Also, I am a self taught C programmer. I read a lot of tutorials on the net (this is by necessity, not choice, don't complain), and I'm mystified by why the functions often times take several parameters as input and void them immediately. I'm asking so that I can write proper unit tests.

uzbl crashes when zooming to big levels

Please paste the output of uzbl-core --bug-info here:

Commit: v0.9.0-1-gca4a63a
GTK compile: 3.18.8
GTK run: 3.18.9
WebKit compile: 2.4.9
WebKit run: 2.4.10
WebKit2: 0
libsoup compile: 2.52.2
libsoup run: 2.52.2

From dmesg:

[14927.492699] uzbl-core[2326]: segfault at 7f3f5f54b000 ip 00007f3fe892947c sp 00007ffdb5964b08 error 4 in libpixman-1.so.0.34.0[7f3fe889b000+9f000]

(Text-only zoom appears to be unaffected. I suppose it doesn't use libpixman as no images are being zoomed.)

Drop webkit1 support

next version is only targeting webkit2 so all conditional code for webkit1 and ancient versions should be dropped.

Avoid running hard coded commands

I've mentioned this a few times but I figured I'd open a ticket to discuss it properly. I don't like that uzbl makes use of it's own command language internally.

  1. It makes things harder to reason about as what would be a simple call or variable deref now goes through the command or variable lookup machinery respectively.
  2. From the architechture map the command engine becomes an interconnected part rather than a layer on top of the core.

So my suggestion is to replace any part of the code that does uzbl_commands_run_argv with hard coded arguments with a call to an exported function of the relevant subsystem that can be used both in the hardcode instance and in the implementation of the command.

The list of commands called in this way is

  • js (x3)
  • uri
  • geometry
  • include

All of those are pretty simple with the except of js which could benefit from being split into multiple functions (maybe _create_context, _run_string, _run_file)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.