Next Previous Contents

3. Installation

Now you have the IceWM source package at hand and will want to install it. So the next question will be:

3.1 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.

3.2 How to compile and install IceWM from source?

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

    cd icewm-1.2.x

IceWM comes with a configure script that can be supplied with several compile-time options. To see them listed use

    ./configure --help

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 start menu

After you have decided which (if any) options you want to set, run the configure script:

    ./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

    make install

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).

Now you have an IceWM binary sitting on your disk. Is that what you really want? Obviously not, you want to run IceWM. The next section describes how to set up IceWM as your default window manager.

3.3 How to make IceWM my default window manager?

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 .xinitrc, .xsession or .Xclients).

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 .xinitrc file.

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 xdm, kdm or gdm. In this case .xinitrc has no effect (it is not read in by xdm). You must instead use a .xsession file.

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 .xsession.

Besides the differences

You might have noticed that - besides being used in different cases - .xsession and .xinitrc are essentially the same. On some systems they are in fact the very same file which is called .Xclients with .xinitrc and .xsession both being symbolic links to this file.

Irrespective which start script you use (.xsession, .xinitrc or .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 xterm)

The following is a (reasonable) .xinitrc file used as an example by Marko:

    # .xinitrc

    # run profile to set $PATH and other env vars correctly
    . $HOME/.bash_profile

    # setup background
    xsetroot -solid '#056'

    # setup mouse acceleration
    xset m 7 2

    # run initial programs
    xterm &

    # 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 .xinitrc.

IceWM > 1.2.13

Beginning with IceWM 1.2.13 there is a binary icewm-session. This binary helps you to handle all IceWM subparts (icewmbg, icewm, icewmtray, startup, shutdown started in this order). Therefore you can use icewm-session to start IceWM. icewm now starts only window manager itself.

If you want to start only some parts of the IceWM, then you can add them to your .xsession or similar file before exec icewm, otherwise it is enough to use only exec icewm-session.

Next Previous Contents