K.Mandla's blog of Linux experiences

Howto: Use elinks like a pro

Edit, Dec. 6, 2009: I’ve reuploaded a fresh set of images for this post, after the former provider suddenly decided to dump postcard-sized ads on the page. As it is however, this post is well over two years old. Some of the text may no longer correspond to the image; please let me know if it’s confusing and I’ll re-edit it. Cheers, and enjoy. :)

Text-only browsers are something of an oxymoron, especially nowadays. The Web is inherently graphical, even if the content is still primarily words and text. That trend is snowballing, especially with the noise that surrounds “Web 2.0” — every page has to be a double dose of Flash and AJAX, sprinkled with a liberal splash of pointless animated gifs and embedded music tracks, pop-up link previews, single-click RSS feeds and a comment form to boot.

Which is all fine and dandy. Personally, I think it’s lipstick on a pig, but that’s because I’m wise enough to recognize a lack of content for what it is — a lack of content. Flash and dash aside, you’re either offering quality information, or you’re riding the coattails of someone who is. But that’s beside the point.

One downside of the push to heavy Web pages and high browser workload is that older machines get lost in the fracas. You need a faster and stronger machine to handle all the rendering, transfer and configuration — and one of the reasons people always think they need a newer, faster computer is that the old one just can’t handle it any more. Heck, you need a faster computer just to buy a faster computer.

It’s all true. I admit it: A 400Mhz Pentium III can’t draw up Web pages in Firefox with the same snap as a Turion 64 X2. The muscle just isn’t there. But rather than blame the machine, let’s blame the workload: After all, the hardware hasn’t changed, the job has. The computer isn’t running slower, it’s just that there’s so much more to be done now.

Now daydream with me: What if you could cut through all the gimmickry, all the Flash animations, all the embedded gadgetry and doodads that don’t add anything to the content — the real content — of a Web page? What if, as an example, you could check your Gmail account without waiting for all the Java to load, redraw, align, composite and snap to?

Ah, my friends: Feast your eyes.

That’s my Gmail account in basic HTML mode, running in elinks. Time to render the page? I don’t know. It’s too fast for me to track it. When you carve out all the crap, you get lightning-fast page loading, near-instantaneous transfers and amazing responsiveness — from decade-old hardware, too. And best of all, you cut straight to the important stuff: your e-mail. This is what you’re after. Don’t get me wrong, Gmail is cool. I love it. But I’m after the message, not the mess. And a text-only browser is simply faster than a graphical one, even in HTML mode — and it does me the favor of leaving all the cruft behind.

“Oh sure,” you say. “That’s all fine and dandy, but be realistic: How much can you get done with a text-only browser?” Well, here’s the BBC online, in elinks.

Downloading the NanowaRalbum from Jamendo (which you must listen to, if you have any appreciation for metal — and any sense of humor — at all).

Convinced yet? Maybe this will do it for you: Here’s the system profile, as per htop.

That’s with six sites open at a time, after browsing for almost 20 minutes and accessing probably three dozen more pages. Memory and CPU usage are almost trivial on a 550Mhz machine with 192Mb. And at the same time, Swiftfox? What’s it using? About a hundred times as much.

elinks isn’t the only text-mode browser available to you. A default Ubuntu installation gives you w3m, you have lynx and links2 and a few others at your disposal. And if you can’t wean yourself off graphics, you have the option of using something like links2 with the framebuffer option, and that allows you integrated images on the worst of hardware.

elinks is definitely my favorite, though. elinks looks and feels like a traditional browser. It features tabbed browsing. Integrated mouse support (which is to say, without needing gpm). Cookies and cached pages. A menu bar and an extensive list of internal options. It can handle drop-down menus and form input. It has integrated bookmarks and support for external image viewers like feh and fbi (which I should mention can also display PDFs since it comes bundled with fbgs:shock: Don’t believe me? Try it. Open a PDF in the framebuffer on a 90Mhz Pentium machine, then write to me to apologize for ever doubting me :D ). Borders and boxes are usually faithful to the original document, and the colors are close to what the real pages show, in most cases.

It’s really about as close as you can get to a real, graphical browser without sacrificing the speed and responsiveness of text-mode surfing.

