The Linux Moderate

One Man Standing Up for Computers That Get Work Done

Archive for the ‘DBCOS’ Category

Transforming Xubuntu into DBCOS

leave a comment »

Part 7: Finishing Up Our New Theme

We’ve done all we can by editing the default.theme text file. Now it’s time to mess with the actual graphics a bit. But we won’t really have to draw anything. As I said before, we’ll get almost everything done by cheating.

The first thing I want to do is get rid of the background in the taskbar. That’s easy enough. In the theme Milked.Expresso-altered theme folder is a folder called taskbar, and in that folder is a file called taskbarbg.xpm.

This little graphic is the taskbar background. Delete it, and the background goes away.
This little graphic is the taskbar background. Delete it, and the background goes away.

That’s the taskbar background. I could open it in the GIMP and draw a new background, but if I just delete it, the background goes away, and the taskbar is a solid color governed by the line “ColorDefaultTaskBar=” in our default.theme file. That’s what I’ve done.

While I’m fiddling with the taskbar, I want to darken the active button, so that the active desktop and the active window stand out a little more. I open the file called taskbuttonactive.xpm in the GIMP and magnify it to 800% so I can see it. Then, from the Colors menu, I choose Brightness-Contrast, and I darken the brightness a little. Finally, I save the file. That was so easy even I could do it.

I also want a different menu button. In this case, I’m actually going to change the graphic a little. This requires a tiny bit of GIMP skill, though not much, so I’m just going to describe the steps in outline and assume that you know how to do them in the GIMP.

In the taskbar folder is a file called linux.xpm. I open that in the GIMP and use the eraser to erase it completely. Then I set the opacity to 0, so it’s completely transparent. Now I make a new layer and write the word “MENU” on it in clear bold type. When I save it, I have my new menu button.

Done with the taskbar. Now I want to change the shape of the rollup button so it matches the other buttons. This is going to be criminally easy.

There are four versions of the rollup button in our Milked.Expresso-altered folder: rollupA.xpm, rollupI.xpm, rolldownA.xpm, and rolldownI.xpm. “A” stands for “Active” window and “I” for “Inactive,” and the difference between “up” and “down” isn’t too hard to figure out.

These four files are the rollup button in its various states.
These four files are the rollup button in its various states.

In this theme, the four versions are identical, so we’ll just delete them all.

Now we find a plain round button. Any one will do, but the original author of “Milked Expresso” has helpfully left us a generic button called anybutton.xpm. Right-click on that file and choose “Copy.”

Right-click on the graphic file and choose Copy. Note that closeI.xpm would work just as well, since it's exactly the same.
Right-click on the graphic file and choose “Copy.” Note that “closeI.xpm” would work just as well, since it’s exactly the same.

Now right-click on a black space in the Milked.Expresso-altered folder and choose “Paste.” The file manager will prompt you to rename the file; call it rollupA.xpm.

Paste and rename the file.
Paste and rename the file.

Paste again, and call it rollupI.xpm; again, and call it rolldownA.xpm; again, and call it rolldownI.xpm. We’re done.

Our new rollup button, created without a lick of drawing.
Our new rollup button, created without a lick of drawing.

There’s one more change I’d like to make. In the menu, the submenus have a folder icon in front of their names. It lives in a folder called icons in your .icewm folder. I’m going to open the file called folder_16x16.xpm in the GIMP and change that icon from a diamond to something else. I could draw a folder or something prosaic like that, but for the sake of whimsy I’ve chosen an 18th-century index–a pointing finger–from a type font full of them that I happen to have installed on my hard drive. You could choose any symbol from any font of symbols or dingbats, or you could draw something original. Just as with the menu button, I erase the background and make it transparent, then put the pointing finger on a new layer.

Now let’s see if it all worked. From the main menu, choose “Settings,” and then “Themes,” and then “Milked.Expresso-altered.” We see the taskbar with no background, a new menu button, and slightly darker active buttons. The rollup button is the same shape as the other three buttons on the right. In the menu, each submenu has a finger pointing at it. It worked!

I'm especially proud of the pointing fingers.
I’m especially proud of the pointing fingers.

One more refinement, which you can see I’ve already made but didn’t tell you about. To make the application menus match the IceWM menu, I went back into XFCE for a bit, and in the Settings Manager chose User Interface. From there I chose the same font that I chose for the IceWM menu. When I logged back into IceWM, because I’d put xfce-mcs-manager in the startup file, it picked up the alterations I’d made to the User Interface.

Once you’ve started fiddling with themes, it’s hard to stop. You could go on to the next level and do some actual drawing. For example, the corners in this theme are round. Would you prefer them square? Just find the corner graphics (they have names that begin with “frame” for windows and “dframe” for dialog boxes), open them in the GIMP, and square off the corners. Do you want new window buttons? Use your imagination. There’s nothing hard about it.

