uzbl is quite usable

Arch LinuxI’m always excited when I discover a new browser. Firefox is like the obligatory pacifier for any open-source software discussion. Yes, I suppose it deserves a place in the list of free software successes, but I still feel slightly guilty whenever I use it, because of that little voice in the back of my head that whines, “Firefox, again?!

Firefox is not the only, or the best option for most people. There are dozens — maybe even hundreds — of workable browsers out there, but Firefox is like the teacher’s pet — that annoying kid at school who wasn’t necessarily the brightest or most talented, but got all the attention anyway.

In any case, finding something completely new and original in the field of Web browsers is an added fillip to the joy of discovering a new application. I apologize if this is somewhat inconsiderate, but any one browser is generally arranged and works like every other. They all look the same to me.

So uzbl — I’m assuming it’s pronounced “usable” — blindsided me. Your father’s browser, this is not. This is, for all practical purposes, an Arch-only weapon, although I’m sure it can be installed in other distros. But the easy way to get at it, if you want it, is to install Arch and conjure it up through the magic of AUR.

And the end result? How about a box, with a page in it. So what, you say? So look closely: It’s a box with a page in it.

 

And that’s all. No buttons, no address bars, no back and forth controls, no home button, no reload button, no hotbutton bars, no rss dropdown menus, no up, up, down, down, left, right, left, right, b, a or anything like that. It’s a box with a page in it.

So where’s the joy in that, you ask? Well, look back at the original manifesto for uzbl, which reads a bit like the American Declaration of Independence. In short: Everyone else is doing it wrong, and we will do it right.

Right it is, too. vim-style keybindings, simple one-key url-entry commands, infinitely customizable through the configuration file (there’s a sample in the package that you really want to start with; no configuration file makes uzbl sort of … unusable πŸ™„ ), and best of all … fast.

Wicked fast. Frighteningly fast. A speed Firefox can’t even dream of. I swear I have LCD image persistence from the speed of uzbl drawing up a page. 😐 Okay, maybe not.

Of course, a lot of that speed comes from Webkit, but part of it also comes from the fact that uzbl weighs about a buck-oh-five. Without all those knobby buttons and cutesy icons, there’s room to move fast.

All the same, this won’t appeal to everyone. It takes a little while to get used to, and of course, there are those oh-so-critical extensions Firefox addicts cling to, like security blankets. (One day someone will invent an extension that strips out all the other extensions, and everyone will realize how encrusted with extensions they had become.)

But if you enjoy a minimal environment, perhaps something tiled or even just exceedingly svelte, uzbl deserves a hero’s welcome. It’s light, it’s fast, it’s flexible to the nth degree, it’s unobtrusive, unforgiving and obviously designed by and for people who enjoy making their computers do exactly what they tell them to.

If you count yourself in the same group, check it out.

