W3M Quickstart

W3M is a console webbrowser from Japan. It comes with no upfront help or documentation and its default keybinds are outlandish, so I thought to write up a brief guide to get absolute beginners started.

When installed, the W3M browser can be launched from command line by

w3m $URL

where $URL is a web address or the location of a local HTML file. 

The cursor moves one character at a time with arrow keys, like in an editing environment. W3M is indeed a wonderful tool for web designers. For regular webviewers though, to navigate through the pages quicker, Tab is the key that jumps from a link to next and Ctrl+u does the same backwards. Spacebar scrolls downwards a screen-width and PageUp upwards.

At first it does not function as a proper webbrowser to visit most homey forums and social networks, because cookies are turned off by default. Options are available under the o key, but be ready for a steep learning curve.

Esc does not work as an escape key from fields and situations where the user inadvertently ends up. Ctrl+c does it, mostly. And Shift+b turns back a page (called “buffer” on the options page).

To enter a new web address, press Shift+u. To open all links on the page (a function that I always wanted for Elinks, but is available there only by means of a nasty workaround) press Shift+l.

/ searches forward on the current page. ? searches backward. Shift+q quits without confirmation.

Ins opens up a menu with some of the common commands that the user may need. If you need nothing there, close it with Ctrl+c.

Shift+h opens up a help page with all the rest of the default keybinds. To study and configure the keybinds, download the W3M default keybinds file to .w3m/keymap. Alternatively. you can save a vi-like set of keybinds for W3M to the same location.  

Lua for Elinks

Lua is a scripting language that can be used to extend the functionality of Elinks console browser. Lua can mangle webpages to render them more suitable to Elinks. Lua can also tweak Elinks’ settings in some contexts and launch external programs.

These days, Elinks console browser is commonly pre-compiled for Linux distros with lua support, so the only thing for the user to do is to begin writing extension scripts in lua. But some, such as myself, may be very weak in scripting, and need tutorials and samples.

The best sample is the official hooks.lua file for Elinks. Grab this file, save it to the .elinks directory and enjoy a different console browsing experience on Reddit, Linux Today and Dictionary.com, along with other websites mentioned in the file.

Study the file to devise hacks for the sites that you actually visit with Elinks. I would show what I came up with, but amazingly this blogging environment makes it too difficult to share pure code. <pre> and <code> tags get mangled.

The hooks.lua file testifies that it’s possible to expand Elinks’ keybinds, modify settings and call external programs by means of lua. It even makes YT work in Elinks via youtube-dl! These are all interesting areas to explore.