Gentoo Wiki


Desktop environments

Lightweight desktop environments

Window managers

Compositing window managers


Simple IceWM screenshot
Simple IceWM screenshot


What is IceWM?

IceWM is a very light and highly configurable window manager for the X Window System.
IceWM Homepage:

USE Flags

esdAdds support for the Enlightened sound daemon
gnomeAdds support for Gnome applications
nlsSupport for native languages (recommended)
truetypeAdds support for TrueType fonts (recommended)
xineramaAdds support for multiple monitors


To install IceWM simply emerge it using Portage:

# emerge icewm

Alternative 1 — Using a display manager

Use this method if you want X started on boot and present you a login window to initiate your IceWM session. You may use any display manager you wish. Here we assume xdm to be the display manager of choice:

# emerge --noreplace xdm

Once xdm is properly installed in your system, it needs to be configured to run an IceWM session. You can either set it up globally by editing the /etc/rc.conf file and adding/changing the XSESSION environment variable to icewm-session:


Or set it up on a per-user basis by creating a file named .xsession in your user's home directory with the following contents:

File: ~/.xsession
exec icewm-session

Icewm-session will run, apart from icewm itself, icewmbg (desktop background control) and icewmtray (docklet support) applications. Note that these may need to be emerged separately in addition to the main IceWM distribution.

Alternative 2 — Using startx

Use this method if you intend to start X and initiate your IceWM session manually by using the startx script. All you need to do is create or modify a file named .xinitrc in your user's home directory and put the following line (to the bottom of the file in case it had other contents):

File: ~/.xinitrc
exec icewm-session


IceWM stores its user-wise configuration files in the .icewm directory in the user's home directory. It does not exist by default, so you would normally start from modifying a default configuration:

$ mkdir ~/.icewm
$ cp -R /usr/share/icewm/* ~/.icewm

NOTE: The above is only necessary if you wish to customize each file in the .icewm directory. It may also cause problems when certain default files get updated in /usr/share/icewm (this usually happens when a theme gets updated).

The above will also prevent you from receiving updates to your current themes as icewm will use your old /home/user/.icewm copy of the themes instead of the ones that will get updated at /usr/share/icewm/.

Icewm looks in 3 places for settings files:

{$HOME}/.icewm /etc/icewm/ (only on gentoo, for a regular icewm install it looks in /etc/X11/icewm) /usr/share/icewm

It prioritizes them in the above order. What this means is that the default settings are in /usr/share/icewm. The system wide custom settings should go in /etc/icewm (please note that the ebuild does not make this directory or copy any files there automatically). And the user's custom settings should go in {$HOME}/.icewm

Now what you usually want is a system wide customized start menu in a multiuser environment(you know what programs are on your system better than the icewm guys do). So you would

# mkdir /etc/icewm
# cp /usr/share/icewm/menu /etc/icewm
# nano /etc/icewm/menu

This way each user doesn't have a run a menu gen program or manually add all the programs to their own .icewm/menu! Each user can still over ride this by copying it to his or her HOME/.icewm dir and adjusting it there.

If you need to customize any other files copy them on file by file basis so the ones you don't need customized will fall back to the ones that get updated in /usr/share/icewm.

Of course NOW if you as a user and not an admin want to customize further (developing themes or what not)

$ mkdir ~/.icewm
$ cp -R /usr/share/icewm/* /etc/icewm/* ~/.icewm

NOTE: with the above commands you will have manually update your .icewm by copying over the new theme file whenever the themes are updated. You'll have to do this for other files too but usually only the themes change.

Additional Packages

There are a number of tools to help configure IceWM through a graphical interface, rather then editing your files manually in the ~/.icewm/ directory. Even though the GUIs help to streamline changing a lot of settings, it is recommend to view the files manually simply to see the large array of options that are available.

icewm-tools is a meta-package that installs many common administration tools. You probably don't need all of them, but running emerge -pv icewm-tools will show you which individual packages are included.
List of emergable IceWM packages in alphabetical order.

Package Name Description
x11-misc / denu A menu generation program for fluxbox, waimea, openbox, icewm, gnome and kde.
x11-misc / icebgset IceWM background editor
x11-misc / icecc IceWM Control Center (only main program, see icewm-tools for the rest)
x11-misc / icecursorscfg IceWM cursor's configurator
x11-misc / iceiconcvt IceWM icons' converter
x11-misc / iceked IceWM keys editor
x11-misc / icemc IceWM menu/toolbar editor
x11-misc / icemergeprefs IceWM private/global preferences merger
x11-misc / icerrun IceWM 'recently used programs' menu generator
x11-misc / icesndcfg IceWM sound editor.
x11-misc / icets IceWM Theme Editor
x11-misc / icewm-tools Convenience package for IceWM control center and tools
x11-misc / icewmcp A complete control panel for IceWM using gtk & python
x11-misc / icewoed IceWM winoptions editor.
x11-themes / iceicons IceWM Icons is a set of XPM 16x16, 32x32, and 48x48 XPM and PNG icons for IceWM
x11-themes / icewm-themes Collection of IceWM themes
x11-wm / icewmIce Window Manager with Themes

Other Packages you might want to emerge

Desktop File Managers

Package Name Description
gnome-base/nautilusA filemanager for the Gnome2 desktop
x11-misc/idesk Utility to put icons on the root window (Can't use this with Composite Enabled)

Tips and Tricks

Putting XMMS in the system tray

One of the great things about IceWM is that unlike KDE and Gnome, you don't need to install "applets" to have your programs run or minimize in the sytem tray. IceWM's configuration files makes it simple not only to run programs in your system tray, but also to change the icons, tell it which window to load in, individual window settings, etc.

All your per-program window settings can be found in ~/.icewm/winoptions

To have XMMS run in the sytem tray, simply add this line:

File: ~/.icewm/winoptions
xmms.tray: Exclusive

Anytime you make any changes to your IceWM settings that directly affect the main toolbar, you have to restart IceWM for the changes to take affect (the same is not true, however, if you add or edit programs in the sub-menus).

Fortunately, you can also restart IceWM without logging out. Just select "Restart IceWM" in the "Logout" menu. Open up XMMS and you should see it load in the system tray.

NOTE: There is a plugin for xmms that handles tray operations, just emerge xmms-status-plugin. You will get a nice tray icon of xmms with configurable mouse actions. Remember, only newer builds (>=1.2.10 r6) support 'minimize-to-tray' option.

Enabling "Run..."

As of IceWM 1.2.14, the default Gentoo installation does not include an option for the "Run..." command in the main menu, even if enabled in the preferences. A workaround is to use an external program to run the "Run..." commands, and modify your preferences to use that program.

A good one to use is BlackBox's bbrun, which is in portage. To install it, and avoid installing BlackBox WM, emerge the package with no dependencies:

# emerge --nodeps bbrun

Then, edit your ~/.icewm/preferences file and set bbrun up as the desired application for the "Run..." option:

File: ~/.icewm/preferences
ShowRun = 1
 RunCommand="bbrun -w"

Also, if you would like to bind a key to running the "Run" window, edit your ~/.icewm/keys file. This example uses Alt + F2 to open the run window (similar to KDE and GNOME).

File: ~/.icewm/keys
key "Alt+F2" bbrun -w

(Note: Keystroke "Ctrl+Alt+Space" turns taskbar into "one-line shell" mode, which can be used as run app)

You can also use GTK2 based gmrun.

Quick Switch Between Windows

Press Win+Esc to bring up Window List, then type the first character of the window title you want to switch to.

Useful Links

Retrieved from ""

Last modified: Sat, 06 Sep 2008 07:36:00 +0000 Hits: 46,654