But I’m satisfied with what I’ve got. Many thanks to “hfjdksla,” the original author of Milked.Expresso. Our theme is different enough that I’m going to give the theme a new name now: something like “Clouds.” All I have to do is rename the folder, and the theme will appear under the new name in the “Themes” menu.

And there we are. Starting with stock Xubuntu, we’ve made what feels like a whole new operating system. It’s still Xubuntu Linux at the base, but the user interface and the programs we use to get work done are almost entirely different. Even the look of the windows and desktop is our own design. And it all runs well on a nine-year-old computer built for Windows 98. In fact, it’s faster than a new computer with Vista.

Just two or three more refinements, and we should be finished.

Written by cbaile19

August 16, 2008 at 8:14 am

Posted in DBCOS, Xubuntu

Transforming Xubuntu into DBCOS

with one comment

Part 6: Altering an IceWM Theme

Now it’s time to make a new theme for IceWM.

Before we start work on a new theme, though, we’re going to make one trip back to the regular Xubuntu desktop to find a “User Interface” theme we like. Log out of IceWM, and choose “XFCE Session” from the Session menu when you log in. Now go to the Settings Manager (Applications, Settings, Settings Manager) and click on User Interface. Pick a theme you like. I’m going to choose “Industrial.”

If you’ve put a line for xfce-mcs-manager in your IceWM startup file, then when you log back in to IceWM, the User Interface you chose will be the one IceWM uses for buttons and menus in applications.

Window decorations, the main menu, and the toolbar are controlled by the IceWM theme. That’s what we’ll tackle next.

As I said, we’re going to do it mostly by stealing bits from other people’s themes, which is perfectly legal and ethical because almost all the themes for IceWM are released under the GNU General Public License, which guarantees your right to use and alter the theme in any way you like, and requires you to give other people the same right if you make your alterations public.

So we need to find a theme we’d like to steal from.

You might find one you like among the themes we already have installed. I didn’t. But you can find more than 200 themes for IceWM here on the Freshmeat site.

To add a theme from this site to IceWM, just create a folder in your .icewm folder and name it themes. Then download the new theme into that folder and extract it from the archive.

Maybe you’ll find a theme you like so well that you won’t want to alter it. What I found was a bunch of really hideous themes, a few very good themes that just didn’t strike my fancy, and a few good-looking themes that I might like if I could change them around a bit. I’m not going to tell you which ones I thought were hideous, because those will probably be just the ones you like, and then we’ll both be embarrassed. But I will tell you that one of the ones I liked was called “Milked Expresso.” I downloaded it and extracted it in the themes folder I made, and here it is.

This is a vaguely Mac-like theme without colored buttons. I like the window decorations; I don’t like the background, and I don’t understand the order of the buttons. The button at top left isn’t a menu button, as it is in almost every Gnome, KDE, XFCE, or IceWM theme that doesn’t put the buttons in Mac order. It’s the rollup button: a button that makes the window appear to roll up, leaving only the title bar on screen, like the Cheshire Cat’s smile. (Not every theme uses a rollup button, but I find it useful.) The menu button is on the right, fourth from the end, where it just looks silly.

That’s just my opinion, of course. Obviously the person who created this theme has a lot more artistic talent than I have: otherwise he’d be stealing from me instead of vice versa. But the whole point of this exercise is to get a theme that’s exactly the way I like it.

It shouldn’t surprise you by now that the key to most of those differences in taste is a text file.

First we download and install our new theme. Installing is easy. In your .icewm folder (the one we bookmarked), create a folder called themes.

To install new themes, just extract them into a folder called "themes" in your ".icewm" folder.
To install new themes, just extract them into a folder called “themes” in your “.icewm” folder.

When you download the compressed theme, extract it into that folder. That’s all. Now, when you go to the menu and choose Settings, and then Themes, the new theme will be in the list in its proper alphabetical place.

Now, let’s make a duplicate of the theme. In the themes folder, just right-click on the Milked.Expresso folder and choose “Copy.” Now right-click on some blank space in the file window and choose “Paste.” PcmanFM will prompt you for a new file name. We’ll call it “Milked.Expresso-altered.” The “altered” version is the one we’ll work on. If we make a complete mess of it, we can revert to the original theme without having to download it again.

Now open the folder Milked-Expresso-altered. Inside it you’ll find a text file called default.theme. This file is the key to everything.

In fact, if you find a theme whose window decorations you like, but you don’t think much of the menu fonts and so forth, you can actually take the default.theme file from a theme whose menus you like and use it to replace the one in the theme whose window decorations you like. You’ll have to make a few alterations, but it gives you a huge head start.

The other alternative, of course, is to take the default.theme file I’m about to give you. This one is stuffed with explanations, and it’s designed to change the theme Milked-Expresso into something that looks rather different.

