A window manager designed for speed, usability, and consistency
Switch branches/tags
tag_branch_merge tag-branch-merge start pre_410954 pre_100538 pre_ypaths pre_yarray pre_tray pre_titlebarjustify pre_themeable_scrollbars pre_signed_integer_options pre_scaled_appicons pre_gettext pre_alpha_channel post_100538 post_ypaths post_yarray post_tray post_titlebarjustify post_themeable_scrollbars post_signed_integer_options post_scaled_appicons icewm_1_3_8 icewm_1_3_7 icewm_1_3_7pre1 icewm_1_3_6 icewm_1_3_6pre3 icewm_1_3_6pre2 icewm_1_3_6pre1 icewm_1_3_5 icewm_1_3_4pre2 icewm_1_3_4pre1 icewm_1_3_3 icewm_1_3_3pre1 icewm_1_3_2 icewm_1_3_1 icewm_1_3_1pre1 icewm_1_3_0 icewm_1_3_root icewm_1_2_38pre2 icewm_1_2_38pre1 icewm_1_2_37 icewm_1_2_36 icewm_1_2_36pre2 icewm_1_2_36pre1 icewm_1_2_35 icewm_1_2_34 icewm_1_2_33 icewm_1_2_32 icewm_1_2_31 icewm_1_2_31pre1 icewm_1_2_30 icewm_1_2_30pre1 icewm_1_2_29 icewm_1_2_29pre1 icewm_1_2_28 icewm_1_2_28pre2 icewm_1_2_28pre1 icewm_1_2_27 icewm_1_2_26 icewm_1_2_25 icewm_1_2_25pre1 icewm_1_2_24 icewm_1_2_24pre1 icewm_1_2_23 icewm_1_2_23pre1 icewm_1_2_22 icewm_1_2_22pre3 icewm_1_2_22pre2 icewm_1_2_22pre1 icewm_1_2_21 icewm_1_2_21pre2 icewm_1_2_21pre1 icewm_1_2_20 icewm_1_2_19 icewm_1_2_18 icewm_1_2_18pre1 icewm_1_2_17 icewm_1_2_17pre2 icewm_1_2_17pre1 icewm_1_2_16 icewm_1_2_15 icewm_1_2_15pre4 icewm_1_2_15pre3 icewm_1_2_15pre2 icewm_1_2_15pre1 icewm_1_2_14 icewm_1_2_14pre16 icewm_1_2_14pre15 icewm_1_2_14pre14 icewm_1_2_14pre13 icewm_1_2_14pre12 icewm_1_2_14pre11 icewm_1_2_14pre10 icewm_1_2_14pre9 icewm_1_2_14pre8 icewm_1_2_14pre7 icewm_1_2_14pre6 icewm_1_2_14pre5 icewm_1_2_14pre4
Nothing to show
Clone or download
Latest commit 1b400cf Oct 15, 2018
Failed to load latest commit information.
contrib Fix static preordering or the main menu categories Aug 27, 2018
doc Update (generated from index.md using kramdoc). Sep 26, 2018
lib Added simplest icons for xrandr quickswitch menu Aug 22, 2018
man Add missing. Oct 15, 2018
po Translated using Weblate (German) Oct 8, 2018
src fix runonce #301. Oct 15, 2018
utils default configure arguments removed Jan 21, 2007
.gitignore add ignore files Dec 28, 2017
AUTHORS more authors Sep 10, 2017
BUGS Update bug report location to Github. Jul 24, 2017
CHANGES fix spelling Aug 25, 2018
CMakeLists.txt Have cmake add git rev number to VERSION Feb 8, 2018
CODE_OF_CONDUCT.md Create CODE_OF_CONDUCT.md Aug 3, 2017
COMPLIANCE support _NET_WM_PING. Nov 7, 2017
CONTRIBUTING.md update links Sep 16, 2018
COPYING minor build corrections and cosmetics Jun 16, 2014
ChangeLog Revert "suppress warnings on open files" Aug 30, 2017
INSTALL new INSTALL file Aug 3, 2017
INSTALL.cmakebuild Enforce markdown rendering for INSTALL.cmakebuild on Github. Sep 17, 2018
Makefile.am added script to AM_INSTALLCHECK_STD_OPTIONS_EXEMPT Nov 2, 2017
NEWS Revert "suppress warnings on open files" Aug 30, 2017
PLATFORMS solaris 9 Dec 23, 2003
README.md update links Sep 16, 2018
README.md.in update links Sep 16, 2018
THANKS simplify distribution Jul 10, 2016
TODO support _NET_WM_PING. Nov 7, 2017
VERSION restore version file Oct 28, 2017
acinclude.m4 autoconf 2.59 fixes Jul 14, 2004
autogen.sh OpenBSD sed requires file argument to be last. Nov 22, 2017
configure.ac much simpler support for svg Jun 5, 2018
configure.sh Revert "some changes for testing" Feb 4, 2018
dist.sh option -j#JOBS Oct 25, 2017
gennews.sh dashify gennews Aug 29, 2017
icewm-set-gnomewm add -C, --copying options Sep 16, 2018
icewm.lsm.in ice-wm.org #287 Sep 9, 2018
icewm.spec.in ice-wm.org #287 Sep 9, 2018
install.in Initial revision Mar 17, 2002
rebuild.sh Cmake support JPEG for XPM and fix FRIBIDI. Dec 23, 2017


