Ice Window Manager (IceWM)
IceWM is a window manager for the X Window System. The features of IceWM are speed, simplicity, and not getting in the user's way.
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 a fork of the IceWM CVS on sourceforge. It includes all changes
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.
This is the
icewm-3.2.0 package, released 2022-11-02. This release, and
the latest version, can be obtained from GitHub, using a command such as:
$> git clone https://github.com/bbidulock/icewm.git
Please see the NEWS file for release notes and history of user visible changes for the current version, and the ChangeLog file for a more detailed history of implementation changes. The TODO file lists features not yet implemented and other outstanding items.
Please see the INSTALL file for installation instructions.
When working from
git(1), please use this file. An abbreviated
installation procedure that works for most applications appears below.
This release is published under LGPL. Please see the license in the file COPYING.
The quickest and easiest way to get icewm up and running is to run the following commands:
$> git clone https://github.com/bbidulock/icewm.git $> cd icewm $> ./autogen.sh $> ./configure $> make $> make DESTDIR="$pkgdir" install
This will configure, compile and install icewm the quickest. For those who
like to spend the extra 15 seconds reading
./configure --help, some compile
time options can be turned on and off before the build.
For general information on GNU's
./configure, see the file INSTALL.
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
Building from git also requires:
- complete autoconf or cmake toolchain
- either markdown or asciidoctor
Documentation for configuring the window manager can be obtained from IceWM Website or from the online manual. Since version 1.4.3 a complete and up-to-date set of manual pages is provided. Use icewm(1) as a starting point.
Currently, the only included utilities are:
- icesh(1) (a versatile window manipulation tool),
- icewmbg(1) (a background setting program),
- icewm-session(1) (a program to launch the window manager, icewmbg and icewmtray in an orderly fashion),
- icewm-menu-fdo(1) (a utility to genenerate XDG menus),
- icewmhint(1) (a utility to set IceWM-specific window options hint).
- icesound(1) (play audio files when interesting GUI events happen).
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.
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 firstname.lastname@example.org
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.