]> git.armaanb.net Git - chorizo.git/blob - README
Remove remaining stuff about "view source mode"
[chorizo.git] / README
1
2                                ==========
3                                  lariza
4                                ==========
5
6
7 A simple web browser using GTK+ 3, GLib and WebKit2GTK+.
8
9 Features:
10
11     - A WebKit2 viewport
12     - An input box to change the URI or to search the current page
13     - Built-in launching of suckless' tabbed
14     - Built-in download manager
15     - Optimized hotkeys: Left hand on keyboard, right hand on mouse
16     - Keyword based searching: Opening "wi foo" will search wikipedia
17     - Global content zoom
18     - Cooperative instances using FIFOs
19     - Support for Java
20
21
22 ==============================================
23 IMPORTANT: Current state of the WebKit2 branch
24 ==============================================
25
26 WebKit1 is essentially dead. Sooner or later, we have to jump to
27 WebKit2. See also:
28
29 http://blogs.igalia.com/carlosgc/2014/08/01/webkitgtk-2-5-1-good-bye-webkit1/
30
31 There's a number of issues on this branch:
32
33     - No adblock support. As stated in commit f1174ff, this has to be
34       implemented as a "WebKit2 web extension". Maybe do this in a
35       project of its own?
36     - Java appears to work but Flash looks very broken. In fact, there's
37       a number of crashes of "WebKitPluginProcess2" when pages using
38       Flash are opened.
39     - "View source" mode is not yet ported. This feature has been
40       removed from WebKit2, so we have to invent some way to re-create
41       this...
42     - There's an annoying border around the WebView widget.
43     - There may be a hell lot of other issues that I have not yet
44       encountered.
45
46 However, important issues of the original WebKit1 lariza have been
47 fixed:
48
49     - Those pages that crash all WebKit1 browsers do work now.
50     - The "back" button works reliably.
51
52
53 ==============
54 About the name
55 ==============
56
57 "lariza" stems from a german sentence:
58
59     Alle anderen waren mir zu anstrengend.
60      l   a         r    i  z  a
61
62 That phrase basically means: "It was too tiresome to deal with any other
63 browser." I couldn't find a simple browser that does just what I need.
64 Most of them are utterly bloated, others lack essential functions. Thus,
65 I was forced to write scripts and tools and stuff to deal with these
66 issues. That is what was tiresome. I don't want to work around bugs or
67 nonsensical behavior anymore.
68
69 So, I wrote my own browser^W WebKit GUI. WebKit does all the dirty work.
70
71
72 ================================
73 What lariza is and what it's not
74 ================================
75
76 lariza does what I need. It won't do other things. I'm open for pull
77 requests but please don't be upset if I turn them down -- which might
78 happen if it's a feature that I simply don't need.
79
80 Especially, it's very likely that lariza will never have a "follow
81 mode" like dwb, luakit or others have. I've used these browsers for
82 quite some time and I've also used Firefox extensions that add a "follow
83 mode". The point is, "follow mode" doesn't work anymore. This was a good
84 thing ten years ago. Today, a lot of websites make heavy use of
85 JavaScript or hovering. You NEED some kind of pointing device. I found
86 using "follow mode" to be very frustrating today, because you still have
87 to reach for the mouse all the time. So, you might as well just optimize
88 your mousing workflow.
89
90 lariza does not compete with powerful browsers like dwb or luakit, nor
91 with monstrous applications like Firefox or Chromium. lariza won't have
92 persistent storage, nor a plugin system, nor cloud sync, nor bookmarks.
93
94 lariza tries not to exceed 1000 lines of code.
95
96 That being said, this kind of minimalism is not for everyone. If you're
97 looking for more features (and a more open feature policy), then you
98 might want to check out okraits' fork:
99
100     https://github.com/okraits/lariza/
101
102
103 ========================
104 Using lariza with tabbed
105 ========================
106
107 By default, lariza automatically launches an instance of suckless'
108 tabbed.
109
110 You can turn this feature off (see command line arguments) or you can
111 specify a command line argument to embed lariza in an arbitrary
112 container (XEMBED). Note that lariza will also automatically embed new
113 windows in the same container.
114
115 When using the automatically launched tabbed instance, you can't use
116 tabbed's Ctrl + Shift + Return hotkey. This is because tabbed is
117 launched with "-d", so it knows nothing about lariza. However, lariza
118 provides its own hotkey to launch a new window which will be embedded in
119 the same instance of tabbed.
120
121
122 =======
123 Hotkeys
124 =======
125
126 Main windows
127
128     When the WebKit viewport is focused:
129
130         Mod1 + q
131             Close the current window.
132
133         Mod1 + w
134             Go to your "homepage". See the environment variable
135             $LARIZA_HOME_URI.
136
137         Mod1 + e
138             Open a new window.
139
140         Mod1 + r
141             Reload the current page.
142
143         Mod1 + d
144             Open the download manager.
145
146         Mod1 + l
147             Focus the location bar.
148
149         Mod1 + k
150             Focus the location bar and set its text to "/", allowing you
151             to easily initiate a search.
152
153         Mod1 + 2  or  Mod1 + n
154             Repeat the last search (forward).
155
156         Mod1 + 3
157             Repeat the last search (backward).
158
159         Escape
160             Stop loading.
161
162         Middle mouse
163             Open the link under the pointer in a new window.
164
165         Backward / forward (mouse keys 8 and 9)
166             Does the obvious.
167
168         Mod1 + Wheel up  or  Ctrl + Wheel up
169             Increase zoom level of the current page.
170
171         Mod1 + Wheel down  or  Ctrl + Wheel down
172             Decrase zoom level of the current page.
173
174
175     When the location bar is focused:
176
177         Mod1 + q
178             Close the current window.
179
180         Mod1 + d
181             Open the download manager.
182
183         Mod1 + r
184             Reload the current page.
185
186         Mod1 + k
187             Reset the content of the location bar to "/".
188
189         Escape
190             Reset the content of the location bar to the current URI.
191
192         Return
193             "Commit", i.e. begin searching, do a keyword based search or
194             open the URI.
195
196
197 Download manager
198
199     Mod1 + d
200         Close the download manager (downloads are not aborted).
201
202
203 ======================
204 Command line arguments
205 ======================
206
207 Usage:
208
209     lariza [OPTION]... [URI]...
210
211 In addition to the standard arguments of GTK+ 2, lariza knows about the
212 following options:
213
214     -e <wid>
215         Embeds the main window and all newly created windows in the
216         window specified by <wid>. The download manager is always a
217         "popup".
218
219     -C
220         Disables cooperative instances.
221
222     -T
223         Disables automatic launching of suckless' tabbed.
224
225 After these options there can be any number of URIs. If no URIs are
226 given, $LARIZA_HOME_URI will be opened.
227
228
229 =====================
230 Environment variables
231 =====================
232
233 In addition to the standard variables of GTK+ 2, lariza knows about the
234 following environment variables:
235
236     LARIZA_ACCEPTED_LANGUAGE
237         In HTTP requests, WebKit sets the "Accepted-Language" header to
238         this value. Defaults to "en-US".
239
240     LARIZA_DOWNLOAD_DIR
241         All downloads are automatically stored in this directory.
242         Defaults to "/tmp".
243
244     LARIZA_FIFO_SUFFIX
245         Cooperative instances are implemented using a named pipe in the
246         file system. The name of this pipe usually is (at least on
247         modern systems following XDG "standards"):
248
249             /var/run/user/$UID/lariza.fifo-$LARIZA_FIFO_SUFFIX
250
251         $UID is the id of your user. $LARIZA_FIFO_SUFFIX defaults to
252         "main". If you change this variable, you can launch several
253         independent cooperative instances of lariza.
254
255     LARIZA_HOME_URI
256         This URI will be opened by pressing the appropriate hotkeys
257         ("homepage" or "new window") and if no URIs are specified on the
258         command line. Defaults to "about:blank".
259
260     LARIZA_USER_AGENT
261         Lariza will identify itself with this string. Uses WebKit's
262         default value if unset.
263
264     LARIZA_ZOOM
265         Zoom level for WebKit viewports. Defaults to 1.0.
266
267
268 =======================
269 Keyword based searching
270 =======================
271
272 In this file, you can configure keywords and the associated URIs:
273
274     ~/.config/lariza/keywordsearch
275
276 Each line has to look like this:
277
278     wi https://en.wikipedia.org/w/index.php?title=Special:Search&search=%s
279
280 "wi" is the keyword, so when opening "wi foo", lariza will search in
281 Wikipedia. Note the "%s" at the end of the URI: This is where your
282 search term will be placed.
283
284 Lines starting with "#" are ignored.
285
286
287 ================
288 Download manager
289 ================
290
291 Open the download manager using the appropriate hotkey. A new window
292 listing your downloads will appear. Clicking on an item will remove it
293 from the list and -- if needed -- cancel the download.
294
295 There's no file manager integration (I don't use one), nor does lariza
296 delete, overwrite or resume downloads. If a file already exists, it
297 won't be touched. Instead, the new file name will have a suffix such as
298 ".1", ".2", ".3" and so on.
299
300
301 ====================
302 WebKit local storage
303 ====================
304
305 WebKit does create files in your $XDG_* directories, i.e. ~/.local/share
306 or ~/.cache. It's up to you what you want to do with this junk. I remove
307 it regularly when no WebKit browser is running. Another option would be
308 to change the $XDG_* variables.
309
310 I have explicitly not turned off the local storage feature in WebKit
311 because I don't know if this breaks web applications.
312
313
314 ============
315 Dependencies
316 ============
317
318 lariza needs the following Arch Linux packages:
319
320     - gtk3
321     - webkit2gtk (WebKit2 API for GTK+ 3)
322
323
324 ==========
325 Literature
326 ==========
327
328 API references:
329
330     - http://webkitgtk.org/reference/webkit2gtk/stable/index.html
331     - https://developer.gnome.org/gtk3/stable/index.html
332     - https://developer.gnome.org/glib/stable/index.html