Uzbl and Xmonad

October 23, 2009 by Vincent

I already showed you that I switched from Firefox to Uzbl. Uzbl has no tabs out of the box, so I had to come up with something else. Somebody made a tabbing plug-in for Uzbl, but somebody else pointed me to the tabbing layout for XMonad. But I don’t want my browser full-screen. I have 22″ monitors with a resolution of 1680 * 1050 so full screen is a little much. Fortunately XMonad has something for that as well. namely the ComboP layout.

ComboP is a way to combine multiple layouts in one workspace. I now have a portion of the workspace tabbed so that is where I can have multiple uzbl windows. On the other portion I have two terminals. One for Weechat and one for Mutt. These are situated in a tall layout that doesn’t resize so they will always have 50% of the available vertical space.

This would be useless to have on every workspace, I just want it on the one I have reserved for my browsing. So I went to look for another module and found it. It’s called PerWorkspace. It gives you the ability to set a layout for just one workspace and to have just one layout on a workspace, and multiple on all the others. It does make your layoutHook look like a mess.

Here is my layoutHook line, don’t forget the imports!:

,layoutHook = avoidStruts $ onWorkspace "www" (named "Tabbed" (windowNavigation (combineTwo (TwoPane 0.03 0.5) (tabbed shrinkText tabConfig) (Mirror (tiled))))) $ tiled ||| named "HintedTall" (hintedTile XMonad.Layout.HintedTile.Tall) ||| noBorders Full

I think this is a great example of what Xmonad can do. You can mold and craft it into anything you want and it will do it for you. I just love my setup at the moment. If only there was a good cli-feed reader that could synchronize with Google Reader


  1. Dieter@be says:

    > If only there was a good cli-feed reader that could synchronize with Google Reader…

    2 options (forgive me for just ignoring the google reader part):
    - rss2email and $your_favorite_email_client
    - write a feedreader based on uzbl (or more precisely, uzbl-core)


  2. Vincent says:

    If you’re just ignoring the Google Reader part, then Canto is a great option, but I like that feeds are synchronized between my laptop and my desktop and my *. If only I, or somebody else, had the energy to write a imap-like-thing for RSS…

  3. Ariel J. Birnbaum says:

    About the layour hook being a mess, you can always refactor it a bit (untested, of course):

    layoutHook = avoidStruts $ onWorkspace “www” browserLayout $ normalLayout

    browserLayout = named “Tabbed” $ windowNavigation $ combined where
    combined = combineTwo (TwoPane 0.03 0.5)
    (tabbed shrinkText tabConfig)
    (Mirror tiled)

    normalLayout = tiled ||| hintedTall ||| noBorders Full

    hintedTall = named “HintedTall” (hintedTile XMonad.Layout.HintedTile.Tall)

Leave a Reply

Your email address will not be published. Required fields are marked *


You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>