]> git.armaanb.net Git - chorizo.git/blobdiff - README
Mod1 + d closes the download manager
[chorizo.git] / README
diff --git a/README b/README
index 7702fcc9c6303ced7775fe6d6c39927def082fcc..f89e5cdd8995cabc3993b8e9a58c1727890d22bc 100644 (file)
--- a/README
+++ b/README
-sn - sonst nix
-==============
 
-This is a minimalistic web browser using Gtk2 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+ 2, GLib and WebKitGTK+.
 
 Features:
 
-       - A WebKit viewport
-       - Global content zoom
-       - Pluggability into suckless' tabbed
-       - Support for Flash and Java
+    - A WebKit viewport
+    - An input box to change the URI or to search the current page
+    - Built-in launching of suckless' tabbed
+    - Built-in adblock
+    - 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
+    - View source mode
+    - Cooperative instances using FIFOs
+    - Support for Flash and Java
+
+
+==============
+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.
+
+
+========================
+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" which is the first URI specified on
+            the command line.
+
+        Mod1 + e
+            Open a new window.
+
+        Mod1 + s
+            Toggles "view source mode". This will display the web pages
+            source code. Note that the page will be reloaded (which is
+            annoying but WebKit enforces this).
+
+        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 + Wheel up  or  Ctrl + Wheel up
+            Increase zoom level of the current page.
+
+        Mod1 + Wheel down  or  Ctrl + Wheel down
+            Decrase zoom level of the current page.
+
+
+    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 "/".
 
-Planned features:
+        Escape
+            Reset the content of the location bar to the current URI.
 
-       - An input box to change the current URL
-       - vi-like shortcuts
-       - Adblock
+        Return
+            "Commit", i.e. begin searching, do a keyword based search or
+            open the URI.
 
 
-Using sn with tabbed
+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+ 2, 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".
+
+    -r
+        Print all navigation requests on STDERR.
+
+    -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, about:blank will be opened.
+
+
+=====================
+Environment variables
+=====================
+
+In addition to the standard variables of GTK+ 2, 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_ZOOM
+        Zoom level for WebKit viewports. Defaults to 1.0.
+
+
+=======
+Adblock
+=======
+
+lariza has built-in adblock functionality. In each line of
+
+    ~/.config/lariza/adblock.black
+
+you can store a regular expression. These expressions match
+case-insensitive and partially, i.e. ".*foo.*" is the same as ".*FOO.*"
+and you can use anchors like "^https?://...".
+
+Lines starting with "#" are ignored.
+
+
+=======================
+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
 ====================
 
-The order of arguments for sn doesn't matter. This means you can run it
-like this:
+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.
 
-       $ tabbed -c ./sn file:///home/hans/bookmarks.html -z 0.8 -e
 
-Each new tab will then show your bookmarks and is scaled by a factor of
-0.8.
+============
+Dependencies
+============
 
+lariza needs the following Arch Linux packages:
 
+    - gtk2
+    - webkitgtk2
+
+
+==========
 Literature
 ==========
 
 API references:
 
-       - http://webkitgtk.org/reference/webkitgtk/stable/index.html
-       - https://developer.gnome.org/gtk2/stable/index.html
+    - http://webkitgtk.org/reference/webkitgtk/stable/index.html
+    - https://developer.gnome.org/gtk2/stable/index.html
+    - https://developer.gnome.org/glib/stable/index.html
+
+Regular expressions supported by GRegex, you can use these in your
+adblock patterns:
+
+    - https://developer.gnome.org/glib/stable/glib-regex-syntax.html