IceWM — a desktop for Windows emigrants

[ Thursday, 5 April 2007, adz ]

In my debut article on I’d like to introduce you to one of my favorite window managers — IceWM. This unusually lightweight window manager has been created in C++ by Marko Maček. The first version was released on 26 Dec. 1999. The latest stable one (IceWM v.1.2.30) appeared on 24 Dec. 2006

You are probably wondering what is so special about this window manager when compared to other lightweight managers.

  1. IceWM is a light WM. It means that it doesn’t take too much RAM and doesn’t need a very fast CPU. There is also an even lighter version of IceWM called IceWM-lite. It doesn’t have all the features of the “normal” version but is perfect for slower CPUs (<200MHz) or even for network terminals.
  2. It’s simple and comfortable. Developers say it “does not get in the user’s way”. IceWM tries to be as transparent as possible for users. It’s simple to configure by editing configuration files in your Home directory or, even easier, by using GUI programs. You can define your own shortcuts. It integrates perfectly with GNOME and KDE applications.
  3. IceWM uses a taskbar similar to the one in MS Windows (which can be useful for migrating users). The taskbar consists of a menu button, application launchers, currently open apps, small applets (CPU, RAM, Net, Email), system tray and clock. There is also a built-in terminal emulator which can be run by pressing “Win”+Spacebar.
  4. It can be pretty. The default skins aren’t that nice but don’t worry, there are a lot of skins on the Internet. You can download skins that look like other OSes, eg. Win95, Vista, OS2, MacOS.
  5. IceWM is a grown-up project (it exists since 1999) implemented by professional programmers. It has never crashed on me.

Despite all these good things IceWM has some defects (not the program itself):

  1. slow project development – it is because there are relatively few users and a small developer community
  2. lack of official graphical configuration tools


If you have already decided on IceWM, you have to get it from somewhere. Appropriate packages are in the repositories of every popular Linux distribution and even in BSD ports. For enthusiasts, the Solaris version is available too.

You can install IceWM from the source code (I suggest that option for experienced users that want to customize it). The sources can be downloaded from IceWM Home Page. You install it just like any other source code program: ./configure && make && make install as root. Now it’s time to configure it. Here are some config options which you can pass to configure. For the full list of these options run configure --help:

  • --enable-antialiasing enables smooth fonts,
  • --enable-gradients enables gradient support for skins,
  • --enable-lite it is for light version (icewm-lite),
  • --enable-menus-gnome2 adds the GNOME menu support.

If you used the GDM or KDM session menu to install IceWM, there have to be an option that enables IceWM. If you have compiled it from sources you have to create the config file in /usr/share/xsessions.

Example of that config file:

[Desktop Entry]
# no icon yet, only the top three are currently used

If you start Xserver using startx, you are obligated to add to .xsession this line:

exec icewm-session

Graphical configuration tools

There are some tools that simplify configuration.

IceMe to edit the menu and shortcuts.

Img. 1 IceMe

IcePref – use it to configure appearance and behavior of IceWM, you can run it from IceMe.

Img. 2 IcePref

Iceconf – useful for configuring windows’ behavior.

Img. 3 Iceconf

IceMc Simple menu editor

Img. 4 IceMc

Unfortunately these graphical tools aren’t perfect. You can’t configure everything using them so editing config files is still necessary.

Config files

You can find all config files in your home directory in the hidden subdirectory .icewm.

File Use
menu menu configuration
toolbar quick-run buttons configuration
keys shortcuts configuration
winoptions windows’ behavior configuration
startup start-up programs configuration
preferences main options configuration


The Syntax of this config file is very simple:
prog Program Icon app -with -options, where:

  • prog — is a keyword, telling IceWM that it’s a program entry.
  • separator — to draw a separator, and
  • menu Xyz folder_icon { prog ... } — to open a new sub menu called Xyz.
  • Program — is the name which will be shown in the menu. Enclose it in apostrophes if you need more than one word here.
  • Icon — will be used as the menu entry’s icon, if a corresponding image is found in IceWM’s IconSearchPath.
  • And finally app -with -options — is what’s going to be started if a user chooses this entry.

Here is an example which shows how to make a menu for Firefox:
prog Firefox /usr/share/pixmaps/firefox.png firefox


It uses the same format as the the menu file. You cannot create a submenu there. The easiest way to do that is simply by copying a menu from the /menu file over to the /toolbar file.


IceWM is well known for good keyboard shortcuts. Use >keys to create a new shortcut: key [key combination] [app -with -options]


Here you define a window’s behavior. This file has the following syntax: value

You can find the full list of properties and values on Window Options.

For example: xmms.workspace: 3 — makes xmms always run in workspace no. 3


Next are the scripts or commands that are executed by icewm-session on startup.
In my case the file looks like this:

conky -a top_right&
rox -p Default&

It starts two apps: system monitor CONKY and file manager ROX.


This config file is the most important. There are a lot of different options which are listed in the manual available on this website.


There are many user-made skins available on the Internet. You have to unpack the downloaded file with a skin in ~/.icewm/themes. I will show you some of them below:

IceWM Thin Black theme
Img. 5 Thin Black theme

IceWM Vistablues theme
Img. 6 Vistablues theme

Icebuntu theme
Img. 7 Icebuntu theme

Desktop’s icons

IceWM is only the window manager, it can’t display icons on the desktop. It’s not something to worry about. There are some tricks to make it work.

Preference menu
Img. 8 Pcmanfm – preference menu

You can use Rox (rox -p Default) or a separate program like idesk which isn’t a part of IceWM. I recommend PCMan File Manager. It’s created in GTK+ and is the only program of its type.

It enables opening windows in tabs and displaying icons on the desktop. The last option is implicitly disabled. To enable it: Option Menu -> Preferences -> (tab)Desktop -> (option) “Show Icons”. You may choose a a background color or a wallpaper there too.

IceWM with running Pcmanfm
Img. 9 IceWM with running Pcmanfm


IceWM is perfect for Windows’s “emigrants” especially for users with older computers. IceWM will be suitable for advanced users who are looking for a lightweight and simple window manager.


About the Author

Adam Zielinski

New AdTaily ads!

Are you a film buff?

film buffs community, movie recommendations and reviews

RSS: Comments

You can follow the comments to this article through a special channel RSS 2.0 .

Related articles: Window managers

 more »

PolishLinux Top Content

Become our fan on Facebook! on Facebook

Follow PolishLinux on Twitter!

Follow polishlinux on Twitter

Google Ads