Now that I’ve made my case, here’s how to get it going. For my example, I’m running elinks from the framebuffer inside screen-vs. Keep that in mind because different emulators and settings will display elinks a little differently. In short, getting your elinks screens to look like mine might take a little work.

To get started, start up elinks in your favorite terminal emulator. It’s a little sparse at first (like all console programs :roll: ), but you should see something akin to this:

I’ll admit I’m cheating a little bit there, because I have adjusted the settings already to display in color, open to a home page and display things like the LEDs in the lower right corner, and the clock.

For now, click on Cancel or hit escape if necessary, and click somewhere on the bar at the top of the screen or press ESC to activate the menu bar. From the Setup menu, click on Terminal Options so you can get your screen into a negotiable form.

The settings you see there are working for me in screen against a custom-built framebuffer, and I get a good arrangement of colors, borders and boxes. No promises, but you should get a similar appearance with those options, all things considered.

Save the options that work for you, and close that menu. Now comes the fun part. Press the “g” key. You should see the same screen as you first did — the one that prompted you for a URL. Try the Ubuntu home page, just as an example. Press page down and you’ll see the meat of the page, like I have here.

How long did it take to show that page? Pretty fast, huh? Of course, the first thing you’ll notice is that the snazzy CSS-esque menus that are ordinarily shown at the top right of the page in a graphical browser have been transformed into an indented list. It’s not ideal, but the content — the links — are right there, ready for your perusal. You don’t have to wait for your browser to draw up those snazzy CSS-esque menus now. It’s a tradeoff, but one you might be willing to make.

Hey, lookit there. A bookmark manager. This place has everything! What a bargain! From here you can manage the bookmarks you’ve collected, add a few more, or rearrange them into folders and whatnot. Nest them, list them, sort them … whatever you like.

(One note at this point: Moving a bookmark is a little tricky: First press insert to highlight the bookmark you want to move, then move the cursor to its new home. Then click on Move. It took me a little while to find that one. ;) )

Now let’s see. What fun can we get into next. … Close the bookmark manager, then press “t”.

Well isn’t that quaint, you say. Another way to open an address. Nope! :D Look closer: See the green bar across the bottom? You’ve opened a new tab, not just a new address. Now you have two tabs going, each with its own page. Now you’re really cruising. Give it another address, like the Ubuntu Forums, just for fun.

Open as many tabs as you think you can get away with. Close them with the “c” button. If you middle-click on a link, it will open in a new tab, which means you can moderate the forums with elinks and get much faster response times and page-to-page navigation than with Firefox or Swiftfox. And things like drop-down list boxes work like they’re supposed to.

I love the Forum Jump. It makes it easier to jail spam. :twisted:

So what else? Well, here’s the thing that will take the most getting used to. Go to your Gmail or e-mail account. Here’s the sign-in for mine.

Watch closely: Now click once on the Username field. Then press enter.

Now enter your user name. Don’t press return. When you’re done, navigate out of the text field with the up or down arrow, or by clicking on the Password field. Then press enter again.

Now enter your password, and press enter. elinks will ask you to confirm before it posts the data, and logs you in.

That’s the toughest thing to get used to: Click on the field to highlight it, press enter to modify it, don’t press enter unless you want to submit it. Invariably, even after using it for weeks, I want to press return repeatedly, and I end up sending off a username without a password, which of course is rejected. Sigh.

elinks has some other quirks too, many of which are worth mentioning. I sometimes get screen artifacts, but that’ll happen in almost any browser if it starts feeling funky. (There’s an option to rerender a page under the View menu.)

It’s also exceedingly careful: I would love to turn off the double-confirmation effect of clicking “Sign In,” then having to permit elinks to actually send the information. It’s like I’m working in Vista or something. “Cancel or allow?” :D

And of course, there are some things that just aren’t worth using elinks for.

So much for surfing Google Images for lolcats with elinks. Youtube is also pretty much out of the question. And so is flickr, or or eyeOS. But you probably guessed that. And some pages just turn out kind of screwy.

That’s the front page of Launchpad, and it looks a little off-kilter. It’s still functional, just a little lopsided.

Either way, here’s a short list of some other things to look into, if you plan on using elinks for any amount of serious browsing.