# Window Decorations ------------------------------------------------
# 1. Look.
# There are several different "looks" that govern the small details
# of the theme: gtk, metal, motif, nice, pixmap, warp3. We choose
# "metal," which is nicer than "nice."
# 2. Title Bar.
# The title bar includes the title of the window and several buttons
# that control the window. You get to decide which buttons will
# appear in your theme.
# The height of the title bar (in pixels) must be the same as
# the height of the .xpm images whose names begin with "title."
# An easy way to check is to open, say, "titleAB.xpm" in the GIMP,
# which will tell you the height in pixels.
# These three lines control which buttons will appear and in what order.
#     x = Close
#     m = Maximize
#     i = Minimize
#     r = Rollup
#     s = Menu
# TitleButtonsRight specifies the order of the buttons at the top right of
# the window, starting at the far right and going from RIGHT to LEFT. In
# the same way, TitleButtonsLeft specifies the order of the buttons at the
# top left, starting at the far left and going from LEFT to RIGHT.
# TitleBarJustify controls where the title text will appear in the title
# bar. The far left is 0; 50 is the middle; our choice of 2 leaves a bit of
# space between the menu button and the title.
BorderSizeX=3                  # [0-128]
BorderSizeY=3                  # [0-128]
TitleBarRollupButton=1         # [0-5] Double-click left button to roll up
TitleBarMaximizeButton=2       # [0-5] Double-click middle button to maximize
# Desktop Background -------------------------------------------------
# Specify an image file here. Keep the image in the theme's folder. To
# change the background, put another image in the theme folder and
# specify that image here.
# DesktopBackgroundColor=""
# The theme doesn't use a DesktopBackgroundColor, because it uses an
# image for a background.
# Colors -------------------------------------------------------------
# You can find a good chart of X11 color names at Wikipedia:
# The names of the color specs are mostly self-explanatory.
# Font Specifications --------------------------------------------
# You can experiment with different fonts installed on your system.
# Not all of them will work or work well. For our theme, we fly
# in the face of conventional wisdom and choose a serif font
# for most text. The names of the specs are mostly self-explanatory.
TitleFontNameXft		=	serif:size=9:italic
MenuFontNameXft			=	serif:size=9
MinimizedWindowFontNameXft	=	serif:size=9
ActiveButtonFontNameXft		=	serif:size=10:bold
NormalButtonFontNameXft		=	serif:size=9
ToolButtonFontNameXft		=	serif:size=9
NormalWorkspaceFontNameXft	=	serif:size=9
ActiveWorkspaceFontNameXft	=	serif:size=9
QuickSwitchFontNameXft		=	serif:size=9
ListBoxFontNameXft		=	serif:size=9
StatusFontNameXft		=	serif:size=9
ToolTipFontNameXft		=	serif:size=9
ActiveTaskBarFontNameXft	=	serif:size=9:italic
NormalTaskBarFontNameXft	=	serif:size=9
ClockFontNameXft		=	serif:size=11
InputFontNameXft		=	serif:size=9
# Taskbar Clock -------------------------------------------------
# I hate fake LED clocks, so I turn off the LED option with this line:

With this text file, we’ve changed the look of the theme considerably. We have a different background image (I picked a sepia picture of clouds, but you can substitute any picture you like), the fonts are different, the rollup and menu buttons have changed places, inactive title bars are easier to distinguish from active ones, and the clock is in normal text instead of fake LED numbers.

we've done all we can with the text file.
Halfway there: we’ve done all we can with the text file.

There are still some alterations I’d like to make. I want the rollup button to be the same shape as the other three buttons on the right. I want to get rid of that now-useless image in the toolbar. I want a different menu button. For all these things, we’re actually going to have to deal with graphics files.

But we’re not going to have to do any real drawing. As usual, we’ll accomplish most of what we want to do by cheating.

Written by cbaile19

August 13, 2008 at 7:48 pm

Posted in DBCOS, Xubuntu

Transforming Xubuntu into DBCOS

leave a comment »

Part 5: Good Software for Slow Computers

Before we make up a new theme for our IceWM system, I thought it would be a good idea to install some of the alternate software that will make Dr. Boli’s Celebrated Operating System suitable for even old and crusty computers like my testing system.

Xubuntu’s mix of software is safe and familiar, and you don’t have to install anything else. But some of the programs that come with Xubuntu are heavy and slow on older computers. You may have to give up a few features to replace them with faster programs, but you may find that the speed is worth the minor sacrifices.

First, I’m going to add This is a counterintuitive choice, since is huge and bloated by Linux standards. But my experience has been that, once it gets started (which I admit takes a while on an old computer), runs well even on anemic hardware. It’s a bit complicated to install the whole thing: see this article for step-by-step instructions.

Next, the Web browser. Firefox is still my favorite, but it can be big and slow. Kazehakase, a Japanese Web browser, uses the same Gecko rendering engine as Firefox, so Web pages look the same. But it’s a blazing speed demon. Its features are minimal, but for ordinary Web browsing they’re good enough, and you might really appreciate a Web browser that’s ready to go almost instantly even on an ancient computer like mine. Install the package kazehakase in Synaptic Package Manager.