24 thoughts on “uzbl is quite usable

  1. reacocard

    Unfortunately, last I checked uzbl does not have tabs or any equivalent thereof. So while I found most of the rest of the browser very attractive, the lack of tabs (or some equivalent) makes it completely unusable for me (try dealing with 20+ browser sessions with just your window manager – it doesn’t end well).

    Reply
  2. Barrucadu

    Ooh I, well, my uzbl wiki page / config file, is featured in a screenshot on K.Mandla’s blog. I feel honoured πŸ˜‰

    reacocard: Most of the devs / users (in the IRC channel, at least) use a tiling WM, so the “WM handles multiple instances” idea works pretty well for us. Some form of script to quickly switch between instances is on the todo list though.

    Reply
  3. reacocard

    > Some form of script to quickly switch between instances is on the todo list though.

    Good to know its in the works. Tiling WMs dont work terribly well for me since a lot of my windows work best when I have them at a particular size in one dimension, or dont reflow well/quickly on size changes.

    Reply
  4. Dieter_be

    K.Mandla, I follow your blog for already a while (it has some cool stuff) so I’m happy (but not suprised πŸ™‚ to see a post about uzbl here.

    I just want to clarify a few things:
    * we do have back/forth/reload/up/down/.. controls. (but no graphical widgets for them)
    * address bars and such things can be used as external programs (eg dmenu)
    * it would be more accurate to say “it’s a box with a page in it, and various interfaces (keyboard, socket file,.. ) to trigger all kinds of changes in behavior”
    * keybinds are vim-style by default but can be customized to behave anyway you want. (or at least that’s our goal)
    * anything that’s possible with firefox extensions should be possible with external scripts (and our javascripts support)
    * sometimes uzbl can be pretty slow actually. But we’ll resolve that at some point.
    * no release yet. I wouldn’t even call it “alpha” yet.

    Dieter

    Reply
    1. K.Mandla Post author

      Sorry about that; I should have been a little clearer on some points. I wanted to stress that it’s very different from the “traditional” browser layout, which is one of the things I like about it. And I didn’t touch uzblctrl when, really, I probably should have mentioned it. … 😦 Thanks for expanding on that. πŸ™‚

      Reply
    2. karthik

      @Dieter_be:

      I know you (and Kmandla) advocate a DIY policy- but is there any chance you could provide a .DEB for Debian/Ubuntu users?

      I’m a casual user who loves minimalism and is game for a bit of scripting- but I don’t eat C-code for breakfast. 😦

      UZBL is a great idea- it’s what I always wanted from a browser. I have no experience in compiling from source, though.

      There’s an entire legion of folks at CrunchBang (openbox based Ubuntu derivative) who, lacking the ability to compile UZBL themselves, are waiting for someone to post a .DEB.

      Alternatively, if someone makes a DEB of the browser and informs you, I’d be grateful if you could put the news up on your website.

      Reply
  5. eksith

    The irony of Linus’ blanket in a browser review on Linux is almost overwhelming!

    I must say, this is very much in line with the true UNIX philosophy ( including that “actively user hostile” part πŸ˜‰ ). But after the initial bump, it’s a really nifty browser.

    If you’ll forgive the comparison, it almost reminds me of the Steam content delivery system.

    Reply
  6. kevin

    from your images I can see it supports javascript. Does it support java plugins and flash?

    Reply
  7. Jack

    I very interested in this, but haven’t got all the necessary libs etc yet.

    Can I clarify what is meant by “browser”? I think I’ve read somewhere that you follow links with vi-style keyboard commands, instead of clicking with the mouse. To me that is taking the keyboard-efficient ethos a bit too far, since when you are JUST browsing/following links, it’s quicker, or at least, a lot easier, with a mouse, IMHO.

    So, does uzbl let you click links in a page? What happens when you do, does it generate an external signal, that one of your scripts must catch, in order to re-load the page with the specified link? Or does it go ahead and follow the link? How would you make it open the link in a new page?

    I’m very happy to have all the navigation, bookmarks, history, etc outside of the browser. Although, I would plan to write some GUI versions of these, or semi-gui versions, free from the bulk and confines of firefox.

    The uzbl idea is a great one – I really agree that the “unix philosophy” of combining tools is what has made unix great (plenty of other aspects, eg the filesystem, are looking pretty legacious and burdensome these days), and GUIs have really wrecked that. But there’s no reason to force the keyboard on everyone.

    Reply
  8. Dieter_be

    Jack, you can use the mouse just fine if you want.

    At this point, when you click a link it opens the new page automatically, though we’re thinking about the possibility to hook in custom scripts to control this behavior.

    Reply
  9. Jack

    I dodn’t agree with the part of the manifesto that says “use text to communicate” though.
    At least in the unix sense, where it actually means “use unstructured text”.
    Think how much better/safer it would be if apps like “ps” output CSV format, or XML, or whatever, which you then ran through a “human display formatter”.
    Any apps interfacing with ps would know exactly what they were getting, without having to parse out the header line, account for variable-length whitespace between columns, etc, etc.
    Skin wizards could then code up entire unix-shell “human display skins” to their prefered style (even making it a GUI), while still using the core “ps” application.

    Reply
  10. Jack

    Dieter,
    Thanks for the quick reply.
    My preference would actually be for uzbl to send a “link was clicked” signal out, so that the navigation scripts can decide what to do.
    A simple example would be in a “kiosk” application, where you want to only allow links within the prescribed collection of pages, etc. You could do this quite easily with a script, instead of having to hack a proxy, firewall, DNS, etc, etc.

    Reply
  11. Colin

    I hope someday WebkitGTK+ can have all its dependencies β€œbuilt-in”, ie offer a binary package where dependent libraries (enchant, gstreamer, sqlite3, etc) are statically linked.

    Right now the dependencies are annoying, and uzbl could be better off using webkit-qt.

    Generally I see web-browser as a huge piece of inherently anti-UNIX monster, thus better kept in isolation as a single, standalone binary package.

    Reply
  12. saintsteele

    I’ve been following your console-and-framebuffer-only experiment closely, and have managed to reproduce some of your success on my own machine. Do you know any way to run uzbl in the framebuffer (without a desktop, I mean)? The only thing I’m missing in my move to an X-less system is a good browser. I like elinks fine, but I’m not really willing to give up graphics.

    Reply
    1. mulenmar

      I understand what you mean, saintsteele — the internet just isn’t the same without Xkcd comics. πŸ˜†

      I recall a project that successfully compiled Firefox 2 to run against DirectFB instead of X, you could look for that. I haven’t tried it, personally.

      Links2 is probably the best-known framebuffer-based graphical browser in Linux/*BSD, along with w3m-img.

      Elinks can be set up to open image tags with an external image viewer — gets un-overstateably annoying when a website uses images to create frames with, though. Links may be able to do something similar with similar with similar configuration tricks, but I haven’t tried.

      May the source be with you!

      Reply
    2. some anonymous fellow

      I know I’m months late to this discussion. For the framebuffer, w3m displays images quite fine. On Debian (and probably Ubuntu, etc.) you would need the w3m-img package.

      Reply

Leave a reply to Jack Cancel reply