Mouseless browsing roundup
Purge your web experience of the rodent! Here’s a look at several keyboard-driven browsing options, and none of them run in a terminal. I already wrote about Uzbl, but that’s just scratching the surface. There are several browser extensions and even stand-alone browsers that can help you go mouseless on the web. These should come in handy for anyone who loves the keyboard, hates the mouse, or doesn’t have a touchscreen.
Let’s start things off with some Vim-like extensions for Mozilla Firefox and Google Chrome (or Chromium). Most modern browsers already have plenty of keyboard shortcuts available, usually focusing on the Ctrl, Alt, and Shift keys, or perhaps even the function keys (F1-F12). So technically, you can already do a lot with the keyboard, but there’s one void that remains unfilled: hinting! Yes, hinting is a very important feature for full keyboard control, but most browsers don’t come with a hinting system, so you need to install an extension if you want one.
Basically, you activate the hinting system and markers appear near (or over) all the links on a page. The markers are usually short 2 or 3 character strings, and when you type them out, the matching link gets “clicked”. It sounds complicated, but if you’re a good typist, it will come naturally. Of course, why stop at links? Text boxes, buttons, check boxes, and site menus all need to be dealt with somehow, which is why hinting systems these days are rarely limited to just links. In addition to hinting, some extensions attempt to make it faster (easier?) to access common features like bookmarks, downloads, security settings, and other things you would normally use menus and the mouse to get to.
Why Vim? Where’s Emacs?!
I tried to find some extensions that emulated Emacs keybindings, but nothing I found worked. Emulating Emacs keybindings is especially difficult because Emacs makes extensive use of Ctrl, Alt, and Shift keys. That means most Emacs keybindings are nearly impossible to implement without conflicting with the default keybindings of a given browser, and many browsers don’t allow their keybindings to be overridden by an extension. Standalone browsers (discussed further down) do not have this problem.
Vimperator is designed to do one thing: make Firefox behave like Vim. That means moving around with the H, J, K, and L keys, jumping to the top, bottom, or middle of a page with gg, G, and number-G, searching the contents of a page with / and ?, and typing commands with :. You can even manage tabs, windows, bookmarks, and access practically every dialog box in Firefox. The best feature is the mature and well implemented hinting system, as seen in the screenshots below.
The screenshots above also show that Vimperator is customizable. See the orange letters and black statusbar text? You can make the hint keys anything you want and change practically every color and style used by Vimperator. Another interesting feature is the “Ignore” or “Pass Through” mode, which can be activated manually on the fly or automatically for specific sites. This special mode allows keystrokes to go directly to Firefox or web pages instead of being processed as commands. That means certain sites that have their own shortcuts (GMail, Twitter, etc.) will still work. If you ever get stuck on something, Vimperator offers a full help system with the `help` command. Full documentation can be accessed through `helpall`.
Of course, I can’t write about Vimperator without mentioning Pentadactyl. Pentadactyl is a fork of Vimperator that emerged because of a disagreement between the lead developers. The exact details of this disagreement are different depending on who you talk to, so I will leave everyone to their own conclusions. Personally, I would compare Pentadactyl to Emacs, in that it has more features than any one user could ever actually use. In my testing, I found it to be slower than Vimperator, and there doesn’t seem to be a stable version available for Firefox 14 or higher.
VimFX is another Vim-inspired extension for Firefox, but it’s more pared down than Vimperator. VimFX was designed to handle links, tabs, and basic navigation while preserving the default keybindings for Firefox. That means you will need the mouse for some things, but avid typists will still experience a productivity boost. Like Vimperator, this extension also has a help screen, which you can bring up at any time with ?.
For configuration, VimFX has a blacklist and allows the user to specify the letters, numbers, and symbols for hinting. A bit of testing revealed that the hinting system performs about the same as Vimperator, so if you just want to click on links without all the bells and whistles, then VimFX may be exactly what you’re looking for.
If you like VimFX for Firefox, you’re going to love Vimium for Google Chrome and Chromium. It’s basically the same functionality, but it offers more configuration options. In addition to a blacklist and support for custom hint characters, you can also edit the CSS rules used for hinting and set up custom keybindings.
Xombrero (formerly xxxterm)
Xombrero is a minimalist keyboard-driven browser with a focus on security. Based on WebKit, the browser allows the user to toggle or disable scripts, cookies, and plugins either on the fly or with a whitelist. Unlike Firefox, Chrome, and other modern web browsers, Xombrero does not have an add-on system, a password manager, or a cloud sync service. It adheres to the Unix philosophy of doing only one thing and doing it well, without going completely overboard and requiring separate programs for plugins, scripts, cookies, history, and bookmarks, which all arguably have nothing to do with “browsing”. Blocking ads however is something that the developers intentionally left out, as they believe such a task should be handled by a separate program.
Like all of the browser extensions above, Xombrero is mostly controlled by Vim-like keybindings, but some keybindings are a little odd. For example, if you want to go to another site or open a new tab, you have to use F9-F12. Another feature worth noting is the “fancy bar”, which gives Xombrero a navigation toolbar similar to that of Firefox. Xombrero is configured by editing a file called .xombrero.conf (.xxxterm.conf for xxxterm) and there are a lot of options.
At the time of this writing, I am running Linux Mint 14 x86\64 and Xombrero is not included in any of the default software repositories. For this post, I had to settle for version 1.11.3 of xxxterm. According to the Wikipedia page, the current stable version is 1.4, so some of the issues I ran into may have been resolved. One glitch that I ran into was YouTube videos showing through other windows, and the colors were inverted. I tried to reproduce this interesting glitch with Firefox and Chromium, but failed. Stranger still, when I tried to take a screenshot of the phenomenon using scrot and GIMP, the videos disappeared. Other video sites like Vimeo worked fine. I also had a problem selecting search boxes with the hinting system on Wikipedia and several other MediaWiki-based sites.
One issue that I ran into was that dwb would randomly refuse to interpret commands from both keybindings and the command line at the bottom. On my system, the only version available was 2012.06.29, so I installed the dependencies and built the latest version from source (rev. 1763) hoping that the problem would go away. Well, the problem wasn’t fixed, I just ran into it less often. I also ran into some new problems with YouTube videos.
Like xxxterm, the videos showed through other windows, but the colors weren’t inverted. Instead, the video controls were entirely non-responsive, and the videos themselves were shifted up and left by several pixels, partially outside the boxes that were supposed to contain them. It could just be my system, but dwb doesn’t seem very stable at this point. Definitely an app to watch though. As a final note, only the rev. 1763 version came with the dwbem executable, which is used to manage extensions.
After reading through the manual and the official wiki, I was somewhat relieved to learn that Conkeror supported opening links in new windows instead of tab-less buffers. I just can’t stand major on-screen objects (like entire web pages) being completely hidden. Another feature (or bug) that made things easier was that I didn’t have to release the Ctrl key when entering commands. After some practice, I was confident that I could make it through an entire day without Firefox, but I soon hit my first snag: pasting text. The manual describes several different ways to copy text and links, but I couldn’t find anything about pasting. In my case, I had to select the box I wanted to paste in, hold down the Alt key, and then middle-click with the mouse to paste.
Another problem I ran into was bookmark management. Conkeror has the ability to add bookmarks, but not edit or delete them. I could understand this if the bookmarks were stored as plain text, but they weren’t. Like Firefox, Conkeror stores bookmarks in an SQLite database file, so a program like sqlitebrowser is required for full bookmark management. I also ran into a few annoyances on sites like Twitter, where certain buttons (such as the Tweet button) need to be clicked with the mouse. This is because Conkeror does not appear to filter user input, or at least not in a way that prevents conflicts with sites like Twitter and GMail, which have their own shortcuts. Quirks aside, Conkeror is fun to hack, and it works just as good as Firefox for most sites.
Lasted edited to add the section on Conkeror.