Thunderbird, like Firefox, is full of features but heavy and slow. For email, I’m going to install Claws Mail, which is fast and easy to use. Claws Mail doesn’t send messages in HTML, so you won’t like it if you’re used to writing messages full of italics and formatting tricks. But most people just write text, and for them Claws Mail is perfect. Install the package claws-mail in Synaptic Package Manager.

The image viewer Ristretto, which comes with Xubnuntu, annoys me. It has to load thumbnails of all the images in the folder before you see the image you’ve tried to open with it. That can take a long time if the folder is, for example, the entire contents of a camera card. I’m going to replace it with GPicView, which is simple enough to be fast but complicated enough to do most of what you want from an image viewer. Install the package gpicview in Synaptic Package Manager.

We’ve already replaced the file manager Thunar with PCmanFM, which is faster. PCmanFM also has some useful features, like tabbed browsing, that you can’t get from Thunar. It even has the ability to manage the desktop, which we might find useful later on. Because the version of PCmanFM in the Ubuntu repositories had a crippling bug, we installed a later version from

Finally, if you don’t have it already, you should consider installing the VLC media player. It’s simple but incredibly versatile, and when you explore it you’ll be amazed by the depth of features. Install the package vlc in Synaptic Package Manager.

By the way, if you used the sample menu and toolbar file I gave you, when you restart IceWM all our newly installed applications will appear in their proper places. If you made your own menu, you already know how easy it is to add new applications to it.

Those are just a few quick additions, but we’ve actually changed all the major programs we’ll get real work done with. With the arguable exception of, all our new choices are much faster than the programs that came with Xubuntu. (I say is arguable because the Abiword word processor always slows to a crawl when I try to feed it a book-length document, which makes it useless for someone who makes his living writing books.) With these new choices, we’ll have a system that makes old computers feel young again and saves the environment by keeping tons of plastic and silicon out of the landfills. No need to thank me: that’s what I’m here for.

Written by cbaile19

August 8, 2008 at 12:49 pm

Transforming Xubuntu into DBCOS

with 3 comments

Part 3: Editing the IceWM Menu

We’ve installed the Ice Window Manager or IceWM, and we’ve made it start up with the GTK theme we chose (and in my case with the Network Manager applet so that I can connect to wireless).

Now it’s time to attack that mostly useless IceWM menu. By the time we’re through with it, we’ll have a menu that’s as useful and well-designed as any XFCE, KDE, or Gnome menu, and we’ll have done it by editing a text file.

Please don’t run away screaming. I hate editing configuration files as much as you do, but this one is really easy.

Part of what makes it easy is that IceWM is very tolerant of mistakes. If it comes across something it doesn’t understand in a configuration file, it doesn’t give you an error message and freeze. It just skips what it doesn’t understand and goes on to the next thing it does understand. For a mid-Clintonian window manager, it’s actually pretty smart.

So, for example, we can stuff our menu with programs that we haven’t even installed yet. If IceWM doesn’t find a program where it should be in your computer, it simply skips it and won’t put it in the menu. Later, when you do install that program, it will appear in the menu the next time you start IceWM.

The menu is controlled by a text file called menu that will live in your .icewm folder—the folder we bookmarked. There’s a master menu file in /etc/X11/icewm, but any menu file you create will override it.

To add a program to the menu, all you have to do is add a line to the text file like this:

prog Blah blah blah

Or, to explain it in more detail,

prog “Name of Program as You Want It to Appear in the Menu” icon-filename program-command

Often the name of the program, the name of the icon, and the program command are the same. So, for example, to add Mousepad to the menu, we can add a line like this:

prog Mousepad mousepad mousepad

Sometimes the icon doesn’t have the same name as the program, and sometimes you might not want to use the icon that comes with the program. For those cases, it’s useful to know where the icons live. There are two good folders to know:




The pixmaps folder has icons for most of the programs installed on your computer. Unless you specify a path, IceWM looks for an icon in the pixmaps folder. The icons folder has more general icons for system functions and the like; there’s a separate folder of icons for each icon theme you have installed.

If the icon you’ve named doesn’t exist, IceWM just won’t put an icon next to that item in the menu. Everything else will still work.

Now, I could go on and on to explain how the menu works, but I think it’s much easier to learn by example. So I’m giving you Dr. Boli’s Celebrated Menu File, the menu that goes with Dr. Boli’s Celebrated Operating System. I’ve stuffed it full of explanatory notes. Feel free to copy the menu into a text file and save it as “menu” in your .icewm folder.

