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 + Scroll up or Ctrl + Scroll up
169 Increase zoom level of the current page.
171 Mod1 + Scroll down or Ctrl + Scroll down
172 Decrase zoom level of the current page.
174 Mod1 + Scroll horizontally or Ctrl + Scroll horizontally
175 Reset zoom to $LARIZA_ZOOM.
178 When the location bar is focused:
181 Close the current window.
184 Open the download manager.
187 Reload the current page.
190 Reset the content of the location bar to "/".
193 Reset the content of the location bar to the current URI.
196 "Commit", i.e. begin searching, do a keyword based search or
203 Close the download manager (downloads are not aborted).
206 ======================
207 Command line arguments
208 ======================
212 lariza [OPTION]... [URI]...
214 In addition to the standard arguments of GTK+ 2, lariza knows about the
218 Embeds the main window and all newly created windows in the
219 window specified by <wid>. The download manager is always a
223 Disables cooperative instances.
226 Disables automatic launching of suckless' tabbed.
228 After these options there can be any number of URIs. If no URIs are
229 given, $LARIZA_HOME_URI will be opened.
232 =====================
233 Environment variables
234 =====================
236 In addition to the standard variables of GTK+ 2, lariza knows about the
237 following environment variables:
239 LARIZA_ACCEPTED_LANGUAGE
240 In HTTP requests, WebKit sets the "Accepted-Language" header to
241 this value. Defaults to "en-US".
244 All downloads are automatically stored in this directory.
248 Cooperative instances are implemented using a named pipe in the
249 file system. The name of this pipe usually is (at least on
250 modern systems following XDG "standards"):
252 /var/run/user/$UID/lariza.fifo-$LARIZA_FIFO_SUFFIX
254 $UID is the id of your user. $LARIZA_FIFO_SUFFIX defaults to
255 "main". If you change this variable, you can launch several
256 independent cooperative instances of lariza.
259 This URI will be opened by pressing the appropriate hotkeys
260 ("homepage" or "new window") and if no URIs are specified on the
261 command line. Defaults to "about:blank".
264 Lariza will identify itself with this string. Uses WebKit's
265 default value if unset.
268 Zoom level for WebKit viewports. Defaults to 1.0.
271 =======================
272 Keyword based searching
273 =======================
275 In this file, you can configure keywords and the associated URIs:
277 ~/.config/lariza/keywordsearch
279 Each line has to look like this:
281 wi https://en.wikipedia.org/w/index.php?title=Special:Search&search=%s
283 "wi" is the keyword, so when opening "wi foo", lariza will search in
284 Wikipedia. Note the "%s" at the end of the URI: This is where your
285 search term will be placed.
287 Lines starting with "#" are ignored.
294 Open the download manager using the appropriate hotkey. A new window
295 listing your downloads will appear. Clicking on an item will remove it
296 from the list and -- if needed -- cancel the download.
298 There's no file manager integration (I don't use one), nor does lariza
299 delete, overwrite or resume downloads. If a file already exists, it
300 won't be touched. Instead, the new file name will have a suffix such as
301 ".1", ".2", ".3" and so on.
308 WebKit does create files in your $XDG_* directories, i.e. ~/.local/share
309 or ~/.cache. It's up to you what you want to do with this junk. I remove
310 it regularly when no WebKit browser is running. Another option would be
311 to change the $XDG_* variables.
313 I have explicitly not turned off the local storage feature in WebKit
314 because I don't know if this breaks web applications.
321 lariza needs the following Arch Linux packages:
324 - webkit2gtk (WebKit2 API for GTK+ 3)
333 - http://webkitgtk.org/reference/webkit2gtk/stable/index.html
334 - https://developer.gnome.org/gtk3/stable/index.html
335 - https://developer.gnome.org/glib/stable/index.html