It was coded from scratch in C++ and is released under the terms of the GNU Lesser General Public License.
It is relatively lightweight in terms of memory and CPU usage, and comes with themes that allow it to imitate the GUI of Windows 95, OS/2, Motif, and other graphical user interfaces.
IceWM is meant to excel in look and feel while being lightweight and customizable.
IceWM can be configured from plain text files stored in a user's home directory, making it easy to customize and copy settings. IceWM has an optional, built-in taskbar with menu, tasks display, network and CPU meters, mail check and configurable clock. Official support for GNOME and KDE menus was previously available as a separate package. In recent IceWM versions, support for them is embedded. External graphical programs for editing configuration and menu.
- 1.3.7pre1 released (2010-04-27 18:30)
- Slackware packages are available also on linuxpackages.net
- RPM packages you can find on ATrpms and DAG
- Fedora packages can be found in the official Fedora repository
- RHEL/CentOS packages can be found in the Fedora EPEL repository
The IceWM suite consists of the following core applications provided by the main package:
- icewm - the actual window manager binary. This is the one you need to get window decorations.
- icewmbg - the background setting applications. It can assign plain background color or images in different formats to the X background, shared or separated for different workspaces. This program should be started before IceWM startup.
- icewmtray - catches the Docklet objects installed by various applications like PSI
- icewm-session - runs all of the above when needed
- icewm-menu-gnome1 - used internaly, generates IceWM program menus from located GNOME(1) menus
- icewm-menu-gnome2 - used internaly, generates IceWM program menus from FreeDesktop .desktop files (KDE/GNOME(2) menus).
- icewmhint - used internaly
How to install IceWM from RPM.
The IceWM developers provide RPM packages for all new releases independently from the distributions which use this package format. IceWM's RPM distribution is split into several files. You need icewm-x.y.z-v.rpm. Optionaly you can download others like icewm-themes, icewm-l10n and icewm-menu-gnome.
IceWM (0.9.3x and up) uses the standard GNU autoconf tool, so installation of IceWM is much the same as the installation of any other package that uses this tool.
First you untar the package using
tar xzf icewm-1.2.x.tar.gz
then you change to the created directory using
IceWM comes with a configure script that can be supplied with several compile-time options. To see them listed use
Some important options are
directory under which IceWM files are to be installed
use the standard X pixmap package to render graphics
use the more powerful imlib package to render images
automatically add the GNOME menus to the IceWM
After you have decided which (if any) options you want to set, run the
./configure [option ...]
Assuming that the configure script exited successfully, you should then compile IceWM using
which will build IceWM with the options specified by the configure script. If everything compiles successfully, you can now install IceWM on your machine by entering
Note: To do so you will typically need to become root (at least if you didn't supply an install directory you as a user have write access to - this you can change in Makefile).
In order to run IceWM, you must assure that the executable (called
icewm) is in your path. You should then add IceWM to your X start-up script (which could be
Note: Supplying the full path to IceWM isn't sufficient - if IceWM isn't in your path, restarting it will fail (even if you don't do this by hand it is done automatically on changing the theme).
Which of the scripts mentioned above is the right one mainly depends on whether you manually start X (using
startx) or have X running all the time.
First I explain what you need to do if you manually start X. Then I address the case "X is running all the time" (which means that you log in via
xdm or something like that). Finally I describe what both cases have in common.
Running IceWM at X startup
If you use
startx to start up X then you run your window manager from the
Running IceWM after graphical login
If your system has a graphical login (X is already running while you log in) you are using a display manager such as
gdm. In this case
.xinitrc has no effect (it is not read in by
xdm). You must instead use a
Hint: It is absolutely no problem to have a
.xsession and a
.xinitrc file (which is especially useful for inhomogeneous networks).
Mandrake users repeatedly reported that their
.xsession wasn't read and no applications started. To work around that in the
kdm login interface choose
Default and add IceWM as the last entry to your
Besides the differences
You might have noticed that - besides being used in different cases -
.xinitrc are essentially the same. On some systems they are in fact the very same file which is called
.xsession both being symbolic links to this file.
Irrespective which start script you use (
.Xclients) it must be executable. This may be achieved by issuing the following command:
chmod u+x ~/.filename
A minimalist's start-up file consists of only the command to start the window manager (in our case
icewm). Most geeky people add other stuff to the file to make it look more complicated and confuse beginners >;->
Though that may be the reason for some of us, the greater majority add commands to customize X and to start some programs on login (typical example: an
The following is a (reasonable)
.xinitrc file used as an example by Marko:
# run profile to set $PATH and other env vars correctly
# setup background
xsetroot -solid '#056'
# setup mouse acceleration
xset m 7 2
# run initial programs
# start icewm, and run xterm if it crashes (just to be safe)
exec icewm || exec xterm -fg red
Note: To run IceWM, the
icewm command needs to be executed. This means that all programs that are run before starting
icewm either have to terminate immediately or to run in background. Also, don't
exec them because that terminates execution of
The latest versions of the following UDE packages are available on our SourceForge download page: