January 19, 2004

Playing with a little Pogo schtick

Author: Joe Barr

While chatting on IRC a couple of weeks ago, trying to dig up the facts behind the public obituary of the XFree86 core developers group, I happened to see some shameless self-promotion for a free software offering called Pogo. I made a note to check it out, though I had no idea what it was. I've done that now, and also exchanged a few emails with its creator, Bowie J. Poag. Here's what I've learned.

Pogo is lightweight application launcher. If you use a full desktop environment, like GNOME or KDE, there may be times when you wish your desktop alone didn't take so many of your system's vital resources.

Perhaps there are times when you would rather see those cycles and memory used to speed long and frequent compiles, or maintain a database, or generate another FPS (frame-per-second) playing an FPS (first-person shooter). In my case, I would simply like a little snappier response from my laptop while I am on the road. It's not overly endowed with speed or memory in the first place, and a lightweight desktop solution in place of GNOME would give me quicker "everything I do" on it.

But no matter what might be driving your need for a lighter-quicker-faster GUI than your current desktop environment provides, there are a number of choices for a window manager with a smaller footprint to help you accomplish your goal. Regardless of which one you pick, you can enhance its usability with Pogo.

When I asked Bowie why he wrote Pogo in the first place, he told me that originally Pogo was going to be the application launcher for another operating system, called "Insight." Then he added, without mincing his words:

The other reason I wrote it has more to do with my dislike for the way GNOME and KDE handle the task. They're basically mimicking Windows 95/98 taskbar, which is quite possibly the worst GUI design you could come up with to handle this sort
of thing. As far as i'm concerned, the only real difference between KDE and GNOME's respective launchers is that one tries to drive nails with a loaf of bread while the other tries to swat flies with a hammer. They're both clumsy, non-intuitive, downright ugly designs that reinforce a number of bad habits.

I chose the iceWM window manager for my project. Not because I had special knowledge of iceWM, or any of the alternatives, but because my desktop box is running Mandrake 9.2 and iceWM was already installed.

Mandrake lets me switch back and forth from GNOME to iceWM as easily as logging out and logging in again. Bowie's personal choice is WindowMaker, but he says that any one of them will work with Pogo.

Installing Pogo was straight-forward. After downloading it from the website and decompressing the tarball, it wasn't the classic "configure, make, and make install" routine required to install most free software. But it was close. With Pogo it's "make clean, make, and make install" instead. Execute "make install" as root, of course. Once that's done, you can run Pogo simply by typing pogo from the command line.

According to the Pogo homepage, the most common problem people have installing Pogo is not having imlib1 installed. And don't confuse imlib1 with imlib2. They are not the same thing.

The first time I logged in to an iceWM session, I opened a terminal window and entered the pogo command. Pogo immediately appeared along the bottom of the desktop, just as you see in the screenshot. After playing around with the default Pogo config for a bit, and getting used to iceWM, I decided I had some hacking to do with the defaults for both.

For one thing, I wanted Pogo to start automatically when iceWM is started. For another, the Pogo window appeared right on top of the iceWM taskbar. And lastly, the default Pogo install had a lot more application launchers on it than I was going to need. The default config consists of three different rows of icons which you can cycle through using the left and right arrow icons you see on the bottom left of the desktop. I needed less than one full row of icons to configure it do meet my needs. Here's how I dealt with those issues.

To get Pogo started automatically, I created a file named "startup" in ~/.icewm. It contained a single line consisting of the word "pogo." Then I made the file executable by typing chmod 764 startup. Easy as pie. The next time I started an iceWM session, Pogo was waiting for me.

My first thought was simply to turn the iceWM task bar off, but after running with it not being there for awhile I realized that it would be better if I had it around. Especially after minimizing app windows and wanting to shift from workspace to workspace. I know, I can do all that from the keyboard. But I'm lazy, and in this case it really is easier and quicker to click.

So in the ~/.icewm/preferences file, after turning the task bar back on, I simply uncommented the "#TaskBarAtTop=0 # 0/1" line and changed the default 0 to a 1, so it looked like this: "TaskBarAtTop=1 # 0/1". That took the taskbar out from beneath Pogo and put it across the top of the desktop.

After deciding exactly what my "go to" apps would be while traveling with the laptop, I set about finding icons for them in the nearly 300 that come with Pogo. I found something for each critical app except for Xchat, so I am using a large letter X for it for the time being. According to the docs, Pogo icons are exceedingly easy to make, so I might make a nice one for Xchat before my first roadtrip.

It's easy to set up a task launcher for Pogo. Each task has its own template in the file, and the order of appearance on the Pogo launcher is driven by the location of the template in the file. The first template in the file goes on the left hand side of the bar, and each subsequent task goes in the next available space to the right. My traveling Pogo task bar includes a template for xterm, Evolution, Mozilla, Xchat, Gedit, gaim, and gimp.

Pogo also includes something called "pogo remote." I haven't played with this yet, but the idea is that it allows external control of Pogo's location and lets you blink icons on and off, and highlight or change their color. This might be useful, as the documentation suggests, for using as an alarm for unwanted visitors on your site.

Bowie runs Pogo full-time on his desktop. As noted, I will use it on my laptop while traveling. Initially, at least. It might also prove useful for installing on a server where you don't want to waste resources on the GUI, but you don't want to operate strictly from the command line either.

I'm curious as to what other solutions readers are using for lightweight Linux desktops. Please feel free to share your favorite in a comment.

Click Here!