According to Wikipedia:
- IceWM is a window manager for the X Window System graphical infrastructure, written by Marko Maček. It was coded from scratch in C++ and is released under the terms of the GNU Lesser General Public License. It is relatively lightweight in terms of memory and CPU usage, and comes with themes that allow it to imitate the UI of Windows 95, OS/2, Motif, and other graphical user interfaces.
Install the package.
With xinit run
icewm-session to also run icewmbg and icewmtray.
icewm-sessionis needed for the
startupscript to work.
Although IceWM configuration is originally text-based, there are GUI-based tools available, notably AUR. However these tools are relatively old and most users prefer to simply edit the text configuration files. Configuration changes from defaults can be made either system wide (in
/etc/icewm/) or on a user-specific basis (in
To change your icewm configuration from the default, simply copy the default configuration files from
~/.icewm/, for example:
$ mkdir ~/.icewm/ $ cp -R /usr/share/icewm/* ~/.icewm/
preferencesis the core configuration file for IceWM.
menucontrols the contents of the IceWM application menu.
keysallows the user to customize keyboard shortcuts.
toolbarrow of launcher icons on the taskbar.
winoptionsbehavior of individual applications.
startupscript or command (must be executable) executed on startup.
shutdownthe same for shutdown.
startup script is not provided by the package so you will need to create it yourself.
$ touch ~/.icewm/startup $ chmod +x ~/.icewm/startup
Then open the file in your favourite text editor and add the commands for the programs that you wish to start with the IceWM session.
sleep 1 &&, otherwise IceWM will create an ugly black window that will prevent it from quitting; in that case, use xkill on the task bar.
Below is an example of an IceWM startup script which starts XScreenSaver with the IceWM session:and
#!/bin/sh # start network manager sleep 1 && nm-applet & # enable bluetooth applet sleep 1 && blueman-applet &! # enable screensaver xscreensaver -nosplash & # start redshift redshift & # enable lockscreen exec xautolock -detectsleep -time 15 -locker "i3lock -n -i /home/user/lockscreen.png" -killtime 20 -killer "systemctl suspend" #lock after inactivity and then sleep # allow notifications /usr/lib/notification-daemon-1.0/notification-daemon &
- from the official repositories is a Python script that automatically populates your applications menu based on what is installed in your system. Although this may result in a menu filled with many unwanted applications, it may still be preferable to manually editing the menu configuration file. When running MenuMaker, use the -f flag to overwrite an existing menu file:
$ mmaker -f icewm
You can avoid populating your menu with terminal based applications such as alsamixer by running the following switches with the mmaker command:
--no-debian. For example:
$ mmaker -f --no-legacy --no-debian icewm
A small number of themes are included in the box-look.org.package. These can supplemented by the themes available from the AUR package. Many more themes can be downloaded from
Tips and tricks
If you are using IceWM with Intel graphics you may find that the start menu in your taskbar has no icon. This is due to a recent change in the driver which means that the new, but rather unstable, SNA acceleration backend is used by default. To fix the start menu issue (and other possible graphical glitches) you need to switch back to the older UXA backend. See the following article: Intel graphics#AccelMethod.
Unable to logout when PCManFM is managing the desktop
If you use PCManFM to manage the desktop you may find that the IceWM logout button no longer works. As a workaround, you can define a logout command. This should allow you to logout whilst PCManFM is managing the desktop. To do this, open
~/.icewm/preferences, uncomment the following line:
# LogoutCommand="" and enter a command which can be used to logout. For example:
LogoutCommand="pkill -u username" where username is your username.
- Logout command has been defined:
Shutdown and reboot commands will be ignored if a logout command has been defined. If you want shutdown and reboot options in the logout menu then you must not define a logout command.
- Logout command has not been defined:
If you have defined shutdown and reboot commands (such as systemctl poweroff and systemctl reboot) and you have not defined a logout command but you still find that there are no shutdown or reboot options in the logout menu then update to
icewm 1.3.8-2. See FS#37884 for more information.