Latest News >> 2008-07-20 2008-06-25

I’ve been completely fed up with news/feed/rss/atom readers these days. I use Linux as my primary operating system, and I only have a few feeds that I want to rip through quick so I can get to reading the content. Yet, trying to find a reader that doesn’t suck donkey balls has been a chore.

2008-06-21

Wanna know what all the Ruby vulnerabilities are? Or at least have a fun look at how to search through code for clues? It’s a blast.

2008-06-13

I’m dropping a large blog post on everyone to just say that I haven’t died, I’ve just been busy working on my book for A/W about Mongrel. I had contracted with them to do a book about deploying Mongrel, but then decided it wouldn’t be a very good book since we’d already done one about that topic and there wasn’t too much more to say.

Oroborus+Pogo+ROX

NOTE: I don’t run this anymore. I love ROX but don’t have the time to tinker with things now that Ubuntu has a very nice Desktop config. This is here mostly for historical purposes.

I recently decided to actually try working in some of the more esoteric window managers available. I would pick a window manager or some other technology and try to do my daily work in it. I figured it couldn’t hurt after my horrible experiences with Gnome and KDE start-up times, crashes, and just way more cruft and crud than I really need. Being a Linux user I have quite a bit of freedom to choose from, but I wasn’t prepared to run into a combination that I actually liked. Not only liked, but found very attractive, low on memory consumption, fast as hell, and chock full of features without sacrificing usability. By combining Oroborus, Pogo, and ROX- Filer. The result is a nice looking desktop that’s easy to use.

I was a big time XFCE4 user, but it stopped working for me on my distro of choice—ArchLinux. I also felt that XFCE4 was nice, but maybe I was missing something from the others like Gnome and KDE. I tried KDE but I really didn’t like the noisy-kandy-kane-blaring-molassas-slow start. Gnome used to be fast, but it has recently just turned to utter crap with it’s own horrible start-up time, unreliable behavior, and stupid positional windowing that just ruins my day. After frustrating myself on the Gnome/KDE lance of pain for years I decided to try the alternatives again. XFCE4 still didn’t work so I gave the others a try.

I tried the usual suspects: Blackbox, Hackedbox, Fluxbox, Ion, Pwm, Aewm, and a weird one named Windowlab. Windowlab was the neatest as far as ideas, but I couldn’t get used to it. I’m just an old dog and couldn’t get my fingers to switch windows right. Also Windowlab had some problems with a few Java Swing apps so I had to drop it since I use swing professionally usually. Ion was very strange to use, but it was too strange. The window layout and control was just too weird for me to get into.

One thing to keep in mind is that I was trying each window manager for about a week if I could. I’d actually use it during work and see if it got in my way or helped. I’m more a less is more guy so when I use a window manager it needs to do some basic window management, but mostly give me as much room to play as possible. I really like big wide screens, small frames, keyboard focus switching, and the ability to flop virtual desktops so I can organize my work on different screens. Each of the window managers did a decent job, but they were missing a few key points and had their own set of bugs. I ended up sticking with Windowlab the longest.

ROX-Filer and Pogo

I think ROX-Filer is the best file manager there is, as well as a decent desktop and application launcher if you need one. The reason why I like ROX is that it’s super fast, but also because it fits into a command line slave’s work-flow very well. I do a lot of work from the command line, but still like to pop open a directory or file in a GUI interface. ROX makes this easy since, if you run ROX from the command line and give it just about any file or directory, then it will open it or launch the file as if you clicked on it in a ROX window. Need to open a text file? _rox thefile.txt_. Need to move some stuff around in a directory? rox ./thedir. An additional advantage of ROX is that all of the stuff you need to do is accessible from the right-click mouse button, even opening an xterm in the currently viewed directory. Because of this very well thought-out CLI->GUI->CLI interaction I’m able to work very comfortable with ROX as if there’s no separation between the concepts.