Ice Window Manager (IceWM)

This is a fork of the IceWM CVS on sourceforge. It includes all changes from the icewm-1-3-BRANCH branch, greatly enhanced EWMH/ICCCM compliance, as well as patches collected from Arch Linux, Debian, pld-linux, the IceWM bug list, and various other GitHub forks.

The name was decided on a very hot day... (and Marko started writing it in winter ;-) The aim of IceWM is to have good 'Feel' and decent 'Look'. 'Feel' is much more important than 'Look' ...


This is the icewm-1.4.2 package, released under LGPL license 2017-07-30. This release as well as future versions here, can all be obtained from GitHub using a command such as:

git clone https://github.com/bbidulock/icewm.git

When working from git(1), please use this file. An abbreviated installation procedure that works for most applications appears below.

Quick Start

The quickest and easiest way to get IceWM up and running is to run the following commands:

$> git clone http://github.com/bbidulock/icewm.git
$> cd icewm
$> ./autogen.sh
$> ./configure --prefix=/usr --sysconfdir=/etc
$> make
$> sudo make DESTDIR="$pkgdir" install

This will configure, compile and install IceWM the quickest. For those who would like to customize the installation, use the command:

./configure --help

Please see the INSTALL file for more detailed installation instructions. An alternative way to build IceWM using CMake is documented here. The ChangeLog file contains a detailed history of implementation changes. The COMPLIANCE file lists the current state of EWMH/ICCCM compliance. The NEWS file has release notes and history of user visible changes of the current version. The TODO file lists features not yet implemented and other outstanding items.

This release is published under LGPL license that can be found in the file COPYING.


Building from tarball requires:

  • gcc or clang
  • libxft
  • libxinerama
  • libxpm
  • libjpeg
  • libxrandr

Building from git also requires:

  • complete autoconf or cmake toolchain
  • asciidoctor or asciidoc

Configuring IceWM

Documentation for configuring the window manager can be obtained from IceWM Website or from the online manual.

Unfortunately the documentation is for version 1.2.27 and is incomplete at that; however, it is for the most part usable. The good news is that the icewm(1) manual page for version 1.4.1 is complete and fully up-to-date.

Included Utilities

Currently, the only included utilities are:

  • icewmbg (a background setting program),
  • icewmtray (a system tray for the IceWM taskbar), and,
  • icewm-session (a program to launch the window manager, icewmbg and icewmtray in an orderly fashion),
  • icewm-menu-fdo (a utility to genenerate XDG menus),
  • icewm-menu-gnome2 (a utility to generate GNOME menus),
  • icewmhint (a utility to set IceWM-specific window options hint).
  • icesound (play audio files when interesting GUI events happen).

Third-party Utilities

Unspecified keyboard shortcuts can be handled with the bbkeys(1) utility available from GitHub.

XDG compliant menus may be generated using the xde-menu(1) utility available from GitHub.

For additional utilities see the IceWM FAQ.

Bug Reports

Issues can be reported on GitHub. Please try to submit short patches or pull requests if you can. If you would like to perform regular maintenance activities (e.g. if you are a maintainer of an IceWM package for a distribution), contact me for push access.

I normally like to have the issuers of problem reports close the report once it has been resolved. I do not want you to think that we are being dismissive, because I welcome all reports.

Bug reports, feedback, and suggestions pertaining to the original CVS version can be sent to: Marko.Macek@gmx.net or icewm-user@lists.sourceforge.net

See also BUGS, TODO and the sites at:


If you would like to develop against this fork, the easiest way is to obtain a GitHub account, fork the repository and perform your development. Send me a pull request when you have something stable. If you submit regular pull requests that get accepted, I will just give to push access to save time.


You can provide translations by patching .po files and issuing pull requests, or you can use the openSUSE weblate tool. There are two XDG files, icewm.desktop and icewm-session.desktop than may need manual translations. If you have difficulties using the tools, just send me the updated .po file or a patch to apply.