Take a good look at the extended options list under the Setup menu. There are a lot of default behaviors that I don’t care for, including the opening prompt for a URL (that’s what I have bookmarks for). But there are also some nifty tricks that you can add, like a persistent tab bar or a clock option that shows the time in the lower right corner. A nice touch.

There’s a page display in the upper right corner that shows the vertical size of the page, and where you are in that count. This is useful if you’re skimming through a mailing list, and you want to know how much longer you have to keep reading.

In the lower right corner are the “LED” indicators — warning flags for various page alerts or error messages. Most are trivial, but others might be worth knowing. You can find the full list under the Help menu.

Page up and down with the page up and down keys. :roll: Arrow keys up and down jump from link to link. Left and right keys work like forward and backward keys on a graphical browser.

If you close the last open tab, elinks will ask you if you want to quit.

Left-clicking around the edges of the page (and those “edges” are very liberal) will scroll the page in that direction. That’s useful to know if you’ve got a page that spreads way out to one side.

Right-click for … a right-click menu. :roll:

elinks likes to rely on its cached pages, and that can sometimes be confusing. If you log into a site and yet you’re still being prompted for a username and password, you’re probably just looking at a cached version. Press CTRL+R to reload the page.

Similarly, elinks doesn’t seem to have an option to dump its cache on close, or clear its cookies. Everything is in the ~/.elinks folder though, so if you’re one of those people who likes to clean up after yourself, write yourself a little batch script to clean up those files after elinks finishes.

If you want to highlight text on the page, hold down the SHIFT key while you drag over it. elinks otherwise will ignore your highlighting attempts.

If you want image support within the X environment, install feh. Clicking on an image link will prompt you to open it with a command line, and if you have feh installed, elinks will sense it and offer it as an option.

Similarly, if you’re in a console environment, install fbi and get the same graphical access with the framebuffer. Plus the PDF support I mentioned earlier … that you still don’t believe will work, do you?

elinks has an impressive built-in download manager. If you need a download accelerator, look for axel, which runs from the command line and will reach ungodly download speeds, given the space.

It’s worth mentioning that there’s a lite version of elinks, although I can’t imagine a machine so old and so burdened by elinks that you’d need a still-lighter version of it.

When you’re utterly bewildered and not sure why elinks is doing what it’s doing, there is documentation available at http://elinks.cz/. Even though it downplays itself as meager, I have yet to leave there empty-handed.

And most important, press “q” to quit.

That’s about it. Beyond that, you’re probably capable of finding the answers you need. Remember that elinks can’t do it all, but it can do most everything faster — and so long as fancy AJAX acrobatics or embedded Flash players aren’t required, it might even be able to do it better.

Yeah, it’s unfortunate, but some things just aren’t going to show up right, no matter what. I sometimes run elinks next to Swiftfox, so if I hit a page that elinks can’t render faithfully, I can jump over to Swiftfox and see what I’m supposed to be seeing. That happens a lot when I moderate, since people sometime post code lists or snapshots that I can’t get at. It’s worth the effort for me, anyway.

If you want enter in forms not to submit the form, turn off document.browse.forms.auto_sumbit. Coincidentally, the option right below that (confirm_submit) turns of the confirmation when sending the form. ;-)

(By the way, the time to render some larger CSS-heavy pages is actually unfortunately ridicilously high in ELinks, but that’s entirely my fault because the code is so unoptimized and I should really finally get it fixed one of these times…)

I’m conducting an experiment in text-mode browsing right now using
a combination of Lynx/ELinks. I actually discovered this blog post with
Lynx and am using it to write this comment. I thought I’d point out that
youtube-dl in combination with mplayer could be used to workaround the
YouTube issue.

While various things on the web are clearly out of the question for a
text browser, a majority of it is not. When coupled with proper helper
applications, it seems more feasible than one might expect.

Wow, just thought I’d point out that my previous comment has a bunch of unnecessary newlines due to my own error in respect to how Lynx texarea fields work. Unless there’s an option in Lynx to wrap inputted text, it might be best to spawn an external editor for this stuff (^Xe does the trick).

The issues you mention are fortunately configurable. You can configure a text field to start being edited immediately. Rerendering is a Ctrl-L away (not just under the View menu). I don’t know whether you use the mouse, but link numbering can also be switched on…
The whole program is very, very configurable for key shortcuts, so if you find some action you do often difficult to access, just map it to a key combination. :)

