IceWM is a window manager for the X Window System. The goal of IceWM is speed, simplicity, and not getting in the user’s way. It comes with a taskbar with pager, global and per-window keybindings and a dynamic menu system. Application windows can be managed by keyboard and mouse. Windows can be iconified to the taskbar, to the tray, to the desktop or be made hidden. They are controllable by a quick switch window (Alt+Tab) and in a window list. A handful of configurable focus models are menu-selectable. Setups with multiple monitors are supported by RandR and Xinerama. IceWM is very configurable, themeable and well documented. It includes an optional external background wallpaper manager with transparency support, a simple session manager and a system tray. IceWM is available on popular Linux distributions like Debian, Ubuntu, Arch, OpenSUSE, Gentoo, Slackware, CentOS, antiX, NixOS, and also compiles on most *BSDs.
IceWM was coded from scratch in C++ by Marko Maček since 1997. It is now maintained at Github.
The latest released version is 3.3.5 (2023-05-18).
- Easy to use, simple and fast
- Standards compliant→
- Fully usable with keyboard
- Alt+Tab window switching
- Efficient resource usage
- Task bar (optional)
- Multiple workspaces
- Fully documented→
- A large number of themes→
- Usable with GNOME and KDE environments
- Regenerates menus when configuration changes
- Support for sound effects→
- Multiple focus modes
- Manual placement of windows option
- Autoraising of windows option
- Configurable keybindings→
- Supports DockApps in a container
- Tabbed windows
The IceWM Screenshots Collection
IceWM is themeable. The visual appearance of icewm can be changed by a theme, which is a collection of settings and small images. More than 400 themes can be downloaded from box-look.org. Extra is a collection of 75 highlights.
IceWM is translated into three dozen languages. To improve the translation for your language at Weblate, first register an account either here or there, then update.
Report your icewm bugs on Github.
Install the latest release as follows
$ wget https://github.com/ice-wm/icewm/releases/download/3.3.5/icewm-3.3.5.tar.lz $ tar -x --lzip -vpf icewm-3.3.5.tar.lz $ cd icewm-3.3.5 $ ./configure --prefix=/usr $ make $ sudo make install
Install from unreleased development source code
Gettext must be installed.
$ git clone https://github.com/bbidulock/icewm $ cd icewm $ ./autogen.sh $ ./configure --prefix=/usr $ make $ sudo make install
If you have cmake, an alternative is:
$ git clone https://github.com/bbidulock/icewm $ cd icewm $ ./rebuild.sh -r --prefix=/usr $ cd build $ sudo make install
Install package dependencies
To install all package dependencies in one go use the following script.
$ wget https://ice-wm.org/scripts/os-depends.sh $ sudo bash -x ./os-depends.sh
Verify package dependencies by:
$ pkg-config --modversion x11 xext xcomposite xdamage xfixes xrender xrandr xinerama xft fontconfig sm ice sndfile alsa ao gio-2.0 gio-unix-2.0 gdk-pixbuf-xlib-2.0 imlib2 librsvg-2.0 xpm libpng libjpeg # or simpler: $ ./rebuild.sh -d
More installation and configuration
- IceWM sound files.
- IceWM release history.
- Compare window managers.
- List of all window managers and their helper programs.
- Extended window manager hints.
- The anatomy of the modern window manager (thesis).
IceWM is released under the terms of the GNU Library General Public License.
Contribute to ongoing development and support of IceWM by donating.
Show you’re an afficionado and visit our shop.