Raging Penguin

The random ramblings of a Linux geek

mobile menu button

Mouseless browsing roundup

2013-02-13 by TuxRag3r, tagged as apps

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.

Extensions

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

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.

Vimperator's hinting system in action
Vimperator’s hinting system in action

Vimperator makes Twitter mouseless
Vimperator makes Twitter mouseless

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`.

Fully self documenting, just like Vim
Fully self documenting, just like Vim

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

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 ?.

The hinting system is as good as Vimperator
The hinting system is as good as Vimperator

VimFX works on Twitter and many other sites
VimFX works on Twitter and many other sites

VimFX help screen
VimFX help screen

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.

Vimium

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.

Vimium brings mouseless browsing to Chrome
Vimium brings mouseless browsing to Chrome

Vimium on Twitter
Vimium on Twitter

The help screen in Vimium
The help screen in Vimium

Stand-alone browsers

There are a number of browsers designed to be controlled with the keyboard. The most well-known of these are Links, w3m, and Lynx. The only problem is that all of these apps (with some exceptions1) are text-only, which means no Flash, JavaScript, images, or any of the other fancy stuff that we have grown accustomed to over the years. However, there are three browsers that can support most of these features and provide full keyboard control.

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.

xxxterm with minimal top bar
xxxterm with minimal top bar

xxxterm with the fancy bar
xxxterm with the “fancy bar”

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.

dwb

dwb is a lightweight browser based on WebKit and GTK with Vim-like keybindings. Like most modern browsers, it supports bookmarks, plugins, proxies, extensions, and even HTML5 features. It also has advanced features, like the ability to block cookies, JavaScript, and Flash with whitelists, and it also supports ad blocking with AdBlock Plus compatible filter lists. It is also more user-friendly than Xombrero, as it provides a local web interface to manage bookmarks, quickmarks, settings, and keybindings directly from the browser. That means you rarely have to edit a config file by hand.

dwb on Wikipedia
dwb on Wikipedia

dwb settings screen
dwb settings screen

dwb keys screen
dwb keys screen

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.

Conkeror

Not to be confused with the Konqueror browser/file manager for KDE, Conkeror is a keyboard-driven and highly customizable browser based on Mozilla XULRunner. If you’re an Emacs fan, this could quickly become your favorite browser, as all of the default keybindings are Emacs-based and it uses “buffers” rather than “tabs”. If you know JavaScript, then you should definitely check out the rc file, which I had a lot of fun playing with. For the actual installation, I couldn’t find a Conkeror or XULRunner package for Linux Mint, so I went the manual route. I found it to be a simple process and it didn’t require copying anything to a system directory. Upon first successful launch, Conkeror greeted me with the user manual and not much else. No toolbars, no buttons, not even a right-click menu, just a status bar and a command bar.

Conkeror's manual page
Conkeror’s manual page

Use numbers for links...
Use numbers for links…

or just start typing!
or just start typing!

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.

1 I know that both Links and w3m are capable of running in a pseudo-graphical mode that allows them to display images, but plugins and JavaScript are still not supported.

Lasted edited to add the section on Conkeror.

comments powered by Disqus

Built with Vim, The GIMP, and BlazeBlogger.

Valid HTML5