With Windowlab ROX-Filer kind of works, but certain window decorations and layouts don’t really work. Also Windowlab has a funky focus mechanism so it doesn’t help much with programs that expect standard operation. Pogo is a nice little launcher that I tracked for a bit, but never took too seriously. Now with Windowlab I really needed a nice launcher, so I took Pogo, stripped out the things that made it crash, and used it to manage my apps just like the Mac OSX Dock. Pogo has a very nice feel and multi-level application lists. With a bit of tweaking I’m able to use it to exit my sessions and to launch just about anything I want with a nice attractive look.

So Long Windowlab, Hello Oroborus

Windowlab was OK, but after using it for a while I was getting frustrated. It just didn’t have a lot of modern features I enjoyed with others like virtual desktops. I played with a few more of no worth, and then remembered Oroborus. Oroborus is a very tight little window manager with all the super-whiz features like virtual desktops, minimizations, snappy looks, etc. You can even make it look like Panther/Tiger/Meerkat OSX (or whatever). I installed Oroborus, and fired up Pogo, and then tried out ROX to manage the background.

This is where things start to come together really well. The combination of Oroborus managing the windows, Pogo managing the application start-up, and ROX managing the files/background turns out to have some fantastic interactions. For example, if you look at snapshot 2 you can see a completely clean desktop. All of the windows are minimized to the desktop (controlled by ROX), but still display useful information about their contents. There no need to for panels, task lists, window lists, or many other window management things. Using the ROX folder that sit on my desktop gets me to most my important stuff and anything else I need from there.

Pogo really shines in this environment since it is completely out of the way, but still lets me create very nice complex application launcher buttons. Look at snapshot 3 for a glance at how nice Pogo looks with this desktop, yet when you compare it with snapshot 2 it’s as if there’s nothing there. Pogo hides itself completely so I don’t see it until I slam my mouse to the very bottom. More space for me, and very well behaved. Best of all, those little left/right arrows on the left side of Pogo’s panel give me access to more Pogo menus, and I can have as many as I need (I’ve only needed 2 so far, if that).

This combination of Pogo, ROX, and Oroborus really blows me away. These three projects only have a minimal amount of influence and interaction. There’s a small OroboROX project, but otherwise nothing much. Yet, combining the three gives me a very nice and clean but still attractive and powerful desktop. I really think this is the essence of open source. People make tools that other people like me combine to create newer systems never thought of before.

Of course, what would a discussion of my latest work environment be without the ””tons of open windows””:snapshot4.png shot?

Some Important Features

  • Windows get minimized to the desktop in a very consistent way thanks to ROX. You get this by putting “rox -p main” in your .xinitrc or other start-up script.
  • When cycling through windows with ALT-TAB, they stay minimized unless you release the ALT on one, and then only that one stays open. This lets me push my windows to the background and then pop them open if I need or not.
  • ALT-LEFT/RIGHT whips through the virtual desktops. This does interfere with an editor setting, but both Oroborus and my editor are configurable.
  • CTRL-ALT-LEFT/RIGHT takes your currently focused application and moves it to the left/right virtual desktop. This make it really easy to combine windows onto desktops without the mouse.
  • You can make Oroborus look and feel a little like OSX of different flavors. I do this just to piss OSX people off. They think I’m running some hack-job OSX on an Intel.
  • You can put folders from any open ROX window onto the desktop and access it. ROX also opens fast as hell.
  • I set my default xterm program to run “screen bash”. This gives me virtual shells from one window through screen. It’s great, and helps me cut down on the beeping bash constantly gives me.
  • I calculate the memory usage for the whole thing at around 31M. Much better than the 200M+ from Gnome or KDE.
  • Setting the desktop in the ROX backdrop is easy. Right-click on the background, select Backdrop. Then open another ROX window with the backdrops you want and drag them to this backdrop selector. Anything you drop there is the backdrop, and ROX remembers it the next time you start-up.

I’m so far very happy with the setup. Oroborus and ROX seem to get confused by some Java applications, but otherwise it’s going really good.