3 .\" Copyright (c) 2010, 2011 Marco Peereboom <marco@peereboom.us>
4 .\" Copyright (c) 2011 Jason McIntyre <jmc@openbsd.org>
6 .\" Permission to use, copy, modify, and distribute this software for any
7 .\" purpose with or without fee is hereby granted, provided that the above
8 .\" copyright notice and this permission notice appear in all copies.
10 .\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
11 .\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
12 .\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
13 .\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
14 .\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
15 .\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
16 .\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
23 .Nd lightweight web browser
29 .Op Fl s Ar session_name
34 is a minimalistic web browser that tries to stay out of the way so that
35 valuable screen real estate can be used for much more important stuff.
36 It has sane defaults and does not require one to learn a language to do any
38 It was written by hackers for hackers
39 and it strives to be small, compact, and fast.
42 is very simple in its use.
43 Most actions are initiated via key or mouse bindings.
44 Key bindings are based on those of the
47 giving web browsing a similar feel to navigating a text document.
50 section below documents the various defaults and possible customizations.
52 The options are as follows:
55 Specify an alternative configuration file.
57 Open a new tab in a running
59 for each specified URL.
65 .It Fl s Ar session_name
66 Open session that was saved with ":session save" command.
68 Disable visualization of tabs.
72 Display version and exit.
75 The following notation is used throughout this page:
77 .Bl -tag -width Ds -offset indent -compact
83 Meta 1 (sometimes marked Alt)
89 Meta 4 (sometimes marked Windows)
96 To browse to a specific address,
97 either use the mouse to click on the address bar
100 to shift the keyboard focus to the address bar.
101 The address is then entered manually.
103 The mouse can be used to navigate the page in the traditional manner,
104 or the keyboard can be used instead.
109 will scroll up and down the page.
112 either click on it or use the
116 assign numbers to each link on the page;
117 entering that number on the keyboard will prompt
122 provides many actions accessed via key or mouse bindings.
123 Most can be reprogrammed using a
125 entry in the configuration file.
126 Each keyboard shortcut requires exactly one entry in the configuration file.
127 A shortcut can have multiple entries in the configuration file.
128 The format of the keybinding entry is as follows:
130 .D1 keybinding = action,keystroke(s)
132 For example, "keybinding = tabnew,C-t" where
140 key word is special and is meant to reset the key binding list to the GTK+
142 This keyword should be the first
144 entry in the configuration file.
146 Shift should be used sparingly since it gets in the way of non-USA keyboards.
147 See the accompanying configuration file for examples.
149 The various bindings are documented below.
150 The relevant keybinding action is given afterwards, in parentheses.
152 These commands are used to search for text strings within a web page.
154 .Bl -tag -width Ds -offset indent -compact
158 Start a backwards search
160 Next item matching search
163 Previous item matching search
167 These commands are used to shift the focus of
169 from one area to another.
171 .Bl -tag -width Ds -offset indent -compact
176 Focus on search entry
180 These commands allow the user to map specific actions to specific keys.
181 It can be useful when the
185 .Bl -tag -width Ds -offset indent -compact
190 Alias for ":open current-uri"
191 .Pq Cm promptopencurrent
196 Alias for ":tabnew current-uri"
197 .Pq Cm prompttabnewcurrent
199 .Ss Navigation Commands
200 These commands allow the user to navigate web pages and,
204 .Bl -tag -width "Space, C-f, PageDownXXX" -offset indent -compact
209 Reload page without using any cached data
211 .It Cm Backspace, M-Left
214 .It Cm S-BackSpace, M-Right
221 Previous line on page
229 .It Cm Space, C-f, PageDown
231 .Pq Cm scrollpagedown
243 .Pq Cm scrollfarright
263 Toggle Java Script enabled for FQDN
269 Toggle cookie enabled for FQDN
274 supports tabbed browsing.
275 That is, web pages may be opened in separate tabs,
276 allowing the user to quickly move from one page to another,
278 These commands then are used to create, destroy, and move between tabs.
280 .Bl -tag -width "C-plus, C-equalXXX" -offset indent -compact
282 Open new tab with the clicked link
284 Create new tab with focus in URL entry
293 Go to the previous tab
303 Shrink font size by one point
305 .It Cm C-plus, C-equal
306 Grow font size by one point
309 .Ss Yanking and pasting
310 These commands copy and paste text to and from the clipboard.
312 .Bl -tag -width Ds -offset indent -compact
314 Paste the contents of the clipboard into the address bar
317 Paste the contents of the clipboard into a new tab
320 Yank the current URL into the clipboard
323 .Ss Hyperlink Following
324 This allows the user to follow hyperlinks
325 without using a mouse.
326 Enter the corresponding number to follow the link.
327 Alternatively one can type the name of the link and when there are no more
330 will follow the link.
332 .Bl -tag -width Ds -offset indent -compact
334 Highlight all links and prefix them with a number.
338 Commands to exit the browser.
340 .Bl -tag -width Ds -offset indent -compact
345 .Ss Low-Contrast Color Scheme
346 This command toggles the page's style between the default CSS and a
347 low-contrast color scheme with light grey text on a dark grey background.
349 .Bl -tag -width Ds -offset indent -compact
351 Toggle the current tab's style.
354 Command mode works in a similar fashion to the
357 it is entered by typing a colon and exited by typing Esc.
358 The commands and their descriptions are listed below.
359 .Bl -tag -width Ds -offset indent
360 .It Cm about , version
361 Show the "About" page.
363 Display CA certificates.
364 .It Cm cert , cert show
365 Download and display certificates of domain on tab.
367 Save certificate into a local store.
368 The next time the site is visited it is compared against the store.
369 If the certificate matches,
370 the address bar will be blue;
371 if it doesn't the bar will be red.
375 command is used to manipulate the cookie whitelist.
376 Used by itself it expands to
377 .Cm cookie show all .
379 Show cookie jar contents.
380 .It Cm cookie save, cookie save fqdn
381 Save the current fully qualified domain name (FQDN)
382 to the persistent whitelist.
384 the www.peereboom.us domain would result in saving .www.peereboom.us.
385 .It Cm cookie save domain
386 Save the top level domain name to the persistent whitelist.
388 the www.peereboom.us domain would result in saving .peereboom.us.
390 This action enables cookies if it is currently disabled for this entry.
391 .It Cm cookie show all
392 Show all persistent and session entries in the cookie whitelist.
393 .It Cm cookie show persistent
394 Show all persistent entries in the cookie whitelist.
395 .It Cm cookie show session
396 Show all session entries in the cookie whitelist.
397 .It Cm cookie toggle domain
398 Toggle cookie support for the current top level domain.
399 .It Cm cookie toggle, cookie toggle fqdn
400 Toggle Java Script execution for the current FQDN.
402 Show download manager.
406 Add the current page to favorites.
407 .It Cm fullscreen , f
408 Toggle hiding tabs and url entry toolbar.
409 .It Cm h , hist , history
418 command is used to manipulate the Java Script whitelist.
419 Used by itself it expands to
421 .It Cm js save, save fqdn
422 Saves the FQDN to the persistent whitelist.
424 the www.peereboom.us domain would result in saving .www.peereboom.us.
425 .It Cm js save domain
426 Saves the top level domain name to the persistent whitelist.
428 the www.peereboom.us domain would result in saving .peereboom.us.
430 This action enables Java Script if it is currently disabled for this entry.
432 Shows all persistent and session entries in the JS whitelist.
433 .It Cm js show persistent
434 Shows all persistent entries in the JS whitelist.
435 .It Cm js show session
436 Shows all session entries in the JS whitelist.
437 .It Cm js toggle, js toggle fqdn
438 Toggle Java Script execution for the current FQDN.
439 .It Cm js toggle domain
440 Toggle Java Script execution for the current top level domain.
441 .It Cm open , op , o URL
449 Close current tab and quit
451 if it is the last tab.
455 and reload all current tabs.
456 .It Cm session , Cm session show
457 Display the current session name.
458 By default the session name is main_session.
459 To create a new session use the
462 A session is defined as the lifetime of the browser application.
463 .It Cm session delete <session_name>
464 Delete session session_name from persistent storage.
465 If session_name is the current session then the session will revert to
467 .It Cm session open <session_name>
468 Open session_name and close all currently open tabs.
469 Going forward this session is named session_name.
470 .It Cm session save <session_name>
471 Save current tabs to session_name session.
472 This will close the current session and going forward this session is named
475 Show blocked cookie statistics.
476 These statistics vary based on settings and are not persistent.
477 .It Cm statushide , statush
479 .It Cm statusshow , statuss
481 .It Cm tabclose , tabc
483 .It Cm tabhide , tabh
485 .It Cm tabnew , tabedit , tabe URL
486 Create new tab and optionally open provided URL.
487 .It Cm tabnext , tabn
489 .It Cm tabprevious , tabp
490 Go to the previous tab.
491 .It Cm tabshow , tabs
493 .It Cm urlhide , urlh
494 Hide url entry and tool bar.
495 .It Cm urlshow , urls
496 Show url entry and tool bar.
498 Save open tabs to current session.
499 The tabs will be restored next time
501 the session is opened.
502 See the session command for additional details.
504 Save open tabs and quit.
505 The tabs will be restored next time
507 the session is opened.
508 See the session command for additional details.
511 The about screens are internally generated web pages by
513 for user interaction.
514 These are entered in the address bar and the format is
516 where screen is the desired screen to display.
517 For example about:favorites.
518 Any about screen can be used as the home page as specified by
520 in the configuration file.
522 .Bl -tag -width "downloadsXXX" -offset indent -compact
524 show the about screen
528 show the cookie whitelist screen
530 show the cookiejar screen
532 show the downloads screen
534 show the favorites screen
536 show the help web page
538 show the history screen
540 show the Java Script whitelist screen
542 show the settings screen
544 show the statistics screen
547 This section descibes advanced usage settings.
548 Most users should use
552 and skip over this section.
555 has a number of whitelists to control blocking cookies and Java Script
556 execution for FQDNs or domains.
557 When properly enabled these whitelists require either the FQDN or top level
558 domain to exist in the whitelists in order to allow cookies to be stored or
559 Java Script to execute.
560 Both Java Script and cookies have two whitelists associated with them.
561 The whitelists are called session and persistent.
562 Items in the session whitelists are only allowed for the lifetime of the
565 Items in the persistent whitelists are stored on disk and are restored
568 Setting up the whitelists is a little tricky due to intricacies of WebKit.
569 In fact the semantics are different for cookies and Java Script.
571 Cookie whitelist requires the following configuration to be set:
573 .Bl -tag -width "enable_cookie_whitelistXXX" -offset indent -compact
574 .It Cm cookies_enabled
575 This is a WebKit setting and must be set to
578 in order to be able to use a
580 .It Cm enable_cookie_whitelist
581 This needs to be set to
583 to enable the cookie whitelist functionality.
585 These entries in the configuration file are the actual domains names in the
589 Java Script whitelist requires the following configuration to be set:
591 .Bl -tag -width "enable_js_whitelistXXX" -offset indent -compact
592 .It Cm enable_scripts
593 This is a WebKit setting and must be set to
596 in order to be able to use a
597 Java Script whitelist.
598 .It Cm enable_js_whitelist
599 This needs to be set to
601 to enable the Java Script whitelist functionality.
603 These entries in the configuration file are the actual domains names in the
604 Java Script whitelist.
609 section for additional configuration file entries and details
610 that alter runtime behavior.
612 .Bl -tag -width "/etc/xxxterm.confXXX" -compact
613 .It Pa ~/.xxxterm.conf
615 user specific settings.
622 tries to open the user specific file,
623 .Pa ~/.xxxterm.conf .
624 If that file is unavailable,
625 it then uses built-in defaults.
627 The format of the file is \*(Ltkeyword\*(Gt = \*(Ltsetting\*(Gt.
630 .Dl http_proxy = http://127.0.0.1:8080
632 Enabling or disabling an option is done by using 1 or 0 respectively.
634 The file supports the following keywords:
636 .Bl -tag -width "enable_cookie_whitelistXXX" -offset indent -compact
638 Defines an alias for a given URL, so that the URL is loaded when the alias is
639 entered in the address bar.
640 If the aliased URL includes a %s format specifier, then any argument given after
641 the alias on the address bar is substituted.
642 For example, if g,http://www.google.com/search?q=%s is defined as an alias,
643 then the URL http://www.google.com/search?q=foo is loaded when navigating to
645 .It Cm allow_volatile_cookies
646 If set cookies are stored in the session cache but will be discarded once
649 Unfortunately enabling this does allow for some limited tracking on the web.
651 When set a new tab is appended after the current tab instead of being appended
656 browser has 3 default operating modes:
664 mode the browser allows all cookies and Java Script as any other browser
666 This means that all cookies are saved to persistent storage and that all
669 On the other hand, using the
671 mode enables whitelists.
672 This requires the user to add all the required
677 If a domain does not appear in the whitelists
679 disallows cookies and Java Script execution.
683 mode the browse works just like
685 mode however the toolbar only has the backward, forward and home button.
687 This setting must be the first entry in
689 because it sets advanced settings that can be overridden later in the file.
690 See the default config file for more details.
692 This field delineates the cookie policy.
693 Possible values are: no3rdparty, reject 3rd party cookies.
694 accept, accept all cookies.
695 reject, reject all cookies.
697 This is a cookie whitelist item.
698 Use multiple times to add multiple entries.
699 Valid entries are for example *.moo.com and the equivalent .moo.com.
700 A fully qualified host is also valid and is for example www.moo.com.
701 .It Cm cookies_enabled
703 .It Cm ctrl_click_focus
704 Give focus in newly created tab instead of opening it in the background.
705 .It Cm default_font_size
706 Set the default browsing font size.
707 .It Cm default_zoom_level
708 Set the default browsing zoom level.
710 Locations where files are downloaded to.
711 This directory must exist and
713 validates that during startup.
714 .It Cm enable_cookie_whitelist
715 When enabled all cookies must be in the whitelist or they are rejected.
716 .It Cm enable_js_whitelist
717 When enabled all domains must be in the js whitelist in order to run Java Script.
721 .It Cm enable_plugins
723 .It Cm enable_scripts
726 When enabled the first instance of
728 will create a socket in the
731 Using the -n url option on subsequent
733 invocations will cause the specified URL to be loaded in a new tab.
734 Only a user with identical UID and GID can use this option.
736 Enables a backward, forward, and stop button to the toolbar.
739 is set it'll enable an entry box for searches.
743 will try to guess if the string you entered, in the URI entry widget or
744 the command widget, is term you want to search for using search_string
746 If the string does not contain a dot nor a slash, is not a
747 path to a local file and does not resolves to an IP then it is assumed
750 Homepage in URL format.
752 Proxy server in URL format.
756 if it is specified as an environment variable.
757 It must be noted that one MUST use an IP address and not a FQDN.
759 If one desires to use a socks proxy then an intermediary tool must be used.
760 It has been reported that tsocks works with
763 Permits icon sizes to be changed if
766 Size 1 is small; 2 is normal; 3 through 6 are progressively larger.
768 This is a Java Script whitelist item.
771 for semantics and more details.
773 Sets an action for a specific or default MIME type.
774 For example, to download and view a pdf using kpdf set mime_type =
775 application/pdf,kpdf.
776 To set a default value use *, for example mime_type = video/*,mplayer.
777 Note that the action is only passed the URL and not all applications are
778 capable of downloading content and therefore one might have to create a wrapper
779 script to download the content first.
780 .It Cm read_only_cookies
781 Mark cookies file read-only and discard all cookies once the session is
783 .It Cm refresh_interval
784 Refresh interval while in the download manager.
787 Directory that contains various
789 resources such as icons.
790 This is OS-specific and should be handled by the porter.
791 .It Cm save_global_history
792 If set the global history will be saved to
793 .Pa ~/.xxxterm/history
795 and restored at startup.
798 section above for how the global history is accessed.
799 Global history is not saved to disk by default.
800 .It Cm save_rejected_cookies
801 Saves rejected cookies in cookie format in {work_dir}/rejected.txt.
802 All cookies are saved and unlike a cookie jar they are never replaced.
803 Make sure there is enough disk space to enable this feature.
805 Default search engine string.
809 .It Cm session_autosave
810 Enable session auto-saving when changing state (e.g. adding or removing a tab).
811 The session name is what is currently in use and is described in the
816 .It Cm session_timeout
817 This value is the time that is added in seconds to a session cookie.
819 Enable or disable showing tabs.
821 Enable or disable showing the url and toolbar.
822 .It Cm show_statusbar
823 Enable or disable showing the status bar.
824 .It Cm single_instance
827 will be permitted to run.
828 If there is a URL specified it will be opened in a new tab in the already
833 If set to a valid PEM file
834 all server certificates will be validated against it.
835 The URL bar will be colored green when the certificate is trusted
836 and yellow when untrusted.
840 is not set then the URL bar will color all HTTPS connections red.
841 .It Cm ssl_strict_certs
842 If this value is set connections to untrusted sites will be aborted.
843 This value is only used if
847 Set to override the default
851 Set the default height of the browser window.
853 Set the default width of the browser window.
855 Set the work directory where all
857 scratch files are stored.
863 was inspired by vimprobable2 and the bloat in other
870 .An Marco Peereboom Aq marco@peereboom.us ,
871 .An Stevan Andjelkovic Aq stevan@student.chalmers.se ,
872 .An Edd Barrett Aq vext01@gmail.com ,
874 .An Todd T. Fries Aq todd@fries.net .
877 .Cm save_global_history
880 is supposed to, in addition to restoring the global history, color the
881 visited links accordingly; however due to bug #51747 in WebKit this does