]> git.armaanb.net Git - chorizo.git/blobdiff - README
README: Flash crashes gone since WebKit2 2.6.3
[chorizo.git] / README
diff --git a/README b/README
index 243f57e827197bbb95baf5333c21dac756fd8479..218e07fd1be363700aca58e6518b52d1f1556648 100644 (file)
--- a/README
+++ b/README
-sn - sonst nix
-==============
 
-This is a minimalistic web browser using Gtk3 and WebKit. "Sonst nix" is
-german and translates roughly to "nothing else". sn is simple and meant
-to stay simple.
+                               ==========
+                                 lariza
+                               ==========
+
+
+A simple web browser using GTK+ 3, GLib and WebKit2GTK+.
 
 Features:
 
-       - A WebKit viewport
-       - Global content zoom
+    - A WebKit2 viewport
+    - An input box to change the URI or to search the current page
+    - Built-in launching of suckless' tabbed
+    - Built-in download manager
+    - Optimized hotkeys: Left hand on keyboard, right hand on mouse
+    - Keyword based searching: Opening "wi foo" will search wikipedia
+    - Global content zoom
+    - Cooperative instances using FIFOs
+    - Support for Flash and Java
+
+
+==============================================
+IMPORTANT: Current state of the WebKit2 branch
+==============================================
+
+WebKit1 is essentially dead. Sooner or later, we have to jump to
+WebKit2. See also:
+
+http://blogs.igalia.com/carlosgc/2014/08/01/webkitgtk-2-5-1-good-bye-webkit1/
+
+There's a number of issues on this branch:
+
+    - No adblock support. As stated in commit f1174ff, this has to be
+      implemented as a "WebKit2 web extension". Maybe do this in a
+      project of its own?
+    - "View source" mode is not yet ported. This feature has been
+      removed from WebKit2, so we have to invent some way to re-create
+      this...
+    - There's an annoying border around the WebView widget.
+    - There may be a hell lot of other issues that I have not yet
+      encountered.
+
+However, important issues of the original WebKit1 lariza have been
+fixed:
+
+    - Those pages that crash all WebKit1 browsers do work now.
+    - The "back" button works reliably.
+
+
+==============
+About the name
+==============
+
+"lariza" stems from a german sentence:
+
+    Alle anderen waren mir zu anstrengend.
+     l   a         r    i  z  a
+
+That phrase basically means: "It was too tiresome to deal with any other
+browser." I couldn't find a simple browser that does just what I need.
+Most of them are utterly bloated, others lack essential functions. Thus,
+I was forced to write scripts and tools and stuff to deal with these
+issues. That is what was tiresome. I don't want to work around bugs or
+nonsensical behavior anymore.
+
+So, I wrote my own browser^W WebKit GUI. WebKit does all the dirty work.
+
+
+================================
+What lariza is and what it's not
+================================
+
+lariza does what I need. It won't do other things. I'm open for pull
+requests but please don't be upset if I turn them down -- which might
+happen if it's a feature that I simply don't need.
+
+Especially, it's very likely that lariza will never have a "follow
+mode" like dwb, luakit or others have. I've used these browsers for
+quite some time and I've also used Firefox extensions that add a "follow
+mode". The point is, "follow mode" doesn't work anymore. This was a good
+thing ten years ago. Today, a lot of websites make heavy use of
+JavaScript or hovering. You NEED some kind of pointing device. I found
+using "follow mode" to be very frustrating today, because you still have
+to reach for the mouse all the time. So, you might as well just optimize
+your mousing workflow.
+
+lariza does not compete with powerful browsers like dwb or luakit, nor
+with monstrous applications like Firefox or Chromium. lariza won't have
+persistent storage, nor a plugin system, nor cloud sync, nor bookmarks.
+
+lariza tries not to exceed 1000 lines of code.
+
+That being said, this kind of minimalism is not for everyone. If you're
+looking for more features (and a more open feature policy), then you
+might want to check out okraits' fork:
+
+    https://github.com/okraits/lariza/
+
+
+========================
+Using lariza with tabbed
+========================
+
+By default, lariza automatically launches an instance of suckless'
+tabbed.
+
+You can turn this feature off (see command line arguments) or you can
+specify a command line argument to embed lariza in an arbitrary
+container (XEMBED). Note that lariza will also automatically embed new
+windows in the same container.
+
+When using the automatically launched tabbed instance, you can't use
+tabbed's Ctrl + Shift + Return hotkey. This is because tabbed is
+launched with "-d", so it knows nothing about lariza. However, lariza
+provides its own hotkey to launch a new window which will be embedded in
+the same instance of tabbed.
+
+
+=======
+Hotkeys
+=======
+
+Main windows
+
+    When the WebKit viewport is focused:
+
+        Mod1 + q
+            Close the current window.
+
+        Mod1 + w
+            Go to your "homepage". See the environment variable
+            $LARIZA_HOME_URI.
+
+        Mod1 + e
+            Open a new window.
+
+        Mod1 + r
+            Reload the current page.
+
+        Mod1 + d
+            Open the download manager.
+
+        Mod1 + l
+            Focus the location bar.
+
+        Mod1 + k
+            Focus the location bar and set its text to "/", allowing you
+            to easily initiate a search.
+
+        Mod1 + 2  or  Mod1 + n
+            Repeat the last search (forward).
+
+        Mod1 + 3
+            Repeat the last search (backward).
+
+        Escape
+            Stop loading.
+
+        Middle mouse
+            Open the link under the pointer in a new window.
+
+        Backward / forward (mouse keys 8 and 9)
+            Does the obvious.
+
+        Mod1 + Scroll up  or  Ctrl + Scroll up
+            Increase zoom level of the current page.
+
+        Mod1 + Scroll down  or  Ctrl + Scroll down
+            Decrase zoom level of the current page.
+
+        Mod1 + Scroll horizontally  or  Ctrl + Scroll horizontally
+            Reset zoom to $LARIZA_ZOOM.
 