Elinks is great. There’s a couple other keys to point out that are very useful.

Ctrl-l will redraw the screen. Useful for web pages that are screwed up and leave traces behind.

With 16 colors enabled, you can toggle a couple different color schemes with Shift-5.

For a quick google search, press ‘g’ to open Got to Url dialog, then enter g followed by your search term, like ‘g elinks’. There are other default searches too; imdb, dpkg, wiki, etc. They are list in the Setup->Options Manager->Protocols->URI rewriting->Dumb or Smart Prefixes. You can also add you own.

You can also set a homepage for elinks in your ~/.elinks/elinks.conf to avoid being asked what url to go to.

A great article, spot on. This really should be the front page of the elinks site! A perfect introduction. I’ve regained my enthusiasm for elinks having had it drained out me by navigating the official website.

Hey there,
I’m reading this post from elinks. There’s one thing wrong: I can’t see your image links on xs.to! I can navigate to xs.to via your links, but there there seems to be no way to open the image in feh. This is a good article, nonetheless.

I like elinks, but have one problem. I use SuperGenPass (http://supergenpass.com/) to manage site passwords, and I cannot seem to get it working with elinks. I can load the page, but it seems that the ECMAScript doesn’t run correctly. If anyone know if a good password management method for elinks akin to SuperGenPass, I’d love to hear it.

I have been playing around with elinks for a couple of weeks and really like it. One of the problems with browsing the internet these days is the issue of user security, i.e., the information sites like google keep on everything you do. Can anyone suggest how to do some of the following things that increase security and anonymity? For e.g.:
> Stop header information being forwarded
> Accept cookies for session only
> Limiting javascript
> Setting elinks to connect via privoxy and tor

I’ve been using ELinks for the past 6+ years or so (before that, I used links). I’m completely with you on “trendy” webpages being “lipstick on a pig”. I want to read, not watch technicolour!

Anyways, there two little hints on elinks usage that I’d like to share:

1. It’s possible to disable page-defined colours entirely and let elinks makre some up for you. This is what I like: all my pages have a black background and an assortment of pleasantly-coloured text. (These colours are user-settable.)

2. When typing in a form (such as this one), hitting Ctrl-T lets you edit the text in your favourite editor. Much easier to use!

Thank you so much for suggesting the PDF reader; would you believe it, I found a forum post from perhaps from two years ago, of a person asking for one, and no one had a good answer for him. fbgs is a lifesaver for me; a necessity if I’m to do any serious work in the console (for schoolwork). I’m taking my notes with WordGrinder, browing the web with elinks, organizing my files with clex; what wonderful suggestion of yours will I benefit from next? :)

I just use elinks for a couple of days. In ubuntu 9.04 i got it from the repo. I just wonder wheter i can actually save the web pages in elinks? I got no clue from elinks manual (usr/share/doc/elinks-doc). Thx

After you submit the form, try hitting Ctrl+R to refresh the page — in elinks, as stated above, the preference seems to be to use cached pages. You may well have submitted the form, but elinks is still displaying the pre-submission version. ;)

i would love to use elinks but there is a major problem with it … i m behind a proxy authenticated internet access system … while wget and w3m work with the environment variable http_proxy elinks simply refuses to work …

I just switched to elinks, and I love it! K.Mandla, have you read:http://urukrama.wordpress.com/2010/01/02/watching-youtube-videos-in-elinks/
He finished it of by passing the ball you:
“And so you can watch your favourite Youtube (or Google Video, or Vimeo, or …) clips without having to rely on Flash, or even X. Now K.Mandla can finally watch his favourite slug races on the framebuffer! :twisted:”

Very interesting. I’m looking for a console browser as I’ll be spending a lot of time on a box without X.
However, my elinks looks pretty boring compared to this. Would you mind sharing your elinks.conf?

I am also using elinks, however there is something very annoying about it that I do not know how to fix. It somes like this: when I open a post / article in this blog once it loads completely I am sent to the text area for reply intead at the top of the document. This is very frustrating, I have to press Home button to go up there! When I go back and forth again it does not happen (I guess something gets cached?). Do you happen to know how I can fix this behaviour, i.e. NOT focusing the textarea on load?