IceWM

Related articles
Window manager
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.
Installation
Install
the
icewm
package.
Starting
With
xinit
run
icewm
, or
icewm-session
to also run icewmbg and icewmtray.
Note
icewm-session
is needed for the
startup
script to work.
Configuration
Configuration changes from the defaults can be made either system wide (in
/etc/icewm/
) or on a user-specific basis (in
~/.config/icewm/
).
To change your icewm configuration from the default, copy the default configuration files from
/usr/share/icewm/
to
~/.config/icewm/
, for example:
$ cp -r /usr/share/icewm/ ~/.config/icewm/
preferences
is the core configuration file for IceWM.
menu
controls the contents of the IceWM application menu.
keys
allows the user to customize keyboard shortcuts.
toolbar
row of launcher icons on the taskbar.
winoptions
behavior of individual applications.
theme
theme path/name.
startup
script or command (must be executable) executed on startup.
shutdown
the same for shutdown.
Autostart
The
startup
script is
not
provided by the
icewm
package so you will need to
create
it yourself, add the commands for the programs that you wish to start with the IceWM session and make it
executable
.
Note
Startup commands that install system tray applets must be preceded by
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
network-manager-applet
and
XScreenSaver
within the IceWM session:
~/.config/icewm/startup
#!/bin/sh

# start network manager
    sleep 1 &&
    nm-applet &

# enable bluetooth applet
    sleep 1 &&
    blueman-applet &

# enable screensaver
    xscreensaver -nosplash &

# start redshift
    redshift &

# allow notifications
    /usr/lib/notification-daemon-1.0/notification-daemon &

# 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
Generating menu entries
menumaker
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(1)
by running the following switches with the mmaker command:
--no-legacy
and
--no-debian
. For example:
$ mmaker -f --no-legacy --no-debian icewm
Alternatively, you can generate a menu using
xdg-menu
. See the
xdg-menu#IceWM
section.
Themes
A small number of themes are included in the
icewm
package. These can supplemented by the themes available from the
icewm-extra-themes
AUR
package. Many more themes can be downloaded from
box-look.org
.
Desktop icons
A file manager such as
PCManFM
or
rox
AUR
can manage the wallpaper and add desktop icons. Alternatively, you could install
Idesk
, a small program that can also add icons to the desktop.
Tips and tricks
Compositing
IceWM is not a compositing window manager. If you need compositing with IceWM, you have the option of using a standalone composite manager such as
Xcompmgr
or
Picom
.
Troubleshooting
No start menu icon (Intel graphics)
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
xf86-video-intel
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, uncomment
LogoutCommand
:
~/.config/icewm/preferences
LogoutCommand="pkill -u
username
"
No shutdown or reboot options in logout menu
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.
See also
Official IceWM website
IceWM – The Cool Window Manager
– detailed introduction at OSNews, 2004
IceWM – A desktop for Windows emigrants
– overview and tutorial from polishlinux.org, archived in 2010
IceWM reaches version 3 after a mere 25 years
– Liam Proven for
The Register
, October 2022