# The master menu lives in /etc/X11/icewm.
# A menu file in $HOME/.icewm will override it.
# Thus it's easy to have a customized menu for each user
# by creating a folder called .icewm in each user's
# home folder and placing the user's menu file there.
# Lines that begin with a pound sign are comments
# and will not be part of the menu.
# This example menu file is designed to be well organized,
# while still keeping every common program only two clicks
# away from the menu button.
# To add a program to the menu, just add a line like this:
# prog "Name of Program as You Want It to Appear in the Menu" icon-filename program-command
# Unless you specify a path, IceWM looks for icons in /usr/share/pixmaps.
# Often these icons bear the same name as the programs they represent,
# so a typical menu entry might look like this:
# prog Mousepad mousepad mousepad
# Note that quotation marks aren't necessary if the name of the program is
# only one word, and that you need not include the extension of the
# icon filename.
# Other icons may be found in /usr/share/icons.
# If a program isn't found on your system, it simply won't appear
# in the menu.
# My menu begins with an item that launches an "About" page:

prog "About DBCOS" /home/christopher/Pictures/boli-icon-26.png kazehakase

# To add a rule, simply add the word "separator" (note that the dashes after
# the pound sign have no effect; they simply make it more obvious to me where
# I've put a separator in this file):

separator #---------------------------------------------------------
separator #---------------------------------------------------------

# The programs I use most often go here at the top of the menu:

prog "File Manager" /usr/share/icons/gnome/16x16/places/gnome-fs-home.png pcmanfm
prog "Web Browser" /usr/share/pixmaps/kaze_icon.xpm kazehakase
prog "" /usr/share/icons/gnome/16x16/apps/openofficeorg24-writer.png ooffice

separator #---------------------------------------------------------
separator #---------------------------------------------------------

# Now we add a submenu. A brief glance at the following example should be enough
# explanation. Don't forget the opening and closing brackets.

