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
19 - Support for Flash and Java
20 - Bundled web extensions:
24 ==============================================
25 IMPORTANT: Current state of the WebKit2 branch
26 ==============================================
28 WebKit1 is essentially dead. Sooner or later, we have to jump to
31 http://blogs.igalia.com/carlosgc/2014/08/01/webkitgtk-2-5-1-good-bye-webkit1/
33 There's a number of issues on this branch:
35 - "View source" mode is not yet ported. This feature has been
36 removed from WebKit2, so we have to invent some way to re-create
38 - There's an annoying border around the WebView widget.
39 - There may be a hell lot of other issues that I have not yet
42 However, important issues of the original WebKit1 lariza have been
45 - Those pages that crash all WebKit1 browsers do work now.
46 - The "back" button works reliably.
53 "lariza" stems from a german sentence:
55 Alle anderen waren mir zu anstrengend.
58 That phrase basically means: "It was too tiresome to deal with any other
59 browser." I couldn't find a simple browser that does just what I need.
60 Most of them are utterly bloated, others lack essential functions. Thus,
61 I was forced to write scripts and tools and stuff to deal with these
62 issues. That is what was tiresome. I don't want to work around bugs or
63 nonsensical behavior anymore.
65 So, I wrote my own browser^W WebKit GUI. WebKit does all the dirty work.
68 ================================
69 What lariza is and what it's not
70 ================================
72 lariza does what I need. It won't do other things. I'm open for pull
73 requests but please don't be upset if I turn them down -- which might
74 happen if it's a feature that I simply don't need.
76 Especially, it's very likely that lariza will never have a "follow
77 mode" like dwb, luakit or others have. I've used these browsers for
78 quite some time and I've also used Firefox extensions that add a "follow
79 mode". The point is, "follow mode" doesn't work anymore. This was a good
80 thing ten years ago. Today, a lot of websites make heavy use of
81 JavaScript or hovering. You NEED some kind of pointing device. I found
82 using "follow mode" to be very frustrating today, because you still have
83 to reach for the mouse all the time. So, you might as well just optimize
84 your mousing workflow.
86 lariza does not compete with powerful browsers like dwb or luakit, nor
87 with monstrous applications like Firefox or Chromium. lariza won't have
88 persistent storage, nor a plugin system, nor cloud sync, nor bookmarks.
90 lariza tries not to exceed 1000 lines of code.
92 That being said, this kind of minimalism is not for everyone. If you're
93 looking for more features (and a more open feature policy), then you
94 might want to check out okraits' fork:
96 https://github.com/okraits/lariza/
99 ========================
100 Using lariza with tabbed
101 ========================
103 By default, lariza automatically launches an instance of suckless'
106 You can turn this feature off (see command line arguments) or you can
107 specify a command line argument to embed lariza in an arbitrary
108 container (XEMBED). Note that lariza will also automatically embed new
109 windows in the same container.
111 When using the automatically launched tabbed instance, you can't use
112 tabbed's Ctrl + Shift + Return hotkey. This is because tabbed is
113 launched with "-d", so it knows nothing about lariza. However, lariza
114 provides its own hotkey to launch a new window which will be embedded in
115 the same instance of tabbed.
124 When the WebKit viewport is focused:
127 Close the current window.
130 Go to your "homepage". See the environment variable
137 Reload the current page.
140 Open the download manager.
143 Focus the location bar.
146 Focus the location bar and set its text to "/", allowing you
147 to easily initiate a search.
150 Repeat the last search (forward).
153 Repeat the last search (backward).
159 Open the link under the pointer in a new window.
161 Backward / forward (mouse keys 8 and 9)
164 Mod1 + Scroll up or Ctrl + Scroll up
165 Increase zoom level of the current page.
167 Mod1 + Scroll down or Ctrl + Scroll down
168 Decrase zoom level of the current page.
170 Mod1 + Scroll horizontally or Ctrl + Scroll horizontally
171 Reset zoom to $LARIZA_ZOOM.
174 When the location bar is focused:
177 Close the current window.
180 Open the download manager.
183 Reload the current page.
186 Reset the content of the location bar to "/".
189 Reset the content of the location bar to the current URI.
192 "Commit", i.e. begin searching, do a keyword based search or
199 Close the download manager (downloads are not aborted).
202 ======================
203 Command line arguments
204 ======================
208 lariza [OPTION]... [URI]...
210 In addition to the standard arguments of GTK+ 3, lariza knows about the
214 Embeds the main window and all newly created windows in the
215 window specified by <wid>. The download manager is always a
219 Disables cooperative instances.
222 Disables automatic launching of suckless' tabbed.
224 After these options there can be any number of URIs. If no URIs are
225 given, $LARIZA_HOME_URI will be opened.
228 =====================
229 Environment variables
230 =====================
232 In addition to the standard variables of GTK+ 3, lariza knows about the
233 following environment variables:
235 LARIZA_ACCEPTED_LANGUAGE
236 In HTTP requests, WebKit sets the "Accepted-Language" header to
237 this value. Defaults to "en-US".
240 All downloads are automatically stored in this directory.
244 Cooperative instances are implemented using a named pipe in the
245 file system. The name of this pipe usually is (at least on
246 modern systems following XDG "standards"):
248 /var/run/user/$UID/lariza.fifo-$LARIZA_FIFO_SUFFIX
250 $UID is the id of your user. $LARIZA_FIFO_SUFFIX defaults to
251 "main". If you change this variable, you can launch several
252 independent cooperative instances of lariza.
255 This URI will be opened by pressing the appropriate hotkeys
256 ("homepage" or "new window") and if no URIs are specified on the
257 command line. Defaults to "about:blank".
260 Lariza will identify itself with this string. Uses WebKit's
261 default value if unset.
263 LARIZA_WEB_EXTENSIONS_DIR
264 Sets the directory where WebKit will look for "web extensions".
265 Defaults to "~/.local/share/lariza/web_extensions".
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.
304 ======================
305 Bundled web extensions
306 ======================
308 On startup, WebKit checks ~/.local/share/lariza/web_extensions for any
309 .so files. See this blog post for further information on these
312 http://blogs.igalia.com/carlosgc/2013/09/10/webkit2gtk-web-process-extensions/
314 lariza comes with the following extensions:
318 Generic adblock. Reads patterns from the following file:
320 ~/.config/lariza/adblock.black
322 Each line can contain a regular expression. These expressions
323 match case-insensitive and partially, i.e. ".*foo.*" is the same
324 as ".*FOO.*" and you can use anchors like "^https?://...".
326 Lines starting with "#" are ignored.
328 Those bundled web extensions are automatically compiled when you run
329 make. To use them, though, make sure to copy them to the directory
337 WebKit does create files in your $XDG_* directories, i.e. ~/.local/share
338 or ~/.cache. It's up to you what you want to do with this junk. I remove
339 it regularly when no WebKit browser is running. Another option would be
340 to change the $XDG_* variables.
342 I have explicitly not turned off the local storage feature in WebKit
343 because I don't know if this breaks web applications.
350 lariza needs the following Arch Linux packages:
353 - webkit2gtk (WebKit2 API for GTK+ 3)
362 - http://webkitgtk.org/reference/webkit2gtk/stable/index.html
363 - https://developer.gnome.org/gtk3/stable/index.html
364 - https://developer.gnome.org/glib/stable/index.html
366 Regular expressions supported by GRegex, you can use these in your
369 - https://developer.gnome.org/glib/stable/glib-regex-syntax.html