summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorhut <hut@lavabit.com>2010-09-16 18:19:46 +0200
committerhut <hut@lavabit.com>2010-09-16 18:19:46 +0200
commit4341846741b6623a1ead43485cfd5cf633453bb6 (patch)
treefdfdd0b13329ad457ad9a6a0c0091019396ae64a
parent37a60686b340f030a2fc37e7ac9d19a701de9e6b (diff)
parent0c0849c3d8bf57a8b0d0bd9d6113639c58a28fd2 (diff)
downloadranger-4341846741b6623a1ead43485cfd5cf633453bb6.tar.gz
Merge branch 'master' into cp
Conflicts:
	ranger/__main__.py
	ranger/core/actions.py
-rw-r--r--CHANGELOG46
-rw-r--r--HACKING25
-rw-r--r--INSTALL46
-rw-r--r--Makefile68
-rw-r--r--README59
-rw-r--r--TODO7
-rwxr-xr-xall_benchmarks.py58
-rw-r--r--doc/colorschemes.txt4
-rwxr-xr-xdoc/print_colors.py2
-rwxr-xr-x[-rw-r--r--]doc/print_keys.py2
-rw-r--r--doc/pydoc/ranger.__main__.html71
-rw-r--r--doc/pydoc/ranger.colorschemes.default.html114
-rw-r--r--doc/pydoc/ranger.colorschemes.html26
-rw-r--r--doc/pydoc/ranger.colorschemes.jungle.html115
-rw-r--r--doc/pydoc/ranger.colorschemes.snow.html114
-rw-r--r--doc/pydoc/ranger.container.bookmarks.html123
-rw-r--r--doc/pydoc/ranger.container.history.html148
-rw-r--r--doc/pydoc/ranger.container.html27
-rw-r--r--doc/pydoc/ranger.container.keybuffer.html90
-rw-r--r--doc/pydoc/ranger.container.tags.html76
-rw-r--r--doc/pydoc/ranger.defaults.apps.html166
-rw-r--r--doc/pydoc/ranger.defaults.html25
-rw-r--r--doc/pydoc/ranger.defaults.options.html78
-rw-r--r--doc/pydoc/ranger.ext.accumulator.html74
-rw-r--r--doc/pydoc/ranger.ext.command_parser.html87
-rw-r--r--doc/pydoc/ranger.ext.html36
-rw-r--r--doc/pydoc/ranger.ext.human_readable.html52
-rw-r--r--doc/pydoc/ranger.ext.openstruct.html144
-rw-r--r--doc/pydoc/ranger.ext.shutil_generatorized.html252
-rw-r--r--doc/pydoc/ranger.ext.waitpid_no_intr.html45
-rw-r--r--doc/pydoc/ranger.fsobject.directory.html398
-rw-r--r--doc/pydoc/ranger.fsobject.file.html199
-rw-r--r--doc/pydoc/ranger.fsobject.fsobject.html221
-rw-r--r--doc/pydoc/ranger.fsobject.html110
-rw-r--r--doc/pydoc/ranger.fsobject.loader.html135
-rw-r--r--doc/pydoc/ranger.gui.bar.html235
-rw-r--r--doc/pydoc/ranger.gui.color.html62
-rw-r--r--doc/pydoc/ranger.gui.colorscheme.html121
-rw-r--r--doc/pydoc/ranger.gui.curses_shortcuts.html93
-rw-r--r--doc/pydoc/ranger.gui.defaultui.html187
-rw-r--r--doc/pydoc/ranger.gui.displayable.html294
-rw-r--r--doc/pydoc/ranger.gui.html31
-rw-r--r--doc/pydoc/ranger.gui.mouse_event.html84
-rw-r--r--doc/pydoc/ranger.gui.ui.html179
-rw-r--r--doc/pydoc/ranger.gui.widgets.browsercolumn.html193
-rw-r--r--doc/pydoc/ranger.gui.widgets.browserview.html154
-rw-r--r--doc/pydoc/ranger.gui.widgets.console.html1139
-rw-r--r--doc/pydoc/ranger.gui.widgets.console_mode.html50
-rw-r--r--doc/pydoc/ranger.gui.widgets.html145
-rw-r--r--doc/pydoc/ranger.gui.widgets.pager.html150
-rw-r--r--doc/pydoc/ranger.gui.widgets.statusbar.html216
-rw-r--r--doc/pydoc/ranger.gui.widgets.taskview.html152
-rw-r--r--doc/pydoc/ranger.gui.widgets.titlebar.html134
-rw-r--r--doc/pydoc/ranger.html75
-rw-r--r--doc/pydoc/ranger.shared.html107
-rw-r--r--doc/pydoc/ranger.shared.mimetype.html72
-rw-r--r--doc/pydoc/ranger.shared.settings.html130
-rw-r--r--doc/ranger.126
-rwxr-xr-xranger.py11
-rw-r--r--ranger/__init__.py7
-rw-r--r--ranger/__main__.py108
-rw-r--r--ranger/api/apps.py3
-rw-r--r--ranger/api/commands.py4
-rw-r--r--ranger/api/keys.py1
-rw-r--r--ranger/colorschemes/default88.py2
-rw-r--r--ranger/colorschemes/jungle.py1
-rw-r--r--ranger/colorschemes/texas.py2
-rw-r--r--ranger/container/bookmarks.py5
-rw-r--r--ranger/container/history.py114
-rw-r--r--ranger/core/actions.py154
-rw-r--r--ranger/core/environment.py8
-rw-r--r--ranger/core/runner.py19
-rw-r--r--ranger/defaults/apps.py51
-rw-r--r--ranger/defaults/commands.py190
-rw-r--r--ranger/defaults/keys.py70
-rw-r--r--ranger/defaults/options.py6
-rw-r--r--ranger/ext/direction.py2
-rw-r--r--ranger/ext/human_readable.py53
-rw-r--r--ranger/ext/lazy_property.py25
-rw-r--r--ranger/ext/relative_symlink.py (renamed from test/test.py)29
-rw-r--r--ranger/ext/shell_escape.py2
-rw-r--r--ranger/ext/utfwidth.py109
-rw-r--r--ranger/fsobject/directory.py54
-rw-r--r--ranger/fsobject/file.py58
-rw-r--r--ranger/fsobject/fsobject.py135
-rw-r--r--ranger/gui/bar.py4
-rw-r--r--ranger/gui/colorscheme.py6
-rw-r--r--ranger/gui/curses_shortcuts.py37
-rw-r--r--ranger/gui/defaultui.py4
-rw-r--r--ranger/gui/ui.py6
-rw-r--r--ranger/gui/widgets/browsercolumn.py107
-rw-r--r--ranger/gui/widgets/browserview.py13
-rw-r--r--ranger/gui/widgets/console.py476
-rw-r--r--ranger/gui/widgets/console_mode.py55
-rw-r--r--ranger/gui/widgets/statusbar.py16
-rw-r--r--ranger/gui/widgets/taskview.py3
-rw-r--r--ranger/gui/widgets/titlebar.py2
-rw-r--r--ranger/help/console.py188
-rw-r--r--ranger/help/fileop.py9
-rw-r--r--ranger/help/index.py4
-rw-r--r--ranger/help/invocation.py9
-rw-r--r--ranger/help/movement.py8
-rw-r--r--ranger/help/starting.py36
-rw-r--r--ranger/shared/mimetype.py3
-rw-r--r--ranger/shared/settings.py44
l---------scripts/ranger1
-rwxr-xr-xsetup.py43
-rwxr-xr-xtest/all_benchmarks.py56
-rwxr-xr-xtest/all_tests.py (renamed from all_tests.py)37
-rw-r--r--test/bm_human_readable.py51
-rw-r--r--test/bm_loader.py8
-rw-r--r--test/tc_bookmarks.py6
-rw-r--r--test/tc_colorscheme.py6
-rw-r--r--test/tc_direction.py6
-rw-r--r--test/tc_directory.py7
-rw-r--r--test/tc_displayable.py8
-rw-r--r--test/tc_ext.py7
-rw-r--r--test/tc_history.py33
-rw-r--r--test/tc_human_readable.py51
-rw-r--r--test/tc_keyapi.py6
-rw-r--r--test/tc_loader.py8
-rw-r--r--test/tc_newkeys.py13
-rw-r--r--test/tc_relative_symlink.py47
-rw-r--r--test/tc_signal.py7
-rw-r--r--test/tc_ui.py10
-rw-r--r--test/tc_utfwidth.py46
-rw-r--r--test/testlib.py (renamed from test/__init__.py)9
127 files changed, 1767 insertions, 8224 deletions
diff --git a/CHANGELOG b/CHANGELOG
new file mode 100644
index 00000000..f1417fee
--- /dev/null
+++ b/CHANGELOG
@@ -0,0 +1,46 @@
+This log only documents changes between stable versions.
+
+From 1.2 on, odd minor version numbers (1.3, 1.5, 1.7,..) are assigned to the
+fresh git snapshots while stable versions will have even minor numbers.
+
+1.1.2 -> 1.2:
+* !!! Changed the default configuration directory to ~/.config/ranger !!!
+* Removed "Console Modes", each old mode is now a simple command
+* Disabled file previews by default if ranger is used by root
+* Allow to jump to specific help sections by typing two numbers, e.g. 13?
+* Added keys: da, dr, ya, yr for adding and removing files from copy buffer
+* Added keys: gl and gL to resolve links, see 11?
+* Added key: pL to create a relative symlink
+* Added %<LETTER> and %<N><LETTER> macros for the console, see 33?
+* Fixed ansi codes for colors in the pager
+* Use the file ~/.mime.types for mime type detection
+* Several clean-ups and fixes
+
+1.1.1 -> 1.1.2:
+* Fix crash when using scrollwheel to scroll down in some cases
+* The command "ranger dir1 dir2 ..." opens multiple directories in tabs
+* Removed pydoc html documentation by default, re-create it with "make doc"
+* Minor fixes
+
+1.1.0 -> 1.1.1:
+* New install script, "setup.py"
+* New flag for running programs: "w" (waits for enter press)
+* Minor fixes
+
+1.0.4 -> 1.1.0:
+* Added a man page
+* Tab support
+* Improved directory loading performance
+* Commands are definable in ~/.ranger/commands.py
+* Case insensitive sorting (type zs)
+* Better UTF support
+* Possibility to turn off previews (zp and zP)
+* Changing options with :set (e.g. :set column_ratios=1,2,3,4)
+* Ask for confirmation when using :delete
+* New invocation flag: --fail-unless-cd
+* New hotkeys, commands, options.
+* New syntax for ~/.ranger/keys.py
+* Several user contributions
+* And tons of general improvements
+
+NOTE: The syntax for configuration is still subject to change.
diff --git a/HACKING b/HACKING
index b184150c..dd384758 100644
--- a/HACKING
+++ b/HACKING
@@ -10,6 +10,7 @@ Coding Style
     http://www.python.org/dev/peps/pep-0008/
 * Although this guide suggests otherwise, tabs are used for indentation
     of code and docstrings.  In other documents (readme, etc), use spaces.
+* Test the code with unit tests where it makes sense
 
 
 Patches
@@ -23,6 +24,20 @@ If you plan to do major changes, or many changes over time, I encourage
 you to create a fork on GitHub, Gitorious or any other site.
 
 
+Starting Points
+---------------
+
+Good places to read about ranger internals are:
+ranger/core/actions.py
+ranger/core/environment.py
+ranger/fsobject/fsobject.py
+
+About the UI:
+ranger/gui/widgets/browsercolumn.py
+ranger/gui/widgets/browserview.py
+ranger/gui/defaultui.py
+
+
 Common Changes
 --------------
 
@@ -41,12 +56,13 @@ assuming <self> is a "SettingsAware" object.
 
 * Changing commands, adding aliases:
 ranger/defaults/commands.py
+or ~/.config/ranger/commands.py
 
 * Adding colorschemes:
 Copy ranger/colorschemes/default.py to ranger/colorschemes/myscheme.py
 and modify it according to your needs.  Alternatively, mimic the jungle
 colorscheme.  It subclasses the default scheme and just modifies a few things.
-In ranger/defaults/options.py (or ~/.ranger/options.py), change
+In ranger/defaults/options.py (or ~/.config/ranger/options.py), change
     colorscheme = 'default'
 to: colorscheme = 'myscheme'
 
@@ -74,7 +90,6 @@ Version Numbering
 
 X.Y.Z, where:
 
-* X: Milestones
-* Y: Stable versions
-* Z: Experimental versions
-
+* X: Major version, milestone
+* Y: Minor version, even number => stable version
+* Z: Revision, may be omitted if zero
diff --git a/INSTALL b/INSTALL
index 5fc5ca6b..8ba89921 100644
--- a/INSTALL
+++ b/INSTALL
@@ -1,45 +1,23 @@
 Installing
 ==========
 
-You don't need to install anything.
+Use the package manager of your operating system to install ranger.
 
-You can run ranger by simply starting the executable file ranger.py
-in the top directory of this package.
-Use the --clean option and it will leave no trace whatsoever on your system.
+To install ranger manually, use either:
+sudo ./setup.py install --optimize=1 --record=install_log.txt
 
-
-If you insist on conventionally install it, use the package manager
-of your operating system.  If there is no package or it is out of date,
-you can also follow these instructions:
-
-
-Step by step
-============
-
-(This is all done automagically if you type `sudo make install',
-though you might want to read the Makefile first)
-
-0. Make sure you have a recent version of python, including the
-   curses module, which is the case if this shell command prints no errors:
-   python -c 'import curses'
-
-
-1. Copy the file "ranger.py" into any of the directories in the PATH
-   environment variable, for example to "/usr/bin/ranger"
-
-
-2. Copy the directory "ranger" into one of the python module search
-   paths, for example to "/usr/lib/python2.6/site-packages/ranger".
-
-   Ensure that the path is listed by the command:
-   python -c 'import sys; print("\n".join(sys.path))'
+or for short:
+sudo make install
 
 
 Uninstalling
 ============
 
-Use your package manager to uninstall ranger.  If you manually installed
-it, revert the steps described above.
+Again, use your package manager to uninstall ranger.  No other way for
+automatically removing ranger is supported!
+
+However, if you installed ranger with the command above, all installed files
+have been recorded to "install_log.txt".  This information can be used to remove
+ranger by hand, e.g.:
 
-Ranger can also create a configuration directory at ~/.ranger which
-you might want to remove as well.
+cat install_log.txt | sed s/\^/\\// | xargs -d "\n" sudo rm --
diff --git a/Makefile b/Makefile
index 1f75728c..fd525721 100644
--- a/Makefile
+++ b/Makefile
@@ -14,14 +14,15 @@
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 NAME = ranger
-VERSION = 1.0.4
-PYTHON ?= python
+VERSION = $(shell grep -m 1 -o '[0-9][0-9.]\+' README)
+SNAPSHOT_NAME ?= $(NAME)-$(VERSION)-$(shell git rev-parse HEAD | cut -b 1-8).tar.gz
+# Find suitable python version (need python >= 2.6 or 3.1):
+PYTHON ?= $(shell python -c 'import sys; sys.exit(sys.version < "2.6")' && \
+	which python || which python3.1 || which python3 || which python2.6)
+SETUPOPTS ?= '--record=install_log.txt'
 DOCDIR ?= doc/pydoc
-PREFIX ?= /usr
-MANPREFIX ?= /share/man
+DESTDIR ?= /
 PYOPTIMIZE ?= 1
-PYTHON_SITE_DEST ?= $(shell $(PYTHON) -c 'import sys; sys.stdout.write( \
-	[p for p in sys.path if "site" in p][0])' 2> /dev/null)
 BMCOUNT ?= 5  # how often to run the benchmarks?
 
 CWD = $(shell pwd)
@@ -34,79 +35,44 @@ options: help
 	@echo 'Options:'
 	@echo 'PYTHON = $(PYTHON)'
 	@echo 'PYOPTIMIZE = $(PYOPTIMIZE)'
-	@echo 'PYTHON_SITE_DEST = $(PYTHON_SITE_DEST)'
-	@echo 'PREFIX = $(PREFIX)'
-	@echo 'MANPREFIX = $(MANPREFIX)'
 	@echo 'DOCDIR = $(DOCDIR)'
 
 help:
-	@echo 'make: Compile $(NAME)'
+	@echo 'make install: Install $(NAME)'
 	@echo 'make doc: Create the pydoc documentation'
-	@echo 'make install: Install ranger'
 	@echo 'make clean: Remove the compiled files (*.pyc, *.pyo)'
 	@echo 'make cleandoc: Remove the pydoc documentation'
-	@echo 'make uninstall: Uninstall ranger'
 	@echo 'make snapshot: Create a tar.gz of the current git revision'
 	@echo 'make test: Run all unittests.'
 
-all: test compile install
-
 install:
-	@if [ '$(PYTHON_SITE_DEST)' == '' ]; then \
-		echo -n 'Cannot find a suitable destination for the files.'; \
-		echo '  Please install $(NAME) manually.'; \
-		false; \
-	fi
-	@echo "Installing $(NAME) version $(VERSION)..."
-	@mkdir -p $(PREFIX)/bin
-	cp -f ranger.py $(PREFIX)/bin/ranger
-	@mkdir -p $(PYTHON_SITE_DEST)
-	cp -fruT ranger $(PYTHON_SITE_DEST)/ranger
-	@chmod 755 $(PREFIX)/bin/ranger
-	@chmod -R +rX $(PYTHON_SITE_DEST)/ranger
-	@mkdir -p $(PREFIX)$(MANPREFIX)/man1
-	cp -f doc/ranger.1 $(PREFIX)$(MANPREFIX)/man1/ranger.1
-	@chmod 644 $(PREFIX)$(MANPREFIX)/man1/ranger.1
-
-uninstall:
-	rm -f $(PREFIX)/bin/ranger
-	rm -f '$(PREFIX)$(MANPREFIX)/man1/ranger.1'
-	@if [ '$(PYTHON_SITE_DEST)' == '' ]; then \
-		echo 'Cannot find a possible location of rangers library files'; \
-		false; \
-	fi
-	rm -rf '$(PYTHON_SITE_DEST)/ranger/*'
-	@echo 'NOTE: By default, configuration files are stored at "~/.ranger".'
-	@echo 'This script will not delete those.'
+	$(PYTHON) setup.py install $(SETUPOPTS) \
+		'--root=$(DESTDIR)' --optimize=$(PYOPTIMIZE)
 
 compile: clean
-	@echo 'Compiling...'
-	PYTHONOPTIMIZE=$(PYOPTIMIZE) python -m compileall -q ranger
+	PYTHONOPTIMIZE=$(PYOPTIMIZE) $(PYTHON) -m compileall -q ranger
 
 clean:
-	@echo 'Cleaning...'
 	find . -regex .\*.py[co]\$$ -exec rm -f -- {} \;
 
 doc: cleandoc
-	@echo 'Creating pydoc html documentation...'
 	mkdir -p $(DOCDIR)
 	cd $(DOCDIR); \
 		$(PYTHON) -c 'import pydoc, sys; \
 		sys.path[0] = "$(CWD)"; \
 		pydoc.writedocs("$(CWD)")'
+	find . -name \*.html -exec sed -i 's|'$(CWD)'|../..|g' -- {} \;
 
 cleandoc:
-	@echo 'Removing pydoc html documentation...'
-	test -d $(DOCDIR) && rm -f -- $(DOCDIR)/*.html
+	test -d $(DOCDIR) && rm -f -- $(DOCDIR)/*.html || true
 
 test:
-	@./all_tests.py 1
+	@$(PYTHON) test/all_tests.py 1
 
 bm:
-	@./all_benchmarks.py $(BMCOUNT)
+	@$(PYTHON) test/all_benchmarks.py $(BMCOUNT)
 
 snapshot:
-	git archive HEAD | gzip > $(NAME)-$(VERSION)-$(shell git rev-parse HEAD | cut -b 1-8).tar.gz
+	git archive --prefix='$(NAME)-$(VERSION)/' --format=tar HEAD | gzip > $(SNAPSHOT_NAME)
 
-.PHONY: default options all compile clean doc cleandoc test bm \
-	install uninstall snapshot
+.PHONY: default options compile clean doc cleandoc test bm snapshot install
diff --git a/README b/README
index 6e386635..5534a26a 100644
--- a/README
+++ b/README
@@ -1,11 +1,14 @@
-Ranger v.1.0.4
+Ranger v.1.3.0
 ==============
 
-Ranger is a console file manager with fast and straightforward navigation.
-By efficiently using the screen space, it gives you a broad overview of
-your file system.  Ranger's hotkeys are similar to those of other common
-unix programs such as VIM, Emacs and Midnight Commander, though it's
-controllable with Arrow Keys just fine.
+Ranger is a free console file manager that gives you greater flexibility
+and a good overview of your files without having to leave your *nix console.
+It visualizes the directory tree in two dimensions: the directory hierarchy
+on one, lists of files on the other, with a preview to the right so you know
+where you'll be going.
+
+The default keys are similar to those of Vim, Emacs and Midnight Commander,
+though Ranger is easily controllable with just the arrow keys or the mouse.
 
 The program is written in Python (2.6 or 3.1) and uses curses for the
 text-based user interface.
@@ -16,9 +19,7 @@ About
 
 * Author:          Roman Zimbelmann  <romanz@lavabit.com>
 * Website:         http://savannah.nongnu.org/projects/ranger
-* Dependencies:    Unix-like OS, Python 2.6 or 3.1
 * License:         GNU General Public License Version 3
-* Version:         1.0.4
 
 * Download URL of the newest stable version:
 http://git.savannah.gnu.org/cgit/ranger.git/snapshot/ranger-stable.tar.gz
@@ -27,6 +28,15 @@ http://git.savannah.gnu.org/cgit/ranger.git/snapshot/ranger-stable.tar.gz
 git clone http://git.sv.gnu.org/r/ranger.git
 
 
+Design Goals
+------------
+
+* An easily maintainable file manager in a high level language
+* A quick way to switch directories and browse the file system
+* Keep it small but useful, do one thing and do it well
+* Console based, with smooth integration into the unix shell
+
+
 Features
 --------
 
@@ -39,6 +49,17 @@ Features
 * Tabs, Bookmarks, Mouse support
 
 
+Dependencies
+------------
+
+* A *nix-like operating system
+* Python 2.6 or Python 3.1 with the curses module
+
+Optional:
+* The "file" program
+* A pager ("less" by default)
+
+
 Getting Started
 ---------------
 
@@ -54,10 +75,30 @@ parent directories and to the right there's a preview of the object you're
 pointing at.  Now use the Arrow Keys to navigate, Enter to open a file
 or type Q to quit.
 
-To customize ranger, copy the files from ranger/defaults/ to ~/.ranger/
+To customize ranger, copy the files from ranger/defaults/ to ~/.config/ranger/
 and modify them according to your wishes.
 
 
+Usage Tips
+----------
+
+The author of ranger uses this function (in ~/.bashrc) to start ranger:
+function ranger-cd {
+  before="$(pwd)"
+  python2.6 /the/path/to/ranger/ranger.py --fail-unless-cd "$@" || return 0
+  after="$(grep \^\' ~/.config/ranger/bookmarks | cut -b3-)"
+  if [[ "$before" != "$after" ]]; then
+    cd "$after"
+  fi
+}
+bind '"\C-o":"ranger-cd\C-m"'
+
+This changes the directory after you close ranger and adds the shortcut
+<CTRL-O> for starting ranger.
+
+To change back to the previous directory, you can type: cd -
+
+
 Troubleshooting, Getting Help
 -----------------------------
 
diff --git a/TODO b/TODO
index 84ecc811..1577f97a 100644
--- a/TODO
+++ b/TODO
@@ -51,7 +51,7 @@ General
    (X) #71  10/03/21  previews: black/whitelist + read file
    (X) #79  10/04/08  tab number zero
    ( ) #80  10/04/08  when closing tabs, avoid gaps?
-   ( ) #81  10/04/15  system crash when previewing /proc/kcore with root permissions
+   (X) #81  10/04/15  system crash when previewing /proc/kcore with root permissions
    (X) #83  10/04/19  better ways to mark files. eg by regexp, filetype,..
    ( ) #86  10/04/21  narg for move_parent
    ( ) #60  10/02/05  utf support improvable
@@ -84,9 +84,10 @@ Bugs
    (X) #74  10/03/21  console doesn't scroll
    (X) #78  10/03/31  broken preview when deleting all files in a directory
    (X) #85  10/04/26  no automatic reload of directory after using :filter
-   ( ) #87  10/05/10  files are not properly closed after previewing
+   (X) #87  10/05/10  files are not properly closed after previewing
    ( ) #88  10/05/10  race conditions for data loading from FS
    (X) #90  10/05/11  no link target for broken links
+   ( ) #94  10/05/26  "pressed keys" text cut off when chaining ctrl-XYZ keys
 
 
 Ideas
@@ -114,5 +115,5 @@ Ideas
 Blocking
 
    ( ) #60  10/02/05  utf support improvable
-   ( ) #81  10/04/15  system crash when previewing /proc/kcore with root permissions
+   (X) #81  10/04/15  system crash when previewing /proc/kcore with root permissions
 
diff --git a/all_benchmarks.py b/all_benchmarks.py
deleted file mode 100755
index 73316658..00000000
--- a/all_benchmarks.py
+++ /dev/null
@@ -1,58 +0,0 @@
-#!/usr/bin/python
-# Copyright (C) 2009, 2010  Roman Zimbelmann <romanz@lavabit.com>
-#
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-"""Run all the tests inside the test/ directory as a test suite."""
-if __name__ == '__main__':
-	from re import compile
-	from test import *
-	from time import time
-	from types import FunctionType as function
-	from sys import argv
-	bms = []
-	try:
-		n = int(argv[1])
-	except IndexError:
-		n = 10
-	if len(argv) > 2:
-		args = [compile(re) for re in argv[2:]]
-		def allow(name):
-			for re in args:
-				if re.search(name):
-					return True
-			else:
-				return False
-	else:
-		allow = lambda name: True
-	for key, val in vars().copy().items():
-		if key.startswith('bm_'):
-			bms.extend(v for k,v in vars(val).items() if type(v) == type)
-	for bmclass in bms:
-		for attrname in vars(bmclass):
-			if not attrname.startswith('bm_'):
-				continue
-			bmobj = bmclass()
-			t1 = time()
-			method = getattr(bmobj, attrname)
-			methodname = "{0}.{1}".format(bmobj.__class__.__name__, method.__name__)
-			if allow(methodname):
-				try:
-					method(n)
-				except:
-					print("{0} failed!".format(methodname))
-					raise
-				else:
-					t2 = time()
-					print("{0:60}: {1:10}s".format(methodname, t2 - t1))
diff --git a/doc/colorschemes.txt b/doc/colorschemes.txt
index 905c7a3e..e7bc2c0a 100644
--- a/doc/colorschemes.txt
+++ b/doc/colorschemes.txt
@@ -65,7 +65,7 @@ Specify a Colorscheme
 ---------------------
 
 Colorschemes are searched for in these directories:
-~/.ranger/colorschemes/
+~/.config/ranger/colorschemes/
 /ranger/colorschemes/
 
 To specify which colorscheme to use, define the variable "colorscheme"
@@ -73,7 +73,7 @@ in your options.py:
 colorscheme = colorschemes.default
 
 This means, use the (one) colorscheme contained in
-either ~/.ranger/colorschemes/default.py or /ranger/colorschemes/default.py.
+either ~/.config/ranger/colorschemes/default.py or /ranger/colorschemes/default.py.
 
 You can define more than one colorscheme in a colorscheme file.  The
 one named "Scheme" will be chosen in that case.  If there is no colorscheme
diff --git a/doc/print_colors.py b/doc/print_colors.py
index 7ffd6500..c3508fa6 100755
--- a/doc/print_colors.py
+++ b/doc/print_colors.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/env python
 """
 You can use this tool to display all supported colors and their color number.
 It will exit after a keypress.
diff --git a/doc/print_keys.py b/doc/print_keys.py
index 0790acab..f87a2a40 100644..100755
--- a/doc/print_keys.py
+++ b/doc/print_keys.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/env python
 """
 You can use this tool to find out values of keypresses
 """
diff --git a/doc/pydoc/ranger.__main__.html b/doc/pydoc/ranger.__main__.html
deleted file mode 100644
index 52cd201e..00000000
--- a/doc/pydoc/ranger.__main__.html
+++ /dev/null
@@ -1,71 +0,0 @@
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html><head><title>Python: module ranger.__main__</title>
-</head><body bgcolor="#f0f0f8">
-
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="heading">
-<tr bgcolor="#7799ee">
-<td valign=bottom>&nbsp;<br>
-<font color="#ffffff" face="helvetica, arial">&nbsp;<br><big><big><strong><a href="ranger.html"><font color="#ffffff">ranger</font></a>.__main__</strong></big></big> (version 1.0.4)</font></td
-><td align=right valign=bottom
-><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:/home/hut/ranger/ranger/__main__.py">/home/hut/ranger/ranger/__main__.py</a></font></td></tr></table>
-    <p><tt>#&nbsp;coding=utf-8<br>
-#<br>
-#&nbsp;Copyright&nbsp;(C)&nbsp;2009,&nbsp;2010&nbsp;&nbsp;Roman&nbsp;Zimbelmann&nbsp;&lt;romanz@lavabit.com&gt;<br>
-#<br>
-#&nbsp;This&nbsp;program&nbsp;is&nbsp;free&nbsp;software:&nbsp;you&nbsp;can&nbsp;redistribute&nbsp;it&nbsp;and/or&nbsp;modify<br>
-#&nbsp;it&nbsp;under&nbsp;the&nbsp;terms&nbsp;of&nbsp;the&nbsp;GNU&nbsp;General&nbsp;Public&nbsp;License&nbsp;as&nbsp;published&nbsp;by<br>
-#&nbsp;the&nbsp;Free&nbsp;Software&nbsp;Foundation,&nbsp;either&nbsp;version&nbsp;3&nbsp;of&nbsp;the&nbsp;License,&nbsp;or<br>
-#&nbsp;(at&nbsp;your&nbsp;option)&nbsp;any&nbsp;later&nbsp;version.<br>
-#<br>
-#&nbsp;This&nbsp;program&nbsp;is&nbsp;distributed&nbsp;in&nbsp;the&nbsp;hope&nbsp;that&nbsp;it&nbsp;will&nbsp;be&nbsp;useful,<br>
-#&nbsp;but&nbsp;WITHOUT&nbsp;ANY&nbsp;WARRANTY;&nbsp;without&nbsp;even&nbsp;the&nbsp;implied&nbsp;warranty&nbsp;of<br>
-#&nbsp;MERCHANTABILITY&nbsp;or&nbsp;FITNESS&nbsp;FOR&nbsp;A&nbsp;PARTICULAR&nbsp;PURPOSE.&nbsp;&nbsp;See&nbsp;the<br>
-#&nbsp;GNU&nbsp;General&nbsp;Public&nbsp;License&nbsp;for&nbsp;more&nbsp;details.<br>
-#<br>
-#&nbsp;You&nbsp;should&nbsp;have&nbsp;received&nbsp;a&nbsp;copy&nbsp;of&nbsp;the&nbsp;GNU&nbsp;General&nbsp;Public&nbsp;License<br>
-#&nbsp;along&nbsp;with&nbsp;this&nbsp;program.&nbsp;&nbsp;If&nbsp;not,&nbsp;see&nbsp;&lt;<a href="http://www.gnu.org/licenses/">http://www.gnu.org/licenses/</a>&gt;.</tt></p>
-<p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#aa55cc">
-<td colspan=3 valign=bottom>&nbsp;<br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Modules</strong></big></font></td></tr>
-    
-<tr><td bgcolor="#aa55cc"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
-<td width="100%"><table width="100%" summary="list"><tr><td width="25%" valign=top><a href="ranger.ext.curses_interrupt_handler.html">ranger.ext.curses_interrupt_handler</a><br>
-</td><td width="25%" valign=top><a href="os.html">os</a><br>
-</td><td width="25%" valign=top><a href="ranger.html">ranger</a><br>
-</td><td width="25%" valign=top><a href="sys.html">sys</a><br>
-</td></tr></table></td></tr></table><p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#eeaa77">
-<td colspan=3 valign=bottom>&nbsp;<br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Functions</strong></big></font></td></tr>
-    
-<tr><td bgcolor="#eeaa77"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
-<td width="100%"><dl><dt><a name="-load_settings"><strong>load_settings</strong></a>(fm, clean)</dt></dl>
- <dl><dt><a name="-main"><strong>main</strong></a>()</dt><dd><tt>initialize&nbsp;objects&nbsp;and&nbsp;run&nbsp;the&nbsp;filemanager</tt></dd></dl>
- <dl><dt><a name="-parse_arguments"><strong>parse_arguments</strong></a>()</dt><dd><tt>Parse&nbsp;the&nbsp;program&nbsp;arguments</tt></dd></dl>
- <dl><dt><a name="-signal"><strong>signal</strong></a>(...)</dt><dd><tt><a href="#-signal">signal</a>(sig,&nbsp;action)&nbsp;-&gt;&nbsp;action<br>
-&nbsp;<br>
-Set&nbsp;the&nbsp;action&nbsp;for&nbsp;the&nbsp;given&nbsp;signal.&nbsp;&nbsp;The&nbsp;action&nbsp;can&nbsp;be&nbsp;SIG_DFL,<br>
-SIG_IGN,&nbsp;or&nbsp;a&nbsp;callable&nbsp;Python&nbsp;object.&nbsp;&nbsp;The&nbsp;previous&nbsp;action&nbsp;is<br>
-returned.&nbsp;&nbsp;See&nbsp;getsignal()&nbsp;for&nbsp;possible&nbsp;return&nbsp;values.<br>
-&nbsp;<br>
-***&nbsp;IMPORTANT&nbsp;NOTICE&nbsp;***<br>
-A&nbsp;signal&nbsp;handler&nbsp;function&nbsp;is&nbsp;called&nbsp;with&nbsp;two&nbsp;arguments:<br>
-the&nbsp;first&nbsp;is&nbsp;the&nbsp;signal&nbsp;number,&nbsp;the&nbsp;second&nbsp;is&nbsp;the&nbsp;interrupted&nbsp;stack&nbsp;frame.</tt></dd></dl>
-</td></tr></table><p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#55aa55">
-<td colspan=3 valign=bottom>&nbsp;<br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Data</strong></big></font></td></tr>
-    
-<tr><td bgcolor="#55aa55"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
-<td width="100%"><strong>DEFAULT_CONFDIR</strong> = '~/.ranger'<br>
-<strong>LC_ALL</strong> = 6<br>
-<strong>SIGINT</strong> = 2<br>
-<strong>SUPPRESS_HELP</strong> = 'SUPPRESSHELP'<br>
-<strong>USAGE</strong> = '%prog [options] [path/filename]'<br>
-<strong>__version__</strong> = '1.0.4'</td></tr></table>
-</body></html>
\ No newline at end of file
diff --git a/doc/pydoc/ranger.colorschemes.default.html b/doc/pydoc/ranger.colorschemes.default.html
deleted file mode 100644
index 23173585..00000000
--- a/doc/pydoc/ranger.colorschemes.default.html
+++ /dev/null
@@ -1,114 +0,0 @@
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html><head><title>Python: module ranger.colorschemes.default</title>
-</head><body bgcolor="#f0f0f8">
-
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="heading">
-<tr bgcolor="#7799ee">
-<td valign=bottom>&nbsp;<br>
-<font color="#ffffff" face="helvetica, arial">&nbsp;<br><big><big><strong><a href="ranger.html"><font color="#ffffff">ranger</font></a>.<a href="ranger.colorschemes.html"><font color="#ffffff">colorschemes</font></a>.default</strong></big></big></font></td
-><td align=right valign=bottom
-><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:/home/hut/ranger/ranger/colorschemes/default.py">/home/hut/ranger/ranger/colorschemes/default.py</a></font></td></tr></table>
-    <p><tt>#&nbsp;Copyright&nbsp;(C)&nbsp;2009,&nbsp;2010&nbsp;&nbsp;Roman&nbsp;Zimbelmann&nbsp;&lt;romanz@lavabit.com&gt;<br>
-#<br>
-#&nbsp;This&nbsp;program&nbsp;is&nbsp;free&nbsp;software:&nbsp;you&nbsp;can&nbsp;redistribute&nbsp;it&nbsp;and/or&nbsp;modify<br>
-#&nbsp;it&nbsp;under&nbsp;the&nbsp;terms&nbsp;of&nbsp;the&nbsp;GNU&nbsp;General&nbsp;Public&nbsp;License&nbsp;as&nbsp;published&nbsp;by<br>
-#&nbsp;the&nbsp;Free&nbsp;Software&nbsp;Foundation,&nbsp;either&nbsp;version&nbsp;3&nbsp;of&nbsp;the&nbsp;License,&nbsp;or<br>
-#&nbsp;(at&nbsp;your&nbsp;option)&nbsp;any&nbsp;later&nbsp;version.<br>
-#<br>
-#&nbsp;This&nbsp;program&nbsp;is&nbsp;distributed&nbsp;in&nbsp;the&nbsp;hope&nbsp;that&nbsp;it&nbsp;will&nbsp;be&nbsp;useful,<br>
-#&nbsp;but&nbsp;WITHOUT&nbsp;ANY&nbsp;WARRANTY;&nbsp;without&nbsp;even&nbsp;the&nbsp;implied&nbsp;warranty&nbsp;of<br>
-#&nbsp;MERCHANTABILITY&nbsp;or&nbsp;FITNESS&nbsp;FOR&nbsp;A&nbsp;PARTICULAR&nbsp;PURPOSE.&nbsp;&nbsp;See&nbsp;the<br>
-#&nbsp;GNU&nbsp;General&nbsp;Public&nbsp;License&nbsp;for&nbsp;more&nbsp;details.<br>
-#<br>
-#&nbsp;You&nbsp;should&nbsp;have&nbsp;received&nbsp;a&nbsp;copy&nbsp;of&nbsp;the&nbsp;GNU&nbsp;General&nbsp;Public&nbsp;License<br>
-#&nbsp;along&nbsp;with&nbsp;this&nbsp;program.&nbsp;&nbsp;If&nbsp;not,&nbsp;see&nbsp;&lt;<a href="http://www.gnu.org/licenses/">http://www.gnu.org/licenses/</a>&gt;.</tt></p>
-<p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#aa55cc">
-<td colspan=3 valign=bottom>&nbsp;<br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Modules</strong></big></font></td></tr>
-    
-<tr><td bgcolor="#aa55cc"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
-<td width="100%"><table width="100%" summary="list"><tr><td width="25%" valign=top><a href="curses.html">curses</a><br>
-</td><td width="25%" valign=top></td><td width="25%" valign=top></td><td width="25%" valign=top></td></tr></table></td></tr></table><p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ee77aa">
-<td colspan=3 valign=bottom>&nbsp;<br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Classes</strong></big></font></td></tr>
-    
-<tr><td bgcolor="#ee77aa"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
-<td width="100%"><dl>
-<dt><font face="helvetica, arial"><a href="ranger.gui.colorscheme.html#ColorScheme">ranger.gui.colorscheme.ColorScheme</a>(<a href="ranger.shared.settings.html#SettingsAware">ranger.shared.settings.SettingsAware</a>)
-</font></dt><dd>
-<dl>
-<dt><font face="helvetica, arial"><a href="ranger.colorschemes.default.html#Default">Default</a>
-</font></dt></dl>
-</dd>
-</dl>
- <p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ffc8d8">
-<td colspan=3 valign=bottom>&nbsp;<br>
-<font color="#000000" face="helvetica, arial"><a name="Default">class <strong>Default</strong></a>(<a href="ranger.gui.colorscheme.html#ColorScheme">ranger.gui.colorscheme.ColorScheme</a>)</font></td></tr>
-    
-<tr><td bgcolor="#ffc8d8"><tt>&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
-<td width="100%"><dl><dt>Method resolution order:</dt>
-<dd><a href="ranger.colorschemes.default.html#Default">Default</a></dd>
-<dd><a href="ranger.gui.colorscheme.html#ColorScheme">ranger.gui.colorscheme.ColorScheme</a></dd>
-<dd><a href="ranger.shared.settings.html#SettingsAware">ranger.shared.settings.SettingsAware</a></dd>
-<dd><a href="__builtin__.html#object">__builtin__.object</a></dd>
-</dl>
-<hr>
-Methods defined here:<br>
-<dl><dt><a name="Default-use"><strong>use</strong></a>(self, context)</dt></dl>
-
-<hr>
-Methods inherited from <a href="ranger.gui.colorscheme.html#ColorScheme">ranger.gui.colorscheme.ColorScheme</a>:<br>
-<dl><dt><a name="Default-__init__"><strong>__init__</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="Default-get"><strong>get</strong></a>(self, *keys)</dt><dd><tt>Returns&nbsp;the&nbsp;(fg,&nbsp;bg,&nbsp;attr)&nbsp;for&nbsp;the&nbsp;given&nbsp;keys.<br>
-&nbsp;<br>
-Using&nbsp;this&nbsp;function&nbsp;rather&nbsp;than&nbsp;<a href="#Default-use">use</a>()&nbsp;will&nbsp;cache&nbsp;all<br>
-colors&nbsp;for&nbsp;faster&nbsp;access.</tt></dd></dl>
-
-<dl><dt><a name="Default-get_attr"><strong>get_attr</strong></a>(self, *keys)</dt><dd><tt>Returns&nbsp;the&nbsp;curses&nbsp;attribute&nbsp;for&nbsp;the&nbsp;specified&nbsp;keys<br>
-&nbsp;<br>
-Ready&nbsp;to&nbsp;use&nbsp;for&nbsp;curses.setattr()</tt></dd></dl>
-
-<hr>
-Data descriptors inherited from <a href="ranger.shared.settings.html#SettingsAware">ranger.shared.settings.SettingsAware</a>:<br>
-<dl><dt><strong>__dict__</strong></dt>
-<dd><tt>dictionary&nbsp;for&nbsp;instance&nbsp;variables&nbsp;(if&nbsp;defined)</tt></dd>
-</dl>
-<dl><dt><strong>__weakref__</strong></dt>
-<dd><tt>list&nbsp;of&nbsp;weak&nbsp;references&nbsp;to&nbsp;the&nbsp;object&nbsp;(if&nbsp;defined)</tt></dd>
-</dl>
-<hr>
-Data and other attributes inherited from <a href="ranger.shared.settings.html#SettingsAware">ranger.shared.settings.SettingsAware</a>:<br>
-<dl><dt><strong>settings</strong> = {}</dl>
-
-</td></tr></table></td></tr></table><p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#55aa55">
-<td colspan=3 valign=bottom>&nbsp;<br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Data</strong></big></font></td></tr>
-    
-<tr><td bgcolor="#55aa55"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
-<td width="100%"><strong>COLOR_PAIRS</strong> = {10: 0}<br>
-<strong>black</strong> = 0<br>
-<strong>blue</strong> = 4<br>
-<strong>bold</strong> = 2097152<br>
-<strong>cyan</strong> = 6<br>
-<strong>default</strong> = -1<br>
-<strong>default_colors</strong> = (-1, -1, 0)<br>
-<strong>green</strong> = 2<br>
-<strong>invisible</strong> = 8388608<br>
-<strong>magenta</strong> = 5<br>
-<strong>normal</strong> = 0<br>
-<strong>red</strong> = 1<br>
-<strong>reverse</strong> = 262144<br>
-<strong>underline</strong> = 131072<br>
-<strong>white</strong> = 7<br>
-<strong>yellow</strong> = 3</td></tr></table>
-</body></html>
\ No newline at end of file
diff --git a/doc/pydoc/ranger.colorschemes.html b/doc/pydoc/ranger.colorschemes.html
deleted file mode 100644
index 5dcb0f83..00000000
--- a/doc/pydoc/ranger.colorschemes.html
+++ /dev/null
@@ -1,26 +0,0 @@
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html><head><title>Python: package ranger.colorschemes</title>
-</head><body bgcolor="#f0f0f8">
-
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="heading">
-<tr bgcolor="#7799ee">
-<td valign=bottom>&nbsp;<br>
-<font color="#ffffff" face="helvetica, arial">&nbsp;<br><big><big><strong><a href="ranger.html"><font color="#ffffff">ranger</font></a>.colorschemes</strong></big></big></font></td
-><td align=right valign=bottom
-><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:/home/hut/ranger/ranger/colorschemes/__init__.py">/home/hut/ranger/ranger/colorschemes/__init__.py</a></font></td></tr></table>
-    <p><tt>Colorschemes&nbsp;are&nbsp;required&nbsp;to&nbsp;be&nbsp;located&nbsp;here&nbsp;or&nbsp;in&nbsp;CONFDIR/colorschemes/</tt></p>
-<p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#aa55cc">
-<td colspan=3 valign=bottom>&nbsp;<br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Package Contents</strong></big></font></td></tr>
-    
-<tr><td bgcolor="#aa55cc"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
-<td width="100%"><table width="100%" summary="list"><tr><td width="25%" valign=top><a href="ranger.colorschemes.default.html">default</a><br>
-<a href="ranger.colorschemes.default88.html">default88</a><br>
-</td><td width="25%" valign=top><a href="ranger.colorschemes.jungle.html">jungle</a><br>
-<a href="ranger.colorschemes.snow.html">snow</a><br>
-</td><td width="25%" valign=top><a href="ranger.colorschemes.texas.html">texas</a><br>
-</td><td width="25%" valign=top></td></tr></table></td></tr></table>
-</body></html>
\ No newline at end of file
diff --git a/doc/pydoc/ranger.colorschemes.jungle.html b/doc/pydoc/ranger.colorschemes.jungle.html
deleted file mode 100644
index c5a919a6..00000000
--- a/doc/pydoc/ranger.colorschemes.jungle.html
+++ /dev/null
@@ -1,115 +0,0 @@
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html><head><title>Python: module ranger.colorschemes.jungle</title>
-</head><body bgcolor="#f0f0f8">
-
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="heading">
-<tr bgcolor="#7799ee">
-<td valign=bottom>&nbsp;<br>
-<font color="#ffffff" face="helvetica, arial">&nbsp;<br><big><big><strong><a href="ranger.html"><font color="#ffffff">ranger</font></a>.<a href="ranger.colorschemes.html"><font color="#ffffff">colorschemes</font></a>.jungle</strong></big></big></font></td
-><td align=right valign=bottom
-><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:/home/hut/ranger/ranger/colorschemes/jungle.py">/home/hut/ranger/ranger/colorschemes/jungle.py</a></font></td></tr></table>
-    <p><tt>#&nbsp;Copyright&nbsp;(C)&nbsp;2009,&nbsp;2010&nbsp;&nbsp;Roman&nbsp;Zimbelmann&nbsp;&lt;romanz@lavabit.com&gt;<br>
-#<br>
-#&nbsp;This&nbsp;program&nbsp;is&nbsp;free&nbsp;software:&nbsp;you&nbsp;can&nbsp;redistribute&nbsp;it&nbsp;and/or&nbsp;modify<br>
-#&nbsp;it&nbsp;under&nbsp;the&nbsp;terms&nbsp;of&nbsp;the&nbsp;GNU&nbsp;General&nbsp;Public&nbsp;License&nbsp;as&nbsp;published&nbsp;by<br>
-#&nbsp;the&nbsp;Free&nbsp;Software&nbsp;Foundation,&nbsp;either&nbsp;version&nbsp;3&nbsp;of&nbsp;the&nbsp;License,&nbsp;or<br>
-#&nbsp;(at&nbsp;your&nbsp;option)&nbsp;any&nbsp;later&nbsp;version.<br>
-#<br>
-#&nbsp;This&nbsp;program&nbsp;is&nbsp;distributed&nbsp;in&nbsp;the&nbsp;hope&nbsp;that&nbsp;it&nbsp;will&nbsp;be&nbsp;useful,<br>
-#&nbsp;but&nbsp;WITHOUT&nbsp;ANY&nbsp;WARRANTY;&nbsp;without&nbsp;even&nbsp;the&nbsp;implied&nbsp;warranty&nbsp;of<br>
-#&nbsp;MERCHANTABILITY&nbsp;or&nbsp;FITNESS&nbsp;FOR&nbsp;A&nbsp;PARTICULAR&nbsp;PURPOSE.&nbsp;&nbsp;See&nbsp;the<br>
-#&nbsp;GNU&nbsp;General&nbsp;Public&nbsp;License&nbsp;for&nbsp;more&nbsp;details.<br>
-#<br>
-#&nbsp;You&nbsp;should&nbsp;have&nbsp;received&nbsp;a&nbsp;copy&nbsp;of&nbsp;the&nbsp;GNU&nbsp;General&nbsp;Public&nbsp;License<br>
-#&nbsp;along&nbsp;with&nbsp;this&nbsp;program.&nbsp;&nbsp;If&nbsp;not,&nbsp;see&nbsp;&lt;<a href="http://www.gnu.org/licenses/">http://www.gnu.org/licenses/</a>&gt;.</tt></p>
-<p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#aa55cc">
-<td colspan=3 valign=bottom>&nbsp;<br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Modules</strong></big></font></td></tr>
-    
-<tr><td bgcolor="#aa55cc"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
-<td width="100%"><table width="100%" summary="list"><tr><td width="25%" valign=top><a href="curses.html">curses</a><br>
-</td><td width="25%" valign=top></td><td width="25%" valign=top></td><td width="25%" valign=top></td></tr></table></td></tr></table><p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ee77aa">
-<td colspan=3 valign=bottom>&nbsp;<br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Classes</strong></big></font></td></tr>
-    
-<tr><td bgcolor="#ee77aa"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
-<td width="100%"><dl>
-<dt><font face="helvetica, arial"><a href="ranger.colorschemes.default.html#Default">ranger.colorschemes.default.Default</a>(<a href="ranger.gui.colorscheme.html#ColorScheme">ranger.gui.colorscheme.ColorScheme</a>)
-</font></dt><dd>
-<dl>
-<dt><font face="helvetica, arial"><a href="ranger.colorschemes.jungle.html#Scheme">Scheme</a>
-</font></dt></dl>
-</dd>
-</dl>
- <p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ffc8d8">
-<td colspan=3 valign=bottom>&nbsp;<br>
-<font color="#000000" face="helvetica, arial"><a name="Scheme">class <strong>Scheme</strong></a>(<a href="ranger.colorschemes.default.html#Default">ranger.colorschemes.default.Default</a>)</font></td></tr>
-    
-<tr><td bgcolor="#ffc8d8"><tt>&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
-<td width="100%"><dl><dt>Method resolution order:</dt>
-<dd><a href="ranger.colorschemes.jungle.html#Scheme">Scheme</a></dd>
-<dd><a href="ranger.colorschemes.default.html#Default">ranger.colorschemes.default.Default</a></dd>
-<dd><a href="ranger.gui.colorscheme.html#ColorScheme">ranger.gui.colorscheme.ColorScheme</a></dd>
-<dd><a href="ranger.shared.settings.html#SettingsAware">ranger.shared.settings.SettingsAware</a></dd>
-<dd><a href="__builtin__.html#object">__builtin__.object</a></dd>
-</dl>
-<hr>
-Methods defined here:<br>
-<dl><dt><a name="Scheme-use"><strong>use</strong></a>(self, context)</dt></dl>
-
-<hr>
-Methods inherited from <a href="ranger.gui.colorscheme.html#ColorScheme">ranger.gui.colorscheme.ColorScheme</a>:<br>
-<dl><dt><a name="Scheme-__init__"><strong>__init__</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="Scheme-get"><strong>get</strong></a>(self, *keys)</dt><dd><tt>Returns&nbsp;the&nbsp;(fg,&nbsp;bg,&nbsp;attr)&nbsp;for&nbsp;the&nbsp;given&nbsp;keys.<br>
-&nbsp;<br>
-Using&nbsp;this&nbsp;function&nbsp;rather&nbsp;than&nbsp;<a href="#Scheme-use">use</a>()&nbsp;will&nbsp;cache&nbsp;all<br>
-colors&nbsp;for&nbsp;faster&nbsp;access.</tt></dd></dl>
-
-<dl><dt><a name="Scheme-get_attr"><strong>get_attr</strong></a>(self, *keys)</dt><dd><tt>Returns&nbsp;the&nbsp;curses&nbsp;attribute&nbsp;for&nbsp;the&nbsp;specified&nbsp;keys<br>
-&nbsp;<br>
-Ready&nbsp;to&nbsp;use&nbsp;for&nbsp;curses.setattr()</tt></dd></dl>
-
-<hr>
-Data descriptors inherited from <a href="ranger.shared.settings.html#SettingsAware">ranger.shared.settings.SettingsAware</a>:<br>
-<dl><dt><strong>__dict__</strong></dt>
-<dd><tt>dictionary&nbsp;for&nbsp;instance&nbsp;variables&nbsp;(if&nbsp;defined)</tt></dd>
-</dl>
-<dl><dt><strong>__weakref__</strong></dt>
-<dd><tt>list&nbsp;of&nbsp;weak&nbsp;references&nbsp;to&nbsp;the&nbsp;object&nbsp;(if&nbsp;defined)</tt></dd>
-</dl>
-<hr>
-Data and other attributes inherited from <a href="ranger.shared.settings.html#SettingsAware">ranger.shared.settings.SettingsAware</a>:<br>
-<dl><dt><strong>settings</strong> = {}</dl>
-
-</td></tr></table></td></tr></table><p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#55aa55">
-<td colspan=3 valign=bottom>&nbsp;<br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Data</strong></big></font></td></tr>
-    
-<tr><td bgcolor="#55aa55"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
-<td width="100%"><strong>COLOR_PAIRS</strong> = {10: 0}<br>
-<strong>black</strong> = 0<br>
-<strong>blue</strong> = 4<br>
-<strong>bold</strong> = 2097152<br>
-<strong>cyan</strong> = 6<br>
-<strong>default</strong> = -1<br>
-<strong>default_colors</strong> = (-1, -1, 0)<br>
-<strong>green</strong> = 2<br>
-<strong>invisible</strong> = 8388608<br>
-<strong>magenta</strong> = 5<br>
-<strong>normal</strong> = 0<br>
-<strong>red</strong> = 1<br>
-<strong>reverse</strong> = 262144<br>
-<strong>underline</strong> = 131072<br>
-<strong>white</strong> = 7<br>
-<strong>yellow</strong> = 3</td></tr></table>
-</body></html>
\ No newline at end of file
diff --git a/doc/pydoc/ranger.colorschemes.snow.html b/doc/pydoc/ranger.colorschemes.snow.html
deleted file mode 100644
index 3d7b77b4..00000000
--- a/doc/pydoc/ranger.colorschemes.snow.html
+++ /dev/null
@@ -1,114 +0,0 @@
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html><head><title>Python: module ranger.colorschemes.snow</title>
-</head><body bgcolor="#f0f0f8">
-
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="heading">
-<tr bgcolor="#7799ee">
-<td valign=bottom>&nbsp;<br>
-<font color="#ffffff" face="helvetica, arial">&nbsp;<br><big><big><strong><a href="ranger.html"><font color="#ffffff">ranger</font></a>.<a href="ranger.colorschemes.html"><font color="#ffffff">colorschemes</font></a>.snow</strong></big></big></font></td
-><td align=right valign=bottom
-><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:/home/hut/ranger/ranger/colorschemes/snow.py">/home/hut/ranger/ranger/colorschemes/snow.py</a></font></td></tr></table>
-    <p><tt>#&nbsp;Copyright&nbsp;(C)&nbsp;2009,&nbsp;2010&nbsp;&nbsp;Roman&nbsp;Zimbelmann&nbsp;&lt;romanz@lavabit.com&gt;<br>
-#<br>
-#&nbsp;This&nbsp;program&nbsp;is&nbsp;free&nbsp;software:&nbsp;you&nbsp;can&nbsp;redistribute&nbsp;it&nbsp;and/or&nbsp;modify<br>
-#&nbsp;it&nbsp;under&nbsp;the&nbsp;terms&nbsp;of&nbsp;the&nbsp;GNU&nbsp;General&nbsp;Public&nbsp;License&nbsp;as&nbsp;published&nbsp;by<br>
-#&nbsp;the&nbsp;Free&nbsp;Software&nbsp;Foundation,&nbsp;either&nbsp;version&nbsp;3&nbsp;of&nbsp;the&nbsp;License,&nbsp;or<br>
-#&nbsp;(at&nbsp;your&nbsp;option)&nbsp;any&nbsp;later&nbsp;version.<br>
-#<br>
-#&nbsp;This&nbsp;program&nbsp;is&nbsp;distributed&nbsp;in&nbsp;the&nbsp;hope&nbsp;that&nbsp;it&nbsp;will&nbsp;be&nbsp;useful,<br>
-#&nbsp;but&nbsp;WITHOUT&nbsp;ANY&nbsp;WARRANTY;&nbsp;without&nbsp;even&nbsp;the&nbsp;implied&nbsp;warranty&nbsp;of<br>
-#&nbsp;MERCHANTABILITY&nbsp;or&nbsp;FITNESS&nbsp;FOR&nbsp;A&nbsp;PARTICULAR&nbsp;PURPOSE.&nbsp;&nbsp;See&nbsp;the<br>
-#&nbsp;GNU&nbsp;General&nbsp;Public&nbsp;License&nbsp;for&nbsp;more&nbsp;details.<br>
-#<br>
-#&nbsp;You&nbsp;should&nbsp;have&nbsp;received&nbsp;a&nbsp;copy&nbsp;of&nbsp;the&nbsp;GNU&nbsp;General&nbsp;Public&nbsp;License<br>
-#&nbsp;along&nbsp;with&nbsp;this&nbsp;program.&nbsp;&nbsp;If&nbsp;not,&nbsp;see&nbsp;&lt;<a href="http://www.gnu.org/licenses/">http://www.gnu.org/licenses/</a>&gt;.</tt></p>
-<p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#aa55cc">
-<td colspan=3 valign=bottom>&nbsp;<br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Modules</strong></big></font></td></tr>
-    
-<tr><td bgcolor="#aa55cc"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
-<td width="100%"><table width="100%" summary="list"><tr><td width="25%" valign=top><a href="curses.html">curses</a><br>
-</td><td width="25%" valign=top></td><td width="25%" valign=top></td><td width="25%" valign=top></td></tr></table></td></tr></table><p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ee77aa">
-<td colspan=3 valign=bottom>&nbsp;<br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Classes</strong></big></font></td></tr>
-    
-<tr><td bgcolor="#ee77aa"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
-<td width="100%"><dl>
-<dt><font face="helvetica, arial"><a href="ranger.gui.colorscheme.html#ColorScheme">ranger.gui.colorscheme.ColorScheme</a>(<a href="ranger.shared.settings.html#SettingsAware">ranger.shared.settings.SettingsAware</a>)
-</font></dt><dd>
-<dl>
-<dt><font face="helvetica, arial"><a href="ranger.colorschemes.snow.html#Snow">Snow</a>
-</font></dt></dl>
-</dd>
-</dl>
- <p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ffc8d8">
-<td colspan=3 valign=bottom>&nbsp;<br>
-<font color="#000000" face="helvetica, arial"><a name="Snow">class <strong>Snow</strong></a>(<a href="ranger.gui.colorscheme.html#ColorScheme">ranger.gui.colorscheme.ColorScheme</a>)</font></td></tr>
-    
-<tr><td bgcolor="#ffc8d8"><tt>&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
-<td width="100%"><dl><dt>Method resolution order:</dt>
-<dd><a href="ranger.colorschemes.snow.html#Snow">Snow</a></dd>
-<dd><a href="ranger.gui.colorscheme.html#ColorScheme">ranger.gui.colorscheme.ColorScheme</a></dd>
-<dd><a href="ranger.shared.settings.html#SettingsAware">ranger.shared.settings.SettingsAware</a></dd>
-<dd><a href="__builtin__.html#object">__builtin__.object</a></dd>
-</dl>
-<hr>
-Methods defined here:<br>
-<dl><dt><a name="Snow-use"><strong>use</strong></a>(self, context)</dt></dl>
-
-<hr>
-Methods inherited from <a href="ranger.gui.colorscheme.html#ColorScheme">ranger.gui.colorscheme.ColorScheme</a>:<br>
-<dl><dt><a name="Snow-__init__"><strong>__init__</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="Snow-get"><strong>get</strong></a>(self, *keys)</dt><dd><tt>Returns&nbsp;the&nbsp;(fg,&nbsp;bg,&nbsp;attr)&nbsp;for&nbsp;the&nbsp;given&nbsp;keys.<br>
-&nbsp;<br>
-Using&nbsp;this&nbsp;function&nbsp;rather&nbsp;than&nbsp;<a href="#Snow-use">use</a>()&nbsp;will&nbsp;cache&nbsp;all<br>
-colors&nbsp;for&nbsp;faster&nbsp;access.</tt></dd></dl>
-
-<dl><dt><a name="Snow-get_attr"><strong>get_attr</strong></a>(self, *keys)</dt><dd><tt>Returns&nbsp;the&nbsp;curses&nbsp;attribute&nbsp;for&nbsp;the&nbsp;specified&nbsp;keys<br>
-&nbsp;<br>
-Ready&nbsp;to&nbsp;use&nbsp;for&nbsp;curses.setattr()</tt></dd></dl>
-
-<hr>
-Data descriptors inherited from <a href="ranger.shared.settings.html#SettingsAware">ranger.shared.settings.SettingsAware</a>:<br>
-<dl><dt><strong>__dict__</strong></dt>
-<dd><tt>dictionary&nbsp;for&nbsp;instance&nbsp;variables&nbsp;(if&nbsp;defined)</tt></dd>
-</dl>
-<dl><dt><strong>__weakref__</strong></dt>
-<dd><tt>list&nbsp;of&nbsp;weak&nbsp;references&nbsp;to&nbsp;the&nbsp;object&nbsp;(if&nbsp;defined)</tt></dd>
-</dl>
-<hr>
-Data and other attributes inherited from <a href="ranger.shared.settings.html#SettingsAware">ranger.shared.settings.SettingsAware</a>:<br>
-<dl><dt><strong>settings</strong> = {}</dl>
-
-</td></tr></table></td></tr></table><p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#55aa55">
-<td colspan=3 valign=bottom>&nbsp;<br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Data</strong></big></font></td></tr>
-    
-<tr><td bgcolor="#55aa55"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
-<td width="100%"><strong>COLOR_PAIRS</strong> = {10: 0}<br>
-<strong>black</strong> = 0<br>
-<strong>blue</strong> = 4<br>
-<strong>bold</strong> = 2097152<br>
-<strong>cyan</strong> = 6<br>
-<strong>default</strong> = -1<br>
-<strong>default_colors</strong> = (-1, -1, 0)<br>
-<strong>green</strong> = 2<br>
-<strong>invisible</strong> = 8388608<br>
-<strong>magenta</strong> = 5<br>
-<strong>normal</strong> = 0<br>
-<strong>red</strong> = 1<br>
-<strong>reverse</strong> = 262144<br>
-<strong>underline</strong> = 131072<br>
-<strong>white</strong> = 7<br>
-<strong>yellow</strong> = 3</td></tr></table>
-</body></html>
\ No newline at end of file
diff --git a/doc/pydoc/ranger.container.bookmarks.html b/doc/pydoc/ranger.container.bookmarks.html
deleted file mode 100644
index 2868a5ae..00000000
--- a/doc/pydoc/ranger.container.bookmarks.html
+++ /dev/null
@@ -1,123 +0,0 @@
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html><head><title>Python: module ranger.container.bookmarks</title>
-</head><body bgcolor="#f0f0f8">
-
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="heading">
-<tr bgcolor="#7799ee">
-<td valign=bottom>&nbsp;<br>
-<font color="#ffffff" face="helvetica, arial">&nbsp;<br><big><big><strong><a href="ranger.html"><font color="#ffffff">ranger</font></a>.<a href="ranger.container.html"><font color="#ffffff">container</font></a>.bookmarks</strong></big></big></font></td
-><td align=right valign=bottom
-><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:/home/hut/ranger/ranger/container/bookmarks.py">/home/hut/ranger/ranger/container/bookmarks.py</a></font></td></tr></table>
-    <p><tt>#&nbsp;Copyright&nbsp;(C)&nbsp;2009,&nbsp;2010&nbsp;&nbsp;Roman&nbsp;Zimbelmann&nbsp;&lt;romanz@lavabit.com&gt;<br>
-#<br>
-#&nbsp;This&nbsp;program&nbsp;is&nbsp;free&nbsp;software:&nbsp;you&nbsp;can&nbsp;redistribute&nbsp;it&nbsp;and/or&nbsp;modify<br>
-#&nbsp;it&nbsp;under&nbsp;the&nbsp;terms&nbsp;of&nbsp;the&nbsp;GNU&nbsp;General&nbsp;Public&nbsp;License&nbsp;as&nbsp;published&nbsp;by<br>
-#&nbsp;the&nbsp;Free&nbsp;Software&nbsp;Foundation,&nbsp;either&nbsp;version&nbsp;3&nbsp;of&nbsp;the&nbsp;License,&nbsp;or<br>
-#&nbsp;(at&nbsp;your&nbsp;option)&nbsp;any&nbsp;later&nbsp;version.<br>
-#<br>
-#&nbsp;This&nbsp;program&nbsp;is&nbsp;distributed&nbsp;in&nbsp;the&nbsp;hope&nbsp;that&nbsp;it&nbsp;will&nbsp;be&nbsp;useful,<br>
-#&nbsp;but&nbsp;WITHOUT&nbsp;ANY&nbsp;WARRANTY;&nbsp;without&nbsp;even&nbsp;the&nbsp;implied&nbsp;warranty&nbsp;of<br>
-#&nbsp;MERCHANTABILITY&nbsp;or&nbsp;FITNESS&nbsp;FOR&nbsp;A&nbsp;PARTICULAR&nbsp;PURPOSE.&nbsp;&nbsp;See&nbsp;the<br>
-#&nbsp;GNU&nbsp;General&nbsp;Public&nbsp;License&nbsp;for&nbsp;more&nbsp;details.<br>
-#<br>
-#&nbsp;You&nbsp;should&nbsp;have&nbsp;received&nbsp;a&nbsp;copy&nbsp;of&nbsp;the&nbsp;GNU&nbsp;General&nbsp;Public&nbsp;License<br>
-#&nbsp;along&nbsp;with&nbsp;this&nbsp;program.&nbsp;&nbsp;If&nbsp;not,&nbsp;see&nbsp;&lt;<a href="http://www.gnu.org/licenses/">http://www.gnu.org/licenses/</a>&gt;.</tt></p>
-<p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#aa55cc">
-<td colspan=3 valign=bottom>&nbsp;<br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Modules</strong></big></font></td></tr>
-    
-<tr><td bgcolor="#aa55cc"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
-<td width="100%"><table width="100%" summary="list"><tr><td width="25%" valign=top><a href="os.html">os</a><br>
-</td><td width="25%" valign=top><a href="re.html">re</a><br>
-</td><td width="25%" valign=top><a href="string.html">string</a><br>
-</td><td width="25%" valign=top></td></tr></table></td></tr></table><p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ee77aa">
-<td colspan=3 valign=bottom>&nbsp;<br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Classes</strong></big></font></td></tr>
-    
-<tr><td bgcolor="#ee77aa"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
-<td width="100%"><dl>
-<dt><font face="helvetica, arial"><a href="__builtin__.html#object">__builtin__.object</a>
-</font></dt><dd>
-<dl>
-<dt><font face="helvetica, arial"><a href="ranger.container.bookmarks.html#Bookmarks">Bookmarks</a>
-</font></dt></dl>
-</dd>
-</dl>
- <p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ffc8d8">
-<td colspan=3 valign=bottom>&nbsp;<br>
-<font color="#000000" face="helvetica, arial"><a name="Bookmarks">class <strong>Bookmarks</strong></a>(<a href="__builtin__.html#object">__builtin__.object</a>)</font></td></tr>
-    
-<tr bgcolor="#ffc8d8"><td rowspan=2><tt>&nbsp;&nbsp;&nbsp;</tt></td>
-<td colspan=2><tt><a href="#Bookmarks">Bookmarks</a>&nbsp;is&nbsp;a&nbsp;container&nbsp;which&nbsp;associates&nbsp;keys&nbsp;with&nbsp;bookmarks.<br>
-&nbsp;<br>
-A&nbsp;key&nbsp;is&nbsp;a&nbsp;string&nbsp;with:&nbsp;len(key)&nbsp;==&nbsp;1&nbsp;and&nbsp;key&nbsp;in&nbsp;ALLOWED_KEYS.<br>
-&nbsp;<br>
-A&nbsp;bookmark&nbsp;is&nbsp;an&nbsp;<a href="__builtin__.html#object">object</a>&nbsp;with:&nbsp;bookmark&nbsp;==&nbsp;bookmarktype(str(instance))<br>
-Which&nbsp;is&nbsp;true&nbsp;for&nbsp;str&nbsp;or&nbsp;FileSystemObject.&nbsp;This&nbsp;condition&nbsp;is&nbsp;required<br>
-so&nbsp;bookmark-objects&nbsp;can&nbsp;be&nbsp;saved&nbsp;to&nbsp;and&nbsp;loaded&nbsp;from&nbsp;a&nbsp;file.<br>
-&nbsp;<br>
-Optionally,&nbsp;a&nbsp;bookmark.go()&nbsp;method&nbsp;is&nbsp;used&nbsp;for&nbsp;entering&nbsp;a&nbsp;bookmark.<br>&nbsp;</tt></td></tr>
-<tr><td>&nbsp;</td>
-<td width="100%">Methods defined here:<br>
-<dl><dt><a name="Bookmarks-__contains__"><strong>__contains__</strong></a>(self, key)</dt><dd><tt>Test&nbsp;whether&nbsp;a&nbsp;bookmark-key&nbsp;is&nbsp;defined</tt></dd></dl>
-
-<dl><dt><a name="Bookmarks-__getitem__"><strong>__getitem__</strong></a>(self, key)</dt><dd><tt>Get&nbsp;the&nbsp;bookmark&nbsp;associated&nbsp;with&nbsp;the&nbsp;key</tt></dd></dl>
-
-<dl><dt><a name="Bookmarks-__init__"><strong>__init__</strong></a>(self, bookmarkfile, bookmarktype<font color="#909090">=&lt;type 'str'&gt;</font>, autosave<font color="#909090">=False</font>)</dt><dd><tt>&lt;bookmarkfile&gt;&nbsp;specifies&nbsp;the&nbsp;path&nbsp;to&nbsp;the&nbsp;file&nbsp;where<br>
-bookmarks&nbsp;are&nbsp;saved&nbsp;in.</tt></dd></dl>
-
-<dl><dt><a name="Bookmarks-__iter__"><strong>__iter__</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="Bookmarks-__setitem__"><strong>__setitem__</strong></a>(self, key, value)</dt><dd><tt>Bookmark&nbsp;&lt;value&gt;&nbsp;to&nbsp;the&nbsp;key&nbsp;&lt;key&gt;.<br>
-key&nbsp;is&nbsp;expected&nbsp;to&nbsp;be&nbsp;a&nbsp;1-character&nbsp;string&nbsp;and&nbsp;element&nbsp;of&nbsp;ALLOWED_KEYS.<br>
-value&nbsp;is&nbsp;expected&nbsp;to&nbsp;be&nbsp;a&nbsp;filesystemobject.</tt></dd></dl>
-
-<dl><dt><a name="Bookmarks-delete"><strong>delete</strong></a>(self, key)</dt><dd><tt>Delete&nbsp;the&nbsp;bookmark&nbsp;with&nbsp;the&nbsp;given&nbsp;key</tt></dd></dl>
-
-<dl><dt><a name="Bookmarks-enter"><strong>enter</strong></a>(self, key)</dt><dd><tt>Enter&nbsp;the&nbsp;bookmark&nbsp;with&nbsp;the&nbsp;given&nbsp;key.<br>
-Requires&nbsp;the&nbsp;bookmark&nbsp;instance&nbsp;to&nbsp;have&nbsp;a&nbsp;go()&nbsp;method.</tt></dd></dl>
-
-<dl><dt><a name="Bookmarks-load"><strong>load</strong></a>(self)</dt><dd><tt>Load&nbsp;the&nbsp;bookmarks&nbsp;from&nbsp;path/bookmarks</tt></dd></dl>
-
-<dl><dt><a name="Bookmarks-remember"><strong>remember</strong></a>(self, value)</dt><dd><tt><a href="#Bookmarks">Bookmarks</a>&nbsp;&lt;value&gt;&nbsp;to&nbsp;the&nbsp;key&nbsp;'</tt></dd></dl>
-
-<dl><dt><a name="Bookmarks-save"><strong>save</strong></a>(self)</dt><dd><tt>Save&nbsp;the&nbsp;bookmarks&nbsp;to&nbsp;the&nbsp;bookmarkfile.<br>
-This&nbsp;is&nbsp;done&nbsp;automatically&nbsp;after&nbsp;every&nbsp;modification&nbsp;if&nbsp;autosave&nbsp;is&nbsp;True.</tt></dd></dl>
-
-<dl><dt><a name="Bookmarks-update"><strong>update</strong></a>(self)</dt><dd><tt>Update&nbsp;the&nbsp;bookmarks&nbsp;from&nbsp;the&nbsp;bookmark&nbsp;file.<br>
-Useful&nbsp;if&nbsp;two&nbsp;instances&nbsp;are&nbsp;running&nbsp;which&nbsp;define&nbsp;different&nbsp;bookmarks.</tt></dd></dl>
-
-<dl><dt><a name="Bookmarks-update_if_outdated"><strong>update_if_outdated</strong></a>(self)</dt></dl>
-
-<hr>
-Data descriptors defined here:<br>
-<dl><dt><strong>__dict__</strong></dt>
-<dd><tt>dictionary&nbsp;for&nbsp;instance&nbsp;variables&nbsp;(if&nbsp;defined)</tt></dd>
-</dl>
-<dl><dt><strong>__weakref__</strong></dt>
-<dd><tt>list&nbsp;of&nbsp;weak&nbsp;references&nbsp;to&nbsp;the&nbsp;object&nbsp;(if&nbsp;defined)</tt></dd>
-</dl>
-<hr>
-Data and other attributes defined here:<br>
-<dl><dt><strong>autosave</strong> = True</dl>
-
-<dl><dt><strong>last_mtime</strong> = None</dl>
-
-<dl><dt><strong>load_pattern</strong> = &lt;_sre.SRE_Pattern object&gt;</dl>
-
-</td></tr></table></td></tr></table><p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#55aa55">
-<td colspan=3 valign=bottom>&nbsp;<br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Data</strong></big></font></td></tr>
-    
-<tr><td bgcolor="#55aa55"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
-<td width="100%"><strong>ALLOWED_KEYS</strong> = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789`'"</td></tr></table>
-</body></html>
\ No newline at end of file
diff --git a/doc/pydoc/ranger.container.history.html b/doc/pydoc/ranger.container.history.html
deleted file mode 100644
index 5a98f7ec..00000000
--- a/doc/pydoc/ranger.container.history.html
+++ /dev/null
@@ -1,148 +0,0 @@
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html><head><title>Python: module ranger.container.history</title>
-</head><body bgcolor="#f0f0f8">
-
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="heading">
-<tr bgcolor="#7799ee">
-<td valign=bottom>&nbsp;<br>
-<font color="#ffffff" face="helvetica, arial">&nbsp;<br><big><big><strong><a href="ranger.html"><font color="#ffffff">ranger</font></a>.<a href="ranger.container.html"><font color="#ffffff">container</font></a>.history</strong></big></big></font></td
-><td align=right valign=bottom
-><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:/home/hut/ranger/ranger/container/history.py">/home/hut/ranger/ranger/container/history.py</a></font></td></tr></table>
-    <p><tt>#&nbsp;Copyright&nbsp;(C)&nbsp;2009,&nbsp;2010&nbsp;&nbsp;Roman&nbsp;Zimbelmann&nbsp;&lt;romanz@lavabit.com&gt;<br>
-#<br>
-#&nbsp;This&nbsp;program&nbsp;is&nbsp;free&nbsp;software:&nbsp;you&nbsp;can&nbsp;redistribute&nbsp;it&nbsp;and/or&nbsp;modify<br>
-#&nbsp;it&nbsp;under&nbsp;the&nbsp;terms&nbsp;of&nbsp;the&nbsp;GNU&nbsp;General&nbsp;Public&nbsp;License&nbsp;as&nbsp;published&nbsp;by<br>
-#&nbsp;the&nbsp;Free&nbsp;Software&nbsp;Foundation,&nbsp;either&nbsp;version&nbsp;3&nbsp;of&nbsp;the&nbsp;License,&nbsp;or<br>
-#&nbsp;(at&nbsp;your&nbsp;option)&nbsp;any&nbsp;later&nbsp;version.<br>
-#<br>
-#&nbsp;This&nbsp;program&nbsp;is&nbsp;distributed&nbsp;in&nbsp;the&nbsp;hope&nbsp;that&nbsp;it&nbsp;will&nbsp;be&nbsp;useful,<br>
-#&nbsp;but&nbsp;WITHOUT&nbsp;ANY&nbsp;WARRANTY;&nbsp;without&nbsp;even&nbsp;the&nbsp;implied&nbsp;warranty&nbsp;of<br>
-#&nbsp;MERCHANTABILITY&nbsp;or&nbsp;FITNESS&nbsp;FOR&nbsp;A&nbsp;PARTICULAR&nbsp;PURPOSE.&nbsp;&nbsp;See&nbsp;the<br>
-#&nbsp;GNU&nbsp;General&nbsp;Public&nbsp;License&nbsp;for&nbsp;more&nbsp;details.<br>
-#<br>
-#&nbsp;You&nbsp;should&nbsp;have&nbsp;received&nbsp;a&nbsp;copy&nbsp;of&nbsp;the&nbsp;GNU&nbsp;General&nbsp;Public&nbsp;License<br>
-#&nbsp;along&nbsp;with&nbsp;this&nbsp;program.&nbsp;&nbsp;If&nbsp;not,&nbsp;see&nbsp;&lt;<a href="http://www.gnu.org/licenses/">http://www.gnu.org/licenses/</a>&gt;.</tt></p>
-<p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ee77aa">
-<td colspan=3 valign=bottom>&nbsp;<br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Classes</strong></big></font></td></tr>
-    
-<tr><td bgcolor="#ee77aa"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
-<td width="100%"><dl>
-<dt><font face="helvetica, arial"><a href="__builtin__.html#object">__builtin__.object</a>
-</font></dt><dd>
-<dl>
-<dt><font face="helvetica, arial"><a href="ranger.container.history.html#History">History</a>
-</font></dt></dl>
-</dd>
-<dt><font face="helvetica, arial"><a href="exceptions.html#Exception">exceptions.Exception</a>(<a href="exceptions.html#BaseException">exceptions.BaseException</a>)
-</font></dt><dd>
-<dl>
-<dt><font face="helvetica, arial"><a href="ranger.container.history.html#HistoryEmptyException">HistoryEmptyException</a>
-</font></dt></dl>
-</dd>
-</dl>
- <p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ffc8d8">
-<td colspan=3 valign=bottom>&nbsp;<br>
-<font color="#000000" face="helvetica, arial"><a name="History">class <strong>History</strong></a>(<a href="__builtin__.html#object">__builtin__.object</a>)</font></td></tr>
-    
-<tr><td bgcolor="#ffc8d8"><tt>&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
-<td width="100%">Methods defined here:<br>
-<dl><dt><a name="History-__init__"><strong>__init__</strong></a>(self, maxlen<font color="#909090">=None</font>)</dt></dl>
-
-<dl><dt><a name="History-__iter__"><strong>__iter__</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="History-__len__"><strong>__len__</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="History-add"><strong>add</strong></a>(self, item)</dt></dl>
-
-<dl><dt><a name="History-back"><strong>back</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="History-bottom"><strong>bottom</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="History-current"><strong>current</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="History-fast_forward"><strong>fast_forward</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="History-forward"><strong>forward</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="History-modify"><strong>modify</strong></a>(self, item)</dt></dl>
-
-<dl><dt><a name="History-move"><strong>move</strong></a>(self, n)</dt></dl>
-
-<dl><dt><a name="History-next"><strong>next</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="History-top"><strong>top</strong></a>(self)</dt></dl>
-
-<hr>
-Data descriptors defined here:<br>
-<dl><dt><strong>__dict__</strong></dt>
-<dd><tt>dictionary&nbsp;for&nbsp;instance&nbsp;variables&nbsp;(if&nbsp;defined)</tt></dd>
-</dl>
-<dl><dt><strong>__weakref__</strong></dt>
-<dd><tt>list&nbsp;of&nbsp;weak&nbsp;references&nbsp;to&nbsp;the&nbsp;object&nbsp;(if&nbsp;defined)</tt></dd>
-</dl>
-</td></tr></table> <p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ffc8d8">
-<td colspan=3 valign=bottom>&nbsp;<br>
-<font color="#000000" face="helvetica, arial"><a name="HistoryEmptyException">class <strong>HistoryEmptyException</strong></a>(<a href="exceptions.html#Exception">exceptions.Exception</a>)</font></td></tr>
-    
-<tr><td bgcolor="#ffc8d8"><tt>&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
-<td width="100%"><dl><dt>Method resolution order:</dt>
-<dd><a href="ranger.container.history.html#HistoryEmptyException">HistoryEmptyException</a></dd>
-<dd><a href="exceptions.html#Exception">exceptions.Exception</a></dd>
-<dd><a href="exceptions.html#BaseException">exceptions.BaseException</a></dd>
-<dd><a href="__builtin__.html#object">__builtin__.object</a></dd>
-</dl>
-<hr>
-Data descriptors defined here:<br>
-<dl><dt><strong>__weakref__</strong></dt>
-<dd><tt>list&nbsp;of&nbsp;weak&nbsp;references&nbsp;to&nbsp;the&nbsp;object&nbsp;(if&nbsp;defined)</tt></dd>
-</dl>
-<hr>
-Methods inherited from <a href="exceptions.html#Exception">exceptions.Exception</a>:<br>
-<dl><dt><a name="HistoryEmptyException-__init__"><strong>__init__</strong></a>(...)</dt><dd><tt>x.<a href="#HistoryEmptyException-__init__">__init__</a>(...)&nbsp;initializes&nbsp;x;&nbsp;see&nbsp;x.__class__.__doc__&nbsp;for&nbsp;signature</tt></dd></dl>
-
-<hr>
-Data and other attributes inherited from <a href="exceptions.html#Exception">exceptions.Exception</a>:<br>
-<dl><dt><strong>__new__</strong> = &lt;built-in method __new__ of type object&gt;<dd><tt>T.<a href="#HistoryEmptyException-__new__">__new__</a>(S,&nbsp;...)&nbsp;-&gt;&nbsp;a&nbsp;new&nbsp;<a href="__builtin__.html#object">object</a>&nbsp;with&nbsp;type&nbsp;S,&nbsp;a&nbsp;subtype&nbsp;of&nbsp;T</tt></dl>
-
-<hr>
-Methods inherited from <a href="exceptions.html#BaseException">exceptions.BaseException</a>:<br>
-<dl><dt><a name="HistoryEmptyException-__delattr__"><strong>__delattr__</strong></a>(...)</dt><dd><tt>x.<a href="#HistoryEmptyException-__delattr__">__delattr__</a>('name')&nbsp;&lt;==&gt;&nbsp;del&nbsp;x.name</tt></dd></dl>
-
-<dl><dt><a name="HistoryEmptyException-__getattribute__"><strong>__getattribute__</strong></a>(...)</dt><dd><tt>x.<a href="#HistoryEmptyException-__getattribute__">__getattribute__</a>('name')&nbsp;&lt;==&gt;&nbsp;x.name</tt></dd></dl>
-
-<dl><dt><a name="HistoryEmptyException-__getitem__"><strong>__getitem__</strong></a>(...)</dt><dd><tt>x.<a href="#HistoryEmptyException-__getitem__">__getitem__</a>(y)&nbsp;&lt;==&gt;&nbsp;x[y]</tt></dd></dl>
-
-<dl><dt><a name="HistoryEmptyException-__getslice__"><strong>__getslice__</strong></a>(...)</dt><dd><tt>x.<a href="#HistoryEmptyException-__getslice__">__getslice__</a>(i,&nbsp;j)&nbsp;&lt;==&gt;&nbsp;x[i:j]<br>
-&nbsp;<br>
-Use&nbsp;of&nbsp;negative&nbsp;indices&nbsp;is&nbsp;not&nbsp;supported.</tt></dd></dl>
-
-<dl><dt><a name="HistoryEmptyException-__reduce__"><strong>__reduce__</strong></a>(...)</dt></dl>
-
-<dl><dt><a name="HistoryEmptyException-__repr__"><strong>__repr__</strong></a>(...)</dt><dd><tt>x.<a href="#HistoryEmptyException-__repr__">__repr__</a>()&nbsp;&lt;==&gt;&nbsp;repr(x)</tt></dd></dl>
-
-<dl><dt><a name="HistoryEmptyException-__setattr__"><strong>__setattr__</strong></a>(...)</dt><dd><tt>x.<a href="#HistoryEmptyException-__setattr__">__setattr__</a>('name',&nbsp;value)&nbsp;&lt;==&gt;&nbsp;x.name&nbsp;=&nbsp;value</tt></dd></dl>
-
-<dl><dt><a name="HistoryEmptyException-__setstate__"><strong>__setstate__</strong></a>(...)</dt></dl>
-
-<dl><dt><a name="HistoryEmptyException-__str__"><strong>__str__</strong></a>(...)</dt><dd><tt>x.<a href="#HistoryEmptyException-__str__">__str__</a>()&nbsp;&lt;==&gt;&nbsp;str(x)</tt></dd></dl>
-
-<dl><dt><a name="HistoryEmptyException-__unicode__"><strong>__unicode__</strong></a>(...)</dt></dl>
-
-<hr>
-Data descriptors inherited from <a href="exceptions.html#BaseException">exceptions.BaseException</a>:<br>
-<dl><dt><strong>__dict__</strong></dt>
-</dl>
-<dl><dt><strong>args</strong></dt>
-</dl>
-<dl><dt><strong>message</strong></dt>
-</dl>
-</td></tr></table></td></tr></table>
-</body></html>
\ No newline at end of file
diff --git a/doc/pydoc/ranger.container.html b/doc/pydoc/ranger.container.html
deleted file mode 100644
index 4957d18a..00000000
--- a/doc/pydoc/ranger.container.html
+++ /dev/null
@@ -1,27 +0,0 @@
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html><head><title>Python: package ranger.container</title>
-</head><body bgcolor="#f0f0f8">
-
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="heading">
-<tr bgcolor="#7799ee">
-<td valign=bottom>&nbsp;<br>
-<font color="#ffffff" face="helvetica, arial">&nbsp;<br><big><big><strong><a href="ranger.html"><font color="#ffffff">ranger</font></a>.container</strong></big></big></font></td
-><td align=right valign=bottom
-><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:/home/hut/ranger/ranger/container/__init__.py">/home/hut/ranger/ranger/container/__init__.py</a></font></td></tr></table>
-    <p><tt>This&nbsp;package&nbsp;includes&nbsp;container-objects&nbsp;which&nbsp;are<br>
-used&nbsp;to&nbsp;manage&nbsp;stored&nbsp;data</tt></p>
-<p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#aa55cc">
-<td colspan=3 valign=bottom>&nbsp;<br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Package Contents</strong></big></font></td></tr>
-    
-<tr><td bgcolor="#aa55cc"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
-<td width="100%"><table width="100%" summary="list"><tr><td width="25%" valign=top><a href="ranger.container.bookmarks.html">bookmarks</a><br>
-<a href="ranger.container.history.html">history</a><br>
-</td><td width="25%" valign=top><a href="ranger.container.keybuffer.html">keybuffer</a><br>
-<a href="ranger.container.keymap.html">keymap</a><br>
-</td><td width="25%" valign=top><a href="ranger.container.tags.html">tags</a><br>
-</td><td width="25%" valign=top></td></tr></table></td></tr></table>
-</body></html>
\ No newline at end of file
diff --git a/doc/pydoc/ranger.container.keybuffer.html b/doc/pydoc/ranger.container.keybuffer.html
deleted file mode 100644
index c3f30471..00000000
--- a/doc/pydoc/ranger.container.keybuffer.html
+++ /dev/null
@@ -1,90 +0,0 @@
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html><head><title>Python: module ranger.container.keybuffer</title>
-</head><body bgcolor="#f0f0f8">
-
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="heading">
-<tr bgcolor="#7799ee">
-<td valign=bottom>&nbsp;<br>
-<font color="#ffffff" face="helvetica, arial">&nbsp;<br><big><big><strong><a href="ranger.html"><font color="#ffffff">ranger</font></a>.<a href="ranger.container.html"><font color="#ffffff">container</font></a>.keybuffer</strong></big></big></font></td
-><td align=right valign=bottom
-><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:/home/hut/ranger/ranger/container/keybuffer.py">/home/hut/ranger/ranger/container/keybuffer.py</a></font></td></tr></table>
-    <p><tt>#&nbsp;Copyright&nbsp;(C)&nbsp;2009,&nbsp;2010&nbsp;&nbsp;Roman&nbsp;Zimbelmann&nbsp;&lt;romanz@lavabit.com&gt;<br>
-#<br>
-#&nbsp;This&nbsp;program&nbsp;is&nbsp;free&nbsp;software:&nbsp;you&nbsp;can&nbsp;redistribute&nbsp;it&nbsp;and/or&nbsp;modify<br>
-#&nbsp;it&nbsp;under&nbsp;the&nbsp;terms&nbsp;of&nbsp;the&nbsp;GNU&nbsp;General&nbsp;Public&nbsp;License&nbsp;as&nbsp;published&nbsp;by<br>
-#&nbsp;the&nbsp;Free&nbsp;Software&nbsp;Foundation,&nbsp;either&nbsp;version&nbsp;3&nbsp;of&nbsp;the&nbsp;License,&nbsp;or<br>
-#&nbsp;(at&nbsp;your&nbsp;option)&nbsp;any&nbsp;later&nbsp;version.<br>
-#<br>
-#&nbsp;This&nbsp;program&nbsp;is&nbsp;distributed&nbsp;in&nbsp;the&nbsp;hope&nbsp;that&nbsp;it&nbsp;will&nbsp;be&nbsp;useful,<br>
-#&nbsp;but&nbsp;WITHOUT&nbsp;ANY&nbsp;WARRANTY;&nbsp;without&nbsp;even&nbsp;the&nbsp;implied&nbsp;warranty&nbsp;of<br>
-#&nbsp;MERCHANTABILITY&nbsp;or&nbsp;FITNESS&nbsp;FOR&nbsp;A&nbsp;PARTICULAR&nbsp;PURPOSE.&nbsp;&nbsp;See&nbsp;the<br>
-#&nbsp;GNU&nbsp;General&nbsp;Public&nbsp;License&nbsp;for&nbsp;more&nbsp;details.<br>
-#<br>
-#&nbsp;You&nbsp;should&nbsp;have&nbsp;received&nbsp;a&nbsp;copy&nbsp;of&nbsp;the&nbsp;GNU&nbsp;General&nbsp;Public&nbsp;License<br>
-#&nbsp;along&nbsp;with&nbsp;this&nbsp;program.&nbsp;&nbsp;If&nbsp;not,&nbsp;see&nbsp;&lt;<a href="http://www.gnu.org/licenses/">http://www.gnu.org/licenses/</a>&gt;.</tt></p>
-<p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#aa55cc">
-<td colspan=3 valign=bottom>&nbsp;<br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Modules</strong></big></font></td></tr>
-    
-<tr><td bgcolor="#aa55cc"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
-<td width="100%"><table width="100%" summary="list"><tr><td width="25%" valign=top><a href="curses.html">curses</a><br>
-</td><td width="25%" valign=top></td><td width="25%" valign=top></td><td width="25%" valign=top></td></tr></table></td></tr></table><p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ee77aa">
-<td colspan=3 valign=bottom>&nbsp;<br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Classes</strong></big></font></td></tr>
-    
-<tr><td bgcolor="#ee77aa"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
-<td width="100%"><dl>
-<dt><font face="helvetica, arial"><a href="__builtin__.html#object">__builtin__.object</a>
-</font></dt><dd>
-<dl>
-<dt><font face="helvetica, arial"><a href="ranger.container.keybuffer.html#KeyBuffer">KeyBuffer</a>
-</font></dt></dl>
-</dd>
-</dl>
- <p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ffc8d8">
-<td colspan=3 valign=bottom>&nbsp;<br>
-<font color="#000000" face="helvetica, arial"><a name="KeyBuffer">class <strong>KeyBuffer</strong></a>(<a href="__builtin__.html#object">__builtin__.object</a>)</font></td></tr>
-    
-<tr bgcolor="#ffc8d8"><td rowspan=2><tt>&nbsp;&nbsp;&nbsp;</tt></td>
-<td colspan=2><tt>The&nbsp;evaluator&nbsp;and&nbsp;storage&nbsp;for&nbsp;pressed&nbsp;keys<br>&nbsp;</tt></td></tr>
-<tr><td>&nbsp;</td>
-<td width="100%">Methods defined here:<br>
-<dl><dt><a name="KeyBuffer-__init__"><strong>__init__</strong></a>(self, keymap, direction_keys)</dt></dl>
-
-<dl><dt><a name="KeyBuffer-__str__"><strong>__str__</strong></a>(self)</dt><dd><tt>returns&nbsp;a&nbsp;concatenation&nbsp;of&nbsp;all&nbsp;characters</tt></dd></dl>
-
-<dl><dt><a name="KeyBuffer-add"><strong>add</strong></a>(self, key)</dt><dd><tt>Add&nbsp;a&nbsp;key&nbsp;and&nbsp;evaluate&nbsp;it</tt></dd></dl>
-
-<dl><dt><a name="KeyBuffer-assign"><strong>assign</strong></a>(self, keymap, direction_keys)</dt><dd><tt>Change&nbsp;the&nbsp;keymap&nbsp;and&nbsp;direction&nbsp;keys&nbsp;of&nbsp;the&nbsp;keybuffer</tt></dd></dl>
-
-<dl><dt><a name="KeyBuffer-clear"><strong>clear</strong></a>(self)</dt><dd><tt>Reset&nbsp;the&nbsp;keybuffer.&nbsp;&nbsp;Do&nbsp;this&nbsp;once&nbsp;before&nbsp;the&nbsp;first&nbsp;usage.</tt></dd></dl>
-
-<hr>
-Data descriptors defined here:<br>
-<dl><dt><strong>__dict__</strong></dt>
-<dd><tt>dictionary&nbsp;for&nbsp;instance&nbsp;variables&nbsp;(if&nbsp;defined)</tt></dd>
-</dl>
-<dl><dt><strong>__weakref__</strong></dt>
-<dd><tt>list&nbsp;of&nbsp;weak&nbsp;references&nbsp;to&nbsp;the&nbsp;object&nbsp;(if&nbsp;defined)</tt></dd>
-</dl>
-</td></tr></table></td></tr></table><p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#55aa55">
-<td colspan=3 valign=bottom>&nbsp;<br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Data</strong></big></font></td></tr>
-    
-<tr><td bgcolor="#55aa55"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
-<td width="100%"><strong>ANYKEY</strong> = 9002<br>
-<strong>DIRKEY</strong> = 9001<br>
-<strong>MAX_ALIAS_RECURSION</strong> = 20<br>
-<strong>PASSIVE_ACTION</strong> = 9003<br>
-<strong>digitlist</strong> = set([48, 49, 50, 51, 52, 53, ...])<br>
-<strong>digits</strong> = '0123456789'</td></tr></table>
-</body></html>
\ No newline at end of file
diff --git a/doc/pydoc/ranger.container.tags.html b/doc/pydoc/ranger.container.tags.html
deleted file mode 100644
index 9f3ff6e8..00000000
--- a/doc/pydoc/ranger.container.tags.html
+++ /dev/null
@@ -1,76 +0,0 @@
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html><head><title>Python: module ranger.container.tags</title>
-</head><body bgcolor="#f0f0f8">
-
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="heading">
-<tr bgcolor="#7799ee">
-<td valign=bottom>&nbsp;<br>
-<font color="#ffffff" face="helvetica, arial">&nbsp;<br><big><big><strong><a href="ranger.html"><font color="#ffffff">ranger</font></a>.<a href="ranger.container.html"><font color="#ffffff">container</font></a>.tags</strong></big></big></font></td
-><td align=right valign=bottom
-><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:/home/hut/ranger/ranger/container/tags.py">/home/hut/ranger/ranger/container/tags.py</a></font></td></tr></table>
-    <p><tt>#&nbsp;Copyright&nbsp;(C)&nbsp;2009,&nbsp;2010&nbsp;&nbsp;Roman&nbsp;Zimbelmann&nbsp;&lt;romanz@lavabit.com&gt;<br>
-#<br>
-#&nbsp;This&nbsp;program&nbsp;is&nbsp;free&nbsp;software:&nbsp;you&nbsp;can&nbsp;redistribute&nbsp;it&nbsp;and/or&nbsp;modify<br>
-#&nbsp;it&nbsp;under&nbsp;the&nbsp;terms&nbsp;of&nbsp;the&nbsp;GNU&nbsp;General&nbsp;Public&nbsp;License&nbsp;as&nbsp;published&nbsp;by<br>
-#&nbsp;the&nbsp;Free&nbsp;Software&nbsp;Foundation,&nbsp;either&nbsp;version&nbsp;3&nbsp;of&nbsp;the&nbsp;License,&nbsp;or<br>
-#&nbsp;(at&nbsp;your&nbsp;option)&nbsp;any&nbsp;later&nbsp;version.<br>
-#<br>
-#&nbsp;This&nbsp;program&nbsp;is&nbsp;distributed&nbsp;in&nbsp;the&nbsp;hope&nbsp;that&nbsp;it&nbsp;will&nbsp;be&nbsp;useful,<br>
-#&nbsp;but&nbsp;WITHOUT&nbsp;ANY&nbsp;WARRANTY;&nbsp;without&nbsp;even&nbsp;the&nbsp;implied&nbsp;warranty&nbsp;of<br>
-#&nbsp;MERCHANTABILITY&nbsp;or&nbsp;FITNESS&nbsp;FOR&nbsp;A&nbsp;PARTICULAR&nbsp;PURPOSE.&nbsp;&nbsp;See&nbsp;the<br>
-#&nbsp;GNU&nbsp;General&nbsp;Public&nbsp;License&nbsp;for&nbsp;more&nbsp;details.<br>
-#<br>
-#&nbsp;You&nbsp;should&nbsp;have&nbsp;received&nbsp;a&nbsp;copy&nbsp;of&nbsp;the&nbsp;GNU&nbsp;General&nbsp;Public&nbsp;License<br>
-#&nbsp;along&nbsp;with&nbsp;this&nbsp;program.&nbsp;&nbsp;If&nbsp;not,&nbsp;see&nbsp;&lt;<a href="http://www.gnu.org/licenses/">http://www.gnu.org/licenses/</a>&gt;.</tt></p>
-<p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ee77aa">
-<td colspan=3 valign=bottom>&nbsp;<br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Classes</strong></big></font></td></tr>
-    
-<tr><td bgcolor="#ee77aa"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
-<td width="100%"><dl>
-<dt><font face="helvetica, arial"><a href="__builtin__.html#object">__builtin__.object</a>
-</font></dt><dd>
-<dl>
-<dt><font face="helvetica, arial"><a href="ranger.container.tags.html#Tags">Tags</a>
-</font></dt></dl>
-</dd>
-</dl>
- <p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ffc8d8">
-<td colspan=3 valign=bottom>&nbsp;<br>
-<font color="#000000" face="helvetica, arial"><a name="Tags">class <strong>Tags</strong></a>(<a href="__builtin__.html#object">__builtin__.object</a>)</font></td></tr>
-    
-<tr><td bgcolor="#ffc8d8"><tt>&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
-<td width="100%">Methods defined here:<br>
-<dl><dt><a name="Tags-__bool__"><strong>__bool__</strong></a> = <a href="#Tags-__nonzero__">__nonzero__</a>(self)</dt></dl>
-
-<dl><dt><a name="Tags-__contains__"><strong>__contains__</strong></a>(self, item)</dt></dl>
-
-<dl><dt><a name="Tags-__init__"><strong>__init__</strong></a>(self, filename)</dt></dl>
-
-<dl><dt><a name="Tags-__nonzero__"><strong>__nonzero__</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="Tags-add"><strong>add</strong></a>(self, *items)</dt></dl>
-
-<dl><dt><a name="Tags-dump"><strong>dump</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="Tags-remove"><strong>remove</strong></a>(self, *items)</dt></dl>
-
-<dl><dt><a name="Tags-sync"><strong>sync</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="Tags-toggle"><strong>toggle</strong></a>(self, *items)</dt></dl>
-
-<hr>
-Data descriptors defined here:<br>
-<dl><dt><strong>__dict__</strong></dt>
-<dd><tt>dictionary&nbsp;for&nbsp;instance&nbsp;variables&nbsp;(if&nbsp;defined)</tt></dd>
-</dl>
-<dl><dt><strong>__weakref__</strong></dt>
-<dd><tt>list&nbsp;of&nbsp;weak&nbsp;references&nbsp;to&nbsp;the&nbsp;object&nbsp;(if&nbsp;defined)</tt></dd>
-</dl>
-</td></tr></table></td></tr></table>
-</body></html>
\ No newline at end of file
diff --git a/doc/pydoc/ranger.defaults.apps.html b/doc/pydoc/ranger.defaults.apps.html
deleted file mode 100644
index 4f38da10..00000000
--- a/doc/pydoc/ranger.defaults.apps.html
+++ /dev/null
@@ -1,166 +0,0 @@
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html><head><title>Python: module ranger.defaults.apps</title>
-</head><body bgcolor="#f0f0f8">
-
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="heading">
-<tr bgcolor="#7799ee">
-<td valign=bottom>&nbsp;<br>
-<font color="#ffffff" face="helvetica, arial">&nbsp;<br><big><big><strong><a href="ranger.html"><font color="#ffffff">ranger</font></a>.<a href="ranger.defaults.html"><font color="#ffffff">defaults</font></a>.apps</strong></big></big></font></td
-><td align=right valign=bottom
-><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:/home/hut/ranger/ranger/defaults/apps.py">/home/hut/ranger/ranger/defaults/apps.py</a></font></td></tr></table>
-    <p><tt>This&nbsp;is&nbsp;the&nbsp;default&nbsp;ranger&nbsp;configuration&nbsp;file&nbsp;for&nbsp;filetype&nbsp;detection<br>
-and&nbsp;application&nbsp;handling.<br>
-&nbsp;<br>
-You&nbsp;can&nbsp;place&nbsp;this&nbsp;file&nbsp;in&nbsp;your&nbsp;~/.ranger/&nbsp;directory&nbsp;and&nbsp;it&nbsp;will&nbsp;be&nbsp;used<br>
-instead&nbsp;of&nbsp;this&nbsp;one.&nbsp;&nbsp;Though,&nbsp;to&nbsp;minimize&nbsp;your&nbsp;effort&nbsp;when&nbsp;upgrading&nbsp;ranger,<br>
-you&nbsp;may&nbsp;want&nbsp;to&nbsp;subclass&nbsp;<a href="#CustomApplications">CustomApplications</a>&nbsp;rather&nbsp;than&nbsp;making&nbsp;a&nbsp;full&nbsp;copy.<br>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>
-This&nbsp;example&nbsp;modifies&nbsp;the&nbsp;behaviour&nbsp;of&nbsp;"feh"&nbsp;and&nbsp;adds&nbsp;a&nbsp;custom&nbsp;media&nbsp;player:<br>
-&nbsp;<br>
-####&nbsp;start&nbsp;of&nbsp;the&nbsp;~/.ranger/apps.py&nbsp;example<br>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;from&nbsp;ranger.defaults.apps&nbsp;import&nbsp;<a href="#CustomApplications">CustomApplications</a>&nbsp;as&nbsp;DefaultApps<br>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;from&nbsp;ranger.api.apps&nbsp;import&nbsp;*<br>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;class&nbsp;<a href="#CustomApplications">CustomApplications</a>(DefaultApps):<br>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;def&nbsp;app_kaffeine(self,&nbsp;c):<br>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;tup('kaffeine',&nbsp;*c)<br>
-&nbsp;<br>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;def&nbsp;app_feh_fullscreen_by_default(self,&nbsp;c):<br>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;tup('feh',&nbsp;'-F',&nbsp;*c)<br>
-&nbsp;<br>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;def&nbsp;app_default(self,&nbsp;c):<br>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;c.file.video&nbsp;or&nbsp;c.file.audio:<br>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;app_kaffeine(c)<br>
-&nbsp;<br>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;c.file.image&nbsp;and&nbsp;c.mode&nbsp;==&nbsp;0:<br>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;app_feh_fullscreen_by_default(c)<br>
-&nbsp;<br>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;DefaultApps.app_default(self,&nbsp;c)<br>
-####&nbsp;end&nbsp;of&nbsp;the&nbsp;example</tt></p>
-<p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#aa55cc">
-<td colspan=3 valign=bottom>&nbsp;<br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Modules</strong></big></font></td></tr>
-    
-<tr><td bgcolor="#aa55cc"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
-<td width="100%"><table width="100%" summary="list"><tr><td width="25%" valign=top><a href="ranger.api.commands.html">ranger.api.commands</a><br>
-</td><td width="25%" valign=top><a href="os.html">os</a><br>
-</td><td width="25%" valign=top><a href="re.html">re</a><br>
-</td><td width="25%" valign=top><a href="sys.html">sys</a><br>
-</td></tr></table></td></tr></table><p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ee77aa">
-<td colspan=3 valign=bottom>&nbsp;<br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Classes</strong></big></font></td></tr>
-    
-<tr><td bgcolor="#ee77aa"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
-<td width="100%"><dl>
-<dt><font face="helvetica, arial"><a href="ranger.api.apps.html#Applications">ranger.api.apps.Applications</a>(<a href="ranger.shared.html#FileManagerAware">ranger.shared.FileManagerAware</a>)
-</font></dt><dd>
-<dl>
-<dt><font face="helvetica, arial"><a href="ranger.defaults.apps.html#CustomApplications">CustomApplications</a>
-</font></dt></dl>
-</dd>
-</dl>
- <p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ffc8d8">
-<td colspan=3 valign=bottom>&nbsp;<br>
-<font color="#000000" face="helvetica, arial"><a name="CustomApplications">class <strong>CustomApplications</strong></a>(<a href="ranger.api.apps.html#Applications">ranger.api.apps.Applications</a>)</font></td></tr>
-    
-<tr><td bgcolor="#ffc8d8"><tt>&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
-<td width="100%"><dl><dt>Method resolution order:</dt>
-<dd><a href="ranger.defaults.apps.html#CustomApplications">CustomApplications</a></dd>
-<dd><a href="ranger.api.apps.html#Applications">ranger.api.apps.Applications</a></dd>
-<dd><a href="ranger.shared.html#FileManagerAware">ranger.shared.FileManagerAware</a></dd>
-<dd><a href="ranger.shared.html#Awareness">ranger.shared.Awareness</a></dd>
-<dd><a href="__builtin__.html#object">__builtin__.object</a></dd>
-</dl>
-<hr>
-Methods defined here:<br>
-<dl><dt><a name="CustomApplications-app_apvlv"><strong>app_apvlv</strong></a>(self, c)</dt></dl>
-
-<dl><dt><a name="CustomApplications-app_aunpack"><strong>app_aunpack</strong></a>(self, c)</dt></dl>
-
-<dl><dt><a name="CustomApplications-app_default"><strong>app_default</strong></a>(self, c)</dt><dd><tt>How&nbsp;to&nbsp;determine&nbsp;the&nbsp;default&nbsp;application?</tt></dd></dl>
-
-<dl><dt><a name="CustomApplications-app_edit_or_run"><strong>app_edit_or_run</strong></a>(self, c)</dt></dl>
-
-<dl><dt><a name="CustomApplications-app_editor"><strong>app_editor</strong></a>(self, c)</dt></dl>
-
-<dl><dt><a name="CustomApplications-app_elinks"><strong>app_elinks</strong></a>(self, c)</dt></dl>
-
-<dl><dt><a name="CustomApplications-app_evince"><strong>app_evince</strong></a>(self, c)</dt></dl>
-
-<dl><dt><a name="CustomApplications-app_eye_of_gnome"><strong>app_eye_of_gnome</strong></a>(self, c)</dt></dl>
-
-<dl><dt><a name="CustomApplications-app_fceux"><strong>app_fceux</strong></a>(self, c)</dt></dl>
-
-<dl><dt><a name="CustomApplications-app_feh"><strong>app_feh</strong></a>(self, c)</dt></dl>
-
-<dl><dt><a name="CustomApplications-app_firefox"><strong>app_firefox</strong></a>(self, c)</dt></dl>
-
-<dl><dt><a name="CustomApplications-app_gimp"><strong>app_gimp</strong></a>(self, c)</dt></dl>
-
-<dl><dt><a name="CustomApplications-app_java"><strong>app_java</strong></a>(self, c)</dt></dl>
-
-<dl><dt><a name="CustomApplications-app_javac"><strong>app_javac</strong></a>(self, c)</dt></dl>
-
-<dl><dt><a name="CustomApplications-app_make"><strong>app_make</strong></a>(self, c)</dt></dl>
-
-<dl><dt><a name="CustomApplications-app_mirage"><strong>app_mirage</strong></a>(self, c)</dt></dl>
-
-<dl><dt><a name="CustomApplications-app_mplayer"><strong>app_mplayer</strong></a>(self, c)</dt></dl>
-
-<dl><dt><a name="CustomApplications-app_opera"><strong>app_opera</strong></a>(self, c)</dt></dl>
-
-<dl><dt><a name="CustomApplications-app_pager"><strong>app_pager</strong></a>(self, c)</dt><dd><tt>#&nbsp;-----------------------------------------&nbsp;application&nbsp;definitions</tt></dd></dl>
-
-<dl><dt><a name="CustomApplications-app_totem"><strong>app_totem</strong></a>(self, c)</dt></dl>
-
-<dl><dt><a name="CustomApplications-app_vim"><strong>app_vim</strong></a>(self, c)</dt></dl>
-
-<dl><dt><a name="CustomApplications-app_wine"><strong>app_wine</strong></a>(self, c)</dt></dl>
-
-<dl><dt><a name="CustomApplications-app_zathura"><strong>app_zathura</strong></a>(self, c)</dt></dl>
-
-<dl><dt><a name="CustomApplications-app_zsnes"><strong>app_zsnes</strong></a>(self, c)</dt></dl>
-
-<hr>
-Methods inherited from <a href="ranger.api.apps.html#Applications">ranger.api.apps.Applications</a>:<br>
-<dl><dt><a name="CustomApplications-all"><strong>all</strong></a>(self)</dt><dd><tt>Returns&nbsp;a&nbsp;list&nbsp;with&nbsp;all&nbsp;application&nbsp;functions</tt></dd></dl>
-
-<dl><dt><a name="CustomApplications-app_self"><strong>app_self</strong></a>(self, context)</dt><dd><tt>Run&nbsp;the&nbsp;file&nbsp;itself</tt></dd></dl>
-
-<dl><dt><a name="CustomApplications-apply"><strong>apply</strong></a>(self, app, context)</dt></dl>
-
-<dl><dt><a name="CustomApplications-either"><strong>either</strong></a>(self, context, *args)</dt></dl>
-
-<dl><dt><a name="CustomApplications-get"><strong>get</strong></a>(self, app)</dt><dd><tt>Looks&nbsp;for&nbsp;an&nbsp;application,&nbsp;returns&nbsp;app_default&nbsp;if&nbsp;it&nbsp;doesn't&nbsp;exist</tt></dd></dl>
-
-<dl><dt><a name="CustomApplications-has"><strong>has</strong></a>(self, app)</dt><dd><tt>Returns&nbsp;whether&nbsp;an&nbsp;application&nbsp;is&nbsp;defined</tt></dd></dl>
-
-<hr>
-Data and other attributes inherited from <a href="ranger.shared.html#FileManagerAware">ranger.shared.FileManagerAware</a>:<br>
-<dl><dt><strong>fm</strong> = None</dl>
-
-<hr>
-Data descriptors inherited from <a href="ranger.shared.html#Awareness">ranger.shared.Awareness</a>:<br>
-<dl><dt><strong>__dict__</strong></dt>
-<dd><tt>dictionary&nbsp;for&nbsp;instance&nbsp;variables&nbsp;(if&nbsp;defined)</tt></dd>
-</dl>
-<dl><dt><strong>__weakref__</strong></dt>
-<dd><tt>list&nbsp;of&nbsp;weak&nbsp;references&nbsp;to&nbsp;the&nbsp;object&nbsp;(if&nbsp;defined)</tt></dd>
-</dl>
-</td></tr></table></td></tr></table><p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#55aa55">
-<td colspan=3 valign=bottom>&nbsp;<br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Data</strong></big></font></td></tr>
-    
-<tr><td bgcolor="#55aa55"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
-<td width="100%"><strong>DELETE_WARNING</strong> = 'delete seriously? '<br>
-<strong>INTERPRETED_LANGUAGES</strong> = &lt;_sre.SRE_Pattern object&gt;</td></tr></table>
-</body></html>
\ No newline at end of file
diff --git a/doc/pydoc/ranger.defaults.html b/doc/pydoc/ranger.defaults.html
deleted file mode 100644
index d0b18018..00000000
--- a/doc/pydoc/ranger.defaults.html
+++ /dev/null
@@ -1,25 +0,0 @@
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html><head><title>Python: package ranger.defaults</title>
-</head><body bgcolor="#f0f0f8">
-
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="heading">
-<tr bgcolor="#7799ee">
-<td valign=bottom>&nbsp;<br>
-<font color="#ffffff" face="helvetica, arial">&nbsp;<br><big><big><strong><a href="ranger.html"><font color="#ffffff">ranger</font></a>.defaults</strong></big></big></font></td
-><td align=right valign=bottom
-><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:/home/hut/ranger/ranger/defaults/__init__.py">/home/hut/ranger/ranger/defaults/__init__.py</a></font></td></tr></table>
-    <p><tt>Default&nbsp;options&nbsp;and&nbsp;configration&nbsp;files</tt></p>
-<p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#aa55cc">
-<td colspan=3 valign=bottom>&nbsp;<br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Package Contents</strong></big></font></td></tr>
-    
-<tr><td bgcolor="#aa55cc"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
-<td width="100%"><table width="100%" summary="list"><tr><td width="25%" valign=top><a href="ranger.defaults.apps.html">apps</a><br>
-</td><td width="25%" valign=top><a href="ranger.defaults.commands.html">commands</a><br>
-</td><td width="25%" valign=top><a href="ranger.defaults.keys.html">keys</a><br>
-</td><td width="25%" valign=top><a href="ranger.defaults.options.html">options</a><br>
-</td></tr></table></td></tr></table>
-</body></html>
\ No newline at end of file
diff --git a/doc/pydoc/ranger.defaults.options.html b/doc/pydoc/ranger.defaults.options.html
deleted file mode 100644
index db0c9512..00000000
--- a/doc/pydoc/ranger.defaults.options.html
+++ /dev/null
@@ -1,78 +0,0 @@
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html><head><title>Python: module ranger.defaults.options</title>
-</head><body bgcolor="#f0f0f8">
-
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="heading">
-<tr bgcolor="#7799ee">
-<td valign=bottom>&nbsp;<br>
-<font color="#ffffff" face="helvetica, arial">&nbsp;<br><big><big><strong><a href="ranger.html"><font color="#ffffff">ranger</font></a>.<a href="ranger.defaults.html"><font color="#ffffff">defaults</font></a>.options</strong></big></big></font></td
-><td align=right valign=bottom
-><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:/home/hut/ranger/ranger/defaults/options.py">/home/hut/ranger/ranger/defaults/options.py</a></font></td></tr></table>
-    <p><tt>This&nbsp;is&nbsp;the&nbsp;default&nbsp;configuration&nbsp;file&nbsp;of&nbsp;ranger.<br>
-&nbsp;<br>
-There&nbsp;are&nbsp;two&nbsp;ways&nbsp;of&nbsp;customizing&nbsp;ranger.&nbsp;&nbsp;The&nbsp;first&nbsp;and&nbsp;recommended<br>
-method&nbsp;is&nbsp;creating&nbsp;a&nbsp;file&nbsp;at&nbsp;~/.ranger/options.py&nbsp;and&nbsp;adding<br>
-those&nbsp;lines&nbsp;you&nbsp;want&nbsp;to&nbsp;change.&nbsp;&nbsp;It&nbsp;might&nbsp;look&nbsp;like&nbsp;this:<br>
-&nbsp;<br>
-from&nbsp;ranger.api.options&nbsp;import&nbsp;*<br>
-preview_files&nbsp;=&nbsp;False&nbsp;&nbsp;#&nbsp;I&nbsp;hate&nbsp;previews!<br>
-max_history_size&nbsp;=&nbsp;2000&nbsp;&nbsp;#&nbsp;I&nbsp;can&nbsp;afford&nbsp;it.<br>
-&nbsp;<br>
-The&nbsp;other&nbsp;way&nbsp;is&nbsp;directly&nbsp;editing&nbsp;this&nbsp;file.&nbsp;&nbsp;This&nbsp;will&nbsp;make&nbsp;upgrades<br>
-of&nbsp;ranger&nbsp;more&nbsp;complicated&nbsp;though.<br>
-&nbsp;<br>
-Whatever&nbsp;you&nbsp;do,&nbsp;make&nbsp;sure&nbsp;the&nbsp;import-line&nbsp;stays&nbsp;intact&nbsp;and&nbsp;the&nbsp;type<br>
-of&nbsp;the&nbsp;values&nbsp;stay&nbsp;the&nbsp;same.</tt></p>
-<p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#aa55cc">
-<td colspan=3 valign=bottom>&nbsp;<br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Modules</strong></big></font></td></tr>
-    
-<tr><td bgcolor="#aa55cc"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
-<td width="100%"><table width="100%" summary="list"><tr><td width="25%" valign=top><a href="ranger.colorschemes.html">ranger.colorschemes</a><br>
-<a href="ranger.api.apps.html">ranger.api.apps</a><br>
-</td><td width="25%" valign=top><a href="ranger.gui.color.html">ranger.gui.color</a><br>
-<a href="ranger.api.commands.html">ranger.api.commands</a><br>
-</td><td width="25%" valign=top><a href="ranger.api.keys.html">ranger.api.keys</a><br>
-<a href="re.html">re</a><br>
-</td><td width="25%" valign=top></td></tr></table></td></tr></table><p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#55aa55">
-<td colspan=3 valign=bottom>&nbsp;<br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Data</strong></big></font></td></tr>
-    
-<tr><td bgcolor="#55aa55"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
-<td width="100%"><strong>DELETE_WARNING</strong> = 'delete seriously? '<br>
-<strong>autosave_bookmarks</strong> = True<br>
-<strong>collapse_preview</strong> = True<br>
-<strong>colorscheme</strong> = 'default'<br>
-<strong>colorscheme_overlay</strong> = None<br>
-<strong>column_ratios</strong> = (1, 1, 4, 3)<br>
-<strong>dirname_in_tabs</strong> = False<br>
-<strong>display_size_in_main_column</strong> = True<br>
-<strong>display_size_in_status_bar</strong> = False<br>
-<strong>draw_bookmark_borders</strong> = True<br>
-<strong>draw_borders</strong> = False<br>
-<strong>flushinput</strong> = True<br>
-<strong>hidden_filter</strong> = &lt;_sre.SRE_Pattern object&gt;<br>
-<strong>max_console_history_size</strong> = 20<br>
-<strong>max_history_size</strong> = 20<br>
-<strong>mouse_enabled</strong> = True<br>
-<strong>preview_directories</strong> = True<br>
-<strong>preview_files</strong> = True<br>
-<strong>save_console_history</strong> = True<br>
-<strong>scroll_offset</strong> = 2<br>
-<strong>shorten_title</strong> = 3<br>
-<strong>show_cursor</strong> = False<br>
-<strong>show_hidden</strong> = False<br>
-<strong>show_hidden_bookmarks</strong> = True<br>
-<strong>sort</strong> = 'basename'<br>
-<strong>sort_case_insensitive</strong> = False<br>
-<strong>sort_directories_first</strong> = True<br>
-<strong>sort_reverse</strong> = False<br>
-<strong>tilde_in_titlebar</strong> = True<br>
-<strong>update_title</strong> = True<br>
-<strong>xterm_alt_key</strong> = False</td></tr></table>
-</body></html>
\ No newline at end of file
diff --git a/doc/pydoc/ranger.ext.accumulator.html b/doc/pydoc/ranger.ext.accumulator.html
deleted file mode 100644
index e812c025..00000000
--- a/doc/pydoc/ranger.ext.accumulator.html
+++ /dev/null
@@ -1,74 +0,0 @@
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html><head><title>Python: module ranger.ext.accumulator</title>
-</head><body bgcolor="#f0f0f8">
-
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="heading">
-<tr bgcolor="#7799ee">
-<td valign=bottom>&nbsp;<br>
-<font color="#ffffff" face="helvetica, arial">&nbsp;<br><big><big><strong><a href="ranger.html"><font color="#ffffff">ranger</font></a>.<a href="ranger.ext.html"><font color="#ffffff">ext</font></a>.accumulator</strong></big></big></font></td
-><td align=right valign=bottom
-><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:/home/hut/ranger/ranger/ext/accumulator.py">/home/hut/ranger/ranger/ext/accumulator.py</a></font></td></tr></table>
-    <p><tt>#&nbsp;Copyright&nbsp;(C)&nbsp;2009,&nbsp;2010&nbsp;&nbsp;Roman&nbsp;Zimbelmann&nbsp;&lt;romanz@lavabit.com&gt;<br>
-#<br>
-#&nbsp;This&nbsp;program&nbsp;is&nbsp;free&nbsp;software:&nbsp;you&nbsp;can&nbsp;redistribute&nbsp;it&nbsp;and/or&nbsp;modify<br>
-#&nbsp;it&nbsp;under&nbsp;the&nbsp;terms&nbsp;of&nbsp;the&nbsp;GNU&nbsp;General&nbsp;Public&nbsp;License&nbsp;as&nbsp;published&nbsp;by<br>
-#&nbsp;the&nbsp;Free&nbsp;Software&nbsp;Foundation,&nbsp;either&nbsp;version&nbsp;3&nbsp;of&nbsp;the&nbsp;License,&nbsp;or<br>
-#&nbsp;(at&nbsp;your&nbsp;option)&nbsp;any&nbsp;later&nbsp;version.<br>
-#<br>
-#&nbsp;This&nbsp;program&nbsp;is&nbsp;distributed&nbsp;in&nbsp;the&nbsp;hope&nbsp;that&nbsp;it&nbsp;will&nbsp;be&nbsp;useful,<br>
-#&nbsp;but&nbsp;WITHOUT&nbsp;ANY&nbsp;WARRANTY;&nbsp;without&nbsp;even&nbsp;the&nbsp;implied&nbsp;warranty&nbsp;of<br>
-#&nbsp;MERCHANTABILITY&nbsp;or&nbsp;FITNESS&nbsp;FOR&nbsp;A&nbsp;PARTICULAR&nbsp;PURPOSE.&nbsp;&nbsp;See&nbsp;the<br>
-#&nbsp;GNU&nbsp;General&nbsp;Public&nbsp;License&nbsp;for&nbsp;more&nbsp;details.<br>
-#<br>
-#&nbsp;You&nbsp;should&nbsp;have&nbsp;received&nbsp;a&nbsp;copy&nbsp;of&nbsp;the&nbsp;GNU&nbsp;General&nbsp;Public&nbsp;License<br>
-#&nbsp;along&nbsp;with&nbsp;this&nbsp;program.&nbsp;&nbsp;If&nbsp;not,&nbsp;see&nbsp;&lt;<a href="http://www.gnu.org/licenses/">http://www.gnu.org/licenses/</a>&gt;.</tt></p>
-<p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ee77aa">
-<td colspan=3 valign=bottom>&nbsp;<br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Classes</strong></big></font></td></tr>
-    
-<tr><td bgcolor="#ee77aa"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
-<td width="100%"><dl>
-<dt><font face="helvetica, arial"><a href="__builtin__.html#object">__builtin__.object</a>
-</font></dt><dd>
-<dl>
-<dt><font face="helvetica, arial"><a href="ranger.ext.accumulator.html#Accumulator">Accumulator</a>
-</font></dt></dl>
-</dd>
-</dl>
- <p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ffc8d8">
-<td colspan=3 valign=bottom>&nbsp;<br>
-<font color="#000000" face="helvetica, arial"><a name="Accumulator">class <strong>Accumulator</strong></a>(<a href="__builtin__.html#object">__builtin__.object</a>)</font></td></tr>
-    
-<tr><td bgcolor="#ffc8d8"><tt>&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
-<td width="100%">Methods defined here:<br>
-<dl><dt><a name="Accumulator-__init__"><strong>__init__</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="Accumulator-correct_pointer"><strong>correct_pointer</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="Accumulator-get_height"><strong>get_height</strong></a>(self)</dt><dd><tt>OVERRIDE&nbsp;THIS</tt></dd></dl>
-
-<dl><dt><a name="Accumulator-get_list"><strong>get_list</strong></a>(self)</dt><dd><tt>OVERRIDE&nbsp;THIS</tt></dd></dl>
-
-<dl><dt><a name="Accumulator-move"><strong>move</strong></a>(self, narg<font color="#909090">=None</font>, **keywords)</dt></dl>
-
-<dl><dt><a name="Accumulator-move_to_obj"><strong>move_to_obj</strong></a>(self, arg, attr<font color="#909090">=None</font>)</dt></dl>
-
-<dl><dt><a name="Accumulator-pointer_is_synced"><strong>pointer_is_synced</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="Accumulator-sync_index"><strong>sync_index</strong></a>(self, **kw)</dt></dl>
-
-<hr>
-Data descriptors defined here:<br>
-<dl><dt><strong>__dict__</strong></dt>
-<dd><tt>dictionary&nbsp;for&nbsp;instance&nbsp;variables&nbsp;(if&nbsp;defined)</tt></dd>
-</dl>
-<dl><dt><strong>__weakref__</strong></dt>
-<dd><tt>list&nbsp;of&nbsp;weak&nbsp;references&nbsp;to&nbsp;the&nbsp;object&nbsp;(if&nbsp;defined)</tt></dd>
-</dl>
-</td></tr></table></td></tr></table>
-</body></html>
\ No newline at end of file
diff --git a/doc/pydoc/ranger.ext.command_parser.html b/doc/pydoc/ranger.ext.command_parser.html
deleted file mode 100644
index 4944b924..00000000
--- a/doc/pydoc/ranger.ext.command_parser.html
+++ /dev/null
@@ -1,87 +0,0 @@
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html><head><title>Python: module ranger.ext.command_parser</title>
-</head><body bgcolor="#f0f0f8">
-
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="heading">
-<tr bgcolor="#7799ee">
-<td valign=bottom>&nbsp;<br>
-<font color="#ffffff" face="helvetica, arial">&nbsp;<br><big><big><strong><a href="ranger.html"><font color="#ffffff">ranger</font></a>.<a href="ranger.ext.html"><font color="#ffffff">ext</font></a>.command_parser</strong></big></big></font></td
-><td align=right valign=bottom
-><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:/home/hut/ranger/ranger/ext/command_parser.py">/home/hut/ranger/ranger/ext/command_parser.py</a></font></td></tr></table>
-    <p><tt>#&nbsp;Copyright&nbsp;(C)&nbsp;2009,&nbsp;2010&nbsp;&nbsp;Roman&nbsp;Zimbelmann&nbsp;&lt;romanz@lavabit.com&gt;<br>
-#<br>
-#&nbsp;This&nbsp;program&nbsp;is&nbsp;free&nbsp;software:&nbsp;you&nbsp;can&nbsp;redistribute&nbsp;it&nbsp;and/or&nbsp;modify<br>
-#&nbsp;it&nbsp;under&nbsp;the&nbsp;terms&nbsp;of&nbsp;the&nbsp;GNU&nbsp;General&nbsp;Public&nbsp;License&nbsp;as&nbsp;published&nbsp;by<br>
-#&nbsp;the&nbsp;Free&nbsp;Software&nbsp;Foundation,&nbsp;either&nbsp;version&nbsp;3&nbsp;of&nbsp;the&nbsp;License,&nbsp;or<br>
-#&nbsp;(at&nbsp;your&nbsp;option)&nbsp;any&nbsp;later&nbsp;version.<br>
-#<br>
-#&nbsp;This&nbsp;program&nbsp;is&nbsp;distributed&nbsp;in&nbsp;the&nbsp;hope&nbsp;that&nbsp;it&nbsp;will&nbsp;be&nbsp;useful,<br>
-#&nbsp;but&nbsp;WITHOUT&nbsp;ANY&nbsp;WARRANTY;&nbsp;without&nbsp;even&nbsp;the&nbsp;implied&nbsp;warranty&nbsp;of<br>
-#&nbsp;MERCHANTABILITY&nbsp;or&nbsp;FITNESS&nbsp;FOR&nbsp;A&nbsp;PARTICULAR&nbsp;PURPOSE.&nbsp;&nbsp;See&nbsp;the<br>
-#&nbsp;GNU&nbsp;General&nbsp;Public&nbsp;License&nbsp;for&nbsp;more&nbsp;details.<br>
-#<br>
-#&nbsp;You&nbsp;should&nbsp;have&nbsp;received&nbsp;a&nbsp;copy&nbsp;of&nbsp;the&nbsp;GNU&nbsp;General&nbsp;Public&nbsp;License<br>
-#&nbsp;along&nbsp;with&nbsp;this&nbsp;program.&nbsp;&nbsp;If&nbsp;not,&nbsp;see&nbsp;&lt;<a href="http://www.gnu.org/licenses/">http://www.gnu.org/licenses/</a>&gt;.</tt></p>
-<p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#aa55cc">
-<td colspan=3 valign=bottom>&nbsp;<br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Modules</strong></big></font></td></tr>
-    
-<tr><td bgcolor="#aa55cc"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
-<td width="100%"><table width="100%" summary="list"><tr><td width="25%" valign=top><a href="re.html">re</a><br>
-</td><td width="25%" valign=top></td><td width="25%" valign=top></td><td width="25%" valign=top></td></tr></table></td></tr></table><p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ee77aa">
-<td colspan=3 valign=bottom>&nbsp;<br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Classes</strong></big></font></td></tr>
-    
-<tr><td bgcolor="#ee77aa"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
-<td width="100%"><dl>
-<dt><font face="helvetica, arial"><a href="__builtin__.html#object">__builtin__.object</a>
-</font></dt><dd>
-<dl>
-<dt><font face="helvetica, arial"><a href="ranger.ext.command_parser.html#LazyParser">LazyParser</a>
-</font></dt></dl>
-</dd>
-</dl>
- <p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ffc8d8">
-<td colspan=3 valign=bottom>&nbsp;<br>
-<font color="#000000" face="helvetica, arial"><a name="LazyParser">class <strong>LazyParser</strong></a>(<a href="__builtin__.html#object">__builtin__.object</a>)</font></td></tr>
-    
-<tr bgcolor="#ffc8d8"><td rowspan=2><tt>&nbsp;&nbsp;&nbsp;</tt></td>
-<td colspan=2><tt>Parse&nbsp;commands&nbsp;and&nbsp;extract&nbsp;information<br>&nbsp;</tt></td></tr>
-<tr><td>&nbsp;</td>
-<td width="100%">Methods defined here:<br>
-<dl><dt><a name="LazyParser-__add__"><strong>__add__</strong></a>(self, newpart)</dt></dl>
-
-<dl><dt><a name="LazyParser-__init__"><strong>__init__</strong></a>(self, line)</dt></dl>
-
-<dl><dt><a name="LazyParser-chunk"><strong>chunk</strong></a>(self, n, otherwise<font color="#909090">=''</font>)</dt><dd><tt>Chunks&nbsp;are&nbsp;pieces&nbsp;of&nbsp;the&nbsp;command&nbsp;seperated&nbsp;by&nbsp;spaces</tt></dd></dl>
-
-<dl><dt><a name="LazyParser-parse_setting_line"><strong>parse_setting_line</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="LazyParser-rest"><strong>rest</strong></a>(self, n, otherwise<font color="#909090">=''</font>)</dt><dd><tt>Rests&nbsp;are&nbsp;the&nbsp;strings&nbsp;which&nbsp;come&nbsp;after&nbsp;each&nbsp;word.</tt></dd></dl>
-
-<dl><dt><a name="LazyParser-start"><strong>start</strong></a>(self, n)</dt></dl>
-
-<hr>
-Data descriptors defined here:<br>
-<dl><dt><strong>__dict__</strong></dt>
-<dd><tt>dictionary&nbsp;for&nbsp;instance&nbsp;variables&nbsp;(if&nbsp;defined)</tt></dd>
-</dl>
-<dl><dt><strong>__weakref__</strong></dt>
-<dd><tt>list&nbsp;of&nbsp;weak&nbsp;references&nbsp;to&nbsp;the&nbsp;object&nbsp;(if&nbsp;defined)</tt></dd>
-</dl>
-</td></tr></table></td></tr></table><p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#55aa55">
-<td colspan=3 valign=bottom>&nbsp;<br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Data</strong></big></font></td></tr>
-    
-<tr><td bgcolor="#55aa55"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
-<td width="100%"><strong>SETTINGS_RE</strong> = &lt;_sre.SRE_Pattern object&gt;</td></tr></table>
-</body></html>
\ No newline at end of file
diff --git a/doc/pydoc/ranger.ext.html b/doc/pydoc/ranger.ext.html
deleted file mode 100644
index 1191463c..00000000
--- a/doc/pydoc/ranger.ext.html
+++ /dev/null
@@ -1,36 +0,0 @@
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html><head><title>Python: package ranger.ext</title>
-</head><body bgcolor="#f0f0f8">
-
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="heading">
-<tr bgcolor="#7799ee">
-<td valign=bottom>&nbsp;<br>
-<font color="#ffffff" face="helvetica, arial">&nbsp;<br><big><big><strong><a href="ranger.html"><font color="#ffffff">ranger</font></a>.ext</strong></big></big></font></td
-><td align=right valign=bottom
-><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:/home/hut/ranger/ranger/ext/__init__.py">/home/hut/ranger/ranger/ext/__init__.py</a></font></td></tr></table>
-    <p><tt>This&nbsp;package&nbsp;includes&nbsp;extensions&nbsp;with&nbsp;broader&nbsp;usability</tt></p>
-<p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#aa55cc">
-<td colspan=3 valign=bottom>&nbsp;<br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Package Contents</strong></big></font></td></tr>
-    
-<tr><td bgcolor="#aa55cc"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
-<td width="100%"><table width="100%" summary="list"><tr><td width="25%" valign=top><a href="ranger.ext.accumulator.html">accumulator</a><br>
-<a href="ranger.ext.command_parser.html">command_parser</a><br>
-<a href="ranger.ext.curses_interrupt_handler.html">curses_interrupt_handler</a><br>
-<a href="ranger.ext.direction.html">direction</a><br>
-</td><td width="25%" valign=top><a href="ranger.ext.get_executables.html">get_executables</a><br>
-<a href="ranger.ext.human_readable.html">human_readable</a><br>
-<a href="ranger.ext.iter_tools.html">iter_tools</a><br>
-<a href="ranger.ext.keybinding_parser.html">keybinding_parser</a><br>
-</td><td width="25%" valign=top><a href="ranger.ext.mount_path.html">mount_path</a><br>
-<a href="ranger.ext.openstruct.html">openstruct</a><br>
-<a href="ranger.ext.shell_escape.html">shell_escape</a><br>
-<a href="ranger.ext.shutil_generatorized.html">shutil_generatorized</a><br>
-</td><td width="25%" valign=top><a href="ranger.ext.signal_dispatcher.html">signal_dispatcher</a><br>
-<a href="ranger.ext.tree.html">tree</a><br>
-<a href="ranger.ext.waitpid_no_intr.html">waitpid_no_intr</a><br>
-</td></tr></table></td></tr></table>
-</body></html>
\ No newline at end of file
diff --git a/doc/pydoc/ranger.ext.human_readable.html b/doc/pydoc/ranger.ext.human_readable.html
deleted file mode 100644
index efcb6494..00000000
--- a/doc/pydoc/ranger.ext.human_readable.html
+++ /dev/null
@@ -1,52 +0,0 @@
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html><head><title>Python: module ranger.ext.human_readable</title>
-</head><body bgcolor="#f0f0f8">
-
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="heading">
-<tr bgcolor="#7799ee">
-<td valign=bottom>&nbsp;<br>
-<font color="#ffffff" face="helvetica, arial">&nbsp;<br><big><big><strong><a href="ranger.html"><font color="#ffffff">ranger</font></a>.<a href="ranger.ext.html"><font color="#ffffff">ext</font></a>.human_readable</strong></big></big></font></td
-><td align=right valign=bottom
-><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:/home/hut/ranger/ranger/ext/human_readable.py">/home/hut/ranger/ranger/ext/human_readable.py</a></font></td></tr></table>
-    <p><tt>#&nbsp;Copyright&nbsp;(C)&nbsp;2009,&nbsp;2010&nbsp;&nbsp;Roman&nbsp;Zimbelmann&nbsp;&lt;romanz@lavabit.com&gt;<br>
-#<br>
-#&nbsp;This&nbsp;program&nbsp;is&nbsp;free&nbsp;software:&nbsp;you&nbsp;can&nbsp;redistribute&nbsp;it&nbsp;and/or&nbsp;modify<br>
-#&nbsp;it&nbsp;under&nbsp;the&nbsp;terms&nbsp;of&nbsp;the&nbsp;GNU&nbsp;General&nbsp;Public&nbsp;License&nbsp;as&nbsp;published&nbsp;by<br>
-#&nbsp;the&nbsp;Free&nbsp;Software&nbsp;Foundation,&nbsp;either&nbsp;version&nbsp;3&nbsp;of&nbsp;the&nbsp;License,&nbsp;or<br>
-#&nbsp;(at&nbsp;your&nbsp;option)&nbsp;any&nbsp;later&nbsp;version.<br>
-#<br>
-#&nbsp;This&nbsp;program&nbsp;is&nbsp;distributed&nbsp;in&nbsp;the&nbsp;hope&nbsp;that&nbsp;it&nbsp;will&nbsp;be&nbsp;useful,<br>
-#&nbsp;but&nbsp;WITHOUT&nbsp;ANY&nbsp;WARRANTY;&nbsp;without&nbsp;even&nbsp;the&nbsp;implied&nbsp;warranty&nbsp;of<br>
-#&nbsp;MERCHANTABILITY&nbsp;or&nbsp;FITNESS&nbsp;FOR&nbsp;A&nbsp;PARTICULAR&nbsp;PURPOSE.&nbsp;&nbsp;See&nbsp;the<br>
-#&nbsp;GNU&nbsp;General&nbsp;Public&nbsp;License&nbsp;for&nbsp;more&nbsp;details.<br>
-#<br>
-#&nbsp;You&nbsp;should&nbsp;have&nbsp;received&nbsp;a&nbsp;copy&nbsp;of&nbsp;the&nbsp;GNU&nbsp;General&nbsp;Public&nbsp;License<br>
-#&nbsp;along&nbsp;with&nbsp;this&nbsp;program.&nbsp;&nbsp;If&nbsp;not,&nbsp;see&nbsp;&lt;<a href="http://www.gnu.org/licenses/">http://www.gnu.org/licenses/</a>&gt;.</tt></p>
-<p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#aa55cc">
-<td colspan=3 valign=bottom>&nbsp;<br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Modules</strong></big></font></td></tr>
-    
-<tr><td bgcolor="#aa55cc"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
-<td width="100%"><table width="100%" summary="list"><tr><td width="25%" valign=top><a href="math.html">math</a><br>
-</td><td width="25%" valign=top></td><td width="25%" valign=top></td><td width="25%" valign=top></td></tr></table></td></tr></table><p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#eeaa77">
-<td colspan=3 valign=bottom>&nbsp;<br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Functions</strong></big></font></td></tr>
-    
-<tr><td bgcolor="#eeaa77"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
-<td width="100%"><dl><dt><a name="-human_readable"><strong>human_readable</strong></a>(byte, seperator<font color="#909090">=' '</font>)</dt></dl>
-</td></tr></table><p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#55aa55">
-<td colspan=3 valign=bottom>&nbsp;<br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Data</strong></big></font></td></tr>
-    
-<tr><td bgcolor="#55aa55"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
-<td width="100%"><strong>MAX_EXPONENT</strong> = 5<br>
-<strong>ONE_KB</strong> = 1024<br>
-<strong>UNITS</strong> = 'BKMGTP'</td></tr></table>
-</body></html>
\ No newline at end of file
diff --git a/doc/pydoc/ranger.ext.openstruct.html b/doc/pydoc/ranger.ext.openstruct.html
deleted file mode 100644
index d4340807..00000000
--- a/doc/pydoc/ranger.ext.openstruct.html
+++ /dev/null
@@ -1,144 +0,0 @@
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html><head><title>Python: module ranger.ext.openstruct</title>
-</head><body bgcolor="#f0f0f8">
-
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="heading">
-<tr bgcolor="#7799ee">
-<td valign=bottom>&nbsp;<br>
-<font color="#ffffff" face="helvetica, arial">&nbsp;<br><big><big><strong><a href="ranger.html"><font color="#ffffff">ranger</font></a>.<a href="ranger.ext.html"><font color="#ffffff">ext</font></a>.openstruct</strong></big></big></font></td
-><td align=right valign=bottom
-><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:/home/hut/ranger/ranger/ext/openstruct.py">/home/hut/ranger/ranger/ext/openstruct.py</a></font></td></tr></table>
-    <p><tt>#&nbsp;Copyright&nbsp;(C)&nbsp;2009,&nbsp;2010&nbsp;&nbsp;Roman&nbsp;Zimbelmann&nbsp;&lt;romanz@lavabit.com&gt;<br>
-#<br>
-#&nbsp;This&nbsp;program&nbsp;is&nbsp;free&nbsp;software:&nbsp;you&nbsp;can&nbsp;redistribute&nbsp;it&nbsp;and/or&nbsp;modify<br>
-#&nbsp;it&nbsp;under&nbsp;the&nbsp;terms&nbsp;of&nbsp;the&nbsp;GNU&nbsp;General&nbsp;Public&nbsp;License&nbsp;as&nbsp;published&nbsp;by<br>
-#&nbsp;the&nbsp;Free&nbsp;Software&nbsp;Foundation,&nbsp;either&nbsp;version&nbsp;3&nbsp;of&nbsp;the&nbsp;License,&nbsp;or<br>
-#&nbsp;(at&nbsp;your&nbsp;option)&nbsp;any&nbsp;later&nbsp;version.<br>
-#<br>
-#&nbsp;This&nbsp;program&nbsp;is&nbsp;distributed&nbsp;in&nbsp;the&nbsp;hope&nbsp;that&nbsp;it&nbsp;will&nbsp;be&nbsp;useful,<br>
-#&nbsp;but&nbsp;WITHOUT&nbsp;ANY&nbsp;WARRANTY;&nbsp;without&nbsp;even&nbsp;the&nbsp;implied&nbsp;warranty&nbsp;of<br>
-#&nbsp;MERCHANTABILITY&nbsp;or&nbsp;FITNESS&nbsp;FOR&nbsp;A&nbsp;PARTICULAR&nbsp;PURPOSE.&nbsp;&nbsp;See&nbsp;the<br>
-#&nbsp;GNU&nbsp;General&nbsp;Public&nbsp;License&nbsp;for&nbsp;more&nbsp;details.<br>
-#<br>
-#&nbsp;You&nbsp;should&nbsp;have&nbsp;received&nbsp;a&nbsp;copy&nbsp;of&nbsp;the&nbsp;GNU&nbsp;General&nbsp;Public&nbsp;License<br>
-#&nbsp;along&nbsp;with&nbsp;this&nbsp;program.&nbsp;&nbsp;If&nbsp;not,&nbsp;see&nbsp;&lt;<a href="http://www.gnu.org/licenses/">http://www.gnu.org/licenses/</a>&gt;.</tt></p>
-<p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ee77aa">
-<td colspan=3 valign=bottom>&nbsp;<br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Classes</strong></big></font></td></tr>
-    
-<tr><td bgcolor="#ee77aa"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
-<td width="100%"><dl>
-<dt><font face="helvetica, arial"><a href="__builtin__.html#dict">__builtin__.dict</a>(<a href="__builtin__.html#object">__builtin__.object</a>)
-</font></dt><dd>
-<dl>
-<dt><font face="helvetica, arial"><a href="ranger.ext.openstruct.html#OpenStruct">OpenStruct</a>
-</font></dt></dl>
-</dd>
-</dl>
- <p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ffc8d8">
-<td colspan=3 valign=bottom>&nbsp;<br>
-<font color="#000000" face="helvetica, arial"><a name="OpenStruct">class <strong>OpenStruct</strong></a>(<a href="__builtin__.html#dict">__builtin__.dict</a>)</font></td></tr>
-    
-<tr bgcolor="#ffc8d8"><td rowspan=2><tt>&nbsp;&nbsp;&nbsp;</tt></td>
-<td colspan=2><tt>The&nbsp;fusion&nbsp;of&nbsp;<a href="__builtin__.html#dict">dict</a>&nbsp;and&nbsp;struct<br>&nbsp;</tt></td></tr>
-<tr><td>&nbsp;</td>
-<td width="100%"><dl><dt>Method resolution order:</dt>
-<dd><a href="ranger.ext.openstruct.html#OpenStruct">OpenStruct</a></dd>
-<dd><a href="__builtin__.html#dict">__builtin__.dict</a></dd>
-<dd><a href="__builtin__.html#object">__builtin__.object</a></dd>
-</dl>
-<hr>
-Methods defined here:<br>
-<dl><dt><a name="OpenStruct-__init__"><strong>__init__</strong></a>(self, *_OpenStruct__args, **_OpenStruct__keywords)</dt></dl>
-
-<hr>
-Data descriptors defined here:<br>
-<dl><dt><strong>__dict__</strong></dt>
-<dd><tt>dictionary&nbsp;for&nbsp;instance&nbsp;variables&nbsp;(if&nbsp;defined)</tt></dd>
-</dl>
-<dl><dt><strong>__weakref__</strong></dt>
-<dd><tt>list&nbsp;of&nbsp;weak&nbsp;references&nbsp;to&nbsp;the&nbsp;object&nbsp;(if&nbsp;defined)</tt></dd>
-</dl>
-<hr>
-Methods inherited from <a href="__builtin__.html#dict">__builtin__.dict</a>:<br>
-<dl><dt><a name="OpenStruct-__cmp__"><strong>__cmp__</strong></a>(...)</dt><dd><tt>x.<a href="#OpenStruct-__cmp__">__cmp__</a>(y)&nbsp;&lt;==&gt;&nbsp;cmp(x,y)</tt></dd></dl>
-
-<dl><dt><a name="OpenStruct-__contains__"><strong>__contains__</strong></a>(...)</dt><dd><tt>D.<a href="#OpenStruct-__contains__">__contains__</a>(k)&nbsp;-&gt;&nbsp;True&nbsp;if&nbsp;D&nbsp;has&nbsp;a&nbsp;key&nbsp;k,&nbsp;else&nbsp;False</tt></dd></dl>
-
-<dl><dt><a name="OpenStruct-__delitem__"><strong>__delitem__</strong></a>(...)</dt><dd><tt>x.<a href="#OpenStruct-__delitem__">__delitem__</a>(y)&nbsp;&lt;==&gt;&nbsp;del&nbsp;x[y]</tt></dd></dl>
-
-<dl><dt><a name="OpenStruct-__eq__"><strong>__eq__</strong></a>(...)</dt><dd><tt>x.<a href="#OpenStruct-__eq__">__eq__</a>(y)&nbsp;&lt;==&gt;&nbsp;x==y</tt></dd></dl>
-
-<dl><dt><a name="OpenStruct-__ge__"><strong>__ge__</strong></a>(...)</dt><dd><tt>x.<a href="#OpenStruct-__ge__">__ge__</a>(y)&nbsp;&lt;==&gt;&nbsp;x&gt;=y</tt></dd></dl>
-
-<dl><dt><a name="OpenStruct-__getattribute__"><strong>__getattribute__</strong></a>(...)</dt><dd><tt>x.<a href="#OpenStruct-__getattribute__">__getattribute__</a>('name')&nbsp;&lt;==&gt;&nbsp;x.name</tt></dd></dl>
-
-<dl><dt><a name="OpenStruct-__getitem__"><strong>__getitem__</strong></a>(...)</dt><dd><tt>x.<a href="#OpenStruct-__getitem__">__getitem__</a>(y)&nbsp;&lt;==&gt;&nbsp;x[y]</tt></dd></dl>
-
-<dl><dt><a name="OpenStruct-__gt__"><strong>__gt__</strong></a>(...)</dt><dd><tt>x.<a href="#OpenStruct-__gt__">__gt__</a>(y)&nbsp;&lt;==&gt;&nbsp;x&gt;y</tt></dd></dl>
-
-<dl><dt><a name="OpenStruct-__iter__"><strong>__iter__</strong></a>(...)</dt><dd><tt>x.<a href="#OpenStruct-__iter__">__iter__</a>()&nbsp;&lt;==&gt;&nbsp;iter(x)</tt></dd></dl>
-
-<dl><dt><a name="OpenStruct-__le__"><strong>__le__</strong></a>(...)</dt><dd><tt>x.<a href="#OpenStruct-__le__">__le__</a>(y)&nbsp;&lt;==&gt;&nbsp;x&lt;=y</tt></dd></dl>
-
-<dl><dt><a name="OpenStruct-__len__"><strong>__len__</strong></a>(...)</dt><dd><tt>x.<a href="#OpenStruct-__len__">__len__</a>()&nbsp;&lt;==&gt;&nbsp;len(x)</tt></dd></dl>
-
-<dl><dt><a name="OpenStruct-__lt__"><strong>__lt__</strong></a>(...)</dt><dd><tt>x.<a href="#OpenStruct-__lt__">__lt__</a>(y)&nbsp;&lt;==&gt;&nbsp;x&lt;y</tt></dd></dl>
-
-<dl><dt><a name="OpenStruct-__ne__"><strong>__ne__</strong></a>(...)</dt><dd><tt>x.<a href="#OpenStruct-__ne__">__ne__</a>(y)&nbsp;&lt;==&gt;&nbsp;x!=y</tt></dd></dl>
-
-<dl><dt><a name="OpenStruct-__repr__"><strong>__repr__</strong></a>(...)</dt><dd><tt>x.<a href="#OpenStruct-__repr__">__repr__</a>()&nbsp;&lt;==&gt;&nbsp;repr(x)</tt></dd></dl>
-
-<dl><dt><a name="OpenStruct-__setitem__"><strong>__setitem__</strong></a>(...)</dt><dd><tt>x.<a href="#OpenStruct-__setitem__">__setitem__</a>(i,&nbsp;y)&nbsp;&lt;==&gt;&nbsp;x[i]=y</tt></dd></dl>
-
-<dl><dt><a name="OpenStruct-__sizeof__"><strong>__sizeof__</strong></a>(...)</dt><dd><tt>D.<a href="#OpenStruct-__sizeof__">__sizeof__</a>()&nbsp;-&gt;&nbsp;size&nbsp;of&nbsp;D&nbsp;in&nbsp;memory,&nbsp;in&nbsp;bytes</tt></dd></dl>
-
-<dl><dt><a name="OpenStruct-clear"><strong>clear</strong></a>(...)</dt><dd><tt>D.<a href="#OpenStruct-clear">clear</a>()&nbsp;-&gt;&nbsp;None.&nbsp;&nbsp;Remove&nbsp;all&nbsp;items&nbsp;from&nbsp;D.</tt></dd></dl>
-
-<dl><dt><a name="OpenStruct-copy"><strong>copy</strong></a>(...)</dt><dd><tt>D.<a href="#OpenStruct-copy">copy</a>()&nbsp;-&gt;&nbsp;a&nbsp;shallow&nbsp;copy&nbsp;of&nbsp;D</tt></dd></dl>
-
-<dl><dt><a name="OpenStruct-get"><strong>get</strong></a>(...)</dt><dd><tt>D.<a href="#OpenStruct-get">get</a>(k[,d])&nbsp;-&gt;&nbsp;D[k]&nbsp;if&nbsp;k&nbsp;in&nbsp;D,&nbsp;else&nbsp;d.&nbsp;&nbsp;d&nbsp;defaults&nbsp;to&nbsp;None.</tt></dd></dl>
-
-<dl><dt><a name="OpenStruct-has_key"><strong>has_key</strong></a>(...)</dt><dd><tt>D.<a href="#OpenStruct-has_key">has_key</a>(k)&nbsp;-&gt;&nbsp;True&nbsp;if&nbsp;D&nbsp;has&nbsp;a&nbsp;key&nbsp;k,&nbsp;else&nbsp;False</tt></dd></dl>
-
-<dl><dt><a name="OpenStruct-items"><strong>items</strong></a>(...)</dt><dd><tt>D.<a href="#OpenStruct-items">items</a>()&nbsp;-&gt;&nbsp;list&nbsp;of&nbsp;D's&nbsp;(key,&nbsp;value)&nbsp;pairs,&nbsp;as&nbsp;2-tuples</tt></dd></dl>
-
-<dl><dt><a name="OpenStruct-iteritems"><strong>iteritems</strong></a>(...)</dt><dd><tt>D.<a href="#OpenStruct-iteritems">iteritems</a>()&nbsp;-&gt;&nbsp;an&nbsp;iterator&nbsp;over&nbsp;the&nbsp;(key,&nbsp;value)&nbsp;items&nbsp;of&nbsp;D</tt></dd></dl>
-
-<dl><dt><a name="OpenStruct-iterkeys"><strong>iterkeys</strong></a>(...)</dt><dd><tt>D.<a href="#OpenStruct-iterkeys">iterkeys</a>()&nbsp;-&gt;&nbsp;an&nbsp;iterator&nbsp;over&nbsp;the&nbsp;keys&nbsp;of&nbsp;D</tt></dd></dl>
-
-<dl><dt><a name="OpenStruct-itervalues"><strong>itervalues</strong></a>(...)</dt><dd><tt>D.<a href="#OpenStruct-itervalues">itervalues</a>()&nbsp;-&gt;&nbsp;an&nbsp;iterator&nbsp;over&nbsp;the&nbsp;values&nbsp;of&nbsp;D</tt></dd></dl>
-
-<dl><dt><a name="OpenStruct-keys"><strong>keys</strong></a>(...)</dt><dd><tt>D.<a href="#OpenStruct-keys">keys</a>()&nbsp;-&gt;&nbsp;list&nbsp;of&nbsp;D's&nbsp;keys</tt></dd></dl>
-
-<dl><dt><a name="OpenStruct-pop"><strong>pop</strong></a>(...)</dt><dd><tt>D.<a href="#OpenStruct-pop">pop</a>(k[,d])&nbsp;-&gt;&nbsp;v,&nbsp;remove&nbsp;specified&nbsp;key&nbsp;and&nbsp;return&nbsp;the&nbsp;corresponding&nbsp;value.<br>
-If&nbsp;key&nbsp;is&nbsp;not&nbsp;found,&nbsp;d&nbsp;is&nbsp;returned&nbsp;if&nbsp;given,&nbsp;otherwise&nbsp;KeyError&nbsp;is&nbsp;raised</tt></dd></dl>
-
-<dl><dt><a name="OpenStruct-popitem"><strong>popitem</strong></a>(...)</dt><dd><tt>D.<a href="#OpenStruct-popitem">popitem</a>()&nbsp;-&gt;&nbsp;(k,&nbsp;v),&nbsp;remove&nbsp;and&nbsp;return&nbsp;some&nbsp;(key,&nbsp;value)&nbsp;pair&nbsp;as&nbsp;a<br>
-2-tuple;&nbsp;but&nbsp;raise&nbsp;KeyError&nbsp;if&nbsp;D&nbsp;is&nbsp;empty.</tt></dd></dl>
-
-<dl><dt><a name="OpenStruct-setdefault"><strong>setdefault</strong></a>(...)</dt><dd><tt>D.<a href="#OpenStruct-setdefault">setdefault</a>(k[,d])&nbsp;-&gt;&nbsp;D.<a href="#OpenStruct-get">get</a>(k,d),&nbsp;also&nbsp;set&nbsp;D[k]=d&nbsp;if&nbsp;k&nbsp;not&nbsp;in&nbsp;D</tt></dd></dl>
-
-<dl><dt><a name="OpenStruct-update"><strong>update</strong></a>(...)</dt><dd><tt>D.<a href="#OpenStruct-update">update</a>(E,&nbsp;**F)&nbsp;-&gt;&nbsp;None.&nbsp;&nbsp;Update&nbsp;D&nbsp;from&nbsp;<a href="__builtin__.html#dict">dict</a>/iterable&nbsp;E&nbsp;and&nbsp;F.<br>
-If&nbsp;E&nbsp;has&nbsp;a&nbsp;.<a href="#OpenStruct-keys">keys</a>()&nbsp;method,&nbsp;does:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;k&nbsp;in&nbsp;E:&nbsp;D[k]&nbsp;=&nbsp;E[k]<br>
-If&nbsp;E&nbsp;lacks&nbsp;.<a href="#OpenStruct-keys">keys</a>()&nbsp;method,&nbsp;does:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;(k,&nbsp;v)&nbsp;in&nbsp;E:&nbsp;D[k]&nbsp;=&nbsp;v<br>
-In&nbsp;either&nbsp;case,&nbsp;this&nbsp;is&nbsp;followed&nbsp;by:&nbsp;for&nbsp;k&nbsp;in&nbsp;F:&nbsp;D[k]&nbsp;=&nbsp;F[k]</tt></dd></dl>
-
-<dl><dt><a name="OpenStruct-values"><strong>values</strong></a>(...)</dt><dd><tt>D.<a href="#OpenStruct-values">values</a>()&nbsp;-&gt;&nbsp;list&nbsp;of&nbsp;D's&nbsp;values</tt></dd></dl>
-
-<hr>
-Data and other attributes inherited from <a href="__builtin__.html#dict">__builtin__.dict</a>:<br>
-<dl><dt><strong>__hash__</strong> = None</dl>
-
-<dl><dt><strong>__new__</strong> = &lt;built-in method __new__ of type object&gt;<dd><tt>T.<a href="#OpenStruct-__new__">__new__</a>(S,&nbsp;...)&nbsp;-&gt;&nbsp;a&nbsp;new&nbsp;object&nbsp;with&nbsp;type&nbsp;S,&nbsp;a&nbsp;subtype&nbsp;of&nbsp;T</tt></dl>
-
-<dl><dt><strong>fromkeys</strong> = &lt;built-in method fromkeys of type object&gt;<dd><tt><a href="__builtin__.html#dict">dict</a>.<a href="#OpenStruct-fromkeys">fromkeys</a>(S[,v])&nbsp;-&gt;&nbsp;New&nbsp;<a href="__builtin__.html#dict">dict</a>&nbsp;with&nbsp;keys&nbsp;from&nbsp;S&nbsp;and&nbsp;values&nbsp;equal&nbsp;to&nbsp;v.<br>
-v&nbsp;defaults&nbsp;to&nbsp;None.</tt></dl>
-
-</td></tr></table></td></tr></table>
-</body></html>
\ No newline at end of file
diff --git a/doc/pydoc/ranger.ext.shutil_generatorized.html b/doc/pydoc/ranger.ext.shutil_generatorized.html
deleted file mode 100644
index fc938852..00000000
--- a/doc/pydoc/ranger.ext.shutil_generatorized.html
+++ /dev/null
@@ -1,252 +0,0 @@
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html><head><title>Python: module ranger.ext.shutil_generatorized</title>
-</head><body bgcolor="#f0f0f8">
-
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="heading">
-<tr bgcolor="#7799ee">
-<td valign=bottom>&nbsp;<br>
-<font color="#ffffff" face="helvetica, arial">&nbsp;<br><big><big><strong><a href="ranger.html"><font color="#ffffff">ranger</font></a>.<a href="ranger.ext.html"><font color="#ffffff">ext</font></a>.shutil_generatorized</strong></big></big></font></td
-><td align=right valign=bottom
-><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:/home/hut/ranger/ranger/ext/shutil_generatorized.py">/home/hut/ranger/ranger/ext/shutil_generatorized.py</a></font></td></tr></table>
-    <p><tt>Utility&nbsp;functions&nbsp;for&nbsp;copying&nbsp;files&nbsp;and&nbsp;directory&nbsp;trees.<br>
-&nbsp;<br>
-XXX&nbsp;The&nbsp;functions&nbsp;here&nbsp;don't&nbsp;copy&nbsp;the&nbsp;resource&nbsp;fork&nbsp;or&nbsp;other&nbsp;metadata&nbsp;on&nbsp;Mac.</tt></p>
-<p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#aa55cc">
-<td colspan=3 valign=bottom>&nbsp;<br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Modules</strong></big></font></td></tr>
-    
-<tr><td bgcolor="#aa55cc"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
-<td width="100%"><table width="100%" summary="list"><tr><td width="25%" valign=top><a href="os.html">os</a><br>
-</td><td width="25%" valign=top><a href="stat.html">stat</a><br>
-</td><td width="25%" valign=top><a href="sys.html">sys</a><br>
-</td><td width="25%" valign=top></td></tr></table></td></tr></table><p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ee77aa">
-<td colspan=3 valign=bottom>&nbsp;<br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Classes</strong></big></font></td></tr>
-    
-<tr><td bgcolor="#ee77aa"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
-<td width="100%"><dl>
-<dt><font face="helvetica, arial"><a href="exceptions.html#EnvironmentError">exceptions.EnvironmentError</a>(<a href="exceptions.html#StandardError">exceptions.StandardError</a>)
-</font></dt><dd>
-<dl>
-<dt><font face="helvetica, arial"><a href="ranger.ext.shutil_generatorized.html#Error">Error</a>
-</font></dt><dt><font face="helvetica, arial"><a href="ranger.ext.shutil_generatorized.html#SpecialFileError">SpecialFileError</a>
-</font></dt></dl>
-</dd>
-</dl>
- <p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ffc8d8">
-<td colspan=3 valign=bottom>&nbsp;<br>
-<font color="#000000" face="helvetica, arial"><a name="Error">class <strong>Error</strong></a>(<a href="exceptions.html#EnvironmentError">exceptions.EnvironmentError</a>)</font></td></tr>
-    
-<tr><td bgcolor="#ffc8d8"><tt>&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
-<td width="100%"><dl><dt>Method resolution order:</dt>
-<dd><a href="ranger.ext.shutil_generatorized.html#Error">Error</a></dd>
-<dd><a href="exceptions.html#EnvironmentError">exceptions.EnvironmentError</a></dd>
-<dd><a href="exceptions.html#StandardError">exceptions.StandardError</a></dd>
-<dd><a href="exceptions.html#Exception">exceptions.Exception</a></dd>
-<dd><a href="exceptions.html#BaseException">exceptions.BaseException</a></dd>
-<dd><a href="__builtin__.html#object">__builtin__.object</a></dd>
-</dl>
-<hr>
-Data descriptors defined here:<br>
-<dl><dt><strong>__weakref__</strong></dt>
-<dd><tt>list&nbsp;of&nbsp;weak&nbsp;references&nbsp;to&nbsp;the&nbsp;object&nbsp;(if&nbsp;defined)</tt></dd>
-</dl>
-<hr>
-Methods inherited from <a href="exceptions.html#EnvironmentError">exceptions.EnvironmentError</a>:<br>
-<dl><dt><a name="Error-__init__"><strong>__init__</strong></a>(...)</dt><dd><tt>x.<a href="#Error-__init__">__init__</a>(...)&nbsp;initializes&nbsp;x;&nbsp;see&nbsp;x.__class__.__doc__&nbsp;for&nbsp;signature</tt></dd></dl>
-
-<dl><dt><a name="Error-__reduce__"><strong>__reduce__</strong></a>(...)</dt></dl>
-
-<dl><dt><a name="Error-__str__"><strong>__str__</strong></a>(...)</dt><dd><tt>x.<a href="#Error-__str__">__str__</a>()&nbsp;&lt;==&gt;&nbsp;str(x)</tt></dd></dl>
-
-<hr>
-Data descriptors inherited from <a href="exceptions.html#EnvironmentError">exceptions.EnvironmentError</a>:<br>
-<dl><dt><strong>errno</strong></dt>
-<dd><tt>exception&nbsp;errno</tt></dd>
-</dl>
-<dl><dt><strong>filename</strong></dt>
-<dd><tt>exception&nbsp;filename</tt></dd>
-</dl>
-<dl><dt><strong>strerror</strong></dt>
-<dd><tt>exception&nbsp;strerror</tt></dd>
-</dl>
-<hr>
-Data and other attributes inherited from <a href="exceptions.html#EnvironmentError">exceptions.EnvironmentError</a>:<br>
-<dl><dt><strong>__new__</strong> = &lt;built-in method __new__ of type object&gt;<dd><tt>T.<a href="#Error-__new__">__new__</a>(S,&nbsp;...)&nbsp;-&gt;&nbsp;a&nbsp;new&nbsp;object&nbsp;with&nbsp;type&nbsp;S,&nbsp;a&nbsp;subtype&nbsp;of&nbsp;T</tt></dl>
-
-<hr>
-Methods inherited from <a href="exceptions.html#BaseException">exceptions.BaseException</a>:<br>
-<dl><dt><a name="Error-__delattr__"><strong>__delattr__</strong></a>(...)</dt><dd><tt>x.<a href="#Error-__delattr__">__delattr__</a>('name')&nbsp;&lt;==&gt;&nbsp;del&nbsp;x.name</tt></dd></dl>
-
-<dl><dt><a name="Error-__getattribute__"><strong>__getattribute__</strong></a>(...)</dt><dd><tt>x.<a href="#Error-__getattribute__">__getattribute__</a>('name')&nbsp;&lt;==&gt;&nbsp;x.name</tt></dd></dl>
-
-<dl><dt><a name="Error-__getitem__"><strong>__getitem__</strong></a>(...)</dt><dd><tt>x.<a href="#Error-__getitem__">__getitem__</a>(y)&nbsp;&lt;==&gt;&nbsp;x[y]</tt></dd></dl>
-
-<dl><dt><a name="Error-__getslice__"><strong>__getslice__</strong></a>(...)</dt><dd><tt>x.<a href="#Error-__getslice__">__getslice__</a>(i,&nbsp;j)&nbsp;&lt;==&gt;&nbsp;x[i:j]<br>
-&nbsp;<br>
-Use&nbsp;of&nbsp;negative&nbsp;indices&nbsp;is&nbsp;not&nbsp;supported.</tt></dd></dl>
-
-<dl><dt><a name="Error-__repr__"><strong>__repr__</strong></a>(...)</dt><dd><tt>x.<a href="#Error-__repr__">__repr__</a>()&nbsp;&lt;==&gt;&nbsp;repr(x)</tt></dd></dl>
-
-<dl><dt><a name="Error-__setattr__"><strong>__setattr__</strong></a>(...)</dt><dd><tt>x.<a href="#Error-__setattr__">__setattr__</a>('name',&nbsp;value)&nbsp;&lt;==&gt;&nbsp;x.name&nbsp;=&nbsp;value</tt></dd></dl>
-
-<dl><dt><a name="Error-__setstate__"><strong>__setstate__</strong></a>(...)</dt></dl>
-
-<dl><dt><a name="Error-__unicode__"><strong>__unicode__</strong></a>(...)</dt></dl>
-
-<hr>
-Data descriptors inherited from <a href="exceptions.html#BaseException">exceptions.BaseException</a>:<br>
-<dl><dt><strong>__dict__</strong></dt>
-</dl>
-<dl><dt><strong>args</strong></dt>
-</dl>
-<dl><dt><strong>message</strong></dt>
-</dl>
-</td></tr></table> <p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ffc8d8">
-<td colspan=3 valign=bottom>&nbsp;<br>
-<font color="#000000" face="helvetica, arial"><a name="SpecialFileError">class <strong>SpecialFileError</strong></a>(<a href="exceptions.html#EnvironmentError">exceptions.EnvironmentError</a>)</font></td></tr>
-    
-<tr bgcolor="#ffc8d8"><td rowspan=2><tt>&nbsp;&nbsp;&nbsp;</tt></td>
-<td colspan=2><tt>Raised&nbsp;when&nbsp;trying&nbsp;to&nbsp;do&nbsp;a&nbsp;kind&nbsp;of&nbsp;operation&nbsp;(e.g.&nbsp;copying)&nbsp;which&nbsp;is<br>
-not&nbsp;supported&nbsp;on&nbsp;a&nbsp;special&nbsp;file&nbsp;(e.g.&nbsp;a&nbsp;named&nbsp;pipe)<br>&nbsp;</tt></td></tr>
-<tr><td>&nbsp;</td>
-<td width="100%"><dl><dt>Method resolution order:</dt>
-<dd><a href="ranger.ext.shutil_generatorized.html#SpecialFileError">SpecialFileError</a></dd>
-<dd><a href="exceptions.html#EnvironmentError">exceptions.EnvironmentError</a></dd>
-<dd><a href="exceptions.html#StandardError">exceptions.StandardError</a></dd>
-<dd><a href="exceptions.html#Exception">exceptions.Exception</a></dd>
-<dd><a href="exceptions.html#BaseException">exceptions.BaseException</a></dd>
-<dd><a href="__builtin__.html#object">__builtin__.object</a></dd>
-</dl>
-<hr>
-Data descriptors defined here:<br>
-<dl><dt><strong>__weakref__</strong></dt>
-<dd><tt>list&nbsp;of&nbsp;weak&nbsp;references&nbsp;to&nbsp;the&nbsp;object&nbsp;(if&nbsp;defined)</tt></dd>
-</dl>
-<hr>
-Methods inherited from <a href="exceptions.html#EnvironmentError">exceptions.EnvironmentError</a>:<br>
-<dl><dt><a name="SpecialFileError-__init__"><strong>__init__</strong></a>(...)</dt><dd><tt>x.<a href="#SpecialFileError-__init__">__init__</a>(...)&nbsp;initializes&nbsp;x;&nbsp;see&nbsp;x.__class__.__doc__&nbsp;for&nbsp;signature</tt></dd></dl>
-
-<dl><dt><a name="SpecialFileError-__reduce__"><strong>__reduce__</strong></a>(...)</dt></dl>
-
-<dl><dt><a name="SpecialFileError-__str__"><strong>__str__</strong></a>(...)</dt><dd><tt>x.<a href="#SpecialFileError-__str__">__str__</a>()&nbsp;&lt;==&gt;&nbsp;str(x)</tt></dd></dl>
-
-<hr>
-Data descriptors inherited from <a href="exceptions.html#EnvironmentError">exceptions.EnvironmentError</a>:<br>
-<dl><dt><strong>errno</strong></dt>
-<dd><tt>exception&nbsp;errno</tt></dd>
-</dl>
-<dl><dt><strong>filename</strong></dt>
-<dd><tt>exception&nbsp;filename</tt></dd>
-</dl>
-<dl><dt><strong>strerror</strong></dt>
-<dd><tt>exception&nbsp;strerror</tt></dd>
-</dl>
-<hr>
-Data and other attributes inherited from <a href="exceptions.html#EnvironmentError">exceptions.EnvironmentError</a>:<br>
-<dl><dt><strong>__new__</strong> = &lt;built-in method __new__ of type object&gt;<dd><tt>T.<a href="#SpecialFileError-__new__">__new__</a>(S,&nbsp;...)&nbsp;-&gt;&nbsp;a&nbsp;new&nbsp;object&nbsp;with&nbsp;type&nbsp;S,&nbsp;a&nbsp;subtype&nbsp;of&nbsp;T</tt></dl>
-
-<hr>
-Methods inherited from <a href="exceptions.html#BaseException">exceptions.BaseException</a>:<br>
-<dl><dt><a name="SpecialFileError-__delattr__"><strong>__delattr__</strong></a>(...)</dt><dd><tt>x.<a href="#SpecialFileError-__delattr__">__delattr__</a>('name')&nbsp;&lt;==&gt;&nbsp;del&nbsp;x.name</tt></dd></dl>
-
-<dl><dt><a name="SpecialFileError-__getattribute__"><strong>__getattribute__</strong></a>(...)</dt><dd><tt>x.<a href="#SpecialFileError-__getattribute__">__getattribute__</a>('name')&nbsp;&lt;==&gt;&nbsp;x.name</tt></dd></dl>
-
-<dl><dt><a name="SpecialFileError-__getitem__"><strong>__getitem__</strong></a>(...)</dt><dd><tt>x.<a href="#SpecialFileError-__getitem__">__getitem__</a>(y)&nbsp;&lt;==&gt;&nbsp;x[y]</tt></dd></dl>
-
-<dl><dt><a name="SpecialFileError-__getslice__"><strong>__getslice__</strong></a>(...)</dt><dd><tt>x.<a href="#SpecialFileError-__getslice__">__getslice__</a>(i,&nbsp;j)&nbsp;&lt;==&gt;&nbsp;x[i:j]<br>
-&nbsp;<br>
-Use&nbsp;of&nbsp;negative&nbsp;indices&nbsp;is&nbsp;not&nbsp;supported.</tt></dd></dl>
-
-<dl><dt><a name="SpecialFileError-__repr__"><strong>__repr__</strong></a>(...)</dt><dd><tt>x.<a href="#SpecialFileError-__repr__">__repr__</a>()&nbsp;&lt;==&gt;&nbsp;repr(x)</tt></dd></dl>
-
-<dl><dt><a name="SpecialFileError-__setattr__"><strong>__setattr__</strong></a>(...)</dt><dd><tt>x.<a href="#SpecialFileError-__setattr__">__setattr__</a>('name',&nbsp;value)&nbsp;&lt;==&gt;&nbsp;x.name&nbsp;=&nbsp;value</tt></dd></dl>
-
-<dl><dt><a name="SpecialFileError-__setstate__"><strong>__setstate__</strong></a>(...)</dt></dl>
-
-<dl><dt><a name="SpecialFileError-__unicode__"><strong>__unicode__</strong></a>(...)</dt></dl>
-
-<hr>
-Data descriptors inherited from <a href="exceptions.html#BaseException">exceptions.BaseException</a>:<br>
-<dl><dt><strong>__dict__</strong></dt>
-</dl>
-<dl><dt><strong>args</strong></dt>
-</dl>
-<dl><dt><strong>message</strong></dt>
-</dl>
-</td></tr></table></td></tr></table><p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#eeaa77">
-<td colspan=3 valign=bottom>&nbsp;<br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Functions</strong></big></font></td></tr>
-    
-<tr><td bgcolor="#eeaa77"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
-<td width="100%"><dl><dt><a name="-copy2"><strong>copy2</strong></a>(src, dst, overwrite<font color="#909090">=False</font>, symlinks<font color="#909090">=False</font>)</dt><dd><tt>Copy&nbsp;data&nbsp;and&nbsp;all&nbsp;stat&nbsp;info&nbsp;("cp&nbsp;-p&nbsp;src&nbsp;dst").<br>
-&nbsp;<br>
-The&nbsp;destination&nbsp;may&nbsp;be&nbsp;a&nbsp;directory.</tt></dd></dl>
- <dl><dt><a name="-copyfile"><strong>copyfile</strong></a>(src, dst)</dt><dd><tt>Copy&nbsp;data&nbsp;from&nbsp;src&nbsp;to&nbsp;dst</tt></dd></dl>
- <dl><dt><a name="-copyfileobj"><strong>copyfileobj</strong></a>(fsrc, fdst, length<font color="#909090">=16384</font>)</dt><dd><tt>copy&nbsp;data&nbsp;from&nbsp;file-like&nbsp;object&nbsp;fsrc&nbsp;to&nbsp;file-like&nbsp;object&nbsp;fdst</tt></dd></dl>
- <dl><dt><a name="-copystat"><strong>copystat</strong></a>(src, dst)</dt><dd><tt>Copy&nbsp;all&nbsp;stat&nbsp;info&nbsp;(mode&nbsp;bits,&nbsp;atime,&nbsp;mtime,&nbsp;flags)&nbsp;from&nbsp;src&nbsp;to&nbsp;dst</tt></dd></dl>
- <dl><dt><a name="-copytree"><strong>copytree</strong></a>(src, dst, symlinks<font color="#909090">=False</font>, ignore<font color="#909090">=None</font>, overwrite<font color="#909090">=False</font>)</dt><dd><tt>Recursively&nbsp;copy&nbsp;a&nbsp;directory&nbsp;tree&nbsp;using&nbsp;<a href="#-copy2">copy2</a>().<br>
-&nbsp;<br>
-The&nbsp;destination&nbsp;directory&nbsp;must&nbsp;not&nbsp;already&nbsp;exist.<br>
-If&nbsp;exception(s)&nbsp;occur,&nbsp;an&nbsp;<a href="#Error">Error</a>&nbsp;is&nbsp;raised&nbsp;with&nbsp;a&nbsp;list&nbsp;of&nbsp;reasons.<br>
-&nbsp;<br>
-If&nbsp;the&nbsp;optional&nbsp;symlinks&nbsp;flag&nbsp;is&nbsp;true,&nbsp;symbolic&nbsp;links&nbsp;in&nbsp;the<br>
-source&nbsp;tree&nbsp;result&nbsp;in&nbsp;symbolic&nbsp;links&nbsp;in&nbsp;the&nbsp;destination&nbsp;tree;&nbsp;if<br>
-it&nbsp;is&nbsp;false,&nbsp;the&nbsp;contents&nbsp;of&nbsp;the&nbsp;files&nbsp;pointed&nbsp;to&nbsp;by&nbsp;symbolic<br>
-links&nbsp;are&nbsp;copied.<br>
-&nbsp;<br>
-The&nbsp;optional&nbsp;ignore&nbsp;argument&nbsp;is&nbsp;a&nbsp;callable.&nbsp;If&nbsp;given,&nbsp;it<br>
-is&nbsp;called&nbsp;with&nbsp;the&nbsp;`src`&nbsp;parameter,&nbsp;which&nbsp;is&nbsp;the&nbsp;directory<br>
-being&nbsp;visited&nbsp;by&nbsp;<a href="#-copytree">copytree</a>(),&nbsp;and&nbsp;`names`&nbsp;which&nbsp;is&nbsp;the&nbsp;list&nbsp;of<br>
-`src`&nbsp;contents,&nbsp;as&nbsp;returned&nbsp;by&nbsp;os.listdir():<br>
-&nbsp;<br>
-&nbsp;&nbsp;&nbsp;&nbsp;callable(src,&nbsp;names)&nbsp;-&gt;&nbsp;ignored_names<br>
-&nbsp;<br>
-Since&nbsp;<a href="#-copytree">copytree</a>()&nbsp;is&nbsp;called&nbsp;recursively,&nbsp;the&nbsp;callable&nbsp;will&nbsp;be<br>
-called&nbsp;once&nbsp;for&nbsp;each&nbsp;directory&nbsp;that&nbsp;is&nbsp;copied.&nbsp;It&nbsp;returns&nbsp;a<br>
-list&nbsp;of&nbsp;names&nbsp;relative&nbsp;to&nbsp;the&nbsp;`src`&nbsp;directory&nbsp;that&nbsp;should<br>
-not&nbsp;be&nbsp;copied.<br>
-&nbsp;<br>
-XXX&nbsp;Consider&nbsp;this&nbsp;example&nbsp;code&nbsp;rather&nbsp;than&nbsp;the&nbsp;ultimate&nbsp;tool.</tt></dd></dl>
- <dl><dt><a name="-move"><strong>move</strong></a>(src, dst, overwrite<font color="#909090">=False</font>)</dt><dd><tt>Recursively&nbsp;move&nbsp;a&nbsp;file&nbsp;or&nbsp;directory&nbsp;to&nbsp;another&nbsp;location.&nbsp;This&nbsp;is<br>
-similar&nbsp;to&nbsp;the&nbsp;Unix&nbsp;"mv"&nbsp;command.<br>
-&nbsp;<br>
-If&nbsp;the&nbsp;destination&nbsp;is&nbsp;a&nbsp;directory&nbsp;or&nbsp;a&nbsp;symlink&nbsp;to&nbsp;a&nbsp;directory,&nbsp;the&nbsp;source<br>
-is&nbsp;moved&nbsp;inside&nbsp;the&nbsp;directory.&nbsp;The&nbsp;destination&nbsp;path&nbsp;must&nbsp;not&nbsp;already<br>
-exist.<br>
-&nbsp;<br>
-If&nbsp;the&nbsp;destination&nbsp;already&nbsp;exists&nbsp;but&nbsp;is&nbsp;not&nbsp;a&nbsp;directory,&nbsp;it&nbsp;may&nbsp;be<br>
-overwritten&nbsp;depending&nbsp;on&nbsp;os.rename()&nbsp;semantics.<br>
-&nbsp;<br>
-If&nbsp;the&nbsp;destination&nbsp;is&nbsp;on&nbsp;our&nbsp;current&nbsp;filesystem,&nbsp;then&nbsp;rename()&nbsp;is&nbsp;used.<br>
-Otherwise,&nbsp;src&nbsp;is&nbsp;copied&nbsp;to&nbsp;the&nbsp;destination&nbsp;and&nbsp;then&nbsp;removed.<br>
-A&nbsp;lot&nbsp;more&nbsp;could&nbsp;be&nbsp;done&nbsp;here...&nbsp;&nbsp;A&nbsp;look&nbsp;at&nbsp;a&nbsp;mv.c&nbsp;shows&nbsp;a&nbsp;lot&nbsp;of<br>
-the&nbsp;issues&nbsp;this&nbsp;implementation&nbsp;glosses&nbsp;over.</tt></dd></dl>
- <dl><dt><a name="-rmtree"><strong>rmtree</strong></a>(path, ignore_errors<font color="#909090">=False</font>, onerror<font color="#909090">=None</font>)</dt><dd><tt>Recursively&nbsp;delete&nbsp;a&nbsp;directory&nbsp;tree.<br>
-&nbsp;<br>
-If&nbsp;ignore_errors&nbsp;is&nbsp;set,&nbsp;errors&nbsp;are&nbsp;ignored;&nbsp;otherwise,&nbsp;if&nbsp;onerror<br>
-is&nbsp;set,&nbsp;it&nbsp;is&nbsp;called&nbsp;to&nbsp;handle&nbsp;the&nbsp;error&nbsp;with&nbsp;arguments&nbsp;(func,<br>
-path,&nbsp;exc_info)&nbsp;where&nbsp;func&nbsp;is&nbsp;os.listdir,&nbsp;os.remove,&nbsp;or&nbsp;os.rmdir;<br>
-path&nbsp;is&nbsp;the&nbsp;argument&nbsp;to&nbsp;that&nbsp;function&nbsp;that&nbsp;caused&nbsp;it&nbsp;to&nbsp;fail;&nbsp;and<br>
-exc_info&nbsp;is&nbsp;a&nbsp;tuple&nbsp;returned&nbsp;by&nbsp;sys.exc_info().&nbsp;&nbsp;If&nbsp;ignore_errors<br>
-is&nbsp;false&nbsp;and&nbsp;onerror&nbsp;is&nbsp;None,&nbsp;an&nbsp;exception&nbsp;is&nbsp;raised.</tt></dd></dl>
-</td></tr></table><p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#55aa55">
-<td colspan=3 valign=bottom>&nbsp;<br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Data</strong></big></font></td></tr>
-    
-<tr><td bgcolor="#55aa55"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
-<td width="100%"><strong>__all__</strong> = ['copyfileobj', 'copyfile', 'copystat', 'copy2', 'copytree', 'move', 'rmtree', 'Error', 'SpecialFileError']</td></tr></table>
-</body></html>
\ No newline at end of file
diff --git a/doc/pydoc/ranger.ext.waitpid_no_intr.html b/doc/pydoc/ranger.ext.waitpid_no_intr.html
deleted file mode 100644
index c0ef5666..00000000
--- a/doc/pydoc/ranger.ext.waitpid_no_intr.html
+++ /dev/null
@@ -1,45 +0,0 @@
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html><head><title>Python: module ranger.ext.waitpid_no_intr</title>
-</head><body bgcolor="#f0f0f8">
-
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="heading">
-<tr bgcolor="#7799ee">
-<td valign=bottom>&nbsp;<br>
-<font color="#ffffff" face="helvetica, arial">&nbsp;<br><big><big><strong><a href="ranger.html"><font color="#ffffff">ranger</font></a>.<a href="ranger.ext.html"><font color="#ffffff">ext</font></a>.waitpid_no_intr</strong></big></big></font></td
-><td align=right valign=bottom
-><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:/home/hut/ranger/ranger/ext/waitpid_no_intr.py">/home/hut/ranger/ranger/ext/waitpid_no_intr.py</a></font></td></tr></table>
-    <p><tt>#&nbsp;Copyright&nbsp;(C)&nbsp;2009,&nbsp;2010&nbsp;&nbsp;Roman&nbsp;Zimbelmann&nbsp;&lt;romanz@lavabit.com&gt;<br>
-#<br>
-#&nbsp;This&nbsp;program&nbsp;is&nbsp;free&nbsp;software:&nbsp;you&nbsp;can&nbsp;redistribute&nbsp;it&nbsp;and/or&nbsp;modify<br>
-#&nbsp;it&nbsp;under&nbsp;the&nbsp;terms&nbsp;of&nbsp;the&nbsp;GNU&nbsp;General&nbsp;Public&nbsp;License&nbsp;as&nbsp;published&nbsp;by<br>
-#&nbsp;the&nbsp;Free&nbsp;Software&nbsp;Foundation,&nbsp;either&nbsp;version&nbsp;3&nbsp;of&nbsp;the&nbsp;License,&nbsp;or<br>
-#&nbsp;(at&nbsp;your&nbsp;option)&nbsp;any&nbsp;later&nbsp;version.<br>
-#<br>
-#&nbsp;This&nbsp;program&nbsp;is&nbsp;distributed&nbsp;in&nbsp;the&nbsp;hope&nbsp;that&nbsp;it&nbsp;will&nbsp;be&nbsp;useful,<br>
-#&nbsp;but&nbsp;WITHOUT&nbsp;ANY&nbsp;WARRANTY;&nbsp;without&nbsp;even&nbsp;the&nbsp;implied&nbsp;warranty&nbsp;of<br>
-#&nbsp;MERCHANTABILITY&nbsp;or&nbsp;FITNESS&nbsp;FOR&nbsp;A&nbsp;PARTICULAR&nbsp;PURPOSE.&nbsp;&nbsp;See&nbsp;the<br>
-#&nbsp;GNU&nbsp;General&nbsp;Public&nbsp;License&nbsp;for&nbsp;more&nbsp;details.<br>
-#<br>
-#&nbsp;You&nbsp;should&nbsp;have&nbsp;received&nbsp;a&nbsp;copy&nbsp;of&nbsp;the&nbsp;GNU&nbsp;General&nbsp;Public&nbsp;License<br>
-#&nbsp;along&nbsp;with&nbsp;this&nbsp;program.&nbsp;&nbsp;If&nbsp;not,&nbsp;see&nbsp;&lt;<a href="http://www.gnu.org/licenses/">http://www.gnu.org/licenses/</a>&gt;.</tt></p>
-<p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#eeaa77">
-<td colspan=3 valign=bottom>&nbsp;<br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Functions</strong></big></font></td></tr>
-    
-<tr><td bgcolor="#eeaa77"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
-<td width="100%"><dl><dt><a name="-waitpid"><strong>waitpid</strong></a>(...)</dt><dd><tt><a href="#-waitpid">waitpid</a>(pid,&nbsp;options)&nbsp;-&gt;&nbsp;(pid,&nbsp;status)<br>
-&nbsp;<br>
-Wait&nbsp;for&nbsp;completion&nbsp;of&nbsp;a&nbsp;given&nbsp;child&nbsp;process.</tt></dd></dl>
- <dl><dt><a name="-waitpid_no_intr"><strong>waitpid_no_intr</strong></a>(pid)</dt><dd><tt>catch&nbsp;interrupts&nbsp;which&nbsp;occur&nbsp;while&nbsp;using&nbsp;os.waitpid</tt></dd></dl>
-</td></tr></table><p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#55aa55">
-<td colspan=3 valign=bottom>&nbsp;<br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Data</strong></big></font></td></tr>
-    
-<tr><td bgcolor="#55aa55"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
-<td width="100%"><strong>EINTR</strong> = 4</td></tr></table>
-</body></html>
\ No newline at end of file
diff --git a/doc/pydoc/ranger.fsobject.directory.html b/doc/pydoc/ranger.fsobject.directory.html
deleted file mode 100644
index 79dfc957..00000000
--- a/doc/pydoc/ranger.fsobject.directory.html
+++ /dev/null
@@ -1,398 +0,0 @@
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html><head><title>Python: module ranger.fsobject.directory</title>
-</head><body bgcolor="#f0f0f8">
-
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="heading">
-<tr bgcolor="#7799ee">
-<td valign=bottom>&nbsp;<br>
-<font color="#ffffff" face="helvetica, arial">&nbsp;<br><big><big><strong><a href="ranger.html"><font color="#ffffff">ranger</font></a>.<a href="ranger.fsobject.html"><font color="#ffffff">fsobject</font></a>.directory</strong></big></big></font></td
-><td align=right valign=bottom
-><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:/home/hut/ranger/ranger/fsobject/directory.py">/home/hut/ranger/ranger/fsobject/directory.py</a></font></td></tr></table>
-    <p><tt>#&nbsp;Copyright&nbsp;(C)&nbsp;2009,&nbsp;2010&nbsp;&nbsp;Roman&nbsp;Zimbelmann&nbsp;&lt;romanz@lavabit.com&gt;<br>
-#<br>
-#&nbsp;This&nbsp;program&nbsp;is&nbsp;free&nbsp;software:&nbsp;you&nbsp;can&nbsp;redistribute&nbsp;it&nbsp;and/or&nbsp;modify<br>
-#&nbsp;it&nbsp;under&nbsp;the&nbsp;terms&nbsp;of&nbsp;the&nbsp;GNU&nbsp;General&nbsp;Public&nbsp;License&nbsp;as&nbsp;published&nbsp;by<br>
-#&nbsp;the&nbsp;Free&nbsp;Software&nbsp;Foundation,&nbsp;either&nbsp;version&nbsp;3&nbsp;of&nbsp;the&nbsp;License,&nbsp;or<br>
-#&nbsp;(at&nbsp;your&nbsp;option)&nbsp;any&nbsp;later&nbsp;version.<br>
-#<br>
-#&nbsp;This&nbsp;program&nbsp;is&nbsp;distributed&nbsp;in&nbsp;the&nbsp;hope&nbsp;that&nbsp;it&nbsp;will&nbsp;be&nbsp;useful,<br>
-#&nbsp;but&nbsp;WITHOUT&nbsp;ANY&nbsp;WARRANTY;&nbsp;without&nbsp;even&nbsp;the&nbsp;implied&nbsp;warranty&nbsp;of<br>
-#&nbsp;MERCHANTABILITY&nbsp;or&nbsp;FITNESS&nbsp;FOR&nbsp;A&nbsp;PARTICULAR&nbsp;PURPOSE.&nbsp;&nbsp;See&nbsp;the<br>
-#&nbsp;GNU&nbsp;General&nbsp;Public&nbsp;License&nbsp;for&nbsp;more&nbsp;details.<br>
-#<br>
-#&nbsp;You&nbsp;should&nbsp;have&nbsp;received&nbsp;a&nbsp;copy&nbsp;of&nbsp;the&nbsp;GNU&nbsp;General&nbsp;Public&nbsp;License<br>
-#&nbsp;along&nbsp;with&nbsp;this&nbsp;program.&nbsp;&nbsp;If&nbsp;not,&nbsp;see&nbsp;&lt;<a href="http://www.gnu.org/licenses/">http://www.gnu.org/licenses/</a>&gt;.</tt></p>
-<p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#aa55cc">
-<td colspan=3 valign=bottom>&nbsp;<br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Modules</strong></big></font></td></tr>
-    
-<tr><td bgcolor="#aa55cc"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
-<td width="100%"><table width="100%" summary="list"><tr><td width="25%" valign=top><a href="os.html">os</a><br>
-</td><td width="25%" valign=top><a href="ranger.html">ranger</a><br>
-</td><td width="25%" valign=top></td><td width="25%" valign=top></td></tr></table></td></tr></table><p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ee77aa">
-<td colspan=3 valign=bottom>&nbsp;<br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Classes</strong></big></font></td></tr>
-    
-<tr><td bgcolor="#ee77aa"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
-<td width="100%"><dl>
-<dt><font face="helvetica, arial"><a href="exceptions.html#Exception">exceptions.Exception</a>(<a href="exceptions.html#BaseException">exceptions.BaseException</a>)
-</font></dt><dd>
-<dl>
-<dt><font face="helvetica, arial"><a href="ranger.fsobject.directory.html#NoDirectoryGiven">NoDirectoryGiven</a>
-</font></dt></dl>
-</dd>
-<dt><font face="helvetica, arial"><a href="ranger.ext.accumulator.html#Accumulator">ranger.ext.accumulator.Accumulator</a>(<a href="__builtin__.html#object">__builtin__.object</a>)
-</font></dt><dd>
-<dl>
-<dt><font face="helvetica, arial"><a href="ranger.fsobject.directory.html#Directory">Directory</a>(<a href="ranger.fsobject.fsobject.html#FileSystemObject">ranger.fsobject.fsobject.FileSystemObject</a>, <a href="ranger.ext.accumulator.html#Accumulator">ranger.ext.accumulator.Accumulator</a>, <a href="ranger.shared.settings.html#SettingsAware">ranger.shared.settings.SettingsAware</a>)
-</font></dt></dl>
-</dd>
-<dt><font face="helvetica, arial"><a href="ranger.fsobject.fsobject.html#FileSystemObject">ranger.fsobject.fsobject.FileSystemObject</a>(<a href="ranger.shared.mimetype.html#MimeTypeAware">ranger.shared.mimetype.MimeTypeAware</a>, <a href="ranger.shared.html#FileManagerAware">ranger.shared.FileManagerAware</a>)
-</font></dt><dd>
-<dl>
-<dt><font face="helvetica, arial"><a href="ranger.fsobject.directory.html#Directory">Directory</a>(<a href="ranger.fsobject.fsobject.html#FileSystemObject">ranger.fsobject.fsobject.FileSystemObject</a>, <a href="ranger.ext.accumulator.html#Accumulator">ranger.ext.accumulator.Accumulator</a>, <a href="ranger.shared.settings.html#SettingsAware">ranger.shared.settings.SettingsAware</a>)
-</font></dt></dl>
-</dd>
-<dt><font face="helvetica, arial"><a href="ranger.shared.settings.html#SettingsAware">ranger.shared.settings.SettingsAware</a>(<a href="__builtin__.html#object">__builtin__.object</a>)
-</font></dt><dd>
-<dl>
-<dt><font face="helvetica, arial"><a href="ranger.fsobject.directory.html#Directory">Directory</a>(<a href="ranger.fsobject.fsobject.html#FileSystemObject">ranger.fsobject.fsobject.FileSystemObject</a>, <a href="ranger.ext.accumulator.html#Accumulator">ranger.ext.accumulator.Accumulator</a>, <a href="ranger.shared.settings.html#SettingsAware">ranger.shared.settings.SettingsAware</a>)
-</font></dt></dl>
-</dd>
-</dl>
- <p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ffc8d8">
-<td colspan=3 valign=bottom>&nbsp;<br>
-<font color="#000000" face="helvetica, arial"><a name="Directory">class <strong>Directory</strong></a>(<a href="ranger.fsobject.fsobject.html#FileSystemObject">ranger.fsobject.fsobject.FileSystemObject</a>, <a href="ranger.ext.accumulator.html#Accumulator">ranger.ext.accumulator.Accumulator</a>, <a href="ranger.shared.settings.html#SettingsAware">ranger.shared.settings.SettingsAware</a>)</font></td></tr>
-    
-<tr><td bgcolor="#ffc8d8"><tt>&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
-<td width="100%"><dl><dt>Method resolution order:</dt>
-<dd><a href="ranger.fsobject.directory.html#Directory">Directory</a></dd>
-<dd><a href="ranger.fsobject.fsobject.html#FileSystemObject">ranger.fsobject.fsobject.FileSystemObject</a></dd>
-<dd><a href="ranger.shared.mimetype.html#MimeTypeAware">ranger.shared.mimetype.MimeTypeAware</a></dd>
-<dd><a href="ranger.shared.html#FileManagerAware">ranger.shared.FileManagerAware</a></dd>
-<dd><a href="ranger.shared.html#Awareness">ranger.shared.Awareness</a></dd>
-<dd><a href="ranger.ext.accumulator.html#Accumulator">ranger.ext.accumulator.Accumulator</a></dd>
-<dd><a href="ranger.shared.settings.html#SettingsAware">ranger.shared.settings.SettingsAware</a></dd>
-<dd><a href="__builtin__.html#object">__builtin__.object</a></dd>
-</dl>
-<hr>
-Methods defined here:<br>
-<dl><dt><a name="Directory-__bool__"><strong>__bool__</strong></a> = <a href="#Directory-__nonzero__">__nonzero__</a>(self)</dt></dl>
-
-<dl><dt><a name="Directory-__eq__"><strong>__eq__</strong></a>(self, other)</dt><dd><tt>Check&nbsp;for&nbsp;equality&nbsp;of&nbsp;the&nbsp;directories&nbsp;paths</tt></dd></dl>
-
-<dl><dt><a name="Directory-__hash__"><strong>__hash__</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="Directory-__init__"><strong>__init__</strong></a>(self, path)</dt></dl>
-
-<dl><dt><a name="Directory-__len__"><strong>__len__</strong></a>(self)</dt><dd><tt>The&nbsp;number&nbsp;of&nbsp;containing&nbsp;files</tt></dd></dl>
-
-<dl><dt><a name="Directory-__neq__"><strong>__neq__</strong></a>(self, other)</dt><dd><tt>Check&nbsp;for&nbsp;inequality&nbsp;of&nbsp;the&nbsp;directories&nbsp;paths</tt></dd></dl>
-
-<dl><dt><a name="Directory-__nonzero__"><strong>__nonzero__</strong></a>(self)</dt><dd><tt>Always&nbsp;True</tt></dd></dl>
-
-<dl><dt><a name="Directory-correct_pointer"><strong>correct_pointer</strong></a>(self)</dt><dd><tt>Make&nbsp;sure&nbsp;the&nbsp;pointer&nbsp;is&nbsp;in&nbsp;the&nbsp;valid&nbsp;range</tt></dd></dl>
-
-<dl><dt><a name="Directory-cycle"><strong>cycle</strong></a>(self, forward<font color="#909090">=True</font>)</dt></dl>
-
-<dl><dt><a name="Directory-empty"><strong>empty</strong></a>(self)</dt><dd><tt>Is&nbsp;the&nbsp;directory&nbsp;empty?</tt></dd></dl>
-
-<dl><dt><a name="Directory-get_list"><strong>get_list</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="Directory-get_selection"><strong>get_selection</strong></a>(self)</dt><dd><tt>READ&nbsp;ONLY</tt></dd></dl>
-
-<dl><dt><a name="Directory-load_bit_by_bit"><strong>load_bit_by_bit</strong></a>(self)</dt><dd><tt>Returns&nbsp;a&nbsp;generator&nbsp;which&nbsp;load&nbsp;a&nbsp;part&nbsp;of&nbsp;the&nbsp;directory<br>
-in&nbsp;each&nbsp;iteration.</tt></dd></dl>
-
-<dl><dt><a name="Directory-load_content"><strong>load_content</strong></a>(self, schedule<font color="#909090">=None</font>)</dt><dd><tt>Loads&nbsp;the&nbsp;contents&nbsp;of&nbsp;the&nbsp;directory.&nbsp;Use&nbsp;this&nbsp;sparingly&nbsp;since<br>
-it&nbsp;takes&nbsp;rather&nbsp;long.</tt></dd></dl>
-
-<dl><dt><a name="Directory-load_content_if_outdated"><strong>load_content_if_outdated</strong></a>(self, *a, **k)</dt><dd><tt>Load&nbsp;the&nbsp;contents&nbsp;of&nbsp;the&nbsp;directory&nbsp;if&nbsp;it's<br>
-outdated&nbsp;or&nbsp;not&nbsp;done&nbsp;yet</tt></dd></dl>
-
-<dl><dt><a name="Directory-load_content_once"><strong>load_content_once</strong></a>(self, *a, **k)</dt><dd><tt>Load&nbsp;the&nbsp;contents&nbsp;of&nbsp;the&nbsp;directory&nbsp;if&nbsp;not&nbsp;done&nbsp;yet</tt></dd></dl>
-
-<dl><dt><a name="Directory-mark_all"><strong>mark_all</strong></a>(self, val)</dt></dl>
-
-<dl><dt><a name="Directory-mark_item"><strong>mark_item</strong></a>(self, item, val)</dt></dl>
-
-<dl><dt><a name="Directory-move_to_obj"><strong>move_to_obj</strong></a>(self, arg)</dt></dl>
-
-<dl><dt><a name="Directory-request_reload"><strong>request_reload</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="Directory-request_resort"><strong>request_resort</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="Directory-search_fnc"><strong>search_fnc</strong></a>(self, fnc, forward<font color="#909090">=True</font>)</dt></dl>
-
-<dl><dt><a name="Directory-set_cycle_list"><strong>set_cycle_list</strong></a>(self, lst)</dt></dl>
-
-<dl><dt><a name="Directory-sort"><strong>sort</strong></a>(self)</dt><dd><tt>Sort&nbsp;the&nbsp;containing&nbsp;files</tt></dd></dl>
-
-<dl><dt><a name="Directory-sort_if_outdated"><strong>sort_if_outdated</strong></a>(self)</dt><dd><tt>Sort&nbsp;the&nbsp;containing&nbsp;files&nbsp;if&nbsp;they&nbsp;are&nbsp;outdated</tt></dd></dl>
-
-<dl><dt><a name="Directory-toggle_all_marks"><strong>toggle_all_marks</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="Directory-toggle_mark"><strong>toggle_mark</strong></a>(self, item)</dt></dl>
-
-<dl><dt><a name="Directory-unload"><strong>unload</strong></a>(self)</dt></dl>
-
-<hr>
-Data and other attributes defined here:<br>
-<dl><dt><strong>content_loaded</strong> = False</dl>
-
-<dl><dt><strong>content_outdated</strong> = False</dl>
-
-<dl><dt><strong>cycle_list</strong> = None</dl>
-
-<dl><dt><strong>disk_usage</strong> = 0</dl>
-
-<dl><dt><strong>enterable</strong> = False</dl>
-
-<dl><dt><strong>filenames</strong> = None</dl>
-
-<dl><dt><strong>files</strong> = None</dl>
-
-<dl><dt><strong>filter</strong> = None</dl>
-
-<dl><dt><strong>is_directory</strong> = True</dl>
-
-<dl><dt><strong>last_update_time</strong> = -1</dl>
-
-<dl><dt><strong>load_content_mtime</strong> = -1</dl>
-
-<dl><dt><strong>load_generator</strong> = None</dl>
-
-<dl><dt><strong>loading</strong> = False</dl>
-
-<dl><dt><strong>marked_items</strong> = None</dl>
-
-<dl><dt><strong>mount_path</strong> = '/'</dl>
-
-<dl><dt><strong>order_outdated</strong> = False</dl>
-
-<dl><dt><strong>scroll_begin</strong> = 0</dl>
-
-<dl><dt><strong>scroll_offset</strong> = 0</dl>
-
-<dl><dt><strong>sort_dict</strong> = {'basename': &lt;function sort_by_basename&gt;, 'mtime': &lt;function &lt;lambda&gt;&gt;, 'size': &lt;function &lt;lambda&gt;&gt;, 'type': &lt;function &lt;lambda&gt;&gt;}</dl>
-
-<hr>
-Methods inherited from <a href="ranger.fsobject.fsobject.html#FileSystemObject">ranger.fsobject.fsobject.FileSystemObject</a>:<br>
-<dl><dt><a name="Directory-__repr__"><strong>__repr__</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="Directory-__str__"><strong>__str__</strong></a>(self)</dt><dd><tt>returns&nbsp;a&nbsp;string&nbsp;containing&nbsp;the&nbsp;absolute&nbsp;path</tt></dd></dl>
-
-<dl><dt><a name="Directory-determine_infostring"><strong>determine_infostring</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="Directory-get_description"><strong>get_description</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="Directory-get_permission_string"><strong>get_permission_string</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="Directory-go"><strong>go</strong></a>(self)</dt><dd><tt>enter&nbsp;the&nbsp;directory&nbsp;if&nbsp;the&nbsp;filemanager&nbsp;is&nbsp;running</tt></dd></dl>
-
-<dl><dt><a name="Directory-is_older_than"><strong>is_older_than</strong></a>(self, seconds)</dt><dd><tt>returns&nbsp;whether&nbsp;this&nbsp;object&nbsp;wasn't&nbsp;<a href="#Directory-use">use</a>()d&nbsp;in&nbsp;the&nbsp;last&nbsp;n&nbsp;seconds</tt></dd></dl>
-
-<dl><dt><a name="Directory-load"><strong>load</strong></a>(self)</dt><dd><tt>reads&nbsp;useful&nbsp;information&nbsp;about&nbsp;the&nbsp;filesystem-object&nbsp;from&nbsp;the<br>
-filesystem&nbsp;and&nbsp;caches&nbsp;it&nbsp;for&nbsp;later&nbsp;use</tt></dd></dl>
-
-<dl><dt><a name="Directory-load_if_outdated"><strong>load_if_outdated</strong></a>(self)</dt><dd><tt>Calls&nbsp;<a href="#Directory-load">load</a>()&nbsp;if&nbsp;the&nbsp;currently&nbsp;cached&nbsp;information&nbsp;is&nbsp;outdated<br>
-or&nbsp;nonexistant.</tt></dd></dl>
-
-<dl><dt><a name="Directory-load_once"><strong>load_once</strong></a>(self)</dt><dd><tt>calls&nbsp;<a href="#Directory-load">load</a>()&nbsp;if&nbsp;it&nbsp;has&nbsp;not&nbsp;been&nbsp;called&nbsp;at&nbsp;least&nbsp;once&nbsp;yet</tt></dd></dl>
-
-<dl><dt><a name="Directory-mark"><strong>mark</strong></a>(self, boolean)</dt></dl>
-
-<dl><dt><a name="Directory-set_mimetype"><strong>set_mimetype</strong></a>(self)</dt><dd><tt>assign&nbsp;attributes&nbsp;such&nbsp;as&nbsp;self.<strong>video</strong>&nbsp;according&nbsp;to&nbsp;the&nbsp;mimetype</tt></dd></dl>
-
-<dl><dt><a name="Directory-use"><strong>use</strong></a>(self)</dt><dd><tt>mark&nbsp;the&nbsp;filesystem-object&nbsp;as&nbsp;used&nbsp;at&nbsp;the&nbsp;current&nbsp;time</tt></dd></dl>
-
-<hr>
-Data descriptors inherited from <a href="ranger.fsobject.fsobject.html#FileSystemObject">ranger.fsobject.fsobject.FileSystemObject</a>:<br>
-<dl><dt><strong>filetype</strong></dt>
-</dl>
-<dl><dt><strong>shell_escaped_basename</strong></dt>
-</dl>
-<hr>
-Data and other attributes inherited from <a href="ranger.fsobject.fsobject.html#FileSystemObject">ranger.fsobject.fsobject.FileSystemObject</a>:<br>
-<dl><dt><strong>accessible</strong> = False</dl>
-
-<dl><dt><strong>audio</strong> = False</dl>
-
-<dl><dt><strong>basename</strong> = None</dl>
-
-<dl><dt><strong>basename_lower</strong> = None</dl>
-
-<dl><dt><strong>container</strong> = False</dl>
-
-<dl><dt><strong>dirname</strong> = None</dl>
-
-<dl><dt><strong>document</strong> = False</dl>
-
-<dl><dt><strong>exists</strong> = False</dl>
-
-<dl><dt><strong>extension</strong> = None</dl>
-
-<dl><dt><strong>force_load</strong> = False</dl>
-
-<dl><dt><strong>image</strong> = False</dl>
-
-<dl><dt><strong>infostring</strong> = None</dl>
-
-<dl><dt><strong>is_device</strong> = False</dl>
-
-<dl><dt><strong>is_fifo</strong> = False</dl>
-
-<dl><dt><strong>is_file</strong> = False</dl>
-
-<dl><dt><strong>is_link</strong> = False</dl>
-
-<dl><dt><strong>is_socket</strong> = False</dl>
-
-<dl><dt><strong>last_used</strong> = None</dl>
-
-<dl><dt><strong>loaded</strong> = False</dl>
-
-<dl><dt><strong>marked</strong> = False</dl>
-
-<dl><dt><strong>media</strong> = False</dl>
-
-<dl><dt><strong>mimetype_tuple</strong> = ()</dl>
-
-<dl><dt><strong>path</strong> = None</dl>
-
-<dl><dt><strong>permissions</strong> = None</dl>
-
-<dl><dt><strong>readlink</strong> = None</dl>
-
-<dl><dt><strong>runnable</strong> = False</dl>
-
-<dl><dt><strong>size</strong> = 0</dl>
-
-<dl><dt><strong>stat</strong> = None</dl>
-
-<dl><dt><strong>stopped</strong> = False</dl>
-
-<dl><dt><strong>tagged</strong> = False</dl>
-
-<dl><dt><strong>type</strong> = 'unknown'</dl>
-
-<dl><dt><strong>video</strong> = False</dl>
-
-<hr>
-Data descriptors inherited from <a href="ranger.shared.mimetype.html#MimeTypeAware">ranger.shared.mimetype.MimeTypeAware</a>:<br>
-<dl><dt><strong>__dict__</strong></dt>
-<dd><tt>dictionary&nbsp;for&nbsp;instance&nbsp;variables&nbsp;(if&nbsp;defined)</tt></dd>
-</dl>
-<dl><dt><strong>__weakref__</strong></dt>
-<dd><tt>list&nbsp;of&nbsp;weak&nbsp;references&nbsp;to&nbsp;the&nbsp;object&nbsp;(if&nbsp;defined)</tt></dd>
-</dl>
-<hr>
-Data and other attributes inherited from <a href="ranger.shared.mimetype.html#MimeTypeAware">ranger.shared.mimetype.MimeTypeAware</a>:<br>
-<dl><dt><strong>mimetypes</strong> = {}</dl>
-
-<hr>
-Data and other attributes inherited from <a href="ranger.shared.html#FileManagerAware">ranger.shared.FileManagerAware</a>:<br>
-<dl><dt><strong>fm</strong> = None</dl>
-
-<hr>
-Methods inherited from <a href="ranger.ext.accumulator.html#Accumulator">ranger.ext.accumulator.Accumulator</a>:<br>
-<dl><dt><a name="Directory-get_height"><strong>get_height</strong></a>(self)</dt><dd><tt>OVERRIDE&nbsp;THIS</tt></dd></dl>
-
-<dl><dt><a name="Directory-move"><strong>move</strong></a>(self, narg<font color="#909090">=None</font>, **keywords)</dt></dl>
-
-<dl><dt><a name="Directory-pointer_is_synced"><strong>pointer_is_synced</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="Directory-sync_index"><strong>sync_index</strong></a>(self, **kw)</dt></dl>
-
-<hr>
-Data and other attributes inherited from <a href="ranger.shared.settings.html#SettingsAware">ranger.shared.settings.SettingsAware</a>:<br>
-<dl><dt><strong>settings</strong> = {}</dl>
-
-</td></tr></table> <p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ffc8d8">
-<td colspan=3 valign=bottom>&nbsp;<br>
-<font color="#000000" face="helvetica, arial"><a name="NoDirectoryGiven">class <strong>NoDirectoryGiven</strong></a>(<a href="exceptions.html#Exception">exceptions.Exception</a>)</font></td></tr>
-    
-<tr><td bgcolor="#ffc8d8"><tt>&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
-<td width="100%"><dl><dt>Method resolution order:</dt>
-<dd><a href="ranger.fsobject.directory.html#NoDirectoryGiven">NoDirectoryGiven</a></dd>
-<dd><a href="exceptions.html#Exception">exceptions.Exception</a></dd>
-<dd><a href="exceptions.html#BaseException">exceptions.BaseException</a></dd>
-<dd><a href="__builtin__.html#object">__builtin__.object</a></dd>
-</dl>
-<hr>
-Data descriptors defined here:<br>
-<dl><dt><strong>__weakref__</strong></dt>
-<dd><tt>list&nbsp;of&nbsp;weak&nbsp;references&nbsp;to&nbsp;the&nbsp;object&nbsp;(if&nbsp;defined)</tt></dd>
-</dl>
-<hr>
-Methods inherited from <a href="exceptions.html#Exception">exceptions.Exception</a>:<br>
-<dl><dt><a name="NoDirectoryGiven-__init__"><strong>__init__</strong></a>(...)</dt><dd><tt>x.<a href="#NoDirectoryGiven-__init__">__init__</a>(...)&nbsp;initializes&nbsp;x;&nbsp;see&nbsp;x.__class__.__doc__&nbsp;for&nbsp;signature</tt></dd></dl>
-
-<hr>
-Data and other attributes inherited from <a href="exceptions.html#Exception">exceptions.Exception</a>:<br>
-<dl><dt><strong>__new__</strong> = &lt;built-in method __new__ of type object&gt;<dd><tt>T.<a href="#NoDirectoryGiven-__new__">__new__</a>(S,&nbsp;...)&nbsp;-&gt;&nbsp;a&nbsp;new&nbsp;object&nbsp;with&nbsp;type&nbsp;S,&nbsp;a&nbsp;subtype&nbsp;of&nbsp;T</tt></dl>
-
-<hr>
-Methods inherited from <a href="exceptions.html#BaseException">exceptions.BaseException</a>:<br>
-<dl><dt><a name="NoDirectoryGiven-__delattr__"><strong>__delattr__</strong></a>(...)</dt><dd><tt>x.<a href="#NoDirectoryGiven-__delattr__">__delattr__</a>('name')&nbsp;&lt;==&gt;&nbsp;del&nbsp;x.name</tt></dd></dl>
-
-<dl><dt><a name="NoDirectoryGiven-__getattribute__"><strong>__getattribute__</strong></a>(...)</dt><dd><tt>x.<a href="#NoDirectoryGiven-__getattribute__">__getattribute__</a>('name')&nbsp;&lt;==&gt;&nbsp;x.name</tt></dd></dl>
-
-<dl><dt><a name="NoDirectoryGiven-__getitem__"><strong>__getitem__</strong></a>(...)</dt><dd><tt>x.<a href="#NoDirectoryGiven-__getitem__">__getitem__</a>(y)&nbsp;&lt;==&gt;&nbsp;x[y]</tt></dd></dl>
-
-<dl><dt><a name="NoDirectoryGiven-__getslice__"><strong>__getslice__</strong></a>(...)</dt><dd><tt>x.<a href="#NoDirectoryGiven-__getslice__">__getslice__</a>(i,&nbsp;j)&nbsp;&lt;==&gt;&nbsp;x[i:j]<br>
-&nbsp;<br>
-Use&nbsp;of&nbsp;negative&nbsp;indices&nbsp;is&nbsp;not&nbsp;supported.</tt></dd></dl>
-
-<dl><dt><a name="NoDirectoryGiven-__reduce__"><strong>__reduce__</strong></a>(...)</dt></dl>
-
-<dl><dt><a name="NoDirectoryGiven-__repr__"><strong>__repr__</strong></a>(...)</dt><dd><tt>x.<a href="#NoDirectoryGiven-__repr__">__repr__</a>()&nbsp;&lt;==&gt;&nbsp;repr(x)</tt></dd></dl>
-
-<dl><dt><a name="NoDirectoryGiven-__setattr__"><strong>__setattr__</strong></a>(...)</dt><dd><tt>x.<a href="#NoDirectoryGiven-__setattr__">__setattr__</a>('name',&nbsp;value)&nbsp;&lt;==&gt;&nbsp;x.name&nbsp;=&nbsp;value</tt></dd></dl>
-
-<dl><dt><a name="NoDirectoryGiven-__setstate__"><strong>__setstate__</strong></a>(...)</dt></dl>
-
-<dl><dt><a name="NoDirectoryGiven-__str__"><strong>__str__</strong></a>(...)</dt><dd><tt>x.<a href="#NoDirectoryGiven-__str__">__str__</a>()&nbsp;&lt;==&gt;&nbsp;str(x)</tt></dd></dl>
-
-<dl><dt><a name="NoDirectoryGiven-__unicode__"><strong>__unicode__</strong></a>(...)</dt></dl>
-
-<hr>
-Data descriptors inherited from <a href="exceptions.html#BaseException">exceptions.BaseException</a>:<br>
-<dl><dt><strong>__dict__</strong></dt>
-</dl>
-<dl><dt><strong>args</strong></dt>
-</dl>
-<dl><dt><strong>message</strong></dt>
-</dl>
-</td></tr></table></td></tr></table><p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#eeaa77">
-<td colspan=3 valign=bottom>&nbsp;<br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Functions</strong></big></font></td></tr>
-    
-<tr><td bgcolor="#eeaa77"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
-<td width="100%"><dl><dt><a name="-sort_by_basename"><strong>sort_by_basename</strong></a>(path)</dt><dd><tt>returns&nbsp;path.basename&nbsp;(for&nbsp;sorting)</tt></dd></dl>
- <dl><dt><a name="-sort_by_basename_icase"><strong>sort_by_basename_icase</strong></a>(path)</dt><dd><tt>returns&nbsp;case-insensitive&nbsp;path.basename&nbsp;(for&nbsp;sorting)</tt></dd></dl>
- <dl><dt><a name="-sort_by_directory"><strong>sort_by_directory</strong></a>(path)</dt><dd><tt>returns&nbsp;0&nbsp;if&nbsp;path&nbsp;is&nbsp;a&nbsp;directory,&nbsp;otherwise&nbsp;1&nbsp;(for&nbsp;sorting)</tt></dd></dl>
- <dl><dt><a name="-time"><strong>time</strong></a>(...)</dt><dd><tt><a href="#-time">time</a>()&nbsp;-&gt;&nbsp;floating&nbsp;point&nbsp;number<br>
-&nbsp;<br>
-Return&nbsp;the&nbsp;current&nbsp;time&nbsp;in&nbsp;seconds&nbsp;since&nbsp;the&nbsp;Epoch.<br>
-Fractions&nbsp;of&nbsp;a&nbsp;second&nbsp;may&nbsp;be&nbsp;present&nbsp;if&nbsp;the&nbsp;system&nbsp;clock&nbsp;provides&nbsp;them.</tt></dd></dl>
-</td></tr></table><p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#55aa55">
-<td colspan=3 valign=bottom>&nbsp;<br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Data</strong></big></font></td></tr>
-    
-<tr><td bgcolor="#55aa55"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
-<td width="100%"><strong>BAD_INFO</strong> = '?'</td></tr></table>
-</body></html>
\ No newline at end of file
diff --git a/doc/pydoc/ranger.fsobject.file.html b/doc/pydoc/ranger.fsobject.file.html
deleted file mode 100644
index 01188d95..00000000
--- a/doc/pydoc/ranger.fsobject.file.html
+++ /dev/null
@@ -1,199 +0,0 @@
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html><head><title>Python: module ranger.fsobject.file</title>
-</head><body bgcolor="#f0f0f8">
-
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="heading">
-<tr bgcolor="#7799ee">
-<td valign=bottom>&nbsp;<br>
-<font color="#ffffff" face="helvetica, arial">&nbsp;<br><big><big><strong><a href="ranger.html"><font color="#ffffff">ranger</font></a>.<a href="ranger.fsobject.html"><font color="#ffffff">fsobject</font></a>.file</strong></big></big></font></td
-><td align=right valign=bottom
-><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:/home/hut/ranger/ranger/fsobject/file.py">/home/hut/ranger/ranger/fsobject/file.py</a></font></td></tr></table>
-    <p><tt>#&nbsp;Copyright&nbsp;(C)&nbsp;2009,&nbsp;2010&nbsp;&nbsp;Roman&nbsp;Zimbelmann&nbsp;&lt;romanz@lavabit.com&gt;<br>
-#<br>
-#&nbsp;This&nbsp;program&nbsp;is&nbsp;free&nbsp;software:&nbsp;you&nbsp;can&nbsp;redistribute&nbsp;it&nbsp;and/or&nbsp;modify<br>
-#&nbsp;it&nbsp;under&nbsp;the&nbsp;terms&nbsp;of&nbsp;the&nbsp;GNU&nbsp;General&nbsp;Public&nbsp;License&nbsp;as&nbsp;published&nbsp;by<br>
-#&nbsp;the&nbsp;Free&nbsp;Software&nbsp;Foundation,&nbsp;either&nbsp;version&nbsp;3&nbsp;of&nbsp;the&nbsp;License,&nbsp;or<br>
-#&nbsp;(at&nbsp;your&nbsp;option)&nbsp;any&nbsp;later&nbsp;version.<br>
-#<br>
-#&nbsp;This&nbsp;program&nbsp;is&nbsp;distributed&nbsp;in&nbsp;the&nbsp;hope&nbsp;that&nbsp;it&nbsp;will&nbsp;be&nbsp;useful,<br>
-#&nbsp;but&nbsp;WITHOUT&nbsp;ANY&nbsp;WARRANTY;&nbsp;without&nbsp;even&nbsp;the&nbsp;implied&nbsp;warranty&nbsp;of<br>
-#&nbsp;MERCHANTABILITY&nbsp;or&nbsp;FITNESS&nbsp;FOR&nbsp;A&nbsp;PARTICULAR&nbsp;PURPOSE.&nbsp;&nbsp;See&nbsp;the<br>
-#&nbsp;GNU&nbsp;General&nbsp;Public&nbsp;License&nbsp;for&nbsp;more&nbsp;details.<br>
-#<br>
-#&nbsp;You&nbsp;should&nbsp;have&nbsp;received&nbsp;a&nbsp;copy&nbsp;of&nbsp;the&nbsp;GNU&nbsp;General&nbsp;Public&nbsp;License<br>
-#&nbsp;along&nbsp;with&nbsp;this&nbsp;program.&nbsp;&nbsp;If&nbsp;not,&nbsp;see&nbsp;&lt;<a href="http://www.gnu.org/licenses/">http://www.gnu.org/licenses/</a>&gt;.</tt></p>
-<p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ee77aa">
-<td colspan=3 valign=bottom>&nbsp;<br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Classes</strong></big></font></td></tr>
-    
-<tr><td bgcolor="#ee77aa"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
-<td width="100%"><dl>
-<dt><font face="helvetica, arial"><a href="ranger.fsobject.fsobject.html#FileSystemObject">ranger.fsobject.fsobject.FileSystemObject</a>(<a href="ranger.shared.mimetype.html#MimeTypeAware">ranger.shared.mimetype.MimeTypeAware</a>, <a href="ranger.shared.html#FileManagerAware">ranger.shared.FileManagerAware</a>)
-</font></dt><dd>
-<dl>
-<dt><font face="helvetica, arial"><a href="ranger.fsobject.file.html#File">File</a>
-</font></dt></dl>
-</dd>
-</dl>
- <p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ffc8d8">
-<td colspan=3 valign=bottom>&nbsp;<br>
-<font color="#000000" face="helvetica, arial"><a name="File">class <strong>File</strong></a>(<a href="ranger.fsobject.fsobject.html#FileSystemObject">ranger.fsobject.fsobject.FileSystemObject</a>)</font></td></tr>
-    
-<tr><td bgcolor="#ffc8d8"><tt>&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
-<td width="100%"><dl><dt>Method resolution order:</dt>
-<dd><a href="ranger.fsobject.file.html#File">File</a></dd>
-<dd><a href="ranger.fsobject.fsobject.html#FileSystemObject">ranger.fsobject.fsobject.FileSystemObject</a></dd>
-<dd><a href="ranger.shared.mimetype.html#MimeTypeAware">ranger.shared.mimetype.MimeTypeAware</a></dd>
-<dd><a href="ranger.shared.html#FileManagerAware">ranger.shared.FileManagerAware</a></dd>
-<dd><a href="ranger.shared.html#Awareness">ranger.shared.Awareness</a></dd>
-<dd><a href="__builtin__.html#object">__builtin__.object</a></dd>
-</dl>
-<hr>
-Methods defined here:<br>
-<dl><dt><a name="File-is_binary"><strong>is_binary</strong></a>(self)</dt></dl>
-
-<hr>
-Data descriptors defined here:<br>
-<dl><dt><strong>firstbytes</strong></dt>
-</dl>
-<hr>
-Data and other attributes defined here:<br>
-<dl><dt><strong>is_file</strong> = True</dl>
-
-<hr>
-Methods inherited from <a href="ranger.fsobject.fsobject.html#FileSystemObject">ranger.fsobject.fsobject.FileSystemObject</a>:<br>
-<dl><dt><a name="File-__init__"><strong>__init__</strong></a>(self, path)</dt></dl>
-
-<dl><dt><a name="File-__repr__"><strong>__repr__</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="File-__str__"><strong>__str__</strong></a>(self)</dt><dd><tt>returns&nbsp;a&nbsp;string&nbsp;containing&nbsp;the&nbsp;absolute&nbsp;path</tt></dd></dl>
-
-<dl><dt><a name="File-determine_infostring"><strong>determine_infostring</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="File-get_description"><strong>get_description</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="File-get_permission_string"><strong>get_permission_string</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="File-go"><strong>go</strong></a>(self)</dt><dd><tt>enter&nbsp;the&nbsp;directory&nbsp;if&nbsp;the&nbsp;filemanager&nbsp;is&nbsp;running</tt></dd></dl>
-
-<dl><dt><a name="File-is_older_than"><strong>is_older_than</strong></a>(self, seconds)</dt><dd><tt>returns&nbsp;whether&nbsp;this&nbsp;object&nbsp;wasn't&nbsp;<a href="#File-use">use</a>()d&nbsp;in&nbsp;the&nbsp;last&nbsp;n&nbsp;seconds</tt></dd></dl>
-
-<dl><dt><a name="File-load"><strong>load</strong></a>(self)</dt><dd><tt>reads&nbsp;useful&nbsp;information&nbsp;about&nbsp;the&nbsp;filesystem-object&nbsp;from&nbsp;the<br>
-filesystem&nbsp;and&nbsp;caches&nbsp;it&nbsp;for&nbsp;later&nbsp;use</tt></dd></dl>
-
-<dl><dt><a name="File-load_if_outdated"><strong>load_if_outdated</strong></a>(self)</dt><dd><tt>Calls&nbsp;<a href="#File-load">load</a>()&nbsp;if&nbsp;the&nbsp;currently&nbsp;cached&nbsp;information&nbsp;is&nbsp;outdated<br>
-or&nbsp;nonexistant.</tt></dd></dl>
-
-<dl><dt><a name="File-load_once"><strong>load_once</strong></a>(self)</dt><dd><tt>calls&nbsp;<a href="#File-load">load</a>()&nbsp;if&nbsp;it&nbsp;has&nbsp;not&nbsp;been&nbsp;called&nbsp;at&nbsp;least&nbsp;once&nbsp;yet</tt></dd></dl>
-
-<dl><dt><a name="File-mark"><strong>mark</strong></a>(self, boolean)</dt></dl>
-
-<dl><dt><a name="File-set_mimetype"><strong>set_mimetype</strong></a>(self)</dt><dd><tt>assign&nbsp;attributes&nbsp;such&nbsp;as&nbsp;self.<strong>video</strong>&nbsp;according&nbsp;to&nbsp;the&nbsp;mimetype</tt></dd></dl>
-
-<dl><dt><a name="File-use"><strong>use</strong></a>(self)</dt><dd><tt>mark&nbsp;the&nbsp;filesystem-object&nbsp;as&nbsp;used&nbsp;at&nbsp;the&nbsp;current&nbsp;time</tt></dd></dl>
-
-<hr>
-Data descriptors inherited from <a href="ranger.fsobject.fsobject.html#FileSystemObject">ranger.fsobject.fsobject.FileSystemObject</a>:<br>
-<dl><dt><strong>filetype</strong></dt>
-</dl>
-<dl><dt><strong>shell_escaped_basename</strong></dt>
-</dl>
-<hr>
-Data and other attributes inherited from <a href="ranger.fsobject.fsobject.html#FileSystemObject">ranger.fsobject.fsobject.FileSystemObject</a>:<br>
-<dl><dt><strong>accessible</strong> = False</dl>
-
-<dl><dt><strong>audio</strong> = False</dl>
-
-<dl><dt><strong>basename</strong> = None</dl>
-
-<dl><dt><strong>basename_lower</strong> = None</dl>
-
-<dl><dt><strong>container</strong> = False</dl>
-
-<dl><dt><strong>content_loaded</strong> = False</dl>
-
-<dl><dt><strong>dirname</strong> = None</dl>
-
-<dl><dt><strong>document</strong> = False</dl>
-
-<dl><dt><strong>exists</strong> = False</dl>
-
-<dl><dt><strong>extension</strong> = None</dl>
-
-<dl><dt><strong>force_load</strong> = False</dl>
-
-<dl><dt><strong>image</strong> = False</dl>
-
-<dl><dt><strong>infostring</strong> = None</dl>
-
-<dl><dt><strong>is_device</strong> = False</dl>
-
-<dl><dt><strong>is_directory</strong> = False</dl>
-
-<dl><dt><strong>is_fifo</strong> = False</dl>
-
-<dl><dt><strong>is_link</strong> = False</dl>
-
-<dl><dt><strong>is_socket</strong> = False</dl>
-
-<dl><dt><strong>last_used</strong> = None</dl>
-
-<dl><dt><strong>loaded</strong> = False</dl>
-
-<dl><dt><strong>marked</strong> = False</dl>
-
-<dl><dt><strong>media</strong> = False</dl>
-
-<dl><dt><strong>mimetype_tuple</strong> = ()</dl>
-
-<dl><dt><strong>path</strong> = None</dl>
-
-<dl><dt><strong>permissions</strong> = None</dl>
-
-<dl><dt><strong>readlink</strong> = None</dl>
-
-<dl><dt><strong>runnable</strong> = False</dl>
-
-<dl><dt><strong>size</strong> = 0</dl>
-
-<dl><dt><strong>stat</strong> = None</dl>
-
-<dl><dt><strong>stopped</strong> = False</dl>
-
-<dl><dt><strong>tagged</strong> = False</dl>
-
-<dl><dt><strong>type</strong> = 'unknown'</dl>
-
-<dl><dt><strong>video</strong> = False</dl>
-
-<hr>
-Data descriptors inherited from <a href="ranger.shared.mimetype.html#MimeTypeAware">ranger.shared.mimetype.MimeTypeAware</a>:<br>
-<dl><dt><strong>__dict__</strong></dt>
-<dd><tt>dictionary&nbsp;for&nbsp;instance&nbsp;variables&nbsp;(if&nbsp;defined)</tt></dd>
-</dl>
-<dl><dt><strong>__weakref__</strong></dt>
-<dd><tt>list&nbsp;of&nbsp;weak&nbsp;references&nbsp;to&nbsp;the&nbsp;object&nbsp;(if&nbsp;defined)</tt></dd>
-</dl>
-<hr>
-Data and other attributes inherited from <a href="ranger.shared.mimetype.html#MimeTypeAware">ranger.shared.mimetype.MimeTypeAware</a>:<br>
-<dl><dt><strong>mimetypes</strong> = {}</dl>
-
-<hr>
-Data and other attributes inherited from <a href="ranger.shared.html#FileManagerAware">ranger.shared.FileManagerAware</a>:<br>
-<dl><dt><strong>fm</strong> = None</dl>
-
-</td></tr></table></td></tr></table><p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#55aa55">
-<td colspan=3 valign=bottom>&nbsp;<br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Data</strong></big></font></td></tr>
-    
-<tr><td bgcolor="#55aa55"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
-<td width="100%"><strong>N_FIRST_BYTES</strong> = 20<br>
-<strong>control_characters</strong> = set(['<font color="#c040c0">\x00</font>', '<font color="#c040c0">\x01</font>', '<font color="#c040c0">\x02</font>', '<font color="#c040c0">\x03</font>', '<font color="#c040c0">\x04</font>', '<font color="#c040c0">\x05</font>', ...])</td></tr></table>
-</body></html>
\ No newline at end of file
diff --git a/doc/pydoc/ranger.fsobject.fsobject.html b/doc/pydoc/ranger.fsobject.fsobject.html
deleted file mode 100644
index 1a9517bc..00000000
--- a/doc/pydoc/ranger.fsobject.fsobject.html
+++ /dev/null
@@ -1,221 +0,0 @@
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html><head><title>Python: module ranger.fsobject.fsobject</title>
-</head><body bgcolor="#f0f0f8">
-
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="heading">
-<tr bgcolor="#7799ee">
-<td valign=bottom>&nbsp;<br>
-<font color="#ffffff" face="helvetica, arial">&nbsp;<br><big><big><strong><a href="ranger.html"><font color="#ffffff">ranger</font></a>.<a href="ranger.fsobject.html"><font color="#ffffff">fsobject</font></a>.fsobject</strong></big></big></font></td
-><td align=right valign=bottom
-><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:/home/hut/ranger/ranger/fsobject/fsobject.py">/home/hut/ranger/ranger/fsobject/fsobject.py</a></font></td></tr></table>
-    <p><tt>#&nbsp;Copyright&nbsp;(C)&nbsp;2009,&nbsp;2010&nbsp;&nbsp;Roman&nbsp;Zimbelmann&nbsp;&lt;romanz@lavabit.com&gt;<br>
-#<br>
-#&nbsp;This&nbsp;program&nbsp;is&nbsp;free&nbsp;software:&nbsp;you&nbsp;can&nbsp;redistribute&nbsp;it&nbsp;and/or&nbsp;modify<br>
-#&nbsp;it&nbsp;under&nbsp;the&nbsp;terms&nbsp;of&nbsp;the&nbsp;GNU&nbsp;General&nbsp;Public&nbsp;License&nbsp;as&nbsp;published&nbsp;by<br>
-#&nbsp;the&nbsp;Free&nbsp;Software&nbsp;Foundation,&nbsp;either&nbsp;version&nbsp;3&nbsp;of&nbsp;the&nbsp;License,&nbsp;or<br>
-#&nbsp;(at&nbsp;your&nbsp;option)&nbsp;any&nbsp;later&nbsp;version.<br>
-#<br>
-#&nbsp;This&nbsp;program&nbsp;is&nbsp;distributed&nbsp;in&nbsp;the&nbsp;hope&nbsp;that&nbsp;it&nbsp;will&nbsp;be&nbsp;useful,<br>
-#&nbsp;but&nbsp;WITHOUT&nbsp;ANY&nbsp;WARRANTY;&nbsp;without&nbsp;even&nbsp;the&nbsp;implied&nbsp;warranty&nbsp;of<br>
-#&nbsp;MERCHANTABILITY&nbsp;or&nbsp;FITNESS&nbsp;FOR&nbsp;A&nbsp;PARTICULAR&nbsp;PURPOSE.&nbsp;&nbsp;See&nbsp;the<br>
-#&nbsp;GNU&nbsp;General&nbsp;Public&nbsp;License&nbsp;for&nbsp;more&nbsp;details.<br>
-#<br>
-#&nbsp;You&nbsp;should&nbsp;have&nbsp;received&nbsp;a&nbsp;copy&nbsp;of&nbsp;the&nbsp;GNU&nbsp;General&nbsp;Public&nbsp;License<br>
-#&nbsp;along&nbsp;with&nbsp;this&nbsp;program.&nbsp;&nbsp;If&nbsp;not,&nbsp;see&nbsp;&lt;<a href="http://www.gnu.org/licenses/">http://www.gnu.org/licenses/</a>&gt;.</tt></p>
-<p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#aa55cc">
-<td colspan=3 valign=bottom>&nbsp;<br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Modules</strong></big></font></td></tr>
-    
-<tr><td bgcolor="#aa55cc"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
-<td width="100%"><table width="100%" summary="list"><tr><td width="25%" valign=top><a href="os.html">os</a><br>
-</td><td width="25%" valign=top><a href="stat.html">stat</a><br>
-</td><td width="25%" valign=top></td><td width="25%" valign=top></td></tr></table></td></tr></table><p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ee77aa">
-<td colspan=3 valign=bottom>&nbsp;<br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Classes</strong></big></font></td></tr>
-    
-<tr><td bgcolor="#ee77aa"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
-<td width="100%"><dl>
-<dt><font face="helvetica, arial"><a href="ranger.shared.html#FileManagerAware">ranger.shared.FileManagerAware</a>(<a href="ranger.shared.html#Awareness">ranger.shared.Awareness</a>)
-</font></dt><dd>
-<dl>
-<dt><font face="helvetica, arial"><a href="ranger.fsobject.fsobject.html#FileSystemObject">FileSystemObject</a>(<a href="ranger.shared.mimetype.html#MimeTypeAware">ranger.shared.mimetype.MimeTypeAware</a>, <a href="ranger.shared.html#FileManagerAware">ranger.shared.FileManagerAware</a>)
-</font></dt></dl>
-</dd>
-<dt><font face="helvetica, arial"><a href="ranger.shared.mimetype.html#MimeTypeAware">ranger.shared.mimetype.MimeTypeAware</a>(<a href="__builtin__.html#object">__builtin__.object</a>)
-</font></dt><dd>
-<dl>
-<dt><font face="helvetica, arial"><a href="ranger.fsobject.fsobject.html#FileSystemObject">FileSystemObject</a>(<a href="ranger.shared.mimetype.html#MimeTypeAware">ranger.shared.mimetype.MimeTypeAware</a>, <a href="ranger.shared.html#FileManagerAware">ranger.shared.FileManagerAware</a>)
-</font></dt></dl>
-</dd>
-</dl>
- <p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ffc8d8">
-<td colspan=3 valign=bottom>&nbsp;<br>
-<font color="#000000" face="helvetica, arial"><a name="FileSystemObject">class <strong>FileSystemObject</strong></a>(<a href="ranger.shared.mimetype.html#MimeTypeAware">ranger.shared.mimetype.MimeTypeAware</a>, <a href="ranger.shared.html#FileManagerAware">ranger.shared.FileManagerAware</a>)</font></td></tr>
-    
-<tr><td bgcolor="#ffc8d8"><tt>&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
-<td width="100%"><dl><dt>Method resolution order:</dt>
-<dd><a href="ranger.fsobject.fsobject.html#FileSystemObject">FileSystemObject</a></dd>
-<dd><a href="ranger.shared.mimetype.html#MimeTypeAware">ranger.shared.mimetype.MimeTypeAware</a></dd>
-<dd><a href="ranger.shared.html#FileManagerAware">ranger.shared.FileManagerAware</a></dd>
-<dd><a href="ranger.shared.html#Awareness">ranger.shared.Awareness</a></dd>
-<dd><a href="__builtin__.html#object">__builtin__.object</a></dd>
-</dl>
-<hr>
-Methods defined here:<br>
-<dl><dt><a name="FileSystemObject-__init__"><strong>__init__</strong></a>(self, path)</dt></dl>
-
-<dl><dt><a name="FileSystemObject-__repr__"><strong>__repr__</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="FileSystemObject-__str__"><strong>__str__</strong></a>(self)</dt><dd><tt>returns&nbsp;a&nbsp;string&nbsp;containing&nbsp;the&nbsp;absolute&nbsp;path</tt></dd></dl>
-
-<dl><dt><a name="FileSystemObject-determine_infostring"><strong>determine_infostring</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="FileSystemObject-get_description"><strong>get_description</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="FileSystemObject-get_permission_string"><strong>get_permission_string</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="FileSystemObject-go"><strong>go</strong></a>(self)</dt><dd><tt>enter&nbsp;the&nbsp;directory&nbsp;if&nbsp;the&nbsp;filemanager&nbsp;is&nbsp;running</tt></dd></dl>
-
-<dl><dt><a name="FileSystemObject-is_older_than"><strong>is_older_than</strong></a>(self, seconds)</dt><dd><tt>returns&nbsp;whether&nbsp;this&nbsp;object&nbsp;wasn't&nbsp;<a href="#FileSystemObject-use">use</a>()d&nbsp;in&nbsp;the&nbsp;last&nbsp;n&nbsp;seconds</tt></dd></dl>
-
-<dl><dt><a name="FileSystemObject-load"><strong>load</strong></a>(self)</dt><dd><tt>reads&nbsp;useful&nbsp;information&nbsp;about&nbsp;the&nbsp;filesystem-object&nbsp;from&nbsp;the<br>
-filesystem&nbsp;and&nbsp;caches&nbsp;it&nbsp;for&nbsp;later&nbsp;use</tt></dd></dl>
-
-<dl><dt><a name="FileSystemObject-load_if_outdated"><strong>load_if_outdated</strong></a>(self)</dt><dd><tt>Calls&nbsp;<a href="#FileSystemObject-load">load</a>()&nbsp;if&nbsp;the&nbsp;currently&nbsp;cached&nbsp;information&nbsp;is&nbsp;outdated<br>
-or&nbsp;nonexistant.</tt></dd></dl>
-
-<dl><dt><a name="FileSystemObject-load_once"><strong>load_once</strong></a>(self)</dt><dd><tt>calls&nbsp;<a href="#FileSystemObject-load">load</a>()&nbsp;if&nbsp;it&nbsp;has&nbsp;not&nbsp;been&nbsp;called&nbsp;at&nbsp;least&nbsp;once&nbsp;yet</tt></dd></dl>
-
-<dl><dt><a name="FileSystemObject-mark"><strong>mark</strong></a>(self, boolean)</dt></dl>
-
-<dl><dt><a name="FileSystemObject-set_mimetype"><strong>set_mimetype</strong></a>(self)</dt><dd><tt>assign&nbsp;attributes&nbsp;such&nbsp;as&nbsp;self.<strong>video</strong>&nbsp;according&nbsp;to&nbsp;the&nbsp;mimetype</tt></dd></dl>
-
-<dl><dt><a name="FileSystemObject-use"><strong>use</strong></a>(self)</dt><dd><tt>mark&nbsp;the&nbsp;filesystem-object&nbsp;as&nbsp;used&nbsp;at&nbsp;the&nbsp;current&nbsp;time</tt></dd></dl>
-
-<hr>
-Data descriptors defined here:<br>
-<dl><dt><strong>filetype</strong></dt>
-</dl>
-<dl><dt><strong>shell_escaped_basename</strong></dt>
-</dl>
-<hr>
-Data and other attributes defined here:<br>
-<dl><dt><strong>accessible</strong> = False</dl>
-
-<dl><dt><strong>audio</strong> = False</dl>
-
-<dl><dt><strong>basename</strong> = None</dl>
-
-<dl><dt><strong>basename_lower</strong> = None</dl>
-
-<dl><dt><strong>container</strong> = False</dl>
-
-<dl><dt><strong>content_loaded</strong> = False</dl>
-
-<dl><dt><strong>dirname</strong> = None</dl>
-
-<dl><dt><strong>document</strong> = False</dl>
-
-<dl><dt><strong>exists</strong> = False</dl>
-
-<dl><dt><strong>extension</strong> = None</dl>
-
-<dl><dt><strong>force_load</strong> = False</dl>
-
-<dl><dt><strong>image</strong> = False</dl>
-
-<dl><dt><strong>infostring</strong> = None</dl>
-
-<dl><dt><strong>is_device</strong> = False</dl>
-
-<dl><dt><strong>is_directory</strong> = False</dl>
-
-<dl><dt><strong>is_fifo</strong> = False</dl>
-
-<dl><dt><strong>is_file</strong> = False</dl>
-
-<dl><dt><strong>is_link</strong> = False</dl>
-
-<dl><dt><strong>is_socket</strong> = False</dl>
-
-<dl><dt><strong>last_used</strong> = None</dl>
-
-<dl><dt><strong>loaded</strong> = False</dl>
-
-<dl><dt><strong>marked</strong> = False</dl>
-
-<dl><dt><strong>media</strong> = False</dl>
-
-<dl><dt><strong>mimetype_tuple</strong> = ()</dl>
-
-<dl><dt><strong>path</strong> = None</dl>
-
-<dl><dt><strong>permissions</strong> = None</dl>
-
-<dl><dt><strong>readlink</strong> = None</dl>
-
-<dl><dt><strong>runnable</strong> = False</dl>
-
-<dl><dt><strong>size</strong> = 0</dl>
-
-<dl><dt><strong>stat</strong> = None</dl>
-
-<dl><dt><strong>stopped</strong> = False</dl>
-
-<dl><dt><strong>tagged</strong> = False</dl>
-
-<dl><dt><strong>type</strong> = 'unknown'</dl>
-
-<dl><dt><strong>video</strong> = False</dl>
-
-<hr>
-Data descriptors inherited from <a href="ranger.shared.mimetype.html#MimeTypeAware">ranger.shared.mimetype.MimeTypeAware</a>:<br>
-<dl><dt><strong>__dict__</strong></dt>
-<dd><tt>dictionary&nbsp;for&nbsp;instance&nbsp;variables&nbsp;(if&nbsp;defined)</tt></dd>
-</dl>
-<dl><dt><strong>__weakref__</strong></dt>
-<dd><tt>list&nbsp;of&nbsp;weak&nbsp;references&nbsp;to&nbsp;the&nbsp;object&nbsp;(if&nbsp;defined)</tt></dd>
-</dl>
-<hr>
-Data and other attributes inherited from <a href="ranger.shared.mimetype.html#MimeTypeAware">ranger.shared.mimetype.MimeTypeAware</a>:<br>
-<dl><dt><strong>mimetypes</strong> = {}</dl>
-
-<hr>
-Data and other attributes inherited from <a href="ranger.shared.html#FileManagerAware">ranger.shared.FileManagerAware</a>:<br>
-<dl><dt><strong>fm</strong> = None</dl>
-
-</td></tr></table></td></tr></table><p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#eeaa77">
-<td colspan=3 valign=bottom>&nbsp;<br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Functions</strong></big></font></td></tr>
-    
-<tr><td bgcolor="#eeaa77"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
-<td width="100%"><dl><dt><a name="-time"><strong>time</strong></a>(...)</dt><dd><tt><a href="#-time">time</a>()&nbsp;-&gt;&nbsp;floating&nbsp;point&nbsp;number<br>
-&nbsp;<br>
-Return&nbsp;the&nbsp;current&nbsp;time&nbsp;in&nbsp;seconds&nbsp;since&nbsp;the&nbsp;Epoch.<br>
-Fractions&nbsp;of&nbsp;a&nbsp;second&nbsp;may&nbsp;be&nbsp;present&nbsp;if&nbsp;the&nbsp;system&nbsp;clock&nbsp;provides&nbsp;them.</tt></dd></dl>
-</td></tr></table><p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#55aa55">
-<td colspan=3 valign=bottom>&nbsp;<br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Data</strong></big></font></td></tr>
-    
-<tr><td bgcolor="#55aa55"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
-<td width="100%"><strong>BAD_INFO</strong> = '?'<br>
-<strong>CONTAINER_EXTENSIONS</strong> = ['rar', 'zip', 'tar', 'gz', 'bz', 'bz2', 'tgz', '7z', 'iso', 'cab']<br>
-<strong>DOCUMENT_BASENAMES</strong> = ()<br>
-<strong>DOCUMENT_EXTENSIONS</strong> = ()<br>
-<strong>PIPE</strong> = -1<br>
-<strong>T_DIRECTORY</strong> = 'directory'<br>
-<strong>T_FILE</strong> = 'file'<br>
-<strong>T_NONEXISTANT</strong> = 'nonexistant'<br>
-<strong>T_UNKNOWN</strong> = 'unknown'</td></tr></table>
-</body></html>
\ No newline at end of file
diff --git a/doc/pydoc/ranger.fsobject.html b/doc/pydoc/ranger.fsobject.html
deleted file mode 100644
index 7014418a..00000000
--- a/doc/pydoc/ranger.fsobject.html
+++ /dev/null
@@ -1,110 +0,0 @@
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html><head><title>Python: package ranger.fsobject</title>
-</head><body bgcolor="#f0f0f8">
-
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="heading">
-<tr bgcolor="#7799ee">
-<td valign=bottom>&nbsp;<br>
-<font color="#ffffff" face="helvetica, arial">&nbsp;<br><big><big><strong><a href="ranger.html"><font color="#ffffff">ranger</font></a>.fsobject</strong></big></big></font></td
-><td align=right valign=bottom
-><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:/home/hut/ranger/ranger/fsobject/__init__.py">/home/hut/ranger/ranger/fsobject/__init__.py</a></font></td></tr></table>
-    <p><tt>FileSystemObjects&nbsp;are&nbsp;representation&nbsp;of&nbsp;files&nbsp;and&nbsp;directories<br>
-with&nbsp;fast&nbsp;access&nbsp;to&nbsp;their&nbsp;properties&nbsp;through&nbsp;caching</tt></p>
-<p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#aa55cc">
-<td colspan=3 valign=bottom>&nbsp;<br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Package Contents</strong></big></font></td></tr>
-    
-<tr><td bgcolor="#aa55cc"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
-<td width="100%"><table width="100%" summary="list"><tr><td width="25%" valign=top><a href="ranger.fsobject.directory.html">directory</a><br>
-</td><td width="25%" valign=top><a href="ranger.fsobject.file.html">file</a><br>
-</td><td width="25%" valign=top><a href="ranger.fsobject.fsobject.html">fsobject</a><br>
-</td><td width="25%" valign=top><a href="ranger.fsobject.loader.html">loader</a><br>
-</td></tr></table></td></tr></table><p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ee77aa">
-<td colspan=3 valign=bottom>&nbsp;<br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Classes</strong></big></font></td></tr>
-    
-<tr><td bgcolor="#ee77aa"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
-<td width="100%"><dl>
-<dt><font face="helvetica, arial"><a href="exceptions.html#Exception">exceptions.Exception</a>(<a href="exceptions.html#BaseException">exceptions.BaseException</a>)
-</font></dt><dd>
-<dl>
-<dt><font face="helvetica, arial"><a href="ranger.fsobject.html#NotLoadedYet">NotLoadedYet</a>
-</font></dt></dl>
-</dd>
-</dl>
- <p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ffc8d8">
-<td colspan=3 valign=bottom>&nbsp;<br>
-<font color="#000000" face="helvetica, arial"><a name="NotLoadedYet">class <strong>NotLoadedYet</strong></a>(<a href="exceptions.html#Exception">exceptions.Exception</a>)</font></td></tr>
-    
-<tr><td bgcolor="#ffc8d8"><tt>&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
-<td width="100%"><dl><dt>Method resolution order:</dt>
-<dd><a href="ranger.fsobject.html#NotLoadedYet">NotLoadedYet</a></dd>
-<dd><a href="exceptions.html#Exception">exceptions.Exception</a></dd>
-<dd><a href="exceptions.html#BaseException">exceptions.BaseException</a></dd>
-<dd><a href="__builtin__.html#object">__builtin__.object</a></dd>
-</dl>
-<hr>
-Data descriptors defined here:<br>
-<dl><dt><strong>__weakref__</strong></dt>
-<dd><tt>list&nbsp;of&nbsp;weak&nbsp;references&nbsp;to&nbsp;the&nbsp;object&nbsp;(if&nbsp;defined)</tt></dd>
-</dl>
-<hr>
-Methods inherited from <a href="exceptions.html#Exception">exceptions.Exception</a>:<br>
-<dl><dt><a name="NotLoadedYet-__init__"><strong>__init__</strong></a>(...)</dt><dd><tt>x.<a href="#NotLoadedYet-__init__">__init__</a>(...)&nbsp;initializes&nbsp;x;&nbsp;see&nbsp;x.__class__.__doc__&nbsp;for&nbsp;signature</tt></dd></dl>
-
-<hr>
-Data and other attributes inherited from <a href="exceptions.html#Exception">exceptions.Exception</a>:<br>
-<dl><dt><strong>__new__</strong> = &lt;built-in method __new__ of type object&gt;<dd><tt>T.<a href="#NotLoadedYet-__new__">__new__</a>(S,&nbsp;...)&nbsp;-&gt;&nbsp;a&nbsp;new&nbsp;object&nbsp;with&nbsp;type&nbsp;S,&nbsp;a&nbsp;subtype&nbsp;of&nbsp;T</tt></dl>
-
-<hr>
-Methods inherited from <a href="exceptions.html#BaseException">exceptions.BaseException</a>:<br>
-<dl><dt><a name="NotLoadedYet-__delattr__"><strong>__delattr__</strong></a>(...)</dt><dd><tt>x.<a href="#NotLoadedYet-__delattr__">__delattr__</a>('name')&nbsp;&lt;==&gt;&nbsp;del&nbsp;x.name</tt></dd></dl>
-
-<dl><dt><a name="NotLoadedYet-__getattribute__"><strong>__getattribute__</strong></a>(...)</dt><dd><tt>x.<a href="#NotLoadedYet-__getattribute__">__getattribute__</a>('name')&nbsp;&lt;==&gt;&nbsp;x.name</tt></dd></dl>
-
-<dl><dt><a name="NotLoadedYet-__getitem__"><strong>__getitem__</strong></a>(...)</dt><dd><tt>x.<a href="#NotLoadedYet-__getitem__">__getitem__</a>(y)&nbsp;&lt;==&gt;&nbsp;x[y]</tt></dd></dl>
-
-<dl><dt><a name="NotLoadedYet-__getslice__"><strong>__getslice__</strong></a>(...)</dt><dd><tt>x.<a href="#NotLoadedYet-__getslice__">__getslice__</a>(i,&nbsp;j)&nbsp;&lt;==&gt;&nbsp;x[i:j]<br>
-&nbsp;<br>
-Use&nbsp;of&nbsp;negative&nbsp;indices&nbsp;is&nbsp;not&nbsp;supported.</tt></dd></dl>
-
-<dl><dt><a name="NotLoadedYet-__reduce__"><strong>__reduce__</strong></a>(...)</dt></dl>
-
-<dl><dt><a name="NotLoadedYet-__repr__"><strong>__repr__</strong></a>(...)</dt><dd><tt>x.<a href="#NotLoadedYet-__repr__">__repr__</a>()&nbsp;&lt;==&gt;&nbsp;repr(x)</tt></dd></dl>
-
-<dl><dt><a name="NotLoadedYet-__setattr__"><strong>__setattr__</strong></a>(...)</dt><dd><tt>x.<a href="#NotLoadedYet-__setattr__">__setattr__</a>('name',&nbsp;value)&nbsp;&lt;==&gt;&nbsp;x.name&nbsp;=&nbsp;value</tt></dd></dl>
-
-<dl><dt><a name="NotLoadedYet-__setstate__"><strong>__setstate__</strong></a>(...)</dt></dl>
-
-<dl><dt><a name="NotLoadedYet-__str__"><strong>__str__</strong></a>(...)</dt><dd><tt>x.<a href="#NotLoadedYet-__str__">__str__</a>()&nbsp;&lt;==&gt;&nbsp;str(x)</tt></dd></dl>
-
-<dl><dt><a name="NotLoadedYet-__unicode__"><strong>__unicode__</strong></a>(...)</dt></dl>
-
-<hr>
-Data descriptors inherited from <a href="exceptions.html#BaseException">exceptions.BaseException</a>:<br>
-<dl><dt><strong>__dict__</strong></dt>
-</dl>
-<dl><dt><strong>args</strong></dt>
-</dl>
-<dl><dt><strong>message</strong></dt>
-</dl>
-</td></tr></table></td></tr></table><p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#55aa55">
-<td colspan=3 valign=bottom>&nbsp;<br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Data</strong></big></font></td></tr>
-    
-<tr><td bgcolor="#55aa55"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
-<td width="100%"><strong>BAD_INFO</strong> = '?'<br>
-<strong>T_DIRECTORY</strong> = 'directory'<br>
-<strong>T_FILE</strong> = 'file'<br>
-<strong>T_NONEXISTANT</strong> = 'nonexistant'<br>
-<strong>T_UNKNOWN</strong> = 'unknown'</td></tr></table>
-</body></html>
\ No newline at end of file
diff --git a/doc/pydoc/ranger.fsobject.loader.html b/doc/pydoc/ranger.fsobject.loader.html
deleted file mode 100644
index c387f773..00000000
--- a/doc/pydoc/ranger.fsobject.loader.html
+++ /dev/null
@@ -1,135 +0,0 @@
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html><head><title>Python: module ranger.fsobject.loader</title>
-</head><body bgcolor="#f0f0f8">
-
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="heading">
-<tr bgcolor="#7799ee">
-<td valign=bottom>&nbsp;<br>
-<font color="#ffffff" face="helvetica, arial">&nbsp;<br><big><big><strong><a href="ranger.html"><font color="#ffffff">ranger</font></a>.<a href="ranger.fsobject.html"><font color="#ffffff">fsobject</font></a>.loader</strong></big></big></font></td
-><td align=right valign=bottom
-><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:/home/hut/ranger/ranger/fsobject/loader.py">/home/hut/ranger/ranger/fsobject/loader.py</a></font></td></tr></table>
-    <p><tt>#&nbsp;Copyright&nbsp;(C)&nbsp;2009,&nbsp;2010&nbsp;&nbsp;Roman&nbsp;Zimbelmann&nbsp;&lt;romanz@lavabit.com&gt;<br>
-#<br>
-#&nbsp;This&nbsp;program&nbsp;is&nbsp;free&nbsp;software:&nbsp;you&nbsp;can&nbsp;redistribute&nbsp;it&nbsp;and/or&nbsp;modify<br>
-#&nbsp;it&nbsp;under&nbsp;the&nbsp;terms&nbsp;of&nbsp;the&nbsp;GNU&nbsp;General&nbsp;Public&nbsp;License&nbsp;as&nbsp;published&nbsp;by<br>
-#&nbsp;the&nbsp;Free&nbsp;Software&nbsp;Foundation,&nbsp;either&nbsp;version&nbsp;3&nbsp;of&nbsp;the&nbsp;License,&nbsp;or<br>
-#&nbsp;(at&nbsp;your&nbsp;option)&nbsp;any&nbsp;later&nbsp;version.<br>
-#<br>
-#&nbsp;This&nbsp;program&nbsp;is&nbsp;distributed&nbsp;in&nbsp;the&nbsp;hope&nbsp;that&nbsp;it&nbsp;will&nbsp;be&nbsp;useful,<br>
-#&nbsp;but&nbsp;WITHOUT&nbsp;ANY&nbsp;WARRANTY;&nbsp;without&nbsp;even&nbsp;the&nbsp;implied&nbsp;warranty&nbsp;of<br>
-#&nbsp;MERCHANTABILITY&nbsp;or&nbsp;FITNESS&nbsp;FOR&nbsp;A&nbsp;PARTICULAR&nbsp;PURPOSE.&nbsp;&nbsp;See&nbsp;the<br>
-#&nbsp;GNU&nbsp;General&nbsp;Public&nbsp;License&nbsp;for&nbsp;more&nbsp;details.<br>
-#<br>
-#&nbsp;You&nbsp;should&nbsp;have&nbsp;received&nbsp;a&nbsp;copy&nbsp;of&nbsp;the&nbsp;GNU&nbsp;General&nbsp;Public&nbsp;License<br>
-#&nbsp;along&nbsp;with&nbsp;this&nbsp;program.&nbsp;&nbsp;If&nbsp;not,&nbsp;see&nbsp;&lt;<a href="http://www.gnu.org/licenses/">http://www.gnu.org/licenses/</a>&gt;.</tt></p>
-<p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#aa55cc">
-<td colspan=3 valign=bottom>&nbsp;<br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Modules</strong></big></font></td></tr>
-    
-<tr><td bgcolor="#aa55cc"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
-<td width="100%"><table width="100%" summary="list"><tr><td width="25%" valign=top><a href="math.html">math</a><br>
-</td><td width="25%" valign=top></td><td width="25%" valign=top></td><td width="25%" valign=top></td></tr></table></td></tr></table><p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ee77aa">
-<td colspan=3 valign=bottom>&nbsp;<br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Classes</strong></big></font></td></tr>
-    
-<tr><td bgcolor="#ee77aa"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
-<td width="100%"><dl>
-<dt><font face="helvetica, arial"><a href="__builtin__.html#object">__builtin__.object</a>
-</font></dt><dd>
-<dl>
-<dt><font face="helvetica, arial"><a href="ranger.fsobject.loader.html#LoadableObject">LoadableObject</a>
-</font></dt></dl>
-</dd>
-<dt><font face="helvetica, arial"><a href="ranger.shared.html#FileManagerAware">ranger.shared.FileManagerAware</a>(<a href="ranger.shared.html#Awareness">ranger.shared.Awareness</a>)
-</font></dt><dd>
-<dl>
-<dt><font face="helvetica, arial"><a href="ranger.fsobject.loader.html#Loader">Loader</a>
-</font></dt></dl>
-</dd>
-</dl>
- <p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ffc8d8">
-<td colspan=3 valign=bottom>&nbsp;<br>
-<font color="#000000" face="helvetica, arial"><a name="LoadableObject">class <strong>LoadableObject</strong></a>(<a href="__builtin__.html#object">__builtin__.object</a>)</font></td></tr>
-    
-<tr><td bgcolor="#ffc8d8"><tt>&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
-<td width="100%">Methods defined here:<br>
-<dl><dt><a name="LoadableObject-__init__"><strong>__init__</strong></a>(self, gen, descr)</dt></dl>
-
-<dl><dt><a name="LoadableObject-get_description"><strong>get_description</strong></a>(self)</dt></dl>
-
-<hr>
-Data descriptors defined here:<br>
-<dl><dt><strong>__dict__</strong></dt>
-<dd><tt>dictionary&nbsp;for&nbsp;instance&nbsp;variables&nbsp;(if&nbsp;defined)</tt></dd>
-</dl>
-<dl><dt><strong>__weakref__</strong></dt>
-<dd><tt>list&nbsp;of&nbsp;weak&nbsp;references&nbsp;to&nbsp;the&nbsp;object&nbsp;(if&nbsp;defined)</tt></dd>
-</dl>
-</td></tr></table> <p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ffc8d8">
-<td colspan=3 valign=bottom>&nbsp;<br>
-<font color="#000000" face="helvetica, arial"><a name="Loader">class <strong>Loader</strong></a>(<a href="ranger.shared.html#FileManagerAware">ranger.shared.FileManagerAware</a>)</font></td></tr>
-    
-<tr><td bgcolor="#ffc8d8"><tt>&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
-<td width="100%"><dl><dt>Method resolution order:</dt>
-<dd><a href="ranger.fsobject.loader.html#Loader">Loader</a></dd>
-<dd><a href="ranger.shared.html#FileManagerAware">ranger.shared.FileManagerAware</a></dd>
-<dd><a href="ranger.shared.html#Awareness">ranger.shared.Awareness</a></dd>
-<dd><a href="__builtin__.html#object">__builtin__.object</a></dd>
-</dl>
-<hr>
-Methods defined here:<br>
-<dl><dt><a name="Loader-__init__"><strong>__init__</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="Loader-add"><strong>add</strong></a>(self, obj)</dt><dd><tt>Add&nbsp;an&nbsp;<a href="__builtin__.html#object">object</a>&nbsp;to&nbsp;the&nbsp;queue.<br>
-It&nbsp;should&nbsp;have&nbsp;a&nbsp;load_generator&nbsp;method.</tt></dd></dl>
-
-<dl><dt><a name="Loader-has_work"><strong>has_work</strong></a>(self)</dt><dd><tt>Is&nbsp;there&nbsp;anything&nbsp;to&nbsp;load?</tt></dd></dl>
-
-<dl><dt><a name="Loader-move"><strong>move</strong></a>(self, _from, to)</dt></dl>
-
-<dl><dt><a name="Loader-remove"><strong>remove</strong></a>(self, item<font color="#909090">=None</font>, index<font color="#909090">=None</font>)</dt></dl>
-
-<dl><dt><a name="Loader-rotate"><strong>rotate</strong></a>(self)</dt><dd><tt>Rotate&nbsp;the&nbsp;throbber</tt></dd></dl>
-
-<dl><dt><a name="Loader-work"><strong>work</strong></a>(self)</dt><dd><tt>Load&nbsp;items&nbsp;from&nbsp;the&nbsp;queue&nbsp;if&nbsp;there&nbsp;are&nbsp;any.<br>
-Stop&nbsp;after&nbsp;approximately&nbsp;self.<strong>seconds_of_work_time</strong>.</tt></dd></dl>
-
-<hr>
-Data and other attributes defined here:<br>
-<dl><dt><strong>seconds_of_work_time</strong> = 0.029999999999999999</dl>
-
-<hr>
-Data and other attributes inherited from <a href="ranger.shared.html#FileManagerAware">ranger.shared.FileManagerAware</a>:<br>
-<dl><dt><strong>fm</strong> = None</dl>
-
-<hr>
-Data descriptors inherited from <a href="ranger.shared.html#Awareness">ranger.shared.Awareness</a>:<br>
-<dl><dt><strong>__dict__</strong></dt>
-<dd><tt>dictionary&nbsp;for&nbsp;instance&nbsp;variables&nbsp;(if&nbsp;defined)</tt></dd>
-</dl>
-<dl><dt><strong>__weakref__</strong></dt>
-<dd><tt>list&nbsp;of&nbsp;weak&nbsp;references&nbsp;to&nbsp;the&nbsp;object&nbsp;(if&nbsp;defined)</tt></dd>
-</dl>
-</td></tr></table></td></tr></table><p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#eeaa77">
-<td colspan=3 valign=bottom>&nbsp;<br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Functions</strong></big></font></td></tr>
-    
-<tr><td bgcolor="#eeaa77"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
-<td width="100%"><dl><dt><a name="-status_generator"><strong>status_generator</strong></a>()</dt><dd><tt>Generate&nbsp;a&nbsp;rotating&nbsp;line&nbsp;which&nbsp;can&nbsp;be&nbsp;used&nbsp;as&nbsp;a&nbsp;throbber</tt></dd></dl>
- <dl><dt><a name="-time"><strong>time</strong></a>(...)</dt><dd><tt><a href="#-time">time</a>()&nbsp;-&gt;&nbsp;floating&nbsp;point&nbsp;number<br>
-&nbsp;<br>
-Return&nbsp;the&nbsp;current&nbsp;time&nbsp;in&nbsp;seconds&nbsp;since&nbsp;the&nbsp;Epoch.<br>
-Fractions&nbsp;of&nbsp;a&nbsp;second&nbsp;may&nbsp;be&nbsp;present&nbsp;if&nbsp;the&nbsp;system&nbsp;clock&nbsp;provides&nbsp;them.</tt></dd></dl>
-</td></tr></table>
-</body></html>
\ No newline at end of file
diff --git a/doc/pydoc/ranger.gui.bar.html b/doc/pydoc/ranger.gui.bar.html
deleted file mode 100644
index 0eab7f3b..00000000
--- a/doc/pydoc/ranger.gui.bar.html
+++ /dev/null
@@ -1,235 +0,0 @@
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html><head><title>Python: module ranger.gui.bar</title>
-</head><body bgcolor="#f0f0f8">
-
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="heading">
-<tr bgcolor="#7799ee">
-<td valign=bottom>&nbsp;<br>
-<font color="#ffffff" face="helvetica, arial">&nbsp;<br><big><big><strong><a href="ranger.html"><font color="#ffffff">ranger</font></a>.<a href="ranger.gui.html"><font color="#ffffff">gui</font></a>.bar</strong></big></big></font></td
-><td align=right valign=bottom
-><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:/home/hut/ranger/ranger/gui/bar.py">/home/hut/ranger/ranger/gui/bar.py</a></font></td></tr></table>
-    <p><tt>#&nbsp;Copyright&nbsp;(C)&nbsp;2009,&nbsp;2010&nbsp;&nbsp;Roman&nbsp;Zimbelmann&nbsp;&lt;romanz@lavabit.com&gt;<br>
-#<br>
-#&nbsp;This&nbsp;program&nbsp;is&nbsp;free&nbsp;software:&nbsp;you&nbsp;can&nbsp;redistribute&nbsp;it&nbsp;and/or&nbsp;modify<br>
-#&nbsp;it&nbsp;under&nbsp;the&nbsp;terms&nbsp;of&nbsp;the&nbsp;GNU&nbsp;General&nbsp;Public&nbsp;License&nbsp;as&nbsp;published&nbsp;by<br>
-#&nbsp;the&nbsp;Free&nbsp;Software&nbsp;Foundation,&nbsp;either&nbsp;version&nbsp;3&nbsp;of&nbsp;the&nbsp;License,&nbsp;or<br>
-#&nbsp;(at&nbsp;your&nbsp;option)&nbsp;any&nbsp;later&nbsp;version.<br>
-#<br>
-#&nbsp;This&nbsp;program&nbsp;is&nbsp;distributed&nbsp;in&nbsp;the&nbsp;hope&nbsp;that&nbsp;it&nbsp;will&nbsp;be&nbsp;useful,<br>
-#&nbsp;but&nbsp;WITHOUT&nbsp;ANY&nbsp;WARRANTY;&nbsp;without&nbsp;even&nbsp;the&nbsp;implied&nbsp;warranty&nbsp;of<br>
-#&nbsp;MERCHANTABILITY&nbsp;or&nbsp;FITNESS&nbsp;FOR&nbsp;A&nbsp;PARTICULAR&nbsp;PURPOSE.&nbsp;&nbsp;See&nbsp;the<br>
-#&nbsp;GNU&nbsp;General&nbsp;Public&nbsp;License&nbsp;for&nbsp;more&nbsp;details.<br>
-#<br>
-#&nbsp;You&nbsp;should&nbsp;have&nbsp;received&nbsp;a&nbsp;copy&nbsp;of&nbsp;the&nbsp;GNU&nbsp;General&nbsp;Public&nbsp;License<br>
-#&nbsp;along&nbsp;with&nbsp;this&nbsp;program.&nbsp;&nbsp;If&nbsp;not,&nbsp;see&nbsp;&lt;<a href="http://www.gnu.org/licenses/">http://www.gnu.org/licenses/</a>&gt;.</tt></p>
-<p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ee77aa">
-<td colspan=3 valign=bottom>&nbsp;<br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Classes</strong></big></font></td></tr>
-    
-<tr><td bgcolor="#ee77aa"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
-<td width="100%"><dl>
-<dt><font face="helvetica, arial"><a href="__builtin__.html#list">__builtin__.list</a>(<a href="__builtin__.html#object">__builtin__.object</a>)
-</font></dt><dd>
-<dl>
-<dt><font face="helvetica, arial"><a href="ranger.gui.bar.html#BarSide">BarSide</a>
-</font></dt></dl>
-</dd>
-<dt><font face="helvetica, arial"><a href="__builtin__.html#object">__builtin__.object</a>
-</font></dt><dd>
-<dl>
-<dt><font face="helvetica, arial"><a href="ranger.gui.bar.html#Bar">Bar</a>
-</font></dt><dt><font face="helvetica, arial"><a href="ranger.gui.bar.html#ColoredString">ColoredString</a>
-</font></dt></dl>
-</dd>
-</dl>
- <p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ffc8d8">
-<td colspan=3 valign=bottom>&nbsp;<br>
-<font color="#000000" face="helvetica, arial"><a name="Bar">class <strong>Bar</strong></a>(<a href="__builtin__.html#object">__builtin__.object</a>)</font></td></tr>
-    
-<tr><td bgcolor="#ffc8d8"><tt>&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
-<td width="100%">Methods defined here:<br>
-<dl><dt><a name="Bar-__init__"><strong>__init__</strong></a>(self, base_color_tag)</dt></dl>
-
-<dl><dt><a name="Bar-add"><strong>add</strong></a>(self, *a, **kw)</dt></dl>
-
-<dl><dt><a name="Bar-addright"><strong>addright</strong></a>(self, *a, **kw)</dt></dl>
-
-<dl><dt><a name="Bar-combine"><strong>combine</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="Bar-fill_gap"><strong>fill_gap</strong></a>(self, char, wid, gapwidth<font color="#909090">=False</font>)</dt></dl>
-
-<dl><dt><a name="Bar-fixedsize"><strong>fixedsize</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="Bar-shrink_by_cutting"><strong>shrink_by_cutting</strong></a>(self, wid)</dt></dl>
-
-<dl><dt><a name="Bar-shrink_by_removing"><strong>shrink_by_removing</strong></a>(self, wid)</dt></dl>
-
-<dl><dt><a name="Bar-sumsize"><strong>sumsize</strong></a>(self)</dt></dl>
-
-<hr>
-Data descriptors defined here:<br>
-<dl><dt><strong>__dict__</strong></dt>
-<dd><tt>dictionary&nbsp;for&nbsp;instance&nbsp;variables&nbsp;(if&nbsp;defined)</tt></dd>
-</dl>
-<dl><dt><strong>__weakref__</strong></dt>
-<dd><tt>list&nbsp;of&nbsp;weak&nbsp;references&nbsp;to&nbsp;the&nbsp;object&nbsp;(if&nbsp;defined)</tt></dd>
-</dl>
-<hr>
-Data and other attributes defined here:<br>
-<dl><dt><strong>gap</strong> = None</dl>
-
-<dl><dt><strong>left</strong> = None</dl>
-
-<dl><dt><strong>right</strong> = None</dl>
-
-</td></tr></table> <p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ffc8d8">
-<td colspan=3 valign=bottom>&nbsp;<br>
-<font color="#000000" face="helvetica, arial"><a name="BarSide">class <strong>BarSide</strong></a>(<a href="__builtin__.html#list">__builtin__.list</a>)</font></td></tr>
-    
-<tr><td bgcolor="#ffc8d8"><tt>&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
-<td width="100%"><dl><dt>Method resolution order:</dt>
-<dd><a href="ranger.gui.bar.html#BarSide">BarSide</a></dd>
-<dd><a href="__builtin__.html#list">__builtin__.list</a></dd>
-<dd><a href="__builtin__.html#object">__builtin__.object</a></dd>
-</dl>
-<hr>
-Methods defined here:<br>
-<dl><dt><a name="BarSide-__init__"><strong>__init__</strong></a>(self, base_color_tag)</dt></dl>
-
-<dl><dt><a name="BarSide-add"><strong>add</strong></a>(self, string, *lst, **kw)</dt></dl>
-
-<dl><dt><a name="BarSide-add_space"><strong>add_space</strong></a>(self, n<font color="#909090">=1</font>)</dt></dl>
-
-<dl><dt><a name="BarSide-fixedsize"><strong>fixedsize</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="BarSide-nonfixed_items"><strong>nonfixed_items</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="BarSide-sumsize"><strong>sumsize</strong></a>(self)</dt></dl>
-
-<hr>
-Data descriptors defined here:<br>
-<dl><dt><strong>__dict__</strong></dt>
-<dd><tt>dictionary&nbsp;for&nbsp;instance&nbsp;variables&nbsp;(if&nbsp;defined)</tt></dd>
-</dl>
-<dl><dt><strong>__weakref__</strong></dt>
-<dd><tt>list&nbsp;of&nbsp;weak&nbsp;references&nbsp;to&nbsp;the&nbsp;object&nbsp;(if&nbsp;defined)</tt></dd>
-</dl>
-<hr>
-Methods inherited from <a href="__builtin__.html#list">__builtin__.list</a>:<br>
-<dl><dt><a name="BarSide-__add__"><strong>__add__</strong></a>(...)</dt><dd><tt>x.<a href="#BarSide-__add__">__add__</a>(y)&nbsp;&lt;==&gt;&nbsp;x+y</tt></dd></dl>
-
-<dl><dt><a name="BarSide-__contains__"><strong>__contains__</strong></a>(...)</dt><dd><tt>x.<a href="#BarSide-__contains__">__contains__</a>(y)&nbsp;&lt;==&gt;&nbsp;y&nbsp;in&nbsp;x</tt></dd></dl>
-
-<dl><dt><a name="BarSide-__delitem__"><strong>__delitem__</strong></a>(...)</dt><dd><tt>x.<a href="#BarSide-__delitem__">__delitem__</a>(y)&nbsp;&lt;==&gt;&nbsp;del&nbsp;x[y]</tt></dd></dl>
-
-<dl><dt><a name="BarSide-__delslice__"><strong>__delslice__</strong></a>(...)</dt><dd><tt>x.<a href="#BarSide-__delslice__">__delslice__</a>(i,&nbsp;j)&nbsp;&lt;==&gt;&nbsp;del&nbsp;x[i:j]<br>
-&nbsp;<br>
-Use&nbsp;of&nbsp;negative&nbsp;indices&nbsp;is&nbsp;not&nbsp;supported.</tt></dd></dl>
-
-<dl><dt><a name="BarSide-__eq__"><strong>__eq__</strong></a>(...)</dt><dd><tt>x.<a href="#BarSide-__eq__">__eq__</a>(y)&nbsp;&lt;==&gt;&nbsp;x==y</tt></dd></dl>
-
-<dl><dt><a name="BarSide-__ge__"><strong>__ge__</strong></a>(...)</dt><dd><tt>x.<a href="#BarSide-__ge__">__ge__</a>(y)&nbsp;&lt;==&gt;&nbsp;x&gt;=y</tt></dd></dl>
-
-<dl><dt><a name="BarSide-__getattribute__"><strong>__getattribute__</strong></a>(...)</dt><dd><tt>x.<a href="#BarSide-__getattribute__">__getattribute__</a>('name')&nbsp;&lt;==&gt;&nbsp;x.name</tt></dd></dl>
-
-<dl><dt><a name="BarSide-__getitem__"><strong>__getitem__</strong></a>(...)</dt><dd><tt>x.<a href="#BarSide-__getitem__">__getitem__</a>(y)&nbsp;&lt;==&gt;&nbsp;x[y]</tt></dd></dl>
-
-<dl><dt><a name="BarSide-__getslice__"><strong>__getslice__</strong></a>(...)</dt><dd><tt>x.<a href="#BarSide-__getslice__">__getslice__</a>(i,&nbsp;j)&nbsp;&lt;==&gt;&nbsp;x[i:j]<br>
-&nbsp;<br>
-Use&nbsp;of&nbsp;negative&nbsp;indices&nbsp;is&nbsp;not&nbsp;supported.</tt></dd></dl>
-
-<dl><dt><a name="BarSide-__gt__"><strong>__gt__</strong></a>(...)</dt><dd><tt>x.<a href="#BarSide-__gt__">__gt__</a>(y)&nbsp;&lt;==&gt;&nbsp;x&gt;y</tt></dd></dl>
-
-<dl><dt><a name="BarSide-__iadd__"><strong>__iadd__</strong></a>(...)</dt><dd><tt>x.<a href="#BarSide-__iadd__">__iadd__</a>(y)&nbsp;&lt;==&gt;&nbsp;x+=y</tt></dd></dl>
-
-<dl><dt><a name="BarSide-__imul__"><strong>__imul__</strong></a>(...)</dt><dd><tt>x.<a href="#BarSide-__imul__">__imul__</a>(y)&nbsp;&lt;==&gt;&nbsp;x*=y</tt></dd></dl>
-
-<dl><dt><a name="BarSide-__iter__"><strong>__iter__</strong></a>(...)</dt><dd><tt>x.<a href="#BarSide-__iter__">__iter__</a>()&nbsp;&lt;==&gt;&nbsp;iter(x)</tt></dd></dl>
-
-<dl><dt><a name="BarSide-__le__"><strong>__le__</strong></a>(...)</dt><dd><tt>x.<a href="#BarSide-__le__">__le__</a>(y)&nbsp;&lt;==&gt;&nbsp;x&lt;=y</tt></dd></dl>
-
-<dl><dt><a name="BarSide-__len__"><strong>__len__</strong></a>(...)</dt><dd><tt>x.<a href="#BarSide-__len__">__len__</a>()&nbsp;&lt;==&gt;&nbsp;len(x)</tt></dd></dl>
-
-<dl><dt><a name="BarSide-__lt__"><strong>__lt__</strong></a>(...)</dt><dd><tt>x.<a href="#BarSide-__lt__">__lt__</a>(y)&nbsp;&lt;==&gt;&nbsp;x&lt;y</tt></dd></dl>
-
-<dl><dt><a name="BarSide-__mul__"><strong>__mul__</strong></a>(...)</dt><dd><tt>x.<a href="#BarSide-__mul__">__mul__</a>(n)&nbsp;&lt;==&gt;&nbsp;x*n</tt></dd></dl>
-
-<dl><dt><a name="BarSide-__ne__"><strong>__ne__</strong></a>(...)</dt><dd><tt>x.<a href="#BarSide-__ne__">__ne__</a>(y)&nbsp;&lt;==&gt;&nbsp;x!=y</tt></dd></dl>
-
-<dl><dt><a name="BarSide-__repr__"><strong>__repr__</strong></a>(...)</dt><dd><tt>x.<a href="#BarSide-__repr__">__repr__</a>()&nbsp;&lt;==&gt;&nbsp;repr(x)</tt></dd></dl>
-
-<dl><dt><a name="BarSide-__reversed__"><strong>__reversed__</strong></a>(...)</dt><dd><tt>L.<a href="#BarSide-__reversed__">__reversed__</a>()&nbsp;--&nbsp;return&nbsp;a&nbsp;reverse&nbsp;iterator&nbsp;over&nbsp;the&nbsp;<a href="__builtin__.html#list">list</a></tt></dd></dl>
-
-<dl><dt><a name="BarSide-__rmul__"><strong>__rmul__</strong></a>(...)</dt><dd><tt>x.<a href="#BarSide-__rmul__">__rmul__</a>(n)&nbsp;&lt;==&gt;&nbsp;n*x</tt></dd></dl>
-
-<dl><dt><a name="BarSide-__setitem__"><strong>__setitem__</strong></a>(...)</dt><dd><tt>x.<a href="#BarSide-__setitem__">__setitem__</a>(i,&nbsp;y)&nbsp;&lt;==&gt;&nbsp;x[i]=y</tt></dd></dl>
-
-<dl><dt><a name="BarSide-__setslice__"><strong>__setslice__</strong></a>(...)</dt><dd><tt>x.<a href="#BarSide-__setslice__">__setslice__</a>(i,&nbsp;j,&nbsp;y)&nbsp;&lt;==&gt;&nbsp;x[i:j]=y<br>
-&nbsp;<br>
-Use&nbsp;&nbsp;of&nbsp;negative&nbsp;indices&nbsp;is&nbsp;not&nbsp;supported.</tt></dd></dl>
-
-<dl><dt><a name="BarSide-__sizeof__"><strong>__sizeof__</strong></a>(...)</dt><dd><tt>L.<a href="#BarSide-__sizeof__">__sizeof__</a>()&nbsp;--&nbsp;size&nbsp;of&nbsp;L&nbsp;in&nbsp;memory,&nbsp;in&nbsp;bytes</tt></dd></dl>
-
-<dl><dt><a name="BarSide-append"><strong>append</strong></a>(...)</dt><dd><tt>L.<a href="#BarSide-append">append</a>(<a href="__builtin__.html#object">object</a>)&nbsp;--&nbsp;append&nbsp;<a href="__builtin__.html#object">object</a>&nbsp;to&nbsp;end</tt></dd></dl>
-
-<dl><dt><a name="BarSide-count"><strong>count</strong></a>(...)</dt><dd><tt>L.<a href="#BarSide-count">count</a>(value)&nbsp;-&gt;&nbsp;integer&nbsp;--&nbsp;return&nbsp;number&nbsp;of&nbsp;occurrences&nbsp;of&nbsp;value</tt></dd></dl>
-
-<dl><dt><a name="BarSide-extend"><strong>extend</strong></a>(...)</dt><dd><tt>L.<a href="#BarSide-extend">extend</a>(iterable)&nbsp;--&nbsp;extend&nbsp;<a href="__builtin__.html#list">list</a>&nbsp;by&nbsp;appending&nbsp;elements&nbsp;from&nbsp;the&nbsp;iterable</tt></dd></dl>
-
-<dl><dt><a name="BarSide-index"><strong>index</strong></a>(...)</dt><dd><tt>L.<a href="#BarSide-index">index</a>(value,&nbsp;[start,&nbsp;[stop]])&nbsp;-&gt;&nbsp;integer&nbsp;--&nbsp;return&nbsp;first&nbsp;index&nbsp;of&nbsp;value.<br>
-Raises&nbsp;ValueError&nbsp;if&nbsp;the&nbsp;value&nbsp;is&nbsp;not&nbsp;present.</tt></dd></dl>
-
-<dl><dt><a name="BarSide-insert"><strong>insert</strong></a>(...)</dt><dd><tt>L.<a href="#BarSide-insert">insert</a>(index,&nbsp;<a href="__builtin__.html#object">object</a>)&nbsp;--&nbsp;insert&nbsp;<a href="__builtin__.html#object">object</a>&nbsp;before&nbsp;index</tt></dd></dl>
-
-<dl><dt><a name="BarSide-pop"><strong>pop</strong></a>(...)</dt><dd><tt>L.<a href="#BarSide-pop">pop</a>([index])&nbsp;-&gt;&nbsp;item&nbsp;--&nbsp;remove&nbsp;and&nbsp;return&nbsp;item&nbsp;at&nbsp;index&nbsp;(default&nbsp;last).<br>
-Raises&nbsp;IndexError&nbsp;if&nbsp;<a href="__builtin__.html#list">list</a>&nbsp;is&nbsp;empty&nbsp;or&nbsp;index&nbsp;is&nbsp;out&nbsp;of&nbsp;range.</tt></dd></dl>
-
-<dl><dt><a name="BarSide-remove"><strong>remove</strong></a>(...)</dt><dd><tt>L.<a href="#BarSide-remove">remove</a>(value)&nbsp;--&nbsp;remove&nbsp;first&nbsp;occurrence&nbsp;of&nbsp;value.<br>
-Raises&nbsp;ValueError&nbsp;if&nbsp;the&nbsp;value&nbsp;is&nbsp;not&nbsp;present.</tt></dd></dl>
-
-<dl><dt><a name="BarSide-reverse"><strong>reverse</strong></a>(...)</dt><dd><tt>L.<a href="#BarSide-reverse">reverse</a>()&nbsp;--&nbsp;reverse&nbsp;*IN&nbsp;PLACE*</tt></dd></dl>
-
-<dl><dt><a name="BarSide-sort"><strong>sort</strong></a>(...)</dt><dd><tt>L.<a href="#BarSide-sort">sort</a>(cmp=None,&nbsp;key=None,&nbsp;reverse=False)&nbsp;--&nbsp;stable&nbsp;sort&nbsp;*IN&nbsp;PLACE*;<br>
-cmp(x,&nbsp;y)&nbsp;-&gt;&nbsp;-1,&nbsp;0,&nbsp;1</tt></dd></dl>
-
-<hr>
-Data and other attributes inherited from <a href="__builtin__.html#list">__builtin__.list</a>:<br>
-<dl><dt><strong>__hash__</strong> = None</dl>
-
-<dl><dt><strong>__new__</strong> = &lt;built-in method __new__ of type object&gt;<dd><tt>T.<a href="#BarSide-__new__">__new__</a>(S,&nbsp;...)&nbsp;-&gt;&nbsp;a&nbsp;new&nbsp;<a href="__builtin__.html#object">object</a>&nbsp;with&nbsp;type&nbsp;S,&nbsp;a&nbsp;subtype&nbsp;of&nbsp;T</tt></dl>
-
-</td></tr></table> <p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ffc8d8">
-<td colspan=3 valign=bottom>&nbsp;<br>
-<font color="#000000" face="helvetica, arial"><a name="ColoredString">class <strong>ColoredString</strong></a>(<a href="__builtin__.html#object">__builtin__.object</a>)</font></td></tr>
-    
-<tr><td bgcolor="#ffc8d8"><tt>&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
-<td width="100%">Methods defined here:<br>
-<dl><dt><a name="ColoredString-__init__"><strong>__init__</strong></a>(self, string, *lst)</dt></dl>
-
-<dl><dt><a name="ColoredString-__len__"><strong>__len__</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="ColoredString-__str__"><strong>__str__</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="ColoredString-cut_off"><strong>cut_off</strong></a>(self, n)</dt></dl>
-
-<dl><dt><a name="ColoredString-cut_off_to"><strong>cut_off_to</strong></a>(self, n)</dt></dl>
-
-<hr>
-Data descriptors defined here:<br>
-<dl><dt><strong>__dict__</strong></dt>
-<dd><tt>dictionary&nbsp;for&nbsp;instance&nbsp;variables&nbsp;(if&nbsp;defined)</tt></dd>
-</dl>
-<dl><dt><strong>__weakref__</strong></dt>
-<dd><tt>list&nbsp;of&nbsp;weak&nbsp;references&nbsp;to&nbsp;the&nbsp;object&nbsp;(if&nbsp;defined)</tt></dd>
-</dl>
-</td></tr></table></td></tr></table>
-</body></html>
\ No newline at end of file
diff --git a/doc/pydoc/ranger.gui.color.html b/doc/pydoc/ranger.gui.color.html
deleted file mode 100644
index 75545834..00000000
--- a/doc/pydoc/ranger.gui.color.html
+++ /dev/null
@@ -1,62 +0,0 @@
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html><head><title>Python: module ranger.gui.color</title>
-</head><body bgcolor="#f0f0f8">
-
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="heading">
-<tr bgcolor="#7799ee">
-<td valign=bottom>&nbsp;<br>
-<font color="#ffffff" face="helvetica, arial">&nbsp;<br><big><big><strong><a href="ranger.html"><font color="#ffffff">ranger</font></a>.<a href="ranger.gui.html"><font color="#ffffff">gui</font></a>.color</strong></big></big></font></td
-><td align=right valign=bottom
-><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:/home/hut/ranger/ranger/gui/color.py">/home/hut/ranger/ranger/gui/color.py</a></font></td></tr></table>
-    <p><tt>Contains&nbsp;abbreviations&nbsp;to&nbsp;curses&nbsp;color/attribute&nbsp;constants.<br>
-&nbsp;<br>
-Multiple&nbsp;attributes&nbsp;can&nbsp;be&nbsp;combined&nbsp;with&nbsp;the&nbsp;|&nbsp;(or)&nbsp;operator,&nbsp;toggled<br>
-with&nbsp;^&nbsp;(xor)&nbsp;and&nbsp;checked&nbsp;for&nbsp;with&nbsp;&amp;&nbsp;(and).&nbsp;Examples:<br>
-&nbsp;<br>
-attr&nbsp;=&nbsp;bold&nbsp;|&nbsp;underline<br>
-attr&nbsp;|=&nbsp;reverse<br>
-bool(attr&nbsp;&amp;&nbsp;reverse)&nbsp;#&nbsp;=&gt;&nbsp;True<br>
-attr&nbsp;^=&nbsp;reverse<br>
-bool(attr&nbsp;&amp;&nbsp;reverse)&nbsp;#&nbsp;=&gt;&nbsp;False</tt></p>
-<p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#aa55cc">
-<td colspan=3 valign=bottom>&nbsp;<br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Modules</strong></big></font></td></tr>
-    
-<tr><td bgcolor="#aa55cc"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
-<td width="100%"><table width="100%" summary="list"><tr><td width="25%" valign=top><a href="curses.html">curses</a><br>
-</td><td width="25%" valign=top></td><td width="25%" valign=top></td><td width="25%" valign=top></td></tr></table></td></tr></table><p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#eeaa77">
-<td colspan=3 valign=bottom>&nbsp;<br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Functions</strong></big></font></td></tr>
-    
-<tr><td bgcolor="#eeaa77"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
-<td width="100%"><dl><dt><a name="-get_color"><strong>get_color</strong></a>(fg, bg)</dt><dd><tt>Returns&nbsp;the&nbsp;curses&nbsp;color&nbsp;pair&nbsp;for&nbsp;the&nbsp;given&nbsp;fg/bg&nbsp;combination.</tt></dd></dl>
- <dl><dt><a name="-remove_attr"><strong>remove_attr</strong></a>(integer, attr)</dt><dd><tt>Remove&nbsp;an&nbsp;attribute&nbsp;from&nbsp;an&nbsp;integer</tt></dd></dl>
-</td></tr></table><p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#55aa55">
-<td colspan=3 valign=bottom>&nbsp;<br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Data</strong></big></font></td></tr>
-    
-<tr><td bgcolor="#55aa55"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
-<td width="100%"><strong>COLOR_PAIRS</strong> = {10: 0}<br>
-<strong>black</strong> = 0<br>
-<strong>blue</strong> = 4<br>
-<strong>bold</strong> = 2097152<br>
-<strong>cyan</strong> = 6<br>
-<strong>default</strong> = -1<br>
-<strong>default_colors</strong> = (-1, -1, 0)<br>
-<strong>green</strong> = 2<br>
-<strong>invisible</strong> = 8388608<br>
-<strong>magenta</strong> = 5<br>
-<strong>normal</strong> = 0<br>
-<strong>red</strong> = 1<br>
-<strong>reverse</strong> = 262144<br>
-<strong>underline</strong> = 131072<br>
-<strong>white</strong> = 7<br>
-<strong>yellow</strong> = 3</td></tr></table>
-</body></html>
\ No newline at end of file
diff --git a/doc/pydoc/ranger.gui.colorscheme.html b/doc/pydoc/ranger.gui.colorscheme.html
deleted file mode 100644
index c44d0873..00000000
--- a/doc/pydoc/ranger.gui.colorscheme.html
+++ /dev/null
@@ -1,121 +0,0 @@
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html><head><title>Python: module ranger.gui.colorscheme</title>
-</head><body bgcolor="#f0f0f8">
-
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="heading">
-<tr bgcolor="#7799ee">
-<td valign=bottom>&nbsp;<br>
-<font color="#ffffff" face="helvetica, arial">&nbsp;<br><big><big><strong><a href="ranger.html"><font color="#ffffff">ranger</font></a>.<a href="ranger.gui.html"><font color="#ffffff">gui</font></a>.colorscheme</strong></big></big></font></td
-><td align=right valign=bottom
-><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:/home/hut/ranger/ranger/gui/colorscheme.py">/home/hut/ranger/ranger/gui/colorscheme.py</a></font></td></tr></table>
-    <p><tt>Colorschemes&nbsp;define&nbsp;colors&nbsp;for&nbsp;specific&nbsp;contexts.<br>
-&nbsp;<br>
-Generally,&nbsp;this&nbsp;works&nbsp;by&nbsp;passing&nbsp;a&nbsp;set&nbsp;of&nbsp;keywords&nbsp;(strings)&nbsp;to<br>
-the&nbsp;colorscheme.get()&nbsp;method&nbsp;to&nbsp;receive&nbsp;the&nbsp;tuple&nbsp;(fg,&nbsp;bg,&nbsp;attr).<br>
-fg,&nbsp;bg&nbsp;are&nbsp;the&nbsp;foreground&nbsp;and&nbsp;background&nbsp;colors&nbsp;and&nbsp;attr&nbsp;is&nbsp;the&nbsp;attribute.<br>
-The&nbsp;values&nbsp;are&nbsp;specified&nbsp;in&nbsp;ranger.gui.color.<br>
-&nbsp;<br>
-A&nbsp;colorscheme&nbsp;must...<br>
-&nbsp;<br>
-1.&nbsp;be&nbsp;inside&nbsp;either&nbsp;of&nbsp;these&nbsp;directories:<br>
-~/.ranger/colorschemes/<br>
-path/to/ranger/colorschemes/<br>
-&nbsp;<br>
-2.&nbsp;be&nbsp;a&nbsp;subclass&nbsp;of&nbsp;ranger.gui.colorscheme.<a href="#ColorScheme">ColorScheme</a><br>
-&nbsp;<br>
-3.&nbsp;implement&nbsp;a&nbsp;use(self,&nbsp;context)&nbsp;method&nbsp;which&nbsp;returns&nbsp;(fg,&nbsp;bg,&nbsp;attr).<br>
-context&nbsp;is&nbsp;a&nbsp;struct&nbsp;which&nbsp;contains&nbsp;all&nbsp;entries&nbsp;of&nbsp;CONTEXT_KEYS,<br>
-associated&nbsp;with&nbsp;either&nbsp;True&nbsp;or&nbsp;False.<br>
-&nbsp;<br>
-define&nbsp;which&nbsp;colorscheme&nbsp;to&nbsp;use&nbsp;by&nbsp;having&nbsp;this&nbsp;to&nbsp;your&nbsp;options.py:<br>
-from&nbsp;ranger&nbsp;import&nbsp;colorschemes<br>
-colorscheme&nbsp;=&nbsp;colorschemes.filename<br>
-&nbsp;<br>
-If&nbsp;your&nbsp;colorscheme-file&nbsp;contains&nbsp;more&nbsp;than&nbsp;one&nbsp;colorscheme,&nbsp;specify&nbsp;it&nbsp;with:<br>
-colorscheme&nbsp;=&nbsp;colorschemes.filename.classname</tt></p>
-<p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#aa55cc">
-<td colspan=3 valign=bottom>&nbsp;<br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Modules</strong></big></font></td></tr>
-    
-<tr><td bgcolor="#aa55cc"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
-<td width="100%"><table width="100%" summary="list"><tr><td width="25%" valign=top><a href="os.html">os</a><br>
-</td><td width="25%" valign=top><a href="ranger.html">ranger</a><br>
-</td><td width="25%" valign=top></td><td width="25%" valign=top></td></tr></table></td></tr></table><p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ee77aa">
-<td colspan=3 valign=bottom>&nbsp;<br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Classes</strong></big></font></td></tr>
-    
-<tr><td bgcolor="#ee77aa"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
-<td width="100%"><dl>
-<dt><font face="helvetica, arial"><a href="ranger.shared.settings.html#SettingsAware">ranger.shared.settings.SettingsAware</a>(<a href="__builtin__.html#object">__builtin__.object</a>)
-</font></dt><dd>
-<dl>
-<dt><font face="helvetica, arial"><a href="ranger.gui.colorscheme.html#ColorScheme">ColorScheme</a>
-</font></dt></dl>
-</dd>
-</dl>
- <p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ffc8d8">
-<td colspan=3 valign=bottom>&nbsp;<br>
-<font color="#000000" face="helvetica, arial"><a name="ColorScheme">class <strong>ColorScheme</strong></a>(<a href="ranger.shared.settings.html#SettingsAware">ranger.shared.settings.SettingsAware</a>)</font></td></tr>
-    
-<tr bgcolor="#ffc8d8"><td rowspan=2><tt>&nbsp;&nbsp;&nbsp;</tt></td>
-<td colspan=2><tt>This&nbsp;is&nbsp;the&nbsp;class&nbsp;that&nbsp;colorschemes&nbsp;must&nbsp;inherit&nbsp;from.<br>
-&nbsp;<br>
-it&nbsp;defines&nbsp;<a href="#ColorScheme-get">get</a>()&nbsp;<br>
-it&nbsp;defines&nbsp;the&nbsp;<a href="#ColorScheme-get">get</a>()&nbsp;method,&nbsp;which&nbsp;returns&nbsp;the&nbsp;color&nbsp;tuple<br>
-which&nbsp;fits&nbsp;to&nbsp;the&nbsp;given&nbsp;keys.<br>&nbsp;</tt></td></tr>
-<tr><td>&nbsp;</td>
-<td width="100%"><dl><dt>Method resolution order:</dt>
-<dd><a href="ranger.gui.colorscheme.html#ColorScheme">ColorScheme</a></dd>
-<dd><a href="ranger.shared.settings.html#SettingsAware">ranger.shared.settings.SettingsAware</a></dd>
-<dd><a href="__builtin__.html#object">__builtin__.object</a></dd>
-</dl>
-<hr>
-Methods defined here:<br>
-<dl><dt><a name="ColorScheme-__init__"><strong>__init__</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="ColorScheme-get"><strong>get</strong></a>(self, *keys)</dt><dd><tt>Returns&nbsp;the&nbsp;(fg,&nbsp;bg,&nbsp;attr)&nbsp;for&nbsp;the&nbsp;given&nbsp;keys.<br>
-&nbsp;<br>
-Using&nbsp;this&nbsp;function&nbsp;rather&nbsp;than&nbsp;<a href="#ColorScheme-use">use</a>()&nbsp;will&nbsp;cache&nbsp;all<br>
-colors&nbsp;for&nbsp;faster&nbsp;access.</tt></dd></dl>
-
-<dl><dt><a name="ColorScheme-get_attr"><strong>get_attr</strong></a>(self, *keys)</dt><dd><tt>Returns&nbsp;the&nbsp;curses&nbsp;attribute&nbsp;for&nbsp;the&nbsp;specified&nbsp;keys<br>
-&nbsp;<br>
-Ready&nbsp;to&nbsp;use&nbsp;for&nbsp;curses.setattr()</tt></dd></dl>
-
-<dl><dt><a name="ColorScheme-use"><strong>use</strong></a>(self, context)</dt><dd><tt>Use&nbsp;the&nbsp;colorscheme&nbsp;to&nbsp;determine&nbsp;the&nbsp;(fg,&nbsp;bg,&nbsp;attr)&nbsp;tuple.<br>
-&nbsp;<br>
-When&nbsp;no&nbsp;colorscheme&nbsp;is&nbsp;found,&nbsp;ranger&nbsp;will&nbsp;fall&nbsp;back&nbsp;to&nbsp;this&nbsp;very<br>
-basic&nbsp;colorscheme&nbsp;where&nbsp;directories&nbsp;are&nbsp;blue&nbsp;and&nbsp;bold,&nbsp;and<br>
-selected&nbsp;files&nbsp;have&nbsp;the&nbsp;color&nbsp;inverted.<br>
-&nbsp;<br>
-Override&nbsp;this&nbsp;method&nbsp;in&nbsp;your&nbsp;own&nbsp;colorscheme.</tt></dd></dl>
-
-<hr>
-Data descriptors inherited from <a href="ranger.shared.settings.html#SettingsAware">ranger.shared.settings.SettingsAware</a>:<br>
-<dl><dt><strong>__dict__</strong></dt>
-<dd><tt>dictionary&nbsp;for&nbsp;instance&nbsp;variables&nbsp;(if&nbsp;defined)</tt></dd>
-</dl>
-<dl><dt><strong>__weakref__</strong></dt>
-<dd><tt>list&nbsp;of&nbsp;weak&nbsp;references&nbsp;to&nbsp;the&nbsp;object&nbsp;(if&nbsp;defined)</tt></dd>
-</dl>
-<hr>
-Data and other attributes inherited from <a href="ranger.shared.settings.html#SettingsAware">ranger.shared.settings.SettingsAware</a>:<br>
-<dl><dt><strong>settings</strong> = {}</dl>
-
-</td></tr></table></td></tr></table><p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#eeaa77">
-<td colspan=3 valign=bottom>&nbsp;<br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Functions</strong></big></font></td></tr>
-    
-<tr><td bgcolor="#eeaa77"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
-<td width="100%"><dl><dt><a name="-color_pair"><strong>color_pair</strong></a>(...)</dt></dl>
-</td></tr></table>
-</body></html>
\ No newline at end of file
diff --git a/doc/pydoc/ranger.gui.curses_shortcuts.html b/doc/pydoc/ranger.gui.curses_shortcuts.html
deleted file mode 100644
index 724177b3..00000000
--- a/doc/pydoc/ranger.gui.curses_shortcuts.html
+++ /dev/null
@@ -1,93 +0,0 @@
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html><head><title>Python: module ranger.gui.curses_shortcuts</title>
-</head><body bgcolor="#f0f0f8">
-
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="heading">
-<tr bgcolor="#7799ee">
-<td valign=bottom>&nbsp;<br>
-<font color="#ffffff" face="helvetica, arial">&nbsp;<br><big><big><strong><a href="ranger.html"><font color="#ffffff">ranger</font></a>.<a href="ranger.gui.html"><font color="#ffffff">gui</font></a>.curses_shortcuts</strong></big></big></font></td
-><td align=right valign=bottom
-><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:/home/hut/ranger/ranger/gui/curses_shortcuts.py">/home/hut/ranger/ranger/gui/curses_shortcuts.py</a></font></td></tr></table>
-    <p><tt>#&nbsp;Copyright&nbsp;(C)&nbsp;2009,&nbsp;2010&nbsp;&nbsp;Roman&nbsp;Zimbelmann&nbsp;&lt;romanz@lavabit.com&gt;<br>
-#<br>
-#&nbsp;This&nbsp;program&nbsp;is&nbsp;free&nbsp;software:&nbsp;you&nbsp;can&nbsp;redistribute&nbsp;it&nbsp;and/or&nbsp;modify<br>
-#&nbsp;it&nbsp;under&nbsp;the&nbsp;terms&nbsp;of&nbsp;the&nbsp;GNU&nbsp;General&nbsp;Public&nbsp;License&nbsp;as&nbsp;published&nbsp;by<br>
-#&nbsp;the&nbsp;Free&nbsp;Software&nbsp;Foundation,&nbsp;either&nbsp;version&nbsp;3&nbsp;of&nbsp;the&nbsp;License,&nbsp;or<br>
-#&nbsp;(at&nbsp;your&nbsp;option)&nbsp;any&nbsp;later&nbsp;version.<br>
-#<br>
-#&nbsp;This&nbsp;program&nbsp;is&nbsp;distributed&nbsp;in&nbsp;the&nbsp;hope&nbsp;that&nbsp;it&nbsp;will&nbsp;be&nbsp;useful,<br>
-#&nbsp;but&nbsp;WITHOUT&nbsp;ANY&nbsp;WARRANTY;&nbsp;without&nbsp;even&nbsp;the&nbsp;implied&nbsp;warranty&nbsp;of<br>
-#&nbsp;MERCHANTABILITY&nbsp;or&nbsp;FITNESS&nbsp;FOR&nbsp;A&nbsp;PARTICULAR&nbsp;PURPOSE.&nbsp;&nbsp;See&nbsp;the<br>
-#&nbsp;GNU&nbsp;General&nbsp;Public&nbsp;License&nbsp;for&nbsp;more&nbsp;details.<br>
-#<br>
-#&nbsp;You&nbsp;should&nbsp;have&nbsp;received&nbsp;a&nbsp;copy&nbsp;of&nbsp;the&nbsp;GNU&nbsp;General&nbsp;Public&nbsp;License<br>
-#&nbsp;along&nbsp;with&nbsp;this&nbsp;program.&nbsp;&nbsp;If&nbsp;not,&nbsp;see&nbsp;&lt;<a href="http://www.gnu.org/licenses/">http://www.gnu.org/licenses/</a>&gt;.</tt></p>
-<p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#aa55cc">
-<td colspan=3 valign=bottom>&nbsp;<br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Modules</strong></big></font></td></tr>
-    
-<tr><td bgcolor="#aa55cc"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
-<td width="100%"><table width="100%" summary="list"><tr><td width="25%" valign=top><a href="_curses.html">_curses</a><br>
-</td><td width="25%" valign=top></td><td width="25%" valign=top></td><td width="25%" valign=top></td></tr></table></td></tr></table><p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ee77aa">
-<td colspan=3 valign=bottom>&nbsp;<br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Classes</strong></big></font></td></tr>
-    
-<tr><td bgcolor="#ee77aa"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
-<td width="100%"><dl>
-<dt><font face="helvetica, arial"><a href="ranger.shared.settings.html#SettingsAware">ranger.shared.settings.SettingsAware</a>(<a href="__builtin__.html#object">__builtin__.object</a>)
-</font></dt><dd>
-<dl>
-<dt><font face="helvetica, arial"><a href="ranger.gui.curses_shortcuts.html#CursesShortcuts">CursesShortcuts</a>
-</font></dt></dl>
-</dd>
-</dl>
- <p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ffc8d8">
-<td colspan=3 valign=bottom>&nbsp;<br>
-<font color="#000000" face="helvetica, arial"><a name="CursesShortcuts">class <strong>CursesShortcuts</strong></a>(<a href="ranger.shared.settings.html#SettingsAware">ranger.shared.settings.SettingsAware</a>)</font></td></tr>
-    
-<tr bgcolor="#ffc8d8"><td rowspan=2><tt>&nbsp;&nbsp;&nbsp;</tt></td>
-<td colspan=2><tt>This&nbsp;class&nbsp;defines&nbsp;shortcuts&nbsp;to&nbsp;faciliate&nbsp;operations&nbsp;with&nbsp;curses.<br>
-<a href="#CursesShortcuts-color">color</a>(*keys)&nbsp;--&nbsp;sets&nbsp;the&nbsp;color&nbsp;associated&nbsp;with&nbsp;the&nbsp;keys&nbsp;from<br>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;the&nbsp;current&nbsp;colorscheme.<br>
-<a href="#CursesShortcuts-color_at">color_at</a>(y,&nbsp;x,&nbsp;wid,&nbsp;*keys)&nbsp;--&nbsp;sets&nbsp;the&nbsp;color&nbsp;at&nbsp;the&nbsp;given&nbsp;position<br>
-<a href="#CursesShortcuts-color_reset">color_reset</a>()&nbsp;--&nbsp;resets&nbsp;the&nbsp;color&nbsp;to&nbsp;the&nbsp;default<br>
-<a href="#CursesShortcuts-addstr">addstr</a>(*args)&nbsp;--&nbsp;failsafe&nbsp;version&nbsp;of&nbsp;self.<strong>win</strong>.<a href="#CursesShortcuts-addstr">addstr</a>(*args)<br>&nbsp;</tt></td></tr>
-<tr><td>&nbsp;</td>
-<td width="100%"><dl><dt>Method resolution order:</dt>
-<dd><a href="ranger.gui.curses_shortcuts.html#CursesShortcuts">CursesShortcuts</a></dd>
-<dd><a href="ranger.shared.settings.html#SettingsAware">ranger.shared.settings.SettingsAware</a></dd>
-<dd><a href="__builtin__.html#object">__builtin__.object</a></dd>
-</dl>
-<hr>
-Methods defined here:<br>
-<dl><dt><a name="CursesShortcuts-addnstr"><strong>addnstr</strong></a>(self, *args)</dt></dl>
-
-<dl><dt><a name="CursesShortcuts-addstr"><strong>addstr</strong></a>(self, *args)</dt></dl>
-
-<dl><dt><a name="CursesShortcuts-color"><strong>color</strong></a>(self, *keys)</dt><dd><tt>Change&nbsp;the&nbsp;colors&nbsp;from&nbsp;now&nbsp;on.</tt></dd></dl>
-
-<dl><dt><a name="CursesShortcuts-color_at"><strong>color_at</strong></a>(self, y, x, wid, *keys)</dt><dd><tt>Change&nbsp;the&nbsp;colors&nbsp;at&nbsp;the&nbsp;specified&nbsp;position</tt></dd></dl>
-
-<dl><dt><a name="CursesShortcuts-color_reset"><strong>color_reset</strong></a>(self)</dt><dd><tt>Change&nbsp;the&nbsp;colors&nbsp;to&nbsp;the&nbsp;default&nbsp;colors</tt></dd></dl>
-
-<hr>
-Data descriptors inherited from <a href="ranger.shared.settings.html#SettingsAware">ranger.shared.settings.SettingsAware</a>:<br>
-<dl><dt><strong>__dict__</strong></dt>
-<dd><tt>dictionary&nbsp;for&nbsp;instance&nbsp;variables&nbsp;(if&nbsp;defined)</tt></dd>
-</dl>
-<dl><dt><strong>__weakref__</strong></dt>
-<dd><tt>list&nbsp;of&nbsp;weak&nbsp;references&nbsp;to&nbsp;the&nbsp;object&nbsp;(if&nbsp;defined)</tt></dd>
-</dl>
-<hr>
-Data and other attributes inherited from <a href="ranger.shared.settings.html#SettingsAware">ranger.shared.settings.SettingsAware</a>:<br>
-<dl><dt><strong>settings</strong> = {}</dl>
-
-</td></tr></table></td></tr></table>
-</body></html>
\ No newline at end of file
diff --git a/doc/pydoc/ranger.gui.defaultui.html b/doc/pydoc/ranger.gui.defaultui.html
deleted file mode 100644
index 7bc180ed..00000000
--- a/doc/pydoc/ranger.gui.defaultui.html
+++ /dev/null
@@ -1,187 +0,0 @@
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html><head><title>Python: module ranger.gui.defaultui</title>
-</head><body bgcolor="#f0f0f8">
-
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="heading">
-<tr bgcolor="#7799ee">
-<td valign=bottom>&nbsp;<br>
-<font color="#ffffff" face="helvetica, arial">&nbsp;<br><big><big><strong><a href="ranger.html"><font color="#ffffff">ranger</font></a>.<a href="ranger.gui.html"><font color="#ffffff">gui</font></a>.defaultui</strong></big></big></font></td
-><td align=right valign=bottom
-><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:/home/hut/ranger/ranger/gui/defaultui.py">/home/hut/ranger/ranger/gui/defaultui.py</a></font></td></tr></table>
-    <p><tt>#&nbsp;Copyright&nbsp;(C)&nbsp;2009,&nbsp;2010&nbsp;&nbsp;Roman&nbsp;Zimbelmann&nbsp;&lt;romanz@lavabit.com&gt;<br>
-#<br>
-#&nbsp;This&nbsp;program&nbsp;is&nbsp;free&nbsp;software:&nbsp;you&nbsp;can&nbsp;redistribute&nbsp;it&nbsp;and/or&nbsp;modify<br>
-#&nbsp;it&nbsp;under&nbsp;the&nbsp;terms&nbsp;of&nbsp;the&nbsp;GNU&nbsp;General&nbsp;Public&nbsp;License&nbsp;as&nbsp;published&nbsp;by<br>
-#&nbsp;the&nbsp;Free&nbsp;Software&nbsp;Foundation,&nbsp;either&nbsp;version&nbsp;3&nbsp;of&nbsp;the&nbsp;License,&nbsp;or<br>
-#&nbsp;(at&nbsp;your&nbsp;option)&nbsp;any&nbsp;later&nbsp;version.<br>
-#<br>
-#&nbsp;This&nbsp;program&nbsp;is&nbsp;distributed&nbsp;in&nbsp;the&nbsp;hope&nbsp;that&nbsp;it&nbsp;will&nbsp;be&nbsp;useful,<br>
-#&nbsp;but&nbsp;WITHOUT&nbsp;ANY&nbsp;WARRANTY;&nbsp;without&nbsp;even&nbsp;the&nbsp;implied&nbsp;warranty&nbsp;of<br>
-#&nbsp;MERCHANTABILITY&nbsp;or&nbsp;FITNESS&nbsp;FOR&nbsp;A&nbsp;PARTICULAR&nbsp;PURPOSE.&nbsp;&nbsp;See&nbsp;the<br>
-#&nbsp;GNU&nbsp;General&nbsp;Public&nbsp;License&nbsp;for&nbsp;more&nbsp;details.<br>
-#<br>
-#&nbsp;You&nbsp;should&nbsp;have&nbsp;received&nbsp;a&nbsp;copy&nbsp;of&nbsp;the&nbsp;GNU&nbsp;General&nbsp;Public&nbsp;License<br>
-#&nbsp;along&nbsp;with&nbsp;this&nbsp;program.&nbsp;&nbsp;If&nbsp;not,&nbsp;see&nbsp;&lt;<a href="http://www.gnu.org/licenses/">http://www.gnu.org/licenses/</a>&gt;.</tt></p>
-<p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ee77aa">
-<td colspan=3 valign=bottom>&nbsp;<br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Classes</strong></big></font></td></tr>
-    
-<tr><td bgcolor="#ee77aa"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
-<td width="100%"><dl>
-<dt><font face="helvetica, arial"><a href="ranger.gui.ui.html#UI">ranger.gui.ui.UI</a>(<a href="ranger.gui.displayable.html#DisplayableContainer">ranger.gui.displayable.DisplayableContainer</a>)
-</font></dt><dd>
-<dl>
-<dt><font face="helvetica, arial"><a href="ranger.gui.defaultui.html#DefaultUI">DefaultUI</a>
-</font></dt></dl>
-</dd>
-</dl>
- <p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ffc8d8">
-<td colspan=3 valign=bottom>&nbsp;<br>
-<font color="#000000" face="helvetica, arial"><a name="DefaultUI">class <strong>DefaultUI</strong></a>(<a href="ranger.gui.ui.html#UI">ranger.gui.ui.UI</a>)</font></td></tr>
-    
-<tr><td bgcolor="#ffc8d8"><tt>&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
-<td width="100%"><dl><dt>Method resolution order:</dt>
-<dd><a href="ranger.gui.defaultui.html#DefaultUI">DefaultUI</a></dd>
-<dd><a href="ranger.gui.ui.html#UI">ranger.gui.ui.UI</a></dd>
-<dd><a href="ranger.gui.displayable.html#DisplayableContainer">ranger.gui.displayable.DisplayableContainer</a></dd>
-<dd><a href="ranger.gui.displayable.html#Displayable">ranger.gui.displayable.Displayable</a></dd>
-<dd><a href="ranger.shared.html#EnvironmentAware">ranger.shared.EnvironmentAware</a></dd>
-<dd><a href="ranger.shared.html#FileManagerAware">ranger.shared.FileManagerAware</a></dd>
-<dd><a href="ranger.shared.html#Awareness">ranger.shared.Awareness</a></dd>
-<dd><a href="ranger.gui.curses_shortcuts.html#CursesShortcuts">ranger.gui.curses_shortcuts.CursesShortcuts</a></dd>
-<dd><a href="ranger.shared.settings.html#SettingsAware">ranger.shared.settings.SettingsAware</a></dd>
-<dd><a href="__builtin__.html#object">__builtin__.object</a></dd>
-</dl>
-<hr>
-Methods defined here:<br>
-<dl><dt><a name="DefaultUI-close_console"><strong>close_console</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="DefaultUI-close_embedded_pager"><strong>close_embedded_pager</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="DefaultUI-close_pager"><strong>close_pager</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="DefaultUI-close_taskview"><strong>close_taskview</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="DefaultUI-hint"><strong>hint</strong></a>(self, text<font color="#909090">=None</font>)</dt></dl>
-
-<dl><dt><a name="DefaultUI-notify"><strong>notify</strong></a>(self, *a, **k)</dt></dl>
-
-<dl><dt><a name="DefaultUI-open_console"><strong>open_console</strong></a>(self, mode, string<font color="#909090">=''</font>, prompt<font color="#909090">=None</font>)</dt></dl>
-
-<dl><dt><a name="DefaultUI-open_embedded_pager"><strong>open_embedded_pager</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="DefaultUI-open_pager"><strong>open_pager</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="DefaultUI-open_taskview"><strong>open_taskview</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="DefaultUI-redraw_main_column"><strong>redraw_main_column</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="DefaultUI-scroll"><strong>scroll</strong></a>(self, relative)</dt></dl>
-
-<dl><dt><a name="DefaultUI-setup"><strong>setup</strong></a>(self)</dt><dd><tt>Build&nbsp;up&nbsp;the&nbsp;<a href="ranger.gui.ui.html#UI">UI</a>&nbsp;by&nbsp;initializing&nbsp;widgets.</tt></dd></dl>
-
-<dl><dt><a name="DefaultUI-throbber"><strong>throbber</strong></a>(self, string<font color="#909090">='.'</font>, remove<font color="#909090">=False</font>)</dt></dl>
-
-<dl><dt><a name="DefaultUI-update_size"><strong>update_size</strong></a>(self)</dt><dd><tt>resize&nbsp;all&nbsp;widgets</tt></dd></dl>
-
-<hr>
-Methods inherited from <a href="ranger.gui.ui.html#UI">ranger.gui.ui.UI</a>:<br>
-<dl><dt><a name="DefaultUI-__init__"><strong>__init__</strong></a>(self, env<font color="#909090">=None</font>, fm<font color="#909090">=None</font>)</dt></dl>
-
-<dl><dt><a name="DefaultUI-destroy"><strong>destroy</strong></a>(self)</dt><dd><tt>Destroy&nbsp;all&nbsp;widgets&nbsp;and&nbsp;turn&nbsp;off&nbsp;curses</tt></dd></dl>
-
-<dl><dt><a name="DefaultUI-draw"><strong>draw</strong></a>(self)</dt><dd><tt>Draw&nbsp;all&nbsp;objects&nbsp;in&nbsp;the&nbsp;container</tt></dd></dl>
-
-<dl><dt><a name="DefaultUI-finalize"><strong>finalize</strong></a>(self)</dt><dd><tt>Finalize&nbsp;every&nbsp;object&nbsp;in&nbsp;container&nbsp;and&nbsp;refresh&nbsp;the&nbsp;window</tt></dd></dl>
-
-<dl><dt><a name="DefaultUI-handle_input"><strong>handle_input</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="DefaultUI-handle_key"><strong>handle_key</strong></a>(self, key)</dt><dd><tt>Handles&nbsp;key&nbsp;input</tt></dd></dl>
-
-<dl><dt><a name="DefaultUI-handle_keys"><strong>handle_keys</strong></a>(self, *keys)</dt></dl>
-
-<dl><dt><a name="DefaultUI-handle_mouse"><strong>handle_mouse</strong></a>(self)</dt><dd><tt>Handles&nbsp;mouse&nbsp;input</tt></dd></dl>
-
-<dl><dt><a name="DefaultUI-initialize"><strong>initialize</strong></a>(self)</dt><dd><tt>initialize&nbsp;curses,&nbsp;then&nbsp;call&nbsp;setup&nbsp;(at&nbsp;the&nbsp;first&nbsp;time)&nbsp;and&nbsp;resize.</tt></dd></dl>
-
-<dl><dt><a name="DefaultUI-redraw"><strong>redraw</strong></a>(self)</dt><dd><tt>Redraw&nbsp;all&nbsp;widgets</tt></dd></dl>
-
-<dl><dt><a name="DefaultUI-redraw_window"><strong>redraw_window</strong></a>(self)</dt><dd><tt>Redraw&nbsp;the&nbsp;window.&nbsp;This&nbsp;only&nbsp;calls&nbsp;self.<strong>win</strong>.redrawwin().</tt></dd></dl>
-
-<dl><dt><a name="DefaultUI-set_load_mode"><strong>set_load_mode</strong></a>(self, boolean)</dt></dl>
-
-<dl><dt><a name="DefaultUI-suspend"><strong>suspend</strong></a>(self)</dt><dd><tt>Turn&nbsp;off&nbsp;curses</tt></dd></dl>
-
-<hr>
-Data and other attributes inherited from <a href="ranger.gui.ui.html#UI">ranger.gui.ui.UI</a>:<br>
-<dl><dt><strong>is_set_up</strong> = False</dl>
-
-<dl><dt><strong>load_mode</strong> = False</dl>
-
-<hr>
-Methods inherited from <a href="ranger.gui.displayable.html#DisplayableContainer">ranger.gui.displayable.DisplayableContainer</a>:<br>
-<dl><dt><a name="DefaultUI-add_child"><strong>add_child</strong></a>(self, obj)</dt><dd><tt>Add&nbsp;the&nbsp;objects&nbsp;to&nbsp;the&nbsp;container.</tt></dd></dl>
-
-<dl><dt><a name="DefaultUI-click"><strong>click</strong></a>(self, event)</dt><dd><tt>Recursively&nbsp;called&nbsp;on&nbsp;objects&nbsp;in&nbsp;container</tt></dd></dl>
-
-<dl><dt><a name="DefaultUI-poke"><strong>poke</strong></a>(self)</dt><dd><tt>Recursively&nbsp;called&nbsp;on&nbsp;objects&nbsp;in&nbsp;container</tt></dd></dl>
-
-<dl><dt><a name="DefaultUI-press"><strong>press</strong></a>(self, key)</dt><dd><tt>Recursively&nbsp;called&nbsp;on&nbsp;objects&nbsp;in&nbsp;container</tt></dd></dl>
-
-<dl><dt><a name="DefaultUI-remove_child"><strong>remove_child</strong></a>(self, obj)</dt><dd><tt>Remove&nbsp;the&nbsp;object&nbsp;from&nbsp;the&nbsp;container.</tt></dd></dl>
-
-<hr>
-Methods inherited from <a href="ranger.gui.displayable.html#Displayable">ranger.gui.displayable.Displayable</a>:<br>
-<dl><dt><a name="DefaultUI-__bool__"><strong>__bool__</strong></a> = __nonzero__(self)</dt><dd><tt>Always&nbsp;True</tt></dd></dl>
-
-<dl><dt><a name="DefaultUI-__contains__"><strong>__contains__</strong></a>(self, item)</dt><dd><tt>Is&nbsp;item&nbsp;inside&nbsp;the&nbsp;boundaries?<br>
-item&nbsp;can&nbsp;be&nbsp;an&nbsp;iterable&nbsp;like&nbsp;[y,&nbsp;x]&nbsp;or&nbsp;an&nbsp;object&nbsp;with&nbsp;x&nbsp;and&nbsp;y&nbsp;methods.</tt></dd></dl>
-
-<dl><dt><a name="DefaultUI-__nonzero__"><strong>__nonzero__</strong></a>(self)</dt><dd><tt>Always&nbsp;True</tt></dd></dl>
-
-<dl><dt><a name="DefaultUI-__str__"><strong>__str__</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="DefaultUI-contains_point"><strong>contains_point</strong></a>(self, y, x)</dt><dd><tt>Test&nbsp;whether&nbsp;the&nbsp;point&nbsp;(with&nbsp;absolute&nbsp;coordinates)&nbsp;lies<br>
-within&nbsp;the&nbsp;boundaries&nbsp;of&nbsp;this&nbsp;object.</tt></dd></dl>
-
-<dl><dt><a name="DefaultUI-resize"><strong>resize</strong></a>(self, y, x, hei<font color="#909090">=None</font>, wid<font color="#909090">=None</font>)</dt><dd><tt>Resize&nbsp;the&nbsp;widget</tt></dd></dl>
-
-<hr>
-Data and other attributes inherited from <a href="ranger.shared.html#EnvironmentAware">ranger.shared.EnvironmentAware</a>:<br>
-<dl><dt><strong>env</strong> = None</dl>
-
-<hr>
-Data and other attributes inherited from <a href="ranger.shared.html#FileManagerAware">ranger.shared.FileManagerAware</a>:<br>
-<dl><dt><strong>fm</strong> = None</dl>
-
-<hr>
-Data descriptors inherited from <a href="ranger.shared.html#Awareness">ranger.shared.Awareness</a>:<br>
-<dl><dt><strong>__dict__</strong></dt>
-<dd><tt>dictionary&nbsp;for&nbsp;instance&nbsp;variables&nbsp;(if&nbsp;defined)</tt></dd>
-</dl>
-<dl><dt><strong>__weakref__</strong></dt>
-<dd><tt>list&nbsp;of&nbsp;weak&nbsp;references&nbsp;to&nbsp;the&nbsp;object&nbsp;(if&nbsp;defined)</tt></dd>
-</dl>
-<hr>
-Methods inherited from <a href="ranger.gui.curses_shortcuts.html#CursesShortcuts">ranger.gui.curses_shortcuts.CursesShortcuts</a>:<br>
-<dl><dt><a name="DefaultUI-addnstr"><strong>addnstr</strong></a>(self, *args)</dt></dl>
-
-<dl><dt><a name="DefaultUI-addstr"><strong>addstr</strong></a>(self, *args)</dt></dl>
-
-<dl><dt><a name="DefaultUI-color"><strong>color</strong></a>(self, *keys)</dt><dd><tt>Change&nbsp;the&nbsp;colors&nbsp;from&nbsp;now&nbsp;on.</tt></dd></dl>
-
-<dl><dt><a name="DefaultUI-color_at"><strong>color_at</strong></a>(self, y, x, wid, *keys)</dt><dd><tt>Change&nbsp;the&nbsp;colors&nbsp;at&nbsp;the&nbsp;specified&nbsp;position</tt></dd></dl>
-
-<dl><dt><a name="DefaultUI-color_reset"><strong>color_reset</strong></a>(self)</dt><dd><tt>Change&nbsp;the&nbsp;colors&nbsp;to&nbsp;the&nbsp;default&nbsp;colors</tt></dd></dl>
-
-<hr>
-Data and other attributes inherited from <a href="ranger.shared.settings.html#SettingsAware">ranger.shared.settings.SettingsAware</a>:<br>
-<dl><dt><strong>settings</strong> = {}</dl>
-
-</td></tr></table></td></tr></table>
-</body></html>
\ No newline at end of file
diff --git a/doc/pydoc/ranger.gui.displayable.html b/doc/pydoc/ranger.gui.displayable.html
deleted file mode 100644
index a749ec1e..00000000
--- a/doc/pydoc/ranger.gui.displayable.html
+++ /dev/null
@@ -1,294 +0,0 @@
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html><head><title>Python: module ranger.gui.displayable</title>
-</head><body bgcolor="#f0f0f8">
-
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="heading">
-<tr bgcolor="#7799ee">
-<td valign=bottom>&nbsp;<br>
-<font color="#ffffff" face="helvetica, arial">&nbsp;<br><big><big><strong><a href="ranger.html"><font color="#ffffff">ranger</font></a>.<a href="ranger.gui.html"><font color="#ffffff">gui</font></a>.displayable</strong></big></big></font></td
-><td align=right valign=bottom
-><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:/home/hut/ranger/ranger/gui/displayable.py">/home/hut/ranger/ranger/gui/displayable.py</a></font></td></tr></table>
-    <p><tt>#&nbsp;Copyright&nbsp;(C)&nbsp;2009,&nbsp;2010&nbsp;&nbsp;Roman&nbsp;Zimbelmann&nbsp;&lt;romanz@lavabit.com&gt;<br>
-#<br>
-#&nbsp;This&nbsp;program&nbsp;is&nbsp;free&nbsp;software:&nbsp;you&nbsp;can&nbsp;redistribute&nbsp;it&nbsp;and/or&nbsp;modify<br>
-#&nbsp;it&nbsp;under&nbsp;the&nbsp;terms&nbsp;of&nbsp;the&nbsp;GNU&nbsp;General&nbsp;Public&nbsp;License&nbsp;as&nbsp;published&nbsp;by<br>
-#&nbsp;the&nbsp;Free&nbsp;Software&nbsp;Foundation,&nbsp;either&nbsp;version&nbsp;3&nbsp;of&nbsp;the&nbsp;License,&nbsp;or<br>
-#&nbsp;(at&nbsp;your&nbsp;option)&nbsp;any&nbsp;later&nbsp;version.<br>
-#<br>
-#&nbsp;This&nbsp;program&nbsp;is&nbsp;distributed&nbsp;in&nbsp;the&nbsp;hope&nbsp;that&nbsp;it&nbsp;will&nbsp;be&nbsp;useful,<br>
-#&nbsp;but&nbsp;WITHOUT&nbsp;ANY&nbsp;WARRANTY;&nbsp;without&nbsp;even&nbsp;the&nbsp;implied&nbsp;warranty&nbsp;of<br>
-#&nbsp;MERCHANTABILITY&nbsp;or&nbsp;FITNESS&nbsp;FOR&nbsp;A&nbsp;PARTICULAR&nbsp;PURPOSE.&nbsp;&nbsp;See&nbsp;the<br>
-#&nbsp;GNU&nbsp;General&nbsp;Public&nbsp;License&nbsp;for&nbsp;more&nbsp;details.<br>
-#<br>
-#&nbsp;You&nbsp;should&nbsp;have&nbsp;received&nbsp;a&nbsp;copy&nbsp;of&nbsp;the&nbsp;GNU&nbsp;General&nbsp;Public&nbsp;License<br>
-#&nbsp;along&nbsp;with&nbsp;this&nbsp;program.&nbsp;&nbsp;If&nbsp;not,&nbsp;see&nbsp;&lt;<a href="http://www.gnu.org/licenses/">http://www.gnu.org/licenses/</a>&gt;.</tt></p>
-<p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#aa55cc">
-<td colspan=3 valign=bottom>&nbsp;<br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Modules</strong></big></font></td></tr>
-    
-<tr><td bgcolor="#aa55cc"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
-<td width="100%"><table width="100%" summary="list"><tr><td width="25%" valign=top><a href="_curses.html">_curses</a><br>
-</td><td width="25%" valign=top></td><td width="25%" valign=top></td><td width="25%" valign=top></td></tr></table></td></tr></table><p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ee77aa">
-<td colspan=3 valign=bottom>&nbsp;<br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Classes</strong></big></font></td></tr>
-    
-<tr><td bgcolor="#ee77aa"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
-<td width="100%"><dl>
-<dt><font face="helvetica, arial"><a href="ranger.gui.curses_shortcuts.html#CursesShortcuts">ranger.gui.curses_shortcuts.CursesShortcuts</a>(<a href="ranger.shared.settings.html#SettingsAware">ranger.shared.settings.SettingsAware</a>)
-</font></dt><dd>
-<dl>
-<dt><font face="helvetica, arial"><a href="ranger.gui.displayable.html#Displayable">Displayable</a>(<a href="ranger.shared.html#EnvironmentAware">ranger.shared.EnvironmentAware</a>, <a href="ranger.shared.html#FileManagerAware">ranger.shared.FileManagerAware</a>, <a href="ranger.gui.curses_shortcuts.html#CursesShortcuts">ranger.gui.curses_shortcuts.CursesShortcuts</a>)
-</font></dt><dd>
-<dl>
-<dt><font face="helvetica, arial"><a href="ranger.gui.displayable.html#DisplayableContainer">DisplayableContainer</a>
-</font></dt></dl>
-</dd>
-</dl>
-</dd>
-<dt><font face="helvetica, arial"><a href="ranger.shared.html#EnvironmentAware">ranger.shared.EnvironmentAware</a>(<a href="ranger.shared.html#Awareness">ranger.shared.Awareness</a>)
-</font></dt><dd>
-<dl>
-<dt><font face="helvetica, arial"><a href="ranger.gui.displayable.html#Displayable">Displayable</a>(<a href="ranger.shared.html#EnvironmentAware">ranger.shared.EnvironmentAware</a>, <a href="ranger.shared.html#FileManagerAware">ranger.shared.FileManagerAware</a>, <a href="ranger.gui.curses_shortcuts.html#CursesShortcuts">ranger.gui.curses_shortcuts.CursesShortcuts</a>)
-</font></dt><dd>
-<dl>
-<dt><font face="helvetica, arial"><a href="ranger.gui.displayable.html#DisplayableContainer">DisplayableContainer</a>
-</font></dt></dl>
-</dd>
-</dl>
-</dd>
-<dt><font face="helvetica, arial"><a href="ranger.shared.html#FileManagerAware">ranger.shared.FileManagerAware</a>(<a href="ranger.shared.html#Awareness">ranger.shared.Awareness</a>)
-</font></dt><dd>
-<dl>
-<dt><font face="helvetica, arial"><a href="ranger.gui.displayable.html#Displayable">Displayable</a>(<a href="ranger.shared.html#EnvironmentAware">ranger.shared.EnvironmentAware</a>, <a href="ranger.shared.html#FileManagerAware">ranger.shared.FileManagerAware</a>, <a href="ranger.gui.curses_shortcuts.html#CursesShortcuts">ranger.gui.curses_shortcuts.CursesShortcuts</a>)
-</font></dt><dd>
-<dl>
-<dt><font face="helvetica, arial"><a href="ranger.gui.displayable.html#DisplayableContainer">DisplayableContainer</a>
-</font></dt></dl>
-</dd>
-</dl>
-</dd>
-</dl>
- <p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ffc8d8">
-<td colspan=3 valign=bottom>&nbsp;<br>
-<font color="#000000" face="helvetica, arial"><a name="Displayable">class <strong>Displayable</strong></a>(<a href="ranger.shared.html#EnvironmentAware">ranger.shared.EnvironmentAware</a>, <a href="ranger.shared.html#FileManagerAware">ranger.shared.FileManagerAware</a>, <a href="ranger.gui.curses_shortcuts.html#CursesShortcuts">ranger.gui.curses_shortcuts.CursesShortcuts</a>)</font></td></tr>
-    
-<tr bgcolor="#ffc8d8"><td rowspan=2><tt>&nbsp;&nbsp;&nbsp;</tt></td>
-<td colspan=2><tt>Displayables&nbsp;are&nbsp;objects&nbsp;which&nbsp;are&nbsp;displayed&nbsp;on&nbsp;the&nbsp;screen.<br>
-&nbsp;<br>
-This&nbsp;is&nbsp;just&nbsp;the&nbsp;abstract&nbsp;class,&nbsp;defining&nbsp;basic&nbsp;operations<br>
-such&nbsp;as&nbsp;resizing,&nbsp;printing,&nbsp;changing&nbsp;colors.<br>
-Subclasses&nbsp;of&nbsp;displayable&nbsp;can&nbsp;extend&nbsp;these&nbsp;methods:<br>
-&nbsp;<br>
-<a href="#Displayable-draw">draw</a>()&nbsp;--&nbsp;draw&nbsp;the&nbsp;object.&nbsp;Is&nbsp;only&nbsp;called&nbsp;if&nbsp;visible.<br>
-<a href="#Displayable-poke">poke</a>()&nbsp;--&nbsp;is&nbsp;called&nbsp;just&nbsp;before&nbsp;<a href="#Displayable-draw">draw</a>(),&nbsp;even&nbsp;if&nbsp;not&nbsp;visible.<br>
-<a href="#Displayable-finalize">finalize</a>()&nbsp;--&nbsp;called&nbsp;after&nbsp;all&nbsp;objects&nbsp;finished&nbsp;drawing.<br>
-<a href="#Displayable-click">click</a>(event)&nbsp;--&nbsp;called&nbsp;with&nbsp;a&nbsp;MouseEvent.&nbsp;This&nbsp;is&nbsp;called&nbsp;on&nbsp;all<br>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;visible&nbsp;objects&nbsp;under&nbsp;the&nbsp;mouse,&nbsp;until&nbsp;one&nbsp;returns&nbsp;True.<br>
-<a href="#Displayable-press">press</a>(key)&nbsp;--&nbsp;called&nbsp;after&nbsp;a&nbsp;key&nbsp;press&nbsp;on&nbsp;focused&nbsp;objects.<br>
-<a href="#Displayable-destroy">destroy</a>()&nbsp;--&nbsp;called&nbsp;before&nbsp;destroying&nbsp;the&nbsp;displayable&nbsp;object<br>
-&nbsp;<br>
-Additionally,&nbsp;there&nbsp;are&nbsp;these&nbsp;methods:<br>
-&nbsp;<br>
-<a href="#Displayable-__contains__">__contains__</a>(item)&nbsp;--&nbsp;is&nbsp;the&nbsp;item&nbsp;(y,&nbsp;x)&nbsp;inside&nbsp;the&nbsp;widget?<br>
-&nbsp;<br>
-These&nbsp;attributes&nbsp;are&nbsp;set:<br>
-&nbsp;<br>
-Modifiable:<br>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;focused&nbsp;--&nbsp;Focused&nbsp;objects&nbsp;receive&nbsp;<a href="#Displayable-press">press</a>()&nbsp;calls.<br>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;visible&nbsp;--&nbsp;Visible&nbsp;objects&nbsp;receive&nbsp;<a href="#Displayable-draw">draw</a>()&nbsp;and&nbsp;<a href="#Displayable-finalize">finalize</a>()&nbsp;calls<br>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;need_redraw&nbsp;--&nbsp;Should&nbsp;the&nbsp;widget&nbsp;be&nbsp;redrawn?&nbsp;This&nbsp;variable&nbsp;may<br>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;be&nbsp;set&nbsp;at&nbsp;various&nbsp;places&nbsp;in&nbsp;the&nbsp;script&nbsp;and&nbsp;should&nbsp;eventually&nbsp;be<br>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;handled&nbsp;(and&nbsp;unset)&nbsp;in&nbsp;the&nbsp;<a href="#Displayable-draw">draw</a>()&nbsp;method.<br>
-&nbsp;<br>
-Read-Only:&nbsp;(i.e.&nbsp;reccomended&nbsp;not&nbsp;to&nbsp;change&nbsp;manually)<br>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;win&nbsp;--&nbsp;the&nbsp;own&nbsp;curses&nbsp;window&nbsp;object<br>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;parent&nbsp;--&nbsp;the&nbsp;parent&nbsp;(<a href="#DisplayableContainer">DisplayableContainer</a>)&nbsp;object&nbsp;or&nbsp;None<br>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;x,&nbsp;y,&nbsp;wid,&nbsp;hei&nbsp;--&nbsp;absolute&nbsp;coordinates&nbsp;and&nbsp;boundaries<br>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;settings,&nbsp;fm,&nbsp;env&nbsp;--&nbsp;inherited&nbsp;shared&nbsp;variables<br>&nbsp;</tt></td></tr>
-<tr><td>&nbsp;</td>
-<td width="100%"><dl><dt>Method resolution order:</dt>
-<dd><a href="ranger.gui.displayable.html#Displayable">Displayable</a></dd>
-<dd><a href="ranger.shared.html#EnvironmentAware">ranger.shared.EnvironmentAware</a></dd>
-<dd><a href="ranger.shared.html#FileManagerAware">ranger.shared.FileManagerAware</a></dd>
-<dd><a href="ranger.shared.html#Awareness">ranger.shared.Awareness</a></dd>
-<dd><a href="ranger.gui.curses_shortcuts.html#CursesShortcuts">ranger.gui.curses_shortcuts.CursesShortcuts</a></dd>
-<dd><a href="ranger.shared.settings.html#SettingsAware">ranger.shared.settings.SettingsAware</a></dd>
-<dd><a href="__builtin__.html#object">__builtin__.object</a></dd>
-</dl>
-<hr>
-Methods defined here:<br>
-<dl><dt><a name="Displayable-__bool__"><strong>__bool__</strong></a> = <a href="#Displayable-__nonzero__">__nonzero__</a>(self)</dt></dl>
-
-<dl><dt><a name="Displayable-__contains__"><strong>__contains__</strong></a>(self, item)</dt><dd><tt>Is&nbsp;item&nbsp;inside&nbsp;the&nbsp;boundaries?<br>
-item&nbsp;can&nbsp;be&nbsp;an&nbsp;iterable&nbsp;like&nbsp;[y,&nbsp;x]&nbsp;or&nbsp;an&nbsp;object&nbsp;with&nbsp;x&nbsp;and&nbsp;y&nbsp;methods.</tt></dd></dl>
-
-<dl><dt><a name="Displayable-__init__"><strong>__init__</strong></a>(self, win, env<font color="#909090">=None</font>, fm<font color="#909090">=None</font>, settings<font color="#909090">=None</font>)</dt></dl>
-
-<dl><dt><a name="Displayable-__nonzero__"><strong>__nonzero__</strong></a>(self)</dt><dd><tt>Always&nbsp;True</tt></dd></dl>
-
-<dl><dt><a name="Displayable-__str__"><strong>__str__</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="Displayable-click"><strong>click</strong></a>(self, event)</dt><dd><tt>Called&nbsp;when&nbsp;a&nbsp;mouse&nbsp;key&nbsp;is&nbsp;pressed&nbsp;and&nbsp;self.<strong>focused</strong>&nbsp;is&nbsp;True.<br>
-Override&nbsp;this!</tt></dd></dl>
-
-<dl><dt><a name="Displayable-contains_point"><strong>contains_point</strong></a>(self, y, x)</dt><dd><tt>Test&nbsp;whether&nbsp;the&nbsp;point&nbsp;(with&nbsp;absolute&nbsp;coordinates)&nbsp;lies<br>
-within&nbsp;the&nbsp;boundaries&nbsp;of&nbsp;this&nbsp;object.</tt></dd></dl>
-
-<dl><dt><a name="Displayable-destroy"><strong>destroy</strong></a>(self)</dt><dd><tt>Called&nbsp;when&nbsp;the&nbsp;object&nbsp;is&nbsp;destroyed.<br>
-Override&nbsp;this!</tt></dd></dl>
-
-<dl><dt><a name="Displayable-draw"><strong>draw</strong></a>(self)</dt><dd><tt>Draw&nbsp;the&nbsp;object.&nbsp;Called&nbsp;on&nbsp;every&nbsp;main&nbsp;iteration&nbsp;if&nbsp;visible.<br>
-Containers&nbsp;should&nbsp;call&nbsp;<a href="#Displayable-draw">draw</a>()&nbsp;on&nbsp;their&nbsp;contained&nbsp;objects&nbsp;here.<br>
-Override&nbsp;this!</tt></dd></dl>
-
-<dl><dt><a name="Displayable-finalize"><strong>finalize</strong></a>(self)</dt><dd><tt>Called&nbsp;after&nbsp;every&nbsp;displayable&nbsp;is&nbsp;done&nbsp;drawing.<br>
-Override&nbsp;this!</tt></dd></dl>
-
-<dl><dt><a name="Displayable-poke"><strong>poke</strong></a>(self)</dt><dd><tt>Called&nbsp;before&nbsp;drawing,&nbsp;even&nbsp;if&nbsp;invisible</tt></dd></dl>
-
-<dl><dt><a name="Displayable-press"><strong>press</strong></a>(self, key)</dt><dd><tt>Called&nbsp;when&nbsp;a&nbsp;key&nbsp;is&nbsp;pressed&nbsp;and&nbsp;self.<strong>focused</strong>&nbsp;is&nbsp;True.<br>
-Override&nbsp;this!</tt></dd></dl>
-
-<dl><dt><a name="Displayable-resize"><strong>resize</strong></a>(self, y, x, hei<font color="#909090">=None</font>, wid<font color="#909090">=None</font>)</dt><dd><tt>Resize&nbsp;the&nbsp;widget</tt></dd></dl>
-
-<hr>
-Data and other attributes inherited from <a href="ranger.shared.html#EnvironmentAware">ranger.shared.EnvironmentAware</a>:<br>
-<dl><dt><strong>env</strong> = None</dl>
-
-<hr>
-Data and other attributes inherited from <a href="ranger.shared.html#FileManagerAware">ranger.shared.FileManagerAware</a>:<br>
-<dl><dt><strong>fm</strong> = None</dl>
-
-<hr>
-Data descriptors inherited from <a href="ranger.shared.html#Awareness">ranger.shared.Awareness</a>:<br>
-<dl><dt><strong>__dict__</strong></dt>
-<dd><tt>dictionary&nbsp;for&nbsp;instance&nbsp;variables&nbsp;(if&nbsp;defined)</tt></dd>
-</dl>
-<dl><dt><strong>__weakref__</strong></dt>
-<dd><tt>list&nbsp;of&nbsp;weak&nbsp;references&nbsp;to&nbsp;the&nbsp;object&nbsp;(if&nbsp;defined)</tt></dd>
-</dl>
-<hr>
-Methods inherited from <a href="ranger.gui.curses_shortcuts.html#CursesShortcuts">ranger.gui.curses_shortcuts.CursesShortcuts</a>:<br>
-<dl><dt><a name="Displayable-addnstr"><strong>addnstr</strong></a>(self, *args)</dt></dl>
-
-<dl><dt><a name="Displayable-addstr"><strong>addstr</strong></a>(self, *args)</dt></dl>
-
-<dl><dt><a name="Displayable-color"><strong>color</strong></a>(self, *keys)</dt><dd><tt>Change&nbsp;the&nbsp;colors&nbsp;from&nbsp;now&nbsp;on.</tt></dd></dl>
-
-<dl><dt><a name="Displayable-color_at"><strong>color_at</strong></a>(self, y, x, wid, *keys)</dt><dd><tt>Change&nbsp;the&nbsp;colors&nbsp;at&nbsp;the&nbsp;specified&nbsp;position</tt></dd></dl>
-
-<dl><dt><a name="Displayable-color_reset"><strong>color_reset</strong></a>(self)</dt><dd><tt>Change&nbsp;the&nbsp;colors&nbsp;to&nbsp;the&nbsp;default&nbsp;colors</tt></dd></dl>
-
-<hr>
-Data and other attributes inherited from <a href="ranger.shared.settings.html#SettingsAware">ranger.shared.settings.SettingsAware</a>:<br>
-<dl><dt><strong>settings</strong> = {}</dl>
-
-</td></tr></table> <p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ffc8d8">
-<td colspan=3 valign=bottom>&nbsp;<br>
-<font color="#000000" face="helvetica, arial"><a name="DisplayableContainer">class <strong>DisplayableContainer</strong></a>(<a href="ranger.gui.displayable.html#Displayable">Displayable</a>)</font></td></tr>
-    
-<tr bgcolor="#ffc8d8"><td rowspan=2><tt>&nbsp;&nbsp;&nbsp;</tt></td>
-<td colspan=2><tt>DisplayableContainers&nbsp;are&nbsp;Displayables&nbsp;which&nbsp;contain&nbsp;other&nbsp;Displayables.<br>
-&nbsp;<br>
-This&nbsp;is&nbsp;also&nbsp;an&nbsp;abstract&nbsp;class.&nbsp;The&nbsp;methods&nbsp;draw,&nbsp;poke,&nbsp;finalize,<br>
-click,&nbsp;press&nbsp;and&nbsp;destroy&nbsp;are&nbsp;extended&nbsp;here&nbsp;and&nbsp;will&nbsp;recursively<br>
-call&nbsp;the&nbsp;function&nbsp;on&nbsp;all&nbsp;contained&nbsp;objects.<br>
-&nbsp;<br>
-New&nbsp;methods:<br>
-&nbsp;<br>
-<a href="#DisplayableContainer-add_child">add_child</a>(object)&nbsp;--&nbsp;add&nbsp;the&nbsp;object&nbsp;to&nbsp;the&nbsp;container.<br>
-<a href="#DisplayableContainer-remove_child">remove_child</a>(object)&nbsp;--&nbsp;remove&nbsp;the&nbsp;object&nbsp;from&nbsp;the&nbsp;container.<br>
-&nbsp;<br>
-New&nbsp;attributes:<br>
-&nbsp;<br>
-container&nbsp;--&nbsp;a&nbsp;list&nbsp;with&nbsp;all&nbsp;contained&nbsp;objects&nbsp;(rw)<br>&nbsp;</tt></td></tr>
-<tr><td>&nbsp;</td>
-<td width="100%"><dl><dt>Method resolution order:</dt>
-<dd><a href="ranger.gui.displayable.html#DisplayableContainer">DisplayableContainer</a></dd>
-<dd><a href="ranger.gui.displayable.html#Displayable">Displayable</a></dd>
-<dd><a href="ranger.shared.html#EnvironmentAware">ranger.shared.EnvironmentAware</a></dd>
-<dd><a href="ranger.shared.html#FileManagerAware">ranger.shared.FileManagerAware</a></dd>
-<dd><a href="ranger.shared.html#Awareness">ranger.shared.Awareness</a></dd>
-<dd><a href="ranger.gui.curses_shortcuts.html#CursesShortcuts">ranger.gui.curses_shortcuts.CursesShortcuts</a></dd>
-<dd><a href="ranger.shared.settings.html#SettingsAware">ranger.shared.settings.SettingsAware</a></dd>
-<dd><a href="__builtin__.html#object">__builtin__.object</a></dd>
-</dl>
-<hr>
-Methods defined here:<br>
-<dl><dt><a name="DisplayableContainer-__init__"><strong>__init__</strong></a>(self, win, env<font color="#909090">=None</font>, fm<font color="#909090">=None</font>, settings<font color="#909090">=None</font>)</dt></dl>
-
-<dl><dt><a name="DisplayableContainer-add_child"><strong>add_child</strong></a>(self, obj)</dt><dd><tt>Add&nbsp;the&nbsp;objects&nbsp;to&nbsp;the&nbsp;container.</tt></dd></dl>
-
-<dl><dt><a name="DisplayableContainer-click"><strong>click</strong></a>(self, event)</dt><dd><tt>Recursively&nbsp;called&nbsp;on&nbsp;objects&nbsp;in&nbsp;container</tt></dd></dl>
-
-<dl><dt><a name="DisplayableContainer-destroy"><strong>destroy</strong></a>(self)</dt><dd><tt>Recursively&nbsp;called&nbsp;on&nbsp;objects&nbsp;in&nbsp;container</tt></dd></dl>
-
-<dl><dt><a name="DisplayableContainer-draw"><strong>draw</strong></a>(self)</dt><dd><tt>Recursively&nbsp;called&nbsp;on&nbsp;visible&nbsp;objects&nbsp;in&nbsp;container</tt></dd></dl>
-
-<dl><dt><a name="DisplayableContainer-finalize"><strong>finalize</strong></a>(self)</dt><dd><tt>Recursively&nbsp;called&nbsp;on&nbsp;visible&nbsp;objects&nbsp;in&nbsp;container</tt></dd></dl>
-
-<dl><dt><a name="DisplayableContainer-poke"><strong>poke</strong></a>(self)</dt><dd><tt>Recursively&nbsp;called&nbsp;on&nbsp;objects&nbsp;in&nbsp;container</tt></dd></dl>
-
-<dl><dt><a name="DisplayableContainer-press"><strong>press</strong></a>(self, key)</dt><dd><tt>Recursively&nbsp;called&nbsp;on&nbsp;objects&nbsp;in&nbsp;container</tt></dd></dl>
-
-<dl><dt><a name="DisplayableContainer-remove_child"><strong>remove_child</strong></a>(self, obj)</dt><dd><tt>Remove&nbsp;the&nbsp;object&nbsp;from&nbsp;the&nbsp;container.</tt></dd></dl>
-
-<hr>
-Methods inherited from <a href="ranger.gui.displayable.html#Displayable">Displayable</a>:<br>
-<dl><dt><a name="DisplayableContainer-__bool__"><strong>__bool__</strong></a> = __nonzero__(self)</dt><dd><tt>Always&nbsp;True</tt></dd></dl>
-
-<dl><dt><a name="DisplayableContainer-__contains__"><strong>__contains__</strong></a>(self, item)</dt><dd><tt>Is&nbsp;item&nbsp;inside&nbsp;the&nbsp;boundaries?<br>
-item&nbsp;can&nbsp;be&nbsp;an&nbsp;iterable&nbsp;like&nbsp;[y,&nbsp;x]&nbsp;or&nbsp;an&nbsp;object&nbsp;with&nbsp;x&nbsp;and&nbsp;y&nbsp;methods.</tt></dd></dl>
-
-<dl><dt><a name="DisplayableContainer-__nonzero__"><strong>__nonzero__</strong></a>(self)</dt><dd><tt>Always&nbsp;True</tt></dd></dl>
-
-<dl><dt><a name="DisplayableContainer-__str__"><strong>__str__</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="DisplayableContainer-contains_point"><strong>contains_point</strong></a>(self, y, x)</dt><dd><tt>Test&nbsp;whether&nbsp;the&nbsp;point&nbsp;(with&nbsp;absolute&nbsp;coordinates)&nbsp;lies<br>
-within&nbsp;the&nbsp;boundaries&nbsp;of&nbsp;this&nbsp;object.</tt></dd></dl>
-
-<dl><dt><a name="DisplayableContainer-resize"><strong>resize</strong></a>(self, y, x, hei<font color="#909090">=None</font>, wid<font color="#909090">=None</font>)</dt><dd><tt>Resize&nbsp;the&nbsp;widget</tt></dd></dl>
-
-<hr>
-Data and other attributes inherited from <a href="ranger.shared.html#EnvironmentAware">ranger.shared.EnvironmentAware</a>:<br>
-<dl><dt><strong>env</strong> = None</dl>
-
-<hr>
-Data and other attributes inherited from <a href="ranger.shared.html#FileManagerAware">ranger.shared.FileManagerAware</a>:<br>
-<dl><dt><strong>fm</strong> = None</dl>
-
-<hr>
-Data descriptors inherited from <a href="ranger.shared.html#Awareness">ranger.shared.Awareness</a>:<br>
-<dl><dt><strong>__dict__</strong></dt>
-<dd><tt>dictionary&nbsp;for&nbsp;instance&nbsp;variables&nbsp;(if&nbsp;defined)</tt></dd>
-</dl>
-<dl><dt><strong>__weakref__</strong></dt>
-<dd><tt>list&nbsp;of&nbsp;weak&nbsp;references&nbsp;to&nbsp;the&nbsp;object&nbsp;(if&nbsp;defined)</tt></dd>
-</dl>
-<hr>
-Methods inherited from <a href="ranger.gui.curses_shortcuts.html#CursesShortcuts">ranger.gui.curses_shortcuts.CursesShortcuts</a>:<br>
-<dl><dt><a name="DisplayableContainer-addnstr"><strong>addnstr</strong></a>(self, *args)</dt></dl>
-
-<dl><dt><a name="DisplayableContainer-addstr"><strong>addstr</strong></a>(self, *args)</dt></dl>
-
-<dl><dt><a name="DisplayableContainer-color"><strong>color</strong></a>(self, *keys)</dt><dd><tt>Change&nbsp;the&nbsp;colors&nbsp;from&nbsp;now&nbsp;on.</tt></dd></dl>
-
-<dl><dt><a name="DisplayableContainer-color_at"><strong>color_at</strong></a>(self, y, x, wid, *keys)</dt><dd><tt>Change&nbsp;the&nbsp;colors&nbsp;at&nbsp;the&nbsp;specified&nbsp;position</tt></dd></dl>
-
-<dl><dt><a name="DisplayableContainer-color_reset"><strong>color_reset</strong></a>(self)</dt><dd><tt>Change&nbsp;the&nbsp;colors&nbsp;to&nbsp;the&nbsp;default&nbsp;colors</tt></dd></dl>
-
-<hr>
-Data and other attributes inherited from <a href="ranger.shared.settings.html#SettingsAware">ranger.shared.settings.SettingsAware</a>:<br>
-<dl><dt><strong>settings</strong> = {}</dl>
-
-</td></tr></table></td></tr></table>
-</body></html>
\ No newline at end of file
diff --git a/doc/pydoc/ranger.gui.html b/doc/pydoc/ranger.gui.html
deleted file mode 100644
index 125b42ee..00000000
--- a/doc/pydoc/ranger.gui.html
+++ /dev/null
@@ -1,31 +0,0 @@
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html><head><title>Python: package ranger.gui</title>
-</head><body bgcolor="#f0f0f8">
-
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="heading">
-<tr bgcolor="#7799ee">
-<td valign=bottom>&nbsp;<br>
-<font color="#ffffff" face="helvetica, arial">&nbsp;<br><big><big><strong><a href="ranger.html"><font color="#ffffff">ranger</font></a>.gui</strong></big></big></font></td
-><td align=right valign=bottom
-><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:/home/hut/ranger/ranger/gui/__init__.py">/home/hut/ranger/ranger/gui/__init__.py</a></font></td></tr></table>
-    <p></p>
-<p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#aa55cc">
-<td colspan=3 valign=bottom>&nbsp;<br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Package Contents</strong></big></font></td></tr>
-    
-<tr><td bgcolor="#aa55cc"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
-<td width="100%"><table width="100%" summary="list"><tr><td width="25%" valign=top><a href="ranger.gui.bar.html">bar</a><br>
-<a href="ranger.gui.color.html">color</a><br>
-<a href="ranger.gui.colorscheme.html">colorscheme</a><br>
-</td><td width="25%" valign=top><a href="ranger.gui.context.html">context</a><br>
-<a href="ranger.gui.curses_shortcuts.html">curses_shortcuts</a><br>
-<a href="ranger.gui.defaultui.html">defaultui</a><br>
-</td><td width="25%" valign=top><a href="ranger.gui.displayable.html">displayable</a><br>
-<a href="ranger.gui.mouse_event.html">mouse_event</a><br>
-<a href="ranger.gui.ui.html">ui</a><br>
-</td><td width="25%" valign=top><a href="ranger.gui.widgets.html"><strong>widgets</strong>&nbsp;(package)</a><br>
-</td></tr></table></td></tr></table>
-</body></html>
\ No newline at end of file
diff --git a/doc/pydoc/ranger.gui.mouse_event.html b/doc/pydoc/ranger.gui.mouse_event.html
deleted file mode 100644
index 8ad837c8..00000000
--- a/doc/pydoc/ranger.gui.mouse_event.html
+++ /dev/null
@@ -1,84 +0,0 @@
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html><head><title>Python: module ranger.gui.mouse_event</title>
-</head><body bgcolor="#f0f0f8">
-
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="heading">
-<tr bgcolor="#7799ee">
-<td valign=bottom>&nbsp;<br>
-<font color="#ffffff" face="helvetica, arial">&nbsp;<br><big><big><strong><a href="ranger.html"><font color="#ffffff">ranger</font></a>.<a href="ranger.gui.html"><font color="#ffffff">gui</font></a>.mouse_event</strong></big></big></font></td
-><td align=right valign=bottom
-><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:/home/hut/ranger/ranger/gui/mouse_event.py">/home/hut/ranger/ranger/gui/mouse_event.py</a></font></td></tr></table>
-    <p><tt>#&nbsp;Copyright&nbsp;(C)&nbsp;2009,&nbsp;2010&nbsp;&nbsp;Roman&nbsp;Zimbelmann&nbsp;&lt;romanz@lavabit.com&gt;<br>
-#<br>
-#&nbsp;This&nbsp;program&nbsp;is&nbsp;free&nbsp;software:&nbsp;you&nbsp;can&nbsp;redistribute&nbsp;it&nbsp;and/or&nbsp;modify<br>
-#&nbsp;it&nbsp;under&nbsp;the&nbsp;terms&nbsp;of&nbsp;the&nbsp;GNU&nbsp;General&nbsp;Public&nbsp;License&nbsp;as&nbsp;published&nbsp;by<br>
-#&nbsp;the&nbsp;Free&nbsp;Software&nbsp;Foundation,&nbsp;either&nbsp;version&nbsp;3&nbsp;of&nbsp;the&nbsp;License,&nbsp;or<br>
-#&nbsp;(at&nbsp;your&nbsp;option)&nbsp;any&nbsp;later&nbsp;version.<br>
-#<br>
-#&nbsp;This&nbsp;program&nbsp;is&nbsp;distributed&nbsp;in&nbsp;the&nbsp;hope&nbsp;that&nbsp;it&nbsp;will&nbsp;be&nbsp;useful,<br>
-#&nbsp;but&nbsp;WITHOUT&nbsp;ANY&nbsp;WARRANTY;&nbsp;without&nbsp;even&nbsp;the&nbsp;implied&nbsp;warranty&nbsp;of<br>
-#&nbsp;MERCHANTABILITY&nbsp;or&nbsp;FITNESS&nbsp;FOR&nbsp;A&nbsp;PARTICULAR&nbsp;PURPOSE.&nbsp;&nbsp;See&nbsp;the<br>
-#&nbsp;GNU&nbsp;General&nbsp;Public&nbsp;License&nbsp;for&nbsp;more&nbsp;details.<br>
-#<br>
-#&nbsp;You&nbsp;should&nbsp;have&nbsp;received&nbsp;a&nbsp;copy&nbsp;of&nbsp;the&nbsp;GNU&nbsp;General&nbsp;Public&nbsp;License<br>
-#&nbsp;along&nbsp;with&nbsp;this&nbsp;program.&nbsp;&nbsp;If&nbsp;not,&nbsp;see&nbsp;&lt;<a href="http://www.gnu.org/licenses/">http://www.gnu.org/licenses/</a>&gt;.</tt></p>
-<p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#aa55cc">
-<td colspan=3 valign=bottom>&nbsp;<br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Modules</strong></big></font></td></tr>
-    
-<tr><td bgcolor="#aa55cc"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
-<td width="100%"><table width="100%" summary="list"><tr><td width="25%" valign=top><a href="curses.html">curses</a><br>
-</td><td width="25%" valign=top></td><td width="25%" valign=top></td><td width="25%" valign=top></td></tr></table></td></tr></table><p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ee77aa">
-<td colspan=3 valign=bottom>&nbsp;<br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Classes</strong></big></font></td></tr>
-    
-<tr><td bgcolor="#ee77aa"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
-<td width="100%"><dl>
-<dt><font face="helvetica, arial"><a href="__builtin__.html#object">__builtin__.object</a>
-</font></dt><dd>
-<dl>
-<dt><font face="helvetica, arial"><a href="ranger.gui.mouse_event.html#MouseEvent">MouseEvent</a>
-</font></dt></dl>
-</dd>
-</dl>
- <p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ffc8d8">
-<td colspan=3 valign=bottom>&nbsp;<br>
-<font color="#000000" face="helvetica, arial"><a name="MouseEvent">class <strong>MouseEvent</strong></a>(<a href="__builtin__.html#object">__builtin__.object</a>)</font></td></tr>
-    
-<tr><td bgcolor="#ffc8d8"><tt>&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
-<td width="100%">Methods defined here:<br>
-<dl><dt><a name="MouseEvent-__init__"><strong>__init__</strong></a>(self, getmouse)</dt><dd><tt>Creates&nbsp;a&nbsp;<a href="#MouseEvent">MouseEvent</a>&nbsp;<a href="__builtin__.html#object">object</a>&nbsp;from&nbsp;the&nbsp;result&nbsp;of&nbsp;win.getmouse()</tt></dd></dl>
-
-<dl><dt><a name="MouseEvent-alt"><strong>alt</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="MouseEvent-ctrl"><strong>ctrl</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="MouseEvent-key_invalid"><strong>key_invalid</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="MouseEvent-mouse_wheel_direction"><strong>mouse_wheel_direction</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="MouseEvent-pressed"><strong>pressed</strong></a>(self, n)</dt><dd><tt>Returns&nbsp;whether&nbsp;the&nbsp;mouse&nbsp;key&nbsp;n&nbsp;is&nbsp;pressed</tt></dd></dl>
-
-<dl><dt><a name="MouseEvent-shift"><strong>shift</strong></a>(self)</dt></dl>
-
-<hr>
-Data descriptors defined here:<br>
-<dl><dt><strong>__dict__</strong></dt>
-<dd><tt>dictionary&nbsp;for&nbsp;instance&nbsp;variables&nbsp;(if&nbsp;defined)</tt></dd>
-</dl>
-<dl><dt><strong>__weakref__</strong></dt>
-<dd><tt>list&nbsp;of&nbsp;weak&nbsp;references&nbsp;to&nbsp;the&nbsp;object&nbsp;(if&nbsp;defined)</tt></dd>
-</dl>
-<hr>
-Data and other attributes defined here:<br>
-<dl><dt><strong>PRESSED</strong> = [0, 2, 128, 8192, 524288]</dl>
-
-</td></tr></table></td></tr></table>
-</body></html>
\ No newline at end of file
diff --git a/doc/pydoc/ranger.gui.ui.html b/doc/pydoc/ranger.gui.ui.html
deleted file mode 100644
index f0aece1d..00000000
--- a/doc/pydoc/ranger.gui.ui.html
+++ /dev/null
@@ -1,179 +0,0 @@
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html><head><title>Python: module ranger.gui.ui</title>
-</head><body bgcolor="#f0f0f8">
-
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="heading">
-<tr bgcolor="#7799ee">
-<td valign=bottom>&nbsp;<br>
-<font color="#ffffff" face="helvetica, arial">&nbsp;<br><big><big><strong><a href="ranger.html"><font color="#ffffff">ranger</font></a>.<a href="ranger.gui.html"><font color="#ffffff">gui</font></a>.ui</strong></big></big></font></td
-><td align=right valign=bottom
-><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:/home/hut/ranger/ranger/gui/ui.py">/home/hut/ranger/ranger/gui/ui.py</a></font></td></tr></table>
-    <p><tt>#&nbsp;Copyright&nbsp;(C)&nbsp;2009,&nbsp;2010&nbsp;&nbsp;Roman&nbsp;Zimbelmann&nbsp;&lt;romanz@lavabit.com&gt;<br>
-#<br>
-#&nbsp;This&nbsp;program&nbsp;is&nbsp;free&nbsp;software:&nbsp;you&nbsp;can&nbsp;redistribute&nbsp;it&nbsp;and/or&nbsp;modify<br>
-#&nbsp;it&nbsp;under&nbsp;the&nbsp;terms&nbsp;of&nbsp;the&nbsp;GNU&nbsp;General&nbsp;Public&nbsp;License&nbsp;as&nbsp;published&nbsp;by<br>
-#&nbsp;the&nbsp;Free&nbsp;Software&nbsp;Foundation,&nbsp;either&nbsp;version&nbsp;3&nbsp;of&nbsp;the&nbsp;License,&nbsp;or<br>
-#&nbsp;(at&nbsp;your&nbsp;option)&nbsp;any&nbsp;later&nbsp;version.<br>
-#<br>
-#&nbsp;This&nbsp;program&nbsp;is&nbsp;distributed&nbsp;in&nbsp;the&nbsp;hope&nbsp;that&nbsp;it&nbsp;will&nbsp;be&nbsp;useful,<br>
-#&nbsp;but&nbsp;WITHOUT&nbsp;ANY&nbsp;WARRANTY;&nbsp;without&nbsp;even&nbsp;the&nbsp;implied&nbsp;warranty&nbsp;of<br>
-#&nbsp;MERCHANTABILITY&nbsp;or&nbsp;FITNESS&nbsp;FOR&nbsp;A&nbsp;PARTICULAR&nbsp;PURPOSE.&nbsp;&nbsp;See&nbsp;the<br>
-#&nbsp;GNU&nbsp;General&nbsp;Public&nbsp;License&nbsp;for&nbsp;more&nbsp;details.<br>
-#<br>
-#&nbsp;You&nbsp;should&nbsp;have&nbsp;received&nbsp;a&nbsp;copy&nbsp;of&nbsp;the&nbsp;GNU&nbsp;General&nbsp;Public&nbsp;License<br>
-#&nbsp;along&nbsp;with&nbsp;this&nbsp;program.&nbsp;&nbsp;If&nbsp;not,&nbsp;see&nbsp;&lt;<a href="http://www.gnu.org/licenses/">http://www.gnu.org/licenses/</a>&gt;.</tt></p>
-<p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#aa55cc">
-<td colspan=3 valign=bottom>&nbsp;<br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Modules</strong></big></font></td></tr>
-    
-<tr><td bgcolor="#aa55cc"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
-<td width="100%"><table width="100%" summary="list"><tr><td width="25%" valign=top><a href="_curses.html">_curses</a><br>
-</td><td width="25%" valign=top><a href="curses.html">curses</a><br>
-</td><td width="25%" valign=top><a href="os.html">os</a><br>
-</td><td width="25%" valign=top><a href="sys.html">sys</a><br>
-</td></tr></table></td></tr></table><p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ee77aa">
-<td colspan=3 valign=bottom>&nbsp;<br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Classes</strong></big></font></td></tr>
-    
-<tr><td bgcolor="#ee77aa"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
-<td width="100%"><dl>
-<dt><font face="helvetica, arial"><a href="ranger.gui.displayable.html#DisplayableContainer">ranger.gui.displayable.DisplayableContainer</a>(<a href="ranger.gui.displayable.html#Displayable">ranger.gui.displayable.Displayable</a>)
-</font></dt><dd>
-<dl>
-<dt><font face="helvetica, arial"><a href="ranger.gui.ui.html#UI">UI</a>
-</font></dt></dl>
-</dd>
-</dl>
- <p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ffc8d8">
-<td colspan=3 valign=bottom>&nbsp;<br>
-<font color="#000000" face="helvetica, arial"><a name="UI">class <strong>UI</strong></a>(<a href="ranger.gui.displayable.html#DisplayableContainer">ranger.gui.displayable.DisplayableContainer</a>)</font></td></tr>
-    
-<tr><td bgcolor="#ffc8d8"><tt>&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
-<td width="100%"><dl><dt>Method resolution order:</dt>
-<dd><a href="ranger.gui.ui.html#UI">UI</a></dd>
-<dd><a href="ranger.gui.displayable.html#DisplayableContainer">ranger.gui.displayable.DisplayableContainer</a></dd>
-<dd><a href="ranger.gui.displayable.html#Displayable">ranger.gui.displayable.Displayable</a></dd>
-<dd><a href="ranger.shared.html#EnvironmentAware">ranger.shared.EnvironmentAware</a></dd>
-<dd><a href="ranger.shared.html#FileManagerAware">ranger.shared.FileManagerAware</a></dd>
-<dd><a href="ranger.shared.html#Awareness">ranger.shared.Awareness</a></dd>
-<dd><a href="ranger.gui.curses_shortcuts.html#CursesShortcuts">ranger.gui.curses_shortcuts.CursesShortcuts</a></dd>
-<dd><a href="ranger.shared.settings.html#SettingsAware">ranger.shared.settings.SettingsAware</a></dd>
-<dd><a href="__builtin__.html#object">__builtin__.object</a></dd>
-</dl>
-<hr>
-Methods defined here:<br>
-<dl><dt><a name="UI-__init__"><strong>__init__</strong></a>(self, env<font color="#909090">=None</font>, fm<font color="#909090">=None</font>)</dt></dl>
-
-<dl><dt><a name="UI-destroy"><strong>destroy</strong></a>(self)</dt><dd><tt>Destroy&nbsp;all&nbsp;widgets&nbsp;and&nbsp;turn&nbsp;off&nbsp;curses</tt></dd></dl>
-
-<dl><dt><a name="UI-draw"><strong>draw</strong></a>(self)</dt><dd><tt>Draw&nbsp;all&nbsp;objects&nbsp;in&nbsp;the&nbsp;container</tt></dd></dl>
-
-<dl><dt><a name="UI-finalize"><strong>finalize</strong></a>(self)</dt><dd><tt>Finalize&nbsp;every&nbsp;object&nbsp;in&nbsp;container&nbsp;and&nbsp;refresh&nbsp;the&nbsp;window</tt></dd></dl>
-
-<dl><dt><a name="UI-handle_input"><strong>handle_input</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="UI-handle_key"><strong>handle_key</strong></a>(self, key)</dt><dd><tt>Handles&nbsp;key&nbsp;input</tt></dd></dl>
-
-<dl><dt><a name="UI-handle_keys"><strong>handle_keys</strong></a>(self, *keys)</dt></dl>
-
-<dl><dt><a name="UI-handle_mouse"><strong>handle_mouse</strong></a>(self)</dt><dd><tt>Handles&nbsp;mouse&nbsp;input</tt></dd></dl>
-
-<dl><dt><a name="UI-initialize"><strong>initialize</strong></a>(self)</dt><dd><tt>initialize&nbsp;curses,&nbsp;then&nbsp;call&nbsp;setup&nbsp;(at&nbsp;the&nbsp;first&nbsp;time)&nbsp;and&nbsp;resize.</tt></dd></dl>
-
-<dl><dt><a name="UI-redraw"><strong>redraw</strong></a>(self)</dt><dd><tt>Redraw&nbsp;all&nbsp;widgets</tt></dd></dl>
-
-<dl><dt><a name="UI-redraw_window"><strong>redraw_window</strong></a>(self)</dt><dd><tt>Redraw&nbsp;the&nbsp;window.&nbsp;This&nbsp;only&nbsp;calls&nbsp;self.<strong>win</strong>.redrawwin().</tt></dd></dl>
-
-<dl><dt><a name="UI-set_load_mode"><strong>set_load_mode</strong></a>(self, boolean)</dt></dl>
-
-<dl><dt><a name="UI-setup"><strong>setup</strong></a>(self)</dt><dd><tt>Called&nbsp;after&nbsp;an&nbsp;<a href="#UI-initialize">initialize</a>()&nbsp;call.<br>
-Override&nbsp;this!</tt></dd></dl>
-
-<dl><dt><a name="UI-suspend"><strong>suspend</strong></a>(self)</dt><dd><tt>Turn&nbsp;off&nbsp;curses</tt></dd></dl>
-
-<dl><dt><a name="UI-update_size"><strong>update_size</strong></a>(self)</dt><dd><tt>Update&nbsp;self.<strong>env</strong>.termsize.<br>
-Extend&nbsp;this&nbsp;method&nbsp;to&nbsp;resize&nbsp;all&nbsp;widgets!</tt></dd></dl>
-
-<hr>
-Data and other attributes defined here:<br>
-<dl><dt><strong>is_set_up</strong> = False</dl>
-
-<dl><dt><strong>load_mode</strong> = False</dl>
-
-<hr>
-Methods inherited from <a href="ranger.gui.displayable.html#DisplayableContainer">ranger.gui.displayable.DisplayableContainer</a>:<br>
-<dl><dt><a name="UI-add_child"><strong>add_child</strong></a>(self, obj)</dt><dd><tt>Add&nbsp;the&nbsp;objects&nbsp;to&nbsp;the&nbsp;container.</tt></dd></dl>
-
-<dl><dt><a name="UI-click"><strong>click</strong></a>(self, event)</dt><dd><tt>Recursively&nbsp;called&nbsp;on&nbsp;objects&nbsp;in&nbsp;container</tt></dd></dl>
-
-<dl><dt><a name="UI-poke"><strong>poke</strong></a>(self)</dt><dd><tt>Recursively&nbsp;called&nbsp;on&nbsp;objects&nbsp;in&nbsp;container</tt></dd></dl>
-
-<dl><dt><a name="UI-press"><strong>press</strong></a>(self, key)</dt><dd><tt>Recursively&nbsp;called&nbsp;on&nbsp;objects&nbsp;in&nbsp;container</tt></dd></dl>
-
-<dl><dt><a name="UI-remove_child"><strong>remove_child</strong></a>(self, obj)</dt><dd><tt>Remove&nbsp;the&nbsp;object&nbsp;from&nbsp;the&nbsp;container.</tt></dd></dl>
-
-<hr>
-Methods inherited from <a href="ranger.gui.displayable.html#Displayable">ranger.gui.displayable.Displayable</a>:<br>
-<dl><dt><a name="UI-__bool__"><strong>__bool__</strong></a> = __nonzero__(self)</dt><dd><tt>Always&nbsp;True</tt></dd></dl>
-
-<dl><dt><a name="UI-__contains__"><strong>__contains__</strong></a>(self, item)</dt><dd><tt>Is&nbsp;item&nbsp;inside&nbsp;the&nbsp;boundaries?<br>
-item&nbsp;can&nbsp;be&nbsp;an&nbsp;iterable&nbsp;like&nbsp;[y,&nbsp;x]&nbsp;or&nbsp;an&nbsp;object&nbsp;with&nbsp;x&nbsp;and&nbsp;y&nbsp;methods.</tt></dd></dl>
-
-<dl><dt><a name="UI-__nonzero__"><strong>__nonzero__</strong></a>(self)</dt><dd><tt>Always&nbsp;True</tt></dd></dl>
-
-<dl><dt><a name="UI-__str__"><strong>__str__</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="UI-contains_point"><strong>contains_point</strong></a>(self, y, x)</dt><dd><tt>Test&nbsp;whether&nbsp;the&nbsp;point&nbsp;(with&nbsp;absolute&nbsp;coordinates)&nbsp;lies<br>
-within&nbsp;the&nbsp;boundaries&nbsp;of&nbsp;this&nbsp;object.</tt></dd></dl>
-
-<dl><dt><a name="UI-resize"><strong>resize</strong></a>(self, y, x, hei<font color="#909090">=None</font>, wid<font color="#909090">=None</font>)</dt><dd><tt>Resize&nbsp;the&nbsp;widget</tt></dd></dl>
-
-<hr>
-Data and other attributes inherited from <a href="ranger.shared.html#EnvironmentAware">ranger.shared.EnvironmentAware</a>:<br>
-<dl><dt><strong>env</strong> = None</dl>
-
-<hr>
-Data and other attributes inherited from <a href="ranger.shared.html#FileManagerAware">ranger.shared.FileManagerAware</a>:<br>
-<dl><dt><strong>fm</strong> = None</dl>
-
-<hr>
-Data descriptors inherited from <a href="ranger.shared.html#Awareness">ranger.shared.Awareness</a>:<br>
-<dl><dt><strong>__dict__</strong></dt>
-<dd><tt>dictionary&nbsp;for&nbsp;instance&nbsp;variables&nbsp;(if&nbsp;defined)</tt></dd>
-</dl>
-<dl><dt><strong>__weakref__</strong></dt>
-<dd><tt>list&nbsp;of&nbsp;weak&nbsp;references&nbsp;to&nbsp;the&nbsp;object&nbsp;(if&nbsp;defined)</tt></dd>
-</dl>
-<hr>
-Methods inherited from <a href="ranger.gui.curses_shortcuts.html#CursesShortcuts">ranger.gui.curses_shortcuts.CursesShortcuts</a>:<br>
-<dl><dt><a name="UI-addnstr"><strong>addnstr</strong></a>(self, *args)</dt></dl>
-
-<dl><dt><a name="UI-addstr"><strong>addstr</strong></a>(self, *args)</dt></dl>
-
-<dl><dt><a name="UI-color"><strong>color</strong></a>(self, *keys)</dt><dd><tt>Change&nbsp;the&nbsp;colors&nbsp;from&nbsp;now&nbsp;on.</tt></dd></dl>
-
-<dl><dt><a name="UI-color_at"><strong>color_at</strong></a>(self, y, x, wid, *keys)</dt><dd><tt>Change&nbsp;the&nbsp;colors&nbsp;at&nbsp;the&nbsp;specified&nbsp;position</tt></dd></dl>
-
-<dl><dt><a name="UI-color_reset"><strong>color_reset</strong></a>(self)</dt><dd><tt>Change&nbsp;the&nbsp;colors&nbsp;to&nbsp;the&nbsp;default&nbsp;colors</tt></dd></dl>
-
-<hr>
-Data and other attributes inherited from <a href="ranger.shared.settings.html#SettingsAware">ranger.shared.settings.SettingsAware</a>:<br>
-<dl><dt><strong>settings</strong> = {}</dl>
-
-</td></tr></table></td></tr></table><p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#55aa55">
-<td colspan=3 valign=bottom>&nbsp;<br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Data</strong></big></font></td></tr>
-    
-<tr><td bgcolor="#55aa55"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
-<td width="100%"><strong>MOUSEMASK</strong> = 268435455<br>
-<strong>TERMINALS_WITH_TITLE</strong> = ('xterm', 'xterm-256color', 'rxvt', 'rxvt-256color', 'rxvt-unicode', 'aterm', 'Eterm', 'screen', 'screen-256color')</td></tr></table>
-</body></html>
\ No newline at end of file
diff --git a/doc/pydoc/ranger.gui.widgets.browsercolumn.html b/doc/pydoc/ranger.gui.widgets.browsercolumn.html
deleted file mode 100644
index eaa97563..00000000
--- a/doc/pydoc/ranger.gui.widgets.browsercolumn.html
+++ /dev/null
@@ -1,193 +0,0 @@
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html><head><title>Python: module ranger.gui.widgets.browsercolumn</title>
-</head><body bgcolor="#f0f0f8">
-
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="heading">
-<tr bgcolor="#7799ee">
-<td valign=bottom>&nbsp;<br>
-<font color="#ffffff" face="helvetica, arial">&nbsp;<br><big><big><strong><a href="ranger.html"><font color="#ffffff">ranger</font></a>.<a href="ranger.gui.html"><font color="#ffffff">gui</font></a>.<a href="ranger.gui.widgets.html"><font color="#ffffff">widgets</font></a>.browsercolumn</strong></big></big></font></td
-><td align=right valign=bottom
-><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:/home/hut/ranger/ranger/gui/widgets/browsercolumn.py">/home/hut/ranger/ranger/gui/widgets/browsercolumn.py</a></font></td></tr></table>
-    <p><tt>The&nbsp;<a href="#BrowserColumn">BrowserColumn</a>&nbsp;widget&nbsp;displays&nbsp;the&nbsp;contents&nbsp;of&nbsp;a&nbsp;directory&nbsp;or&nbsp;file.</tt></p>
-<p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#aa55cc">
-<td colspan=3 valign=bottom>&nbsp;<br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Modules</strong></big></font></td></tr>
-    
-<tr><td bgcolor="#aa55cc"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
-<td width="100%"><table width="100%" summary="list"><tr><td width="25%" valign=top><a href="re.html">re</a><br>
-</td><td width="25%" valign=top><a href="stat.html">stat</a><br>
-</td><td width="25%" valign=top></td><td width="25%" valign=top></td></tr></table></td></tr></table><p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ee77aa">
-<td colspan=3 valign=bottom>&nbsp;<br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Classes</strong></big></font></td></tr>
-    
-<tr><td bgcolor="#ee77aa"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
-<td width="100%"><dl>
-<dt><font face="helvetica, arial"><a href="ranger.gui.widgets.pager.html#Pager">ranger.gui.widgets.pager.Pager</a>(<a href="ranger.gui.widgets.html#Widget">ranger.gui.widgets.Widget</a>)
-</font></dt><dd>
-<dl>
-<dt><font face="helvetica, arial"><a href="ranger.gui.widgets.browsercolumn.html#BrowserColumn">BrowserColumn</a>
-</font></dt></dl>
-</dd>
-</dl>
- <p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ffc8d8">
-<td colspan=3 valign=bottom>&nbsp;<br>
-<font color="#000000" face="helvetica, arial"><a name="BrowserColumn">class <strong>BrowserColumn</strong></a>(<a href="ranger.gui.widgets.pager.html#Pager">ranger.gui.widgets.pager.Pager</a>)</font></td></tr>
-    
-<tr><td bgcolor="#ffc8d8"><tt>&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
-<td width="100%"><dl><dt>Method resolution order:</dt>
-<dd><a href="ranger.gui.widgets.browsercolumn.html#BrowserColumn">BrowserColumn</a></dd>
-<dd><a href="ranger.gui.widgets.pager.html#Pager">ranger.gui.widgets.pager.Pager</a></dd>
-<dd><a href="ranger.gui.widgets.html#Widget">ranger.gui.widgets.Widget</a></dd>
-<dd><a href="ranger.gui.displayable.html#Displayable">ranger.gui.displayable.Displayable</a></dd>
-<dd><a href="ranger.shared.html#EnvironmentAware">ranger.shared.EnvironmentAware</a></dd>
-<dd><a href="ranger.shared.html#FileManagerAware">ranger.shared.FileManagerAware</a></dd>
-<dd><a href="ranger.shared.html#Awareness">ranger.shared.Awareness</a></dd>
-<dd><a href="ranger.gui.curses_shortcuts.html#CursesShortcuts">ranger.gui.curses_shortcuts.CursesShortcuts</a></dd>
-<dd><a href="ranger.shared.settings.html#SettingsAware">ranger.shared.settings.SettingsAware</a></dd>
-<dd><a href="__builtin__.html#object">__builtin__.object</a></dd>
-</dl>
-<hr>
-Methods defined here:<br>
-<dl><dt><a name="BrowserColumn-__init__"><strong>__init__</strong></a>(self, win, level)</dt><dd><tt>win&nbsp;=&nbsp;the&nbsp;curses&nbsp;window&nbsp;object&nbsp;of&nbsp;the&nbsp;BrowserView<br>
-level&nbsp;=&nbsp;what&nbsp;to&nbsp;display?<br>
-&nbsp;<br>
-level&nbsp;&gt;0&nbsp;=&gt;&nbsp;previews<br>
-level&nbsp;0&nbsp;=&gt;&nbsp;current&nbsp;file/directory<br>
-level&nbsp;&lt;0&nbsp;=&gt;&nbsp;parent&nbsp;directories</tt></dd></dl>
-
-<dl><dt><a name="BrowserColumn-__str__"><strong>__str__</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="BrowserColumn-click"><strong>click</strong></a>(self, event)</dt><dd><tt>Handle&nbsp;a&nbsp;MouseEvent</tt></dd></dl>
-
-<dl><dt><a name="BrowserColumn-draw"><strong>draw</strong></a>(self)</dt><dd><tt>Call&nbsp;either&nbsp;_draw_file()&nbsp;or&nbsp;_draw_directory()</tt></dd></dl>
-
-<dl><dt><a name="BrowserColumn-has_preview"><strong>has_preview</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="BrowserColumn-poke"><strong>poke</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="BrowserColumn-request_redraw"><strong>request_redraw</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="BrowserColumn-resize"><strong>resize</strong></a>(self, y, x, hei, wid)</dt></dl>
-
-<dl><dt><a name="BrowserColumn-scroll"><strong>scroll</strong></a>(self, n)</dt><dd><tt>scroll&nbsp;down&nbsp;by&nbsp;n&nbsp;lines</tt></dd></dl>
-
-<hr>
-Data and other attributes defined here:<br>
-<dl><dt><strong>display_infostring</strong> = False</dl>
-
-<dl><dt><strong>last_redraw_time</strong> = -1</dl>
-
-<dl><dt><strong>main_column</strong> = False</dl>
-
-<dl><dt><strong>old_cf</strong> = None</dl>
-
-<dl><dt><strong>old_dir</strong> = None</dl>
-
-<dl><dt><strong>scroll_begin</strong> = 0</dl>
-
-<dl><dt><strong>tagged_marker</strong> = '*'</dl>
-
-<dl><dt><strong>target</strong> = None</dl>
-
-<hr>
-Methods inherited from <a href="ranger.gui.widgets.pager.html#Pager">ranger.gui.widgets.pager.Pager</a>:<br>
-<dl><dt><a name="BrowserColumn-close"><strong>close</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="BrowserColumn-finalize"><strong>finalize</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="BrowserColumn-move"><strong>move</strong></a>(self, narg<font color="#909090">=None</font>, **kw)</dt></dl>
-
-<dl><dt><a name="BrowserColumn-open"><strong>open</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="BrowserColumn-press"><strong>press</strong></a>(self, key)</dt></dl>
-
-<dl><dt><a name="BrowserColumn-set_source"><strong>set_source</strong></a>(self, source, strip<font color="#909090">=False</font>)</dt></dl>
-
-<hr>
-Data and other attributes inherited from <a href="ranger.gui.widgets.pager.html#Pager">ranger.gui.widgets.pager.Pager</a>:<br>
-<dl><dt><strong>old_scroll_begin</strong> = 0</dl>
-
-<dl><dt><strong>old_source</strong> = None</dl>
-
-<dl><dt><strong>old_startx</strong> = 0</dl>
-
-<dl><dt><strong>source</strong> = None</dl>
-
-<dl><dt><strong>source_is_stream</strong> = False</dl>
-
-<hr>
-Methods inherited from <a href="ranger.gui.displayable.html#Displayable">ranger.gui.displayable.Displayable</a>:<br>
-<dl><dt><a name="BrowserColumn-__bool__"><strong>__bool__</strong></a> = __nonzero__(self)</dt><dd><tt>Always&nbsp;True</tt></dd></dl>
-
-<dl><dt><a name="BrowserColumn-__contains__"><strong>__contains__</strong></a>(self, item)</dt><dd><tt>Is&nbsp;item&nbsp;inside&nbsp;the&nbsp;boundaries?<br>
-item&nbsp;can&nbsp;be&nbsp;an&nbsp;iterable&nbsp;like&nbsp;[y,&nbsp;x]&nbsp;or&nbsp;an&nbsp;object&nbsp;with&nbsp;x&nbsp;and&nbsp;y&nbsp;methods.</tt></dd></dl>
-
-<dl><dt><a name="BrowserColumn-__nonzero__"><strong>__nonzero__</strong></a>(self)</dt><dd><tt>Always&nbsp;True</tt></dd></dl>
-
-<dl><dt><a name="BrowserColumn-contains_point"><strong>contains_point</strong></a>(self, y, x)</dt><dd><tt>Test&nbsp;whether&nbsp;the&nbsp;point&nbsp;(with&nbsp;absolute&nbsp;coordinates)&nbsp;lies<br>
-within&nbsp;the&nbsp;boundaries&nbsp;of&nbsp;this&nbsp;object.</tt></dd></dl>
-
-<dl><dt><a name="BrowserColumn-destroy"><strong>destroy</strong></a>(self)</dt><dd><tt>Called&nbsp;when&nbsp;the&nbsp;object&nbsp;is&nbsp;destroyed.<br>
-Override&nbsp;this!</tt></dd></dl>
-
-<hr>
-Data and other attributes inherited from <a href="ranger.shared.html#EnvironmentAware">ranger.shared.EnvironmentAware</a>:<br>
-<dl><dt><strong>env</strong> = None</dl>
-
-<hr>
-Data and other attributes inherited from <a href="ranger.shared.html#FileManagerAware">ranger.shared.FileManagerAware</a>:<br>
-<dl><dt><strong>fm</strong> = None</dl>
-
-<hr>
-Data descriptors inherited from <a href="ranger.shared.html#Awareness">ranger.shared.Awareness</a>:<br>
-<dl><dt><strong>__dict__</strong></dt>
-<dd><tt>dictionary&nbsp;for&nbsp;instance&nbsp;variables&nbsp;(if&nbsp;defined)</tt></dd>
-</dl>
-<dl><dt><strong>__weakref__</strong></dt>
-<dd><tt>list&nbsp;of&nbsp;weak&nbsp;references&nbsp;to&nbsp;the&nbsp;object&nbsp;(if&nbsp;defined)</tt></dd>
-</dl>
-<hr>
-Methods inherited from <a href="ranger.gui.curses_shortcuts.html#CursesShortcuts">ranger.gui.curses_shortcuts.CursesShortcuts</a>:<br>
-<dl><dt><a name="BrowserColumn-addnstr"><strong>addnstr</strong></a>(self, *args)</dt></dl>
-
-<dl><dt><a name="BrowserColumn-addstr"><strong>addstr</strong></a>(self, *args)</dt></dl>
-
-<dl><dt><a name="BrowserColumn-color"><strong>color</strong></a>(self, *keys)</dt><dd><tt>Change&nbsp;the&nbsp;colors&nbsp;from&nbsp;now&nbsp;on.</tt></dd></dl>
-
-<dl><dt><a name="BrowserColumn-color_at"><strong>color_at</strong></a>(self, y, x, wid, *keys)</dt><dd><tt>Change&nbsp;the&nbsp;colors&nbsp;at&nbsp;the&nbsp;specified&nbsp;position</tt></dd></dl>
-
-<dl><dt><a name="BrowserColumn-color_reset"><strong>color_reset</strong></a>(self)</dt><dd><tt>Change&nbsp;the&nbsp;colors&nbsp;to&nbsp;the&nbsp;default&nbsp;colors</tt></dd></dl>
-
-<hr>
-Data and other attributes inherited from <a href="ranger.shared.settings.html#SettingsAware">ranger.shared.settings.SettingsAware</a>:<br>
-<dl><dt><strong>settings</strong> = {}</dl>
-
-</td></tr></table></td></tr></table><p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#eeaa77">
-<td colspan=3 valign=bottom>&nbsp;<br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Functions</strong></big></font></td></tr>
-    
-<tr><td bgcolor="#eeaa77"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
-<td width="100%"><dl><dt><a name="-time"><strong>time</strong></a>(...)</dt><dd><tt><a href="#-time">time</a>()&nbsp;-&gt;&nbsp;floating&nbsp;point&nbsp;number<br>
-&nbsp;<br>
-Return&nbsp;the&nbsp;current&nbsp;time&nbsp;in&nbsp;seconds&nbsp;since&nbsp;the&nbsp;Epoch.<br>
-Fractions&nbsp;of&nbsp;a&nbsp;second&nbsp;may&nbsp;be&nbsp;present&nbsp;if&nbsp;the&nbsp;system&nbsp;clock&nbsp;provides&nbsp;them.</tt></dd></dl>
-</td></tr></table><p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#55aa55">
-<td colspan=3 valign=bottom>&nbsp;<br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Data</strong></big></font></td></tr>
-    
-<tr><td bgcolor="#55aa55"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
-<td width="100%"><strong>BAD_INFO</strong> = '?'<br>
-<strong>PREVIEW_BLACKLIST</strong> = &lt;_sre.SRE_Pattern object&gt;<br>
-<strong>PREVIEW_WHITELIST</strong> = &lt;_sre.SRE_Pattern object&gt;</td></tr></table>
-</body></html>
\ No newline at end of file
diff --git a/doc/pydoc/ranger.gui.widgets.browserview.html b/doc/pydoc/ranger.gui.widgets.browserview.html
deleted file mode 100644
index ca15d9e8..00000000
--- a/doc/pydoc/ranger.gui.widgets.browserview.html
+++ /dev/null
@@ -1,154 +0,0 @@
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html><head><title>Python: module ranger.gui.widgets.browserview</title>
-</head><body bgcolor="#f0f0f8">
-
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="heading">
-<tr bgcolor="#7799ee">
-<td valign=bottom>&nbsp;<br>
-<font color="#ffffff" face="helvetica, arial">&nbsp;<br><big><big><strong><a href="ranger.html"><font color="#ffffff">ranger</font></a>.<a href="ranger.gui.html"><font color="#ffffff">gui</font></a>.<a href="ranger.gui.widgets.html"><font color="#ffffff">widgets</font></a>.browserview</strong></big></big></font></td
-><td align=right valign=bottom
-><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:/home/hut/ranger/ranger/gui/widgets/browserview.py">/home/hut/ranger/ranger/gui/widgets/browserview.py</a></font></td></tr></table>
-    <p><tt>The&nbsp;<a href="#BrowserView">BrowserView</a>&nbsp;manages&nbsp;a&nbsp;set&nbsp;of&nbsp;BrowserColumns.</tt></p>
-<p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#aa55cc">
-<td colspan=3 valign=bottom>&nbsp;<br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Modules</strong></big></font></td></tr>
-    
-<tr><td bgcolor="#aa55cc"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
-<td width="100%"><table width="100%" summary="list"><tr><td width="25%" valign=top><a href="curses.html">curses</a><br>
-</td><td width="25%" valign=top></td><td width="25%" valign=top></td><td width="25%" valign=top></td></tr></table></td></tr></table><p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ee77aa">
-<td colspan=3 valign=bottom>&nbsp;<br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Classes</strong></big></font></td></tr>
-    
-<tr><td bgcolor="#ee77aa"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
-<td width="100%"><dl>
-<dt><font face="helvetica, arial"><a href="ranger.gui.displayable.html#DisplayableContainer">ranger.gui.displayable.DisplayableContainer</a>(<a href="ranger.gui.displayable.html#Displayable">ranger.gui.displayable.Displayable</a>)
-</font></dt><dd>
-<dl>
-<dt><font face="helvetica, arial"><a href="ranger.gui.widgets.browserview.html#BrowserView">BrowserView</a>(<a href="ranger.gui.widgets.html#Widget">ranger.gui.widgets.Widget</a>, <a href="ranger.gui.displayable.html#DisplayableContainer">ranger.gui.displayable.DisplayableContainer</a>)
-</font></dt></dl>
-</dd>
-<dt><font face="helvetica, arial"><a href="ranger.gui.widgets.html#Widget">ranger.gui.widgets.Widget</a>(<a href="ranger.gui.displayable.html#Displayable">ranger.gui.displayable.Displayable</a>)
-</font></dt><dd>
-<dl>
-<dt><font face="helvetica, arial"><a href="ranger.gui.widgets.browserview.html#BrowserView">BrowserView</a>(<a href="ranger.gui.widgets.html#Widget">ranger.gui.widgets.Widget</a>, <a href="ranger.gui.displayable.html#DisplayableContainer">ranger.gui.displayable.DisplayableContainer</a>)
-</font></dt></dl>
-</dd>
-</dl>
- <p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ffc8d8">
-<td colspan=3 valign=bottom>&nbsp;<br>
-<font color="#000000" face="helvetica, arial"><a name="BrowserView">class <strong>BrowserView</strong></a>(<a href="ranger.gui.widgets.html#Widget">ranger.gui.widgets.Widget</a>, <a href="ranger.gui.displayable.html#DisplayableContainer">ranger.gui.displayable.DisplayableContainer</a>)</font></td></tr>
-    
-<tr><td bgcolor="#ffc8d8"><tt>&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
-<td width="100%"><dl><dt>Method resolution order:</dt>
-<dd><a href="ranger.gui.widgets.browserview.html#BrowserView">BrowserView</a></dd>
-<dd><a href="ranger.gui.widgets.html#Widget">ranger.gui.widgets.Widget</a></dd>
-<dd><a href="ranger.gui.displayable.html#DisplayableContainer">ranger.gui.displayable.DisplayableContainer</a></dd>
-<dd><a href="ranger.gui.displayable.html#Displayable">ranger.gui.displayable.Displayable</a></dd>
-<dd><a href="ranger.shared.html#EnvironmentAware">ranger.shared.EnvironmentAware</a></dd>
-<dd><a href="ranger.shared.html#FileManagerAware">ranger.shared.FileManagerAware</a></dd>
-<dd><a href="ranger.shared.html#Awareness">ranger.shared.Awareness</a></dd>
-<dd><a href="ranger.gui.curses_shortcuts.html#CursesShortcuts">ranger.gui.curses_shortcuts.CursesShortcuts</a></dd>
-<dd><a href="ranger.shared.settings.html#SettingsAware">ranger.shared.settings.SettingsAware</a></dd>
-<dd><a href="__builtin__.html#object">__builtin__.object</a></dd>
-</dl>
-<hr>
-Methods defined here:<br>
-<dl><dt><a name="BrowserView-__init__"><strong>__init__</strong></a>(self, win, ratios, preview<font color="#909090">=True</font>)</dt></dl>
-
-<dl><dt><a name="BrowserView-change_ratios"><strong>change_ratios</strong></a>(self, ratios, resize<font color="#909090">=True</font>)</dt></dl>
-
-<dl><dt><a name="BrowserView-click"><strong>click</strong></a>(self, event)</dt></dl>
-
-<dl><dt><a name="BrowserView-close_pager"><strong>close_pager</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="BrowserView-draw"><strong>draw</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="BrowserView-finalize"><strong>finalize</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="BrowserView-open_pager"><strong>open_pager</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="BrowserView-poke"><strong>poke</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="BrowserView-request_clear"><strong>request_clear</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="BrowserView-resize"><strong>resize</strong></a>(self, y, x, hei, wid)</dt><dd><tt>Resize&nbsp;all&nbsp;the&nbsp;columns&nbsp;according&nbsp;to&nbsp;the&nbsp;given&nbsp;ratio</tt></dd></dl>
-
-<hr>
-Data and other attributes defined here:<br>
-<dl><dt><strong>draw_bookmarks</strong> = False</dl>
-
-<dl><dt><strong>need_clear</strong> = False</dl>
-
-<dl><dt><strong>preview</strong> = True</dl>
-
-<dl><dt><strong>preview_available</strong> = True</dl>
-
-<dl><dt><strong>ratios</strong> = None</dl>
-
-<dl><dt><strong>stretch_ratios</strong> = None</dl>
-
-<hr>
-Methods inherited from <a href="ranger.gui.displayable.html#DisplayableContainer">ranger.gui.displayable.DisplayableContainer</a>:<br>
-<dl><dt><a name="BrowserView-add_child"><strong>add_child</strong></a>(self, obj)</dt><dd><tt>Add&nbsp;the&nbsp;objects&nbsp;to&nbsp;the&nbsp;container.</tt></dd></dl>
-
-<dl><dt><a name="BrowserView-destroy"><strong>destroy</strong></a>(self)</dt><dd><tt>Recursively&nbsp;called&nbsp;on&nbsp;objects&nbsp;in&nbsp;container</tt></dd></dl>
-
-<dl><dt><a name="BrowserView-press"><strong>press</strong></a>(self, key)</dt><dd><tt>Recursively&nbsp;called&nbsp;on&nbsp;objects&nbsp;in&nbsp;container</tt></dd></dl>
-
-<dl><dt><a name="BrowserView-remove_child"><strong>remove_child</strong></a>(self, obj)</dt><dd><tt>Remove&nbsp;the&nbsp;object&nbsp;from&nbsp;the&nbsp;container.</tt></dd></dl>
-
-<hr>
-Methods inherited from <a href="ranger.gui.displayable.html#Displayable">ranger.gui.displayable.Displayable</a>:<br>
-<dl><dt><a name="BrowserView-__bool__"><strong>__bool__</strong></a> = __nonzero__(self)</dt><dd><tt>Always&nbsp;True</tt></dd></dl>
-
-<dl><dt><a name="BrowserView-__contains__"><strong>__contains__</strong></a>(self, item)</dt><dd><tt>Is&nbsp;item&nbsp;inside&nbsp;the&nbsp;boundaries?<br>
-item&nbsp;can&nbsp;be&nbsp;an&nbsp;iterable&nbsp;like&nbsp;[y,&nbsp;x]&nbsp;or&nbsp;an&nbsp;object&nbsp;with&nbsp;x&nbsp;and&nbsp;y&nbsp;methods.</tt></dd></dl>
-
-<dl><dt><a name="BrowserView-__nonzero__"><strong>__nonzero__</strong></a>(self)</dt><dd><tt>Always&nbsp;True</tt></dd></dl>
-
-<dl><dt><a name="BrowserView-__str__"><strong>__str__</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="BrowserView-contains_point"><strong>contains_point</strong></a>(self, y, x)</dt><dd><tt>Test&nbsp;whether&nbsp;the&nbsp;point&nbsp;(with&nbsp;absolute&nbsp;coordinates)&nbsp;lies<br>
-within&nbsp;the&nbsp;boundaries&nbsp;of&nbsp;this&nbsp;object.</tt></dd></dl>
-
-<hr>
-Data and other attributes inherited from <a href="ranger.shared.html#EnvironmentAware">ranger.shared.EnvironmentAware</a>:<br>
-<dl><dt><strong>env</strong> = None</dl>
-
-<hr>
-Data and other attributes inherited from <a href="ranger.shared.html#FileManagerAware">ranger.shared.FileManagerAware</a>:<br>
-<dl><dt><strong>fm</strong> = None</dl>
-
-<hr>
-Data descriptors inherited from <a href="ranger.shared.html#Awareness">ranger.shared.Awareness</a>:<br>
-<dl><dt><strong>__dict__</strong></dt>
-<dd><tt>dictionary&nbsp;for&nbsp;instance&nbsp;variables&nbsp;(if&nbsp;defined)</tt></dd>
-</dl>
-<dl><dt><strong>__weakref__</strong></dt>
-<dd><tt>list&nbsp;of&nbsp;weak&nbsp;references&nbsp;to&nbsp;the&nbsp;object&nbsp;(if&nbsp;defined)</tt></dd>
-</dl>
-<hr>
-Methods inherited from <a href="ranger.gui.curses_shortcuts.html#CursesShortcuts">ranger.gui.curses_shortcuts.CursesShortcuts</a>:<br>
-<dl><dt><a name="BrowserView-addnstr"><strong>addnstr</strong></a>(self, *args)</dt></dl>
-
-<dl><dt><a name="BrowserView-addstr"><strong>addstr</strong></a>(self, *args)</dt></dl>
-
-<dl><dt><a name="BrowserView-color"><strong>color</strong></a>(self, *keys)</dt><dd><tt>Change&nbsp;the&nbsp;colors&nbsp;from&nbsp;now&nbsp;on.</tt></dd></dl>
-
-<dl><dt><a name="BrowserView-color_at"><strong>color_at</strong></a>(self, y, x, wid, *keys)</dt><dd><tt>Change&nbsp;the&nbsp;colors&nbsp;at&nbsp;the&nbsp;specified&nbsp;position</tt></dd></dl>
-
-<dl><dt><a name="BrowserView-color_reset"><strong>color_reset</strong></a>(self)</dt><dd><tt>Change&nbsp;the&nbsp;colors&nbsp;to&nbsp;the&nbsp;default&nbsp;colors</tt></dd></dl>
-
-<hr>
-Data and other attributes inherited from <a href="ranger.shared.settings.html#SettingsAware">ranger.shared.settings.SettingsAware</a>:<br>
-<dl><dt><strong>settings</strong> = {}</dl>
-
-</td></tr></table></td></tr></table>
-</body></html>
\ No newline at end of file
diff --git a/doc/pydoc/ranger.gui.widgets.console.html b/doc/pydoc/ranger.gui.widgets.console.html
deleted file mode 100644
index cb84b0cb..00000000
--- a/doc/pydoc/ranger.gui.widgets.console.html
+++ /dev/null
@@ -1,1139 +0,0 @@
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html><head><title>Python: module ranger.gui.widgets.console</title>
-</head><body bgcolor="#f0f0f8">
-
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="heading">
-<tr bgcolor="#7799ee">
-<td valign=bottom>&nbsp;<br>
-<font color="#ffffff" face="helvetica, arial">&nbsp;<br><big><big><strong><a href="ranger.html"><font color="#ffffff">ranger</font></a>.<a href="ranger.gui.html"><font color="#ffffff">gui</font></a>.<a href="ranger.gui.widgets.html"><font color="#ffffff">widgets</font></a>.console</strong></big></big></font></td
-><td align=right valign=bottom
-><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:/home/hut/ranger/ranger/gui/widgets/console.py">/home/hut/ranger/ranger/gui/widgets/console.py</a></font></td></tr></table>
-    <p><tt>The&nbsp;<a href="#Console">Console</a>&nbsp;widget&nbsp;implements&nbsp;a&nbsp;vim-like&nbsp;console&nbsp;for&nbsp;entering<br>
-commands,&nbsp;searching&nbsp;and&nbsp;executing&nbsp;files.</tt></p>
-<p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#aa55cc">
-<td colspan=3 valign=bottom>&nbsp;<br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Modules</strong></big></font></td></tr>
-    
-<tr><td bgcolor="#aa55cc"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
-<td width="100%"><table width="100%" summary="list"><tr><td width="25%" valign=top><a href="curses.html">curses</a><br>
-</td><td width="25%" valign=top><a href="ranger.html">ranger</a><br>
-</td><td width="25%" valign=top><a href="string.html">string</a><br>
-</td><td width="25%" valign=top></td></tr></table></td></tr></table><p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ee77aa">
-<td colspan=3 valign=bottom>&nbsp;<br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Classes</strong></big></font></td></tr>
-    
-<tr><td bgcolor="#ee77aa"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
-<td width="100%"><dl>
-<dt><font face="helvetica, arial"><a href="ranger.gui.widgets.html#Widget">ranger.gui.widgets.Widget</a>(<a href="ranger.gui.displayable.html#Displayable">ranger.gui.displayable.Displayable</a>)
-</font></dt><dd>
-<dl>
-<dt><font face="helvetica, arial"><a href="ranger.gui.widgets.console.html#Console">Console</a>
-</font></dt><dd>
-<dl>
-<dt><font face="helvetica, arial"><a href="ranger.gui.widgets.console.html#ConsoleWithTab">ConsoleWithTab</a>
-</font></dt><dd>
-<dl>
-<dt><font face="helvetica, arial"><a href="ranger.gui.widgets.console.html#CommandConsole">CommandConsole</a>
-</font></dt><dd>
-<dl>
-<dt><font face="helvetica, arial"><a href="ranger.gui.widgets.console.html#QuickCommandConsole">QuickCommandConsole</a>
-</font></dt></dl>
-</dd>
-<dt><font face="helvetica, arial"><a href="ranger.gui.widgets.console.html#OpenConsole">OpenConsole</a>
-</font></dt><dt><font face="helvetica, arial"><a href="ranger.gui.widgets.console.html#QuickOpenConsole">QuickOpenConsole</a>
-</font></dt></dl>
-</dd>
-<dt><font face="helvetica, arial"><a href="ranger.gui.widgets.console.html#SearchConsole">SearchConsole</a>
-</font></dt></dl>
-</dd>
-</dl>
-</dd>
-</dl>
- <p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ffc8d8">
-<td colspan=3 valign=bottom>&nbsp;<br>
-<font color="#000000" face="helvetica, arial"><a name="CommandConsole">class <strong>CommandConsole</strong></a>(<a href="ranger.gui.widgets.console.html#ConsoleWithTab">ConsoleWithTab</a>)</font></td></tr>
-    
-<tr><td bgcolor="#ffc8d8"><tt>&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
-<td width="100%"><dl><dt>Method resolution order:</dt>
-<dd><a href="ranger.gui.widgets.console.html#CommandConsole">CommandConsole</a></dd>
-<dd><a href="ranger.gui.widgets.console.html#ConsoleWithTab">ConsoleWithTab</a></dd>
-<dd><a href="ranger.gui.widgets.console.html#Console">Console</a></dd>
-<dd><a href="ranger.gui.widgets.html#Widget">ranger.gui.widgets.Widget</a></dd>
-<dd><a href="ranger.gui.displayable.html#Displayable">ranger.gui.displayable.Displayable</a></dd>
-<dd><a href="ranger.shared.html#EnvironmentAware">ranger.shared.EnvironmentAware</a></dd>
-<dd><a href="ranger.shared.html#FileManagerAware">ranger.shared.FileManagerAware</a></dd>
-<dd><a href="ranger.shared.html#Awareness">ranger.shared.Awareness</a></dd>
-<dd><a href="ranger.gui.curses_shortcuts.html#CursesShortcuts">ranger.gui.curses_shortcuts.CursesShortcuts</a></dd>
-<dd><a href="ranger.shared.settings.html#SettingsAware">ranger.shared.settings.SettingsAware</a></dd>
-<dd><a href="__builtin__.html#object">__builtin__.object</a></dd>
-</dl>
-<hr>
-Methods defined here:<br>
-<dl><dt><a name="CommandConsole-execute"><strong>execute</strong></a>(self, cmd<font color="#909090">=None</font>)</dt></dl>
-
-<hr>
-Data and other attributes defined here:<br>
-<dl><dt><strong>prompt</strong> = ':'</dl>
-
-<hr>
-Methods inherited from <a href="ranger.gui.widgets.console.html#ConsoleWithTab">ConsoleWithTab</a>:<br>
-<dl><dt><a name="CommandConsole-tab"><strong>tab</strong></a>(self, n<font color="#909090">=1</font>)</dt></dl>
-
-<hr>
-Methods inherited from <a href="ranger.gui.widgets.console.html#Console">Console</a>:<br>
-<dl><dt><a name="CommandConsole-__init__"><strong>__init__</strong></a>(self, win)</dt></dl>
-
-<dl><dt><a name="CommandConsole-add_to_history"><strong>add_to_history</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="CommandConsole-clear"><strong>clear</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="CommandConsole-close"><strong>close</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="CommandConsole-delete"><strong>delete</strong></a>(self, mod)</dt></dl>
-
-<dl><dt><a name="CommandConsole-delete_rest"><strong>delete_rest</strong></a>(self, direction)</dt></dl>
-
-<dl><dt><a name="CommandConsole-delete_word"><strong>delete_word</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="CommandConsole-destroy"><strong>destroy</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="CommandConsole-draw"><strong>draw</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="CommandConsole-finalize"><strong>finalize</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="CommandConsole-history_move"><strong>history_move</strong></a>(self, n)</dt></dl>
-
-<dl><dt><a name="CommandConsole-init"><strong>init</strong></a>(self)</dt><dd><tt>override&nbsp;this.&nbsp;Called&nbsp;directly&nbsp;after&nbsp;class&nbsp;change</tt></dd></dl>
-
-<dl><dt><a name="CommandConsole-move"><strong>move</strong></a>(self, **keywords)</dt></dl>
-
-<dl><dt><a name="CommandConsole-on_line_change"><strong>on_line_change</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="CommandConsole-open"><strong>open</strong></a>(self, mode, string<font color="#909090">=''</font>, prompt<font color="#909090">=None</font>)</dt></dl>
-
-<dl><dt><a name="CommandConsole-paste"><strong>paste</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="CommandConsole-press"><strong>press</strong></a>(self, key)</dt></dl>
-
-<dl><dt><a name="CommandConsole-type_key"><strong>type_key</strong></a>(self, key)</dt></dl>
-
-<hr>
-Data and other attributes inherited from <a href="ranger.gui.widgets.console.html#Console">Console</a>:<br>
-<dl><dt><strong>allow_close</strong> = False</dl>
-
-<dl><dt><strong>copy</strong> = ''</dl>
-
-<dl><dt><strong>histories</strong> = None</dl>
-
-<dl><dt><strong>history</strong> = None</dl>
-
-<dl><dt><strong>historypaths</strong> = []</dl>
-
-<dl><dt><strong>last_cursor_mode</strong> = None</dl>
-
-<dl><dt><strong>mode</strong> = None</dl>
-
-<dl><dt><strong>original_line</strong> = None</dl>
-
-<dl><dt><strong>override</strong> = None</dl>
-
-<dl><dt><strong>tab_deque</strong> = None</dl>
-
-<dl><dt><strong>visible</strong> = False</dl>
-
-<hr>
-Methods inherited from <a href="ranger.gui.displayable.html#Displayable">ranger.gui.displayable.Displayable</a>:<br>
-<dl><dt><a name="CommandConsole-__bool__"><strong>__bool__</strong></a> = __nonzero__(self)</dt><dd><tt>Always&nbsp;True</tt></dd></dl>
-
-<dl><dt><a name="CommandConsole-__contains__"><strong>__contains__</strong></a>(self, item)</dt><dd><tt>Is&nbsp;item&nbsp;inside&nbsp;the&nbsp;boundaries?<br>
-item&nbsp;can&nbsp;be&nbsp;an&nbsp;iterable&nbsp;like&nbsp;[y,&nbsp;x]&nbsp;or&nbsp;an&nbsp;object&nbsp;with&nbsp;x&nbsp;and&nbsp;y&nbsp;methods.</tt></dd></dl>
-
-<dl><dt><a name="CommandConsole-__nonzero__"><strong>__nonzero__</strong></a>(self)</dt><dd><tt>Always&nbsp;True</tt></dd></dl>
-
-<dl><dt><a name="CommandConsole-__str__"><strong>__str__</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="CommandConsole-click"><strong>click</strong></a>(self, event)</dt><dd><tt>Called&nbsp;when&nbsp;a&nbsp;mouse&nbsp;key&nbsp;is&nbsp;pressed&nbsp;and&nbsp;self.<strong>focused</strong>&nbsp;is&nbsp;True.<br>
-Override&nbsp;this!</tt></dd></dl>
-
-<dl><dt><a name="CommandConsole-contains_point"><strong>contains_point</strong></a>(self, y, x)</dt><dd><tt>Test&nbsp;whether&nbsp;the&nbsp;point&nbsp;(with&nbsp;absolute&nbsp;coordinates)&nbsp;lies<br>
-within&nbsp;the&nbsp;boundaries&nbsp;of&nbsp;this&nbsp;object.</tt></dd></dl>
-
-<dl><dt><a name="CommandConsole-poke"><strong>poke</strong></a>(self)</dt><dd><tt>Called&nbsp;before&nbsp;drawing,&nbsp;even&nbsp;if&nbsp;invisible</tt></dd></dl>
-
-<dl><dt><a name="CommandConsole-resize"><strong>resize</strong></a>(self, y, x, hei<font color="#909090">=None</font>, wid<font color="#909090">=None</font>)</dt><dd><tt>Resize&nbsp;the&nbsp;widget</tt></dd></dl>
-
-<hr>
-Data and other attributes inherited from <a href="ranger.shared.html#EnvironmentAware">ranger.shared.EnvironmentAware</a>:<br>
-<dl><dt><strong>env</strong> = None</dl>
-
-<hr>
-Data and other attributes inherited from <a href="ranger.shared.html#FileManagerAware">ranger.shared.FileManagerAware</a>:<br>
-<dl><dt><strong>fm</strong> = None</dl>
-
-<hr>
-Data descriptors inherited from <a href="ranger.shared.html#Awareness">ranger.shared.Awareness</a>:<br>
-<dl><dt><strong>__dict__</strong></dt>
-<dd><tt>dictionary&nbsp;for&nbsp;instance&nbsp;variables&nbsp;(if&nbsp;defined)</tt></dd>
-</dl>
-<dl><dt><strong>__weakref__</strong></dt>
-<dd><tt>list&nbsp;of&nbsp;weak&nbsp;references&nbsp;to&nbsp;the&nbsp;object&nbsp;(if&nbsp;defined)</tt></dd>
-</dl>
-<hr>
-Methods inherited from <a href="ranger.gui.curses_shortcuts.html#CursesShortcuts">ranger.gui.curses_shortcuts.CursesShortcuts</a>:<br>
-<dl><dt><a name="CommandConsole-addnstr"><strong>addnstr</strong></a>(self, *args)</dt></dl>
-
-<dl><dt><a name="CommandConsole-addstr"><strong>addstr</strong></a>(self, *args)</dt></dl>
-
-<dl><dt><a name="CommandConsole-color"><strong>color</strong></a>(self, *keys)</dt><dd><tt>Change&nbsp;the&nbsp;colors&nbsp;from&nbsp;now&nbsp;on.</tt></dd></dl>
-
-<dl><dt><a name="CommandConsole-color_at"><strong>color_at</strong></a>(self, y, x, wid, *keys)</dt><dd><tt>Change&nbsp;the&nbsp;colors&nbsp;at&nbsp;the&nbsp;specified&nbsp;position</tt></dd></dl>
-
-<dl><dt><a name="CommandConsole-color_reset"><strong>color_reset</strong></a>(self)</dt><dd><tt>Change&nbsp;the&nbsp;colors&nbsp;to&nbsp;the&nbsp;default&nbsp;colors</tt></dd></dl>
-
-<hr>
-Data and other attributes inherited from <a href="ranger.shared.settings.html#SettingsAware">ranger.shared.settings.SettingsAware</a>:<br>
-<dl><dt><strong>settings</strong> = {}</dl>
-
-</td></tr></table> <p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ffc8d8">
-<td colspan=3 valign=bottom>&nbsp;<br>
-<font color="#000000" face="helvetica, arial"><a name="Console">class <strong>Console</strong></a>(<a href="ranger.gui.widgets.html#Widget">ranger.gui.widgets.Widget</a>)</font></td></tr>
-    
-<tr><td bgcolor="#ffc8d8"><tt>&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
-<td width="100%"><dl><dt>Method resolution order:</dt>
-<dd><a href="ranger.gui.widgets.console.html#Console">Console</a></dd>
-<dd><a href="ranger.gui.widgets.html#Widget">ranger.gui.widgets.Widget</a></dd>
-<dd><a href="ranger.gui.displayable.html#Displayable">ranger.gui.displayable.Displayable</a></dd>
-<dd><a href="ranger.shared.html#EnvironmentAware">ranger.shared.EnvironmentAware</a></dd>
-<dd><a href="ranger.shared.html#FileManagerAware">ranger.shared.FileManagerAware</a></dd>
-<dd><a href="ranger.shared.html#Awareness">ranger.shared.Awareness</a></dd>
-<dd><a href="ranger.gui.curses_shortcuts.html#CursesShortcuts">ranger.gui.curses_shortcuts.CursesShortcuts</a></dd>
-<dd><a href="ranger.shared.settings.html#SettingsAware">ranger.shared.settings.SettingsAware</a></dd>
-<dd><a href="__builtin__.html#object">__builtin__.object</a></dd>
-</dl>
-<hr>
-Methods defined here:<br>
-<dl><dt><a name="Console-__init__"><strong>__init__</strong></a>(self, win)</dt></dl>
-
-<dl><dt><a name="Console-add_to_history"><strong>add_to_history</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="Console-clear"><strong>clear</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="Console-close"><strong>close</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="Console-delete"><strong>delete</strong></a>(self, mod)</dt></dl>
-
-<dl><dt><a name="Console-delete_rest"><strong>delete_rest</strong></a>(self, direction)</dt></dl>
-
-<dl><dt><a name="Console-delete_word"><strong>delete_word</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="Console-destroy"><strong>destroy</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="Console-draw"><strong>draw</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="Console-execute"><strong>execute</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="Console-finalize"><strong>finalize</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="Console-history_move"><strong>history_move</strong></a>(self, n)</dt></dl>
-
-<dl><dt><a name="Console-init"><strong>init</strong></a>(self)</dt><dd><tt>override&nbsp;this.&nbsp;Called&nbsp;directly&nbsp;after&nbsp;class&nbsp;change</tt></dd></dl>
-
-<dl><dt><a name="Console-move"><strong>move</strong></a>(self, **keywords)</dt></dl>
-
-<dl><dt><a name="Console-on_line_change"><strong>on_line_change</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="Console-open"><strong>open</strong></a>(self, mode, string<font color="#909090">=''</font>, prompt<font color="#909090">=None</font>)</dt></dl>
-
-<dl><dt><a name="Console-paste"><strong>paste</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="Console-press"><strong>press</strong></a>(self, key)</dt></dl>
-
-<dl><dt><a name="Console-tab"><strong>tab</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="Console-type_key"><strong>type_key</strong></a>(self, key)</dt></dl>
-
-<hr>
-Data and other attributes defined here:<br>
-<dl><dt><strong>allow_close</strong> = False</dl>
-
-<dl><dt><strong>copy</strong> = ''</dl>
-
-<dl><dt><strong>histories</strong> = None</dl>
-
-<dl><dt><strong>history</strong> = None</dl>
-
-<dl><dt><strong>historypaths</strong> = []</dl>
-
-<dl><dt><strong>last_cursor_mode</strong> = None</dl>
-
-<dl><dt><strong>mode</strong> = None</dl>
-
-<dl><dt><strong>original_line</strong> = None</dl>
-
-<dl><dt><strong>override</strong> = None</dl>
-
-<dl><dt><strong>prompt</strong> = ':'</dl>
-
-<dl><dt><strong>tab_deque</strong> = None</dl>
-
-<dl><dt><strong>visible</strong> = False</dl>
-
-<hr>
-Methods inherited from <a href="ranger.gui.displayable.html#Displayable">ranger.gui.displayable.Displayable</a>:<br>
-<dl><dt><a name="Console-__bool__"><strong>__bool__</strong></a> = __nonzero__(self)</dt><dd><tt>Always&nbsp;True</tt></dd></dl>
-
-<dl><dt><a name="Console-__contains__"><strong>__contains__</strong></a>(self, item)</dt><dd><tt>Is&nbsp;item&nbsp;inside&nbsp;the&nbsp;boundaries?<br>
-item&nbsp;can&nbsp;be&nbsp;an&nbsp;iterable&nbsp;like&nbsp;[y,&nbsp;x]&nbsp;or&nbsp;an&nbsp;object&nbsp;with&nbsp;x&nbsp;and&nbsp;y&nbsp;methods.</tt></dd></dl>
-
-<dl><dt><a name="Console-__nonzero__"><strong>__nonzero__</strong></a>(self)</dt><dd><tt>Always&nbsp;True</tt></dd></dl>
-
-<dl><dt><a name="Console-__str__"><strong>__str__</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="Console-click"><strong>click</strong></a>(self, event)</dt><dd><tt>Called&nbsp;when&nbsp;a&nbsp;mouse&nbsp;key&nbsp;is&nbsp;pressed&nbsp;and&nbsp;self.<strong>focused</strong>&nbsp;is&nbsp;True.<br>
-Override&nbsp;this!</tt></dd></dl>
-
-<dl><dt><a name="Console-contains_point"><strong>contains_point</strong></a>(self, y, x)</dt><dd><tt>Test&nbsp;whether&nbsp;the&nbsp;point&nbsp;(with&nbsp;absolute&nbsp;coordinates)&nbsp;lies<br>
-within&nbsp;the&nbsp;boundaries&nbsp;of&nbsp;this&nbsp;object.</tt></dd></dl>
-
-<dl><dt><a name="Console-poke"><strong>poke</strong></a>(self)</dt><dd><tt>Called&nbsp;before&nbsp;drawing,&nbsp;even&nbsp;if&nbsp;invisible</tt></dd></dl>
-
-<dl><dt><a name="Console-resize"><strong>resize</strong></a>(self, y, x, hei<font color="#909090">=None</font>, wid<font color="#909090">=None</font>)</dt><dd><tt>Resize&nbsp;the&nbsp;widget</tt></dd></dl>
-
-<hr>
-Data and other attributes inherited from <a href="ranger.shared.html#EnvironmentAware">ranger.shared.EnvironmentAware</a>:<br>
-<dl><dt><strong>env</strong> = None</dl>
-
-<hr>
-Data and other attributes inherited from <a href="ranger.shared.html#FileManagerAware">ranger.shared.FileManagerAware</a>:<br>
-<dl><dt><strong>fm</strong> = None</dl>
-
-<hr>
-Data descriptors inherited from <a href="ranger.shared.html#Awareness">ranger.shared.Awareness</a>:<br>
-<dl><dt><strong>__dict__</strong></dt>
-<dd><tt>dictionary&nbsp;for&nbsp;instance&nbsp;variables&nbsp;(if&nbsp;defined)</tt></dd>
-</dl>
-<dl><dt><strong>__weakref__</strong></dt>
-<dd><tt>list&nbsp;of&nbsp;weak&nbsp;references&nbsp;to&nbsp;the&nbsp;object&nbsp;(if&nbsp;defined)</tt></dd>
-</dl>
-<hr>
-Methods inherited from <a href="ranger.gui.curses_shortcuts.html#CursesShortcuts">ranger.gui.curses_shortcuts.CursesShortcuts</a>:<br>
-<dl><dt><a name="Console-addnstr"><strong>addnstr</strong></a>(self, *args)</dt></dl>
-
-<dl><dt><a name="Console-addstr"><strong>addstr</strong></a>(self, *args)</dt></dl>
-
-<dl><dt><a name="Console-color"><strong>color</strong></a>(self, *keys)</dt><dd><tt>Change&nbsp;the&nbsp;colors&nbsp;from&nbsp;now&nbsp;on.</tt></dd></dl>
-
-<dl><dt><a name="Console-color_at"><strong>color_at</strong></a>(self, y, x, wid, *keys)</dt><dd><tt>Change&nbsp;the&nbsp;colors&nbsp;at&nbsp;the&nbsp;specified&nbsp;position</tt></dd></dl>
-
-<dl><dt><a name="Console-color_reset"><strong>color_reset</strong></a>(self)</dt><dd><tt>Change&nbsp;the&nbsp;colors&nbsp;to&nbsp;the&nbsp;default&nbsp;colors</tt></dd></dl>
-
-<hr>
-Data and other attributes inherited from <a href="ranger.shared.settings.html#SettingsAware">ranger.shared.settings.SettingsAware</a>:<br>
-<dl><dt><strong>settings</strong> = {}</dl>
-
-</td></tr></table> <p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ffc8d8">
-<td colspan=3 valign=bottom>&nbsp;<br>
-<font color="#000000" face="helvetica, arial"><a name="ConsoleWithTab">class <strong>ConsoleWithTab</strong></a>(<a href="ranger.gui.widgets.console.html#Console">Console</a>)</font></td></tr>
-    
-<tr><td bgcolor="#ffc8d8"><tt>&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
-<td width="100%"><dl><dt>Method resolution order:</dt>
-<dd><a href="ranger.gui.widgets.console.html#ConsoleWithTab">ConsoleWithTab</a></dd>
-<dd><a href="ranger.gui.widgets.console.html#Console">Console</a></dd>
-<dd><a href="ranger.gui.widgets.html#Widget">ranger.gui.widgets.Widget</a></dd>
-<dd><a href="ranger.gui.displayable.html#Displayable">ranger.gui.displayable.Displayable</a></dd>
-<dd><a href="ranger.shared.html#EnvironmentAware">ranger.shared.EnvironmentAware</a></dd>
-<dd><a href="ranger.shared.html#FileManagerAware">ranger.shared.FileManagerAware</a></dd>
-<dd><a href="ranger.shared.html#Awareness">ranger.shared.Awareness</a></dd>
-<dd><a href="ranger.gui.curses_shortcuts.html#CursesShortcuts">ranger.gui.curses_shortcuts.CursesShortcuts</a></dd>
-<dd><a href="ranger.shared.settings.html#SettingsAware">ranger.shared.settings.SettingsAware</a></dd>
-<dd><a href="__builtin__.html#object">__builtin__.object</a></dd>
-</dl>
-<hr>
-Methods defined here:<br>
-<dl><dt><a name="ConsoleWithTab-tab"><strong>tab</strong></a>(self, n<font color="#909090">=1</font>)</dt></dl>
-
-<hr>
-Methods inherited from <a href="ranger.gui.widgets.console.html#Console">Console</a>:<br>
-<dl><dt><a name="ConsoleWithTab-__init__"><strong>__init__</strong></a>(self, win)</dt></dl>
-
-<dl><dt><a name="ConsoleWithTab-add_to_history"><strong>add_to_history</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="ConsoleWithTab-clear"><strong>clear</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="ConsoleWithTab-close"><strong>close</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="ConsoleWithTab-delete"><strong>delete</strong></a>(self, mod)</dt></dl>
-
-<dl><dt><a name="ConsoleWithTab-delete_rest"><strong>delete_rest</strong></a>(self, direction)</dt></dl>
-
-<dl><dt><a name="ConsoleWithTab-delete_word"><strong>delete_word</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="ConsoleWithTab-destroy"><strong>destroy</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="ConsoleWithTab-draw"><strong>draw</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="ConsoleWithTab-execute"><strong>execute</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="ConsoleWithTab-finalize"><strong>finalize</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="ConsoleWithTab-history_move"><strong>history_move</strong></a>(self, n)</dt></dl>
-
-<dl><dt><a name="ConsoleWithTab-init"><strong>init</strong></a>(self)</dt><dd><tt>override&nbsp;this.&nbsp;Called&nbsp;directly&nbsp;after&nbsp;class&nbsp;change</tt></dd></dl>
-
-<dl><dt><a name="ConsoleWithTab-move"><strong>move</strong></a>(self, **keywords)</dt></dl>
-
-<dl><dt><a name="ConsoleWithTab-on_line_change"><strong>on_line_change</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="ConsoleWithTab-open"><strong>open</strong></a>(self, mode, string<font color="#909090">=''</font>, prompt<font color="#909090">=None</font>)</dt></dl>
-
-<dl><dt><a name="ConsoleWithTab-paste"><strong>paste</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="ConsoleWithTab-press"><strong>press</strong></a>(self, key)</dt></dl>
-
-<dl><dt><a name="ConsoleWithTab-type_key"><strong>type_key</strong></a>(self, key)</dt></dl>
-
-<hr>
-Data and other attributes inherited from <a href="ranger.gui.widgets.console.html#Console">Console</a>:<br>
-<dl><dt><strong>allow_close</strong> = False</dl>
-
-<dl><dt><strong>copy</strong> = ''</dl>
-
-<dl><dt><strong>histories</strong> = None</dl>
-
-<dl><dt><strong>history</strong> = None</dl>
-
-<dl><dt><strong>historypaths</strong> = []</dl>
-
-<dl><dt><strong>last_cursor_mode</strong> = None</dl>
-
-<dl><dt><strong>mode</strong> = None</dl>
-
-<dl><dt><strong>original_line</strong> = None</dl>
-
-<dl><dt><strong>override</strong> = None</dl>
-
-<dl><dt><strong>prompt</strong> = ':'</dl>
-
-<dl><dt><strong>tab_deque</strong> = None</dl>
-
-<dl><dt><strong>visible</strong> = False</dl>
-
-<hr>
-Methods inherited from <a href="ranger.gui.displayable.html#Displayable">ranger.gui.displayable.Displayable</a>:<br>
-<dl><dt><a name="ConsoleWithTab-__bool__"><strong>__bool__</strong></a> = __nonzero__(self)</dt><dd><tt>Always&nbsp;True</tt></dd></dl>
-
-<dl><dt><a name="ConsoleWithTab-__contains__"><strong>__contains__</strong></a>(self, item)</dt><dd><tt>Is&nbsp;item&nbsp;inside&nbsp;the&nbsp;boundaries?<br>
-item&nbsp;can&nbsp;be&nbsp;an&nbsp;iterable&nbsp;like&nbsp;[y,&nbsp;x]&nbsp;or&nbsp;an&nbsp;object&nbsp;with&nbsp;x&nbsp;and&nbsp;y&nbsp;methods.</tt></dd></dl>
-
-<dl><dt><a name="ConsoleWithTab-__nonzero__"><strong>__nonzero__</strong></a>(self)</dt><dd><tt>Always&nbsp;True</tt></dd></dl>
-
-<dl><dt><a name="ConsoleWithTab-__str__"><strong>__str__</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="ConsoleWithTab-click"><strong>click</strong></a>(self, event)</dt><dd><tt>Called&nbsp;when&nbsp;a&nbsp;mouse&nbsp;key&nbsp;is&nbsp;pressed&nbsp;and&nbsp;self.<strong>focused</strong>&nbsp;is&nbsp;True.<br>
-Override&nbsp;this!</tt></dd></dl>
-
-<dl><dt><a name="ConsoleWithTab-contains_point"><strong>contains_point</strong></a>(self, y, x)</dt><dd><tt>Test&nbsp;whether&nbsp;the&nbsp;point&nbsp;(with&nbsp;absolute&nbsp;coordinates)&nbsp;lies<br>
-within&nbsp;the&nbsp;boundaries&nbsp;of&nbsp;this&nbsp;object.</tt></dd></dl>
-
-<dl><dt><a name="ConsoleWithTab-poke"><strong>poke</strong></a>(self)</dt><dd><tt>Called&nbsp;before&nbsp;drawing,&nbsp;even&nbsp;if&nbsp;invisible</tt></dd></dl>
-
-<dl><dt><a name="ConsoleWithTab-resize"><strong>resize</strong></a>(self, y, x, hei<font color="#909090">=None</font>, wid<font color="#909090">=None</font>)</dt><dd><tt>Resize&nbsp;the&nbsp;widget</tt></dd></dl>
-
-<hr>
-Data and other attributes inherited from <a href="ranger.shared.html#EnvironmentAware">ranger.shared.EnvironmentAware</a>:<br>
-<dl><dt><strong>env</strong> = None</dl>
-
-<hr>
-Data and other attributes inherited from <a href="ranger.shared.html#FileManagerAware">ranger.shared.FileManagerAware</a>:<br>
-<dl><dt><strong>fm</strong> = None</dl>
-
-<hr>
-Data descriptors inherited from <a href="ranger.shared.html#Awareness">ranger.shared.Awareness</a>:<br>
-<dl><dt><strong>__dict__</strong></dt>
-<dd><tt>dictionary&nbsp;for&nbsp;instance&nbsp;variables&nbsp;(if&nbsp;defined)</tt></dd>
-</dl>
-<dl><dt><strong>__weakref__</strong></dt>
-<dd><tt>list&nbsp;of&nbsp;weak&nbsp;references&nbsp;to&nbsp;the&nbsp;object&nbsp;(if&nbsp;defined)</tt></dd>
-</dl>
-<hr>
-Methods inherited from <a href="ranger.gui.curses_shortcuts.html#CursesShortcuts">ranger.gui.curses_shortcuts.CursesShortcuts</a>:<br>
-<dl><dt><a name="ConsoleWithTab-addnstr"><strong>addnstr</strong></a>(self, *args)</dt></dl>
-
-<dl><dt><a name="ConsoleWithTab-addstr"><strong>addstr</strong></a>(self, *args)</dt></dl>
-
-<dl><dt><a name="ConsoleWithTab-color"><strong>color</strong></a>(self, *keys)</dt><dd><tt>Change&nbsp;the&nbsp;colors&nbsp;from&nbsp;now&nbsp;on.</tt></dd></dl>
-
-<dl><dt><a name="ConsoleWithTab-color_at"><strong>color_at</strong></a>(self, y, x, wid, *keys)</dt><dd><tt>Change&nbsp;the&nbsp;colors&nbsp;at&nbsp;the&nbsp;specified&nbsp;position</tt></dd></dl>
-
-<dl><dt><a name="ConsoleWithTab-color_reset"><strong>color_reset</strong></a>(self)</dt><dd><tt>Change&nbsp;the&nbsp;colors&nbsp;to&nbsp;the&nbsp;default&nbsp;colors</tt></dd></dl>
-
-<hr>
-Data and other attributes inherited from <a href="ranger.shared.settings.html#SettingsAware">ranger.shared.settings.SettingsAware</a>:<br>
-<dl><dt><strong>settings</strong> = {}</dl>
-
-</td></tr></table> <p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ffc8d8">
-<td colspan=3 valign=bottom>&nbsp;<br>
-<font color="#000000" face="helvetica, arial"><a name="OpenConsole">class <strong>OpenConsole</strong></a>(<a href="ranger.gui.widgets.console.html#ConsoleWithTab">ConsoleWithTab</a>)</font></td></tr>
-    
-<tr bgcolor="#ffc8d8"><td rowspan=2><tt>&nbsp;&nbsp;&nbsp;</tt></td>
-<td colspan=2><tt>The&nbsp;Open&nbsp;<a href="#Console">Console</a>&nbsp;allows&nbsp;you&nbsp;to&nbsp;execute&nbsp;shell&nbsp;commands:<br>
-!vim&nbsp;*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;will&nbsp;run&nbsp;vim&nbsp;and&nbsp;open&nbsp;all&nbsp;files&nbsp;in&nbsp;the&nbsp;directory.<br>
-&nbsp;<br>
-%f&nbsp;will&nbsp;be&nbsp;replaced&nbsp;with&nbsp;the&nbsp;basename&nbsp;of&nbsp;the&nbsp;highlighted&nbsp;file<br>
-%s&nbsp;will&nbsp;be&nbsp;selected&nbsp;with&nbsp;all&nbsp;files&nbsp;in&nbsp;the&nbsp;selection<br>
-&nbsp;<br>
-There&nbsp;is&nbsp;a&nbsp;special&nbsp;syntax&nbsp;for&nbsp;more&nbsp;control:<br>
-&nbsp;<br>
-!d!&nbsp;mplayer&nbsp;&nbsp;&nbsp;&nbsp;will&nbsp;run&nbsp;mplayer&nbsp;with&nbsp;flags&nbsp;(d&nbsp;means&nbsp;detached)<br>
-!@&nbsp;mplayer&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;will&nbsp;open&nbsp;the&nbsp;selected&nbsp;files&nbsp;with&nbsp;mplayer<br>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(equivalent&nbsp;to&nbsp;!mplayer&nbsp;%s)<br>
-&nbsp;<br>
-Those&nbsp;two&nbsp;can&nbsp;be&nbsp;combinated:<br>
-&nbsp;<br>
-!d!@mplayer&nbsp;&nbsp;&nbsp;&nbsp;will&nbsp;open&nbsp;the&nbsp;selection&nbsp;with&nbsp;a&nbsp;detached&nbsp;mplayer<br>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(again,&nbsp;this&nbsp;is&nbsp;equivalent&nbsp;to&nbsp;!d!mplayer&nbsp;%s)<br>
-&nbsp;<br>
-For&nbsp;a&nbsp;list&nbsp;of&nbsp;other&nbsp;flags&nbsp;than&nbsp;"d",&nbsp;check&nbsp;chapter&nbsp;2.5&nbsp;of&nbsp;the&nbsp;documentation<br>&nbsp;</tt></td></tr>
-<tr><td>&nbsp;</td>
-<td width="100%"><dl><dt>Method resolution order:</dt>
-<dd><a href="ranger.gui.widgets.console.html#OpenConsole">OpenConsole</a></dd>
-<dd><a href="ranger.gui.widgets.console.html#ConsoleWithTab">ConsoleWithTab</a></dd>
-<dd><a href="ranger.gui.widgets.console.html#Console">Console</a></dd>
-<dd><a href="ranger.gui.widgets.html#Widget">ranger.gui.widgets.Widget</a></dd>
-<dd><a href="ranger.gui.displayable.html#Displayable">ranger.gui.displayable.Displayable</a></dd>
-<dd><a href="ranger.shared.html#EnvironmentAware">ranger.shared.EnvironmentAware</a></dd>
-<dd><a href="ranger.shared.html#FileManagerAware">ranger.shared.FileManagerAware</a></dd>
-<dd><a href="ranger.shared.html#Awareness">ranger.shared.Awareness</a></dd>
-<dd><a href="ranger.gui.curses_shortcuts.html#CursesShortcuts">ranger.gui.curses_shortcuts.CursesShortcuts</a></dd>
-<dd><a href="ranger.shared.settings.html#SettingsAware">ranger.shared.settings.SettingsAware</a></dd>
-<dd><a href="__builtin__.html#object">__builtin__.object</a></dd>
-</dl>
-<hr>
-Methods defined here:<br>
-<dl><dt><a name="OpenConsole-execute"><strong>execute</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="OpenConsole-init"><strong>init</strong></a>(self)</dt></dl>
-
-<hr>
-Data and other attributes defined here:<br>
-<dl><dt><strong>prompt</strong> = '!'</dl>
-
-<hr>
-Methods inherited from <a href="ranger.gui.widgets.console.html#ConsoleWithTab">ConsoleWithTab</a>:<br>
-<dl><dt><a name="OpenConsole-tab"><strong>tab</strong></a>(self, n<font color="#909090">=1</font>)</dt></dl>
-
-<hr>
-Methods inherited from <a href="ranger.gui.widgets.console.html#Console">Console</a>:<br>
-<dl><dt><a name="OpenConsole-__init__"><strong>__init__</strong></a>(self, win)</dt></dl>
-
-<dl><dt><a name="OpenConsole-add_to_history"><strong>add_to_history</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="OpenConsole-clear"><strong>clear</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="OpenConsole-close"><strong>close</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="OpenConsole-delete"><strong>delete</strong></a>(self, mod)</dt></dl>
-
-<dl><dt><a name="OpenConsole-delete_rest"><strong>delete_rest</strong></a>(self, direction)</dt></dl>
-
-<dl><dt><a name="OpenConsole-delete_word"><strong>delete_word</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="OpenConsole-destroy"><strong>destroy</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="OpenConsole-draw"><strong>draw</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="OpenConsole-finalize"><strong>finalize</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="OpenConsole-history_move"><strong>history_move</strong></a>(self, n)</dt></dl>
-
-<dl><dt><a name="OpenConsole-move"><strong>move</strong></a>(self, **keywords)</dt></dl>
-
-<dl><dt><a name="OpenConsole-on_line_change"><strong>on_line_change</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="OpenConsole-open"><strong>open</strong></a>(self, mode, string<font color="#909090">=''</font>, prompt<font color="#909090">=None</font>)</dt></dl>
-
-<dl><dt><a name="OpenConsole-paste"><strong>paste</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="OpenConsole-press"><strong>press</strong></a>(self, key)</dt></dl>
-
-<dl><dt><a name="OpenConsole-type_key"><strong>type_key</strong></a>(self, key)</dt></dl>
-
-<hr>
-Data and other attributes inherited from <a href="ranger.gui.widgets.console.html#Console">Console</a>:<br>
-<dl><dt><strong>allow_close</strong> = False</dl>
-
-<dl><dt><strong>copy</strong> = ''</dl>
-
-<dl><dt><strong>histories</strong> = None</dl>
-
-<dl><dt><strong>history</strong> = None</dl>
-
-<dl><dt><strong>historypaths</strong> = []</dl>
-
-<dl><dt><strong>last_cursor_mode</strong> = None</dl>
-
-<dl><dt><strong>mode</strong> = None</dl>
-
-<dl><dt><strong>original_line</strong> = None</dl>
-
-<dl><dt><strong>override</strong> = None</dl>
-
-<dl><dt><strong>tab_deque</strong> = None</dl>
-
-<dl><dt><strong>visible</strong> = False</dl>
-
-<hr>
-Methods inherited from <a href="ranger.gui.displayable.html#Displayable">ranger.gui.displayable.Displayable</a>:<br>
-<dl><dt><a name="OpenConsole-__bool__"><strong>__bool__</strong></a> = __nonzero__(self)</dt><dd><tt>Always&nbsp;True</tt></dd></dl>
-
-<dl><dt><a name="OpenConsole-__contains__"><strong>__contains__</strong></a>(self, item)</dt><dd><tt>Is&nbsp;item&nbsp;inside&nbsp;the&nbsp;boundaries?<br>
-item&nbsp;can&nbsp;be&nbsp;an&nbsp;iterable&nbsp;like&nbsp;[y,&nbsp;x]&nbsp;or&nbsp;an&nbsp;object&nbsp;with&nbsp;x&nbsp;and&nbsp;y&nbsp;methods.</tt></dd></dl>
-
-<dl><dt><a name="OpenConsole-__nonzero__"><strong>__nonzero__</strong></a>(self)</dt><dd><tt>Always&nbsp;True</tt></dd></dl>
-
-<dl><dt><a name="OpenConsole-__str__"><strong>__str__</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="OpenConsole-click"><strong>click</strong></a>(self, event)</dt><dd><tt>Called&nbsp;when&nbsp;a&nbsp;mouse&nbsp;key&nbsp;is&nbsp;pressed&nbsp;and&nbsp;self.<strong>focused</strong>&nbsp;is&nbsp;True.<br>
-Override&nbsp;this!</tt></dd></dl>
-
-<dl><dt><a name="OpenConsole-contains_point"><strong>contains_point</strong></a>(self, y, x)</dt><dd><tt>Test&nbsp;whether&nbsp;the&nbsp;point&nbsp;(with&nbsp;absolute&nbsp;coordinates)&nbsp;lies<br>
-within&nbsp;the&nbsp;boundaries&nbsp;of&nbsp;this&nbsp;object.</tt></dd></dl>
-
-<dl><dt><a name="OpenConsole-poke"><strong>poke</strong></a>(self)</dt><dd><tt>Called&nbsp;before&nbsp;drawing,&nbsp;even&nbsp;if&nbsp;invisible</tt></dd></dl>
-
-<dl><dt><a name="OpenConsole-resize"><strong>resize</strong></a>(self, y, x, hei<font color="#909090">=None</font>, wid<font color="#909090">=None</font>)</dt><dd><tt>Resize&nbsp;the&nbsp;widget</tt></dd></dl>
-
-<hr>
-Data and other attributes inherited from <a href="ranger.shared.html#EnvironmentAware">ranger.shared.EnvironmentAware</a>:<br>
-<dl><dt><strong>env</strong> = None</dl>
-
-<hr>
-Data and other attributes inherited from <a href="ranger.shared.html#FileManagerAware">ranger.shared.FileManagerAware</a>:<br>
-<dl><dt><strong>fm</strong> = None</dl>
-
-<hr>
-Data descriptors inherited from <a href="ranger.shared.html#Awareness">ranger.shared.Awareness</a>:<br>
-<dl><dt><strong>__dict__</strong></dt>
-<dd><tt>dictionary&nbsp;for&nbsp;instance&nbsp;variables&nbsp;(if&nbsp;defined)</tt></dd>
-</dl>
-<dl><dt><strong>__weakref__</strong></dt>
-<dd><tt>list&nbsp;of&nbsp;weak&nbsp;references&nbsp;to&nbsp;the&nbsp;object&nbsp;(if&nbsp;defined)</tt></dd>
-</dl>
-<hr>
-Methods inherited from <a href="ranger.gui.curses_shortcuts.html#CursesShortcuts">ranger.gui.curses_shortcuts.CursesShortcuts</a>:<br>
-<dl><dt><a name="OpenConsole-addnstr"><strong>addnstr</strong></a>(self, *args)</dt></dl>
-
-<dl><dt><a name="OpenConsole-addstr"><strong>addstr</strong></a>(self, *args)</dt></dl>
-
-<dl><dt><a name="OpenConsole-color"><strong>color</strong></a>(self, *keys)</dt><dd><tt>Change&nbsp;the&nbsp;colors&nbsp;from&nbsp;now&nbsp;on.</tt></dd></dl>
-
-<dl><dt><a name="OpenConsole-color_at"><strong>color_at</strong></a>(self, y, x, wid, *keys)</dt><dd><tt>Change&nbsp;the&nbsp;colors&nbsp;at&nbsp;the&nbsp;specified&nbsp;position</tt></dd></dl>
-
-<dl><dt><a name="OpenConsole-color_reset"><strong>color_reset</strong></a>(self)</dt><dd><tt>Change&nbsp;the&nbsp;colors&nbsp;to&nbsp;the&nbsp;default&nbsp;colors</tt></dd></dl>
-
-<hr>
-Data and other attributes inherited from <a href="ranger.shared.settings.html#SettingsAware">ranger.shared.settings.SettingsAware</a>:<br>
-<dl><dt><strong>settings</strong> = {}</dl>
-
-</td></tr></table> <p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ffc8d8">
-<td colspan=3 valign=bottom>&nbsp;<br>
-<font color="#000000" face="helvetica, arial"><a name="QuickCommandConsole">class <strong>QuickCommandConsole</strong></a>(<a href="ranger.gui.widgets.console.html#CommandConsole">CommandConsole</a>)</font></td></tr>
-    
-<tr bgcolor="#ffc8d8"><td rowspan=2><tt>&nbsp;&nbsp;&nbsp;</tt></td>
-<td colspan=2><tt>The&nbsp;<a href="#QuickCommandConsole">QuickCommandConsole</a>&nbsp;is&nbsp;essentially&nbsp;the&nbsp;same&nbsp;as&nbsp;the<br>
-<a href="#CommandConsole">CommandConsole</a>,&nbsp;and&nbsp;includes&nbsp;one&nbsp;additional&nbsp;feature:<br>
-After&nbsp;each&nbsp;letter&nbsp;you&nbsp;type,&nbsp;it&nbsp;checks&nbsp;whether&nbsp;the&nbsp;command&nbsp;as&nbsp;it<br>
-stands&nbsp;there&nbsp;could&nbsp;be&nbsp;executed&nbsp;in&nbsp;a&nbsp;meaningful&nbsp;way,&nbsp;and&nbsp;if&nbsp;it&nbsp;does,<br>
-run&nbsp;it&nbsp;right&nbsp;away.<br>
-&nbsp;<br>
-Example:<br>
-&gt;cd&nbsp;..<br>
-As&nbsp;you&nbsp;type&nbsp;the&nbsp;last&nbsp;dot,&nbsp;The&nbsp;console&nbsp;will&nbsp;recognize&nbsp;what&nbsp;you&nbsp;mean<br>
-and&nbsp;enter&nbsp;the&nbsp;parent&nbsp;directory&nbsp;saving&nbsp;you&nbsp;the&nbsp;time&nbsp;of&nbsp;pressing&nbsp;enter.<br>&nbsp;</tt></td></tr>
-<tr><td>&nbsp;</td>
-<td width="100%"><dl><dt>Method resolution order:</dt>
-<dd><a href="ranger.gui.widgets.console.html#QuickCommandConsole">QuickCommandConsole</a></dd>
-<dd><a href="ranger.gui.widgets.console.html#CommandConsole">CommandConsole</a></dd>
-<dd><a href="ranger.gui.widgets.console.html#ConsoleWithTab">ConsoleWithTab</a></dd>
-<dd><a href="ranger.gui.widgets.console.html#Console">Console</a></dd>
-<dd><a href="ranger.gui.widgets.html#Widget">ranger.gui.widgets.Widget</a></dd>
-<dd><a href="ranger.gui.displayable.html#Displayable">ranger.gui.displayable.Displayable</a></dd>
-<dd><a href="ranger.shared.html#EnvironmentAware">ranger.shared.EnvironmentAware</a></dd>
-<dd><a href="ranger.shared.html#FileManagerAware">ranger.shared.FileManagerAware</a></dd>
-<dd><a href="ranger.shared.html#Awareness">ranger.shared.Awareness</a></dd>
-<dd><a href="ranger.gui.curses_shortcuts.html#CursesShortcuts">ranger.gui.curses_shortcuts.CursesShortcuts</a></dd>
-<dd><a href="ranger.shared.settings.html#SettingsAware">ranger.shared.settings.SettingsAware</a></dd>
-<dd><a href="__builtin__.html#object">__builtin__.object</a></dd>
-</dl>
-<hr>
-Methods defined here:<br>
-<dl><dt><a name="QuickCommandConsole-on_line_change"><strong>on_line_change</strong></a>(self)</dt></dl>
-
-<hr>
-Data and other attributes defined here:<br>
-<dl><dt><strong>prompt</strong> = '&gt;'</dl>
-
-<hr>
-Methods inherited from <a href="ranger.gui.widgets.console.html#CommandConsole">CommandConsole</a>:<br>
-<dl><dt><a name="QuickCommandConsole-execute"><strong>execute</strong></a>(self, cmd<font color="#909090">=None</font>)</dt></dl>
-
-<hr>
-Methods inherited from <a href="ranger.gui.widgets.console.html#ConsoleWithTab">ConsoleWithTab</a>:<br>
-<dl><dt><a name="QuickCommandConsole-tab"><strong>tab</strong></a>(self, n<font color="#909090">=1</font>)</dt></dl>
-
-<hr>
-Methods inherited from <a href="ranger.gui.widgets.console.html#Console">Console</a>:<br>
-<dl><dt><a name="QuickCommandConsole-__init__"><strong>__init__</strong></a>(self, win)</dt></dl>
-
-<dl><dt><a name="QuickCommandConsole-add_to_history"><strong>add_to_history</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="QuickCommandConsole-clear"><strong>clear</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="QuickCommandConsole-close"><strong>close</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="QuickCommandConsole-delete"><strong>delete</strong></a>(self, mod)</dt></dl>
-
-<dl><dt><a name="QuickCommandConsole-delete_rest"><strong>delete_rest</strong></a>(self, direction)</dt></dl>
-
-<dl><dt><a name="QuickCommandConsole-delete_word"><strong>delete_word</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="QuickCommandConsole-destroy"><strong>destroy</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="QuickCommandConsole-draw"><strong>draw</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="QuickCommandConsole-finalize"><strong>finalize</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="QuickCommandConsole-history_move"><strong>history_move</strong></a>(self, n)</dt></dl>
-
-<dl><dt><a name="QuickCommandConsole-init"><strong>init</strong></a>(self)</dt><dd><tt>override&nbsp;this.&nbsp;Called&nbsp;directly&nbsp;after&nbsp;class&nbsp;change</tt></dd></dl>
-
-<dl><dt><a name="QuickCommandConsole-move"><strong>move</strong></a>(self, **keywords)</dt></dl>
-
-<dl><dt><a name="QuickCommandConsole-open"><strong>open</strong></a>(self, mode, string<font color="#909090">=''</font>, prompt<font color="#909090">=None</font>)</dt></dl>
-
-<dl><dt><a name="QuickCommandConsole-paste"><strong>paste</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="QuickCommandConsole-press"><strong>press</strong></a>(self, key)</dt></dl>
-
-<dl><dt><a name="QuickCommandConsole-type_key"><strong>type_key</strong></a>(self, key)</dt></dl>
-
-<hr>
-Data and other attributes inherited from <a href="ranger.gui.widgets.console.html#Console">Console</a>:<br>
-<dl><dt><strong>allow_close</strong> = False</dl>
-
-<dl><dt><strong>copy</strong> = ''</dl>
-
-<dl><dt><strong>histories</strong> = None</dl>
-
-<dl><dt><strong>history</strong> = None</dl>
-
-<dl><dt><strong>historypaths</strong> = []</dl>
-
-<dl><dt><strong>last_cursor_mode</strong> = None</dl>
-
-<dl><dt><strong>mode</strong> = None</dl>
-
-<dl><dt><strong>original_line</strong> = None</dl>
-
-<dl><dt><strong>override</strong> = None</dl>
-
-<dl><dt><strong>tab_deque</strong> = None</dl>
-
-<dl><dt><strong>visible</strong> = False</dl>
-
-<hr>
-Methods inherited from <a href="ranger.gui.displayable.html#Displayable">ranger.gui.displayable.Displayable</a>:<br>
-<dl><dt><a name="QuickCommandConsole-__bool__"><strong>__bool__</strong></a> = __nonzero__(self)</dt><dd><tt>Always&nbsp;True</tt></dd></dl>
-
-<dl><dt><a name="QuickCommandConsole-__contains__"><strong>__contains__</strong></a>(self, item)</dt><dd><tt>Is&nbsp;item&nbsp;inside&nbsp;the&nbsp;boundaries?<br>
-item&nbsp;can&nbsp;be&nbsp;an&nbsp;iterable&nbsp;like&nbsp;[y,&nbsp;x]&nbsp;or&nbsp;an&nbsp;object&nbsp;with&nbsp;x&nbsp;and&nbsp;y&nbsp;methods.</tt></dd></dl>
-
-<dl><dt><a name="QuickCommandConsole-__nonzero__"><strong>__nonzero__</strong></a>(self)</dt><dd><tt>Always&nbsp;True</tt></dd></dl>
-
-<dl><dt><a name="QuickCommandConsole-__str__"><strong>__str__</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="QuickCommandConsole-click"><strong>click</strong></a>(self, event)</dt><dd><tt>Called&nbsp;when&nbsp;a&nbsp;mouse&nbsp;key&nbsp;is&nbsp;pressed&nbsp;and&nbsp;self.<strong>focused</strong>&nbsp;is&nbsp;True.<br>
-Override&nbsp;this!</tt></dd></dl>
-
-<dl><dt><a name="QuickCommandConsole-contains_point"><strong>contains_point</strong></a>(self, y, x)</dt><dd><tt>Test&nbsp;whether&nbsp;the&nbsp;point&nbsp;(with&nbsp;absolute&nbsp;coordinates)&nbsp;lies<br>
-within&nbsp;the&nbsp;boundaries&nbsp;of&nbsp;this&nbsp;object.</tt></dd></dl>
-
-<dl><dt><a name="QuickCommandConsole-poke"><strong>poke</strong></a>(self)</dt><dd><tt>Called&nbsp;before&nbsp;drawing,&nbsp;even&nbsp;if&nbsp;invisible</tt></dd></dl>
-
-<dl><dt><a name="QuickCommandConsole-resize"><strong>resize</strong></a>(self, y, x, hei<font color="#909090">=None</font>, wid<font color="#909090">=None</font>)</dt><dd><tt>Resize&nbsp;the&nbsp;widget</tt></dd></dl>
-
-<hr>
-Data and other attributes inherited from <a href="ranger.shared.html#EnvironmentAware">ranger.shared.EnvironmentAware</a>:<br>
-<dl><dt><strong>env</strong> = None</dl>
-
-<hr>
-Data and other attributes inherited from <a href="ranger.shared.html#FileManagerAware">ranger.shared.FileManagerAware</a>:<br>
-<dl><dt><strong>fm</strong> = None</dl>
-
-<hr>
-Data descriptors inherited from <a href="ranger.shared.html#Awareness">ranger.shared.Awareness</a>:<br>
-<dl><dt><strong>__dict__</strong></dt>
-<dd><tt>dictionary&nbsp;for&nbsp;instance&nbsp;variables&nbsp;(if&nbsp;defined)</tt></dd>
-</dl>
-<dl><dt><strong>__weakref__</strong></dt>
-<dd><tt>list&nbsp;of&nbsp;weak&nbsp;references&nbsp;to&nbsp;the&nbsp;object&nbsp;(if&nbsp;defined)</tt></dd>
-</dl>
-<hr>
-Methods inherited from <a href="ranger.gui.curses_shortcuts.html#CursesShortcuts">ranger.gui.curses_shortcuts.CursesShortcuts</a>:<br>
-<dl><dt><a name="QuickCommandConsole-addnstr"><strong>addnstr</strong></a>(self, *args)</dt></dl>
-
-<dl><dt><a name="QuickCommandConsole-addstr"><strong>addstr</strong></a>(self, *args)</dt></dl>
-
-<dl><dt><a name="QuickCommandConsole-color"><strong>color</strong></a>(self, *keys)</dt><dd><tt>Change&nbsp;the&nbsp;colors&nbsp;from&nbsp;now&nbsp;on.</tt></dd></dl>
-
-<dl><dt><a name="QuickCommandConsole-color_at"><strong>color_at</strong></a>(self, y, x, wid, *keys)</dt><dd><tt>Change&nbsp;the&nbsp;colors&nbsp;at&nbsp;the&nbsp;specified&nbsp;position</tt></dd></dl>
-
-<dl><dt><a name="QuickCommandConsole-color_reset"><strong>color_reset</strong></a>(self)</dt><dd><tt>Change&nbsp;the&nbsp;colors&nbsp;to&nbsp;the&nbsp;default&nbsp;colors</tt></dd></dl>
-
-<hr>
-Data and other attributes inherited from <a href="ranger.shared.settings.html#SettingsAware">ranger.shared.settings.SettingsAware</a>:<br>
-<dl><dt><strong>settings</strong> = {}</dl>
-
-</td></tr></table> <p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ffc8d8">
-<td colspan=3 valign=bottom>&nbsp;<br>
-<font color="#000000" face="helvetica, arial"><a name="QuickOpenConsole">class <strong>QuickOpenConsole</strong></a>(<a href="ranger.gui.widgets.console.html#ConsoleWithTab">ConsoleWithTab</a>)</font></td></tr>
-    
-<tr bgcolor="#ffc8d8"><td rowspan=2><tt>&nbsp;&nbsp;&nbsp;</tt></td>
-<td colspan=2><tt>The&nbsp;Quick&nbsp;Open&nbsp;<a href="#Console">Console</a>&nbsp;allows&nbsp;you&nbsp;to&nbsp;open&nbsp;files&nbsp;with&nbsp;predefined&nbsp;programs<br>
-and&nbsp;modes&nbsp;very&nbsp;quickly.&nbsp;&nbsp;By&nbsp;adding&nbsp;flags&nbsp;to&nbsp;the&nbsp;command,&nbsp;you&nbsp;can&nbsp;specify<br>
-precisely&nbsp;how&nbsp;the&nbsp;program&nbsp;is&nbsp;run,&nbsp;e.g.&nbsp;the&nbsp;d-flag&nbsp;will&nbsp;run&nbsp;it&nbsp;detached<br>
-from&nbsp;the&nbsp;file&nbsp;manager.<br>
-&nbsp;<br>
-For&nbsp;a&nbsp;list&nbsp;of&nbsp;other&nbsp;flags&nbsp;than&nbsp;"d",&nbsp;check&nbsp;chapter&nbsp;2.5&nbsp;of&nbsp;the&nbsp;documentation<br>
-&nbsp;<br>
-The&nbsp;syntax&nbsp;is&nbsp;"open&nbsp;with:&nbsp;&lt;application&gt;&nbsp;&lt;mode&gt;&nbsp;&lt;flags&gt;".<br>
-The&nbsp;parsing&nbsp;of&nbsp;the&nbsp;arguments&nbsp;is&nbsp;very&nbsp;flexible.&nbsp;&nbsp;You&nbsp;can&nbsp;leave&nbsp;out&nbsp;one&nbsp;or<br>
-more&nbsp;arguments&nbsp;(or&nbsp;even&nbsp;all&nbsp;of&nbsp;them)&nbsp;and&nbsp;it&nbsp;will&nbsp;fall&nbsp;back&nbsp;to&nbsp;default<br>
-values.&nbsp;&nbsp;You&nbsp;can&nbsp;switch&nbsp;the&nbsp;order&nbsp;as&nbsp;well.<br>
-There&nbsp;is&nbsp;just&nbsp;one&nbsp;rule:<br>
-&nbsp;<br>
-If&nbsp;you&nbsp;supply&nbsp;the&nbsp;&lt;application&gt;,&nbsp;it&nbsp;has&nbsp;to&nbsp;be&nbsp;the&nbsp;first&nbsp;argument.<br>
-&nbsp;<br>
-Examples:<br>
-&nbsp;<br>
-open&nbsp;with:&nbsp;mplayer&nbsp;D&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;open&nbsp;the&nbsp;selection&nbsp;in&nbsp;mplayer,&nbsp;but&nbsp;not&nbsp;detached<br>
-open&nbsp;with:&nbsp;1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;open&nbsp;it&nbsp;with&nbsp;the&nbsp;default&nbsp;handler&nbsp;in&nbsp;mode&nbsp;1<br>
-open&nbsp;with:&nbsp;d&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;open&nbsp;it&nbsp;detached&nbsp;with&nbsp;the&nbsp;default&nbsp;handler<br>
-open&nbsp;with:&nbsp;p&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;open&nbsp;it&nbsp;as&nbsp;usual,&nbsp;but&nbsp;pipe&nbsp;the&nbsp;output&nbsp;to&nbsp;"less"<br>
-open&nbsp;with:&nbsp;totem&nbsp;1&nbsp;Ds&nbsp;&nbsp;&nbsp;&nbsp;open&nbsp;in&nbsp;totem&nbsp;in&nbsp;mode&nbsp;1,&nbsp;will&nbsp;not&nbsp;detach&nbsp;the<br>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;process&nbsp;(flag&nbsp;D)&nbsp;but&nbsp;discard&nbsp;the&nbsp;output&nbsp;(flag&nbsp;s)<br>&nbsp;</tt></td></tr>
-<tr><td>&nbsp;</td>
-<td width="100%"><dl><dt>Method resolution order:</dt>
-<dd><a href="ranger.gui.widgets.console.html#QuickOpenConsole">QuickOpenConsole</a></dd>
-<dd><a href="ranger.gui.widgets.console.html#ConsoleWithTab">ConsoleWithTab</a></dd>
-<dd><a href="ranger.gui.widgets.console.html#Console">Console</a></dd>
-<dd><a href="ranger.gui.widgets.html#Widget">ranger.gui.widgets.Widget</a></dd>
-<dd><a href="ranger.gui.displayable.html#Displayable">ranger.gui.displayable.Displayable</a></dd>
-<dd><a href="ranger.shared.html#EnvironmentAware">ranger.shared.EnvironmentAware</a></dd>
-<dd><a href="ranger.shared.html#FileManagerAware">ranger.shared.FileManagerAware</a></dd>
-<dd><a href="ranger.shared.html#Awareness">ranger.shared.Awareness</a></dd>
-<dd><a href="ranger.gui.curses_shortcuts.html#CursesShortcuts">ranger.gui.curses_shortcuts.CursesShortcuts</a></dd>
-<dd><a href="ranger.shared.settings.html#SettingsAware">ranger.shared.settings.SettingsAware</a></dd>
-<dd><a href="__builtin__.html#object">__builtin__.object</a></dd>
-</dl>
-<hr>
-Methods defined here:<br>
-<dl><dt><a name="QuickOpenConsole-execute"><strong>execute</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="QuickOpenConsole-init"><strong>init</strong></a>(self)</dt></dl>
-
-<hr>
-Data and other attributes defined here:<br>
-<dl><dt><strong>prompt</strong> = 'open with: '</dl>
-
-<hr>
-Methods inherited from <a href="ranger.gui.widgets.console.html#ConsoleWithTab">ConsoleWithTab</a>:<br>
-<dl><dt><a name="QuickOpenConsole-tab"><strong>tab</strong></a>(self, n<font color="#909090">=1</font>)</dt></dl>
-
-<hr>
-Methods inherited from <a href="ranger.gui.widgets.console.html#Console">Console</a>:<br>
-<dl><dt><a name="QuickOpenConsole-__init__"><strong>__init__</strong></a>(self, win)</dt></dl>
-
-<dl><dt><a name="QuickOpenConsole-add_to_history"><strong>add_to_history</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="QuickOpenConsole-clear"><strong>clear</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="QuickOpenConsole-close"><strong>close</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="QuickOpenConsole-delete"><strong>delete</strong></a>(self, mod)</dt></dl>
-
-<dl><dt><a name="QuickOpenConsole-delete_rest"><strong>delete_rest</strong></a>(self, direction)</dt></dl>
-
-<dl><dt><a name="QuickOpenConsole-delete_word"><strong>delete_word</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="QuickOpenConsole-destroy"><strong>destroy</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="QuickOpenConsole-draw"><strong>draw</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="QuickOpenConsole-finalize"><strong>finalize</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="QuickOpenConsole-history_move"><strong>history_move</strong></a>(self, n)</dt></dl>
-
-<dl><dt><a name="QuickOpenConsole-move"><strong>move</strong></a>(self, **keywords)</dt></dl>
-
-<dl><dt><a name="QuickOpenConsole-on_line_change"><strong>on_line_change</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="QuickOpenConsole-open"><strong>open</strong></a>(self, mode, string<font color="#909090">=''</font>, prompt<font color="#909090">=None</font>)</dt></dl>
-
-<dl><dt><a name="QuickOpenConsole-paste"><strong>paste</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="QuickOpenConsole-press"><strong>press</strong></a>(self, key)</dt></dl>
-
-<dl><dt><a name="QuickOpenConsole-type_key"><strong>type_key</strong></a>(self, key)</dt></dl>
-
-<hr>
-Data and other attributes inherited from <a href="ranger.gui.widgets.console.html#Console">Console</a>:<br>
-<dl><dt><strong>allow_close</strong> = False</dl>
-
-<dl><dt><strong>copy</strong> = ''</dl>
-
-<dl><dt><strong>histories</strong> = None</dl>
-
-<dl><dt><strong>history</strong> = None</dl>
-
-<dl><dt><strong>historypaths</strong> = []</dl>
-
-<dl><dt><strong>last_cursor_mode</strong> = None</dl>
-
-<dl><dt><strong>mode</strong> = None</dl>
-
-<dl><dt><strong>original_line</strong> = None</dl>
-
-<dl><dt><strong>override</strong> = None</dl>
-
-<dl><dt><strong>tab_deque</strong> = None</dl>
-
-<dl><dt><strong>visible</strong> = False</dl>
-
-<hr>
-Methods inherited from <a href="ranger.gui.displayable.html#Displayable">ranger.gui.displayable.Displayable</a>:<br>
-<dl><dt><a name="QuickOpenConsole-__bool__"><strong>__bool__</strong></a> = __nonzero__(self)</dt><dd><tt>Always&nbsp;True</tt></dd></dl>
-
-<dl><dt><a name="QuickOpenConsole-__contains__"><strong>__contains__</strong></a>(self, item)</dt><dd><tt>Is&nbsp;item&nbsp;inside&nbsp;the&nbsp;boundaries?<br>
-item&nbsp;can&nbsp;be&nbsp;an&nbsp;iterable&nbsp;like&nbsp;[y,&nbsp;x]&nbsp;or&nbsp;an&nbsp;object&nbsp;with&nbsp;x&nbsp;and&nbsp;y&nbsp;methods.</tt></dd></dl>
-
-<dl><dt><a name="QuickOpenConsole-__nonzero__"><strong>__nonzero__</strong></a>(self)</dt><dd><tt>Always&nbsp;True</tt></dd></dl>
-
-<dl><dt><a name="QuickOpenConsole-__str__"><strong>__str__</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="QuickOpenConsole-click"><strong>click</strong></a>(self, event)</dt><dd><tt>Called&nbsp;when&nbsp;a&nbsp;mouse&nbsp;key&nbsp;is&nbsp;pressed&nbsp;and&nbsp;self.<strong>focused</strong>&nbsp;is&nbsp;True.<br>
-Override&nbsp;this!</tt></dd></dl>
-
-<dl><dt><a name="QuickOpenConsole-contains_point"><strong>contains_point</strong></a>(self, y, x)</dt><dd><tt>Test&nbsp;whether&nbsp;the&nbsp;point&nbsp;(with&nbsp;absolute&nbsp;coordinates)&nbsp;lies<br>
-within&nbsp;the&nbsp;boundaries&nbsp;of&nbsp;this&nbsp;object.</tt></dd></dl>
-
-<dl><dt><a name="QuickOpenConsole-poke"><strong>poke</strong></a>(self)</dt><dd><tt>Called&nbsp;before&nbsp;drawing,&nbsp;even&nbsp;if&nbsp;invisible</tt></dd></dl>
-
-<dl><dt><a name="QuickOpenConsole-resize"><strong>resize</strong></a>(self, y, x, hei<font color="#909090">=None</font>, wid<font color="#909090">=None</font>)</dt><dd><tt>Resize&nbsp;the&nbsp;widget</tt></dd></dl>
-
-<hr>
-Data and other attributes inherited from <a href="ranger.shared.html#EnvironmentAware">ranger.shared.EnvironmentAware</a>:<br>
-<dl><dt><strong>env</strong> = None</dl>
-
-<hr>
-Data and other attributes inherited from <a href="ranger.shared.html#FileManagerAware">ranger.shared.FileManagerAware</a>:<br>
-<dl><dt><strong>fm</strong> = None</dl>
-
-<hr>
-Data descriptors inherited from <a href="ranger.shared.html#Awareness">ranger.shared.Awareness</a>:<br>
-<dl><dt><strong>__dict__</strong></dt>
-<dd><tt>dictionary&nbsp;for&nbsp;instance&nbsp;variables&nbsp;(if&nbsp;defined)</tt></dd>
-</dl>
-<dl><dt><strong>__weakref__</strong></dt>
-<dd><tt>list&nbsp;of&nbsp;weak&nbsp;references&nbsp;to&nbsp;the&nbsp;object&nbsp;(if&nbsp;defined)</tt></dd>
-</dl>
-<hr>
-Methods inherited from <a href="ranger.gui.curses_shortcuts.html#CursesShortcuts">ranger.gui.curses_shortcuts.CursesShortcuts</a>:<br>
-<dl><dt><a name="QuickOpenConsole-addnstr"><strong>addnstr</strong></a>(self, *args)</dt></dl>
-
-<dl><dt><a name="QuickOpenConsole-addstr"><strong>addstr</strong></a>(self, *args)</dt></dl>
-
-<dl><dt><a name="QuickOpenConsole-color"><strong>color</strong></a>(self, *keys)</dt><dd><tt>Change&nbsp;the&nbsp;colors&nbsp;from&nbsp;now&nbsp;on.</tt></dd></dl>
-
-<dl><dt><a name="QuickOpenConsole-color_at"><strong>color_at</strong></a>(self, y, x, wid, *keys)</dt><dd><tt>Change&nbsp;the&nbsp;colors&nbsp;at&nbsp;the&nbsp;specified&nbsp;position</tt></dd></dl>
-
-<dl><dt><a name="QuickOpenConsole-color_reset"><strong>color_reset</strong></a>(self)</dt><dd><tt>Change&nbsp;the&nbsp;colors&nbsp;to&nbsp;the&nbsp;default&nbsp;colors</tt></dd></dl>
-
-<hr>
-Data and other attributes inherited from <a href="ranger.shared.settings.html#SettingsAware">ranger.shared.settings.SettingsAware</a>:<br>
-<dl><dt><strong>settings</strong> = {}</dl>
-
-</td></tr></table> <p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ffc8d8">
-<td colspan=3 valign=bottom>&nbsp;<br>
-<font color="#000000" face="helvetica, arial"><a name="SearchConsole">class <strong>SearchConsole</strong></a>(<a href="ranger.gui.widgets.console.html#Console">Console</a>)</font></td></tr>
-    
-<tr><td bgcolor="#ffc8d8"><tt>&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
-<td width="100%"><dl><dt>Method resolution order:</dt>
-<dd><a href="ranger.gui.widgets.console.html#SearchConsole">SearchConsole</a></dd>
-<dd><a href="ranger.gui.widgets.console.html#Console">Console</a></dd>
-<dd><a href="ranger.gui.widgets.html#Widget">ranger.gui.widgets.Widget</a></dd>
-<dd><a href="ranger.gui.displayable.html#Displayable">ranger.gui.displayable.Displayable</a></dd>
-<dd><a href="ranger.shared.html#EnvironmentAware">ranger.shared.EnvironmentAware</a></dd>
-<dd><a href="ranger.shared.html#FileManagerAware">ranger.shared.FileManagerAware</a></dd>
-<dd><a href="ranger.shared.html#Awareness">ranger.shared.Awareness</a></dd>
-<dd><a href="ranger.gui.curses_shortcuts.html#CursesShortcuts">ranger.gui.curses_shortcuts.CursesShortcuts</a></dd>
-<dd><a href="ranger.shared.settings.html#SettingsAware">ranger.shared.settings.SettingsAware</a></dd>
-<dd><a href="__builtin__.html#object">__builtin__.object</a></dd>
-</dl>
-<hr>
-Methods defined here:<br>
-<dl><dt><a name="SearchConsole-execute"><strong>execute</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="SearchConsole-init"><strong>init</strong></a>(self)</dt></dl>
-
-<hr>
-Data and other attributes defined here:<br>
-<dl><dt><strong>prompt</strong> = '/'</dl>
-
-<hr>
-Methods inherited from <a href="ranger.gui.widgets.console.html#Console">Console</a>:<br>
-<dl><dt><a name="SearchConsole-__init__"><strong>__init__</strong></a>(self, win)</dt></dl>
-
-<dl><dt><a name="SearchConsole-add_to_history"><strong>add_to_history</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="SearchConsole-clear"><strong>clear</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="SearchConsole-close"><strong>close</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="SearchConsole-delete"><strong>delete</strong></a>(self, mod)</dt></dl>
-
-<dl><dt><a name="SearchConsole-delete_rest"><strong>delete_rest</strong></a>(self, direction)</dt></dl>
-
-<dl><dt><a name="SearchConsole-delete_word"><strong>delete_word</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="SearchConsole-destroy"><strong>destroy</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="SearchConsole-draw"><strong>draw</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="SearchConsole-finalize"><strong>finalize</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="SearchConsole-history_move"><strong>history_move</strong></a>(self, n)</dt></dl>
-
-<dl><dt><a name="SearchConsole-move"><strong>move</strong></a>(self, **keywords)</dt></dl>
-
-<dl><dt><a name="SearchConsole-on_line_change"><strong>on_line_change</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="SearchConsole-open"><strong>open</strong></a>(self, mode, string<font color="#909090">=''</font>, prompt<font color="#909090">=None</font>)</dt></dl>
-
-<dl><dt><a name="SearchConsole-paste"><strong>paste</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="SearchConsole-press"><strong>press</strong></a>(self, key)</dt></dl>
-
-<dl><dt><a name="SearchConsole-tab"><strong>tab</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="SearchConsole-type_key"><strong>type_key</strong></a>(self, key)</dt></dl>
-
-<hr>
-Data and other attributes inherited from <a href="ranger.gui.widgets.console.html#Console">Console</a>:<br>
-<dl><dt><strong>allow_close</strong> = False</dl>
-
-<dl><dt><strong>copy</strong> = ''</dl>
-
-<dl><dt><strong>histories</strong> = None</dl>
-
-<dl><dt><strong>history</strong> = None</dl>
-
-<dl><dt><strong>historypaths</strong> = []</dl>
-
-<dl><dt><strong>last_cursor_mode</strong> = None</dl>
-
-<dl><dt><strong>mode</strong> = None</dl>
-
-<dl><dt><strong>original_line</strong> = None</dl>
-
-<dl><dt><strong>override</strong> = None</dl>
-
-<dl><dt><strong>tab_deque</strong> = None</dl>
-
-<dl><dt><strong>visible</strong> = False</dl>
-
-<hr>
-Methods inherited from <a href="ranger.gui.displayable.html#Displayable">ranger.gui.displayable.Displayable</a>:<br>
-<dl><dt><a name="SearchConsole-__bool__"><strong>__bool__</strong></a> = __nonzero__(self)</dt><dd><tt>Always&nbsp;True</tt></dd></dl>
-
-<dl><dt><a name="SearchConsole-__contains__"><strong>__contains__</strong></a>(self, item)</dt><dd><tt>Is&nbsp;item&nbsp;inside&nbsp;the&nbsp;boundaries?<br>
-item&nbsp;can&nbsp;be&nbsp;an&nbsp;iterable&nbsp;like&nbsp;[y,&nbsp;x]&nbsp;or&nbsp;an&nbsp;object&nbsp;with&nbsp;x&nbsp;and&nbsp;y&nbsp;methods.</tt></dd></dl>
-
-<dl><dt><a name="SearchConsole-__nonzero__"><strong>__nonzero__</strong></a>(self)</dt><dd><tt>Always&nbsp;True</tt></dd></dl>
-
-<dl><dt><a name="SearchConsole-__str__"><strong>__str__</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="SearchConsole-click"><strong>click</strong></a>(self, event)</dt><dd><tt>Called&nbsp;when&nbsp;a&nbsp;mouse&nbsp;key&nbsp;is&nbsp;pressed&nbsp;and&nbsp;self.<strong>focused</strong>&nbsp;is&nbsp;True.<br>
-Override&nbsp;this!</tt></dd></dl>
-
-<dl><dt><a name="SearchConsole-contains_point"><strong>contains_point</strong></a>(self, y, x)</dt><dd><tt>Test&nbsp;whether&nbsp;the&nbsp;point&nbsp;(with&nbsp;absolute&nbsp;coordinates)&nbsp;lies<br>
-within&nbsp;the&nbsp;boundaries&nbsp;of&nbsp;this&nbsp;object.</tt></dd></dl>
-
-<dl><dt><a name="SearchConsole-poke"><strong>poke</strong></a>(self)</dt><dd><tt>Called&nbsp;before&nbsp;drawing,&nbsp;even&nbsp;if&nbsp;invisible</tt></dd></dl>
-
-<dl><dt><a name="SearchConsole-resize"><strong>resize</strong></a>(self, y, x, hei<font color="#909090">=None</font>, wid<font color="#909090">=None</font>)</dt><dd><tt>Resize&nbsp;the&nbsp;widget</tt></dd></dl>
-
-<hr>
-Data and other attributes inherited from <a href="ranger.shared.html#EnvironmentAware">ranger.shared.EnvironmentAware</a>:<br>
-<dl><dt><strong>env</strong> = None</dl>
-
-<hr>
-Data and other attributes inherited from <a href="ranger.shared.html#FileManagerAware">ranger.shared.FileManagerAware</a>:<br>
-<dl><dt><strong>fm</strong> = None</dl>
-
-<hr>
-Data descriptors inherited from <a href="ranger.shared.html#Awareness">ranger.shared.Awareness</a>:<br>
-<dl><dt><strong>__dict__</strong></dt>
-<dd><tt>dictionary&nbsp;for&nbsp;instance&nbsp;variables&nbsp;(if&nbsp;defined)</tt></dd>
-</dl>
-<dl><dt><strong>__weakref__</strong></dt>
-<dd><tt>list&nbsp;of&nbsp;weak&nbsp;references&nbsp;to&nbsp;the&nbsp;object&nbsp;(if&nbsp;defined)</tt></dd>
-</dl>
-<hr>
-Methods inherited from <a href="ranger.gui.curses_shortcuts.html#CursesShortcuts">ranger.gui.curses_shortcuts.CursesShortcuts</a>:<br>
-<dl><dt><a name="SearchConsole-addnstr"><strong>addnstr</strong></a>(self, *args)</dt></dl>
-
-<dl><dt><a name="SearchConsole-addstr"><strong>addstr</strong></a>(self, *args)</dt></dl>
-
-<dl><dt><a name="SearchConsole-color"><strong>color</strong></a>(self, *keys)</dt><dd><tt>Change&nbsp;the&nbsp;colors&nbsp;from&nbsp;now&nbsp;on.</tt></dd></dl>
-
-<dl><dt><a name="SearchConsole-color_at"><strong>color_at</strong></a>(self, y, x, wid, *keys)</dt><dd><tt>Change&nbsp;the&nbsp;colors&nbsp;at&nbsp;the&nbsp;specified&nbsp;position</tt></dd></dl>
-
-<dl><dt><a name="SearchConsole-color_reset"><strong>color_reset</strong></a>(self)</dt><dd><tt>Change&nbsp;the&nbsp;colors&nbsp;to&nbsp;the&nbsp;default&nbsp;colors</tt></dd></dl>
-
-<hr>
-Data and other attributes inherited from <a href="ranger.shared.settings.html#SettingsAware">ranger.shared.settings.SettingsAware</a>:<br>
-<dl><dt><strong>settings</strong> = {}</dl>
-
-</td></tr></table></td></tr></table><p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#55aa55">
-<td colspan=3 valign=bottom>&nbsp;<br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Data</strong></big></font></td></tr>
-    
-<tr><td bgcolor="#55aa55"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
-<td width="100%"><strong>ALLOWED_FLAGS</strong> = 'sdpSDP'<br>
-<strong>DEFAULT_HISTORY</strong> = 0<br>
-<strong>OPEN_HISTORY</strong> = 3<br>
-<strong>QUICKOPEN_HISTORY</strong> = 2<br>
-<strong>SEARCH_HISTORY</strong> = 1</td></tr></table>
-</body></html>
\ No newline at end of file
diff --git a/doc/pydoc/ranger.gui.widgets.console_mode.html b/doc/pydoc/ranger.gui.widgets.console_mode.html
deleted file mode 100644
index 155fe07d..00000000
--- a/doc/pydoc/ranger.gui.widgets.console_mode.html
+++ /dev/null
@@ -1,50 +0,0 @@
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html><head><title>Python: module ranger.gui.widgets.console_mode</title>
-</head><body bgcolor="#f0f0f8">
-
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="heading">
-<tr bgcolor="#7799ee">
-<td valign=bottom>&nbsp;<br>
-<font color="#ffffff" face="helvetica, arial">&nbsp;<br><big><big><strong><a href="ranger.html"><font color="#ffffff">ranger</font></a>.<a href="ranger.gui.html"><font color="#ffffff">gui</font></a>.<a href="ranger.gui.widgets.html"><font color="#ffffff">widgets</font></a>.console_mode</strong></big></big></font></td
-><td align=right valign=bottom
-><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:/home/hut/ranger/ranger/gui/widgets/console_mode.py">/home/hut/ranger/ranger/gui/widgets/console_mode.py</a></font></td></tr></table>
-    <p><tt>#&nbsp;Copyright&nbsp;(C)&nbsp;2009,&nbsp;2010&nbsp;&nbsp;Roman&nbsp;Zimbelmann&nbsp;&lt;romanz@lavabit.com&gt;<br>
-#<br>
-#&nbsp;This&nbsp;program&nbsp;is&nbsp;free&nbsp;software:&nbsp;you&nbsp;can&nbsp;redistribute&nbsp;it&nbsp;and/or&nbsp;modify<br>
-#&nbsp;it&nbsp;under&nbsp;the&nbsp;terms&nbsp;of&nbsp;the&nbsp;GNU&nbsp;General&nbsp;Public&nbsp;License&nbsp;as&nbsp;published&nbsp;by<br>
-#&nbsp;the&nbsp;Free&nbsp;Software&nbsp;Foundation,&nbsp;either&nbsp;version&nbsp;3&nbsp;of&nbsp;the&nbsp;License,&nbsp;or<br>
-#&nbsp;(at&nbsp;your&nbsp;option)&nbsp;any&nbsp;later&nbsp;version.<br>
-#<br>
-#&nbsp;This&nbsp;program&nbsp;is&nbsp;distributed&nbsp;in&nbsp;the&nbsp;hope&nbsp;that&nbsp;it&nbsp;will&nbsp;be&nbsp;useful,<br>
-#&nbsp;but&nbsp;WITHOUT&nbsp;ANY&nbsp;WARRANTY;&nbsp;without&nbsp;even&nbsp;the&nbsp;implied&nbsp;warranty&nbsp;of<br>
-#&nbsp;MERCHANTABILITY&nbsp;or&nbsp;FITNESS&nbsp;FOR&nbsp;A&nbsp;PARTICULAR&nbsp;PURPOSE.&nbsp;&nbsp;See&nbsp;the<br>
-#&nbsp;GNU&nbsp;General&nbsp;Public&nbsp;License&nbsp;for&nbsp;more&nbsp;details.<br>
-#<br>
-#&nbsp;You&nbsp;should&nbsp;have&nbsp;received&nbsp;a&nbsp;copy&nbsp;of&nbsp;the&nbsp;GNU&nbsp;General&nbsp;Public&nbsp;License<br>
-#&nbsp;along&nbsp;with&nbsp;this&nbsp;program.&nbsp;&nbsp;If&nbsp;not,&nbsp;see&nbsp;&lt;<a href="http://www.gnu.org/licenses/">http://www.gnu.org/licenses/</a>&gt;.</tt></p>
-<p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#eeaa77">
-<td colspan=3 valign=bottom>&nbsp;<br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Functions</strong></big></font></td></tr>
-    
-<tr><td bgcolor="#eeaa77"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
-<td width="100%"><dl><dt><a name="-all_modes"><strong>all_modes</strong></a>(mode)</dt><dd><tt>Returns&nbsp;a&nbsp;generator&nbsp;containing&nbsp;all&nbsp;valid&nbsp;modes.</tt></dd></dl>
- <dl><dt><a name="-is_valid_mode"><strong>is_valid_mode</strong></a>(mode)</dt><dd><tt>Returns&nbsp;True&nbsp;or&nbsp;False&nbsp;depending&nbsp;on&nbsp;whether&nbsp;the&nbsp;mode&nbsp;is&nbsp;valid&nbsp;or&nbsp;not.</tt></dd></dl>
- <dl><dt><a name="-mode_to_class"><strong>mode_to_class</strong></a>(mode)</dt><dd><tt>Associates&nbsp;modes&nbsp;with&nbsp;the&nbsp;actual&nbsp;classes<br>
-from&nbsp;ranger.gui.widgets.console.</tt></dd></dl>
-</td></tr></table><p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#55aa55">
-<td colspan=3 valign=bottom>&nbsp;<br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Data</strong></big></font></td></tr>
-    
-<tr><td bgcolor="#55aa55"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
-<td width="100%"><strong>COMMAND</strong> = 1<br>
-<strong>COMMAND_QUICK</strong> = 2<br>
-<strong>DEFAULT</strong> = 0<br>
-<strong>OPEN</strong> = 3<br>
-<strong>OPEN_QUICK</strong> = 4<br>
-<strong>SEARCH</strong> = 5</td></tr></table>
-</body></html>
\ No newline at end of file
diff --git a/doc/pydoc/ranger.gui.widgets.html b/doc/pydoc/ranger.gui.widgets.html
deleted file mode 100644
index a37dabc9..00000000
--- a/doc/pydoc/ranger.gui.widgets.html
+++ /dev/null
@@ -1,145 +0,0 @@
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html><head><title>Python: package ranger.gui.widgets</title>
-</head><body bgcolor="#f0f0f8">
-
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="heading">
-<tr bgcolor="#7799ee">
-<td valign=bottom>&nbsp;<br>
-<font color="#ffffff" face="helvetica, arial">&nbsp;<br><big><big><strong><a href="ranger.html"><font color="#ffffff">ranger</font></a>.<a href="ranger.gui.html"><font color="#ffffff">gui</font></a>.widgets</strong></big></big></font></td
-><td align=right valign=bottom
-><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:/home/hut/ranger/ranger/gui/widgets/__init__.py">/home/hut/ranger/ranger/gui/widgets/__init__.py</a></font></td></tr></table>
-    <p><tt>#&nbsp;Copyright&nbsp;(C)&nbsp;2009,&nbsp;2010&nbsp;&nbsp;Roman&nbsp;Zimbelmann&nbsp;&lt;romanz@lavabit.com&gt;<br>
-#<br>
-#&nbsp;This&nbsp;program&nbsp;is&nbsp;free&nbsp;software:&nbsp;you&nbsp;can&nbsp;redistribute&nbsp;it&nbsp;and/or&nbsp;modify<br>
-#&nbsp;it&nbsp;under&nbsp;the&nbsp;terms&nbsp;of&nbsp;the&nbsp;GNU&nbsp;General&nbsp;Public&nbsp;License&nbsp;as&nbsp;published&nbsp;by<br>
-#&nbsp;the&nbsp;Free&nbsp;Software&nbsp;Foundation,&nbsp;either&nbsp;version&nbsp;3&nbsp;of&nbsp;the&nbsp;License,&nbsp;or<br>
-#&nbsp;(at&nbsp;your&nbsp;option)&nbsp;any&nbsp;later&nbsp;version.<br>
-#<br>
-#&nbsp;This&nbsp;program&nbsp;is&nbsp;distributed&nbsp;in&nbsp;the&nbsp;hope&nbsp;that&nbsp;it&nbsp;will&nbsp;be&nbsp;useful,<br>
-#&nbsp;but&nbsp;WITHOUT&nbsp;ANY&nbsp;WARRANTY;&nbsp;without&nbsp;even&nbsp;the&nbsp;implied&nbsp;warranty&nbsp;of<br>
-#&nbsp;MERCHANTABILITY&nbsp;or&nbsp;FITNESS&nbsp;FOR&nbsp;A&nbsp;PARTICULAR&nbsp;PURPOSE.&nbsp;&nbsp;See&nbsp;the<br>
-#&nbsp;GNU&nbsp;General&nbsp;Public&nbsp;License&nbsp;for&nbsp;more&nbsp;details.<br>
-#<br>
-#&nbsp;You&nbsp;should&nbsp;have&nbsp;received&nbsp;a&nbsp;copy&nbsp;of&nbsp;the&nbsp;GNU&nbsp;General&nbsp;Public&nbsp;License<br>
-#&nbsp;along&nbsp;with&nbsp;this&nbsp;program.&nbsp;&nbsp;If&nbsp;not,&nbsp;see&nbsp;&lt;<a href="http://www.gnu.org/licenses/">http://www.gnu.org/licenses/</a>&gt;.</tt></p>
-<p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#aa55cc">
-<td colspan=3 valign=bottom>&nbsp;<br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Package Contents</strong></big></font></td></tr>
-    
-<tr><td bgcolor="#aa55cc"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
-<td width="100%"><table width="100%" summary="list"><tr><td width="25%" valign=top><a href="ranger.gui.widgets.browsercolumn.html">browsercolumn</a><br>
-<a href="ranger.gui.widgets.browserview.html">browserview</a><br>
-</td><td width="25%" valign=top><a href="ranger.gui.widgets.console.html">console</a><br>
-<a href="ranger.gui.widgets.console_mode.html">console_mode</a><br>
-</td><td width="25%" valign=top><a href="ranger.gui.widgets.pager.html">pager</a><br>
-<a href="ranger.gui.widgets.statusbar.html">statusbar</a><br>
-</td><td width="25%" valign=top><a href="ranger.gui.widgets.taskview.html">taskview</a><br>
-<a href="ranger.gui.widgets.titlebar.html">titlebar</a><br>
-</td></tr></table></td></tr></table><p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ee77aa">
-<td colspan=3 valign=bottom>&nbsp;<br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Classes</strong></big></font></td></tr>
-    
-<tr><td bgcolor="#ee77aa"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
-<td width="100%"><dl>
-<dt><font face="helvetica, arial"><a href="ranger.gui.displayable.html#Displayable">ranger.gui.displayable.Displayable</a>(<a href="ranger.shared.html#EnvironmentAware">ranger.shared.EnvironmentAware</a>, <a href="ranger.shared.html#FileManagerAware">ranger.shared.FileManagerAware</a>, <a href="ranger.gui.curses_shortcuts.html#CursesShortcuts">ranger.gui.curses_shortcuts.CursesShortcuts</a>)
-</font></dt><dd>
-<dl>
-<dt><font face="helvetica, arial"><a href="ranger.gui.widgets.html#Widget">Widget</a>
-</font></dt></dl>
-</dd>
-</dl>
- <p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ffc8d8">
-<td colspan=3 valign=bottom>&nbsp;<br>
-<font color="#000000" face="helvetica, arial"><a name="Widget">class <strong>Widget</strong></a>(<a href="ranger.gui.displayable.html#Displayable">ranger.gui.displayable.Displayable</a>)</font></td></tr>
-    
-<tr bgcolor="#ffc8d8"><td rowspan=2><tt>&nbsp;&nbsp;&nbsp;</tt></td>
-<td colspan=2><tt>The&nbsp;<a href="#Widget">Widget</a>&nbsp;class&nbsp;defines&nbsp;no&nbsp;methods&nbsp;and&nbsp;only&nbsp;exists&nbsp;for<br>
-classification&nbsp;of&nbsp;widgets.<br>&nbsp;</tt></td></tr>
-<tr><td>&nbsp;</td>
-<td width="100%"><dl><dt>Method resolution order:</dt>
-<dd><a href="ranger.gui.widgets.html#Widget">Widget</a></dd>
-<dd><a href="ranger.gui.displayable.html#Displayable">ranger.gui.displayable.Displayable</a></dd>
-<dd><a href="ranger.shared.html#EnvironmentAware">ranger.shared.EnvironmentAware</a></dd>
-<dd><a href="ranger.shared.html#FileManagerAware">ranger.shared.FileManagerAware</a></dd>
-<dd><a href="ranger.shared.html#Awareness">ranger.shared.Awareness</a></dd>
-<dd><a href="ranger.gui.curses_shortcuts.html#CursesShortcuts">ranger.gui.curses_shortcuts.CursesShortcuts</a></dd>
-<dd><a href="ranger.shared.settings.html#SettingsAware">ranger.shared.settings.SettingsAware</a></dd>
-<dd><a href="__builtin__.html#object">__builtin__.object</a></dd>
-</dl>
-<hr>
-Methods inherited from <a href="ranger.gui.displayable.html#Displayable">ranger.gui.displayable.Displayable</a>:<br>
-<dl><dt><a name="Widget-__bool__"><strong>__bool__</strong></a> = __nonzero__(self)</dt><dd><tt>Always&nbsp;True</tt></dd></dl>
-
-<dl><dt><a name="Widget-__contains__"><strong>__contains__</strong></a>(self, item)</dt><dd><tt>Is&nbsp;item&nbsp;inside&nbsp;the&nbsp;boundaries?<br>
-item&nbsp;can&nbsp;be&nbsp;an&nbsp;iterable&nbsp;like&nbsp;[y,&nbsp;x]&nbsp;or&nbsp;an&nbsp;object&nbsp;with&nbsp;x&nbsp;and&nbsp;y&nbsp;methods.</tt></dd></dl>
-
-<dl><dt><a name="Widget-__init__"><strong>__init__</strong></a>(self, win, env<font color="#909090">=None</font>, fm<font color="#909090">=None</font>, settings<font color="#909090">=None</font>)</dt></dl>
-
-<dl><dt><a name="Widget-__nonzero__"><strong>__nonzero__</strong></a>(self)</dt><dd><tt>Always&nbsp;True</tt></dd></dl>
-
-<dl><dt><a name="Widget-__str__"><strong>__str__</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="Widget-click"><strong>click</strong></a>(self, event)</dt><dd><tt>Called&nbsp;when&nbsp;a&nbsp;mouse&nbsp;key&nbsp;is&nbsp;pressed&nbsp;and&nbsp;self.<strong>focused</strong>&nbsp;is&nbsp;True.<br>
-Override&nbsp;this!</tt></dd></dl>
-
-<dl><dt><a name="Widget-contains_point"><strong>contains_point</strong></a>(self, y, x)</dt><dd><tt>Test&nbsp;whether&nbsp;the&nbsp;point&nbsp;(with&nbsp;absolute&nbsp;coordinates)&nbsp;lies<br>
-within&nbsp;the&nbsp;boundaries&nbsp;of&nbsp;this&nbsp;object.</tt></dd></dl>
-
-<dl><dt><a name="Widget-destroy"><strong>destroy</strong></a>(self)</dt><dd><tt>Called&nbsp;when&nbsp;the&nbsp;object&nbsp;is&nbsp;destroyed.<br>
-Override&nbsp;this!</tt></dd></dl>
-
-<dl><dt><a name="Widget-draw"><strong>draw</strong></a>(self)</dt><dd><tt>Draw&nbsp;the&nbsp;object.&nbsp;Called&nbsp;on&nbsp;every&nbsp;main&nbsp;iteration&nbsp;if&nbsp;visible.<br>
-Containers&nbsp;should&nbsp;call&nbsp;<a href="#Widget-draw">draw</a>()&nbsp;on&nbsp;their&nbsp;contained&nbsp;objects&nbsp;here.<br>
-Override&nbsp;this!</tt></dd></dl>
-
-<dl><dt><a name="Widget-finalize"><strong>finalize</strong></a>(self)</dt><dd><tt>Called&nbsp;after&nbsp;every&nbsp;displayable&nbsp;is&nbsp;done&nbsp;drawing.<br>
-Override&nbsp;this!</tt></dd></dl>
-
-<dl><dt><a name="Widget-poke"><strong>poke</strong></a>(self)</dt><dd><tt>Called&nbsp;before&nbsp;drawing,&nbsp;even&nbsp;if&nbsp;invisible</tt></dd></dl>
-
-<dl><dt><a name="Widget-press"><strong>press</strong></a>(self, key)</dt><dd><tt>Called&nbsp;when&nbsp;a&nbsp;key&nbsp;is&nbsp;pressed&nbsp;and&nbsp;self.<strong>focused</strong>&nbsp;is&nbsp;True.<br>
-Override&nbsp;this!</tt></dd></dl>
-
-<dl><dt><a name="Widget-resize"><strong>resize</strong></a>(self, y, x, hei<font color="#909090">=None</font>, wid<font color="#909090">=None</font>)</dt><dd><tt>Resize&nbsp;the&nbsp;widget</tt></dd></dl>
-
-<hr>
-Data and other attributes inherited from <a href="ranger.shared.html#EnvironmentAware">ranger.shared.EnvironmentAware</a>:<br>
-<dl><dt><strong>env</strong> = None</dl>
-
-<hr>
-Data and other attributes inherited from <a href="ranger.shared.html#FileManagerAware">ranger.shared.FileManagerAware</a>:<br>
-<dl><dt><strong>fm</strong> = None</dl>
-
-<hr>
-Data descriptors inherited from <a href="ranger.shared.html#Awareness">ranger.shared.Awareness</a>:<br>
-<dl><dt><strong>__dict__</strong></dt>
-<dd><tt>dictionary&nbsp;for&nbsp;instance&nbsp;variables&nbsp;(if&nbsp;defined)</tt></dd>
-</dl>
-<dl><dt><strong>__weakref__</strong></dt>
-<dd><tt>list&nbsp;of&nbsp;weak&nbsp;references&nbsp;to&nbsp;the&nbsp;object&nbsp;(if&nbsp;defined)</tt></dd>
-</dl>
-<hr>
-Methods inherited from <a href="ranger.gui.curses_shortcuts.html#CursesShortcuts">ranger.gui.curses_shortcuts.CursesShortcuts</a>:<br>
-<dl><dt><a name="Widget-addnstr"><strong>addnstr</strong></a>(self, *args)</dt></dl>
-
-<dl><dt><a name="Widget-addstr"><strong>addstr</strong></a>(self, *args)</dt></dl>
-
-<dl><dt><a name="Widget-color"><strong>color</strong></a>(self, *keys)</dt><dd><tt>Change&nbsp;the&nbsp;colors&nbsp;from&nbsp;now&nbsp;on.</tt></dd></dl>
-
-<dl><dt><a name="Widget-color_at"><strong>color_at</strong></a>(self, y, x, wid, *keys)</dt><dd><tt>Change&nbsp;the&nbsp;colors&nbsp;at&nbsp;the&nbsp;specified&nbsp;position</tt></dd></dl>
-
-<dl><dt><a name="Widget-color_reset"><strong>color_reset</strong></a>(self)</dt><dd><tt>Change&nbsp;the&nbsp;colors&nbsp;to&nbsp;the&nbsp;default&nbsp;colors</tt></dd></dl>
-
-<hr>
-Data and other attributes inherited from <a href="ranger.shared.settings.html#SettingsAware">ranger.shared.settings.SettingsAware</a>:<br>
-<dl><dt><strong>settings</strong> = {}</dl>
-
-</td></tr></table></td></tr></table>
-</body></html>
\ No newline at end of file
diff --git a/doc/pydoc/ranger.gui.widgets.pager.html b/doc/pydoc/ranger.gui.widgets.pager.html
deleted file mode 100644
index c46fc373..00000000
--- a/doc/pydoc/ranger.gui.widgets.pager.html
+++ /dev/null
@@ -1,150 +0,0 @@
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html><head><title>Python: module ranger.gui.widgets.pager</title>
-</head><body bgcolor="#f0f0f8">
-
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="heading">
-<tr bgcolor="#7799ee">
-<td valign=bottom>&nbsp;<br>
-<font color="#ffffff" face="helvetica, arial">&nbsp;<br><big><big><strong><a href="ranger.html"><font color="#ffffff">ranger</font></a>.<a href="ranger.gui.html"><font color="#ffffff">gui</font></a>.<a href="ranger.gui.widgets.html"><font color="#ffffff">widgets</font></a>.pager</strong></big></big></font></td
-><td align=right valign=bottom
-><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:/home/hut/ranger/ranger/gui/widgets/pager.py">/home/hut/ranger/ranger/gui/widgets/pager.py</a></font></td></tr></table>
-    <p><tt>The&nbsp;pager&nbsp;displays&nbsp;text&nbsp;and&nbsp;allows&nbsp;you&nbsp;to&nbsp;scroll&nbsp;inside&nbsp;it.</tt></p>
-<p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#aa55cc">
-<td colspan=3 valign=bottom>&nbsp;<br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Modules</strong></big></font></td></tr>
-    
-<tr><td bgcolor="#aa55cc"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
-<td width="100%"><table width="100%" summary="list"><tr><td width="25%" valign=top><a href="re.html">re</a><br>
-</td><td width="25%" valign=top></td><td width="25%" valign=top></td><td width="25%" valign=top></td></tr></table></td></tr></table><p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ee77aa">
-<td colspan=3 valign=bottom>&nbsp;<br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Classes</strong></big></font></td></tr>
-    
-<tr><td bgcolor="#ee77aa"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
-<td width="100%"><dl>
-<dt><font face="helvetica, arial"><a href="ranger.gui.widgets.html#Widget">ranger.gui.widgets.Widget</a>(<a href="ranger.gui.displayable.html#Displayable">ranger.gui.displayable.Displayable</a>)
-</font></dt><dd>
-<dl>
-<dt><font face="helvetica, arial"><a href="ranger.gui.widgets.pager.html#Pager">Pager</a>
-</font></dt></dl>
-</dd>
-</dl>
- <p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ffc8d8">
-<td colspan=3 valign=bottom>&nbsp;<br>
-<font color="#000000" face="helvetica, arial"><a name="Pager">class <strong>Pager</strong></a>(<a href="ranger.gui.widgets.html#Widget">ranger.gui.widgets.Widget</a>)</font></td></tr>
-    
-<tr><td bgcolor="#ffc8d8"><tt>&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
-<td width="100%"><dl><dt>Method resolution order:</dt>
-<dd><a href="ranger.gui.widgets.pager.html#Pager">Pager</a></dd>
-<dd><a href="ranger.gui.widgets.html#Widget">ranger.gui.widgets.Widget</a></dd>
-<dd><a href="ranger.gui.displayable.html#Displayable">ranger.gui.displayable.Displayable</a></dd>
-<dd><a href="ranger.shared.html#EnvironmentAware">ranger.shared.EnvironmentAware</a></dd>
-<dd><a href="ranger.shared.html#FileManagerAware">ranger.shared.FileManagerAware</a></dd>
-<dd><a href="ranger.shared.html#Awareness">ranger.shared.Awareness</a></dd>
-<dd><a href="ranger.gui.curses_shortcuts.html#CursesShortcuts">ranger.gui.curses_shortcuts.CursesShortcuts</a></dd>
-<dd><a href="ranger.shared.settings.html#SettingsAware">ranger.shared.settings.SettingsAware</a></dd>
-<dd><a href="__builtin__.html#object">__builtin__.object</a></dd>
-</dl>
-<hr>
-Methods defined here:<br>
-<dl><dt><a name="Pager-__init__"><strong>__init__</strong></a>(self, win, embedded<font color="#909090">=False</font>)</dt></dl>
-
-<dl><dt><a name="Pager-click"><strong>click</strong></a>(self, event)</dt></dl>
-
-<dl><dt><a name="Pager-close"><strong>close</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="Pager-draw"><strong>draw</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="Pager-finalize"><strong>finalize</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="Pager-move"><strong>move</strong></a>(self, narg<font color="#909090">=None</font>, **kw)</dt></dl>
-
-<dl><dt><a name="Pager-open"><strong>open</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="Pager-press"><strong>press</strong></a>(self, key)</dt></dl>
-
-<dl><dt><a name="Pager-set_source"><strong>set_source</strong></a>(self, source, strip<font color="#909090">=False</font>)</dt></dl>
-
-<hr>
-Data and other attributes defined here:<br>
-<dl><dt><strong>old_scroll_begin</strong> = 0</dl>
-
-<dl><dt><strong>old_source</strong> = None</dl>
-
-<dl><dt><strong>old_startx</strong> = 0</dl>
-
-<dl><dt><strong>source</strong> = None</dl>
-
-<dl><dt><strong>source_is_stream</strong> = False</dl>
-
-<hr>
-Methods inherited from <a href="ranger.gui.displayable.html#Displayable">ranger.gui.displayable.Displayable</a>:<br>
-<dl><dt><a name="Pager-__bool__"><strong>__bool__</strong></a> = __nonzero__(self)</dt><dd><tt>Always&nbsp;True</tt></dd></dl>
-
-<dl><dt><a name="Pager-__contains__"><strong>__contains__</strong></a>(self, item)</dt><dd><tt>Is&nbsp;item&nbsp;inside&nbsp;the&nbsp;boundaries?<br>
-item&nbsp;can&nbsp;be&nbsp;an&nbsp;iterable&nbsp;like&nbsp;[y,&nbsp;x]&nbsp;or&nbsp;an&nbsp;object&nbsp;with&nbsp;x&nbsp;and&nbsp;y&nbsp;methods.</tt></dd></dl>
-
-<dl><dt><a name="Pager-__nonzero__"><strong>__nonzero__</strong></a>(self)</dt><dd><tt>Always&nbsp;True</tt></dd></dl>
-
-<dl><dt><a name="Pager-__str__"><strong>__str__</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="Pager-contains_point"><strong>contains_point</strong></a>(self, y, x)</dt><dd><tt>Test&nbsp;whether&nbsp;the&nbsp;point&nbsp;(with&nbsp;absolute&nbsp;coordinates)&nbsp;lies<br>
-within&nbsp;the&nbsp;boundaries&nbsp;of&nbsp;this&nbsp;object.</tt></dd></dl>
-
-<dl><dt><a name="Pager-destroy"><strong>destroy</strong></a>(self)</dt><dd><tt>Called&nbsp;when&nbsp;the&nbsp;object&nbsp;is&nbsp;destroyed.<br>
-Override&nbsp;this!</tt></dd></dl>
-
-<dl><dt><a name="Pager-poke"><strong>poke</strong></a>(self)</dt><dd><tt>Called&nbsp;before&nbsp;drawing,&nbsp;even&nbsp;if&nbsp;invisible</tt></dd></dl>
-
-<dl><dt><a name="Pager-resize"><strong>resize</strong></a>(self, y, x, hei<font color="#909090">=None</font>, wid<font color="#909090">=None</font>)</dt><dd><tt>Resize&nbsp;the&nbsp;widget</tt></dd></dl>
-
-<hr>
-Data and other attributes inherited from <a href="ranger.shared.html#EnvironmentAware">ranger.shared.EnvironmentAware</a>:<br>
-<dl><dt><strong>env</strong> = None</dl>
-
-<hr>
-Data and other attributes inherited from <a href="ranger.shared.html#FileManagerAware">ranger.shared.FileManagerAware</a>:<br>
-<dl><dt><strong>fm</strong> = None</dl>
-
-<hr>
-Data descriptors inherited from <a href="ranger.shared.html#Awareness">ranger.shared.Awareness</a>:<br>
-<dl><dt><strong>__dict__</strong></dt>
-<dd><tt>dictionary&nbsp;for&nbsp;instance&nbsp;variables&nbsp;(if&nbsp;defined)</tt></dd>
-</dl>
-<dl><dt><strong>__weakref__</strong></dt>
-<dd><tt>list&nbsp;of&nbsp;weak&nbsp;references&nbsp;to&nbsp;the&nbsp;object&nbsp;(if&nbsp;defined)</tt></dd>
-</dl>
-<hr>
-Methods inherited from <a href="ranger.gui.curses_shortcuts.html#CursesShortcuts">ranger.gui.curses_shortcuts.CursesShortcuts</a>:<br>
-<dl><dt><a name="Pager-addnstr"><strong>addnstr</strong></a>(self, *args)</dt></dl>
-
-<dl><dt><a name="Pager-addstr"><strong>addstr</strong></a>(self, *args)</dt></dl>
-
-<dl><dt><a name="Pager-color"><strong>color</strong></a>(self, *keys)</dt><dd><tt>Change&nbsp;the&nbsp;colors&nbsp;from&nbsp;now&nbsp;on.</tt></dd></dl>
-
-<dl><dt><a name="Pager-color_at"><strong>color_at</strong></a>(self, y, x, wid, *keys)</dt><dd><tt>Change&nbsp;the&nbsp;colors&nbsp;at&nbsp;the&nbsp;specified&nbsp;position</tt></dd></dl>
-
-<dl><dt><a name="Pager-color_reset"><strong>color_reset</strong></a>(self)</dt><dd><tt>Change&nbsp;the&nbsp;colors&nbsp;to&nbsp;the&nbsp;default&nbsp;colors</tt></dd></dl>
-
-<hr>
-Data and other attributes inherited from <a href="ranger.shared.settings.html#SettingsAware">ranger.shared.settings.SettingsAware</a>:<br>
-<dl><dt><strong>settings</strong> = {}</dl>
-
-</td></tr></table></td></tr></table><p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#55aa55">
-<td colspan=3 valign=bottom>&nbsp;<br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Data</strong></big></font></td></tr>
-    
-<tr><td bgcolor="#55aa55"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
-<td width="100%"><strong>BAR_REGEXP</strong> = &lt;_sre.SRE_Pattern object&gt;<br>
-<strong>QUOTES_REGEXP</strong> = &lt;_sre.SRE_Pattern object&gt;<br>
-<strong>SPECIAL_CHARS_REGEXP</strong> = &lt;_sre.SRE_Pattern object&gt;<br>
-<strong>TITLE_REGEXP</strong> = &lt;_sre.SRE_Pattern object&gt;</td></tr></table>
-</body></html>
\ No newline at end of file
diff --git a/doc/pydoc/ranger.gui.widgets.statusbar.html b/doc/pydoc/ranger.gui.widgets.statusbar.html
deleted file mode 100644
index 169692b9..00000000
--- a/doc/pydoc/ranger.gui.widgets.statusbar.html
+++ /dev/null
@@ -1,216 +0,0 @@
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html><head><title>Python: module ranger.gui.widgets.statusbar</title>
-</head><body bgcolor="#f0f0f8">
-
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="heading">
-<tr bgcolor="#7799ee">
-<td valign=bottom>&nbsp;<br>
-<font color="#ffffff" face="helvetica, arial">&nbsp;<br><big><big><strong><a href="ranger.html"><font color="#ffffff">ranger</font></a>.<a href="ranger.gui.html"><font color="#ffffff">gui</font></a>.<a href="ranger.gui.widgets.html"><font color="#ffffff">widgets</font></a>.statusbar</strong></big></big></font></td
-><td align=right valign=bottom
-><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:/home/hut/ranger/ranger/gui/widgets/statusbar.py">/home/hut/ranger/ranger/gui/widgets/statusbar.py</a></font></td></tr></table>
-    <p><tt>The&nbsp;statusbar&nbsp;displays&nbsp;information&nbsp;about&nbsp;the&nbsp;current&nbsp;file&nbsp;and&nbsp;directory.<br>
-&nbsp;<br>
-On&nbsp;the&nbsp;left&nbsp;side,&nbsp;there&nbsp;is&nbsp;a&nbsp;display&nbsp;similar&nbsp;to&nbsp;what&nbsp;"ls&nbsp;-l"&nbsp;would<br>
-print&nbsp;for&nbsp;the&nbsp;current&nbsp;file.&nbsp;&nbsp;The&nbsp;right&nbsp;side&nbsp;shows&nbsp;directory&nbsp;information<br>
-such&nbsp;as&nbsp;the&nbsp;space&nbsp;used&nbsp;by&nbsp;all&nbsp;the&nbsp;files&nbsp;in&nbsp;this&nbsp;directory.</tt></p>
-<p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ee77aa">
-<td colspan=3 valign=bottom>&nbsp;<br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Classes</strong></big></font></td></tr>
-    
-<tr><td bgcolor="#ee77aa"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
-<td width="100%"><dl>
-<dt><font face="helvetica, arial"><a href="__builtin__.html#object">__builtin__.object</a>
-</font></dt><dd>
-<dl>
-<dt><font face="helvetica, arial"><a href="ranger.gui.widgets.statusbar.html#Message">Message</a>
-</font></dt></dl>
-</dd>
-<dt><font face="helvetica, arial"><a href="ranger.gui.widgets.html#Widget">ranger.gui.widgets.Widget</a>(<a href="ranger.gui.displayable.html#Displayable">ranger.gui.displayable.Displayable</a>)
-</font></dt><dd>
-<dl>
-<dt><font face="helvetica, arial"><a href="ranger.gui.widgets.statusbar.html#StatusBar">StatusBar</a>
-</font></dt></dl>
-</dd>
-</dl>
- <p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ffc8d8">
-<td colspan=3 valign=bottom>&nbsp;<br>
-<font color="#000000" face="helvetica, arial"><a name="Message">class <strong>Message</strong></a>(<a href="__builtin__.html#object">__builtin__.object</a>)</font></td></tr>
-    
-<tr><td bgcolor="#ffc8d8"><tt>&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
-<td width="100%">Methods defined here:<br>
-<dl><dt><a name="Message-__init__"><strong>__init__</strong></a>(self, text, duration, bad)</dt></dl>
-
-<dl><dt><a name="Message-is_alive"><strong>is_alive</strong></a>(self)</dt></dl>
-
-<hr>
-Data descriptors defined here:<br>
-<dl><dt><strong>__dict__</strong></dt>
-<dd><tt>dictionary&nbsp;for&nbsp;instance&nbsp;variables&nbsp;(if&nbsp;defined)</tt></dd>
-</dl>
-<dl><dt><strong>__weakref__</strong></dt>
-<dd><tt>list&nbsp;of&nbsp;weak&nbsp;references&nbsp;to&nbsp;the&nbsp;object&nbsp;(if&nbsp;defined)</tt></dd>
-</dl>
-<hr>
-Data and other attributes defined here:<br>
-<dl><dt><strong>bad</strong> = False</dl>
-
-<dl><dt><strong>elapse</strong> = None</dl>
-
-<dl><dt><strong>text</strong> = None</dl>
-
-</td></tr></table> <p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ffc8d8">
-<td colspan=3 valign=bottom>&nbsp;<br>
-<font color="#000000" face="helvetica, arial"><a name="StatusBar">class <strong>StatusBar</strong></a>(<a href="ranger.gui.widgets.html#Widget">ranger.gui.widgets.Widget</a>)</font></td></tr>
-    
-<tr bgcolor="#ffc8d8"><td rowspan=2><tt>&nbsp;&nbsp;&nbsp;</tt></td>
-<td colspan=2><tt>The&nbsp;statusbar&nbsp;displays&nbsp;information&nbsp;about&nbsp;the&nbsp;current&nbsp;file&nbsp;and&nbsp;directory.<br>
-&nbsp;<br>
-On&nbsp;the&nbsp;left&nbsp;side,&nbsp;there&nbsp;is&nbsp;a&nbsp;display&nbsp;similar&nbsp;to&nbsp;what&nbsp;"ls&nbsp;-l"&nbsp;would<br>
-print&nbsp;for&nbsp;the&nbsp;current&nbsp;file.&nbsp;&nbsp;The&nbsp;right&nbsp;side&nbsp;shows&nbsp;directory&nbsp;information<br>
-such&nbsp;as&nbsp;the&nbsp;space&nbsp;used&nbsp;by&nbsp;all&nbsp;the&nbsp;files&nbsp;in&nbsp;this&nbsp;directory.<br>&nbsp;</tt></td></tr>
-<tr><td>&nbsp;</td>
-<td width="100%"><dl><dt>Method resolution order:</dt>
-<dd><a href="ranger.gui.widgets.statusbar.html#StatusBar">StatusBar</a></dd>
-<dd><a href="ranger.gui.widgets.html#Widget">ranger.gui.widgets.Widget</a></dd>
-<dd><a href="ranger.gui.displayable.html#Displayable">ranger.gui.displayable.Displayable</a></dd>
-<dd><a href="ranger.shared.html#EnvironmentAware">ranger.shared.EnvironmentAware</a></dd>
-<dd><a href="ranger.shared.html#FileManagerAware">ranger.shared.FileManagerAware</a></dd>
-<dd><a href="ranger.shared.html#Awareness">ranger.shared.Awareness</a></dd>
-<dd><a href="ranger.gui.curses_shortcuts.html#CursesShortcuts">ranger.gui.curses_shortcuts.CursesShortcuts</a></dd>
-<dd><a href="ranger.shared.settings.html#SettingsAware">ranger.shared.settings.SettingsAware</a></dd>
-<dd><a href="__builtin__.html#object">__builtin__.object</a></dd>
-</dl>
-<hr>
-Methods defined here:<br>
-<dl><dt><a name="StatusBar-__init__"><strong>__init__</strong></a>(self, win, column<font color="#909090">=None</font>)</dt></dl>
-
-<dl><dt><a name="StatusBar-draw"><strong>draw</strong></a>(self)</dt><dd><tt>Draw&nbsp;the&nbsp;statusbar</tt></dd></dl>
-
-<dl><dt><a name="StatusBar-notify"><strong>notify</strong></a>(self, text, duration<font color="#909090">=4</font>, bad<font color="#909090">=False</font>)</dt></dl>
-
-<dl><dt><a name="StatusBar-request_redraw"><strong>request_redraw</strong></a>(self)</dt></dl>
-
-<hr>
-Data and other attributes defined here:<br>
-<dl><dt><strong>groups</strong> = {}</dl>
-
-<dl><dt><strong>hint</strong> = None</dl>
-
-<dl><dt><strong>msg</strong> = None</dl>
-
-<dl><dt><strong>old_cf</strong> = None</dl>
-
-<dl><dt><strong>old_du</strong> = None</dl>
-
-<dl><dt><strong>old_hint</strong> = None</dl>
-
-<dl><dt><strong>old_mtime</strong> = None</dl>
-
-<dl><dt><strong>owners</strong> = {}</dl>
-
-<dl><dt><strong>result</strong> = None</dl>
-
-<dl><dt><strong>timeformat</strong> = '%Y-%m-%d %H:%M'</dl>
-
-<hr>
-Methods inherited from <a href="ranger.gui.displayable.html#Displayable">ranger.gui.displayable.Displayable</a>:<br>
-<dl><dt><a name="StatusBar-__bool__"><strong>__bool__</strong></a> = __nonzero__(self)</dt><dd><tt>Always&nbsp;True</tt></dd></dl>
-
-<dl><dt><a name="StatusBar-__contains__"><strong>__contains__</strong></a>(self, item)</dt><dd><tt>Is&nbsp;item&nbsp;inside&nbsp;the&nbsp;boundaries?<br>
-item&nbsp;can&nbsp;be&nbsp;an&nbsp;iterable&nbsp;like&nbsp;[y,&nbsp;x]&nbsp;or&nbsp;an&nbsp;<a href="__builtin__.html#object">object</a>&nbsp;with&nbsp;x&nbsp;and&nbsp;y&nbsp;methods.</tt></dd></dl>
-
-<dl><dt><a name="StatusBar-__nonzero__"><strong>__nonzero__</strong></a>(self)</dt><dd><tt>Always&nbsp;True</tt></dd></dl>
-
-<dl><dt><a name="StatusBar-__str__"><strong>__str__</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="StatusBar-click"><strong>click</strong></a>(self, event)</dt><dd><tt>Called&nbsp;when&nbsp;a&nbsp;mouse&nbsp;key&nbsp;is&nbsp;pressed&nbsp;and&nbsp;self.<strong>focused</strong>&nbsp;is&nbsp;True.<br>
-Override&nbsp;this!</tt></dd></dl>
-
-<dl><dt><a name="StatusBar-contains_point"><strong>contains_point</strong></a>(self, y, x)</dt><dd><tt>Test&nbsp;whether&nbsp;the&nbsp;point&nbsp;(with&nbsp;absolute&nbsp;coordinates)&nbsp;lies<br>
-within&nbsp;the&nbsp;boundaries&nbsp;of&nbsp;this&nbsp;<a href="__builtin__.html#object">object</a>.</tt></dd></dl>
-
-<dl><dt><a name="StatusBar-destroy"><strong>destroy</strong></a>(self)</dt><dd><tt>Called&nbsp;when&nbsp;the&nbsp;<a href="__builtin__.html#object">object</a>&nbsp;is&nbsp;destroyed.<br>
-Override&nbsp;this!</tt></dd></dl>
-
-<dl><dt><a name="StatusBar-finalize"><strong>finalize</strong></a>(self)</dt><dd><tt>Called&nbsp;after&nbsp;every&nbsp;displayable&nbsp;is&nbsp;done&nbsp;drawing.<br>
-Override&nbsp;this!</tt></dd></dl>
-
-<dl><dt><a name="StatusBar-poke"><strong>poke</strong></a>(self)</dt><dd><tt>Called&nbsp;before&nbsp;drawing,&nbsp;even&nbsp;if&nbsp;invisible</tt></dd></dl>
-
-<dl><dt><a name="StatusBar-press"><strong>press</strong></a>(self, key)</dt><dd><tt>Called&nbsp;when&nbsp;a&nbsp;key&nbsp;is&nbsp;pressed&nbsp;and&nbsp;self.<strong>focused</strong>&nbsp;is&nbsp;True.<br>
-Override&nbsp;this!</tt></dd></dl>
-
-<dl><dt><a name="StatusBar-resize"><strong>resize</strong></a>(self, y, x, hei<font color="#909090">=None</font>, wid<font color="#909090">=None</font>)</dt><dd><tt>Resize&nbsp;the&nbsp;widget</tt></dd></dl>
-
-<hr>
-Data and other attributes inherited from <a href="ranger.shared.html#EnvironmentAware">ranger.shared.EnvironmentAware</a>:<br>
-<dl><dt><strong>env</strong> = None</dl>
-
-<hr>
-Data and other attributes inherited from <a href="ranger.shared.html#FileManagerAware">ranger.shared.FileManagerAware</a>:<br>
-<dl><dt><strong>fm</strong> = None</dl>
-
-<hr>
-Data descriptors inherited from <a href="ranger.shared.html#Awareness">ranger.shared.Awareness</a>:<br>
-<dl><dt><strong>__dict__</strong></dt>
-<dd><tt>dictionary&nbsp;for&nbsp;instance&nbsp;variables&nbsp;(if&nbsp;defined)</tt></dd>
-</dl>
-<dl><dt><strong>__weakref__</strong></dt>
-<dd><tt>list&nbsp;of&nbsp;weak&nbsp;references&nbsp;to&nbsp;the&nbsp;object&nbsp;(if&nbsp;defined)</tt></dd>
-</dl>
-<hr>
-Methods inherited from <a href="ranger.gui.curses_shortcuts.html#CursesShortcuts">ranger.gui.curses_shortcuts.CursesShortcuts</a>:<br>
-<dl><dt><a name="StatusBar-addnstr"><strong>addnstr</strong></a>(self, *args)</dt></dl>
-
-<dl><dt><a name="StatusBar-addstr"><strong>addstr</strong></a>(self, *args)</dt></dl>
-
-<dl><dt><a name="StatusBar-color"><strong>color</strong></a>(self, *keys)</dt><dd><tt>Change&nbsp;the&nbsp;colors&nbsp;from&nbsp;now&nbsp;on.</tt></dd></dl>
-
-<dl><dt><a name="StatusBar-color_at"><strong>color_at</strong></a>(self, y, x, wid, *keys)</dt><dd><tt>Change&nbsp;the&nbsp;colors&nbsp;at&nbsp;the&nbsp;specified&nbsp;position</tt></dd></dl>
-
-<dl><dt><a name="StatusBar-color_reset"><strong>color_reset</strong></a>(self)</dt><dd><tt>Change&nbsp;the&nbsp;colors&nbsp;to&nbsp;the&nbsp;default&nbsp;colors</tt></dd></dl>
-
-<hr>
-Data and other attributes inherited from <a href="ranger.shared.settings.html#SettingsAware">ranger.shared.settings.SettingsAware</a>:<br>
-<dl><dt><strong>settings</strong> = {}</dl>
-
-</td></tr></table></td></tr></table><p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#eeaa77">
-<td colspan=3 valign=bottom>&nbsp;<br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Functions</strong></big></font></td></tr>
-    
-<tr><td bgcolor="#eeaa77"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
-<td width="100%"><dl><dt><a name="-getgrgid"><strong>getgrgid</strong></a>(...)</dt><dd><tt><a href="#-getgrgid">getgrgid</a>(id)&nbsp;-&gt;&nbsp;tuple<br>
-Return&nbsp;the&nbsp;group&nbsp;database&nbsp;entry&nbsp;for&nbsp;the&nbsp;given&nbsp;numeric&nbsp;group&nbsp;ID.&nbsp;&nbsp;If<br>
-id&nbsp;is&nbsp;not&nbsp;valid,&nbsp;raise&nbsp;KeyError.</tt></dd></dl>
- <dl><dt><a name="-getpwuid"><strong>getpwuid</strong></a>(...)</dt><dd><tt><a href="#-getpwuid">getpwuid</a>(uid)&nbsp;-&gt;&nbsp;(pw_name,pw_passwd,pw_uid,<br>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pw_gid,pw_gecos,pw_dir,pw_shell)<br>
-Return&nbsp;the&nbsp;password&nbsp;database&nbsp;entry&nbsp;for&nbsp;the&nbsp;given&nbsp;numeric&nbsp;user&nbsp;ID.<br>
-See&nbsp;pwd.__doc__&nbsp;for&nbsp;more&nbsp;on&nbsp;password&nbsp;database&nbsp;entries.</tt></dd></dl>
- <dl><dt><a name="-getuid"><strong>getuid</strong></a>(...)</dt><dd><tt><a href="#-getuid">getuid</a>()&nbsp;-&gt;&nbsp;uid<br>
-&nbsp;<br>
-Return&nbsp;the&nbsp;current&nbsp;process's&nbsp;user&nbsp;id.</tt></dd></dl>
- <dl><dt><a name="-localtime"><strong>localtime</strong></a>(...)</dt><dd><tt><a href="#-localtime">localtime</a>([seconds])&nbsp;-&gt;&nbsp;(tm_year,tm_mon,tm_mday,tm_hour,tm_min,<br>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tm_sec,tm_wday,tm_yday,tm_isdst)<br>
-&nbsp;<br>
-Convert&nbsp;seconds&nbsp;since&nbsp;the&nbsp;Epoch&nbsp;to&nbsp;a&nbsp;time&nbsp;tuple&nbsp;expressing&nbsp;local&nbsp;time.<br>
-When&nbsp;'seconds'&nbsp;is&nbsp;not&nbsp;passed&nbsp;in,&nbsp;convert&nbsp;the&nbsp;current&nbsp;time&nbsp;instead.</tt></dd></dl>
- <dl><dt><a name="-strftime"><strong>strftime</strong></a>(...)</dt><dd><tt><a href="#-strftime">strftime</a>(format[,&nbsp;tuple])&nbsp;-&gt;&nbsp;string<br>
-&nbsp;<br>
-Convert&nbsp;a&nbsp;time&nbsp;tuple&nbsp;to&nbsp;a&nbsp;string&nbsp;according&nbsp;to&nbsp;a&nbsp;format&nbsp;specification.<br>
-See&nbsp;the&nbsp;library&nbsp;reference&nbsp;manual&nbsp;for&nbsp;formatting&nbsp;codes.&nbsp;When&nbsp;the&nbsp;time&nbsp;tuple<br>
-is&nbsp;not&nbsp;present,&nbsp;current&nbsp;time&nbsp;as&nbsp;returned&nbsp;by&nbsp;<a href="#-localtime">localtime</a>()&nbsp;is&nbsp;used.</tt></dd></dl>
- <dl><dt><a name="-time"><strong>time</strong></a>(...)</dt><dd><tt><a href="#-time">time</a>()&nbsp;-&gt;&nbsp;floating&nbsp;point&nbsp;number<br>
-&nbsp;<br>
-Return&nbsp;the&nbsp;current&nbsp;time&nbsp;in&nbsp;seconds&nbsp;since&nbsp;the&nbsp;Epoch.<br>
-Fractions&nbsp;of&nbsp;a&nbsp;second&nbsp;may&nbsp;be&nbsp;present&nbsp;if&nbsp;the&nbsp;system&nbsp;clock&nbsp;provides&nbsp;them.</tt></dd></dl>
-</td></tr></table>
-</body></html>
\ No newline at end of file
diff --git a/doc/pydoc/ranger.gui.widgets.taskview.html b/doc/pydoc/ranger.gui.widgets.taskview.html
deleted file mode 100644
index 5ee06814..00000000
--- a/doc/pydoc/ranger.gui.widgets.taskview.html
+++ /dev/null
@@ -1,152 +0,0 @@
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html><head><title>Python: module ranger.gui.widgets.taskview</title>
-</head><body bgcolor="#f0f0f8">
-
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="heading">
-<tr bgcolor="#7799ee">
-<td valign=bottom>&nbsp;<br>
-<font color="#ffffff" face="helvetica, arial">&nbsp;<br><big><big><strong><a href="ranger.html"><font color="#ffffff">ranger</font></a>.<a href="ranger.gui.html"><font color="#ffffff">gui</font></a>.<a href="ranger.gui.widgets.html"><font color="#ffffff">widgets</font></a>.taskview</strong></big></big></font></td
-><td align=right valign=bottom
-><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:/home/hut/ranger/ranger/gui/widgets/taskview.py">/home/hut/ranger/ranger/gui/widgets/taskview.py</a></font></td></tr></table>
-    <p><tt>The&nbsp;<a href="#TaskView">TaskView</a>&nbsp;allows&nbsp;you&nbsp;to&nbsp;modify&nbsp;what&nbsp;the&nbsp;loader&nbsp;is&nbsp;doing.</tt></p>
-<p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#aa55cc">
-<td colspan=3 valign=bottom>&nbsp;<br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Modules</strong></big></font></td></tr>
-    
-<tr><td bgcolor="#aa55cc"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
-<td width="100%"><table width="100%" summary="list"><tr><td width="25%" valign=top><a href="curses.html">curses</a><br>
-</td><td width="25%" valign=top></td><td width="25%" valign=top></td><td width="25%" valign=top></td></tr></table></td></tr></table><p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ee77aa">
-<td colspan=3 valign=bottom>&nbsp;<br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Classes</strong></big></font></td></tr>
-    
-<tr><td bgcolor="#ee77aa"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
-<td width="100%"><dl>
-<dt><font face="helvetica, arial"><a href="ranger.ext.accumulator.html#Accumulator">ranger.ext.accumulator.Accumulator</a>(<a href="__builtin__.html#object">__builtin__.object</a>)
-</font></dt><dd>
-<dl>
-<dt><font face="helvetica, arial"><a href="ranger.gui.widgets.taskview.html#TaskView">TaskView</a>(<a href="ranger.gui.widgets.html#Widget">ranger.gui.widgets.Widget</a>, <a href="ranger.ext.accumulator.html#Accumulator">ranger.ext.accumulator.Accumulator</a>)
-</font></dt></dl>
-</dd>
-<dt><font face="helvetica, arial"><a href="ranger.gui.widgets.html#Widget">ranger.gui.widgets.Widget</a>(<a href="ranger.gui.displayable.html#Displayable">ranger.gui.displayable.Displayable</a>)
-</font></dt><dd>
-<dl>
-<dt><font face="helvetica, arial"><a href="ranger.gui.widgets.taskview.html#TaskView">TaskView</a>(<a href="ranger.gui.widgets.html#Widget">ranger.gui.widgets.Widget</a>, <a href="ranger.ext.accumulator.html#Accumulator">ranger.ext.accumulator.Accumulator</a>)
-</font></dt></dl>
-</dd>
-</dl>
- <p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ffc8d8">
-<td colspan=3 valign=bottom>&nbsp;<br>
-<font color="#000000" face="helvetica, arial"><a name="TaskView">class <strong>TaskView</strong></a>(<a href="ranger.gui.widgets.html#Widget">ranger.gui.widgets.Widget</a>, <a href="ranger.ext.accumulator.html#Accumulator">ranger.ext.accumulator.Accumulator</a>)</font></td></tr>
-    
-<tr><td bgcolor="#ffc8d8"><tt>&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
-<td width="100%"><dl><dt>Method resolution order:</dt>
-<dd><a href="ranger.gui.widgets.taskview.html#TaskView">TaskView</a></dd>
-<dd><a href="ranger.gui.widgets.html#Widget">ranger.gui.widgets.Widget</a></dd>
-<dd><a href="ranger.gui.displayable.html#Displayable">ranger.gui.displayable.Displayable</a></dd>
-<dd><a href="ranger.shared.html#EnvironmentAware">ranger.shared.EnvironmentAware</a></dd>
-<dd><a href="ranger.shared.html#FileManagerAware">ranger.shared.FileManagerAware</a></dd>
-<dd><a href="ranger.shared.html#Awareness">ranger.shared.Awareness</a></dd>
-<dd><a href="ranger.gui.curses_shortcuts.html#CursesShortcuts">ranger.gui.curses_shortcuts.CursesShortcuts</a></dd>
-<dd><a href="ranger.shared.settings.html#SettingsAware">ranger.shared.settings.SettingsAware</a></dd>
-<dd><a href="ranger.ext.accumulator.html#Accumulator">ranger.ext.accumulator.Accumulator</a></dd>
-<dd><a href="__builtin__.html#object">__builtin__.object</a></dd>
-</dl>
-<hr>
-Methods defined here:<br>
-<dl><dt><a name="TaskView-__init__"><strong>__init__</strong></a>(self, win)</dt></dl>
-
-<dl><dt><a name="TaskView-draw"><strong>draw</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="TaskView-finalize"><strong>finalize</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="TaskView-get_list"><strong>get_list</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="TaskView-press"><strong>press</strong></a>(self, key)</dt></dl>
-
-<dl><dt><a name="TaskView-task_move"><strong>task_move</strong></a>(self, to, i<font color="#909090">=None</font>)</dt></dl>
-
-<dl><dt><a name="TaskView-task_remove"><strong>task_remove</strong></a>(self, i<font color="#909090">=None</font>)</dt></dl>
-
-<hr>
-Data and other attributes defined here:<br>
-<dl><dt><strong>old_lst</strong> = None</dl>
-
-<hr>
-Methods inherited from <a href="ranger.gui.displayable.html#Displayable">ranger.gui.displayable.Displayable</a>:<br>
-<dl><dt><a name="TaskView-__bool__"><strong>__bool__</strong></a> = __nonzero__(self)</dt><dd><tt>Always&nbsp;True</tt></dd></dl>
-
-<dl><dt><a name="TaskView-__contains__"><strong>__contains__</strong></a>(self, item)</dt><dd><tt>Is&nbsp;item&nbsp;inside&nbsp;the&nbsp;boundaries?<br>
-item&nbsp;can&nbsp;be&nbsp;an&nbsp;iterable&nbsp;like&nbsp;[y,&nbsp;x]&nbsp;or&nbsp;an&nbsp;object&nbsp;with&nbsp;x&nbsp;and&nbsp;y&nbsp;methods.</tt></dd></dl>
-
-<dl><dt><a name="TaskView-__nonzero__"><strong>__nonzero__</strong></a>(self)</dt><dd><tt>Always&nbsp;True</tt></dd></dl>
-
-<dl><dt><a name="TaskView-__str__"><strong>__str__</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="TaskView-click"><strong>click</strong></a>(self, event)</dt><dd><tt>Called&nbsp;when&nbsp;a&nbsp;mouse&nbsp;key&nbsp;is&nbsp;pressed&nbsp;and&nbsp;self.<strong>focused</strong>&nbsp;is&nbsp;True.<br>
-Override&nbsp;this!</tt></dd></dl>
-
-<dl><dt><a name="TaskView-contains_point"><strong>contains_point</strong></a>(self, y, x)</dt><dd><tt>Test&nbsp;whether&nbsp;the&nbsp;point&nbsp;(with&nbsp;absolute&nbsp;coordinates)&nbsp;lies<br>
-within&nbsp;the&nbsp;boundaries&nbsp;of&nbsp;this&nbsp;object.</tt></dd></dl>
-
-<dl><dt><a name="TaskView-destroy"><strong>destroy</strong></a>(self)</dt><dd><tt>Called&nbsp;when&nbsp;the&nbsp;object&nbsp;is&nbsp;destroyed.<br>
-Override&nbsp;this!</tt></dd></dl>
-
-<dl><dt><a name="TaskView-poke"><strong>poke</strong></a>(self)</dt><dd><tt>Called&nbsp;before&nbsp;drawing,&nbsp;even&nbsp;if&nbsp;invisible</tt></dd></dl>
-
-<dl><dt><a name="TaskView-resize"><strong>resize</strong></a>(self, y, x, hei<font color="#909090">=None</font>, wid<font color="#909090">=None</font>)</dt><dd><tt>Resize&nbsp;the&nbsp;widget</tt></dd></dl>
-
-<hr>
-Data and other attributes inherited from <a href="ranger.shared.html#EnvironmentAware">ranger.shared.EnvironmentAware</a>:<br>
-<dl><dt><strong>env</strong> = None</dl>
-
-<hr>
-Data and other attributes inherited from <a href="ranger.shared.html#FileManagerAware">ranger.shared.FileManagerAware</a>:<br>
-<dl><dt><strong>fm</strong> = None</dl>
-
-<hr>
-Data descriptors inherited from <a href="ranger.shared.html#Awareness">ranger.shared.Awareness</a>:<br>
-<dl><dt><strong>__dict__</strong></dt>
-<dd><tt>dictionary&nbsp;for&nbsp;instance&nbsp;variables&nbsp;(if&nbsp;defined)</tt></dd>
-</dl>
-<dl><dt><strong>__weakref__</strong></dt>
-<dd><tt>list&nbsp;of&nbsp;weak&nbsp;references&nbsp;to&nbsp;the&nbsp;object&nbsp;(if&nbsp;defined)</tt></dd>
-</dl>
-<hr>
-Methods inherited from <a href="ranger.gui.curses_shortcuts.html#CursesShortcuts">ranger.gui.curses_shortcuts.CursesShortcuts</a>:<br>
-<dl><dt><a name="TaskView-addnstr"><strong>addnstr</strong></a>(self, *args)</dt></dl>
-
-<dl><dt><a name="TaskView-addstr"><strong>addstr</strong></a>(self, *args)</dt></dl>
-
-<dl><dt><a name="TaskView-color"><strong>color</strong></a>(self, *keys)</dt><dd><tt>Change&nbsp;the&nbsp;colors&nbsp;from&nbsp;now&nbsp;on.</tt></dd></dl>
-
-<dl><dt><a name="TaskView-color_at"><strong>color_at</strong></a>(self, y, x, wid, *keys)</dt><dd><tt>Change&nbsp;the&nbsp;colors&nbsp;at&nbsp;the&nbsp;specified&nbsp;position</tt></dd></dl>
-
-<dl><dt><a name="TaskView-color_reset"><strong>color_reset</strong></a>(self)</dt><dd><tt>Change&nbsp;the&nbsp;colors&nbsp;to&nbsp;the&nbsp;default&nbsp;colors</tt></dd></dl>
-
-<hr>
-Data and other attributes inherited from <a href="ranger.shared.settings.html#SettingsAware">ranger.shared.settings.SettingsAware</a>:<br>
-<dl><dt><strong>settings</strong> = {}</dl>
-
-<hr>
-Methods inherited from <a href="ranger.ext.accumulator.html#Accumulator">ranger.ext.accumulator.Accumulator</a>:<br>
-<dl><dt><a name="TaskView-correct_pointer"><strong>correct_pointer</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="TaskView-get_height"><strong>get_height</strong></a>(self)</dt><dd><tt>OVERRIDE&nbsp;THIS</tt></dd></dl>
-
-<dl><dt><a name="TaskView-move"><strong>move</strong></a>(self, narg<font color="#909090">=None</font>, **keywords)</dt></dl>
-
-<dl><dt><a name="TaskView-move_to_obj"><strong>move_to_obj</strong></a>(self, arg, attr<font color="#909090">=None</font>)</dt></dl>
-
-<dl><dt><a name="TaskView-pointer_is_synced"><strong>pointer_is_synced</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="TaskView-sync_index"><strong>sync_index</strong></a>(self, **kw)</dt></dl>
-
-</td></tr></table></td></tr></table>
-</body></html>
\ No newline at end of file
diff --git a/doc/pydoc/ranger.gui.widgets.titlebar.html b/doc/pydoc/ranger.gui.widgets.titlebar.html
deleted file mode 100644
index b8b4829c..00000000
--- a/doc/pydoc/ranger.gui.widgets.titlebar.html
+++ /dev/null
@@ -1,134 +0,0 @@
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html><head><title>Python: module ranger.gui.widgets.titlebar</title>
-</head><body bgcolor="#f0f0f8">
-
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="heading">
-<tr bgcolor="#7799ee">
-<td valign=bottom>&nbsp;<br>
-<font color="#ffffff" face="helvetica, arial">&nbsp;<br><big><big><strong><a href="ranger.html"><font color="#ffffff">ranger</font></a>.<a href="ranger.gui.html"><font color="#ffffff">gui</font></a>.<a href="ranger.gui.widgets.html"><font color="#ffffff">widgets</font></a>.titlebar</strong></big></big></font></td
-><td align=right valign=bottom
-><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:/home/hut/ranger/ranger/gui/widgets/titlebar.py">/home/hut/ranger/ranger/gui/widgets/titlebar.py</a></font></td></tr></table>
-    <p><tt>The&nbsp;titlebar&nbsp;is&nbsp;the&nbsp;widget&nbsp;at&nbsp;the&nbsp;top,&nbsp;giving&nbsp;you&nbsp;broad&nbsp;orientation.<br>
-&nbsp;<br>
-It&nbsp;displays&nbsp;the&nbsp;current&nbsp;path&nbsp;among&nbsp;other&nbsp;things.</tt></p>
-<p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ee77aa">
-<td colspan=3 valign=bottom>&nbsp;<br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Classes</strong></big></font></td></tr>
-    
-<tr><td bgcolor="#ee77aa"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
-<td width="100%"><dl>
-<dt><font face="helvetica, arial"><a href="ranger.gui.widgets.html#Widget">ranger.gui.widgets.Widget</a>(<a href="ranger.gui.displayable.html#Displayable">ranger.gui.displayable.Displayable</a>)
-</font></dt><dd>
-<dl>
-<dt><font face="helvetica, arial"><a href="ranger.gui.widgets.titlebar.html#TitleBar">TitleBar</a>
-</font></dt></dl>
-</dd>
-</dl>
- <p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ffc8d8">
-<td colspan=3 valign=bottom>&nbsp;<br>
-<font color="#000000" face="helvetica, arial"><a name="TitleBar">class <strong>TitleBar</strong></a>(<a href="ranger.gui.widgets.html#Widget">ranger.gui.widgets.Widget</a>)</font></td></tr>
-    
-<tr><td bgcolor="#ffc8d8"><tt>&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
-<td width="100%"><dl><dt>Method resolution order:</dt>
-<dd><a href="ranger.gui.widgets.titlebar.html#TitleBar">TitleBar</a></dd>
-<dd><a href="ranger.gui.widgets.html#Widget">ranger.gui.widgets.Widget</a></dd>
-<dd><a href="ranger.gui.displayable.html#Displayable">ranger.gui.displayable.Displayable</a></dd>
-<dd><a href="ranger.shared.html#EnvironmentAware">ranger.shared.EnvironmentAware</a></dd>
-<dd><a href="ranger.shared.html#FileManagerAware">ranger.shared.FileManagerAware</a></dd>
-<dd><a href="ranger.shared.html#Awareness">ranger.shared.Awareness</a></dd>
-<dd><a href="ranger.gui.curses_shortcuts.html#CursesShortcuts">ranger.gui.curses_shortcuts.CursesShortcuts</a></dd>
-<dd><a href="ranger.shared.settings.html#SettingsAware">ranger.shared.settings.SettingsAware</a></dd>
-<dd><a href="__builtin__.html#object">__builtin__.object</a></dd>
-</dl>
-<hr>
-Methods defined here:<br>
-<dl><dt><a name="TitleBar-__init__"><strong>__init__</strong></a>(self, *args, **keywords)</dt></dl>
-
-<dl><dt><a name="TitleBar-click"><strong>click</strong></a>(self, event)</dt><dd><tt>Handle&nbsp;a&nbsp;MouseEvent</tt></dd></dl>
-
-<dl><dt><a name="TitleBar-draw"><strong>draw</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="TitleBar-request_redraw"><strong>request_redraw</strong></a>(self)</dt></dl>
-
-<hr>
-Data and other attributes defined here:<br>
-<dl><dt><strong>need_redraw</strong> = False</dl>
-
-<dl><dt><strong>old_cf</strong> = None</dl>
-
-<dl><dt><strong>old_keybuffer</strong> = None</dl>
-
-<dl><dt><strong>old_wid</strong> = None</dl>
-
-<dl><dt><strong>result</strong> = None</dl>
-
-<dl><dt><strong>tab_width</strong> = 0</dl>
-
-<dl><dt><strong>throbber</strong> = ' '</dl>
-
-<hr>
-Methods inherited from <a href="ranger.gui.displayable.html#Displayable">ranger.gui.displayable.Displayable</a>:<br>
-<dl><dt><a name="TitleBar-__bool__"><strong>__bool__</strong></a> = __nonzero__(self)</dt><dd><tt>Always&nbsp;True</tt></dd></dl>
-
-<dl><dt><a name="TitleBar-__contains__"><strong>__contains__</strong></a>(self, item)</dt><dd><tt>Is&nbsp;item&nbsp;inside&nbsp;the&nbsp;boundaries?<br>
-item&nbsp;can&nbsp;be&nbsp;an&nbsp;iterable&nbsp;like&nbsp;[y,&nbsp;x]&nbsp;or&nbsp;an&nbsp;object&nbsp;with&nbsp;x&nbsp;and&nbsp;y&nbsp;methods.</tt></dd></dl>
-
-<dl><dt><a name="TitleBar-__nonzero__"><strong>__nonzero__</strong></a>(self)</dt><dd><tt>Always&nbsp;True</tt></dd></dl>
-
-<dl><dt><a name="TitleBar-__str__"><strong>__str__</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="TitleBar-contains_point"><strong>contains_point</strong></a>(self, y, x)</dt><dd><tt>Test&nbsp;whether&nbsp;the&nbsp;point&nbsp;(with&nbsp;absolute&nbsp;coordinates)&nbsp;lies<br>
-within&nbsp;the&nbsp;boundaries&nbsp;of&nbsp;this&nbsp;object.</tt></dd></dl>
-
-<dl><dt><a name="TitleBar-destroy"><strong>destroy</strong></a>(self)</dt><dd><tt>Called&nbsp;when&nbsp;the&nbsp;object&nbsp;is&nbsp;destroyed.<br>
-Override&nbsp;this!</tt></dd></dl>
-
-<dl><dt><a name="TitleBar-finalize"><strong>finalize</strong></a>(self)</dt><dd><tt>Called&nbsp;after&nbsp;every&nbsp;displayable&nbsp;is&nbsp;done&nbsp;drawing.<br>
-Override&nbsp;this!</tt></dd></dl>
-
-<dl><dt><a name="TitleBar-poke"><strong>poke</strong></a>(self)</dt><dd><tt>Called&nbsp;before&nbsp;drawing,&nbsp;even&nbsp;if&nbsp;invisible</tt></dd></dl>
-
-<dl><dt><a name="TitleBar-press"><strong>press</strong></a>(self, key)</dt><dd><tt>Called&nbsp;when&nbsp;a&nbsp;key&nbsp;is&nbsp;pressed&nbsp;and&nbsp;self.<strong>focused</strong>&nbsp;is&nbsp;True.<br>
-Override&nbsp;this!</tt></dd></dl>
-
-<dl><dt><a name="TitleBar-resize"><strong>resize</strong></a>(self, y, x, hei<font color="#909090">=None</font>, wid<font color="#909090">=None</font>)</dt><dd><tt>Resize&nbsp;the&nbsp;widget</tt></dd></dl>
-
-<hr>
-Data and other attributes inherited from <a href="ranger.shared.html#EnvironmentAware">ranger.shared.EnvironmentAware</a>:<br>
-<dl><dt><strong>env</strong> = None</dl>
-
-<hr>
-Data and other attributes inherited from <a href="ranger.shared.html#FileManagerAware">ranger.shared.FileManagerAware</a>:<br>
-<dl><dt><strong>fm</strong> = None</dl>
-
-<hr>
-Data descriptors inherited from <a href="ranger.shared.html#Awareness">ranger.shared.Awareness</a>:<br>
-<dl><dt><strong>__dict__</strong></dt>
-<dd><tt>dictionary&nbsp;for&nbsp;instance&nbsp;variables&nbsp;(if&nbsp;defined)</tt></dd>
-</dl>
-<dl><dt><strong>__weakref__</strong></dt>
-<dd><tt>list&nbsp;of&nbsp;weak&nbsp;references&nbsp;to&nbsp;the&nbsp;object&nbsp;(if&nbsp;defined)</tt></dd>
-</dl>
-<hr>
-Methods inherited from <a href="ranger.gui.curses_shortcuts.html#CursesShortcuts">ranger.gui.curses_shortcuts.CursesShortcuts</a>:<br>
-<dl><dt><a name="TitleBar-addnstr"><strong>addnstr</strong></a>(self, *args)</dt></dl>
-
-<dl><dt><a name="TitleBar-addstr"><strong>addstr</strong></a>(self, *args)</dt></dl>
-
-<dl><dt><a name="TitleBar-color"><strong>color</strong></a>(self, *keys)</dt><dd><tt>Change&nbsp;the&nbsp;colors&nbsp;from&nbsp;now&nbsp;on.</tt></dd></dl>
-
-<dl><dt><a name="TitleBar-color_at"><strong>color_at</strong></a>(self, y, x, wid, *keys)</dt><dd><tt>Change&nbsp;the&nbsp;colors&nbsp;at&nbsp;the&nbsp;specified&nbsp;position</tt></dd></dl>
-
-<dl><dt><a name="TitleBar-color_reset"><strong>color_reset</strong></a>(self)</dt><dd><tt>Change&nbsp;the&nbsp;colors&nbsp;to&nbsp;the&nbsp;default&nbsp;colors</tt></dd></dl>
-
-<hr>
-Data and other attributes inherited from <a href="ranger.shared.settings.html#SettingsAware">ranger.shared.settings.SettingsAware</a>:<br>
-<dl><dt><strong>settings</strong> = {}</dl>
-
-</td></tr></table></td></tr></table>
-</body></html>
\ No newline at end of file
diff --git a/doc/pydoc/ranger.html b/doc/pydoc/ranger.html
deleted file mode 100644
index d741ca6b..00000000
--- a/doc/pydoc/ranger.html
+++ /dev/null
@@ -1,75 +0,0 @@
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html><head><title>Python: package ranger</title>
-</head><body bgcolor="#f0f0f8">
-
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="heading">
-<tr bgcolor="#7799ee">
-<td valign=bottom>&nbsp;<br>
-<font color="#ffffff" face="helvetica, arial">&nbsp;<br><big><big><strong>ranger</strong></big></big> (version 1.0.4)</font></td
-><td align=right valign=bottom
-><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:/home/hut/ranger/ranger/__init__.py">/home/hut/ranger/ranger/__init__.py</a></font></td></tr></table>
-    <p><tt>Ranger&nbsp;-&nbsp;file&nbsp;browser&nbsp;for&nbsp;the&nbsp;unix&nbsp;terminal</tt></p>
-<p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#aa55cc">
-<td colspan=3 valign=bottom>&nbsp;<br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Package Contents</strong></big></font></td></tr>
-    
-<tr><td bgcolor="#aa55cc"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
-<td width="100%"><table width="100%" summary="list"><tr><td width="25%" valign=top><a href="ranger.__main__.html">__main__</a><br>
-<a href="ranger.api.html"><strong>api</strong>&nbsp;(package)</a><br>
-<a href="ranger.colorschemes.html"><strong>colorschemes</strong>&nbsp;(package)</a><br>
-</td><td width="25%" valign=top><a href="ranger.container.html"><strong>container</strong>&nbsp;(package)</a><br>
-<a href="ranger.core.html"><strong>core</strong>&nbsp;(package)</a><br>
-<a href="ranger.defaults.html"><strong>defaults</strong>&nbsp;(package)</a><br>
-</td><td width="25%" valign=top><a href="ranger.ext.html"><strong>ext</strong>&nbsp;(package)</a><br>
-<a href="ranger.fsobject.html"><strong>fsobject</strong>&nbsp;(package)</a><br>
-<a href="ranger.gui.html"><strong>gui</strong>&nbsp;(package)</a><br>
-</td><td width="25%" valign=top><a href="ranger.help.html"><strong>help</strong>&nbsp;(package)</a><br>
-<a href="ranger.shared.html"><strong>shared</strong>&nbsp;(package)</a><br>
-</td></tr></table></td></tr></table><p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#eeaa77">
-<td colspan=3 valign=bottom>&nbsp;<br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Functions</strong></big></font></td></tr>
-    
-<tr><td bgcolor="#eeaa77"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
-<td width="100%"><dl><dt><a name="-log"><strong>log</strong></a>(*objects, **keywords)</dt><dd><tt>Writes&nbsp;objects&nbsp;to&nbsp;a&nbsp;logfile&nbsp;(for&nbsp;the&nbsp;purpose&nbsp;of&nbsp;debugging&nbsp;only.)<br>
-Has&nbsp;the&nbsp;same&nbsp;arguments&nbsp;as&nbsp;print()&nbsp;in&nbsp;python3.</tt></dd></dl>
- <dl><dt><a name="-relpath"><strong>relpath</strong></a>(*paths)</dt><dd><tt>returns&nbsp;the&nbsp;path&nbsp;relative&nbsp;to&nbsp;rangers&nbsp;library&nbsp;directory</tt></dd></dl>
- <dl><dt><a name="-relpath_conf"><strong>relpath_conf</strong></a>(*paths)</dt><dd><tt>returns&nbsp;the&nbsp;path&nbsp;relative&nbsp;to&nbsp;rangers&nbsp;configuration&nbsp;directory</tt></dd></dl>
-</td></tr></table><p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#55aa55">
-<td colspan=3 valign=bottom>&nbsp;<br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Data</strong></big></font></td></tr>
-    
-<tr><td bgcolor="#55aa55"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
-<td width="100%"><strong>DEFAULT_CONFDIR</strong> = '~/.ranger'<br>
-<strong>LOGFILE</strong> = '/tmp/errorlog'<br>
-<strong>RANGERDIR</strong> = '/home/hut/ranger/ranger'<br>
-<strong>USAGE</strong> = '%prog [options] [path/filename]'<br>
-<strong>__author__</strong> = 'Roman Zimbelmann'<br>
-<strong>__copyright__</strong> = '<font color="#c040c0">\n</font>Copyright (C) 2009, 2010  Roman Zimbelmann &lt;romanz@lavabit.com&gt;<font color="#c040c0">\n</font>'<br>
-<strong>__credits__</strong> = 'Roman Zimbelmann'<br>
-<strong>__email__</strong> = 'romanz@lavabit.com'<br>
-<strong>__license__</strong> = 'GPL3'<br>
-<strong>__maintainer__</strong> = 'Roman Zimbelmann'<br>
-<strong>__version__</strong> = '1.0.4'<br>
-<strong>arg</strong> = {'debug': False, 'flags': '', 'mode': 0, 'clean': False, 'confdir': '~/.ranger', 'targets': []}</td></tr></table><p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#7799ee">
-<td colspan=3 valign=bottom>&nbsp;<br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Author</strong></big></font></td></tr>
-    
-<tr><td bgcolor="#7799ee"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
-<td width="100%">Roman&nbsp;Zimbelmann</td></tr></table><p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#7799ee">
-<td colspan=3 valign=bottom>&nbsp;<br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Credits</strong></big></font></td></tr>
-    
-<tr><td bgcolor="#7799ee"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
-<td width="100%">Roman&nbsp;Zimbelmann</td></tr></table>
-</body></html>
\ No newline at end of file
diff --git a/doc/pydoc/ranger.shared.html b/doc/pydoc/ranger.shared.html
deleted file mode 100644
index be6d5da8..00000000
--- a/doc/pydoc/ranger.shared.html
+++ /dev/null
@@ -1,107 +0,0 @@
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html><head><title>Python: package ranger.shared</title>
-</head><body bgcolor="#f0f0f8">
-
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="heading">
-<tr bgcolor="#7799ee">
-<td valign=bottom>&nbsp;<br>
-<font color="#ffffff" face="helvetica, arial">&nbsp;<br><big><big><strong><a href="ranger.html"><font color="#ffffff">ranger</font></a>.shared</strong></big></big></font></td
-><td align=right valign=bottom
-><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:/home/hut/ranger/ranger/shared/__init__.py">/home/hut/ranger/ranger/shared/__init__.py</a></font></td></tr></table>
-    <p><tt>Shared&nbsp;objects&nbsp;contain&nbsp;singleton&nbsp;variables&nbsp;which&nbsp;can&nbsp;be<br>
-inherited,&nbsp;essentially&nbsp;acting&nbsp;like&nbsp;global&nbsp;variables.</tt></p>
-<p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#aa55cc">
-<td colspan=3 valign=bottom>&nbsp;<br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Package Contents</strong></big></font></td></tr>
-    
-<tr><td bgcolor="#aa55cc"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
-<td width="100%"><table width="100%" summary="list"><tr><td width="25%" valign=top><a href="ranger.shared.mimetype.html">mimetype</a><br>
-</td><td width="25%" valign=top><a href="ranger.shared.settings.html">settings</a><br>
-</td><td width="25%" valign=top></td><td width="25%" valign=top></td></tr></table></td></tr></table><p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ee77aa">
-<td colspan=3 valign=bottom>&nbsp;<br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Classes</strong></big></font></td></tr>
-    
-<tr><td bgcolor="#ee77aa"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
-<td width="100%"><dl>
-<dt><font face="helvetica, arial"><a href="__builtin__.html#object">__builtin__.object</a>
-</font></dt><dd>
-<dl>
-<dt><font face="helvetica, arial"><a href="ranger.shared.html#Awareness">Awareness</a>
-</font></dt><dd>
-<dl>
-<dt><font face="helvetica, arial"><a href="ranger.shared.html#EnvironmentAware">EnvironmentAware</a>
-</font></dt><dt><font face="helvetica, arial"><a href="ranger.shared.html#FileManagerAware">FileManagerAware</a>
-</font></dt></dl>
-</dd>
-</dl>
-</dd>
-</dl>
- <p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ffc8d8">
-<td colspan=3 valign=bottom>&nbsp;<br>
-<font color="#000000" face="helvetica, arial"><a name="Awareness">class <strong>Awareness</strong></a>(<a href="__builtin__.html#object">__builtin__.object</a>)</font></td></tr>
-    
-<tr><td bgcolor="#ffc8d8"><tt>&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
-<td width="100%">Data descriptors defined here:<br>
-<dl><dt><strong>__dict__</strong></dt>
-<dd><tt>dictionary&nbsp;for&nbsp;instance&nbsp;variables&nbsp;(if&nbsp;defined)</tt></dd>
-</dl>
-<dl><dt><strong>__weakref__</strong></dt>
-<dd><tt>list&nbsp;of&nbsp;weak&nbsp;references&nbsp;to&nbsp;the&nbsp;object&nbsp;(if&nbsp;defined)</tt></dd>
-</dl>
-</td></tr></table> <p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ffc8d8">
-<td colspan=3 valign=bottom>&nbsp;<br>
-<font color="#000000" face="helvetica, arial"><a name="EnvironmentAware">class <strong>EnvironmentAware</strong></a>(<a href="ranger.shared.html#Awareness">Awareness</a>)</font></td></tr>
-    
-<tr><td bgcolor="#ffc8d8"><tt>&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
-<td width="100%"><dl><dt>Method resolution order:</dt>
-<dd><a href="ranger.shared.html#EnvironmentAware">EnvironmentAware</a></dd>
-<dd><a href="ranger.shared.html#Awareness">Awareness</a></dd>
-<dd><a href="__builtin__.html#object">__builtin__.object</a></dd>
-</dl>
-<hr>
-Data and other attributes defined here:<br>
-<dl><dt><strong>env</strong> = None</dl>
-
-<hr>
-Data descriptors inherited from <a href="ranger.shared.html#Awareness">Awareness</a>:<br>
-<dl><dt><strong>__dict__</strong></dt>
-<dd><tt>dictionary&nbsp;for&nbsp;instance&nbsp;variables&nbsp;(if&nbsp;defined)</tt></dd>
-</dl>
-<dl><dt><strong>__weakref__</strong></dt>
-<dd><tt>list&nbsp;of&nbsp;weak&nbsp;references&nbsp;to&nbsp;the&nbsp;object&nbsp;(if&nbsp;defined)</tt></dd>
-</dl>
-</td></tr></table> <p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ffc8d8">
-<td colspan=3 valign=bottom>&nbsp;<br>
-<font color="#000000" face="helvetica, arial"><a name="FileManagerAware">class <strong>FileManagerAware</strong></a>(<a href="ranger.shared.html#Awareness">Awareness</a>)</font></td></tr>
-    
-<tr><td bgcolor="#ffc8d8"><tt>&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
-<td width="100%"><dl><dt>Method resolution order:</dt>
-<dd><a href="ranger.shared.html#FileManagerAware">FileManagerAware</a></dd>
-<dd><a href="ranger.shared.html#Awareness">Awareness</a></dd>
-<dd><a href="__builtin__.html#object">__builtin__.object</a></dd>
-</dl>
-<hr>
-Data and other attributes defined here:<br>
-<dl><dt><strong>fm</strong> = None</dl>
-
-<hr>
-Data descriptors inherited from <a href="ranger.shared.html#Awareness">Awareness</a>:<br>
-<dl><dt><strong>__dict__</strong></dt>
-<dd><tt>dictionary&nbsp;for&nbsp;instance&nbsp;variables&nbsp;(if&nbsp;defined)</tt></dd>
-</dl>
-<dl><dt><strong>__weakref__</strong></dt>
-<dd><tt>list&nbsp;of&nbsp;weak&nbsp;references&nbsp;to&nbsp;the&nbsp;object&nbsp;(if&nbsp;defined)</tt></dd>
-</dl>
-</td></tr></table></td></tr></table>
-</body></html>
\ No newline at end of file
diff --git a/doc/pydoc/ranger.shared.mimetype.html b/doc/pydoc/ranger.shared.mimetype.html
deleted file mode 100644
index 5ed1c0ba..00000000
--- a/doc/pydoc/ranger.shared.mimetype.html
+++ /dev/null
@@ -1,72 +0,0 @@
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html><head><title>Python: module ranger.shared.mimetype</title>
-</head><body bgcolor="#f0f0f8">
-
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="heading">
-<tr bgcolor="#7799ee">
-<td valign=bottom>&nbsp;<br>
-<font color="#ffffff" face="helvetica, arial">&nbsp;<br><big><big><strong><a href="ranger.html"><font color="#ffffff">ranger</font></a>.<a href="ranger.shared.html"><font color="#ffffff">shared</font></a>.mimetype</strong></big></big></font></td
-><td align=right valign=bottom
-><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:/home/hut/ranger/ranger/shared/mimetype.py">/home/hut/ranger/ranger/shared/mimetype.py</a></font></td></tr></table>
-    <p><tt>#&nbsp;Copyright&nbsp;(C)&nbsp;2009,&nbsp;2010&nbsp;&nbsp;Roman&nbsp;Zimbelmann&nbsp;&lt;romanz@lavabit.com&gt;<br>
-#<br>
-#&nbsp;This&nbsp;program&nbsp;is&nbsp;free&nbsp;software:&nbsp;you&nbsp;can&nbsp;redistribute&nbsp;it&nbsp;and/or&nbsp;modify<br>
-#&nbsp;it&nbsp;under&nbsp;the&nbsp;terms&nbsp;of&nbsp;the&nbsp;GNU&nbsp;General&nbsp;Public&nbsp;License&nbsp;as&nbsp;published&nbsp;by<br>
-#&nbsp;the&nbsp;Free&nbsp;Software&nbsp;Foundation,&nbsp;either&nbsp;version&nbsp;3&nbsp;of&nbsp;the&nbsp;License,&nbsp;or<br>
-#&nbsp;(at&nbsp;your&nbsp;option)&nbsp;any&nbsp;later&nbsp;version.<br>
-#<br>
-#&nbsp;This&nbsp;program&nbsp;is&nbsp;distributed&nbsp;in&nbsp;the&nbsp;hope&nbsp;that&nbsp;it&nbsp;will&nbsp;be&nbsp;useful,<br>
-#&nbsp;but&nbsp;WITHOUT&nbsp;ANY&nbsp;WARRANTY;&nbsp;without&nbsp;even&nbsp;the&nbsp;implied&nbsp;warranty&nbsp;of<br>
-#&nbsp;MERCHANTABILITY&nbsp;or&nbsp;FITNESS&nbsp;FOR&nbsp;A&nbsp;PARTICULAR&nbsp;PURPOSE.&nbsp;&nbsp;See&nbsp;the<br>
-#&nbsp;GNU&nbsp;General&nbsp;Public&nbsp;License&nbsp;for&nbsp;more&nbsp;details.<br>
-#<br>
-#&nbsp;You&nbsp;should&nbsp;have&nbsp;received&nbsp;a&nbsp;copy&nbsp;of&nbsp;the&nbsp;GNU&nbsp;General&nbsp;Public&nbsp;License<br>
-#&nbsp;along&nbsp;with&nbsp;this&nbsp;program.&nbsp;&nbsp;If&nbsp;not,&nbsp;see&nbsp;&lt;<a href="http://www.gnu.org/licenses/">http://www.gnu.org/licenses/</a>&gt;.</tt></p>
-<p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#aa55cc">
-<td colspan=3 valign=bottom>&nbsp;<br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Modules</strong></big></font></td></tr>
-    
-<tr><td bgcolor="#aa55cc"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
-<td width="100%"><table width="100%" summary="list"><tr><td width="25%" valign=top><a href="mimetypes.html">mimetypes</a><br>
-</td><td width="25%" valign=top></td><td width="25%" valign=top></td><td width="25%" valign=top></td></tr></table></td></tr></table><p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ee77aa">
-<td colspan=3 valign=bottom>&nbsp;<br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Classes</strong></big></font></td></tr>
-    
-<tr><td bgcolor="#ee77aa"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
-<td width="100%"><dl>
-<dt><font face="helvetica, arial"><a href="__builtin__.html#object">__builtin__.object</a>
-</font></dt><dd>
-<dl>
-<dt><font face="helvetica, arial"><a href="ranger.shared.mimetype.html#MimeTypeAware">MimeTypeAware</a>
-</font></dt></dl>
-</dd>
-</dl>
- <p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ffc8d8">
-<td colspan=3 valign=bottom>&nbsp;<br>
-<font color="#000000" face="helvetica, arial"><a name="MimeTypeAware">class <strong>MimeTypeAware</strong></a>(<a href="__builtin__.html#object">__builtin__.object</a>)</font></td></tr>
-    
-<tr><td bgcolor="#ffc8d8"><tt>&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
-<td width="100%">Methods defined here:<br>
-<dl><dt><a name="MimeTypeAware-__init__"><strong>__init__</strong></a>(self)</dt></dl>
-
-<hr>
-Data descriptors defined here:<br>
-<dl><dt><strong>__dict__</strong></dt>
-<dd><tt>dictionary&nbsp;for&nbsp;instance&nbsp;variables&nbsp;(if&nbsp;defined)</tt></dd>
-</dl>
-<dl><dt><strong>__weakref__</strong></dt>
-<dd><tt>list&nbsp;of&nbsp;weak&nbsp;references&nbsp;to&nbsp;the&nbsp;object&nbsp;(if&nbsp;defined)</tt></dd>
-</dl>
-<hr>
-Data and other attributes defined here:<br>
-<dl><dt><strong>mimetypes</strong> = {}</dl>
-
-</td></tr></table></td></tr></table>
-</body></html>
\ No newline at end of file
diff --git a/doc/pydoc/ranger.shared.settings.html b/doc/pydoc/ranger.shared.settings.html
deleted file mode 100644
index 4415a12e..00000000
--- a/doc/pydoc/ranger.shared.settings.html
+++ /dev/null
@@ -1,130 +0,0 @@
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html><head><title>Python: module ranger.shared.settings</title>
-</head><body bgcolor="#f0f0f8">
-
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="heading">
-<tr bgcolor="#7799ee">
-<td valign=bottom>&nbsp;<br>
-<font color="#ffffff" face="helvetica, arial">&nbsp;<br><big><big><strong><a href="ranger.html"><font color="#ffffff">ranger</font></a>.<a href="ranger.shared.html"><font color="#ffffff">shared</font></a>.settings</strong></big></big></font></td
-><td align=right valign=bottom
-><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:/home/hut/ranger/ranger/shared/settings.py">/home/hut/ranger/ranger/shared/settings.py</a></font></td></tr></table>
-    <p><tt>#&nbsp;Copyright&nbsp;(C)&nbsp;2009,&nbsp;2010&nbsp;&nbsp;Roman&nbsp;Zimbelmann&nbsp;&lt;romanz@lavabit.com&gt;<br>
-#<br>
-#&nbsp;This&nbsp;program&nbsp;is&nbsp;free&nbsp;software:&nbsp;you&nbsp;can&nbsp;redistribute&nbsp;it&nbsp;and/or&nbsp;modify<br>
-#&nbsp;it&nbsp;under&nbsp;the&nbsp;terms&nbsp;of&nbsp;the&nbsp;GNU&nbsp;General&nbsp;Public&nbsp;License&nbsp;as&nbsp;published&nbsp;by<br>
-#&nbsp;the&nbsp;Free&nbsp;Software&nbsp;Foundation,&nbsp;either&nbsp;version&nbsp;3&nbsp;of&nbsp;the&nbsp;License,&nbsp;or<br>
-#&nbsp;(at&nbsp;your&nbsp;option)&nbsp;any&nbsp;later&nbsp;version.<br>
-#<br>
-#&nbsp;This&nbsp;program&nbsp;is&nbsp;distributed&nbsp;in&nbsp;the&nbsp;hope&nbsp;that&nbsp;it&nbsp;will&nbsp;be&nbsp;useful,<br>
-#&nbsp;but&nbsp;WITHOUT&nbsp;ANY&nbsp;WARRANTY;&nbsp;without&nbsp;even&nbsp;the&nbsp;implied&nbsp;warranty&nbsp;of<br>
-#&nbsp;MERCHANTABILITY&nbsp;or&nbsp;FITNESS&nbsp;FOR&nbsp;A&nbsp;PARTICULAR&nbsp;PURPOSE.&nbsp;&nbsp;See&nbsp;the<br>
-#&nbsp;GNU&nbsp;General&nbsp;Public&nbsp;License&nbsp;for&nbsp;more&nbsp;details.<br>
-#<br>
-#&nbsp;You&nbsp;should&nbsp;have&nbsp;received&nbsp;a&nbsp;copy&nbsp;of&nbsp;the&nbsp;GNU&nbsp;General&nbsp;Public&nbsp;License<br>
-#&nbsp;along&nbsp;with&nbsp;this&nbsp;program.&nbsp;&nbsp;If&nbsp;not,&nbsp;see&nbsp;&lt;<a href="http://www.gnu.org/licenses/">http://www.gnu.org/licenses/</a>&gt;.</tt></p>
-<p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#aa55cc">
-<td colspan=3 valign=bottom>&nbsp;<br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Modules</strong></big></font></td></tr>
-    
-<tr><td bgcolor="#aa55cc"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
-<td width="100%"><table width="100%" summary="list"><tr><td width="25%" valign=top><a href="ranger.html">ranger</a><br>
-</td><td width="25%" valign=top><a href="sys.html">sys</a><br>
-</td><td width="25%" valign=top></td><td width="25%" valign=top></td></tr></table></td></tr></table><p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ee77aa">
-<td colspan=3 valign=bottom>&nbsp;<br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Classes</strong></big></font></td></tr>
-    
-<tr><td bgcolor="#ee77aa"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
-<td width="100%"><dl>
-<dt><font face="helvetica, arial"><a href="__builtin__.html#object">__builtin__.object</a>
-</font></dt><dd>
-<dl>
-<dt><font face="helvetica, arial"><a href="ranger.shared.settings.html#SettingsAware">SettingsAware</a>
-</font></dt></dl>
-</dd>
-<dt><font face="helvetica, arial"><a href="ranger.ext.signal_dispatcher.html#SignalDispatcher">ranger.ext.signal_dispatcher.SignalDispatcher</a>(<a href="__builtin__.html#object">__builtin__.object</a>)
-</font></dt><dd>
-<dl>
-<dt><font face="helvetica, arial"><a href="ranger.shared.settings.html#SettingObject">SettingObject</a>
-</font></dt></dl>
-</dd>
-</dl>
- <p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ffc8d8">
-<td colspan=3 valign=bottom>&nbsp;<br>
-<font color="#000000" face="helvetica, arial"><a name="SettingObject">class <strong>SettingObject</strong></a>(<a href="ranger.ext.signal_dispatcher.html#SignalDispatcher">ranger.ext.signal_dispatcher.SignalDispatcher</a>)</font></td></tr>
-    
-<tr><td bgcolor="#ffc8d8"><tt>&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
-<td width="100%"><dl><dt>Method resolution order:</dt>
-<dd><a href="ranger.shared.settings.html#SettingObject">SettingObject</a></dd>
-<dd><a href="ranger.ext.signal_dispatcher.html#SignalDispatcher">ranger.ext.signal_dispatcher.SignalDispatcher</a></dd>
-<dd><a href="__builtin__.html#object">__builtin__.object</a></dd>
-</dl>
-<hr>
-Methods defined here:<br>
-<dl><dt><a name="SettingObject-__getattr__"><strong>__getattr__</strong></a>(self, name)</dt></dl>
-
-<dl><dt><a name="SettingObject-__getitem__"><strong>__getitem__</strong></a> = <a href="#SettingObject-__getattr__">__getattr__</a>(self, name)</dt></dl>
-
-<dl><dt><a name="SettingObject-__init__"><strong>__init__</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="SettingObject-__iter__"><strong>__iter__</strong></a>(self)</dt></dl>
-
-<dl><dt><a name="SettingObject-__setattr__"><strong>__setattr__</strong></a>(self, name, value)</dt></dl>
-
-<dl><dt><a name="SettingObject-__setitem__"><strong>__setitem__</strong></a> = <a href="#SettingObject-__setattr__">__setattr__</a>(self, name, value)</dt></dl>
-
-<dl><dt><a name="SettingObject-types_of"><strong>types_of</strong></a>(self, name)</dt></dl>
-
-<hr>
-Methods inherited from <a href="ranger.ext.signal_dispatcher.html#SignalDispatcher">ranger.ext.signal_dispatcher.SignalDispatcher</a>:<br>
-<dl><dt><a name="SettingObject-signal_bind"><strong>signal_bind</strong></a>(self, signal_name, function, priority<font color="#909090">=0.5</font>, weak<font color="#909090">=False</font>)</dt></dl>
-
-<dl><dt><a name="SettingObject-signal_clear"><strong>signal_clear</strong></a> = __init__(self)</dt></dl>
-
-<dl><dt><a name="SettingObject-signal_emit"><strong>signal_emit</strong></a>(self, signal_name, **kw)</dt></dl>
-
-<dl><dt><a name="SettingObject-signal_unbind"><strong>signal_unbind</strong></a>(self, signal_handler)</dt></dl>
-
-<hr>
-Data descriptors inherited from <a href="ranger.ext.signal_dispatcher.html#SignalDispatcher">ranger.ext.signal_dispatcher.SignalDispatcher</a>:<br>
-<dl><dt><strong>__dict__</strong></dt>
-<dd><tt>dictionary&nbsp;for&nbsp;instance&nbsp;variables&nbsp;(if&nbsp;defined)</tt></dd>
-</dl>
-<dl><dt><strong>__weakref__</strong></dt>
-<dd><tt>list&nbsp;of&nbsp;weak&nbsp;references&nbsp;to&nbsp;the&nbsp;object&nbsp;(if&nbsp;defined)</tt></dd>
-</dl>
-</td></tr></table> <p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#ffc8d8">
-<td colspan=3 valign=bottom>&nbsp;<br>
-<font color="#000000" face="helvetica, arial"><a name="SettingsAware">class <strong>SettingsAware</strong></a>(<a href="__builtin__.html#object">__builtin__.object</a>)</font></td></tr>
-    
-<tr bgcolor="#ffc8d8"><td rowspan=2><tt>&nbsp;&nbsp;&nbsp;</tt></td>
-<td colspan=2><tt>#&nbsp;--&nbsp;globalize&nbsp;the&nbsp;settings&nbsp;--<br>&nbsp;</tt></td></tr>
-<tr><td>&nbsp;</td>
-<td width="100%">Data descriptors defined here:<br>
-<dl><dt><strong>__dict__</strong></dt>
-<dd><tt>dictionary&nbsp;for&nbsp;instance&nbsp;variables&nbsp;(if&nbsp;defined)</tt></dd>
-</dl>
-<dl><dt><strong>__weakref__</strong></dt>
-<dd><tt>list&nbsp;of&nbsp;weak&nbsp;references&nbsp;to&nbsp;the&nbsp;object&nbsp;(if&nbsp;defined)</tt></dd>
-</dl>
-<hr>
-Data and other attributes defined here:<br>
-<dl><dt><strong>settings</strong> = {}</dl>
-
-</td></tr></table></td></tr></table><p>
-<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
-<tr bgcolor="#55aa55">
-<td colspan=3 valign=bottom>&nbsp;<br>
-<font color="#ffffff" face="helvetica, arial"><big><strong>Data</strong></big></font></td></tr>
-    
-<tr><td bgcolor="#55aa55"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
-<td width="100%"><strong>ALLOWED_SETTINGS</strong> = {'autosave_bookmarks': &lt;type 'bool'&gt;, 'collapse_preview': &lt;type 'bool'&gt;, 'colorscheme': &lt;type 'str'&gt;, 'colorscheme_overlay': (&lt;type 'NoneType'&gt;, &lt;type 'function'&gt;), 'column_ratios': (&lt;type 'tuple'&gt;, &lt;type 'list'&gt;, &lt;type 'set'&gt;), 'dirname_in_tabs': &lt;type 'bool'&gt;, 'display_size_in_main_column': &lt;type 'bool'&gt;, 'display_size_in_status_bar': &lt;type 'bool'&gt;, 'draw_bookmark_borders': &lt;type 'bool'&gt;, 'draw_borders': &lt;type 'bool'&gt;, ...}</td></tr></table>
-</body></html>
\ No newline at end of file
diff --git a/doc/ranger.1 b/doc/ranger.1
index b197d774..968e601b 100644
--- a/doc/ranger.1
+++ b/doc/ranger.1
@@ -1,4 +1,4 @@
-.TH RANGER 1 ranger-1.0.4
+.TH RANGER 1 ranger-1.3.0
 .SH NAME
 ranger - visual file manager
 .\"-----------------------------------------
@@ -33,12 +33,13 @@ Activate the clean mode:  Ranger will not access or create any configuration
 files nor will it leave any traces on your system.  This is useful when
 your configuration is broken, when you want to avoid clutter, etc.
 .TP
---fail-if-run
+--fail-unless-cd
 Return the exit code 1 if ranger is used to run a file, for example with
-`ranger --fail-if-run filename`.  This can be useful for scripts.
+`ranger --fail-unless-cd filename`.  This can be useful for scripts.
 .TP
 -r \fIdir\fR, --confdir=\fIdir\fR
-Define a different configuration directory.  The default is $HOME/.ranger.
+Define a different configuration directory.  The default is
+$XDG_CONFIG_HOME/ranger (which defaults to ~/.config/ranger)
 .TP
 -m \fIn\fR, --mode=\fIn\fR
 When a filename is supplied, make it run in mode \fIn\fR. Check the
@@ -176,19 +177,18 @@ of your parent shell after exiting ranger:
 .nf
 
 ranger() {
-    command ranger --fail-if-run $@ &&
-    cd "$(grep \\^\\' ~/.ranger/bookmarks | cut -b3-)"
+    command ranger --fail-unless-cd $@ &&
+    cd "$(grep \\^\\' ~/.config/ranger/bookmarks | cut -b3-)"
 }
 .\"-----------------------------------------
 .SH CONFIGURATION
 The files in
 .B ranger/defaults/
 can be copied into your configuration directory (by default, this is
-$HOME/.ranger) and customized according to your wishes.  
-.B ranger/defaults/options.py
-doesn't have to be copied completely though: Just define those settings
-you want to change and they will override the default values.
-Colorschemes can be placed in $HOME/.ranger/colorschemes.
+~/.config/ranger) and customized according to your wishes.
+Most files don't have to be copied completely though: Just define those
+settings you want to add or change and they will override the defauls.
+Colorschemes can be placed in ~/.config/ranger/colorschemes.
 .P
 All configuration is done in Python.
 Each configuration file should contain sufficient documentation.
@@ -214,7 +214,7 @@ The mailing list:
 .RB < http://savannah.nongnu.org/mail/?group=ranger >
 .\"-----------------------------------------
 .SH BUGS
-Since Chuck Norris, the Texas Ranger, watches over this project, there ought
-to be no bugs.  If you think otherwise, please report them here:
+Please report them here and include as much relevant information
+as possible:
 .P
 .RB < http://savannah.nongnu.org/bugs/?group=ranger >
diff --git a/ranger.py b/ranger.py
index aca1b557..5652ba69 100755
--- a/ranger.py
+++ b/ranger.py
@@ -23,13 +23,19 @@
 # after you exit ranger by starting it with: source ranger ranger
 """":
 if [ $1 ]; then
-	$@ --fail-if-run && cd "$(grep \^\' ~/.ranger/bookmarks | cut -b3-)"
+	if [ -z "$XDG_CONFIG_HOME" ]; then
+		"$@" --fail-unless-cd && cd "$(grep \^\' ~/.config/ranger/bookmarks | cut -b3-)"
+	else
+		"$@" --fail-unless-cd && cd "$(grep \^\' "$XDG_CONFIG_HOME"/ranger/bookmarks | cut -b3-)"
+	fi
 else
 	echo "usage: source path/to/ranger.py path/to/ranger.py"
 fi
 return 1
 """
 
+import sys
+
 # Redefine the docstring, since the previous one was hijacked to
 # embed a shellscript.
 __doc__ = """Ranger - file browser for the unix terminal"""
@@ -40,7 +46,6 @@ __doc__ = """Ranger - file browser for the unix terminal"""
 try:
 	from ranger.__main__ import main
 except ImportError:
-	import sys
 	if '-d' not in sys.argv and '--debug' not in sys.argv:
 		print("Can't import the main module.")
 		print("To run an uninstalled copy of ranger,")
@@ -48,4 +53,4 @@ except ImportError:
 	else:
 		raise
 else:
-	main()
+	sys.exit(main())
diff --git a/ranger/__init__.py b/ranger/__init__.py
index f46a1e76..1f8cc324 100644
--- a/ranger/__init__.py
+++ b/ranger/__init__.py
@@ -20,7 +20,7 @@ import sys
 from ranger.ext.openstruct import OpenStruct
 
 __license__ = 'GPL3'
-__version__ = '1.0.4'
+__version__ = '1.3.0'
 __credits__ = 'Roman Zimbelmann'
 __author__ = 'Roman Zimbelmann'
 __maintainer__ = 'Roman Zimbelmann'
@@ -31,7 +31,10 @@ Copyright (C) 2009, 2010  Roman Zimbelmann <romanz@lavabit.com>
 """
 
 USAGE = '%prog [options] [path/filename]'
-DEFAULT_CONFDIR = '~/.ranger'
+if 'XDG_CONFIG_HOME' in os.environ and os.environ['XDG_CONFIG_HOME']:
+	DEFAULT_CONFDIR = os.environ['XDG_CONFIG_HOME'] + '/ranger'
+else:
+	DEFAULT_CONFDIR = '~/.config/ranger'
 RANGERDIR = os.path.dirname(__file__)
 LOGFILE = '/tmp/errorlog'
 arg = OpenStruct(
diff --git a/ranger/__main__.py b/ranger/__main__.py
index c232b489..a9a18537 100644
--- a/ranger/__main__.py
+++ b/ranger/__main__.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/env python
 # coding=utf-8
 #
 # Copyright (C) 2009, 2010  Roman Zimbelmann <romanz@lavabit.com>
@@ -21,7 +21,8 @@
 # (ImportError will imply that this module can't be found)
 # convenient exception handling in ranger.py (ImportError)
 
-import os
+import locale
+import os.path
 import sys
 
 def parse_arguments():
@@ -29,13 +30,25 @@ def parse_arguments():
 	from optparse import OptionParser, SUPPRESS_HELP
 	from ranger import __version__, USAGE, DEFAULT_CONFDIR
 	from ranger.ext.openstruct import OpenStruct
-	parser = OptionParser(usage=USAGE, version='ranger ' + __version__)
+
+	minor_version = __version__[2:]  # assumes major version number is <10
+	if '.' in minor_version:
+		minor_version = minor_version[:minor_version.find('.')]
+	version_tag = ' (stable)' if int(minor_version) % 2 == 0 else ' (testing)'
+	if __version__.endswith('.0'):
+		version_string = 'ranger ' + __version__[:-2] + version_tag
+	else:
+		version_string = 'ranger ' + __version__ + version_tag
+
+	parser = OptionParser(usage=USAGE, version=version_string)
 
 	parser.add_option('-d', '--debug', action='store_true',
 			help="activate debug mode")
 	parser.add_option('-c', '--clean', action='store_true',
 			help="don't touch/require any config files. ")
-	parser.add_option('--fail-if-run', action='store_true',
+	parser.add_option('--fail-if-run', action='store_true', # COMPAT
+			help=SUPPRESS_HELP)
+	parser.add_option('--fail-unless-cd', action='store_true',
 			help="experimental: return the exit code 1 if ranger is" \
 					"used to run a file (with `ranger filename`)")
 	parser.add_option('-r', '--confdir', type='string',
@@ -50,6 +63,9 @@ def parse_arguments():
 	options, positional = parser.parse_args()
 	arg = OpenStruct(options.__dict__, targets=positional)
 	arg.confdir = os.path.expanduser(arg.confdir)
+	if arg.fail_if_run:
+		arg.fail_unless_cd = arg.fail_if_run
+		del arg['fail_if_run']
 
 	return arg
 
@@ -107,7 +123,7 @@ def load_settings(fm, clean):
 			pass
 		# COMPAT WARNING
 		if hasattr(keys, 'initialize_commands'):
-			print("Warning: the syntax for ~/.ranger/keys.py has changed.")
+			print("Warning: the syntax for ~/.config/ranger/keys.py has changed.")
 			print("Your custom keys are not loaded."\
 					"  Please update your configuration.")
 		allow_access_to_confdir(ranger.arg.confdir, False)
@@ -147,7 +163,18 @@ def main():
 		print(errormessage)
 		print('ranger requires the python curses module. Aborting.')
 		sys.exit(1)
-	from locale import getdefaultlocale, setlocale, LC_ALL
+
+	try: locale.setlocale(locale.LC_ALL, '')
+	except: print("Warning: Unable to set locale.  Expect encoding problems.")
+
+	if not 'SHELL' in os.environ:
+		os.environ['SHELL'] = 'bash'
+
+	arg = parse_arguments()
+	if arg.clean:
+		sys.dont_write_bytecode = True
+
+	# Need to decide whether to write bytecode or not before importing.
 	import ranger
 	from ranger.ext import curses_interrupt_handler
 	from ranger.core.runner import Runner
@@ -158,28 +185,15 @@ def main():
 	from ranger.shared import (EnvironmentAware, FileManagerAware,
 			SettingsAware)
 
-	# Ensure that a utf8 locale is set.
-	try:
-		if getdefaultlocale()[1] not in ('utf8', 'UTF-8'):
-			for locale in ('en_US.utf8', 'en_US.UTF-8'):
-				try: setlocale(LC_ALL, locale)
-				except: pass
-				else: break
-			else: setlocale(LC_ALL, '')
-		else: setlocale(LC_ALL, '')
-	except:
-		print("Warning: Unable to set locale.  Expect encoding problems.")
-
-	arg = parse_arguments()
-	ranger.arg = arg
-
-	if not ranger.arg.debug:
+	if not arg.debug:
 		curses_interrupt_handler.install_interrupt_handler()
+	ranger.arg = arg
 
 	SettingsAware._setup()
 
+	targets = arg.targets or ['.']
+	target = targets[0]
 	if arg.targets:
-		target = arg.targets[0]
 		if target.startswith('file://'):
 			target = target[7:]
 		if not os.access(target, os.F_OK):
@@ -191,18 +205,18 @@ def main():
 			runner = Runner(logfunc=print_function)
 			load_apps(runner, ranger.arg.clean)
 			runner(files=[File(target)], mode=arg.mode, flags=arg.flags)
-			sys.exit(1 if arg.fail_if_run else 0)
-		else:
-			path = target
-	else:
-		path = '.'
+			sys.exit(1 if arg.fail_unless_cd else 0)
 
-	# Initialize objects
-	EnvironmentAware._assign(Environment(path))
-	fm = FM()
-	crash_exception = None
+	crash_traceback = None
 	try:
+		# Initialize objects
+		EnvironmentAware._assign(Environment(target))
+		fm = FM()
+		fm.tabs = dict((n+1, os.path.abspath(path)) for n, path \
+				in enumerate(targets[:9]))
 		load_settings(fm, ranger.arg.clean)
+		if fm.env.username == 'root':
+			fm.settings.preview_files = False
 		FileManagerAware._assign(fm)
 		fm.ui = UI()
 
@@ -210,21 +224,23 @@ def main():
 		fm.initialize()
 		fm.ui.initialize()
 		fm.loop()
-	except Exception as e:
-		crash_exception = e
-		if not (arg.debug or arg.clean):
-			import traceback
-			dumpname = ranger.relpath_conf('traceback')
-			traceback.print_exc(file=open(dumpname, 'w'))
+	except Exception:
+		import traceback
+		crash_traceback = traceback.format_exc()
+	except SystemExit as error:
+		return error.args[0]
 	finally:
-		fm.destroy()
-		if crash_exception:
-			print("Fatal: " + str(crash_exception))
-			if arg.debug or arg.clean:
-				raise crash_exception
-			else:
-				print("A traceback has been saved to " + dumpname)
-				print("Please include it in a bugreport.")
+		try:
+			fm.destroy()
+		except (AttributeError, NameError):
+			pass
+		if crash_traceback:
+			print(crash_traceback)
+			print("Ranger crashed.  " \
+					"Please report this (including the traceback) at:")
+			print("http://savannah.nongnu.org/bugs/?group=ranger&func=additem")
+			return 1
+		return 0
 
 
 if __name__ == '__main__':
diff --git a/ranger/api/apps.py b/ranger/api/apps.py
index d2e9ac4f..91aae357 100644
--- a/ranger/api/apps.py
+++ b/ranger/api/apps.py
@@ -121,7 +121,8 @@ class Applications(FileManagerAware):
 		flags = 'flags' in keywords and keywords['flags'] or ""
 		for name in args:
 			assert isinstance(name, str)
-			setattr(cls, "app_" + name, _generic_wrapper(name, flags=flags))
+			if not hasattr(cls, "app_" + name):
+				setattr(cls, "app_" + name, _generic_wrapper(name, flags=flags))
 
 
 def tup(*args):
diff --git a/ranger/api/commands.py b/ranger/api/commands.py
index ca3f730d..f4e2ca76 100644
--- a/ranger/api/commands.py
+++ b/ranger/api/commands.py
@@ -17,7 +17,6 @@ import os
 from collections import deque
 from ranger.api import *
 from ranger.shared import FileManagerAware
-from ranger.gui.widgets import console_mode as cmode
 from ranger.ext.command_parser import LazyParser as parse
 
 
@@ -71,9 +70,8 @@ class Command(FileManagerAware):
 	"""Abstract command class"""
 	name = None
 	allow_abbrev = True
-	def __init__(self, line, mode):
+	def __init__(self, line):
 		self.line = line
-		self.mode = mode
 
 	def execute(self):
 		"""Override this"""
diff --git a/ranger/api/keys.py b/ranger/api/keys.py
index 13a4b07f..5812de39 100644
--- a/ranger/api/keys.py
+++ b/ranger/api/keys.py
@@ -20,7 +20,6 @@ from inspect import getargspec, ismethod
 
 from ranger import RANGERDIR
 from ranger.api import *
-from ranger.gui.widgets import console_mode as cmode
 from ranger.container.bookmarks import ALLOWED_KEYS as ALLOWED_BOOKMARK_KEYS
 from ranger.container.keymap import KeyMap, Direction, KeyMapWithDirections
 
diff --git a/ranger/colorschemes/default88.py b/ranger/colorschemes/default88.py
index 9af6dca7..9c00d9ff 100644
--- a/ranger/colorschemes/default88.py
+++ b/ranger/colorschemes/default88.py
@@ -20,9 +20,7 @@ For now, just map each of the 8 base colors to new ones
 for brighter blue, etc. and do some minor modifications.
 """
 
-from ranger.gui.colorscheme import ColorScheme
 from ranger.gui.color import *
-
 from ranger.colorschemes.default import Default
 import curses
 
diff --git a/ranger/colorschemes/jungle.py b/ranger/colorschemes/jungle.py
index 376091c0..af10a404 100644
--- a/ranger/colorschemes/jungle.py
+++ b/ranger/colorschemes/jungle.py
@@ -13,7 +13,6 @@
 # You should have received a copy of the GNU General Public License
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
-from ranger.gui.colorscheme import ColorScheme
 from ranger.gui.color import *
 from ranger.colorschemes.default import Default
 
diff --git a/ranger/colorschemes/texas.py b/ranger/colorschemes/texas.py
index 93fd4791..26e8916d 100644
--- a/ranger/colorschemes/texas.py
+++ b/ranger/colorschemes/texas.py
@@ -17,9 +17,7 @@
 Some experimental colorscheme.
 """
 
-from ranger.gui.colorscheme import ColorScheme
 from ranger.gui.color import *
-
 from ranger.colorschemes.default import Default
 import curses
 
diff --git a/ranger/container/bookmarks.py b/ranger/container/bookmarks.py
index f06b7498..1e801638 100644
--- a/ranger/container/bookmarks.py
+++ b/ranger/container/bookmarks.py
@@ -156,7 +156,10 @@ class Bookmarks(object):
 			for key, value in self.dct.items():
 				if type(key) == str\
 						and key in ALLOWED_KEYS:
-					f.write("{0}:{1}\n".format(str(key), str(value)))
+					try:
+						f.write("{0}:{1}\n".format(str(key), str(value)))
+					except:
+						pass
 
 			f.close()
 		self._update_mtime()
diff --git a/ranger/container/history.py b/ranger/container/history.py
index ba13775d..d7a45500 100644
--- a/ranger/container/history.py
+++ b/ranger/container/history.py
@@ -13,74 +13,118 @@
 # You should have received a copy of the GNU General Public License
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
-from collections import deque
-
 class HistoryEmptyException(Exception):
 	pass
 
 class History(object):
-	def __init__(self, maxlen = None):
-		self.history = deque(maxlen = maxlen)
-		self.history_forward = deque(maxlen = maxlen)
+	def __init__(self, maxlen=None, unique=True):
+		self._history = []
+		self._index = 0
+		self.maxlen = maxlen
+		self.unique = unique
 
 	def add(self, item):
-		if len(self.history) == 0 or self.history[-1] != item:
-			self.history.append(item)
-			self.history_forward.clear()
+		# Remove everything after index
+		if self._index < len(self._history) - 2:
+			del self._history[:self._index+1]
+		# Remove Duplicates
+		if self.unique:
+			try:
+				self._history.remove(item)
+			except:
+				pass
+		else:
+			if self._history and self._history[-1] == item:
+				del self._history[-1]
+		# Remove first if list is too long
+		if len(self._history) > self.maxlen - 1:
+			del self._history[0]
+		# Append the item and fast forward
+		self._history.append(item)
+		self._index = len(self._history) - 1
 
-	def modify(self, item):
+	def modify(self, item, unique=False):
+		if self._history and unique:
+			try:
+				self._history.remove(item)
+				self._index -= 1
+			except:
+				pass
 		try:
-			self.history[-1] = item
+			self._history[self._index] = item
 		except IndexError:
-			raise HistoryEmptyException
+			self.add(item)
 
 	def __len__(self):
-		return len(self.history)
+		return len(self._history)
 
 	def current(self):
-		try:
-			return self.history[-1]
-		except IndexError:
-			raise HistoryEmptyException()
+		if self._history:
+			return self._history[self._index]
+		else:
+			raise HistoryEmptyException
 
 	def top(self):
 		try:
-			return self.history_forward[-1]
+			return self._history[-1]
 		except IndexError:
-			try:
-				return self.history[-1]
-			except IndexError:
-				raise HistoryEmptyException()
+			raise HistoryEmptyException()
 
 	def bottom(self):
 		try:
-			return self.history[0]
+			return self._history[0]
 		except IndexError:
 			raise HistoryEmptyException()
 
 	def back(self):
-		if len(self.history) > 1:
-			self.history_forward.appendleft( self.history.pop() )
+		self._index -= 1
+		if self._index < 0:
+			self._index = 0
 		return self.current()
 
 	def move(self, n):
-		if n > 0:
-			return self.forward()
-		if n < 0:
-			return self.back()
+		self._index += n
+		if self._index > len(self._history) - 1:
+			self._index = len(self._history) - 1
+		if self._index < 0:
+			self._index = 0
+		return self.current()
+
+	def search(self, string, n):
+		if n != 0 and string:
+			step = n > 0 and 1 or -1
+			i = self._index
+			steps_left = steps_left_at_start = int(abs(n))
+			while steps_left:
+				i += step
+				if i >= len(self._history) or i < 0:
+					break
+				if self._history[i].startswith(string):
+					steps_left -= 1
+			if steps_left != steps_left_at_start:
+				self._index = i
+		return self.current()
 
 	def __iter__(self):
-		return self.history.__iter__()
+		return self._history.__iter__()
 
 	def next(self):
-		return self.history.next()
+		return self._history.next()
 
 	def forward(self):
-		if len(self.history_forward) > 0:
-			self.history.append( self.history_forward.popleft() )
+		if self._history:
+			self._index += 1
+			if self._index > len(self._history) - 1:
+				self._index = len(self._history) - 1
+		else:
+			self._index = 0
 		return self.current()
 
 	def fast_forward(self):
-		if self.history_forward:
-			self.history.extend(self.history_forward)
-			self.history_forward.clear()
+		if self._history:
+			self._index = len(self._history) - 1
+		else:
+			self._index = 0
+
+	def _left(self):  # used for unit test
+		return self._history[0:self._index+1]
diff --git a/ranger/core/actions.py b/ranger/core/actions.py
index 16978591..1493d84d 100644
--- a/ranger/core/actions.py
+++ b/ranger/core/actions.py
@@ -16,18 +16,25 @@
 import os
 import re
 import shutil
+import string
 from os.path import join, isdir
 from os import symlink, getcwd
 from inspect import cleandoc
 
 import ranger
 from ranger.ext.direction import Direction
+from ranger.ext.relative_symlink import relative_symlink
+from ranger.ext.shell_escape import shell_quote
 from ranger import fsobject
 from ranger.shared import FileManagerAware, EnvironmentAware, SettingsAware
-from ranger.gui.widgets import console_mode as cmode
 from ranger.fsobject import File
 from ranger.core.loader import CommandLoader
 
+class _MacroTemplate(string.Template):
+	"""A template for substituting macros in commands"""
+	delimiter = '%'
+	idpattern = '\d?[a-z]'
+
 class Actions(FileManagerAware, EnvironmentAware, SettingsAware):
 	search_method = 'ctime'
 	search_forward = False
@@ -68,10 +75,79 @@ class Actions(FileManagerAware, EnvironmentAware, SettingsAware):
 		"""Redraw the window"""
 		self.ui.redraw_window()
 
-	def open_console(self, mode=':', string='', prompt=None):
+	def open_console(self, string='', prompt=None, position=None):
 		"""Open the console if the current UI supports that"""
 		if hasattr(self.ui, 'open_console'):
-			self.ui.open_console(mode, string, prompt=prompt)
+			self.ui.open_console(string, prompt=prompt, position=position)
+
+	def execute_console(self, string=''):
+		"""Execute a command for the console"""
+		self.open_console(string=string)
+		self.ui.console.line = string
+		self.ui.console.execute()
+
+	def substitute_macros(self, string):
+		return _MacroTemplate(string).safe_substitute(self._get_macros())
+
+	def _get_macros(self):
+		macros = {}
+
+		if self.fm.env.cf:
+			macros['f'] = shell_quote(self.fm.env.cf.basename)
+		else:
+			macros['f'] = ''
+
+		macros['s'] = ' '.join(shell_quote(fl.basename) \
+				for fl in self.fm.env.get_selection())
+
+		macros['c'] = ' '.join(shell_quote(fl.path)
+				for fl in self.fm.env.copy)
+
+		macros['t'] = ' '.join(shell_quote(fl.basename)
+				for fl in self.fm.env.cwd.files
+				if fl.realpath in self.fm.tags)
+
+		if self.fm.env.cwd:
+			macros['d'] = shell_quote(self.fm.env.cwd.path)
+		else:
+			macros['d'] = '.'
+
+		# define d/f/s macros for each tab
+		for i in range(1,10):
+			try:
+				tab_dir_path = self.fm.tabs[i]
+			except:
+				continue
+			tab_dir = self.fm.env.get_directory(tab_dir_path)
+			i = str(i)
+			macros[i + 'd'] = shell_quote(tab_dir_path)
+			macros[i + 'f'] = shell_quote(tab_dir.pointed_obj.path)
+			macros[i + 's'] = ' '.join(shell_quote(fl.path)
+				for fl in tab_dir.get_selection())
+
+		# define D/F/S for the next tab
+		found_current_tab = False
+		next_tab_path = None
+		first_tab = None
+		for tab in self.fm.tabs:
+			if not first_tab:
+				first_tab = tab
+			if found_current_tab:
+				next_tab_path = self.fm.tabs[tab]
+				break
+			if self.fm.current_tab == tab:
+				found_current_tab = True
+		if found_current_tab and not next_tab_path:
+			next_tab_path = self.fm.tabs[first_tab]
+		next_tab = self.fm.env.get_directory(next_tab_path)
+
+		macros['D'] = shell_quote(next_tab)
+		macros['F'] = shell_quote(next_tab.pointed_obj.path)
+		macros['S'] = ' '.join(shell_quote(fl.path)
+			for fl in next_tab.get_selection())
+
+		return macros
+
 
 	def execute_file(self, files, **kw):
 		"""Execute a file.
@@ -127,7 +203,7 @@ class Actions(FileManagerAware, EnvironmentAware, SettingsAware):
 				selection = self.env.get_selection()
 				if not self.env.enter_dir(cf) and selection:
 					if self.execute_file(selection, mode=mode) is False:
-						self.open_console(cmode.OPEN_QUICK)
+						self.open_console('open_with ')
 			elif direction.vertical():
 				newpos = direction.move(
 						direction=direction.down(),
@@ -138,9 +214,11 @@ class Actions(FileManagerAware, EnvironmentAware, SettingsAware):
 				cwd.move(to=newpos)
 
 	def move_parent(self, n):
-		self.enter_dir('..')
-		self.move(down=n)
-		self.move(right=0)
+		parent = self.env.at_level(-1)
+		try:
+			self.env.enter_dir(parent.files[parent.pointer+n])
+		except IndexError:
+			pass
 
 	def history_go(self, relative):
 		"""Move back and forth in the history"""
@@ -272,13 +350,26 @@ class Actions(FileManagerAware, EnvironmentAware, SettingsAware):
 		if hasattr(self.ui, 'status'):
 			self.ui.status.need_redraw = True
 
+	def mark_in_direction(self, val=True, dirarg=None):
+		cwd = self.env.cwd
+		direction = Direction(dirarg)
+		pos, selected = direction.select(lst=cwd.files, current=cwd.pointer,
+				pagesize=self.env.termsize[0])
+		cwd.pointer = pos
+		cwd.correct_pointer()
+		for item in selected:
+			cwd.mark_item(item, val)
+
 	# --------------------------
 	# -- Searching
 	# --------------------------
 
 	def search_file(self, text, regexp=True):
 		if isinstance(text, str) and regexp:
-			text = re.compile(text, re.L | re.U | re.I)
+			try:
+				text = re.compile(text, re.L | re.U | re.I)
+			except:
+				return False
 		self.env.last_search = text
 		self.search(order='search')
 
@@ -332,7 +423,7 @@ class Actions(FileManagerAware, EnvironmentAware, SettingsAware):
 	# --------------------------
 	# -- Tags
 	# --------------------------
-	# Tags are saved in ~/.ranger/tagged and simply mark if a
+	# Tags are saved in ~/.config/ranger/tagged and simply mark if a
 	# file is important to you in any context.
 
 	def tag_toggle(self, movedown=None):
@@ -433,15 +524,29 @@ class Actions(FileManagerAware, EnvironmentAware, SettingsAware):
 
 		from ranger.help import get_help, get_help_by_index
 
+		scroll_to_line = 0
 		if narg is not None:
-			help_text = get_help_by_index(narg)
+			chapter, subchapter = int(str(narg)[0]), str(narg)[1:]
+			help_text = get_help_by_index(chapter)
+			lines = help_text.split('\n')
+			if chapter:
+				chapternumber = str(chapter) + '.' + subchapter + '. '
+				skip_to_content = True
+				for line_number, line in enumerate(lines):
+					if skip_to_content:
+						if line[:10] == '==========':
+							skip_to_content = False
+					else:
+						if line.startswith(chapternumber):
+							scroll_to_line = line_number
 		else:
 			help_text = get_help(topic)
+			lines = help_text.split('\n')
 
 		pager = self.ui.open_pager()
 		pager.markup = 'help'
-		lines = help_text.split('\n')
 		pager.set_source(lines)
+		pager.move(down=scroll_to_line)
 
 	def display_log(self):
 		if not hasattr(self.ui, 'open_pager'):
@@ -523,8 +628,9 @@ class Actions(FileManagerAware, EnvironmentAware, SettingsAware):
 		self.env.cut = False
 		self.ui.browser.main_column.request_redraw()
 
-	def copy(self, narg=None, dirarg=None):
-		"""Copy the selected items"""
+	def copy(self, mode='set', narg=None, dirarg=None):
+		"""Copy the selected items.  Modes are: 'set', 'add', 'remove'."""
+		assert mode in ('set', 'add', 'remove')
 		cwd = self.env.cwd
 		if not narg and not dirarg:
 			selected = (f for f in self.env.get_selection() if f in cwd.files)
@@ -538,22 +644,30 @@ class Actions(FileManagerAware, EnvironmentAware, SettingsAware):
 			pos, selected = direction.select(
 					override=narg, lst=cwd.files, current=cwd.pointer,
 					pagesize=self.env.termsize[0], offset=offset)
-			self.env.cwd.pointer = pos
-			self.env.cwd.correct_pointer()
-		self.env.copy = set(selected)
+			cwd.pointer = pos
+			cwd.correct_pointer()
+		if mode == 'set':
+			self.env.copy = set(selected)
+		elif mode == 'add':
+			self.env.copy.update(set(selected))
+		elif mode == 'remove':
+			self.env.copy.difference_update(set(selected))
 		self.env.cut = False
 		self.ui.browser.main_column.request_redraw()
 
-	def cut(self, narg=None, dirarg=None):
-		self.copy(narg=narg, dirarg=dirarg)
+	def cut(self, mode='set', narg=None, dirarg=None):
+		self.copy(mode=mode, narg=narg, dirarg=dirarg)
 		self.env.cut = True
 		self.ui.browser.main_column.request_redraw()
 
-	def paste_symlink(self):
+	def paste_symlink(self, relative=False):
 		copied_files = self.env.copy
 		for f in copied_files:
 			try:
-				symlink(f.path, join(getcwd(), f.basename))
+				if relative:
+					relative_symlink(f.path, join(getcwd(), f.basename))
+				else:
+					symlink(f.path, join(getcwd(), f.basename))
 			except Exception as x:
 				self.notify(x)
 
diff --git a/ranger/core/environment.py b/ranger/core/environment.py
index bb6abb36..61db8694 100644
--- a/ranger/core/environment.py
+++ b/ranger/core/environment.py
@@ -28,8 +28,8 @@ ALLOWED_CONTEXTS = ('browser', 'pager', 'embedded_pager', 'taskview',
 		'console')
 
 class Environment(SettingsAware, SignalDispatcher):
-	"""A collection of data which is relevant for more than
-	one class.
+	"""
+	A collection of data which is relevant for more than one class.
 	"""
 
 	cwd = None  # current directory
@@ -54,7 +54,7 @@ class Environment(SettingsAware, SignalDispatcher):
 		self.keybuffer = KeyBuffer(None, None)
 		self.keymanager = KeyManager(self.keybuffer, ALLOWED_CONTEXTS)
 		self.copy = set()
-		self.history = History(self.settings.max_history_size)
+		self.history = History(self.settings.max_history_size, unique=False)
 
 		try:
 			self.username = pwd.getpwuid(os.geteuid()).pw_name
@@ -166,7 +166,7 @@ class Environment(SettingsAware, SignalDispatcher):
 	def history_go(self, relative):
 		"""Move relative in history"""
 		if self.history:
-			self.history.move(relative).go()
+			self.history.move(relative).go(history=False)
 
 	def enter_dir(self, path, history = True):
 		"""Enter given path"""
diff --git a/ranger/core/runner.py b/ranger/core/runner.py
index 26424881..f35f99b7 100644
--- a/ranger/core/runner.py
+++ b/ranger/core/runner.py
@@ -37,10 +37,21 @@ from subprocess import Popen, PIPE
 from ranger.ext.waitpid_no_intr import waitpid_no_intr
 
 
-ALLOWED_FLAGS = 'sdpSDP'
+ALLOWED_FLAGS = 'sdpwSDPW'
 devnull = open(os.devnull, 'a')
 
 
+def press_enter():
+	"""Wait for an ENTER-press"""
+	sys.stdout.write("Press ENTER to continue")
+	try:
+		waitfnc = raw_input
+	except NameError:
+		# "raw_input" not available in python3
+		waitfnc = input
+	waitfnc()
+
+
 class Context(object):
 	"""
 	A context object contains data on how to run a process.
@@ -144,6 +155,7 @@ class Runner(object):
 
 		toggle_ui = True
 		pipe_output = False
+		wait_for_enter = False
 
 		popen_kws['args'] = action
 		if 'shell' not in popen_kws:
@@ -168,6 +180,9 @@ class Runner(object):
 		if 'd' in context.flags:
 			toggle_ui = False
 			context.wait = False
+		if 'w' in context.flags:
+			if not pipe_output and context.wait: # <-- sanity check
+				wait_for_enter = True
 
 		# Finally, run it
 
@@ -182,6 +197,8 @@ class Runner(object):
 			else:
 				if context.wait:
 					waitpid_no_intr(process.pid)
+				if wait_for_enter:
+					press_enter()
 		finally:
 			if toggle_ui:
 				self._activate_ui(True)
diff --git a/ranger/defaults/apps.py b/ranger/defaults/apps.py
index 4dd3bde5..47eff0c9 100644
--- a/ranger/defaults/apps.py
+++ b/ranger/defaults/apps.py
@@ -17,13 +17,13 @@
 This is the default ranger configuration file for filetype detection
 and application handling.
 
-You can place this file in your ~/.ranger/ directory and it will be used
+You can place this file in your ~/.config/ranger/ directory and it will be used
 instead of this one.  Though, to minimize your effort when upgrading ranger,
 you may want to subclass CustomApplications rather than making a full copy.
             
 This example modifies the behaviour of "feh" and adds a custom media player:
 
-#### start of the ~/.ranger/apps.py example
+#### start of the ~/.config/ranger/apps.py example
 	from ranger.defaults.apps import CustomApplications as DefaultApps
 	from ranger.api.apps import *
 			
@@ -55,29 +55,29 @@ class CustomApplications(Applications):
 		f = c.file
 
 		if f.basename.lower() == 'makefile':
-			return self.app_make(c)
+			return self.either(c, 'make')
 
 		if f.extension is not None:
 			if f.extension in ('pdf', ):
 				c.flags += 'd'
 				return self.either(c, 'evince', 'zathura', 'apvlv')
 			if f.extension in ('xml', ):
-				return self.app_editor(c)
+				return self.either(c, 'editor')
 			if f.extension in ('html', 'htm', 'xhtml'):
 				return self.either(c, 'firefox', 'opera', 'elinks')
 			if f.extension in ('swf', ):
 				return self.either(c, 'firefox', 'opera')
 			if f.extension == 'nes':
-				return self.app_fceux(c)
+				return self.either(c, 'fceux')
 			if f.extension in ('swc', 'smc'):
-				return self.app_zsnes(c)
+				return self.either(c, 'zsnes')
 
 		if f.mimetype is not None:
 			if INTERPRETED_LANGUAGES.match(f.mimetype):
-				return self.app_edit_or_run(c)
+				return self.either(c, 'edit_or_run')
 
 		if f.container:
-			return self.app_aunpack(c)
+			return self.either(c, 'aunpack', 'file_roller')
 
 		if f.video or f.audio:
 			if f.video:
@@ -85,16 +85,16 @@ class CustomApplications(Applications):
 			return self.either(c, 'mplayer', 'totem')
 
 		if f.image:
-			return self.either(c, 'feh', 'eye_of_gnome', 'mirage')
+			return self.either(c, 'feh', 'eog', 'mirage')
 
 		if f.document or f.filetype.startswith('text'):
-			return self.app_editor(c)
+			return self.either(c, 'editor')
 
 
 	# ----------------------------------------- application definitions
 	# Note: Trivial applications are defined at the bottom
 	def app_pager(self, c):
-		return tup('less', *c)
+		return tup('less', '-R', *c)
 
 	def app_editor(self, c):
 		try:
@@ -109,7 +109,6 @@ class CustomApplications(Applications):
 
 		return self.either(c, 'vim', 'emacs', 'nano')
 
-	@depends_on(app_editor, Applications.app_self)
 	def app_edit_or_run(self, c):
 		if c.mode is 1:
 			return self.app_self(c)
@@ -138,25 +137,12 @@ class CustomApplications(Applications):
 
 		c.flags += 'd'
 
-		if c.mode in arg:
+		if c.mode in arg: # mode 1, 2 and 3 will set the image as the background
 			return tup('feh', arg[c.mode], c.file.path)
-		if c.mode is 4:
-			return self.app_gimp(c)
-		if len(c.files) > 1:
-			return tup('feh', *c)
-
-		try:
-			from collections import deque
-
-			directory = self.fm.env.get_directory(c.file.dirname)
-			images = [f.path for f in directory.files if f.image]
-			position = images.index(c.file.path)
-			deq = deque(images)
-			deq.rotate(-position)
-
-			return tup('feh', *deq)
-		except:
-			return tup('feh', *c)
+		if c.mode is 11 and len(c.files) is 1: # view all files in the cwd
+			images = (f.basename for f in self.fm.env.cwd.files if f.image)
+			return tup('feh', '--start-at', c.file.basename, *images)
+		return tup('feh', *c)
 
 	@depends_on('aunpack')
 	def app_aunpack(self, c):
@@ -165,6 +151,11 @@ class CustomApplications(Applications):
 			return tup('aunpack', '-l', c.file.path)
 		return tup('aunpack', c.file.path)
 
+	@depends_on('file-roller')
+	def app_file_roller(self, c):
+		c.flags += 'd'
+		return tup('file-roller', c.file.path)
+
 	@depends_on('make')
 	def app_make(self, c):
 		if c.mode is 0:
diff --git a/ranger/defaults/commands.py b/ranger/defaults/commands.py
index 8728f9be..d3c05023 100644
--- a/ranger/defaults/commands.py
+++ b/ranger/defaults/commands.py
@@ -20,7 +20,7 @@ Each command is a subclass of `Command'.  Several methods are defined
 to interface with the console:
 	execute: call this method when the command is executed.
 	tab: call this method when tab is pressed.
-	quick: call this method after each keypress in the QuickCommandConsole.
+	quick: call this method after each keypress.
 
 The return values for tab() can be either:
 	None: There is no tab completion
@@ -32,7 +32,7 @@ The return value for quick() can be:
 The return value for execute() doesn't matter.
 
 If you want to add custom commands, you can create a file
-~/.ranger/commands.py, add the line:
+~/.config/ranger/commands.py, add the line:
 	from ranger.api.commands import *
 
 and write some command definitions, for example:
@@ -55,6 +55,8 @@ For a list of all actions, check /ranger/core/actions.py.
 '''
 
 from ranger.api.commands import *
+from ranger.ext.get_executables import get_executables
+from ranger.core.runner import ALLOWED_FLAGS
 
 alias('e', 'edit')
 alias('q', 'quit')
@@ -67,9 +69,6 @@ class cd(Command):
 
 	The cd command changes the directory.
 	The command 'cd -' is equivalent to typing ``.
-
-	In the quick console, the directory will be entered without the
-	need to press enter, as soon as there is one unambiguous match.
 	"""
 
 	def execute(self):
@@ -87,17 +86,153 @@ class cd(Command):
 	def tab(self):
 		return self._tab_only_directories()
 
-	def quick(self):
-		from os.path import isdir, join, normpath
+
+class search(Command):
+	def execute(self):
+		self.fm.search_file(parse(self.line).rest(1), regexp=True)
+
+
+class shell(Command):
+	def execute(self):
 		line = parse(self.line)
-		cwd = self.fm.env.cwd.path
+		if line.chunk(1) and line.chunk(1)[0] == '-':
+			flags = line.chunk(1)[1:]
+			command = line.rest(2)
+		else:
+			flags = ''
+			command = line.rest(1)
 
-		rel_dest = line.rest(1)
-		if not rel_dest:
-			return False
+		if not command and 'p' in flags: command = 'cat %f'
+		if command:
+			if '%' in command:
+				command = self.fm.substitute_macros(command)
+			self.fm.execute_command(command, flags=flags)
+
+	def tab(self):
+		line = parse(self.line)
+		if line.chunk(1) and line.chunk(1)[0] == '-':
+			flags = line.chunk(1)[1:]
+			command = line.rest(2)
+		else:
+			flags = ''
+			command = line.rest(1)
+		start = self.line[0:len(self.line) - len(command)]
+
+		try:
+			position_of_last_space = command.rindex(" ")
+		except ValueError:
+			return (start + program + ' ' for program \
+					in get_executables() if program.startswith(command))
+		if position_of_last_space == len(command) - 1:
+			return self.line + '%s '
+		else:
+			before_word, start_of_word = self.line.rsplit(' ', 1)
+			return (before_word + ' ' + file.shell_escaped_basename \
+					for file in self.fm.env.cwd.files \
+					if file.shell_escaped_basename.startswith(start_of_word))
+
+class open_with(Command):
+	def execute(self):
+		line = parse(self.line)
+		app, flags, mode = self._get_app_flags_mode(line.rest(1))
+		self.fm.execute_file(
+				files = [self.fm.env.cf],
+				app = app,
+				flags = flags,
+				mode = mode)
+
+	def _get_app_flags_mode(self, string):
+		"""
+		Extracts the application, flags and mode from a string.
 
-		abs_dest = normpath(join(cwd, rel_dest))
-		return rel_dest != '.' and isdir(abs_dest)
+		examples:
+		"mplayer d 1" => ("mplayer", "d", 1)
+		"aunpack 4" => ("aunpack", "", 4)
+		"p" => ("", "p", 0)
+		"" => None
+		"""
+
+		app = ''
+		flags = ''
+		mode = 0
+		split = string.split()
+
+		if len(split) == 0:
+			pass
+
+		elif len(split) == 1:
+			part = split[0]
+			if self._is_app(part):
+				app = part
+			elif self._is_flags(part):
+				flags = part
+			elif self._is_mode(part):
+				mode = part
+
+		elif len(split) == 2:
+			part0 = split[0]
+			part1 = split[1]
+
+			if self._is_app(part0):
+				app = part0
+				if self._is_flags(part1):
+					flags = part1
+				elif self._is_mode(part1):
+					mode = part1
+			elif self._is_flags(part0):
+				flags = part0
+				if self._is_mode(part1):
+					mode = part1
+			elif self._is_mode(part0):
+				mode = part0
+				if self._is_flags(part1):
+					flags = part1
+
+		elif len(split) >= 3:
+			part0 = split[0]
+			part1 = split[1]
+			part2 = split[2]
+
+			if self._is_app(part0):
+				app = part0
+				if self._is_flags(part1):
+					flags = part1
+					if self._is_mode(part2):
+						mode = part2
+				elif self._is_mode(part1):
+					mode = part1
+					if self._is_flags(part2):
+						flags = part2
+			elif self._is_flags(part0):
+				flags = part0
+				if self._is_mode(part1):
+					mode = part1
+			elif self._is_mode(part0):
+				mode = part0
+				if self._is_flags(part1):
+					flags = part1
+
+		return app, flags, int(mode)
+
+	def _get_tab(self):
+		line = parse(self.line)
+		data = line.rest(1)
+		if ' ' not in data:
+			all_apps = self.fm.apps.all()
+			if all_apps:
+				return (app for app in all_apps if app.startswith(data))
+
+		return None
+
+	def _is_app(self, arg):
+		return self.fm.apps.has(arg) or \
+			(not self._is_flags(arg) and arg in get_executables())
+
+	def _is_flags(self, arg):
+		return all(x in ALLOWED_FLAGS for x in arg)
+
+	def _is_mode(self, arg):
+		return all(x in '0123456789' for x in arg)
 
 
 class find(Command):
@@ -105,35 +240,21 @@ class find(Command):
 	:find <string>
 
 	The find command will attempt to find a partial, case insensitive
-	match in the filenames of the current directory.
-
-	In the quick command console, once there is one unambiguous match,
-	the file will be run automatically.
+	match in the filenames of the current directory and execute the
+	file automatically.
 	"""
 
 	count = 0
 	tab = Command._tab_directory_content
 
 	def execute(self):
-		if self.mode != cmode.COMMAND_QUICK:
-			self._search()
-
-		import re
-		search = parse(self.line).rest(1)
-		search = re.escape(search)
-		self.fm.env.last_search = re.compile(search, re.IGNORECASE)
-		self.fm.search_method = 'search'
-
 		if self.count == 1:
 			self.fm.move(right=1)
 			self.fm.block_input(0.5)
+		else:
+			self.fm.cd(parse(self.line).rest(1))
 
 	def quick(self):
-		self._search()
-		if self.count == 1:
-			return True
-
-	def _search(self):
 		self.count = 0
 		line = parse(self.line)
 		cwd = self.fm.env.cwd
@@ -142,6 +263,11 @@ class find(Command):
 		except IndexError:
 			return False
 
+		if arg == '.':
+			return False
+		if arg == '..':
+			return True
+
 		deq = deque(cwd.files)
 		deq.rotate(-cwd.pointer)
 		i = 0
@@ -281,7 +407,7 @@ class delete(Command):
 				and len(os.listdir(cf.path)) > 0):
 			# better ask for a confirmation, when attempting to
 			# delete multiple files or a non-empty directory.
-			return self.fm.open_console(self.mode, DELETE_WARNING)
+			return self.fm.open_console(DELETE_WARNING)
 
 		# no need for a confirmation, just delete
 		self.fm.delete()
diff --git a/ranger/defaults/keys.py b/ranger/defaults/keys.py
index 979d77e5..9f0c78cb 100644
--- a/ranger/defaults/keys.py
+++ b/ranger/defaults/keys.py
@@ -58,7 +58,7 @@ dgg       => fm.cut(foo=bar, dirarg=Direction(to=0))
 5dgg      => fm.cut(foo=bar, narg=5, dirarg=Direction(to=0))
 5d3gg     => fm.cut(foo=bar, narg=5, dirarg=Direction(to=3))
 
-Example ~/.ranger/keys.py
+Example ~/.config/ranger/keys.py
 -------------------------
 from ranger.api.keys import *
 
@@ -130,8 +130,8 @@ map('<F3>', fm.display_file())
 map('<F4>', fm.edit_file())
 map('<F5>', fm.copy())
 map('<F6>', fm.cut())
-map('<F7>', fm.open_console(cmode.COMMAND, 'mkdir '))
-map('<F8>', fm.open_console(cmode.COMMAND, DELETE_WARNING))
+map('<F7>', fm.open_console('mkdir '))
+map('<F8>', fm.open_console(DELETE_WARNING))
 map('<F10>', fm.exit())
 
 # ===================================================================
@@ -163,15 +163,22 @@ map('T', fm.tag_remove())
 map(' ', fm.mark(toggle=True))
 map('v', fm.mark(all=True, toggle=True))
 map('V', 'uv', fm.mark(all=True, val=False))
+map('<C-V><dir>', fm.mark_in_direction(val=True))
+map('u<C-V><dir>', fm.mark_in_direction(val=False))
 
 # ------------------------------------------ file system operations
 map('yy', 'y<dir>', fm.copy())
+map('ya', fm.copy(mode='add'))
+map('yr', fm.copy(mode='remove'))
 map('dd', 'd<dir>', fm.cut())
+map('da', fm.cut(mode='add'))
+map('dr', fm.cut(mode='remove'))
 map('pp', fm.paste())
 map('po', fm.paste(overwrite=True))
-map('pl', fm.paste_symlink())
-map('p<bg>', fm.hint('press *p* once again to confirm pasting' \
-		', or *l* to create symlinks'))
+map('pl', fm.paste_symlink(relative=False))
+map('pL', fm.paste_symlink(relative=True))
+map('p<bg>', fm.hint('press *p* to confirm pasting' \
+		', *o*verwrite, create sym*l*inks, relative sym*L*inks'))
 
 map('u<bg>', fm.hint("un*y*ank, unbook*m*ark, unselect:*v*"))
 map('ud', 'uy', fm.uncut())
@@ -179,12 +186,12 @@ map('ud', 'uy', fm.uncut())
 # ---------------------------------------------------- run programs
 map('S', fm.execute_command(os.environ['SHELL']))
 map('E', fm.edit_file())
-map('du', fm.execute_command('du --max-depth=1 -h | less'))
+map('du', fm.execute_console('shell -p du --max-depth=1 -h --apparent-size'))
 
 # -------------------------------------------------- toggle options
 map('z<bg>', fm.hint("[*cdfhimpPs*] show_*h*idden *p*review_files "\
 		"*P*review_dirs *f*ilter flush*i*nput *m*ouse"))
-map('zh', '<C-h>', fm.toggle_boolean_option('show_hidden'))
+map('zh', '<C-h>', '<backspace>', fm.toggle_boolean_option('show_hidden'))
 map('zp', fm.toggle_boolean_option('preview_files'))
 map('zP', fm.toggle_boolean_option('preview_directories'))
 map('zi', fm.toggle_boolean_option('flushinput'))
@@ -192,7 +199,7 @@ map('zd', fm.toggle_boolean_option('sort_directories_first'))
 map('zc', fm.toggle_boolean_option('collapse_preview'))
 map('zs', fm.toggle_boolean_option('sort_case_insensitive'))
 map('zm', fm.toggle_boolean_option('mouse_enabled'))
-map('zf', fm.open_console(cmode.COMMAND, 'filter '))
+map('zf', fm.open_console('filter '))
 
 # ------------------------------------------------------------ sort
 map('o<bg>', 'O<bg>', fm.hint("*s*ize *b*ase*n*ame *m*time" \
@@ -218,31 +225,33 @@ map('or', 'Or', 'oR', 'OR', lambda arg: \
 @map("A")
 def append_to_filename(arg):
 	command = 'rename ' + arg.fm.env.cf.basename
-	arg.fm.open_console(cmode.COMMAND, command)
+	arg.fm.open_console(command)
 
 @map("I")
 def insert_before_filename(arg):
-	append_to_filename(arg)
-	arg.fm.ui.console.move(right=len('rename '), absolute=True)
+	command = 'rename ' + arg.fm.env.cf.basename
+	arg.fm.open_console(command, position=len('rename '))
 
-map('cw', fm.open_console(cmode.COMMAND, 'rename '))
-map('cd', fm.open_console(cmode.COMMAND, 'cd '))
-map('f', fm.open_console(cmode.COMMAND_QUICK, 'find '))
+map('cw', fm.open_console('rename '))
+map('cd', fm.open_console('cd '))
+map('f', fm.open_console('find '))
 map('d<bg>', fm.hint('d*u* (disk usage) d*d* (cut)'))
-map('@', fm.open_console(cmode.OPEN, '@'))
-map('#', fm.open_console(cmode.OPEN, 'p!'))
+map('@', fm.open_console('shell  %s', position=len('shell ')))
+map('#', fm.open_console('shell -p '))
 
 # --------------------------------------------- jump to directories
 map('gh', fm.cd('~'))
 map('ge', fm.cd('/etc'))
 map('gu', fm.cd('/usr'))
 map('gd', fm.cd('/dev'))
-map('gl', fm.cd('/lib'))
+map('gl', lambda arg: arg.fm.cd(os.path.realpath(arg.fm.env.cwd.path)))
+map('gL', lambda arg: arg.fm.cd(
+		os.path.dirname(os.path.realpath(arg.fm.env.cf.path))))
 map('go', fm.cd('/opt'))
 map('gv', fm.cd('/var'))
 map('gr', 'g/', fm.cd('/'))
 map('gm', fm.cd('/media'))
-map('gn', fm.cd('/mnt'))
+map('gM', fm.cd('/mnt'))
 map('gs', fm.cd('/srv'))
 map('gR', fm.cd(RANGERDIR))
 
@@ -259,7 +268,7 @@ for n in range(1, 10):
 	map('<A-' + str(n) + '>', fm.tab_open(n))
 
 # ------------------------------------------------------- searching
-map('/', fm.open_console(cmode.SEARCH))
+map('/', fm.open_console('search '))
 
 map('n', fm.search())
 map('N', fm.search(forward=False))
@@ -298,11 +307,10 @@ def ctrl_c(arg):
 		arg.fm.notify("Aborting: " + item.get_description())
 		arg.fm.loader.remove(index=0)
 
-map(':', ';', fm.open_console(cmode.COMMAND))
-map('>', fm.open_console(cmode.COMMAND_QUICK))
-map('!', fm.open_console(cmode.OPEN, prompt='!'))
-map('s', fm.open_console(cmode.OPEN, prompt='$'))
-map('r', fm.open_console(cmode.OPEN_QUICK))
+map(':', ';', fm.open_console(''))
+map('!', fm.open_console('shell '))
+map('s', fm.open_console('shell '))
+map('r', fm.open_console('open_with '))
 
 
 # ===================================================================
@@ -313,8 +321,8 @@ map.merge(global_keys)
 map.merge(vim_aliases)
 
 # -------------------------------------------------------- movement
-map('<left>', wdg.move(left=4))
-map('<right>', wdg.move(right=4))
+map('<left>', 'h', wdg.move(left=4))
+map('<right>', 'l', wdg.move(right=4))
 map('<C-D>', 'd', wdg.move(down=0.5, pages=True))
 map('<C-U>', 'u', wdg.move(up=0.5, pages=True))
 map('<C-F>', 'f', '<pagedown>', wdg.move(down=1, pages=True))
@@ -363,16 +371,16 @@ map.merge(readline_aliases)
 
 map('<up>', '<C-P>', wdg.history_move(-1))
 map('<down>', '<C-N>', wdg.history_move(1))
-map('<home>', wdg.move(right=0, absolute=True))
-map('<end>', wdg.move(right=-1, absolute=True))
+map('<home>', '<C-A>', wdg.move(right=0, absolute=True))
+map('<end>', '<C-E>', wdg.move(right=-1, absolute=True))
 map('<tab>', wdg.tab())
 map('<s-tab>', wdg.tab(-1))
 map('<C-C>', '<C-D>', '<ESC>', wdg.close())
 map('<CR>', '<c-j>', wdg.execute())
 map('<F1>', lambda arg: arg.fm.display_command_help(arg.wdg))
 
-map('<backspace>', wdg.delete(-1))
-map('<delete>', wdg.delete(0))
+map('<backspace>', '<C-H>', wdg.delete(-1))
+map('<delete>', '<C-D>', wdg.delete(0))
 map('<C-W>', wdg.delete_word())
 map('<C-K>', wdg.delete_rest(1))
 map('<C-U>', wdg.delete_rest(-1))
diff --git a/ranger/defaults/options.py b/ranger/defaults/options.py
index d93d7685..126d4bad 100644
--- a/ranger/defaults/options.py
+++ b/ranger/defaults/options.py
@@ -17,7 +17,7 @@
 This is the default configuration file of ranger.
 
 There are two ways of customizing ranger.  The first and recommended
-method is creating a file at ~/.ranger/options.py and adding
+method is creating a file at ~/.config/ranger/options.py and adding
 those lines you want to change.  It might look like this:
 
 from ranger.api.options import *
@@ -36,7 +36,7 @@ from ranger.api.options import *
 # Which files should be hidden?  Toggle this by typing `zh' or
 # changing the setting `show_hidden'
 hidden_filter = regexp(
-	r'lost\+found|^\.|~$|\.(:?pyc|pyo|bak|swp)$')
+	r'^\.|\.(?:pyc|pyo|bak|swp)$|~$|lost\+found')
 show_hidden = False
 
 # Show dotfiles in the bookmark preview box?
@@ -85,7 +85,7 @@ tilde_in_titlebar = True
 
 # How many directory-changes or console-commands should be kept in history?
 max_history_size = 20
-max_console_history_size = 20
+max_console_history_size = 50
 
 # Try to keep so much space between the top/bottom border when scrolling:
 scroll_offset = 8
diff --git a/ranger/ext/direction.py b/ranger/ext/direction.py
index b9fbcac9..f36e22a6 100644
--- a/ranger/ext/direction.py
+++ b/ranger/ext/direction.py
@@ -134,7 +134,7 @@ class Direction(dict):
 			pos += current
 		return int(max(min(pos, maximum + offset - 1), minimum))
 
-	def select(self, lst, override, current, pagesize, offset=1):
+	def select(self, lst, current, pagesize, override=None, offset=1):
 		dest = self.move(direction=self.down(), override=override,
 			current=current, pagesize=pagesize, minimum=0, maximum=len(lst))
 		selection = lst[min(current, dest):max(current, dest) + offset]
diff --git a/ranger/ext/human_readable.py b/ranger/ext/human_readable.py
index beeaf6d3..40111b6d 100644
--- a/ranger/ext/human_readable.py
+++ b/ranger/ext/human_readable.py
@@ -13,24 +13,39 @@
 # You should have received a copy of the GNU General Public License
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
-import math
-
-ONE_KB = 1024
-UNITS = 'BKMGTP'
-MAX_EXPONENT = len(UNITS) - 1
-
 def human_readable(byte, seperator=' '):
-	if not byte:
-		return '0'
-
-	exponent = int(math.log(byte, 2) / 10)
-	flt = round(float(byte) / (1 << (10 * exponent)), 2)
+	"""
+	Convert a large number of bytes to an easily readable format.
 
-	if exponent > MAX_EXPONENT:
-		return '>9000' # off scale
-
-	if int(flt) == flt:
-		return '%.0f%s%s' % (flt, seperator, UNITS[exponent])
-
-	else:
-		return '%.2f%s%s' % (flt, seperator, UNITS[exponent])
+	>>> human_readable(54)
+	"54 B"
+	>>> human_readable(1500)
+	"1.46 K"
+	>>> human_readable(2 ** 20 * 1023)
+	"1023 M"
+	"""
+	if byte <= 0:
+		return '0'
+	if byte < 2**10:
+		return '%d%sB'   % (byte, seperator)
+	if byte < 2**10 * 999:
+		return '%.3g%sK' % (byte / 2**10.0, seperator)
+	if byte < 2**20:
+		return '%.4g%sK' % (byte / 2**10.0, seperator)
+	if byte < 2**20 * 999:
+		return '%.3g%sM' % (byte / 2**20.0, seperator)
+	if byte < 2**30:
+		return '%.4g%sM' % (byte / 2**20.0, seperator)
+	if byte < 2**30 * 999:
+		return '%.3g%sG' % (byte / 2**30.0, seperator)
+	if byte < 2**40:
+		return '%.4g%sG' % (byte / 2**30.0, seperator)
+	if byte < 2**40 * 999:
+		return '%.3g%sT' % (byte / 2**40.0, seperator)
+	if byte < 2**50:
+		return '%.4g%sT' % (byte / 2**40.0, seperator)
+	if byte < 2**50 * 999:
+		return '%.3g%sP' % (byte / 2**50.0, seperator)
+	if byte < 2**60:
+		return '%.4g%sP' % (byte / 2**50.0, seperator)
+	return '>9000'
diff --git a/ranger/ext/lazy_property.py b/ranger/ext/lazy_property.py
new file mode 100644
index 00000000..320a1993
--- /dev/null
+++ b/ranger/ext/lazy_property.py
@@ -0,0 +1,25 @@
+# From http://blog.pythonisito.com/2008/08/lazy-descriptors.html
+
+class lazy_property(object):
+	"""
+	A @property-like decorator with lazy evaluation
+
+	Example:
+	class Foo:
+		@lazy_property
+		def bar(self):
+			result = [...]
+			return result
+	"""
+
+	def __init__(self, method):
+		self._method = method
+		self.__name__ = method.__name__
+		self.__doc__ = method.__doc__
+
+	def __get__(self, obj, cls=None):
+		if obj is None:  # to fix issues with pydoc
+			return None
+		result = self._method(obj)
+		obj.__dict__[self.__name__] = result
+		return result
diff --git a/test/test.py b/ranger/ext/relative_symlink.py
index d0a69e5a..bba00e39 100644
--- a/test/test.py
+++ b/ranger/ext/relative_symlink.py
@@ -13,8 +13,27 @@
 # You should have received a copy of the GNU General Public License
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
-"""Workaround to allow running single test cases directly"""
-try:
-	from __init__ import init, Fake, OK, raise_ok, TODO
-except:
-	from test import init, Fake, OK, raise_ok, TODO
+from os import symlink, sep
+from os.path import dirname, join
+
+def relative_symlink(src, dst):
+	common_base = get_common_base(src, dst)
+	symlink(get_relative_source_file(src, dst, common_base), dst)
+
+def get_relative_source_file(src, dst, common_base=None):
+	if common_base is None:
+		common_base = get_common_base(src, dst)
+	return '../' * dst.count('/', len(common_base)) + src[len(common_base):]
+
+def get_common_base(src, dst):
+	if not src or not dst:
+		return '/'
+	i = 0
+	while True:
+		new_i = src.find(sep, i + 1)
+		if new_i == -1:
+			break
+		if not dst.startswith(src[:new_i + 1]):
+			break
+		i = new_i
+	return src[:i + 1]
diff --git a/ranger/ext/shell_escape.py b/ranger/ext/shell_escape.py
index f8393f2a..ec9e4b12 100644
--- a/ranger/ext/shell_escape.py
+++ b/ranger/ext/shell_escape.py
@@ -14,7 +14,7 @@
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 """
-A function to escape metacharacters of arguments for shell commands.
+Functions to escape metacharacters of arguments for shell commands.
 """
 
 META_CHARS = (' ', "'", '"', '`', '&', '|', ';',
diff --git a/ranger/ext/utfwidth.py b/ranger/ext/utfwidth.py
new file mode 100644
index 00000000..a506c676
--- /dev/null
+++ b/ranger/ext/utfwidth.py
@@ -0,0 +1,109 @@
+# -*- encoding: utf8 -*-
+# Copyright (C) 2009, 2010  Roman Zimbelmann <romanz@lavabit.com>
+# Copyright (C) 2004, 2005  Timo Hirvonen
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+#
+# ----
+# This file contains portions of code from cmus (uchar.c).
+
+NARROW = 1
+WIDE = 2
+
+def uwid(string):
+	"""Return the width of a string"""
+	end = len(string)
+	i = 0
+	width = 0
+	while i < end:
+		bytelen = utf_byte_length(string[i:])
+		width += utf_char_width(string[i:i+bytelen])
+		i += bytelen
+	return width
+
+def uchars(string):
+	"""Return a list with one string for each character"""
+	end = len(string)
+	i = 0
+	result = []
+	while i < end:
+		bytelen = utf_byte_length(string[i:])
+		result.append(string[i:i+bytelen])
+		i += bytelen
+	return result
+
+def utf_byte_length(string):
+	"""Return the byte length of one utf character"""
+	firstord = ord(string[0])
+	if firstord < 0b01111111:
+		return 1
+	if firstord < 0b10111111:
+		return 1  # invalid
+	if firstord < 0b11011111:
+		return 2
+	if firstord < 0b11101111:
+		return 3
+	if firstord < 0b11110100:
+		return 4
+	return 1  # invalid
+
+def utf_char_width(string):
+	"""Return the width of a single character"""
+	u = _utf_char_to_int(string)
+	if u < 0x1100:
+		return NARROW
+	# Hangul Jamo init. constonants
+	if u <= 0x115F:
+		return WIDE
+	# Angle Brackets
+	if u == 0x2329 or u == 0x232A:
+		return WIDE
+	if u < 0x2e80:
+		return NARROW
+	# CJK ... Yi
+	if u < 0x302A:
+		return WIDE
+	if u <= 0x302F:
+		return NARROW
+	if u == 0x303F or u == 0x3099 or u == 0x309a:
+		return NARROW
+	# CJK ... Yi
+	if u <= 0xA4CF:
+		return WIDE
+	# Hangul Syllables
+	if u >= 0xAC00 and u <= 0xD7A3:
+		return WIDE
+	# CJK Compatibility Ideographs
+	if u >= 0xF900 and u <= 0xFAFF:
+		return WIDE
+	# CJK Compatibility Forms
+	if u >= 0xFE30 and u <= 0xFE6F:
+		return WIDE
+	# Fullwidth Forms
+	if u >= 0xFF00 and u <= 0xFF60 or u >= 0xFFE0 and u <= 0xFFE6:
+		return WIDE
+	# CJK Extra Stuff
+	if u >= 0x20000 and u <= 0x2FFFD:
+		return WIDE
+	# ?
+	if u >= 0x30000 and u <= 0x3FFFD:
+		return WIDE
+	return NARROW  # invalid (?)
+
+def _utf_char_to_int(string):
+	# Squash the last 6 bits of each byte together to an integer
+	u = 0
+	for c in string:
+		u = (u << 6) | (ord(c) & 0b00111111)
+	return u
diff --git a/ranger/fsobject/directory.py b/ranger/fsobject/directory.py
index bab650c6..2ac56120 100644
--- a/ranger/fsobject/directory.py
+++ b/ranger/fsobject/directory.py
@@ -16,6 +16,7 @@
 import os.path
 import stat
 from stat import S_ISLNK, S_ISDIR
+from os import stat as os_stat, lstat as os_lstat
 from os.path import join, isdir, basename
 from collections import deque
 from time import time
@@ -63,7 +64,6 @@ class Directory(FileSystemObject, Accumulator, Loadable, SettingsAware):
 	filter = None
 	marked_items = None
 	scroll_begin = 0
-	scroll_offset = 0
 
 	mount_path = '/'
 	disk_usage = 0
@@ -98,6 +98,7 @@ class Directory(FileSystemObject, Accumulator, Loadable, SettingsAware):
 		for opt in ('hidden_filter', 'show_hidden'):
 			self.settings.signal_bind('setopt.' + opt,
 				self.request_reload, weak=True)
+		self.use()
 
 	def request_resort(self):
 		self.order_outdated = True
@@ -165,49 +166,53 @@ class Directory(FileSystemObject, Accumulator, Loadable, SettingsAware):
 		self.load_if_outdated()
 
 		try:
-			if self.exists and self.runnable:
+			if self.runnable:
 				yield
-				self.mount_path = mount_path(self.path)
+				mypath = self.path
+
+				self.mount_path = mount_path(mypath)
 
 				hidden_filter = not self.settings.show_hidden \
 						and self.settings.hidden_filter
-				filenames = [join(self.path, fname) \
-						for fname in os.listdir(self.path) \
+				filenames = [mypath + (mypath == '/' and fname or '/' + fname)\
+						for fname in os.listdir(mypath) \
 						if accept_file(fname, hidden_filter, self.filter)]
 				yield
 
-				self.load_content_mtime = os.stat(self.path).st_mtime
+				self.load_content_mtime = os.stat(mypath).st_mtime
 
 				marked_paths = [obj.path for obj in self.marked_items]
 
 				files = []
+				disk_usage = 0
 				for name in filenames:
 					try:
-						file_lstat = os.lstat(name)
-						if S_ISLNK(file_lstat.st_mode):
-							file_stat = os.stat(name)
+						file_lstat = os_lstat(name)
+						if file_lstat.st_mode & 0o170000 == 0o120000:
+							file_stat = os_stat(name)
 						else:
 							file_stat = file_lstat
 						stats = (file_stat, file_lstat)
-						is_a_dir = S_ISDIR(file_stat.st_mode)
+						is_a_dir = file_stat.st_mode & 0o170000 == 0o040000
 					except:
 						stats = None
 						is_a_dir = False
 					if is_a_dir:
 						try:
 							item = self.fm.env.get_directory(name)
+							item.load_if_outdated()
 						except:
 							item = Directory(name, preload=stats,
 									path_is_abs=True)
+							item.load()
 					else:
 						item = File(name, preload=stats, path_is_abs=True)
-					item.load_if_outdated()
+						item.load()
+						disk_usage += item.size
 					files.append(item)
 					yield
+				self.disk_usage = disk_usage
 
-				self.disk_usage = sum(f.size for f in files if f.is_file)
-
-				self.scroll_offset = 0
 				self.filenames = filenames
 				self.files = files
 
@@ -221,7 +226,7 @@ class Directory(FileSystemObject, Accumulator, Loadable, SettingsAware):
 
 				self.sort()
 
-				if len(self.files) > 0:
+				if files:
 					if self.pointed_obj is not None:
 						self.sync_index()
 					else:
@@ -401,6 +406,25 @@ class Directory(FileSystemObject, Accumulator, Loadable, SettingsAware):
 			return True
 		return False
 
+	def get_description(self):
+		return "Loading " + str(self)
+
+	def use(self):
+		"""mark the filesystem-object as used at the current time"""
+		self.last_used = time()
+
+	def is_older_than(self, seconds):
+		"""returns whether this object wasn't use()d in the last n seconds"""
+		if seconds < 0:
+			return True
+		return self.last_used + seconds < time()
+
+	def go(self, history=True):
+		"""enter the directory if the filemanager is running"""
+		if self.fm:
+			return self.fm.enter_dir(self.path, history=history)
+		return False
+
 	def empty(self):
 		"""Is the directory empty?"""
 		return self.files is None or len(self.files) == 0
diff --git a/ranger/fsobject/file.py b/ranger/fsobject/file.py
index 4618df33..5e79c2d1 100644
--- a/ranger/fsobject/file.py
+++ b/ranger/fsobject/file.py
@@ -13,11 +13,45 @@
 # You should have received a copy of the GNU General Public License
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
+import re
+import zipfile
+from ranger.fsobject import FileSystemObject
+
 N_FIRST_BYTES = 20
 control_characters = set(chr(n) for n in
 		set(range(0, 9)) | set(range(14, 32)))
 
-from ranger.fsobject import FileSystemObject
+# Don't even try to preview files which mach this regular expression:
+PREVIEW_BLACKLIST = re.compile(r"""
+		# look at the extension:
+		\.(
+			# one character extensions:
+				[oa]
+			# media formats:
+				| avi | [mj]pe?g | mp\d | og[gmv] | wm[av] | mkv | flv
+				| png | bmp | vob | wav | mpc | flac | divx? | xcf | pdf
+			# binary files:
+				| torrent | class | so | img | py[co] | dmg
+			# containers:
+				| iso | rar | 7z | tar | gz | bz2 | tgz
+		)
+		# ignore filetype-independent suffixes:
+			(\.part|\.bak|~)?
+		# ignore fully numerical file extensions:
+			(\.\d+)*?
+		$
+""", re.VERBOSE | re.IGNORECASE)
+
+# Preview these files (almost) always:
+PREVIEW_WHITELIST = re.compile(r"""
+		\.(
+			txt | py | c
+		)
+		# ignore filetype-independent suffixes:
+			(\.part|\.bak|~)?
+		$
+""", re.VERBOSE | re.IGNORECASE)
+
 class File(FileSystemObject):
 	is_file = True
 
@@ -38,3 +72,25 @@ class File(FileSystemObject):
 		if self.firstbytes and control_characters & set(self.firstbytes):
 			return True
 		return False
+
+	def has_preview(self):
+		if not self.fm.settings.preview_files:
+			return False
+		if self.is_socket or self.is_fifo or self.is_device:
+			return False
+		if not self.accessible:
+			return False
+		if PREVIEW_WHITELIST.search(self.basename):
+			return True
+		if PREVIEW_BLACKLIST.search(self.basename):
+			return False
+		if self.path == '/dev/core' or self.path == '/proc/kcore':
+			return False
+		if self.extension not in ('zip',) and self.is_binary():
+			return False
+		return True
+
+	def get_preview_source(self):
+		if self.extension == 'zip':
+			return '\n'.join(zipfile.ZipFile(self.path).namelist())
+		return open(self.path, 'r')
diff --git a/ranger/fsobject/fsobject.py b/ranger/fsobject/fsobject.py
index afef48e4..4ca5a6c8 100644
--- a/ranger/fsobject/fsobject.py
+++ b/ranger/fsobject/fsobject.py
@@ -19,25 +19,23 @@ CONTAINER_EXTENSIONS = ('7z', 'ace', 'ar', 'arc', 'bz', 'bz2', 'cab', 'cpio',
 
 from os import access, listdir, lstat, readlink, stat
 from time import time
-from os.path import abspath, basename, dirname, realpath
+from os.path import abspath, basename, dirname, realpath, splitext, extsep
 from . import BAD_INFO
 from ranger.shared import MimeTypeAware, FileManagerAware
 from ranger.ext.shell_escape import shell_escape
 from ranger.ext.spawn import spawn
+from ranger.ext.lazy_property import lazy_property
 from ranger.ext.human_readable import human_readable
 
 class FileSystemObject(MimeTypeAware, FileManagerAware):
-	(_filetype,
-	_shell_escaped_basename,
-	basename,
+	(basename,
 	basename_lower,
 	dirname,
 	extension,
 	infostring,
-	last_used,
 	path,
 	permissions,
-	stat) = (None,) * 11
+	stat) = (None,) * 8
 
 	(content_loaded,
 	force_load,
@@ -50,7 +48,7 @@ class FileSystemObject(MimeTypeAware, FileManagerAware):
 	is_socket,
 
 	accessible,
-	exists,
+	exists,       # "exists" currently means "link_target_exists"
 	loaded,
 	marked,
 	runnable,
@@ -76,8 +74,8 @@ class FileSystemObject(MimeTypeAware, FileManagerAware):
 		self.path = path
 		self.basename = basename(path)
 		self.basename_lower = self.basename.lower()
+		self.extension = splitext(self.basename)[1].lstrip(extsep) or None
 		self.dirname = dirname(path)
-		self.realpath = self.path
 		self.preload = preload
 
 		try:
@@ -86,48 +84,33 @@ class FileSystemObject(MimeTypeAware, FileManagerAware):
 		except ValueError:
 			self.extension = None
 
-		self.use()
-
 	def __repr__(self):
 		return "<{0} {1}>".format(self.__class__.__name__, self.path)
 
-	@property
+	@lazy_property
 	def shell_escaped_basename(self):
-		if self._shell_escaped_basename is None:
-			self._shell_escaped_basename = shell_escape(self.basename)
-		return self._shell_escaped_basename
+		return shell_escape(self.basename)
 
-	@property
+	@lazy_property
 	def filetype(self):
-		if self._filetype is None:
-			try:
-				got = spawn(["file", '-Lb', '--mime-type', self.path])
-			except OSError:
-				self._filetype = ''
-			else:
-				self._filetype = got
-		return self._filetype
-
-	def get_description(self):
-		return "Loading " + str(self)
+		try:
+			return spawn(["file", '-Lb', '--mime-type', self.path])
+		except OSError:
+			return ""
 
 	def __str__(self):
 		"""returns a string containing the absolute path"""
 		return str(self.path)
 
 	def use(self):
-		"""mark the filesystem-object as used at the current time"""
-		self.last_used = time()
-
-	def is_older_than(self, seconds):
-		"""returns whether this object wasn't use()d in the last n seconds"""
-		if seconds < 0:
-			return True
-		return self.last_used + seconds < time()
+		"""Used in garbage-collecting.  Override in Directory"""
 
 	def set_mimetype(self):
 		"""assign attributes such as self.video according to the mimetype"""
-		self._mimetype = self.mimetypes.guess_type(self.basename, False)[0]
+		basename = self.basename
+		if self.extension == 'part':
+			basename = basename[0:-5]
+		self._mimetype = self.mimetypes.guess_type(basename, False)[0]
 		if self._mimetype is None:
 			self._mimetype = ''
 
@@ -168,6 +151,15 @@ class FileSystemObject(MimeTypeAware, FileManagerAware):
 		"""Called by directory.mark_item() and similar functions"""
 		self.marked = bool(boolean)
 
+	@lazy_property
+	def realpath(self):
+		if self.is_link:
+			try:
+				return realpath(self.path)
+			except:
+				return None  # it is impossible to get the link destination
+		return self.path
+
 	def load(self):
 		"""
 		reads useful information about the filesystem-object from the
@@ -179,46 +171,43 @@ class FileSystemObject(MimeTypeAware, FileManagerAware):
 		# Get the stat object, either from preload or from [l]stat
 		new_stat = None
 		path = self.path
+		is_link = False
 		if self.preload:
 			new_stat = self.preload[1]
-			is_link = (new_stat.st_mode & 0o120000) == 0o120000
+			is_link = new_stat.st_mode & 0o170000 == 0o120000
 			if is_link:
 				new_stat = self.preload[0]
 			self.preload = None
+			self.exists = True if new_stat else False
 		else:
 			try:
 				new_stat = lstat(path)
-				is_link = (new_stat.st_mode & 0o120000) == 0o120000
+				is_link = new_stat.st_mode & 0o170000 == 0o120000
 				if is_link:
 					new_stat = stat(path)
+				self.exists = True
 			except:
-				pass
+				self.exists = False
 
 		# Set some attributes
-		if new_stat:
-			mode = new_stat.st_mode
-			self.accessible = True
-			self.is_device = (mode & 0o060000) == 0o060000
-			self.is_fifo = (mode & 0o010000) == 0o010000
-			self.is_link = is_link
-			self.is_socket = (mode & 0o140000) == 0o140000
-			if access(path, 0):
-				self.exists = True
-				if self.is_directory:
-					self.runnable = (mode & 0o0100) == 0o0100
-			else:
-				self.exists = False
-				self.runnable = False
-			if is_link:
-				try:
-					self.realpath = realpath(path)
-				except OSError:
-					pass  # it is impossible to get the link destination
-		else:
-			self.accessible = False
 
-		# Determine infostring
-		if self.is_file:
+		self.accessible = True if new_stat else False
+		mode = new_stat.st_mode if new_stat else 0
+
+		format = mode & 0o170000
+		if format == 0o020000 or format == 0o060000:  # stat.S_IFCHR/BLK
+			self.is_device = True
+			self.size = 0
+			self.infostring = 'dev'
+		elif format == 0o010000:  # stat.S_IFIFO
+			self.is_fifo = True
+			self.size = 0
+			self.infostring = 'fifo'
+		elif format == 0o140000:  # stat.S_IFSOCK
+			self.is_socket = True
+			self.size = 0
+			self.infostring = 'sock'
+		elif self.is_file:
 			if new_stat:
 				self.size = new_stat.st_size
 				self.infostring = ' ' + human_readable(self.size)
@@ -236,17 +225,9 @@ class FileSystemObject(MimeTypeAware, FileManagerAware):
 				self.infostring = ' %d' % self.size
 				self.accessible = True
 				self.runnable = True
-		elif self.is_device:
-			self.size = 0
-			self.infostring = 'dev'
-		elif self.is_fifo:
-			self.size = 0
-			self.infostring = 'fifo'
-		elif self.is_socket:
-			self.size = 0
-			self.infostring = 'sock'
-		if self.is_link:
+		if is_link:
 			self.infostring = '->' + self.infostring
+			self.is_link = True
 
 		self.stat = new_stat
 
@@ -274,12 +255,6 @@ class FileSystemObject(MimeTypeAware, FileManagerAware):
 		self.permissions = ''.join(perms)
 		return self.permissions
 
-	def go(self):
-		"""enter the directory if the filemanager is running"""
-		if self.fm:
-			return self.fm.enter_dir(self.path)
-		return False
-
 	def load_if_outdated(self):
 		"""
 		Calls load() if the currently cached information is outdated
@@ -292,11 +267,7 @@ class FileSystemObject(MimeTypeAware, FileManagerAware):
 			real_mtime = lstat(self.path).st_mtime
 		except OSError:
 			real_mtime = None
-		if self.stat:
-			cached_mtime = self.stat.st_mtime
-		else:
-			cached_mtime = 0
-		if real_mtime != cached_mtime:
+		if not self.stat or self.stat.st_mtime != real_mtime:
 			self.load()
 			return True
 		return False
diff --git a/ranger/gui/bar.py b/ranger/gui/bar.py
index f5e34eb1..03ed2f78 100644
--- a/ranger/gui/bar.py
+++ b/ranger/gui/bar.py
@@ -13,6 +13,8 @@
 # You should have received a copy of the GNU General Public License
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
+from ranger.ext.utfwidth import uwid
+
 class Bar(object):
 	left = None
 	right = None
@@ -132,7 +134,7 @@ class ColoredString(object):
 		self.string = self.string[:n]
 
 	def __len__(self):
-		return len(self.string)
+		return uwid(self.string)
 
 	def __str__(self):
 		return self.string
diff --git a/ranger/gui/colorscheme.py b/ranger/gui/colorscheme.py
index 501b8788..5b317acb 100644
--- a/ranger/gui/colorscheme.py
+++ b/ranger/gui/colorscheme.py
@@ -24,7 +24,7 @@ The values are specified in ranger.gui.color.
 A colorscheme must...
 
 1. be inside either of these directories:
-~/.ranger/colorschemes/
+~/.config/ranger/colorschemes/
 path/to/ranger/colorschemes/
 
 2. be a subclass of ranger.gui.colorscheme.ColorScheme
@@ -121,7 +121,7 @@ class ColorScheme(SettingsAware):
 		return fg, -1, attr
 
 def _colorscheme_name_to_class(signal):
-	# Find the colorscheme.  First look for it at ~/.ranger/colorschemes,
+	# Find the colorscheme.  First look for it at ~/.config/ranger/colorschemes,
 	# then at RANGERDIR/colorschemes.  If the file contains a class
 	# named Scheme, it is used.  Otherwise, an arbitrary other class
 	# is picked.
@@ -139,7 +139,7 @@ def _colorscheme_name_to_class(signal):
 		except:
 			return False
 
-	# create ~/.ranger/colorschemes/__init__.py if it doesn't exist
+	# create ~/.config/ranger/colorschemes/__init__.py if it doesn't exist
 	if usecustom:
 		if os.path.exists(ranger.relpath_conf('colorschemes')):
 			initpy = ranger.relpath_conf('colorschemes', '__init__.py')
diff --git a/ranger/gui/curses_shortcuts.py b/ranger/gui/curses_shortcuts.py
index 82d8c787..3df45700 100644
--- a/ranger/gui/curses_shortcuts.py
+++ b/ranger/gui/curses_shortcuts.py
@@ -18,6 +18,22 @@ import _curses
 from ranger.ext.iter_tools import flatten
 from ranger.shared import SettingsAware
 
+def ascii_only(string):
+	# Some python versions have problems with invalid unicode strings.
+	# I think this exception is rare enough that this naive hack is enough.
+	# It simply removes all non-ascii chars from a string.
+	def validate_char(char):
+		try:
+			if ord(char) > 127:
+				return '?'
+		except:
+			return '?'
+		return char
+	if isinstance(string, str):
+		return ''.join(validate_char(c) for c in string)
+	return string
+
+
 class CursesShortcuts(SettingsAware):
 	"""
 	This class defines shortcuts to faciliate operations with curses.
@@ -33,12 +49,33 @@ class CursesShortcuts(SettingsAware):
 			self.win.addstr(*args)
 		except (_curses.error, TypeError):
 			pass
+		except UnicodeEncodeError:
+			try:
+				self.win.addstr(*(ascii_only(obj) for obj in args))
+			except (_curses.error, TypeError):
+				pass
 
 	def addnstr(self, *args):
 		try:
 			self.win.addnstr(*args)
 		except (_curses.error, TypeError):
 			pass
+		except UnicodeEncodeError:
+			try:
+				self.win.addnstr(*(ascii_only(obj) for obj in args))
+			except (_curses.error, TypeError):
+				pass
+
+	def addch(self, *args):
+		try:
+			self.win.addch(*args)
+		except (_curses.error, TypeError):
+			pass
+		except UnicodeEncodeError:
+			try:
+				self.win.addch(*(ascii_only(obj) for obj in args))
+			except (_curses.error, TypeError):
+				pass
 
 	def color(self, *keys):
 		"""Change the colors from now on."""
diff --git a/ranger/gui/defaultui.py b/ranger/gui/defaultui.py
index 4baea756..434e6d45 100644
--- a/ranger/gui/defaultui.py
+++ b/ranger/gui/defaultui.py
@@ -92,8 +92,8 @@ class DefaultUI(UI):
 	def close_embedded_pager(self):
 		self.browser.close_pager()
 
-	def open_console(self, mode, string='', prompt=None):
-		if self.console.open(mode, string, prompt=prompt):
+	def open_console(self, string='', prompt=None, position=None):
+		if self.console.open(string, prompt=prompt, position=position):
 			self.status.msg = None
 			self.console.on_close = self.close_console
 			self.console.visible = True
diff --git a/ranger/gui/ui.py b/ranger/gui/ui.py
index e9c20395..b0c1a352 100644
--- a/ranger/gui/ui.py
+++ b/ranger/gui/ui.py
@@ -19,6 +19,7 @@ import curses
 import _curses
 
 from .displayable import DisplayableContainer
+from ranger.gui.curses_shortcuts import ascii_only
 from ranger.container.keymap import CommandArgs
 from .mouse_event import MouseEvent
 
@@ -239,7 +240,10 @@ class UI(DisplayableContainer):
 				split = cwd.rsplit(os.sep, self.settings.shorten_title)
 				if os.sep in split[0]:
 					cwd = os.sep.join(split[1:])
-			sys.stdout.write("\033]2;ranger:" + cwd + "\007")
+			try:
+				sys.stdout.write("\033]2;ranger:" + cwd + "\007")
+			except UnicodeEncodeError:
+				sys.stdout.write("\033]2;ranger:" + ascii_only(cwd) + "\007")
 		self.win.refresh()
 
 	def finalize(self):
diff --git a/ranger/gui/widgets/browsercolumn.py b/ranger/gui/widgets/browsercolumn.py
index fbacbccd..d617e64e 100644
--- a/ranger/gui/widgets/browsercolumn.py
+++ b/ranger/gui/widgets/browsercolumn.py
@@ -14,7 +14,6 @@
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 """The BrowserColumn widget displays the contents of a directory or file."""
-import re
 import stat
 from time import time
 
@@ -22,36 +21,6 @@ from . import Widget
 from .pager import Pager
 from ranger.fsobject import BAD_INFO
 
-# Don't even try to preview files which mach this regular expression:
-PREVIEW_BLACKLIST = re.compile(r"""
-		# look at the extension:
-		\.(
-			# one character extensions:
-				[oa]
-			# media formats:
-				| avi | [mj]pe?g | mp\d | og[gmv] | wm[av] | mkv | flv
-				| png | bmp | vob | wav | mpc | flac | divx? | xcf | pdf
-			# binary files:
-				| torrent | class | so | img | py[co] | dmg
-			# containers:
-				| iso | rar | zip | 7z | tar | gz | bz2 | tgz
-		)
-		# ignore filetype-independent suffixes:
-			(\.part|\.bak|~)?
-		# ignore fully numerical file extensions:
-			(\.\d+)*?
-		$
-""", re.VERBOSE | re.IGNORECASE)
-
-PREVIEW_WHITELIST = re.compile(r"""
-		\.(
-			txt | py | c
-		)
-		# ignore filetype-independent suffixes:
-			(\.part|\.bak|~)?
-		$
-""", re.VERBOSE | re.IGNORECASE)
-
 class BrowserColumn(Pager):
 	main_column = False
 	display_infostring = False
@@ -127,7 +96,7 @@ class BrowserColumn(Pager):
 			return False
 
 		if self.target.is_file:
-			if not self._preview_this_file(self.target):
+			if not self.target.has_preview():
 				return False
 
 		if self.target.is_directory:
@@ -173,43 +142,28 @@ class BrowserColumn(Pager):
 			self.need_redraw = False
 			self.last_redraw_time = time()
 
-	def _preview_this_file(self, target):
-		if not (target \
-				and self.settings.preview_files \
-				and target.is_file \
-				and target.accessible \
-				and target.stat \
-				and not target.is_device \
-				and not target.stat.st_mode & stat.S_IFIFO):
-			return False
-
-		if PREVIEW_WHITELIST.search(target.basename):
-			return True
-		if PREVIEW_BLACKLIST.search(target.basename):
-			return False
-		if target.is_binary():
-			return False
-		return True
-
 	def _draw_file(self):
 		"""Draw a preview of the file, if the settings allow it"""
 		self.win.move(0, 0)
 		if not self.target.accessible:
-			self.win.addnstr("not accessible", self.wid)
+			self.addnstr("not accessible", self.wid)
 			Pager.close(self)
 			return
 
-		if not self._preview_this_file(self.target):
+		if self.target is None or not self.target.has_preview():
 			Pager.close(self)
 			return
 
 		try:
-			f = open(self.target.path, 'r')
+			f = self.target.get_preview_source()
 		except:
 			Pager.close(self)
 		else:
-			self.set_source(f)
-			Pager.draw(self)
+			if f is None:
+				Pager.close(self)
+			else:
+				self.set_source(f)
+				Pager.draw(self)
 
 	def _draw_directory(self):
 		"""Draw the contents of a directory"""
@@ -223,7 +177,7 @@ class BrowserColumn(Pager):
 
 		if not self.target.content_loaded:
 			self.color(base_color)
-			self.win.addnstr("...", self.wid)
+			self.addnstr("...", self.wid)
 			self.color_reset()
 			return
 
@@ -232,13 +186,13 @@ class BrowserColumn(Pager):
 
 		if not self.target.accessible:
 			self.color(base_color, 'error')
-			self.win.addnstr("not accessible", self.wid)
+			self.addnstr("not accessible", self.wid)
 			self.color_reset()
 			return
 
 		if self.target.empty():
 			self.color(base_color, 'empty')
-			self.win.addnstr("empty", self.wid)
+			self.addnstr("empty", self.wid)
 			self.color_reset()
 			return
 
@@ -295,27 +249,22 @@ class BrowserColumn(Pager):
 				this_color.append(drawn.exists and 'good' or 'bad')
 
 			string = drawn.basename
-			try:
-				if self.main_column:
-					if tagged:
-						self.win.addnstr(line, 0, text, self.wid - 2)
-					elif self.wid > 1:
-						self.win.addnstr(line, 1, text, self.wid - 2)
-				else:
-					self.win.addnstr(line, 0, text, self.wid)
-
-				if self.display_infostring and drawn.infostring \
-						and self.settings.display_size_in_main_column:
-					info = drawn.infostring
-					x = self.wid - 1 - len(info)
-					if info is BAD_INFO:
-						bad_info_color = (x, len(str(info)))
-					if x > 0:
-						self.win.addstr(line, x, str(info) + ' ')
-			except:
-				# the drawing of the last string will cause an error
-				# because ncurses tries to move out of the bounds
-				pass
+			if self.main_column:
+				if tagged:
+					self.addnstr(line, 0, text, self.wid - 2)
+				elif self.wid > 1:
+					self.addnstr(line, 1, text, self.wid - 2)
+			else:
+				self.addnstr(line, 0, text, self.wid)
+
+			if self.display_infostring and drawn.infostring \
+					and self.settings.display_size_in_main_column:
+				info = drawn.infostring
+				x = self.wid - 1 - len(info)
+				if info is BAD_INFO:
+					bad_info_color = (x, len(str(info)))
+				if x > 0:
+					self.addstr(line, x, str(info) + ' ')
 
 			self.color_at(line, 0, self.wid, this_color)
 			if bad_info_color:
diff --git a/ranger/gui/widgets/browserview.py b/ranger/gui/widgets/browserview.py
index a90231f2..c80e4885 100644
--- a/ranger/gui/widgets/browserview.py
+++ b/ranger/gui/widgets/browserview.py
@@ -144,7 +144,7 @@ class BrowserView(Widget, DisplayableContainer):
 
 			if maxlen < self.wid:
 				self.win.vline(0, maxlen, curses.ACS_VLINE, line+1)
-				self.win.addch(line+1, maxlen, curses.ACS_LRCORNER)
+				self.addch(line+1, maxlen, curses.ACS_LRCORNER)
 
 	def _draw_borders(self):
 		win = self.win
@@ -188,13 +188,10 @@ class BrowserView(Widget, DisplayableContainer):
 				# in case it's off the boundaries
 				pass
 
-		win.addch(0, left_start, curses.ACS_ULCORNER)
-		win.addch(self.hei - 1, left_start, curses.ACS_LLCORNER)
-		win.addch(0, right_end, curses.ACS_URCORNER)
-		try:
-			win.addch(self.hei - 1, right_end, curses.ACS_LRCORNER)
-		except:
-			pass
+		self.addch(0, left_start, curses.ACS_ULCORNER)
+		self.addch(self.hei - 1, left_start, curses.ACS_LLCORNER)
+		self.addch(0, right_end, curses.ACS_URCORNER)
+		self.addch(self.hei - 1, right_end, curses.ACS_LRCORNER)
 
 	def _collapse(self):
 		# Should the last column be cut off? (Because there is no preview)
diff --git a/ranger/gui/widgets/console.py b/ranger/gui/widgets/console.py
index fa9e438e..57264292 100644
--- a/ranger/gui/widgets/console.py
+++ b/ranger/gui/widgets/console.py
@@ -18,124 +18,101 @@ The Console widget implements a vim-like console for entering
 commands, searching and executing files.
 """
 
-import string
 import curses
+import re
 from collections import deque
 
 from . import Widget
-from ranger.gui.widgets.console_mode import is_valid_mode, mode_to_class
 from ranger import log, relpath_conf
-from ranger.core.runner import ALLOWED_FLAGS
-from ranger.ext.shell_escape import shell_quote
 from ranger.container.keymap import CommandArgs
-from ranger.ext.get_executables import get_executables
 from ranger.ext.direction import Direction
+from ranger.ext.utfwidth import uwid, uchars
 from ranger.container import History
 from ranger.container.history import HistoryEmptyException
 import ranger
 
-DEFAULT_HISTORY = 0
-SEARCH_HISTORY = 1
-QUICKOPEN_HISTORY = 2
-OPEN_HISTORY = 3
-
-class _CustomTemplate(string.Template):
-	"""A string.Template subclass for use in the OpenConsole"""
-	delimiter = '%'
-	idpattern = '[a-z]'
-
-
 class Console(Widget):
-	mode = None
 	visible = False
 	last_cursor_mode = None
+	history_search_pattern = None
 	prompt = ':'
 	copy = ''
 	tab_deque = None
 	original_line = None
 	history = None
-	histories = None
 	override = None
 	allow_close = False
-	historypaths = []
+	historypath = None
 
 	def __init__(self, win):
 		Widget.__init__(self, win)
 		self.clear()
-		self.histories = []
-		# load histories from files
+		self.history = History(self.settings.max_console_history_size)
+		# load history from files
 		if not ranger.arg.clean:
-			self.historypaths = [relpath_conf(x) for x in \
-				('history', 'history_search', 'history_qopen', 'history_open')]
-			for i, path in enumerate(self.historypaths):
-				hist = History(self.settings.max_console_history_size)
-				self.histories.append(hist)
-				if ranger.arg.clean: continue
-				try: f = open(path, 'r')
-				except: continue
+			self.historypath = relpath_conf('history')
+			try:
+				f = open(self.historypath, 'r')
+			except:
+				pass
+			else:
 				for line in f:
-					hist.add(line[:-1])
+					self.history.add(line[:-1])
 				f.close()
 
 	def destroy(self):
-		# save histories from files
+		# save history to files
 		if ranger.arg.clean or not self.settings.save_console_history:
 			return
-		for i, path in enumerate(self.historypaths):
-			try: f = open(path, 'w')
-			except: continue
-			for entry in self.histories[i]:
-				f.write(entry + '\n')
-			f.close()
-
-	def init(self):
-		"""override this. Called directly after class change"""
+		if self.historypath:
+			try:
+				f = open(self.historypath, 'w')
+			except:
+				pass
+			else:
+				for entry in self.history:
+					f.write(entry + '\n')
+				f.close()
 
 	def draw(self):
-		if self.mode is None:
-			return
-
 		self.win.erase()
 		self.addstr(0, 0, self.prompt)
-		overflow = -self.wid + len(self.prompt) + len(self.line) + 1
+		overflow = -self.wid + len(self.prompt) + uwid(self.line) + 1
 		if overflow > 0: 
+			#XXX: cut uft-char-wise, consider width
 			self.addstr(self.line[overflow:])
 		else:
 			self.addstr(self.line)
 
 	def finalize(self):
 		try:
-			self.fm.ui.win.move(self.y,
-					self.x + min(self.wid-1, self.pos + len(self.prompt)))
+			xpos = uwid(self.line[0:self.pos]) + len(self.prompt)
+			self.fm.ui.win.move(self.y, self.x + min(self.wid-1, xpos))
 		except:
 			pass
 
-	def open(self, mode, string='', prompt=None):
-		if not is_valid_mode(mode):
-			return False
+	def open(self, string='', prompt=None, position=None):
 		if prompt is not None:
 			assert isinstance(prompt, str)
 			self.prompt = prompt
 		elif 'prompt' in self.__dict__:
 			del self.prompt
 
-		cls = mode_to_class(mode)
-
 		if self.last_cursor_mode is None:
 			try:
 				self.last_cursor_mode = curses.curs_set(1)
 			except:
 				pass
-		self.mode = mode
-		self.__class__ = cls
-		self.history = self.histories[DEFAULT_HISTORY]
-		self.init()
 		self.allow_close = False
 		self.tab_deque = None
 		self.focused = True
 		self.visible = True
 		self.line = string
+		self.history_search_pattern = self.line
 		self.pos = len(string)
+		if position is not None:
+			self.pos = min(self.pos, position)
+		self.history.fast_forward()
 		self.history.add('')
 		return True
 
@@ -208,7 +185,10 @@ class Console(Widget):
 		else:
 			if self.line != current and self.line != self.history.top():
 				self.history.modify(self.line)
-			self.history.move(n)
+			if self.history_search_pattern:
+				self.history.search(self.history_search_pattern, n)
+			else:
+				self.history.move(n)
 			current = self.history.current()
 			if self.line != current:
 				self.line = self.history.current()
@@ -216,16 +196,20 @@ class Console(Widget):
 
 	def add_to_history(self):
 		self.history.fast_forward()
-		self.history.modify(self.line)
+		self.history.modify(self.line, unique=True)
 
 	def move(self, **keywords):
 		direction = Direction(keywords)
 		if direction.horizontal():
-			self.pos = direction.move(
+			# Ensure that the pointer is moved utf-char-wise
+			uc = uchars(self.line)
+			upos = len(uchars(self.line[:self.pos]))
+			newupos = direction.move(
 					direction=direction.right(),
 					minimum=0,
-					maximum=len(self.line) + 1,
-					current=self.pos)
+					maximum=len(uc) + 1,
+					current=upos)
+			self.pos = len(''.join(uc[:newupos]))
 
 	def delete_rest(self, direction):
 		self.tab_deque = None
@@ -247,76 +231,30 @@ class Console(Widget):
 		self.on_line_change()
 
 	def delete_word(self):
-		self.tab_deque = None
-		try:
-			i = self.line.rindex(' ', 0, self.pos - 1) + 1
-			self.line = self.line[:i] + self.line[self.pos:]
+		if self.line:
+			self.tab_deque = None
+			i = len(self.line) - 2
+			while i >= 0 and re.match(r'[\w\d]', self.line[i], re.U):
+				i -= 1
+			self.copy = self.line[i + 1:]
+			self.line = self.line[:i + 1]
 			self.pos = len(self.line)
-		except ValueError:
-			self.line = ''
-			self.pos = 0
-		self.on_line_change()
+			self.on_line_change()
 
 	def delete(self, mod):
 		self.tab_deque = None
-		if mod == -1 and len(self.line) == 0:
-			self.close()
-		pos = self.pos + mod
-
-		self.line = self.line[0:pos] + self.line[pos+1:]
-		self.move(right=mod)
+		if mod == -1 and self.pos == 0:
+			if not self.line:
+				self.close()
+			return
+		# Delete utf-char-wise
+		uc = uchars(self.line)
+		upos = len(uchars(self.line[:self.pos])) + mod
+		left_part = ''.join(uc[:upos])
+		self.pos = len(left_part)
+		self.line = left_part + ''.join(uc[upos+1:])
 		self.on_line_change()
 
-	def execute(self):
-		pass
-
-	def tab(self):
-		pass
-
-	def on_line_change(self):
-		pass
-
-
-class ConsoleWithTab(Console):
-	def tab(self, n=1):
-		if self.tab_deque is None:
-			tab_result = self._get_tab()
-
-			if isinstance(tab_result, str):
-				self.line = tab_result
-				self.pos = len(tab_result)
-				self.on_line_change()
-
-			elif tab_result == None:
-				pass
-
-			elif hasattr(tab_result, '__iter__'):
-				self.tab_deque = deque(tab_result)
-				self.tab_deque.appendleft(self.line)
-
-		if self.tab_deque is not None:
-			self.tab_deque.rotate(-n)
-			self.line = self.tab_deque[0]
-			self.pos = len(self.line)
-			self.on_line_change()
-
-	def _get_tab(self):
-		"""
-		Override this function in the subclass!
-
-		It should return either a string, an iterable or None.
-		If a string is returned, tabbing will result in the line turning
-		into that string.
-		If another iterable is returned, each tabbing will cycle through
-		the elements of the iterable (which have to be strings).
-		If None is returned, nothing will happen.
-		"""
-
-		return None
-
-
-class CommandConsole(ConsoleWithTab):
-	prompt = ':'
 
 	def execute(self, cmd=None):
 		self.allow_close = True
@@ -340,7 +278,7 @@ class CommandConsole(ConsoleWithTab):
 		except:
 			return None
 		else:
-			return command_class(self.line, self.mode)
+			return command_class(self.line)
 
 	def _get_cmd_class(self):
 		return self.fm.commands.get_command(self.line.split()[0])
@@ -355,277 +293,35 @@ class CommandConsole(ConsoleWithTab):
 
 		return self.fm.commands.command_generator(self.line)
 
+	def tab(self, n=1):
+		if self.tab_deque is None:
+			tab_result = self._get_tab()
+
+			if isinstance(tab_result, str):
+				self.line = tab_result
+				self.pos = len(tab_result)
+				self.on_line_change()
+
+			elif tab_result == None:
+				pass
+
+			elif hasattr(tab_result, '__iter__'):
+				self.tab_deque = deque(tab_result)
+				self.tab_deque.appendleft(self.line)
+
+		if self.tab_deque is not None:
+			self.tab_deque.rotate(-n)
+			self.line = self.tab_deque[0]
+			self.pos = len(self.line)
+			self.on_line_change()
 
-class QuickCommandConsole(CommandConsole):
-	"""
-	The QuickCommandConsole is essentially the same as the
-	CommandConsole, and includes one additional feature:
-	After each letter you type, it checks whether the command as it
-	stands there could be executed in a meaningful way, and if it does,
-	run it right away.
-
-	Example:
-	>cd ..
-	As you type the last dot, The console will recognize what you mean
-	and enter the parent directory saving you the time of pressing enter.
-	"""
-	prompt = '>'
 	def on_line_change(self):
+		self.history_search_pattern = self.line
 		try:
 			cls = self._get_cmd_class()
 		except (KeyError, ValueError, IndexError):
 			pass
 		else:
-			cmd = cls(self.line, self.mode)
+			cmd = cls(self.line)
 			if cmd and cmd.quick():
 				self.execute(cmd)
-
-
-class SearchConsole(Console):
-	prompt = '/'
-
-	def init(self):
-		self.history = self.histories[SEARCH_HISTORY]
-
-	def execute(self):
-		self.fm.search_file(self.line, regexp=True)
-		self.close()
-
-
-class OpenConsole(ConsoleWithTab):
-	"""
-	The Open Console allows you to execute shell commands:
-	!vim *         will run vim and open all files in the directory.
-
-	%f will be replaced with the basename of the highlighted file
-	%s will be selected with all files in the selection
-
-	There is a special syntax for more control:
-
-	!d! mplayer    will run mplayer with flags (d means detached)
-	!@ mplayer     will open the selected files with mplayer
-			   (equivalent to !mplayer %s)
-
-	Those two can be combinated:
-
-	!d!@mplayer    will open the selection with a detached mplayer
-				   (again, this is equivalent to !d!mplayer %s)
-
-	For a list of other flags than "d", check chapter 2.5 of the documentation
-	"""
-	prompt = '!'
-
-	def init(self):
-		self.history = self.histories[OPEN_HISTORY]
-
-	def execute(self):
-		command, flags = self._parse()
-		if not command and 'p' in flags:
-			command = 'cat %f'
-		if command:
-			if _CustomTemplate.delimiter in command:
-				command = self._substitute_metachars(command)
-			self.fm.execute_command(command, flags=flags)
-		self.close()
-
-	def _get_tab(self):
-		try:
-			i = self.line.index('!')+1
-		except ValueError:
-			line = self.line
-			start = ''
-		else:
-			line = self.line[i:]
-			start = self.line[:i]
-
-		try:
-			position_of_last_space = line.rindex(" ")
-		except ValueError:
-			return (start + program + ' ' for program \
-					in get_executables() if program.startswith(line))
-		if position_of_last_space == len(line) - 1:
-			return self.line + '%s '
-		else:
-			before_word, start_of_word = self.line.rsplit(' ', 1)
-			return (before_word + ' ' + file.shell_escaped_basename \
-					for file in self.fm.env.cwd.files \
-					if file.shell_escaped_basename.startswith(start_of_word))
-
-	def _substitute_metachars(self, command):
-		macros = {}
-
-		if self.fm.env.cf:
-			macros['f'] = shell_quote(self.fm.env.cf.basename)
-		else:
-			macros['f'] = ''
-
-		macros['s'] = ' '.join(shell_quote(fl.basename) \
-				for fl in self.fm.env.get_selection())
-
-		macros['c'] = ' '.join(shell_quote(fl.path)
-				for fl in self.fm.env.copy)
-
-		macros['t'] = ' '.join(shell_quote(fl.basename)
-				for fl in self.fm.env.cwd.files
-				if fl.realpath in self.fm.tags)
-
-		if self.fm.env.cwd:
-			macros['d'] = shell_quote(self.fm.env.cwd.path)
-		else:
-			macros['d'] = '.'
-
-		return _CustomTemplate(command).safe_substitute(macros)
-
-	def _parse(self):
-		if '!' in self.line:
-			flags, cmd = self.line.split('!', 1)
-		else:
-			flags, cmd = '', self.line
-
-		add_selection = False
-		if cmd.startswith('@'):
-			cmd = cmd[1:]
-			add_selection = True
-		elif flags.startswith('@'):
-			flags = flags[1:]
-			add_selection = True
-
-		if add_selection:
-			cmd += ' ' + ' '.join(shell_quote(fl.basename) \
-					for fl in self.env.get_selection())
-
-		return (cmd, flags)
-
-
-class QuickOpenConsole(ConsoleWithTab):
-	"""
-	The Quick Open Console allows you to open files with predefined programs
-	and modes very quickly.  By adding flags to the command, you can specify
-	precisely how the program is run, e.g. the d-flag will run it detached
-	from the file manager.
-
-	For a list of other flags than "d", check chapter 2.5 of the documentation
-
-	The syntax is "open with: <application> <mode> <flags>".
-	The parsing of the arguments is very flexible.  You can leave out one or
-	more arguments (or even all of them) and it will fall back to default
-	values.  You can switch the order as well.
-	There is just one rule:
-
-	If you supply the <application>, it has to be the first argument.
-
-	Examples:
-
-	open with: mplayer D     open the selection in mplayer, but not detached
-	open with: 1             open it with the default handler in mode 1
-	open with: d             open it detached with the default handler
-	open with: p             open it as usual, but pipe the output to "less"
-	open with: totem 1 Ds    open in totem in mode 1, will not detach the
-							 process (flag D) but discard the output (flag s)
-	"""
-
-	prompt = 'open with: '
-
-	def init(self):
-		self.history = self.histories[QUICKOPEN_HISTORY]
-
-	def execute(self):
-		split = self.line.split()
-		app, flags, mode = self._get_app_flags_mode()
-		self.fm.execute_file(
-				files = [self.env.cf],
-				app = app,
-				flags = flags,
-				mode = mode )
-		self.close()
-
-	def _get_app_flags_mode(self):
-		"""
-		Extracts the application, flags and mode from
-		a string entered into the "openwith_quick" console.
-		"""
-		# examples:
-		# "mplayer d 1" => ("mplayer", "d", 1)
-		# "aunpack 4" => ("aunpack", "", 4)
-		# "p" => ("", "p", 0)
-		# "" => None
-
-		app = ''
-		flags = ''
-		mode = 0
-		split = self.line.split()
-
-		if len(split) == 0:
-			pass
-
-		elif len(split) == 1:
-			part = split[0]
-			if self._is_app(part):
-				app = part
-			elif self._is_flags(part):
-				flags = part
-			elif self._is_mode(part):
-				mode = part
-
-		elif len(split) == 2:
-			part0 = split[0]
-			part1 = split[1]
-
-			if self._is_app(part0):
-				app = part0
-				if self._is_flags(part1):
-					flags = part1
-				elif self._is_mode(part1):
-					mode = part1
-			elif self._is_flags(part0):
-				flags = part0
-				if self._is_mode(part1):
-					mode = part1
-			elif self._is_mode(part0):
-				mode = part0
-				if self._is_flags(part1):
-					flags = part1
-
-		elif len(split) >= 3:
-			part0 = split[0]
-			part1 = split[1]
-			part2 = split[2]
-
-			if self._is_app(part0):
-				app = part0
-				if self._is_flags(part1):
-					flags = part1
-					if self._is_mode(part2):
-						mode = part2
-				elif self._is_mode(part1):
-					mode = part1
-					if self._is_flags(part2):
-						flags = part2
-			elif self._is_flags(part0):
-				flags = part0
-				if self._is_mode(part1):
-					mode = part1
-			elif self._is_mode(part0):
-				mode = part0
-				if self._is_flags(part1):
-					flags = part1
-
-		return app, flags, int(mode)
-
-	def _get_tab(self):
-		if ' ' not in self.line:
-			all_apps = self.fm.apps.all()
-			if all_apps:
-				return (app for app in all_apps if app.startswith(self.line))
-
-		return None
-
-	def _is_app(self, arg):
-		return self.fm.apps.has(arg) or \
-			(not self._is_flags(arg) and arg in get_executables())
-
-	def _is_flags(self, arg):
-		return all(x in ALLOWED_FLAGS for x in arg)
-
-	def _is_mode(self, arg):
-		return all(x in '0123456789' for x in arg)
diff --git a/ranger/gui/widgets/console_mode.py b/ranger/gui/widgets/console_mode.py
deleted file mode 100644
index c29f9959..00000000
--- a/ranger/gui/widgets/console_mode.py
+++ /dev/null
@@ -1,55 +0,0 @@
-# Copyright (C) 2009, 2010  Roman Zimbelmann <romanz@lavabit.com>
-#
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-DEFAULT = 0
-COMMAND = 1
-COMMAND_QUICK = 2
-OPEN = 3
-OPEN_QUICK = 4
-SEARCH = 5
-
-def is_valid_mode(mode):
-	"""
-	Returns True or False depending on whether the mode is valid or not.
-	"""
-	return isinstance(mode, int) and mode >= 0 and mode <= 5
-
-def all_modes(mode):
-	"""
-	Returns a generator containing all valid modes.
-	"""
-	return range(6)
-
-def mode_to_class(mode):
-	"""
-	Associates modes with the actual classes
-	from ranger.gui.widgets.console.
-	"""
-	from .console import Console, CommandConsole, OpenConsole, \
-			QuickOpenConsole, QuickCommandConsole, SearchConsole
-
-	if mode == DEFAULT:
-		return Console
-	if mode == COMMAND:
-		return CommandConsole
-	if mode == OPEN:
-		return OpenConsole
-	if mode == OPEN_QUICK:
-		return QuickOpenConsole
-	if mode == COMMAND_QUICK:
-		return QuickCommandConsole
-	if mode == SEARCH:
-		return SearchConsole
-	raise ValueError
diff --git a/ranger/gui/widgets/statusbar.py b/ranger/gui/widgets/statusbar.py
index 3019930b..2a92f313 100644
--- a/ranger/gui/widgets/statusbar.py
+++ b/ranger/gui/widgets/statusbar.py
@@ -224,19 +224,23 @@ class StatusBar(Widget):
 				right.add(human_readable(sum(f.size \
 					for f in target.marked_items \
 					if f.is_file), seperator=''))
-			right.add(" / " + str(len(target.marked_items)))
+			right.add("/" + str(len(target.marked_items)))
 		else:
-			right.add(human_readable(target.disk_usage, seperator=''))
-			right.add(", ", "space")
+			right.add(human_readable(target.disk_usage, seperator='') +
+					" sum, ")
 			right.add(human_readable(self.env.get_free_space( \
-					target.mount_path), seperator=''))
+					target.mount_path), seperator='') + " free")
 		right.add("  ", "space")
 
 		if target.marked_items:
 			# Indicate that there are marked files. Useful if you scroll
 			# away and don't see them anymore.
 			right.add('Mrk', base, 'marked')
-		elif max_pos > 0:
+		elif len(target.files):
+			right.add(str(target.pointer + 1) + '/'
+					+ str(len(target.files)) + '  ', base)
+			if max_pos == 0:
+				right.add('All', base, 'all')
 			if pos == 0:
 				right.add('Top', base, 'top')
 			elif pos >= max_pos:
@@ -245,7 +249,7 @@ class StatusBar(Widget):
 				right.add('{0:0>.0f}%'.format(100.0 * pos / max_pos),
 						base, 'percentage')
 		else:
-			right.add('All', base, 'all')
+			right.add('0/0  All', base, 'all')
 
 	def _print_result(self, result):
 		self.win.move(0, 0)
diff --git a/ranger/gui/widgets/taskview.py b/ranger/gui/widgets/taskview.py
index 475b903c..e988b08c 100644
--- a/ranger/gui/widgets/taskview.py
+++ b/ranger/gui/widgets/taskview.py
@@ -86,7 +86,8 @@ class TaskView(Widget, Accumulator):
 		if i is None:
 			i = self.pointer
 
-		self.fm.loader.remove(index=i)
+		if self.fm.loader.queue:
+			self.fm.loader.remove(index=i)
 
 	def task_move(self, to, i=None):
 		if i is None:
diff --git a/ranger/gui/widgets/titlebar.py b/ranger/gui/widgets/titlebar.py
index 17da7748..35e2e3d9 100644
--- a/ranger/gui/widgets/titlebar.py
+++ b/ranger/gui/widgets/titlebar.py
@@ -52,7 +52,7 @@ class TitleBar(Widget):
 		self._print_result(self.result)
 		if self.wid > 2:
 			self.color('in_titlebar', 'throbber')
-			self.win.addnstr(self.y, self.wid - 2 - self.tab_width,
+			self.addnstr(self.y, self.wid - 2 - self.tab_width,
 					self.throbber, 1)
 
 	def click(self, event):
diff --git a/ranger/help/console.py b/ranger/help/console.py
index d1764841..f03491db 100644
--- a/ranger/help/console.py
+++ b/ranger/help/console.py
@@ -13,59 +13,33 @@
 # You should have received a copy of the GNU General Public License
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 """
-3. Basic movement and browsing
+3. The Console
 
-3.1. Overview of all the Console Modes
+3.1. General Information
 3.2. List of Commands
-3.3. The (Quick) Command Console
-3.4. The Open Console
-3.5. The Quick Open Console
-
+3.3. Macros
+3.4. The more complicated Commands in Detail
 
 ==============================================================================
-3.1. Overview of all the Console Modes:
-
-There are, as of now, five different types of consoles:
-
-3.1.1. The Command Console, opened by pressing ":"
-      Usable for entering commands like you know it from vim.
-      Use the tab key to cycle through all available commands
-      and press F1 to view the docstring of the current command.
-
-3.1.2. The Quick Command Console, opened with ">"
-      Works just like 3.1.1, but it saves you pressing <RETURN> by checking
-      whether the current input can be executed in a meaningful way
-      and doing so automatically.  (works with commands like cd, find.)
-
-3.1.3. The Search Console, opened with "/"
-      Very much like the console you get in vim after pressing "/".
-      The current directory will be searched for files whose names
-      match the given regular expression.
+3.1. General Information
 
-3.1.4. The Open Console, activated with "!"
-      Similar to ":!..." in vim.  The given command will be executed,
-      "%s" will be replaced with all the files in the selection,
-      "%f" is replaced with only the current highlighted file.
-      There are further options to tweak how the command is executed.
+The console is opened by pressing ":".  Press <TAB> to cycle through all
+available commands and press <F1> to view help about the current command.
 
-3.1.5. The Quick Open Console, opened by pressing "r"
-      Rather than having to enter the full command, this console gives
-      you a higher level interface to running files.
-      You can define the application, the mode and the flags separated
-      with spaces.
+All commands are defined in the file ranger/defaults/commands.py, which
+also contains a detailed specification.
 
 
 ==============================================================================
 3.2. List of Commands
 
-This is a list of the few commands which are implemented by default.
-All commands except for ":delete" can be abbreviated to the shortest
+All commands except for ":delete" can be abbreviated with the shortest
 unambiguous name, e.g. ":chmod" can be written as ":ch" but not as ":c" since
 it conflicts with ":cd".
 
 
 :cd <dirname>
-      Changes the directory to <dirname> *
+      Changes the directory to <dirname>
 
 :chmod <octal_number>
       Sets the permissions of the selection to the octal number.
@@ -86,10 +60,9 @@ it conflicts with ":cd".
 :filter <string>
       Displays only files which contain <string> in their basename.
 
-:find <string>
-      Look for a partial, case insensitive match in the filenames
-      of the current directory and execute it if there is only
-      one match. *
+:find <regexp>
+      Quickly find files that match the regexp and execute the first
+	  unambiguous match.
 
 :grep <string>
       Looks for a string in all marked files or directory.
@@ -104,65 +77,34 @@ it conflicts with ":cd".
 :mkdir <dirname>
       Creates a directory with the name <dirname>
 
+:open_with [<program>] [<flags>] [<mode>]
+      Open the current file with the program, flags and mode. |24?| |25?|
+      All arguments are optional.  If none is given, its equivalent to
+      pressing <Enter>
+
 :quit
       Exits ranger
 
 :rename <newname>
       Changes the name of the currently highlighted file to <newname>
 
+:search <regexp>
+      Search for a regexp in all file names, like the / key in vim.
+
+:shell [-<flags>] <command>
+      Run the command, optionally with some flags.  |25?|
+      Example: shell -d firefox -safe-mode %s
+      opens (detached from ranger) the selection in firefox' safe-mode
+
 :terminal
       Spawns "x-terminal-emulator" starting in the current directory.
 
 :touch <filename>
       Creates a file with the name <filename>
 
-* implements handler for the Quick Command Console.
-
 
 ==============================================================================
-3.3. The (Quick) Command Console
-
-Open these consoles by pressing ":" or ">"
-
-The Command Console and the "Quick" Command Console are mostly identical
-since they share the commands.  As explained in 3.1.2, the point in using
-the Quick Command Console is that the command is executed without the
-need to press <RETURN> as soon as ranger thinks you want it executed.
-
-Take the "find" command, for example.  It will attempt to find a file
-or directory which matches the given input, and if there is one unambiguous
-match, that file will be executed or that directory will be entered.
-If you use the "find" command in the quick console, as soon as there is
-one unambiguous match, <RETURN> will be pressed for you, giving you a
-very fast way to browse your files.
-
-
-All commands are defined in ranger/defaults/commands.py.  You can refer to this
-file for a list of commands.  Implementing new commands should be intuitive:
-Create a new class, a subclass of Command, and define the execute method
-is usually enough.  For parsing command input, the command parser in
-ranger/ext/command_parser.py is used.  The tab method should return None,
-a string or an iterable sequence containing the strings which should be
-cycled through by pressing tab.
-
-Only those commands which implement the quick() method will be specially
-treated by the Quick Command Console.  For the rest, both consoles are equal.
-quick() is called after each key press and if it returns True, the
-command will be executed immediately.
-
-
-Pressing F1 inside the console displays the docstring of the current command
-in the pager if docstrings are available (i.e.  unless python is run with
-the flag "-OO" which removes all docstrings.)
-
-
-==============================================================================
-3.4. The Open Console
-
-Open this console by pressing "!" or "s"
-
-The Open Console allows you to execute shell commands:
-!vim *         will run vim and open all files in the directory.
+3.3. Macros
 
 Like in similar filemanagers there are some macros.  Use them in
 commands and they will be replaced with a list of files.
@@ -173,61 +115,41 @@ commands and they will be replaced with a list of files.
 	%t	all tagged files in the current directory
 	%c	the full paths of the currently copied/cut files
 
+The macros %f, %d and %s also have upper case variants, %F, %D and %S,
+which refer to the next tab.  To refer to specific tabs, add a number in
+between. Examples:
+	%D	The path of the directory in the next tab
+	%7s	The selection of the seventh tab
+
 %c is the only macro which ranges out of the current directory. So you may
 "abuse" the copying function for other purposes, like diffing two files which
 are in different directories:
 
 	Yank the file A (type yy), move to the file B and use:
-	!p!diff %c %f
-
-There is a special syntax for more control:
-
-!d! mplayer    will run mplayer with flags (d means detached)
-!@ mplayer     will open the selected files with mplayer
-	       (equivalent to !mplayer %s)
-
-Those two can be combinated:
-
-!d!@mplayer    will open the selection with a detached mplayer
-	       (again, this is equivalent to !d!mplayer %s)
-
-These keys open the console with a predefined text:
-	@	"!@"	Suffixes %s.  Good for things like "@mount"
-	#	"!p!"	Pipes output through a pager.  For commands with output.
-			Note: A plain "!p!" will be translated to "!p!cat %f"
-
-For a list of other flags than "d", check chapter 2.5 of the documentation
+	:shell -p diff %c %f
 
 
 ==============================================================================
-3.5. The Quick Open Console
-
-Open this console by pressing "r"
-
-The Quick Open Console allows you to open files with predefined programs
-and modes very quickly.  By adding flags to the command, you can specify
-precisely how the program is run, e.g. the d-flag will run it detached
-from the file manager.
-
-For a list of other flags than "d", check chapter 2.5 of the documentation
-
-The syntax is "open with: <application> <mode> <flags>".
-The parsing of the arguments is very flexible.  You can leave out one or
-more arguments (or even all of them) and it will fall back to default
-values.  You can switch the order as well.
-There is just one rule:
-
-If you supply the <application>, it has to be the first argument.
-
-Examples:
-
-open with: mplayer D     open the selection in mplayer, but not detached
-open with: 1             open it with the default handler in mode 1
-open with: d             open it detached with the default handler
-open with: p             open it as usual, but pipe the output to "less"
-open with: totem 1 Ds    open in totem in mode 1, will not detach the
-			 process (flag D) but discard the output (flag s)
-
+3.4. The more complicated Commands in Detail
+
+3.3.1. "find"
+The find command is different than others: it doesn't require you to
+press <RETURN>.  To speed things up, it tries to guess when you're
+done typing and executes the command right away.
+The key "f" opens the console with ":find "
+
+3.3.2. "shell"
+The shell command accepts flags |25?| as the first argument. This example
+will use the "p"-flag, which pipes the output to the pager:
+	:shell -p cat somefile.txt
+
+There are some shortcuts which open the console with the shell command:
+	"!" opens ":shell "
+	"@" opens ":shell  %s"
+	"#" opens ":shell -p "
+
+3.3.3. "open_with"
+The open_with command is explained in detail in chapter 2.2. |22?|
 
 ==============================================================================
 """
diff --git a/ranger/help/fileop.py b/ranger/help/fileop.py
index 53ce9ff8..ac23c6d4 100644
--- a/ranger/help/fileop.py
+++ b/ranger/help/fileop.py
@@ -31,7 +31,7 @@ harm your files:
 :chmod <number>    Change the rights of the selection
 :delete            DELETES ALL FILES IN THE SELECTION
 :rename <newname>  Change the name of the current file
-pp, pl, po         Pastes the copied files in different ways
+pp, pl, pL, po     Pastes the copied files in different ways
 
 Think twice before using these commands or key combinations.
 
@@ -60,10 +60,14 @@ The "highlighted file", or the "current file", is the one below the cursor.
 	yy	copy the selection
 	dd	cut the selection
 
+	ya, da	add the selection to the copied/cut files
+	yr, dr	remove the selection from the copied/cut files
+
 	pp	paste the copied/cut files. No file will be overwritten.
 		Instead, a "_" character will be appended to the new filename.
 	po	paste the copied/cut files. Existing files are overwritten.
 	pl	create symbolic links to the copied/cut files.
+	pL	create relative symbolic links to the copied/cut files.
 
 The difference between copying and cutting should be intuitive:
 
@@ -75,6 +79,9 @@ If renaming is not possible because the source and the destination are
 on separate devices, it will be copied and eventually the source is deleted.
 This implies that a file can only be cut + pasted once.
 
+The files are either copied or cut, never mixed even if you mix "da" and "ya"
+keys (in which case the last command is decisive about whether they are copied
+or cut.)
 
 ==============================================================================
 4.4. Task View
diff --git a/ranger/help/index.py b/ranger/help/index.py
index 316e975f..1245da64 100644
--- a/ranger/help/index.py
+++ b/ranger/help/index.py
@@ -18,8 +18,8 @@
                                                                      k
     Move around:  Use the cursor keys, or "h" to go left,          h   l
                   "j" to go down, "k" to go up, "l" to go right.     j
-   Close Ranger:  Use ":q<Enter>" or "Q".
-  Specific help:  Type the help key "?" prepended with a number:
+   Close Ranger:  Type "Q"
+  Specific help:  Type "?", prepended with a number:
 
 	|0?|	This index
 	|1?|	Basic movement and browsing
diff --git a/ranger/help/invocation.py b/ranger/help/invocation.py
index 3de574cc..26cffd4a 100644
--- a/ranger/help/invocation.py
+++ b/ranger/help/invocation.py
@@ -43,9 +43,10 @@ command line.
       This is useful when your configuration is broken, when you want
       to avoid clutter, etc.
 
---fail-if-run
+--fail-unless-cd
       Return the exit code 1 if ranger is used to run a file, for example
-      with `ranger --fail-if-run filename`.  This can be useful for scripts.
+      with `ranger --fail-unless-cd filename`.  This can be useful for scripts.
+      (This option used to be called --fail-if-run)
 
 -r <dir>, --confdir=<dir>
       Define a different configuration directory.  The default is
@@ -69,7 +70,7 @@ command line.
 Examples:
       ranger episode1.avi
       ranger --debug /usr/bin
-      ranger --confdir=~/.config/ranger --fail-if-run
+      ranger --confdir=~/.config/ranger --fail-unless-cd
 
 
 ==============================================================================
@@ -95,7 +96,7 @@ docstrings.  Use this option if you don't need the documentation.
 Examples:
       PYTHONOPTIMIZE=1 ranger episode1.avi
       PYTHONOPTIMIZE=2 ranger --debug /usr/bin
-      python -OO `which ranger` --confdir=~/.config/ranger --fail-if-run
+      python -OO `which ranger` --confdir=~/.config/ranger --fail-unless-cd
 
 Note: The author expected "-OO" to reduce the memory usage, but that
 doesn't seem to happen.
diff --git a/ranger/help/movement.py b/ranger/help/movement.py
index 3287e9bb..564b226b 100644
--- a/ranger/help/movement.py
+++ b/ranger/help/movement.py
@@ -74,6 +74,9 @@ This keys can be used to make movements beyond the current directory
 	{	traverse in the other direction. (not implemented yet,
 		currently this only moves back in history)
 
+	gl	move to the real path of the current directory (resolving symlinks)
+	gL	move to the real path of the selected file or directory
+
 
 ==============================================================================
 1.2. Browser control
@@ -96,7 +99,10 @@ of the file you're pointing at.
 
 	<Space> mark a file
 	v	toggle all marks
-	V	remove all marks
+	V, uv	remove all marks
+	^V	mark files in a specific direction
+		e.g. ^Vgg marks all files from the current to the top
+	u^V	unmark files in a specific direction
 
 By "tagging" files, you can highlight them and mark them to be
 special in whatever context you want.  Tags are persistent across sessions.
diff --git a/ranger/help/starting.py b/ranger/help/starting.py
index 069d6a04..1796f83d 100644
--- a/ranger/help/starting.py
+++ b/ranger/help/starting.py
@@ -17,7 +17,7 @@
 2. Running Files
 
 2.1. How to run files
-2.2. The "open with" prompt
+2.2. The "open_with" command
 2.2. Programs
 2.4. Modes
 2.5. Flags
@@ -30,40 +30,47 @@ While highlighting a file, press the "l" key to fire up the automatic
 filetype detection mechanism and attempt to start the file.
 
 	l	run the selection
-	r	open the "open with" prompt
+	r	open the console with ":open_with"
 
 Note: The selection means, if there are marked files in this directory,
 use them.  Otherwise use the file under the cursor.
 
 
 ==============================================================================
-2.2. The "open with" prompt
+2.2. The "open_with" command
 
 If the automatic filetype detection fails or starts the file in a wrong
 way, you can press "r" to manually tell ranger how to run it.
 
-Syntax: open with: <program> <flags> <mode>
+The programs and modes can be defined in the apps.py, giving you a
+high level interface for running files.
+
+Syntax: :open_with <program> <flags> <mode>
+You can leave out parameters or change the order.
 
 Examples:
 Open this file with vim:
-	open with: vim
+	:open_with vim
 Run this file like with "./file":
-	open with: self
+	:open_with self
+Open this file as usual but pipe the output to "less"
+	:open_with p
 Open this file with mplayer with the "detached" flag:
-	open with: mplayer d
+	:open_with mplayer d
+Open this file with totem in mode 1, will not detach the process (flag D)
+but discard the output (flag s).
+	:open_with totem 1 Ds
 
 The parameters <program>, <flags> and <mode> are explained in the
 following paragraphs
 
-Note: The "open with" console is named QuickOpenConsole in the source code.
-
 
 ==============================================================================
 2.3. Programs
 
 Programs have to be defined in ranger/defaults/apps.py.  Each function
 in the class CustomApplications which starts with "app_" can be used
-as a program in the "open with" prompt.
+as a program in the "open_with" command.
 
 You're encouraged to add your own program definitions to the list.  Refer to
 the existing examples in the apps.py, it should be easy to adapt it for your
@@ -81,8 +88,8 @@ gives you 2 ways of opening a video (by default):
 
 By specifying a mode, you can select one of those.  The "l" key will
 start a file in mode 0. "4l" will start the file in mode 4 etc.
-You can specify a mode in the "open with" console by simply adding
-the number.  Eg: "open with: mplayer 1" or "open with: 1"
+You can specify a mode in the "open_with" command by simply adding
+the number.  Eg: ":open_with mplayer 1" or ":open_with 1"
 
 For a list of all programs and modes, see ranger/defaults/apps.py
 
@@ -95,12 +102,13 @@ Flags give you a way to modify the behaviour of the spawned process.
 	s	Silent mode.  Output will be discarded.
 	d	Detach the process.  (Run in background)
 	p	Redirect output to the pager
+	w	Wait for an enter-press when the process is done
 
-For example, "open with: p" will pipe the output of that process into
+For example, ":open_with p" will pipe the output of that process into
 the pager.
 
 An uppercase flag has the opposite effect.  If a program will be detached by
-default, use "open with: D" to not detach it.
+default, use ":open_with D" to not detach it.
 
 Note: Some combinations don't make sense, eg: "vim d" would open the file in
 vim and detach it.  Since vim is a console application, you loose grip
diff --git a/ranger/shared/mimetype.py b/ranger/shared/mimetype.py
index c6577056..da6fcd10 100644
--- a/ranger/shared/mimetype.py
+++ b/ranger/shared/mimetype.py
@@ -15,9 +15,12 @@
 
 from ranger import relpath
 import mimetypes
+import os.path
+
 class MimeTypeAware(object):
 	mimetypes = {}
 	def __init__(self):
 		MimeTypeAware.__init__ = lambda _: None  # refuse multiple inits
+		mimetypes.knownfiles.append(os.path.expanduser('~/.mime.types'))
 		MimeTypeAware.mimetypes = mimetypes.MimeTypes()
 		MimeTypeAware.mimetypes.read(relpath('data/mime.types'))
diff --git a/ranger/shared/settings.py b/ranger/shared/settings.py
index f5d8614f..7604af12 100644
--- a/ranger/shared/settings.py
+++ b/ranger/shared/settings.py
@@ -20,35 +20,35 @@ from ranger.ext.signal_dispatcher import SignalDispatcher
 from ranger.ext.openstruct import OpenStruct
 
 ALLOWED_SETTINGS = {
-	'show_hidden': bool,
-	'show_hidden_bookmarks': bool,
-	'show_cursor': bool,
 	'autosave_bookmarks': bool,
-	'save_console_history': bool,
 	'collapse_preview': bool,
+	'colorscheme_overlay': (type(None), type(lambda:0)),
+	'colorscheme': str,
 	'column_ratios': (tuple, list, set),
+	'dirname_in_tabs': bool,
 	'display_size_in_main_column': bool,
 	'display_size_in_status_bar': bool,
-	'draw_borders': bool,
 	'draw_bookmark_borders': bool,
-	'dirname_in_tabs': bool,
-	'sort': str,
-	'sort_reverse': bool,
+	'draw_borders': bool,
+	'flushinput': bool,
+	'hidden_filter': lambda x: isinstance(x, str) or hasattr(x, 'match'),
+	'max_console_history_size': (int, type(None)),
+	'max_history_size': (int, type(None)),
+	'mouse_enabled': bool,
+	'preview_directories': bool,
+	'preview_files': bool,
+	'save_console_history': bool,
+	'scroll_offset': int,
+	'shorten_title': int,  # Note: False is an instance of int
+	'show_cursor': bool,
+	'show_hidden_bookmarks': bool,
+	'show_hidden': bool,
 	'sort_case_insensitive': bool,
 	'sort_directories_first': bool,
-	'update_title': bool,
-	'shorten_title': int,  # Note: False is an instance of int
+	'sort_reverse': bool,
+	'sort': str,
 	'tilde_in_titlebar': bool,
-	'max_history_size': (int, type(None)),
-	'max_console_history_size': (int, type(None)),
-	'scroll_offset': int,
-	'preview_files': bool,
-	'preview_directories': bool,
-	'mouse_enabled': bool,
-	'flushinput': bool,
-	'colorscheme': str,
-	'colorscheme_overlay': (type(None), type(lambda:0)),
-	'hidden_filter': lambda x: isinstance(x, str) or hasattr(x, 'match'),
+	'update_title': bool,
 	'xterm_alt_key': bool,
 }
 
@@ -66,7 +66,9 @@ class SettingObject(SignalDispatcher):
 		if name[0] == '_':
 			self.__dict__[name] = value
 		else:
-			assert name in self._settings, "No such setting: {0}!".format(name)
+			assert name in ALLOWED_SETTINGS, "No such setting: {0}!".format(name)
+			if name not in self._settings:
+				getattr(self, name)
 			assert self._check_type(name, value)
 			kws = dict(setting=name, value=value,
 					previous=self._settings[name])
diff --git a/scripts/ranger b/scripts/ranger
new file mode 120000
index 00000000..21b7d3ee
--- /dev/null
+++ b/scripts/ranger
@@ -0,0 +1 @@
+../ranger.py
\ No newline at end of file
diff --git a/setup.py b/setup.py
new file mode 100755
index 00000000..587b52c0
--- /dev/null
+++ b/setup.py
@@ -0,0 +1,43 @@
+#!/usr/bin/env python
+# Copyright (C) 2009, 2010  Roman Zimbelmann <romanz@lavabit.com>
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+import distutils.core
+import ranger
+
+if __name__ == '__main__':
+	distutils.core.setup(
+		name='ranger',
+		description='Vim-like file manager',
+		version=ranger.__version__,
+		author=ranger.__author__,
+		author_email=ranger.__email__,
+		license=ranger.__license__,
+		url='http://savannah.nongnu.org/projects/ranger',
+		scripts=['scripts/ranger'],
+		data_files=[('share/man/man1', ['doc/ranger.1'])],
+		package_data={'ranger': ['data/*']},
+		packages=('ranger',
+		          'ranger.api',
+		          'ranger.colorschemes',
+		          'ranger.container',
+		          'ranger.core',
+		          'ranger.defaults',
+		          'ranger.ext',
+		          'ranger.fsobject',
+		          'ranger.gui',
+		          'ranger.gui.widgets',
+		          'ranger.help',
+		          'ranger.shared'))
diff --git a/test/all_benchmarks.py b/test/all_benchmarks.py
new file mode 100755
index 00000000..a3612701
--- /dev/null
+++ b/test/all_benchmarks.py
@@ -0,0 +1,56 @@
+#!/usr/bin/env python
+# Copyright (C) 2009, 2010  Roman Zimbelmann <romanz@lavabit.com>
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+"""
+Run all the benchmarks inside this directory.
+Usage: ./all_benchmarks.py [count] [regexp-filters...]
+"""
+
+import os.path
+import sys
+rangerpath = os.path.join(os.path.dirname(__file__), '..')
+if sys.path[1] != rangerpath:
+	sys.path[1:1] = [rangerpath]
+
+import re
+import time
+
+if __name__ == '__main__':
+	count   = int(sys.argv[1]) if len(sys.argv) > 1 else 10
+	regexes = [re.compile(fltr) for fltr in sys.argv[2:]]
+	modules = (fname[:-3] for fname in os.listdir(sys.path[0]) \
+			if fname[:3] == 'bm_' and fname[-3:] == '.py')
+
+	def run_benchmark(cls, methodname):
+		full_method_name = "{0}.{1}".format(cls.__name__, methodname)
+		if all(re.search(full_method_name) for re in regexes):
+			method = getattr(cls(), methodname)
+			t1 = time.time()
+			try:
+				method(count)
+			except:
+				print("{0} failed!".format(full_method_name))
+				raise
+			else:
+				t2 = time.time()
+				print("{0:60}: {1:10}s".format(full_method_name, t2 - t1))
+
+	for val in [__import__(module) for module in modules]:
+		for cls in vars(val).values():
+			if type(cls) == type:
+				for methodname in vars(cls):
+					if methodname.startswith('bm_'):
+						run_benchmark(cls, methodname)
diff --git a/all_tests.py b/test/all_tests.py
index 90926918..0c184df5 100755
--- a/all_tests.py
+++ b/test/all_tests.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/env python
 # Copyright (C) 2009, 2010  Roman Zimbelmann <romanz@lavabit.com>
 #
 # This program is free software: you can redistribute it and/or modify
@@ -14,23 +14,24 @@
 # You should have received a copy of the GNU General Public License
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
-"""Run all the tests inside the test/ directory as a test suite."""
-if __name__ == '__main__':
-	import unittest
-	from test import *
-	from sys import exit, argv
+"""
+Run all the tests inside this directory as a test suite.
+Usage: ./all_tests.py [verbosity]
+"""
 
-	try:
-		verbosity = int(argv[1])
-	except IndexError:
-		verbosity = 2
+import os.path
+import sys
+rangerpath = os.path.join(os.path.dirname(__file__), '..')
+if sys.path[1] != rangerpath:
+	sys.path[1:1] = [rangerpath]
 
-	tests = []
-	for key, val in vars().copy().items():
-		if key.startswith('tc_'):
-			tests.extend(v for k,v in vars(val).items() if type(v) == type)
+import unittest
 
-	suite = unittest.TestSuite(map(unittest.makeSuite, tests))
-	result = unittest.TextTestRunner(verbosity=verbosity).run(suite)
-	if len(result.errors) + len(result.failures) > 0:
-		exit(1)
+if __name__ == '__main__':
+	verbosity = int(sys.argv[1]) if len(sys.argv) > 1 else 1
+	tests     = (fname[:-3] for fname in os.listdir(sys.path[0]) \
+	             if fname[:3] == 'tc_' and fname[-3:] == '.py')
+	suite     = unittest.TestLoader().loadTestsFromNames(tests)
+	result    = unittest.TextTestRunner(verbosity=verbosity).run(suite)
+	if len(result.errors + result.failures) > 0:
+		sys.exit(1)
diff --git a/test/bm_human_readable.py b/test/bm_human_readable.py
new file mode 100644
index 00000000..ef400774
--- /dev/null
+++ b/test/bm_human_readable.py
@@ -0,0 +1,51 @@
+# Copyright (C) 2009, 2010  Roman Zimbelmann <romanz@lavabit.com>
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+import os.path
+import sys
+rangerpath = os.path.join(os.path.dirname(__file__), '..')
+if sys.path[1] != rangerpath:
+	sys.path[1:1] = [rangerpath]
+
+from ranger.ext.human_readable import *
+
+# The version before 2010/06/24:
+import math
+UNITS = 'BKMGTP'
+MAX_EXPONENT = len(UNITS) - 1
+def human_readable_old(byte, seperator=' '):
+	if not byte:
+		return '0'
+
+	exponent = int(math.log(byte, 2) / 10)
+	flt = round(float(byte) / (1 << (10 * exponent)), 2)
+
+	if exponent > MAX_EXPONENT:
+		return '>9000' # off scale
+
+	if int(flt) == flt:
+		return '%.0f%s%s' % (flt, seperator, UNITS[exponent])
+
+	else:
+		return '%.2f%s%s' % (flt, seperator, UNITS[exponent])
+
+class benchmark_human_readable(object):
+	def bm_current(self, n):
+		for i in range(n):
+			human_readable((128 * i) % 2**50)
+
+	def bm_old(self, n):
+		for i in range(n):
+			human_readable_old((128 * i) % 2**50)
diff --git a/test/bm_loader.py b/test/bm_loader.py
index 745e6f3b..552954a7 100644
--- a/test/bm_loader.py
+++ b/test/bm_loader.py
@@ -13,12 +13,18 @@
 # You should have received a copy of the GNU General Public License
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
+import os.path
+import sys
+rangerpath = os.path.join(os.path.dirname(__file__), '..')
+if sys.path[1] != rangerpath:
+	sys.path[1:1] = [rangerpath]
+
 from ranger.core.loader import Loader
 from ranger.fsobject import Directory, File
 from ranger.ext.openstruct import OpenStruct
 import os.path
 from ranger.shared import FileManagerAware, SettingsAware
-from test import Fake
+from testlib import Fake
 from os.path import realpath, join, dirname
 from subprocess import Popen, PIPE
 TESTDIR = realpath(join(dirname(__file__), '/usr/include'))
diff --git a/test/tc_bookmarks.py b/test/tc_bookmarks.py
index f45ba061..59435f06 100644
--- a/test/tc_bookmarks.py
+++ b/test/tc_bookmarks.py
@@ -13,7 +13,11 @@
 # You should have received a copy of the GNU General Public License
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
-if __name__ == '__main__': from __init__ import init; init()
+import os.path
+import sys
+rangerpath = os.path.join(os.path.dirname(__file__), '..')
+if sys.path[1] != rangerpath:
+	sys.path[1:1] = [rangerpath]
 
 from os.path import realpath, join, dirname
 import unittest
diff --git a/test/tc_colorscheme.py b/test/tc_colorscheme.py
index dbaac1f9..eefb1e4f 100644
--- a/test/tc_colorscheme.py
+++ b/test/tc_colorscheme.py
@@ -13,7 +13,11 @@
 # You should have received a copy of the GNU General Public License
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
-if __name__ == '__main__': from __init__ import init; init()
+import os.path
+import sys
+rangerpath = os.path.join(os.path.dirname(__file__), '..')
+if sys.path[1] != rangerpath:
+	sys.path[1:1] = [rangerpath]
 
 from unittest import TestCase, main
 import random
diff --git a/test/tc_direction.py b/test/tc_direction.py
index f45b4b36..16c26dab 100644
--- a/test/tc_direction.py
+++ b/test/tc_direction.py
@@ -13,7 +13,11 @@
 # You should have received a copy of the GNU General Public License
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
-if __name__ == '__main__': from __init__ import init; init()
+import os.path
+import sys
+rangerpath = os.path.join(os.path.dirname(__file__), '..')
+if sys.path[1] != rangerpath:
+	sys.path[1:1] = [rangerpath]
 
 import unittest
 from ranger.ext.direction import Direction
diff --git a/test/tc_directory.py b/test/tc_directory.py
index 024ebc9d..754253b3 100644
--- a/test/tc_directory.py
+++ b/test/tc_directory.py
@@ -13,9 +13,12 @@
 # You should have received a copy of the GNU General Public License
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
-if __name__ == '__main__': from __init__ import init; init()
-
+import os.path
 import sys
+rangerpath = os.path.join(os.path.dirname(__file__), '..')
+if sys.path[1] != rangerpath:
+	sys.path[1:1] = [rangerpath]
+
 from os.path import realpath, join, dirname
 
 from ranger import fsobject
diff --git a/test/tc_displayable.py b/test/tc_displayable.py
index 50f37845..72e0507d 100644
--- a/test/tc_displayable.py
+++ b/test/tc_displayable.py
@@ -13,14 +13,18 @@
 # You should have received a copy of the GNU General Public License
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
-if __name__ == '__main__': from __init__ import init; init()
+import os.path
+import sys
+rangerpath = os.path.join(os.path.dirname(__file__), '..')
+if sys.path[1] != rangerpath:
+	sys.path[1:1] = [rangerpath]
 
 import unittest
 import curses
 from random import randint
 
 from ranger.gui.displayable import Displayable, DisplayableContainer
-from test import Fake, OK, raise_ok, TODO
+from testlib import Fake, OK, raise_ok, TODO
 
 class TestWithFakeCurses(unittest.TestCase):
 	def setUp(self):
diff --git a/test/tc_ext.py b/test/tc_ext.py
index b8094233..495591a1 100644
--- a/test/tc_ext.py
+++ b/test/tc_ext.py
@@ -13,7 +13,12 @@
 # You should have received a copy of the GNU General Public License
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
-if __name__ == '__main__': from __init__ import init; init()
+import os.path
+import sys
+rangerpath = os.path.join(os.path.dirname(__file__), '..')
+if sys.path[1] != rangerpath:
+	sys.path[1:1] = [rangerpath]
+
 import unittest
 from collections import deque
 
diff --git a/test/tc_history.py b/test/tc_history.py
index d027231a..02a8bb9f 100644
--- a/test/tc_history.py
+++ b/test/tc_history.py
@@ -13,7 +13,11 @@
 # You should have received a copy of the GNU General Public License
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
-if __name__ == '__main__': from __init__ import init; init()
+import os.path
+import sys
+rangerpath = os.path.join(os.path.dirname(__file__), '..')
+if sys.path[1] != rangerpath:
+	sys.path[1:1] = [rangerpath]
 
 from ranger.container import History
 from unittest import TestCase, main
@@ -29,13 +33,13 @@ class Test(TestCase):
 		hist.back()
 
 		self.assertEqual(4, hist.current())
-		self.assertEqual([3,4], list(hist))
+		self.assertEqual([3,4], list(hist._left()))
 
 		self.assertEqual(5, hist.top())
 
 		hist.back()
 		self.assertEqual(3, hist.current())
-		self.assertEqual([3], list(hist))
+		self.assertEqual([3], list(hist._left()))
 
 		# no change if current == bottom
 		self.assertEqual(hist.current(), hist.bottom())
@@ -48,12 +52,31 @@ class Test(TestCase):
 		hist.forward()
 		hist.forward()
 		self.assertEqual(5, hist.current())
-		self.assertEqual([3,4,5], list(hist))
+		self.assertEqual([3,4,5], list(hist._left()))
 
 
 		self.assertEqual(3, hist.bottom())
 		hist.add(6)
 		self.assertEqual(4, hist.bottom())
-		self.assertEqual([4,5,6], list(hist))
+		self.assertEqual([4,5,6], list(hist._left()))
+
+		hist.back()
+		hist.fast_forward()
+		self.assertEqual([4,5,6], list(hist._left()))
+		hist.back()
+		hist.back()
+		hist.fast_forward()
+		self.assertEqual([4,5,6], list(hist._left()))
+		hist.back()
+		hist.back()
+		hist.back()
+		hist.fast_forward()
+		self.assertEqual([4,5,6], list(hist._left()))
+		hist.back()
+		hist.back()
+		hist.back()
+		hist.back()
+		hist.fast_forward()
+		self.assertEqual([4,5,6], list(hist._left()))
 
 if __name__ == '__main__': main()
diff --git a/test/tc_human_readable.py b/test/tc_human_readable.py
new file mode 100644
index 00000000..493e6d3a
--- /dev/null
+++ b/test/tc_human_readable.py
@@ -0,0 +1,51 @@
+# Copyright (C) 2009, 2010  Roman Zimbelmann <romanz@lavabit.com>
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+import os.path
+import sys
+rangerpath = os.path.join(os.path.dirname(__file__), '..')
+if sys.path[1] != rangerpath:
+	sys.path[1:1] = [rangerpath]
+
+import unittest
+from ranger.ext.human_readable import human_readable as hr
+
+class HumanReadableTest(unittest.TestCase):
+	def test_basic(self):
+		self.assertEqual("0", hr(0))
+		self.assertEqual("1 B", hr(1))
+		self.assertEqual("1 K", hr(2 ** 10))
+		self.assertEqual("1 M", hr(2 ** 20))
+		self.assertEqual("1 G", hr(2 ** 30))
+		self.assertEqual(">9000", hr(2 ** 100))
+
+	def test_big(self):
+		self.assertEqual("1023 G", hr(2 ** 30 * 1023))
+		self.assertEqual("1024 G", hr(2 ** 40 - 1))
+		self.assertEqual("1 T",    hr(2 ** 40))
+
+	def test_small(self):
+		self.assertEqual("1000 B", hr(1000))
+		self.assertEqual("1.66 M", hr(1.66 * 2 ** 20))
+		self.assertEqual("1.46 K", hr(1500))
+		self.assertEqual("1.5 K",  hr(2 ** 10 + 2 ** 9))
+		self.assertEqual("1.5 K",  hr(2 ** 10 + 2 ** 9 - 1))
+
+	def test_no_exponent(self):
+		for i in range(2 ** 10, 2 ** 20, 512):
+			self.assertTrue('e' not in hr(i), "%d => %s" % (i, hr(i)))
+
+if __name__ == '__main__':
+	unittest.main()
diff --git a/test/tc_keyapi.py b/test/tc_keyapi.py
index 2f522173..79d89fa5 100644
--- a/test/tc_keyapi.py
+++ b/test/tc_keyapi.py
@@ -13,7 +13,11 @@
 # You should have received a copy of the GNU General Public License
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
-if __name__ == '__main__': from __init__ import init; init()
+import os.path
+import sys
+rangerpath = os.path.join(os.path.dirname(__file__), '..')
+if sys.path[1] != rangerpath:
+	sys.path[1:1] = [rangerpath]
 
 from unittest import TestCase, main
 
diff --git a/test/tc_loader.py b/test/tc_loader.py
index 53ac5617..5a2e5a68 100644
--- a/test/tc_loader.py
+++ b/test/tc_loader.py
@@ -13,13 +13,17 @@
 # You should have received a copy of the GNU General Public License
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
-if __name__ == '__main__': from __init__ import init; init()
+import os.path
+import sys
+rangerpath = os.path.join(os.path.dirname(__file__), '..')
+if sys.path[1] != rangerpath:
+	sys.path[1:1] = [rangerpath]
 
 import unittest
 import os
 from os.path import realpath, join, dirname
 
-from test import Fake
+from testlib import Fake
 from ranger.shared import FileManagerAware, SettingsAware
 from ranger.core.loader import Loader
 from ranger.fsobject import Directory, File
diff --git a/test/tc_newkeys.py b/test/tc_newkeys.py
index c7a33025..c9597201 100644
--- a/test/tc_newkeys.py
+++ b/test/tc_newkeys.py
@@ -12,19 +12,22 @@
 # GNU General Public License for more details.
 #
 # You should have received a copy of the GNU General Public License
-# along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
-if __name__ == '__main__': from __init__ import init; init()
+import os.path
+import sys
+rangerpath = os.path.join(os.path.dirname(__file__), '..')
+if sys.path[1] != rangerpath:
+	sys.path[1:1] = [rangerpath]
+sys.path[1:1] = ['..']
+
 from unittest import TestCase, main
 
-from test import TODO
+from testlib import TODO
 from ranger.ext.tree import Tree
 from ranger.container.keymap import *
 from ranger.container.keybuffer import KeyBuffer
 from ranger.ext.keybinding_parser import parse_keybinding
 
-import sys
-
 def simulate_press(self, string):
 	for char in parse_keybinding(string):
 		self.add(char)
diff --git a/test/tc_relative_symlink.py b/test/tc_relative_symlink.py
new file mode 100644
index 00000000..a202513d
--- /dev/null
+++ b/test/tc_relative_symlink.py
@@ -0,0 +1,47 @@
+# Copyright (C) 2009, 2010  Roman Zimbelmann <romanz@lavabit.com>
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+import os.path
+import sys
+rangerpath = os.path.join(os.path.dirname(__file__), '..')
+if sys.path[1] != rangerpath:
+	sys.path[1:1] = [rangerpath]
+
+import unittest
+from ranger.ext.relative_symlink import *
+rel = get_relative_source_file
+
+class Test(unittest.TestCase):
+	def test_foo(self):
+		self.assertEqual('../foo', rel('/foo', '/x/bar'))
+		self.assertEqual('../../foo', rel('/foo', '/x/y/bar'))
+		self.assertEqual('../../a/b/foo', rel('/a/b/foo', '/x/y/bar'))
+		self.assertEqual('../../x/b/foo', rel('/x/b/foo', '/x/y/bar',
+			common_base='/'))
+		self.assertEqual('../b/foo', rel('/x/b/foo', '/x/y/bar'))
+		self.assertEqual('../b/foo', rel('/x/b/foo', '/x/y/bar'))
+
+	def test_get_common_base(self):
+		self.assertEqual('/', get_common_base('', ''))
+		self.assertEqual('/', get_common_base('', '/'))
+		self.assertEqual('/', get_common_base('/', ''))
+		self.assertEqual('/', get_common_base('/', '/'))
+		self.assertEqual('/', get_common_base('/bla/bar/x', '/foo/bar/a'))
+		self.assertEqual('/foo/bar/', get_common_base('/foo/bar/x', '/foo/bar/a'))
+		self.assertEqual('/foo/', get_common_base('/foo/bar/x', '/foo/baz/a'))
+		self.assertEqual('/foo/', get_common_base('/foo/bar/x', '/foo/baz/a'))
+		self.assertEqual('/', get_common_base('//foo/bar/x', '/foo/baz/a'))
+
+if __name__ == '__main__': unittest.main()
diff --git a/test/tc_signal.py b/test/tc_signal.py
index 35b4eebe..3b1bac40 100644
--- a/test/tc_signal.py
+++ b/test/tc_signal.py
@@ -13,7 +13,12 @@
 # You should have received a copy of the GNU General Public License
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
-if __name__ == '__main__': from __init__ import init; init()
+import os.path
+import sys
+rangerpath = os.path.join(os.path.dirname(__file__), '..')
+if sys.path[1] != rangerpath:
+	sys.path[1:1] = [rangerpath]
+
 import unittest
 import gc
 from ranger.ext.signal_dispatcher import *
diff --git a/test/tc_ui.py b/test/tc_ui.py
index 3c659459..fa2bdcac 100644
--- a/test/tc_ui.py
+++ b/test/tc_ui.py
@@ -13,14 +13,18 @@
 # You should have received a copy of the GNU General Public License
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
-if __name__ == '__main__': from __init__ import init; init()
+import os.path
+import sys
+rangerpath = os.path.join(os.path.dirname(__file__), '..')
+if sys.path[1] != rangerpath:
+	sys.path[1:1] = [rangerpath]
 
 import unittest
 import curses
 
 from ranger.gui import ui
 
-from test import Fake, OK, raise_ok
+from testlib import Fake, OK, raise_ok
 
 ui.curses = Fake()
 
@@ -39,7 +43,7 @@ class Test(unittest.TestCase):
 
 	def tearDown(self):
 		self.ui.destroy()
-	
+
 	def test_passing(self):
 		# Test whether certain method calls are passed to widgets
 		widget = self.ui.widget
diff --git a/test/tc_utfwidth.py b/test/tc_utfwidth.py
new file mode 100644
index 00000000..0288c17b
--- /dev/null
+++ b/test/tc_utfwidth.py
@@ -0,0 +1,46 @@
+# -*- encoding: utf8 -*-
+# Copyright (C) 2009, 2010  Roman Zimbelmann <romanz@lavabit.com>
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+
+import os.path
+import sys
+rangerpath = os.path.join(os.path.dirname(__file__), '..')
+if sys.path[1] != rangerpath:
+	sys.path[1:1] = [rangerpath]
+sys.path[1:1] = ['..']
+
+from unittest import TestCase, main
+from ranger.ext.utfwidth import *
+
+a_ascii = "a"      # width = 1, bytes = 1
+a_umlaut = "ä"     # width = 1, bytes = 2
+a_katakana = "ア"  # width = 2, bytes = 3
+# need one with width = 1 & bytes = 3
+
+class Test(TestCase):
+	def test_utf_byte_length(self):
+		self.assertEqual(1, utf_byte_length(a_ascii))
+		self.assertEqual(2, utf_byte_length(a_umlaut))
+		self.assertEqual(3, utf_byte_length(a_katakana))
+
+	def test_uwid(self):
+		self.assertEqual(1, uwid(a_ascii))
+		self.assertEqual(1, uwid(a_umlaut))
+		self.assertEqual(2, uwid(a_katakana))
+		self.assertEqual(3, uwid(a_katakana + a_umlaut))
+		self.assertEqual(4, uwid("asdf"))
+		self.assertEqual(5, uwid("löööl"))
+		self.assertEqual(6, uwid("バババ"))
+
+if __name__ == '__main__': main()
diff --git a/test/__init__.py b/test/testlib.py
index d87d1fc2..29dd9e07 100644
--- a/test/__init__.py
+++ b/test/testlib.py
@@ -13,12 +13,6 @@
 # You should have received a copy of the GNU General Public License
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
-import os, sys
-
-__all__ = [ x[0:x.index('.')] \
-		for x in os.listdir(os.path.dirname(__file__)) \
-		if x.startswith('tc_') or x.startswith('bm_')]
-
 def TODO(fnc):
 	def result(*arg, **kw):
 		try:
@@ -27,9 +21,6 @@ def TODO(fnc):
 			pass # failure expected
 	return result
 
-def init():
-	sys.path.append(os.path.abspath(os.path.join(sys.path[0], '..')))
-
 class Fake(object):
 	def __getattr__(self, attrname):
 		val = Fake()