3 .\" Copyright (c) 2010, 2011 Marco Peereboom <marco@peereboom.us>
4 .\" Copyright (c) 2011 Jason McIntyre <jmc@kerhand.co.uk>
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.
58 .It Fl s Ar session_name
59 Open session that was saved with ":session save" command.
61 Disable visualization of tabs.
65 Open a new tab in a running
67 for each specified URL.
72 Display version and exit.
75 The following notation is used throughout this page:
77 .Bl -tag -width Ds -offset indent -compact
81 Meta (sometimes marked Alt)
88 To browse to a specific address,
89 either use the mouse to click on the address bar
92 to shift the keyboard focus to the address bar.
93 The address is then entered manually.
95 The mouse can be used to navigate the page in the traditional manner,
96 or the keyboard can be used instead.
101 will scroll up and down the page.
104 either click on it or use the
108 assign numbers to each link on the page;
109 entering that number on the keyboard will prompt
114 provides many actions accessed via key or mouse bindings.
115 Note that WebKit & GTK+ have their own set of key bindings
116 that are not overruled and therefore are available as-is.
118 These commands are used to search for text strings within a web page.
120 .Bl -tag -width Ds -offset indent -compact
124 Start a backwards search
126 Next item matching search
128 Previous item matching search
131 These commands are used to shift the focus of
133 from one area to another.
135 .Bl -tag -width Ds -offset indent -compact
139 Focus on search entry
142 These commands allow the user to map specific actions to specific keys.
143 It can be useful when the
147 .Bl -tag -width Ds -offset indent -compact
151 Alias for ":open current-uri"
155 Alias for ":tabnew current-uri"
157 .Ss Navigation Commands
158 These commands allow the user to navigate web pages and,
162 .Bl -tag -width "Space, C-f, PageDownXXX" -offset indent -compact
166 Reload page without using any cached data
167 .It Cm Backspace, M-Left
169 .It Cm S-BackSpace, M-Right
174 Previous line on page
179 .It Cm Space, C-f, PageDown
202 Toggle Java Script enabled for FQDN.
206 Toggle cookie enabled for FQDN.
210 supports tabbed browsing.
211 That is, web pages may be opened in separate tabs,
212 allowing the user to quickly move from one page to another,
214 These commands then are used to create, destroy, and move between tabs.
216 .Bl -tag -width "C-plus, C-equalXXX" -offset indent -compact
218 Open new tab with the clicked link
220 Create new tab with focus in URL entry
226 Go to the previous tab
233 Shrink font size by one point
234 .It Cm C-plus, C-equal
235 Grow font size by one point
237 .Ss Yanking and pasting
238 These commands copy and paste text to and from the clipboard.
240 .Bl -tag -width Ds -offset indent -compact
242 Paste the contents of the clipboard into the address bar
244 Paste the contents of the clipboard into a new tab
246 Yank the current URL into the clipboard
248 .Ss Hyperlink Following
249 This allows the user to follow hyperlinks
250 without using a mouse.
251 Enter the corresponding number to follow the link.
252 Alternatively one can type the name of the link and when there are no more
255 will follow the link.
257 .Bl -tag -width Ds -offset indent -compact
259 Highlight all links and prefix them with a number.
262 Commands to exit the browser.
264 .Bl -tag -width Ds -offset indent -compact
269 Command mode works in a similar fashion to the
272 it is entered by typing a colon and exited by typing Esc.
273 The commands and their descriptions are listed below.
274 .Bl -tag -width Ds -offset indent
275 .It Cm about , version
276 Show the "About" page.
278 Display CA certificates.
279 .It Cm cert , cert show
280 Download and display certificates of domain on tab.
282 Save certificate into a local store.
283 The next time the site is visited it is compared against the store.
284 If the certificate matches,
285 the address bar will be blue;
286 if it doesn't the bar will be red.
290 command is used to manipulate the cookie whitelist.
291 Used by itself it expands to
292 .Cm cookie show all .
294 Show cookie jar contents.
295 .It Cm cookie save, cookie save fqdn
296 Save the current fully qualified domain name (FQDN)
297 to the persistent whitelist.
299 the www.peereboom.us domain would result in saving .www.peereboom.us.
300 .It Cm cookie save domain
301 Save the top level domain name to the persistent whitelist.
303 the www.peereboom.us domain would result in saving .peereboom.us.
305 This action enables cookies if it is currently disabled for this entry.
306 .It Cm cookie show all
307 Show all persistent and session entries in the cookie whitelist.
308 .It Cm cookie show persistent
309 Show all persistent entries in the cookie whitelist.
310 .It Cm cookie show session
311 Show all session entries in the cookie whitelist.
312 .It Cm cookie toggle domain
313 Toggle cookie support for the current top level domain.
314 .It Cm cookie toggle, cookie toggle fqdn
315 Toggle Java Script execution for the current FQDN.
317 Show download manager.
321 Add the current page to favorites.
322 .It Cm fullscreen , f
323 Toggle hiding tabs and url entry toolbar.
324 .It Cm h , hist , history
333 command is used to manipulate the Java Script whitelist.
334 Used by itself it expands to
336 .It Cm js save, save fqdn
337 Saves the FQDN to the persistent whitelist.
339 the www.peereboom.us domain would result in saving .www.peereboom.us.
340 .It Cm js save domain
341 Saves the top level domain name to the persistent whitelist.
343 the www.peereboom.us domain would result in saving .peereboom.us.
345 This action enables Java Script if it is currently disabled for this entry.
347 Shows all persistent and session entries in the JS whitelist.
348 .It Cm js show persistent
349 Shows all persistent entries in the JS whitelist.
350 .It Cm js show session
351 Shows all session entries in the JS whitelist.
352 .It Cm js toggle, js toggle fqdn
353 Toggle Java Script execution for the current FQDN.
354 .It Cm js toggle domain
355 Toggle Java Script execution for the current top level domain.
356 .It Cm open , op , o URL
364 Close current tab and quit
366 if it is the last tab.
370 and reload all current tabs.
371 .It Cm session , Cm session show
372 Display the current session name.
373 By default the session name is main_session.
374 To create a new session use the
377 A session is defined as the lifetime of the browser application.
378 .It Cm session delete <session_name>
379 Delete session session_name from persistent storage.
380 If session_name is the current session then the session will revert to
382 .It Cm session open <session_name>
383 Open session_name and close all currently open tabs.
384 Going forward this session is named session_name.
385 .It Cm session save <session_name>
386 Save current tabs to session_name session.
387 This will close the current session and going forward this session is named
390 Show blocked cookie statistics.
391 These statistics vary based on settings and are not persistent.
392 .It Cm tabclose , tabc
394 .It Cm tabhide , tabh
396 .It Cm tabnew , tabedit , tabe URL
397 Create new tab and optionally open provided URL.
398 .It Cm tabnext , tabn
400 .It Cm tabprevious , tabp
401 Go to the previous tab.
402 .It Cm tabshow , tabs
404 .It Cm urlhide , urlh
405 Hide url entry and tool bar.
406 .It Cm urlshow , urls
407 Show url entry and tool bar.
408 .It Cm statushide , statush
410 .It Cm statusshow , statuss
413 Save open tabs to current session.
414 The tabs will be restored next time
416 the session is opened.
417 See the session command for additional details.
419 Save open tabs and quit.
420 The tabs will be restored next time
422 the session is opened.
423 See the session command for additional details.
427 has a number of whitelists to control blocking cookies and Java Script
428 execution for FQDNs or domains.
429 When properly enabled these whitelists require either the FQDN or top level
430 domain to exist in the whitelists in order to allow cookies to be stored or
431 Java Script to execute.
432 Both Java Script and cookies have two whitelists associated with them.
433 The whitelists are called session and persistent.
434 Items in the session whitelists are only allowed for the lifetime of the
437 Items in the persistent whitelists are stored on disk and are restored
440 Setting up the whitelists is a little tricky due to intricacies of WebKit.
441 In fact the semantics are different for cookies and Java Script.
443 Cookie whitelist requires the following configuration to be set:
444 .Bl -tag -width "enable_cookie_whitelistXXX" -offset indent -compact
445 .It Cm cookies_enabled
446 This is a WebKit setting and must be set to
448 in order to be able to use a
450 .It Cm enable_cookie_whitelist
451 This needs to be set to
453 to enable the cookie whitelist functionality.
455 These entries in the configuration file are the actual domains names in the
459 Java Script whitelist requires the following configuration to be set:
460 .Bl -tag -width "enable_js_whitelistXXX" -offset indent -compact
461 .It Cm enable_scripts
462 This is a WebKit setting and must be set to
464 in order to be able to use a
465 Java Script whitelist.
466 .It Cm enable_js_whitelist
467 This needs to be set to
469 to enable the Java Script whitelist functionality.
471 These entries in the configuration file are the actual domains names in the
472 Java Script whitelist.
477 section for additional configuration file entries and details
478 that alter runtime behavior.
481 .Bl -tag -width "/etc/xxxterm.confXXX" -compact
482 .It Pa ~/.xxxterm.conf
484 user specific settings.
491 tries to open the user specific file,
492 .Pa ~/.xxxterm.conf .
493 If that file is unavailable,
494 it then uses built-in defaults.
496 The format of the file is \*(Ltkeyword\*(Gt = \*(Ltsetting\*(Gt.
499 .Dl http_proxy = http://127.0.0.1:8080
501 Enabling or disabling an option is done by using 1 or 0 respectively.
503 The file supports the following keywords:
505 .Bl -tag -width "enable_cookie_whitelistXXX" -offset indent -compact
507 Defines an alias for a given URL, so that the URL is loaded when the alias is
508 entered in the address bar.
509 If the aliased URL includes a %s format specifier, then any argument given after
510 the alias on the address bar is substituted.
511 For example, if g,http://www.google.com/search?q=%s is defined as an alias,
512 then the URL http://www.google.com/search?q=foo is loaded when navigating to
514 .It Cm allow_volatile_cookies
515 If set cookies are stored in the session cache but will be discarded once
518 Unfortunately enabling this does allow for some limited tracking on the web.
520 When set a new tab is appended after the current tab instead of being appended
525 browser has 2 default operating modes:
531 mode the browser allows all cookies and Java Script as any other browser
533 This means that all cookies are saved to persistent storage and that all
536 On the other hand, using the
538 mode enables whitelists.
539 This requires the user to add all the required
544 If a domain does not appear in the whitelists
546 disallows cookies and Java Script execution.
548 This setting must be the first entry in
550 because it sets advanced settings that can be overridden later in the file.
551 See the default config file for more details.
553 This field delineates the cookie policy.
554 Possible values are: no3rdparty, reject 3rd party cookies.
555 accept, accept all cookies.
556 reject, reject all cookies.
558 This is a cookie whitelist item.
559 Use multiple times to add multiple entries.
560 Valid entries are for example *.moo.com and the equivalent .moo.com.
561 A fully qualified host is also valid and is for example www.moo.com.
562 .It Cm cookies_enabled
564 .It Cm ctrl_click_focus
565 Give focus in newly created tab instead of opening it in the background.
566 .It Cm default_font_size
567 Set the default browsing font size.
569 Locations where files are downloaded to.
570 This directory must exist and
572 validates that during startup.
573 .It Cm enable_cookie_whitelist
574 When enabled all cookies must be in the whitelist or they are rejected.
575 .It Cm enable_js_whitelist
576 When enabled all domains must be in the js whitelist in order to run Java Script.
580 .It Cm enable_plugins
582 .It Cm enable_scripts
585 When enabled the first instance of
587 will create a socket in the
590 Using the -n url option on subsequent
592 invocations will cause the specified URL to be loaded in a new tab.
593 Only a user with identical UID and GID can use this option.
595 Enables a backward, forward, and stop button to the toolbar.
598 is set it'll enable an entry box for searches.
600 Homepage in URL format.
602 Proxy server in URL format.
606 if it is specified as an environment variable.
607 It must be noted that one MUST use an IP address and not a FQDN.
609 If one desires to use a socks proxy then an intermediary tool must be used.
610 It has been reported that tsocks works with
613 Permits icon sizes to be changed if
616 Size 1 is small; 2 is normal; 3 through 6 are progressively larger.
618 This is a Java Script whitelist item.
621 for semantics and more details.
623 Sets an action for a specific or default MIME type.
624 For example, to download and view a pdf using kpdf set mime_type =
625 application/pdf,kpdf.
626 To set a default value use *, for example mime_type = video/*,mplayer.
627 Note that the action is only passed the URL and not all applications are
628 capable of downloading content and therefore one might have to create a wrapper
629 script to download the content first.
630 .It Cm read_only_cookies
631 Mark cookies file read-only and discard all cookies once the session is
633 .It Cm refresh_interval
634 Refresh interval while in the download manager.
637 Directory that contains various
639 resources such as icons.
640 This is OS-specific and should be handled by the porter.
641 .It Cm save_global_history
642 If set the global history will be saved to
643 .Pa ~/.xxxterm/history
645 and restored at startup.
648 section above for how the global history is accessed.
649 Global history is not saved to disk by default.
650 .It Cm save_rejected_cookies
651 Saves rejected cookies in cookie format in {work_dir}/rejected.txt.
652 All cookies are saved and unlike a cookie jar they are never replaced.
653 Make sure there is enough disk space to enable this feature.
655 Default search engine string.
659 .It Cm session_autosave
660 Enable session auto-saving when changing state (e.g. adding or removing a tab).
661 The session name is what is currently in use and is described in the
666 .It Cm session_timeout
667 This value is the time that is added in seconds to a session cookie.
669 Enable or disable showing tabs.
671 Enable or disable showing the url and toolbar.
672 .It Cm show_statusbar
673 Enable or disable showing the status bar.
677 will try to guess if the string you entered, in the URI entry widget or
678 the command widget, is term you want to search for using search_string
679 (see above). If the string does not contain a dot nor a slash, is not a
680 path to a local file and does not resolves to an IP then it is assumed
682 .It Cm single_instance
685 will be permitted to run.
686 If there is a URL specified it will be opened in a new tab in the already
691 If set to a valid PEM file
692 all server certificates will be validated against it.
693 The URL bar will be colored green when the certificate is trusted
694 and yellow when untrusted.
698 is not set then the URL bar will color all HTTPS connections red.
699 .It Cm ssl_strict_certs
700 If this value is set connections to untrusted sites will be aborted.
701 This value is only used if
705 Set to override the default
709 Set the default height of the browser window.
711 Set the default width of the browser window.
715 was inspired by vimprobable2 and the bloat in other
722 .An Marco Peereboom Aq marco@peereboom.us ,
723 .An Stevan Andjelkovic Aq stevan@student.chalmers.se ,
724 .An Edd Barrett Aq vext01@gmail.com ,
726 .An Todd T. Fries Aq todd@fries.net .
729 .Cm save_global_history
732 is supposed to, in addition to restoring the global history, color the
733 visited links accordingly; however due to bug #51747 in WebKit this does