-Planned features:
 
-       - An input box to change the current URL
-       - vi-like shortcuts
-       - Adblock
-       - Pluggability into suckless' tabbed (preferred) or native tabs
+    When the location bar is focused:
 
+        Mod1 + q
+            Close the current window.
 
+        Mod1 + d
+            Open the download manager.
+
+        Mod1 + r
+            Reload the current page.
+
+        Mod1 + k
+            Reset the content of the location bar to "/".
+
+        Escape
+            Reset the content of the location bar to the current URI.
+
+        Return
+            "Commit", i.e. begin searching, do a keyword based search or
+            open the URI.
+
+
+Download manager
+
+    Mod1 + d
+        Close the download manager (downloads are not aborted).
+
+
+======================
+Command line arguments
+======================
+
+Usage:
+
+    lariza [OPTION]... [URI]...
+
+In addition to the standard arguments of GTK+ 3, lariza knows about the
+following options:
+
+    -e <wid>
+        Embeds the main window and all newly created windows in the
+        window specified by <wid>. The download manager is always a
+        "popup".
+
+    -C
+        Disables cooperative instances.
+
+    -T
+        Disables automatic launching of suckless' tabbed.
+
+After these options there can be any number of URIs. If no URIs are
+given, $LARIZA_HOME_URI will be opened.
+
+
+=====================
+Environment variables
+=====================
+
+In addition to the standard variables of GTK+ 3, lariza knows about the
+following environment variables:
+
+    LARIZA_ACCEPTED_LANGUAGE
+        In HTTP requests, WebKit sets the "Accepted-Language" header to
+        this value. Defaults to "en-US".
+
+    LARIZA_DOWNLOAD_DIR
+        All downloads are automatically stored in this directory.
+        Defaults to "/tmp".
+
+    LARIZA_FIFO_SUFFIX
+        Cooperative instances are implemented using a named pipe in the
+        file system. The name of this pipe usually is (at least on
+        modern systems following XDG "standards"):
+
+            /var/run/user/$UID/lariza.fifo-$LARIZA_FIFO_SUFFIX
+
+        $UID is the id of your user. $LARIZA_FIFO_SUFFIX defaults to
+        "main". If you change this variable, you can launch several
+        independent cooperative instances of lariza.
+
+    LARIZA_HOME_URI
+        This URI will be opened by pressing the appropriate hotkeys
+        ("homepage" or "new window") and if no URIs are specified on the
+        command line. Defaults to "about:blank".
+
+    LARIZA_USER_AGENT
+        Lariza will identify itself with this string. Uses WebKit's
+        default value if unset.
+
+    LARIZA_ZOOM
+        Zoom level for WebKit viewports. Defaults to 1.0.
+
+
+=======================
+Keyword based searching
+=======================
+
+In this file, you can configure keywords and the associated URIs:
+
+    ~/.config/lariza/keywordsearch
+
+Each line has to look like this:
+
+    wi https://en.wikipedia.org/w/index.php?title=Special:Search&search=%s
+
+"wi" is the keyword, so when opening "wi foo", lariza will search in
+Wikipedia. Note the "%s" at the end of the URI: This is where your
+search term will be placed.
+
+Lines starting with "#" are ignored.
+
+
+================
+Download manager
+================
+
+Open the download manager using the appropriate hotkey. A new window
+listing your downloads will appear. Clicking on an item will remove it
+from the list and -- if needed -- cancel the download.
+
+There's no file manager integration (I don't use one), nor does lariza
+delete, overwrite or resume downloads. If a file already exists, it
+won't be touched. Instead, the new file name will have a suffix such as
+".1", ".2", ".3" and so on.
+
+
+====================
+WebKit local storage
+====================
+
+WebKit does create files in your $XDG_* directories, i.e. ~/.local/share
+or ~/.cache. It's up to you what you want to do with this junk. I remove
+it regularly when no WebKit browser is running. Another option would be
+to change the $XDG_* variables.
+
+I have explicitly not turned off the local storage feature in WebKit
+because I don't know if this breaks web applications.
+
+
+============
+Dependencies
+============
+
+lariza needs the following Arch Linux packages:
+
+    - gtk3
+    - webkit2gtk (WebKit2 API for GTK+ 3)
+
+
+==========
 Literature
 ==========
 
 API references:
 
-       - http://webkitgtk.org/reference/webkitgtk/stable/index.html
-       - https://developer.gnome.org/gtk3/stable/index.html
+    - http://webkitgtk.org/reference/webkit2gtk/stable/index.html
+    - https://developer.gnome.org/gtk3/stable/index.html
+    - https://developer.gnome.org/glib/stable/index.html