Archive for February, 2008

Xmonad

Wednesday, February 20th, 2008

I’ve been using Xmonad as my window manager under X11 since early December. Xmonad is written in Haskell, a purely functional programming language that compiles down to machine code. Haskell is the most different looking programming language I’ve ever seen; when I started looking at Lisp, the structures made sense, but I’ve been lost looking at Haskell code. I suppose I need to pick up a book on the subject. I digress, Xmonad builds upon a different paradigm than what most users are used to. Most Window Managers (including Windows Explorer, Gnome, Etc.) use co-ordinate based stacks of objects to represent the environment. Think of this as having Firefox or Internet Explorer fullscreen, and you press alt-tab to get to Google Talk or you drag iTunes around the screen. Xmonad deviates from this by implementing what’s known as a tiling window manager. Instead of stacking objects, Xmonad gives applications non-overlapping regions of your monitor. This has the handy effect of putting what you’re using right in front of your eyes.

The way Xmonad handles where it puts the applications is terrific. If you have one window open, it will take up your whole monitor. If you have two, each will get half. But what about if you have three, or more? Xmonad solves this by declaring the left half of your screen as the main workspace, displaying one window there, and divides the right half in twain. Hence your attention can be given fully to your main application, while you switch to the other programs for support. This is quite handy if you’re a programmer and you have GNU Emacs or gVim open as your main application and two terminals open to test your project stacked one on top of the other to the right of it.

There is the obvious issue of “Most of my applications are designed as WIMP interfaces and this will break them!”. Don’t worry, other tiling window managers such as Ion force you into strict tiling, but you can configure Xmonad in its settings file to allow certain applications to float on top of other windows. Everything in Xmonad can also be controlled by the keyboard. Switching between windows is as simple at hitting alt-k. You can switch virtual desktops by pressing alt-<screen_num>(I switched mine to alt-f1 … f9 so as to not interfere with Irssi). There’s also multi-monitor support.

You can find out more about Xmonad at http://xmonad.org. They also have a directory of interesting screenshots, and a wiki full of configurations.

Xmonad In Action

Logitech Wave Keyboard

Wednesday, February 6th, 2008

I purchased a Logitech Wave Keyboard a little over a month ago. My old keyboard, an original Microsoft Natural that I had been using since 1999 was so old that parts of it stopped working, and then started again. Since when I purchase things like this, I tend to make them long term investments, I went to a couple stores and tried typing phantom paragraphs on each and every keyboard that they had on display. The Wave felt the most comfortable to me, and I nearly purchased it on the spot, but two exceptions were thrown: 1) It was cordless, and I don’t like the idea of having to replace batteries in a keyboard, something which probably won’t be moved, and 2) keyboards in stores these days come bundled with a mouse, which raises the price about $60. So I turned to Newegg, who had a cord version without a mouse. With shipping it cost approximately $40.

I had been using an ergonomic keyboard for roughly nine years. The kind with the gigantic split in the middle so that your hands allign with the keys more naturally (at about a 40 degree angle, rather than straight on). The Logitech Wave is able to accomplish this same feat without a split. Instead Logitech spent a couple years engineering the keyboard into a wave shape. The Wave also has a built in wristpad that keeps the head of your Ulna obtaining a pinkish hue due to all the sliding around. It also features a number of macro keys for volume, and standard applications. Luckily all of those features are rebindable, so I can launch Emacs instead of Word, and Gimp instead of Photoshop.

To keep this brief (I don’t want to mull too long about a keyboard) , the Logitech Wave is a worthy buy if you’re looking for a new keyboard.

Blife Ports

Saturday, February 2nd, 2008

Stock and I got blife running on Mac OS X yesterday. We figured that in theory it should compile out-of-the-box since I had OS X’s OpenGL and GLUT headers in their own #ifdef clause. However, we found that linking to libraries works a bit different on OS X as opposed to the other Unix’s. On Linux, FreeBSD, etc., executables are linked to libraries by passing “-l<libraryname>” to the linker. So in this case, GLUT is linked to blife by passing “-lglut” to he linker. However, on OS X, you need to use “-framework <libraryname>”, so”-framework OpenGL -framework GLUT” gets used.

When blife 0.2.5 is released, there will be a OS X specific section in the Makefile, so OS X users can simply “make osx” and have the proper binary built.

With that said, blife has been compiled and works properly in GNU/Linux, FreeBSD, Windows, and OS X. :)