Experimenting with icewm

I decided to give icewm a good test.  So, several days ago I selected icewm from the kdm login screen, and I used it for a little over 3 days.  This post describes my experiences.

The first thing to note, is that I am running openSUSE 12.1 on my desktop system.  A default install of openSUSE includes the “lite” version of icewm.  However, I installed the more complete version with support for panels.  Yast software manager shows that what I have installed is:

icewm		1.3.7-16.1.2
icewm-default	1.3.7-16.1.2


In order to configure icewm to my liking, I first created the directory “$HOME/.icewm” and then copied the file “/etc/icewm/preferences” to that directory.  Next, I edited that “preferences” file, as follows:


# AutoRaise=0 # 0/1
# TaskBarAutoHide=0 # 0/1


AutoRaise=1 # 0/1
TaskBarAutoHide=1 # 0/1

Note that those are not consecutive lines in the file.

From the icewm settings menu, I set focus to sloppy focus. That created the file “$HOME/.icewm/focus_mode” with the single line


I also created a small shell script that starts applications to automatically run at session start.  In my case, I started an xterm.  On my laptop, I also ran “nm-applet” and “synaptiks”.  If you try this, remember to put an “&” at the end of each command line, to run them in the background.

A little background on that configuration.  I happen to like sloppy focus, which is why I configured that.  Then, experimenting, I found that with overlapping windows, the focus moved to the window that the mouse was over, but that window stayed buried below other windows.  Hence the “AutoRaise” change.  For the “TaskBarAutoHide” change – I just like autohide as it give more space on the desktop.

Note that icewm does not have as much GUI support as typical desktops.  Unless you are comfortable working at the command line, I don’t recommend trying this.


NUMLOCK was not on.  That seems to be a 12.1 bug.  In KDE, I configured the keyboard settings to set it on at KDE startup.  That works around the bug.  However, that setting did not apply when running icewm.

I started firefox at the command line. You can use

firefox &

to do that. One of the reasons that I have an xterm automatically startup, is to give me a command line for such tasks.

I am using the default icewm theme.  The firefox menus do not look as nice as with the oxygen theme from KDE.  On the other hand, the bookmarks menu takes less space because there is less white space between lines.  Overall, I find the more compressed look easier to use, even if a bit less attractive.

I clicked on a pdf file in my browser.  It wanted to open with “evince”.  I am used to it opening with “okular”, but “evince” is fine.

Later, I plugged in an external USB disk.  Then I waited for the popup.  Nothing happened.  That’s when I realized that I would have to mount it myself, since icewm does not provide that service.  So I tried (as root)

mount /dev/sdf1 /media/disk

but there was no directory “/media/disk”. The subdirectories of “/media” are normally created dynamically by automounting. Instead, I finished up mounting at “/mnt”.

There are no power manager settings that I can see.  However, the screen does blank after a short idle time, and turn off after a longer time.  There isn’t a way to cause it to dim.  On my laptop, this is actually good.  When the screen dims on the laptop, the computer sometimes freezes, presumably due to a buggy driver for the Intel graphics.  When running icewm on the laptop, I had no screen dimming and no freezes.

In order to do system software updates, I ran “yast2” in a root xterm.  Then I selected online update.  That worked well, and included the latest firefox update.  However, online update doesn’t do everything that “apper” does.  So I tried starting apper at the command line.  That brought up the GUI interface.  Selecting “updates” listed an update from the packman repos.  I then told it to install.  That resulted in a weird and misleading message about the root password.  In actual fact, I had never even been prompted for the root password.  Presumably, the problem is that polkit has not been started in this session.  I’m not sure how to start it.  If I look at what is running in either a KDE or gnome session, it seems that there is a polkit applet that is integrated into the desktop environment.  I’m not sure how to do that with icewm, or whether it is even possible.  Well, never mind.  The command “zypper up” as root does that update just fine.

Laptop experience

While running icewm on my desktop, I mainly used icewm on my laptop when booting that.  As mentioned above, I also started “synaptiks” and “nm-applet” in the icewm “startup” file.

I’m a touch typist, and the touchpad gets in the way.  While typing, my thumb tends to touch the touchpad, moving the mouse pointer.  Because I am using sloppy focus, moving the mouse pointer can accidently change the windows selected for focus.  In KDE, I handle that with “synaptiks”.  I plug in a small USB mouse.  There’s a “synaptiks” option to disable with touchpad when a USB mouse is plugged in.  That works very well.  And, note, that also works to disable the touchpad if I use a bluetooth mouse.  Starting synaptiks in icewm seems to do the same thing, and allowed me to avoid any touchpad problems.

Using WiFi could be another issue.  I started “nm-applet”, which provides the usual tray icon where I can look at connection status.  As it happens, I have the home WiFi network configured as a system connection, meaning that it will connect even before I login.  So the running “nm-applet” did not have to do much.  If I had tried to connect to a new WiFi network, it probably would have failed.  And that’s because “nm-applet” wants to connect with polkit for authentication, and I had not started a user polkit process.  My current thinking is that if I wanted to use icewm while travelling with my laptop, then it would be best to configure WiFi to use “ifup” configuration, since that is more accessible at the command line.


If you are adept at using the command line, then icewm can work very well and be very light weight.  If your computing habits depend on a GUI interface, then you would be better advised to use a more fully functional GUI.


Tags: , ,

About Neil Rickert

Retired mathematician and computer scientist who dabbles in cognitive science.

4 responses to “Experimenting with icewm”

  1. Neil Rickert says :

    An addendum is appropriate.

    In my “$HOME/.icewm/startup” file, I now use:

      /usr/lib/polkit-gnome-authentication-agent-1 &
      nm-applet &

    I have tested this in opensuse 12.2 Milestone3, and I am able to manage WiFi connections while running icewm.


  2. jengliang says :

    For some reason, ICE WM is the most stable desktop manager on the machines I need to work on, and I’ve been trying to get sloppy focus to work. Thanks a lot for sharing and now I get to be sloppy again.


    • Neil Rickert says :

      If you already have an “.icewm” directory, you might want to skip some of these steps.

      % cd    ### go to your home directory
      % mkdir .icewm
      % cd .icewm
      % cp /etc/icewm/preferences  .

      Now edit that “preferences” file, and look for a line

      # AutoRaise=0 # 0/1

      Change that to read:


      Note that the comment mark at the beginning is removed.

      In the same directory, create a file named “focus_mode” containing the single line


      And you are done.

      You will probably need to logout and log back in, or at least restart icewm from the logout menu, before it takes effect.

      I hope that works for you. It works here.


    • Neil Rickert says :

      I misread that the first time. I thought you were asking for help. Now I see that you found the post helpful.


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s

%d bloggers like this: