Add bunch of icons
[xxxterm.git] / xxxterm.1
blob4d35e9d85900ac54e3358538e99ae376bebcaa78
1 .\"     $xxxterm$
2 .\"
3 .\" Copyright (c) 2010 Marco Peereboom <marco@peereboom.us>
4 .\"
5 .\" Permission to use, copy, modify, and distribute this software for any
6 .\" purpose with or without fee is hereby granted, provided that the above
7 .\" copyright notice and this permission notice appear in all copies.
8 .\"
9 .\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
10 .\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
11 .\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
12 .\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
13 .\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
14 .\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
15 .\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
16 .\"
17 .Dd $Mdocdate$
18 .Dt XXXTERM 1
19 .Os
20 .Sh NAME
21 .Nm xxxterm
22 .Nd lightweight web browser with vi key bindings
23 .Sh SYNOPSIS
24 .Nm xxxterm
25 .Bk -words
26 .Op Fl STtV
27 .Op Fl f Ar file
28 .Op Fl n
29 .Op Ar url ...
30 .Ek
31 .Sh DESCRIPTION
32 .Nm
33 is a minimalistic web browser that tries to stay out of the way so that
34 valuable screen real estate can be used for much more important stuff.
35 It has sane defaults and does not require one to learn a language to do any
36 configuration.
37 It was written by hackers for hackers and it strives to be small, compact and
38 fast.
39 .Pp
40 When
41 .Nm
42 starts up, it reads settings from its configuration file,
43 .Pa xxxterm.conf .
44 See the
45 .Sx CONFIGURATION FILES
46 section below.
47 .Pp
48 The following notation is used throughout this page:
49 .Pp
50 .Bl -tag -width Ds -offset indent -compact
51 .It Cm M
52 Meta
53 .It Cm S
54 Shift
55 .It Cm C
56 Control
57 .It Cm M1
58 Mouse button 1
59 .El
60 .Pp
61 .Nm
62 is very simple in its use.
63 Most of the actions are initiated via key or mouse bindings.
64 See the
65 .Sx BINDINGS
66 section below for defaults and customizations.
67 .Pp
68 The options are as follows:
69 .Bl -tag -width Ds
70 .It Fl f Ar file
71 Use alternate config file.
72 .It Fl S
73 Disable the toolbar.
74 .It Fl T
75 Disable visualization of tabs.
76 .It Fl t
77 Disable tabs.
78 .It Fl n
79 Open a new tab in a running
80 .Nm
81 for each specified url.
82 This option requires enable_socket to be enabled.
83 .It Fl V
84 Display version and exit.
85 .El
86 .Sh CONFIGURATION FILES
87 .Nm
88 tries to open the user specific file,
89 .Pa ~/.xxxterm.conf .
90 If that file is unavailable,
91 it then uses built-in defaults.
92 .Pp
93 The format of the file is \*(Ltkeyword\*(Gt = \*(Ltsetting\*(Gt.
94 For example:
95 .Pp
96 .Dl http_proxy = http://127.0.0.1:8080
97 .Pp
98 Enabling or disabling an option is done by using 1 or 0 respectively.
99 .Pp
100 The file supports the following keywords:
102 .Bl -tag -width "title_class_enabledXXX" -offset indent -compact
103 .It Cm ctrl_click_focus
104 Give focus in newly created tab instead of opening it in the background.
105 .It Cm read_only_cookies
106 Mark cookies file read-only and discard all cookies once the sessions is
107 terminated.
108 .It Cm append_next
109 When set a new tab is appended after the current tab instead of being appended
110 as the last tab.
111 .It Cm cookies_enabled
112 Enable cookies.
113 .It Cm allow_volatile_cookies
114 If set cookies are stored in the session cache but will be discarded once
116 exits.
117 Unfortunately enabling this does allow for some limited tracking on the web.
118 .It Cm enable_scripts
119 Enable scripts.
120 .It Cm enable_plugins
121 Enable plugins.
122 .It Cm default_font_size
123 Set the default browsing font size.
124 .It Cm http_proxy
125 Proxy server in URI format.
126 .It Cm download_dir
127 Locations where files are downloaded to.
128 This directory must exist and
130 validates that during startup.
131 .It Cm fancy_bar
132 Enables a backward, forward and stop button to the toolbar.
133 Additionally if search_string is set it'll enable an entry box for searches.
134 .It Cm refresh_interval
135 Refresh interval while in the download manager.
136 Default is 10.
137 .It Cm session_timeout
138 If this value is greater than 3600 then it is the time added in seconds to a
139 session cookie.  If the value is smaller than 3600 then there is no change
140 to the expiration of a session cookie.
141 .It Cm enable_cookie_white list
142 When enabled all cookies must be in the white list or they are rejected.
143 .It Cm cookie_wl
144 This is a cookie white list item.
145 Use multiple times to add multiple entries.
146 Valid entries are for example *.moo.com and the equivalent .moo.com.
147 A fully qualified host is also valid and is for example www.moo.com.
148 .It Cm cookie_policy
149 This field delineates the cookie policy.
150 Possible values are: no3rdparty, reject 3rd party cookies.
151 accept, accept all cookies.
152 reject, reject all cookies.
153 .It Cm enable_js_whitelist
154 When enabled all domains must be in the js white list in order to run javascript.
155 NOTE: Make sure enable_scripts is set to 0.
156 .It Cm js_wl
157 This is a javascript white list item.
158 See cookie_wl for semantics and more details.
159 .It Cm search_string
160 Default search engine string.
161 See xxxterm.conf file for details.
162 .It Cm mime_type
163 Sets an action for a specific or default MIME type.
164 For example, to download and view a pdf using kpdf set mime_type =
165 application/pdf,kpdf.
166 To set a default value use *, for example mime_type = video/*,mplayer.
167 Note that the action is only passed the URI and not all applications are
168 capable of downloading content and therefore one might have to create a wrapper
169 script to download the content first.
170 .It Cm alias
171 Defines an alias for a given URL, so that the URL is loaded when the alias is
172 entered in the address bar.
173 If the aliased URL includes a %s format specifier, then any argument given after
174 the alias on the address bar is substituted.
175 For example, if g,http://www.google.com/search?q=%s is defined as an alias,
176 then the URL http://www.google.com/search?q=foo is loaded when navigating to
177 "g foo".
178 .It Cm ssl_ca_file
179 If set to a valid PEM file all server certificates will be validated against it.
180 The URL bar will be colored green when the certificate is trusted and yellow when
181 untrusted.
183 If ssl_ca_file is not set then the URL bar will color all https connections red.
184 .It Cm ssl_strict_certs
185 If this value is set connections to untrusted sites will be aborted.
186 This value is only used if ssl_ca_file is set.
187 .It Cm enable_socket
188 When enabled the first instance of
190 will create a socket in the ~/.xxxterm directory.
191 Using the -n url option on subsequent
193 invocations will cause the specified url to be loaded in a new tab.
194 Only a user with identical UID and GID can use this option.
195 .It Cm resource_dir
196 Directory that contains various xxxterm resources such as icons.
197 This is OS specific and should be handled by the porter.
198 .It Cm single_instance
199 If set only one
201 will be permitted to run.
202 If there is a url specified it will be opened in a new tab in the already
203 running
205 session.
206 .It Cm runtime_settings
207 This setting points to a filename in the .xxxterm work directory that contains
208 runtime configuration entries.
209 This file is parsed as a normal configuration file and will override settings
210 since it is read at a later time.
211 One should only use this file to add js_wl, cookie_wl and mime_type entries.
212 This file is machine generated and should not be edited by hand.
216 overrides http_proxy if it is specified as an environment variable.
217 .Sh BINDINGS
219 provides many functions (or actions) accessed via key or mouse bindings.
221 The current mouse bindings are described below:
223 .Bl -tag -width "tabnew, tabedit, tabe [URI]" -offset indent -compact
224 .It Cm C-M1
225 Open new tab with the clicked link.
228 The default key bindings are described below.
230 Search:
232 .Bl -tag -width "tabnew, tabedit, tabe [URI]" -offset indent -compact
233 .It Cm /
234 Start a search
235 .It Cm ?
236 Start a backwards search
237 .It Cm n
238 Next item matching search
239 .It Cm N
240 Previous item matching search
243 Focus:
245 .Bl -tag -width "tabnew, tabedit, tabe [URI]" -offset indent -compact
246 .It Cm F6
247 Focus on URI entry
248 .It Cm F7
249 Focus on search entry
252 Command aliases (useful when -S flag is used):
254 .Bl -tag -width "tabnew, tabedit, tabe [URI]" -offset indent -compact
255 .It Cm F9
256 Alias for ":open" (See command descriptions below)
257 .It Cm F10
258 Alias for ":open <current-uri>"
259 .It Cm F11
260 Alias for ":tabnew"
261 .It Cm F12
262 Alias for ":tabnew <current-uri>"
265 Navigation:
267 .Bl -tag -width "tabnew, tabedit, tabe [URI]" -offset indent -compact
268 .It Cm F5, C-r, C-l
269 Refresh page
270 .It Cm Backspace
271 Previous page
272 .It Cm M-Left
273 Previous page
274 .It Cm S-BackSpace, M-Right
275 Forward page
276 .It Cm j, Down
277 Next line on page
278 .It Cm k, Up
279 Previous line on page
280 .It Cm G, End
281 Bottom of page
282 .It Cm gg, Home
283 Top of page
284 .It Cm Space, C-f, PageDown
285 Page down
286 .It Cm C-b, PageUp
287 Page up
288 .It Cm l, Right
289 Page right
290 .It Cm h, Left
291 Page left
292 .It Cm $
293 Page far right
294 .It Cm 0
295 Page far left
296 .It Cm M-f
297 Favorites
298 .It Cm M-d
299 Download manager
300 .It Cm C-p
301 Print page
302 .It Cm M-h
303 Global history
304 .It Cm C-j
305 Toggle javascript enabled for domain.
306 .It Cm C-s
307 Toggle source view.
310 Tab Manipulation:
312 .Bl -tag -width "tabnew, tabedit, tabe [URI]" -offset indent -compact
313 .It Cm C-T
314 Create new tab with focus in URI entry
315 .It Cm C-W
316 Destroy current tab
317 .It Cm U
318 Undo close tab
319 .It Cm C-Left
320 Go to the previous tab.
321 .It Cm C-Right
322 Go to the next tab.
323 .It Cm C-[1..0]
324 Jump to page N
325 .It Cm C-minus
326 Shrink font size by one point.
327 .It Cm C-plus, C-equal
328 Grow font size by one point.
331 Yanking and pasting:
333 .Bl -tag -width "tabnew, tabedit, tabe [URI]" -offset indent -compact
334 .It Cm y
335 Yank the current URI into the clipboard.
336 .It Cm p
337 Paste the contents of the clipboard into the address bar.
338 .It Cm P
339 Paste the contents of the clipboard into a new tab.
342 Mouse-less browsing (a.k.a. link following):
344 .Bl -tag -width "tabnew, tabedit, tabe [URI]" -offset indent -compact
345 .It Cm f
346 Highlight all links and prefix them with a number.
347 Press number to follow link.
348 Alternatively one can type the name of the link and when there are no more
349 possibilities
351 will follow the link.
354 Exiting:
356 .Bl -tag -width "tabnew, tabedit, tabe [URI]" -offset indent -compact
357 .It Cm C-Q
358 Quit
361 Note: WebKit & GTK+ have many default key bindings that are not overruled and
362 therefore are available as-is.
364 Command mode is entered by typing a colon and exited by typing Esc.
365 The commands and descriptions are listed below:
367 .Bl -tag -width "tabnew, tabedit, tabe [URI]" -offset indent -compact
368 .It Cm qa, qa!, q!
369 Quit
371 .It Cm w
372 Save open tabs.
373 The tabs will be restored next time
375 is started.
376 .It Cm restart
377 Restart
379 and reload all current tabs.
380 .It Cm wq, wq!
381 Save open tabs and quit.
382 The tabs will be restored next time
384 is started.
385 .It Cm fav
386 Show favorites
387 .It Cm favadd
388 Add current page to favorites
389 .It Cm jsadd
390 Add current page domain as a JavaScript white list entry to the runtime
391 configuration file.
392 This action will also enable JavaScript if it is currently disabled for this
393 domain.
394 .It Cm cookieadd
395 Add current page domain as a cookie white list entry to the runtime
396 configuration file.
397 This action will also allow cookies if it is currently disallowed for this
398 domain.
399 If there are volatile session cookies then those will be saved into the
400 persistent cookie jar.
401 .It Cm dl
402 Show download manager
403 .It Cm print
404 Print page
405 .It Cm h, hist, history
406 Global history
407 .It Cm help
408 Show help page.
409 .It Cm home
410 Go to home URL.
411 .It Cm about, version
412 Show about page.
413 .It Cm cookies
414 Show cookie jar contents.
415 .It Cm stats
416 Show blocked cookies statistics.
417 These statistics vary based on settings and are not persistent.
418 .It Cm open, op, o <URI>
419 Open URI.
420 .It Cm tabnew, tabedit, tabe [URI]
421 Create new tab and optionally open provided URI
422 .It Cm tabclose, tabc
423 Close current tab.
424 .It Cm quit, q
425 Close current tab and quit
427 if it is the last tab.
428 .It Cm tabprevious, tabp
429 Go to the previous tab.
430 .It Cm tabnext, tabn
431 Go to the next tab.
433 .Sh FILES
434 .Bl -tag -width "/etc/xxxterm.confXXX" -compact
435 .It Pa ~/.xxxterm.conf
437 user specific settings.
438 .It Pa ~/.xxxterm
440 scratch directory.
442 .Sh HISTORY
444 was inspired by vimprobable2 and the bloat in other UNIX web browsers.
445 .Sh AUTHORS
446 .An -nosplit
449 was written by
450 .An Marco Peereboom Aq marco@peereboom.us ,
452 .An Edd Barrett Aq vext01@gmail.com