.\" Copyright (c) 2010, 2011, 2012 Marco Peereboom .\" Copyright (c) 2011 Jason McIntyre .\" Copyright (c) 2012 Josh Rickmar .\" .\" Permission to use, copy, modify, and distribute this software for any .\" purpose with or without fee is hereby granted, provided that the above .\" copyright notice and this permission notice appear in all copies. .\" .\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES .\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF .\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR .\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES .\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN .\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF .\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. .\" .Dd $Mdocdate: June 7 2012 $ .Dt XOMBRERO 1 .Os .Sh NAME .Nm xombrero .Nd lightweight web browser .Sh SYNOPSIS .Nm xombrero .Bk -words .Op Fl nSTtV .Op Fl f Ar file .Op Fl s Ar session_name .Op Ar url ... .Ek .Sh DESCRIPTION .Nm is a minimalistic web browser that tries to stay out of the way so that valuable screen real estate can be used for much more important stuff. It has sane defaults and does not require one to learn a language to do any configuration. It was written by hackers for hackers and it strives to be small, compact, and fast. .Pp .Nm is very simple in its use. Most actions are initiated via key or mouse bindings. Key bindings are based on those of the .Xr vi 1 text editor, giving web browsing a similar feel to navigating a text document. The .Sx KEY BINDINGS section below documents the various defaults and possible customizations. .Pp The options are as follows: .Bl -tag -width Ds .It Fl f Ar file Specify an alternative configuration file. .It Fl n Open a new tab in a running .Nm for each specified URL. This option requires .Cm enable_socket to be enabled. .It Fl e Ar command Execute arbitrary command (see the .Sx COMMAND MODE section below) in a running .Nm instance. This option requires .Cm enable_socket to be enabled. Example run: xombrero -e "tabnew openbsd.org"; xombrero -e tabclose; xombrero -e wq. .It Fl S Disable the toolbar. .It Fl s Ar session_name Open session that was saved with ":session save" command. .It Fl T Disable visualization of tabs. .It Fl t Disable tabs. .It Fl V Display version and exit. .El .Sh FAST STARTUP The following notation is used throughout this page: .Pp .Bl -tag -width Ds -offset indent -compact .It Cm C- Control .It Cm S- Shift .It Cm M1- Meta 1 (sometimes marked Alt) .It Cm M2- Meta 2 .It Cm M3- Meta 3 .It Cm M4- Meta 4 (sometimes marked Windows) .It Cm M5- Meta 2 .It Cm MB1 Mouse button 1 .El .Pp To browse to a specific address, either use the mouse to click on the address bar or press .Cm F6 to shift the keyboard focus to the address bar. The address is then entered manually. .Pp The mouse can be used to navigate the page in the traditional manner, or the keyboard can be used instead. For example, .Cm PageUp and .Cm PageDown will scroll up and down the page. .Pp To follow a link, either click on it or use the .Cm f key and have .Nm assign numbers to each link on the page; entering that number on the keyboard will prompt .Nm to follow the link. .Sh KEY BINDINGS .Nm provides many actions accessed via key or mouse bindings. Most can be reprogrammed using a .Cm keybinding entry in the configuration file. Each keyboard shortcut requires exactly one entry in the configuration file. A shortcut can have multiple entries in the configuration file. The format of the keybinding entry is as follows: .Pp .D1 keybinding = (:)action,(!)keystroke(s) .Pp For example, "keybinding = tabnew,C-t" where .Cm tabnew is the action and .Cm C-t are the keystrokes. .Pp If the action begins with a colon, the action will be entered into the command prompt instead of being executed. For example, "keybinding = :session open ,M1-s" will open the command prompt with ":open session " entered when using the M1-s keybinding. .Pp Keybindings which open the command prompt may also include the string , which will be replaced by the current tab's URI. For example, "keybinding = :open ,F10" will open the command prompt with replaced with the current URI. .Pp GTK has some default keybindings for manipulating text inside input fields, such as the URI or search entry widget, for example .Cm C-w deletes a word. To override these defaults prefix your key with an exclamation mark, like this: "keybinding = tabclose,!C-w". The .Cm clearall key word is special and is meant to reset the key binding list to the GTK+ and WebKit defaults. This keyword should be the first .Cm keybinding entry in the configuration file. .Pp Shift should be used sparingly since it gets in the way of non-USA keyboards. See the accompanying configuration file for examples. .Pp The various bindings are documented below. The relevant keybinding action is given afterwards, in parentheses. .Ss Command mode These commands are used to focus or unfocus input on the default input of a web page. .Pp .Bl -tag -width Ds -offset indent -compact .It Cm ESC Go to command mode; unfocus current entry on web page. .Pq Cm command_mode .It Cm i Go to insert mode; focus on default entry on web page. .Pq Cm insert_mode .El .Ss Search Commands These commands are used to search for text strings within a web page. .Pp .Bl -tag -width Ds -offset indent -compact .It Cm / Start a search .Pq Cm search .It Cm \&? Start a backwards search .Pq Cm searchb .It Cm n Next item matching search .Pq Cm searchnext .It Cm N Previous item matching search .Pq Cm searchprev .El .Ss Focus Commands These commands are used to shift the focus of .Nm from one area to another. .Pp .Bl -tag -width Ds -offset indent -compact .It Cm F6 Focus on address bar .Pq Cm focusaddress .It Cm F7 Focus on search entry .Pq Cm focussearch .El .Ss Command Aliases These commands allow the user to map specific actions to specific keys. .Pp .Bl -tag -width Ds -offset indent -compact .It Cm F1 Alias for "help" .It Cm F2 Alias for "proxy toggle" .It Cm F4 Alias for "toplevel toggle" .El .Ss Prompt Aliases These commands allow the user to open a prompt. These can be useful when the .Fl S option is used. .Pp .Bl -tag -width Ds -offset indent -compact .It Cm F9 Alias for ":open " .It Cm F10 Alias for ":open " .It Cm F11 Alias for ":tabnew " .It Cm F12 Alias for ":tabnew " .El .Ss Navigation Commands These commands allow the user to navigate web pages and, to some extent, control the browser. .Pp .Bl -tag -width "Space, C-f, PageDownXXX" -offset indent -compact .It Cm F5, C-r, C-l Reload page .Pq Cm reload .It Cm Backspace, M-Left Previous page .Pq Cm goback .It Cm S-BackSpace, M-Right Forward page .Pq Cm goforward .It Cm j, Down Next line on page .Pq Cm scrolldown .It Cm k, Up Previous line on page .Pq Cm scrollup .It Cm G, End Bottom of page .Pq Cm scrollbottom .It Cm gg, Home Top of page .Pq Cm scrolltop .It Cm Space, C-f, PageDown Page down .Pq Cm scrollpagedown .It Cm C-b, PageUp Page up .Pq Cm scrollpageup .It Cm l, Right Page right .Pq Cm scrollright .It Cm h, Left Page left .Pq Cm scrollleft .It Cm $ Page far right .Pq Cm scrollfarright .It Cm 0 Page far left .Pq Cm scrollfarleft .It Cm M-f Favorites .Pq Cm fav .It Cm M-j Cookie jar .Pq Cm cookiejar .It Cm M-d Download manager .Pq Cm dl .It Cm C-p Print page .Pq Cm print .It Cm M-h Global history .Pq Cm history .It Cm C-j Toggle Java Script enabled for FQDN .Pq Cm js .It Cm C-s Toggle source view .Pq Cm togglesrc .It Cm M-c Toggle cookie enabled for FQDN .Pq Cm cookie .It Cm M-p Toggle plugins enabled for FQDN .Pq Cm plugin .El .Ss Tab Manipulation .Nm supports tabbed browsing. That is, web pages may be opened in separate tabs, allowing the user to quickly move from one page to another, and back. These commands then are used to create, destroy, and move between tabs. .Pp .Bl -tag -width "C-plus, C-equalXXX" -offset indent -compact .It Cm C-MB1 Open new tab with the clicked link .It Cm C-t Create new tab with focus in URL entry .Pq Cm tabnew .It Cm C-T Create new tab with focus in URL entry as the last tab in the browser .Pq Cm 999tabnew .It Cm C-w Destroy current tab .Pq Cm tabclose .It Cm U Undo close tab .Pq Cm tabundoclose .It Cm C-Left, C-PageUp Go to the previous tab .Pq Cm tabprevious .It Cm C-Right, C-PageDown Go to the next tab .Pq Cm tabnext .It Cm C-[1..9] Jump to page .Ar N .Pq Cm tabnext [1..9] .It Cm C-< Jump to first page .Pq Cm tabfirst .It Cm C-> Jump to last page .Pq Cm tablast .It Cm C-minus Zoom out by 4% .Pq Cm focusout .It Cm C-plus, C-equal Zoom in by 4% .Pq Cm focusin .It Cm C-0 Set zoom level to 100% .Pq Cm focusreset .El .Ss Yanking and pasting These commands copy and paste text to and from the clipboard. .Pp .Bl -tag -width Ds -offset indent -compact .It Cm p Paste the contents of the clipboard into the address bar .Pq Cm pasteuricur .It Cm P Paste the contents of the clipboard into a new tab .Pq Cm pasteurinew .It Cm y Yank the current URL into the clipboard .Pq Cm yankuri .El .Ss Hyperlink Following This allows the user to follow hyperlinks without using a mouse. Enter the corresponding number to follow the link. Alternatively one can type the name of the link and when there are no more possibilities .Nm will follow the link. .Pp .Bl -tag -width Ds -offset indent -compact .It Cm f, '.' Highlight all links and prefix them with a number. .Pq Cm hinting .It Cm F, ',' Highlight all links and prefix them with a number but open in a new tab. .Pq Cm hinting_newtab .El .Ss Exiting Commands to exit the browser. .Pp .Bl -tag -width Ds -offset indent -compact .It Cm C-q Quit .Pq Cm quitall .El .Ss Low-Contrast Color Scheme These commands toggle the page style between the default CSS and a low-contrast color scheme with light grey text on a dark grey background. .Pp .Bl -tag -width Ds -offset indent -compact .It Cm s Toggle the current tab's style. .Pq Cm userstyle .It Cm S Toggle the global page style mode. Will also affect new tabs. .Pq Cm userstyle_global .El .Ss Insert-mode commands The following commands are only available when editing an input-field .Pp .Bl -tag -width Ds -offset indent -compact .It Cm C-i Edit the contents of the currently active input-element in an external editor. .Pq Cm editelement .El .Sh COMMAND MODE Command mode works in a similar fashion to the .Xr vi 1 editor; it is entered by typing a colon and exited by typing Esc. The commands and their descriptions are listed below. .Bl -tag -width Ds -offset indent .It Cm about , version Show the "About" page. .It Cm buffers , ls , tabs Displays the currently open tabs and lets the user switch tab by typing the tab number or using the mouse. .It Cm ca Display CA certificates. .It Cm cert , cert show Download and display certificates of domain on tab. .It Cm cert save Save certificate into a local store. The next time the site is visited it is compared against the store. If the certificate matches, the address bar will be blue; if it doesn't the bar will be red. .It Cm cookie The .Cm cookie command is used to manipulate the cookie whitelist. Used by itself it expands to .Cm cookie show all . .It Cm cookiejar Show cookie jar contents. .It Cm cookie purge Remove all cookies from the cookie jar. .It Cm cookie save, cookie save fqdn Save the current fully qualified domain name (FQDN) to the persistent whitelist. For example, the www.peereboom.us domain would result in saving .www.peereboom.us. .It Cm cookie save domain Save the top level domain name to the persistent whitelist. For example, the www.peereboom.us domain would result in saving .peereboom.us. .Pp This action enables cookies if it is currently disabled for this entry. .It Cm cookie show all Show all persistent and session entries in the cookie whitelist. .It Cm cookie show persistent Show all persistent entries in the cookie whitelist. .It Cm cookie show session Show all session entries in the cookie whitelist. .It Cm cookie toggle domain Toggle cookie support for the current top level domain. .It Cm cookie toggle, cookie toggle fqdn Toggle cookie support for the current FQDN. .It Cm dl Show download manager. .It Cm encoding If .Cm is set the tab's encoding will be set to .Cm and .Nm reloads the tab. If .Cm is not set .Nm will display the current tab encoding. .It Cm editsrc Opens the source for the current tab in the editor specified by the setting .Cm external_editor and then checks for changes to the file opened. If it is changed, the page will be updated. .It Cm editelement If a text-element is currently active ( or