menu "Desk Accessories" folder {
    prog "PCman File Manager" /usr/share/pcmanfm/icons/folder.png pcmanfm
    prog "Thunar File Manager" /usr/share/pixmaps/Thunar/Thunar-fallback-icon.png thunar
    prog "XFE File Manager" xfe xfe
    separator #-------------------------------------------------
    prog Calculator gcalctool xcalc
    prog "Character Map" /usr/share/icons/gnome/16x16/apps/gucharmap.png gucharmap
    prog gcalctool gcalctool gcalctool
    prog Magnify /usr/share/icons/gnome/16x16/actions/viewmag+.png xmag
    prog Mousepad mousepad mousepad
    prog "Network Applet" /usr/share/icons/gnome/16x16/categories/preferences-system-network.png nm-applet
    prog "Screenshot in 5 Seconds" login-photo scrot -d 5
    prog Terminal xterm x-terminal-emulator -ls
    prog xterm xterm xterm -ls

separator #---------------------------------------------------------

prog "Package Manager" /usr/share/synaptic/pixmaps/synaptic_32x32.xpm /bin/sh -c "/usr/bin/gksu /usr/sbin/synaptic"

# ------------------------------------------------------------------
# The Games menu, which includes the games that come with Xubuntu,
# is divided into submenus because there are so many games.
# I haven't changed the default menu in this section.
# ------------------------------------------------------------------

menu "Games" folder {
    menu "Action" folder {
        prog    "Gnibbles" /usr/share/pixmaps/gnibbles.xpm /bin/sh -c "/usr/games/gnibbles"
    menu "Blocks" folder {
         prog    "Gnometris" /usr/share/pixmaps/gnometris.xpm /bin/sh -c "/usr/games/gnometris"
    menu "Board" folder {
        prog    "Four-in-a-row" /usr/share/pixmaps/gnect.xpm /bin/sh -c "/usr/games/gnect"
        prog    "GL Chess" /usr/share/pixmaps/glchess.xpm /bin/sh -c "/usr/games/glchess"
        prog    "Gnome GYahtzee" /usr/share/pixmaps/gtali.xpm /bin/sh -c "/usr/games/gtali"
        prog    "Gnome Iagno" /usr/share/pixmaps/iagno.xpm /bin/sh -c "/usr/games/iagno"
        prog    "Gnome Lines" /usr/share/pixmaps/glines.xpm /bin/sh -c "/usr/games/glines"
        prog    "Gnome Mahjongg" /usr/share/pixmaps/gnome-mahjongg.xpm /bin/sh -c "/usr/games/mahjongg"
    menu "Card" folder {
        prog    "Gnome Blackjack" /usr/share/pixmaps/blackjack.xpm /bin/sh -c "/usr/games/blackjack"
        prog    "Gnome FreeCell" /usr/share/pixmaps/freecell.xpm /bin/sh -c "/usr/games/sol --variation freecell"
        prog    "Gnome Solitaire Games" /usr/share/pixmaps/aisleriot.xpm /bin/sh -c "/usr/games/sol"
    menu "Puzzles" folder {
        prog    "Gnome Klotski" /usr/share/pixmaps/gnotski.xpm /bin/sh -c "/usr/games/gnotski"
        prog    "Gnome Robots" /usr/share/p/usr/share/icons/gnome/16x16/appsixmaps/gnobots2.xpm /bin/sh -c "/usr/games/gnobots2"
        prog    "Gnome Sudoku" /usr/share/pixmaps/gnome-sudoku.xpm /bin/sh -c "/usr/games/gnome-sudoku"
        prog    "Gnome Tetravex" /usr/share/pixmaps/gnotravex.xpm /bin/sh -c "/usr/games/gnotravex"
        prog    "Gnomine" /usr/share/pixmaps/gnomine.xpm /bin/sh -c "/usr/games/gnomine"
        prog    "Same Gnome" /usr/share/pixmaps/gsame.xpm /bin/sh -c "/usr/games/same-gnome"
    menu "Toys" folder {
        prog    "Oclock" - /bin/sh -c "oclock"
        prog    "Xclock (analog)" - /bin/sh -c "xclock -analog"
        prog    "Xclock (digital)" - /bin/sh -c "xclock -digital -update 1"
        prog    "Xeyes" - /bin/sh -c "xeyes"
        prog    "Xlogo" - /bin/sh -c "xlogo"
# ------------------------------------------------------------------------

menu Graphics folder {
    prog Fontforge /usr/share/icons/gnome/16x16/actions/format-text-italic.png fontforge
    prog Gimp gimp gimp
    prog GPicView gpicview gpicview
    prog GQview gqview gqview
    prog Inkscape inkscape inkscape
    prog "OpenOffice Draw" /usr/share/icons/gnome/16x16/apps/openofficeorg24-draw.png oodraw
    prog Pencil pencil pencil
    prog "Ristretto Image Viewer" ristretto ristretto

menu "Internet" folder {
    prog Claws-mail claws-mail claws-mail
    prog Thunderbird thunderbird thunderbird
    separator #------------------------------------------------------
    prog Dillo /usr/share/icons/gnome/16x16/stock/net/stock_internet.png dillo
    prog Epiphany /usr/share/icons/gnome/16x16/stock/net/stock_internet.png epiphany
    prog Firefox /usr/share/pixmaps/firefox-3.0.png firefox
    prog Galeon galeon galeon
    prog Kazehakase /usr/share/pixmaps/kaze_icon.xpm kazehakase
    prog Konqueror konqueror konqueror
    prog Midori /usr/share/icons/gnome/16x16/stock/net/stock_internet.png midori
    prog Netsurf netsurf netsurf
    prog Opera opera opera
    separator #------------------------------------------------------
    prog Transmission transmission transmission

menu "Office" folder {
    prog AbiWord abiword abiword
    prog "Gnumeric Spreadsheet" gnome-gnumeric.png gnumeric
    prog "" /usr/share/icons/gnome/16x16/apps/openofficeorg24-writer.png ooffice

menu "Sound & Video" folder {
    prog "Volume Control" /usr/share/icons/gnome/16x16/apps/volume-knob.png gamix
    separator #-------------------------------------------------
    prog Totem totem totem
    prog VLC vlc vlc
    separator #-------------------------------------------------
    prog "Denemo Score Editor" denemo denemo
    prog "NtEd Score Editor" nted nted
    prog "Burn CD" /usr/share/icons/gnome/16x16/devices/media-optical.png brasero

separator #---------------------------------------------------------

menu System folder {
    prog "Shut Down Misbehaving Program" /usr/share/icons/gnome/16x16/actions/gtk-close.png xkill
    separator #-------------------------------------------------
    prog "Burn CD" /usr/share/icons/gnome/16x16/devices/media-optical.png brasero
    prog "Check for Updates" update-manager update-manager
    prog "Xfce Application Finder" /usr/share/pixmaps/xfce4-appfinder.xpm /bin/sh -c "xfce4-appfinder"
    separator #-------------------------------------------------
    menu "Window Managers" folder {
        restart "FluxBox" - /bin/sh -c "/usr/bin/startfluxbox"
        restart "IceWM" /usr/share/icewm/icons/icewm_16x16.xpm /bin/sh -c "/usr/bin/icewm"
menu Utilities folder {
    menu Multimedia folder {
            prog XPlayCD xplaycd xplaycd
            prog XMixer xmixer xmixer
    prog "Font Selector" xfontsel xfontsel
    prog Clock xclock xclock
    prog Magnify xmag xmag
    prog Calculator xcalc xcalc
    prog Colormap xcolormap xcmap
    prog Clipboard xclip xclipboard
    prog "Screen Saver" xlock xlock -nolock
    prog "Screen Lock" xlock xlock
# The items that appear below here are controlled by your
# "preferences" file. I recommend ShowProgramsMenu=0 to
# turn off the "Programs" menu once you've set up your
# menu file the way you like it.

Once you’ve put this menu in your .icewm folder, your menu will look something like this:

Although we’ve put nine different Web browsers in our menu, the only one we have installed is Firefox, so that’s the only one that appears in the menu. Pretty smart, huh?

Now we have an installation of IceWM that’s actually useful. The menu can launch any of the programs we’re likely to use. But we can still make our system a lot more useful. In the next installment, we’ll make a toolbar that’s actually helpful, and after that we’ll look into the preferences file.

Correction: In an earlier version of this article, I told you to make the menu file executable. Actually, you don’t have to do that. The startup file needs to be executable, but the menu will work even if it’s not executable. No harm done if you did make it executable, but it’s not necessary.

Written by cbaile19

August 5, 2008 at 10:47 pm

Transforming Xubuntu into DBCOS

with 2 comments

Part 2: Making IceWM Work Right

We’ve got IceWM installed as the alternate window manager for our Xubuntu system. Now we have to make it work.

The problem with IceWM the way it comes from the Ubuntu repositories is that it’s minimally usable. The menu doesn’t have most of our programs in it, and the default theme is not only ugly but broken.

Take a look at the window buttons. They change into something unrecognizable if you hover over them. It took me a long time to figure out that the window buttons were actually somehow picking up a snapshot of the system-status graph in the toolbar at the bottom of the screen. How? I have no idea. It’s just weird. But I’ve had the same problem on two different computers with two different installations of IceWM in Xubuntu, so it’s not just one odd computer.

Firefox running in IceWM with the default theme. Look at the buttons in the upper right corner of the window,
Firefox running in IceWM with the default theme. Look at the buttons in the upper right corner of the window.

Luckily, the default theme is the only one that has this problem, and we were smart enough to install a package of alternate themes when we installed IceWM. To set a new theme, all you have to do is bring up the menu (press the “debian” button or right-click anywhere on the desktop), then choose “Settings,” then “Themes.” The themes are listed alphabetically, grouped by letter if there’s more than one beginning with that letter.

A quick tour through the themes reveals that most of them are ugly and amateurish. I’m going to pick one called “iceCrack2,” because it’s straightforward and usable and not as ugly as most of the rest.

Choosing a new theme for IceWM. We have a large selection, so pick the one you like best. I promise not to question you taste.
Choosing a new theme for IceWM. We have a large selection, so pick the one you like best. I promise not to question your taste.

Now we’ve solved the problem of the window buttons. All we’ve changed, however, is the window decorations and the IceWM toolbar and menu. The rest of the theme–program icons, toolbars, and menus–is the same ugly mid-90s style.

It’s possible to make IceWM take on any GTK theme–that is, any of the settings you can choose in the “User Interface” setting in Xubuntu. In order to do that, though, we’re going to have to edit a text file.

But don’t be alarmed. It’s a really easy text file. Mine has two lines in it.

First, we’re going to bring up our file manager. Because we haven’t changed the menu yet, the only practical way to do that is to use a command line.

IceWM has a secret trick for getting an instant command line. Hold down the Windows key on your keyboard (the one that, for odd historical reasons, has a Microsoft Windows logo on it) and press the space bar. Now you can type a command right into the toolbar at the bottom of the screen. Our command is only seven letters:


To get a command line, hold down the Windows key and press the space bar.

To get a command line, hold down the Windows key and press the space bar.

When you press Enter, the PCmanFM file manager should start. It’s very quick, which is one of the reasons we’re using it instead of Thunar.

The first thing you’re likely to see is this warning:

Tons of useful information here if you know how to interpret it.
Tons of useful information here if you know how to interpret it.

This screen is actually stuffed with useful information. It tells us at least two ways we can get IceWM to recognize the User Interface setting we want it to use.

One way would be to make a text file specifying the theme. That works perfectly well, but you can’t change your mind without editing the text file again.

The other way is much more versatile. XFCE uses a program called xfce-mcs-manager to control the user interface. If we could have xfce-mcs-manager running when we started IceWM, it would set the User Interface theme for us. And it would not only pick the theme, but also pick up any alterations we wanted to make to it, such as fonts or colors.

But how do we make something happen when IceWM starts up? That’s easy. All we need is a startup file.

Push the OK button on the warning screen. You’ll notice that PCmanFM starts up perfectly fine, in spite of the warning.

In spite of the warning, PCmanFM starts just fine.
In spite of the warning, PCmanFM starts just fine.

From the View menu, choose “Show Hidden Files.”

"Show Hidden Files" reveals a bunch of folders whose names begin with periods.
“Show Hidden Files” reveals a bunch of folders whose names begin with periods.

You’ll see a whole bunch of folders whose names begin with dots, which is what makes them hidden. Look for one called .icewm. If it isn’t there, create it.

Now we need a text editor to create our startup file. I choose Mousepad, which comes with Xubuntu. Hold down the Windows key and press the spacebar to get a command line; then type mousepad and press Enter.

In the text editor, type

xfce-mcs-manager &

While we’re in the startup file, I’m going to add one more line. My only Internet connection is by wireless, so I need the Network Manager applet to start when I start the computer–otherwise, it won’t connect to the network. So my startup file has one more line:

nm-applet &

(I should mention, by the way, that the Network Manager applet doesn’t run perfectly under IceWM: after a while, it tends to disappear from the toolbar. But by then it’s done its job, and the wireless stays connected, so it’s not really a problem.)

Later, if we like, we can add more programs to run at startup, but that’s enough for now. Save this file under the name startup in your .icewm folder.

We’re almost done creating the startup file, but we have to make sure it’s executable first. Open the icewm folder in PCmanFM. While you’re here, you might as well bookmark it, because we’ll be coming back here again and again. From the “Bookmark” menu, choose “Add to Bookmarks.” Now the .icewm folder will appear in the left panel of the file manager, and you can choose it from there even when “Show Hidden Files” is turned off.

Right-click on the startup file and choose “Properties”; then choose the “Permissions” tab. Make sure that the “owner” (that’s you) has permission to “Execute” the file; otherwise, it won’t do anything when you start up.

Make sure the "Execute" box is checked at least for "Owner."
Make sure the “Execute” box is checked at least for “Owner.”

Now that we’ve created a startup file, we can log out (choose “Logout” from the main IceWM menu) and log back in, choosing XFCE from the Session menu. We’re back in the regular Xubuntu desktop for the time being. From the “Applications” menu, choose “Settings,” then “Settings Manager,” and then click on “User Interface Settings.” Now you can choose any theme you like and tweak it the way you want. When you log back into IceWM, that theme, with all your tweaks, will be the one your programs use.

We’ve begun the process of making IceWM really usable. But there’s still one more important step before it’s really useful. The next thing we have to do is attack the IceWM menu.

Written by cbaile19

August 3, 2008 at 12:34 pm

Transforming Xubuntu into DBCOS

with 2 comments

Part 1: Installing a New Window Manager

I promised to lead us through the transformation of Xubuntu into something completely different, so let’s get started. By the time we’re done, we’ll have Dr. Boli’s Celebrated Operating System, a Linux operating system with many of the advantages of Xubuntu, but one that runs much faster on old hardware.

You heard me right–we’re going to run circles around Xubuntu, which is supposed to be the fast and lightweight version of Ubuntu.

Our secret weapon is IceWM, a window manager that was conceived as a competitor to Windows 95 and hasn’t really changed much since its mid-Clintonian roots.

IceWM is fast and simple, but–unlike other minimalist window managers, such as PekWM or Fluxbox–it has the great advantage of working the way most Windows and Linux users expect a computer to work.

The great disadvantage of IceWM is that it’s ugly. You can get a package of alternate themes for it from the Ubuntu repositories, but almost all of them are in the ugly to hideous range, too.

But not to worry! We’re going to fix it by making up our own theme. That’s right! You and I, who are not computer programmers and have no idea how to write code, are going to create a new theme for IceWM.

Assuming we have Xubuntu installed, our first step will be to install IceWM, which isn’t hard. All we have to do is start up Synaptic Package Manager (Applications, System, Synaptic Package Manager) and search by name for “icewm”:

Mark the “icewm” package, which will also mark the package “icewm-common.” While you’re at it, mark the package “icewm-themes,” because we’ll need something besides the default theme. Push the “Apply” button to install everything.

Marking IceWM and some extra themes for installation.
Marking IceWM and some extra themes for installation.

That’s it–you’ve installed IceWM. But before you try it out, there’s one more thing we want to install. We’re going to use PCmanFM as our file manager instead of Thunar.

You could install PCmanFM from Synaptic, but the version that’s in the Ubuntu repositories as of this writing has a crippling bug: it can’t properly mount external disks. To get the latest version, we go to a useful site every Ubuntu user ought to know about:

Search for “pcmanfm” and download the latest version to your hard drive. When the file is downloaded, open it. It will start up an installation program, which will promptly warn you that you really ought to install the older version that’s available in the Ubuntu repositories.

Ignore this warning. Not that you should be in the habit of ignoring warnings, but ignore this one.
Ignore this warning. Not that you should be in the habit of ignoring warnings, but ignore this one.

Ignore the warning, because–as we know–we need the later version. Once you push the “Install Package” button, the program is installed automatically, just as it would be with Synaptic.

Now we’re ready to try IceWM. Push the exit button at the top right of your screen and log out. At the login screen, you can choose IceWM from the “Session” menu. Once you’ve logged back in, you’ll see something like this:

You can get the same menu by right-clicking anywhere on the desktop.
You can get the same menu by right-clicking anywhere on the desktop.

Ugly, isn’t it? And that menu is just about useless. It has hardly any of your applications in it. It’s just a sort of dummy menu, waiting to be replaced by the useful menu we’ll construct shortly.

Well, now what? You can try playing around with the interface to see how it works. But it’s not very useful yet. Don’t worry: it won’t be so sparse and difficult for long. We’ll have it working just the way we want it in a few more installments.

Next: Making IceWM Work Right.

Written by cbaile19

August 2, 2008 at 12:59 pm