7 A simple web browser using GTK+ 3, GLib and WebKit2GTK+.
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
18 - Cooperative instances using FIFOs
22 ==============================================
23 IMPORTANT: Current state of the WebKit2 branch
24 ==============================================
26 WebKit1 is essentially dead. Sooner or later, we have to jump to
29 http://blogs.igalia.com/carlosgc/2014/08/01/webkitgtk-2-5-1-good-bye-webkit1/
31 There's a number of issues on this branch:
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
36 - Java appears to work but Flash looks very broken. In fact, there's
37 a number of crashes of "WebKitPluginProcess2" when pages using
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
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
46 However, important issues of the original WebKit1 lariza have been
49 - Those pages that crash all WebKit1 browsers do work now.
50 - The "back" button works reliably.
57 "lariza" stems from a german sentence:
59 Alle anderen waren mir zu anstrengend.
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.
69 So, I wrote my own browser^W WebKit GUI. WebKit does all the dirty work.
72 ================================
73 What lariza is and what it's not
74 ================================
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.
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.
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.
94 lariza tries not to exceed 1000 lines of code.
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:
100 https://github.com/okraits/lariza/
103 ========================
104 Using lariza with tabbed
105 ========================
107 By default, lariza automatically launches an instance of suckless'
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.
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.
128 When the WebKit viewport is focused:
131 Close the current window.
134 Go to your "homepage". See the environment variable
141 Reload the current page.
144 Open the download manager.
147 Focus the location bar.
150 Focus the location bar and set its text to "/", allowing you
151 to easily initiate a search.
154 Repeat the last search (forward).
157 Repeat the last search (backward).
163 Open the link under the pointer in a new window.
165 Backward / forward (mouse keys 8 and 9)
168 Mod1 + Wheel up or Ctrl + Wheel up
169 Increase zoom level of the current page.
171 Mod1 + Wheel down or Ctrl + Wheel down
172 Decrase zoom level of the current page.
175 When the location bar is focused:
178 Close the current window.
181 Open the download manager.
184 Reload the current page.
187 Reset the content of the location bar to "/".
190 Reset the content of the location bar to the current URI.
193 "Commit", i.e. begin searching, do a keyword based search or
200 Close the download manager (downloads are not aborted).
203 ======================
204 Command line arguments
205 ======================
209 lariza [OPTION]... [URI]...
211 In addition to the standard arguments of GTK+ 2, lariza knows about the
215 Embeds the main window and all newly created windows in the
216 window specified by <wid>. The download manager is always a
220 Disables cooperative instances.
223 Disables automatic launching of suckless' tabbed.
225 After these options there can be any number of URIs. If no URIs are
226 given, $LARIZA_HOME_URI will be opened.
229 =====================
230 Environment variables
231 =====================
233 In addition to the standard variables of GTK+ 2, lariza knows about the
234 following environment variables:
236 LARIZA_ACCEPTED_LANGUAGE
237 In HTTP requests, WebKit sets the "Accepted-Language" header to
238 this value. Defaults to "en-US".
241 All downloads are automatically stored in this directory.
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"):
249 /var/run/user/$UID/lariza.fifo-$LARIZA_FIFO_SUFFIX
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.
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".
261 Lariza will identify itself with this string. Uses WebKit's
262 default value if unset.
265 Zoom level for WebKit viewports. Defaults to 1.0.
268 =======================
269 Keyword based searching
270 =======================
272 In this file, you can configure keywords and the associated URIs:
274 ~/.config/lariza/keywordsearch
276 Each line has to look like this:
278 wi https://en.wikipedia.org/w/index.php?title=Special:Search&search=%s
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.
284 Lines starting with "#" are ignored.
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.
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.
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.
310 I have explicitly not turned off the local storage feature in WebKit
311 because I don't know if this breaks web applications.
318 lariza needs the following Arch Linux packages:
321 - webkit2gtk (WebKit2 API for GTK+ 3)
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