Vimprobable
Your Browser
..identifies as CCBot/1.0 (+http://www.commoncrawl.org/bot.html).
You are not using Vimprobable.
You should!
About
Vimprobable is a WWW browser that behaves like the Vimperator plugin available for Mozilla Firefox. It is based on the WebKit engine (using GTK bindings). It is a fork of the currently abandoned vimpression.
The goal of Vimprobable is to build a WWW browser which has exactly the minimum features I want. Not more, not less.
Patches / Bug Reports / Questions / Comments
All welcome - contact me!
Patches which didn't make it into the main branch for one reason or another.
Source
You can get the source code directly from Git (if you get an error cloning the repository, it might be an overzealous proxy acting up; Privoxy, for example, filters everything containing *ad* by default):
Vimprobable 1 (version 0.9.9.0):
git clone -b vimprobable1 http://www.yllr.net/vimprobable/vimprobable.git
Vimprobable 2 (version 0.8.0.0):
git clone -b vimprobable2 http://www.yllr.net/vimprobable/vimprobable.git
Differences between Vimprobable 1 and 2
Both versions are actively maintained. The first version can only be customised by editing config.h before compiling. It is pretty stable and very usable. Version 2 has grown fairly stable already as well, but it's still seeing bigger changes, of course. It aims at allowing more customisation, for example through :set and :map commands.
Features
- File downloading: manually via right-click or automatically if MIME type can't be displayed
- Bookmarks: adding the current page to the bookmarks directly from the browser and using the bookmarks for URL completion
- History: using recently visited URLs for completion
- Hinting: This was broken due to changes in the WebKit engine; new version also works when JavaScript is disabled
- Following hints in a new window
- Selecting / following hints by entering the link text
- Proxy: Vimprobable will use the proxy defined in the http_proxy environment variable
- Plugins: toggling plugins (including JavaScript) on and off at runtime
- Images: toggling images on and off at runtime
- Opening links in a new window (via right-click)
- Made keybindings work when NUMLOCK is enabled
- Allowing mouse click events to be bound to functions as well
- Supports the XEmbed protocol, so it can be used with tabbed
- Viewing HTML source
- Misc: numerous small fixes and additions
Vimprobable 2 Features
- :set command to change settings at runtime
- :map command to change keybindings
- Config file containing browser commands (set & map)
- Webinspector support
Known Issues / Goals
- Downloads not triggered by a right-click don't work reliably.
- Scrollbars are shown even if disabled in config.h.
- Focusing a textarea or input text box via hints will insert the last key into the field.
- INSERT mode only activates itself automatically when either JavaScript is enabled or hinting is used (is this enough?).
- Quickmarks support
Vimprobable 2 Goals
- :set to refer to all internal settings as well as Webkit settings
- Mapping keys to complete command lines?
Q & A
Why not just use Vimperator?
Mozilla Firefox (and also its variants like Iceweasel) gets worse with every version. It behaves like a molasse by now and it's riddled with Google spyware. This is unacceptable!
Where are my back, forward and reload buttons?
Vimprobable aims at being efficient to use with the keyboard (because that is where the user's hands are anyway). Please refer to the list of keybindings below or use the right-click menu.
No password saving, sessions,... what the fuck?
Remember: minimum features! These used to be the first things I always disabled when I was still using Iceweasel.
No tabs?
What use is a tabbed interface within an application when a window manager can do the same? There are many window managers out there which offer tabbing, any fullscreen WM will give you the same effect and tiled window managers will usually offer a fullscreen mode (thus achieving the same effect), too. If none of this is your cup of tea, you can use Vimprobable within tabbed.
How do I use Vimprobable within tabbed?
In config.h (or config.def.h if config.h doesn't exist yet), replace "surf" with "vimprobable" (or "vimprobable2"). Some people have reported problems with spawning the browser within tabbed (Ctrl+Return). That is an issue of tabbed, not Vimprobable. As a workaround, you can use this patch (change "vimprobable2" to "vimprobable" if you use version 1) which will automatically launch one Vimprobable instance when tabbed is started. After that, all keybindings of tabbed will work.
How will I know if a website is genuine without a phishing filter?
Use your brain.
How can anyone live without Adblock?
Just set up Privoxy or a similar proxy. Alternatively, adsuck will provide a solution on DNS basis.
Where are my bookmarks?
The bookmarks file is accessed for URL completion. After an :open or :tabopen command, type any part of the URL or any word of the site's title and hit the tab key.
Why does the page reload when I try entering something into a form?
Set the browser to PASS THROUGH mode (Ctrl+Z).
No Google search?
Google is right there on top of the list of the most evil IT companies of the whole world. If you can't live without Google search results, use Scroogle (default shortcut: s). If you then still want the 'real' Google, there's nothing to stop you from adding it to the search engines or even setting it as default (apart from concern for your soul's well-being).
No search for Google Maps, no shortcut to GMail?
Oh, please!
Bookmarks? History? Why all this bloat?
Remember: minimal features, but the ones I want! These features will not affect performance if disabled.
Why not use dmenu for bookmarks?
First of all, I don't think dmenu is really suited for such a task for a couple of reasons:
- It's horizontal by default and URLs tend to be long. That results in only very few URLs being shown at the same time.
- It can only open new browser windows in the vimpresson architecture, not change the URL of an existing one.
Second, I want URL completion for the Vimprobable internal commands. This can only be achieved by putting the bookmarks functionality within the browser itself.
Why doesn't a middle-click open a link in a new window?
Vimperator has two defaults for middle-click: If the cursor is above a link, opening it in a new window/tab and otherwise, pasting the URL from the clipboard. The latter is also Vimprobable's default, because it's much more in line with common X behaviour (middle-click = paste). A patch mimicking Vimperator's location sensitive behaviour would be welcome!
Until then, if you want to change Vimprobable's behaviour, simply change the appropriate mouse binding in config.h to:
{ 0, 0, MOUSE_BUTTON_2, open, {TargetNew, rememberedURI} },
Why yet another browser?
After a text editor, a WWW browser is my most used application. That is why I expect a lot of that type of program. In the end, none of the other browsers out there does what I want. Links to a few very respectable alternatives which might suit your taste better can be found on the bottom of this page.
What's the name supposed to tell me?
A wise (fictional) man once answered a throwaway "He's impossible!" with this: "I can't be impossible; I exist! I think what you meant to say is, 'He's improbable.'" This browser is may be very improbable, but it is certainly not impossible, either.
Keybindings
Browsing
opening websites
| key |
action |
status |
o O |
entry focus |
|
t T |
entry focus + new tab |
|
p P |
open url from clipboard (in a new tab) |
|
| gP |
pasting |
since the we open new windows we have no power over them and cannot set them into bg |
<C-x> <C-a> |
in/decrement number |
|
navigating
| key |
action |
status |
<C-o> H <C-i> L |
back / fwd |
|
| gh |
go home |
|
| gH |
gh new tab |
|
gu gU |
jump to nth subdir / rootdir |
|
hinting
| key |
action |
status |
| f |
follow link |
|
| F |
follow link in new window |
|
| gi |
focus next input field |
|
loading
| key |
action |
status |
r R |
(force) reload |
|
| <C-c> |
stop loading |
|
quitting
| key |
action |
status |
ZZ ZQ |
quit with(out) sessionsaving |
needless? |
| d |
close |
|
searching
| key |
action |
status |
| / |
search |
|
n N |
next/previous match |
|
Buffer Commands
motion commands
| key |
action |
status |
<Left> <Down> <Up> <Right> |
movement |
|
h j <C-e> k <C-y> l |
movement |
|
0 $ |
movement |
|
<Home> <End> |
movement |
|
gg G |
movement |
|
<C-d> <C-u> |
movement |
|
<C-b> <S-Space> <C-f> Space |
movement |
|
<PageUp> <PageDown> |
movement |
|
zooming
| key |
action |
status |
zi + zo - zz |
text zooming |
|
zm zr |
text zooming |
needless? |
zI zO zZ |
full zooming |
|
zM zR |
full zooming |
needless? |
copying
| key |
action |
status |
y Y |
copying |
|
toggling features (Vimprobable1 only)
| key |
action |
status |
| w |
toggle plugins |
|
| e |
toggle images |
|
Similar Projects
These browsers are all similar to Vimprobable in that they aim to be usable with the keyboard alone.
- surf: A browser by the suckless project whose goal it is to be even more minimal than Vimprobable.
- uzbl: Highly extensible browser which only offers core functionality (displaying pages) and has hooks for external scripts to extend it. Many example scripts (e.g. for bookmarks or form value saving) exist. It can even be used as a modal browser.
- Conkeror: Uses Emacs style keychains; based on Mozilla's XULrunner and the Gecko rendering engine.
Back to YLLR