IceWM — a desktop for Windows emigrants
[ Thursday, 5 April 2007, adz ]
In my debut article on PolishLinux.org I’d like to introduce you to one of my favorite window managers — IceWM. This unusually lightweight window manager has been created in C++ by Marko Maček. The first version was released on 26 Dec. 1999. The latest stable one (IceWM v.1.2.30) appeared on 24 Dec. 2006
You are probably wondering what is so special about this window manager when compared to other lightweight managers.
- IceWM is a light WM. It means that it doesn’t take too much RAM and doesn’t need a very fast CPU. There is also an even lighter version of IceWM called IceWM-lite. It doesn’t have all the features of the “normal” version but is perfect for slower CPUs (<200MHz) or even for network terminals.
- It’s simple and comfortable. Developers say it “does not get in the user’s way”. IceWM tries to be as transparent as possible for users. It’s simple to configure by editing configuration files in your Home directory or, even easier, by using GUI programs. You can define your own shortcuts. It integrates perfectly with GNOME and KDE applications.
- IceWM uses a taskbar similar to the one in MS Windows (which can be useful for migrating users). The taskbar consists of a menu button, application launchers, currently open apps, small applets (CPU, RAM, Net, Email), system tray and clock. There is also a built-in terminal emulator which can be run by pressing “Win”+Spacebar.
- It can be pretty. The default skins aren’t that nice but don’t worry, there are a lot of skins on the Internet. You can download skins that look like other OSes, eg. Win95, Vista, OS2, MacOS.
- IceWM is a grown-up project (it exists since 1999) implemented by professional programmers. It has never crashed on me.
Despite all these good things IceWM has some defects (not the program itself):
- slow project development – it is because there are relatively few users and a small developer community
- lack of official graphical configuration tools
Installation
If you have already decided on IceWM, you have to get it from somewhere. Appropriate packages are in the repositories of every popular Linux distribution and even in BSD ports. For enthusiasts, the Solaris version is available too.
You can install IceWM from the source code (I suggest that option for experienced users that want to customize it). The sources can be downloaded from IceWM Home Page. You install it just like any other source code program: ./configure && make && make install as root. Now it’s time to configure it. Here are some config options which you can pass to configure. For the full list of these options run configure --help:
--enable-antialiasingenables smooth fonts,--enable-gradientsenables gradient support for skins,--enable-liteit is for light version (icewm-lite),--enable-menus-gnome2adds the GNOME menu support.
If you used the GDM or KDM session menu to install IceWM, there have to be an option that enables IceWM. If you have compiled it from sources you have to create the config file in /usr/share/xsessions.
Example of that config file:
[Desktop Entry]
Encoding=UTF-8
Name=IceWM
Exec=/usr/local/bin/icewm-session
# no icon yet, only the top three are currently used
Icon=
Type=Application
If you start Xserver using startx, you are obligated to add to .xsession this line:
exec icewm-session
Graphical configuration tools
There are some tools that simplify configuration.
IceMe to edit the menu and shortcuts.
IcePref – use it to configure appearance and behavior of IceWM, you can run it from IceMe.
Iceconf – useful for configuring windows’ behavior.
IceMc Simple menu editor
Unfortunately these graphical tools aren’t perfect. You can’t configure everything using them so editing config files is still necessary.
Config files
You can find all config files in your home directory in the hidden subdirectory .icewm.
| File | Use |
menu |
menu configuration |
toolbar |
quick-run buttons configuration |
keys |
shortcuts configuration |
winoptions |
windows’ behavior configuration |
startup |
start-up programs configuration |
preferences |
main options configuration |
Menu
The Syntax of this config file is very simple:
prog Program Icon app -with -options, where:
prog— is a keyword, telling IceWM that it’s a program entry.separator— to draw a separator, andmenu Xyz folder_icon { prog ... }— to open a new sub menu called Xyz.Program— is the name which will be shown in the menu. Enclose it in apostrophes if you need more than one word here.Icon— will be used as the menu entry’s icon, if a corresponding image is found in IceWM’s IconSearchPath.- And finally
app -with -options— is what’s going to be started if a user chooses this entry.
Here is an example which shows how to make a menu for Firefox:
prog Firefox /usr/share/pixmaps/firefox.png firefox
Toolbar
It uses the same format as the the menu file. You cannot create a submenu there. The easiest way to do that is simply by copying a menu from the /menu file over to the /toolbar file.
Keys
IceWM is well known for good keyboard shortcuts. Use >keys to create a new shortcut: key [key combination] [app -with -options]
Winoptions
Here you define a window’s behavior. This file has the following syntax:app.property: value
You can find the full list of properties and values on Window Options.
For example: xmms.workspace: 3 — makes xmms always run in workspace no. 3
Startup
Next are the scripts or commands that are executed by icewm-session on startup.
In my case the file looks like this:
conky -a top_right&
rox -p Default&
It starts two apps: system monitor CONKY and file manager ROX.
Preferences
This config file is the most important. There are a lot of different options which are listed in the manual available on this website.
Skins
There are many user-made skins available on the Internet. You have to unpack the downloaded file with a skin in ~/.icewm/themes. I will show you some of them below:
Desktop’s icons
IceWM is only the window manager, it can’t display icons on the desktop. It’s not something to worry about. There are some tricks to make it work.
![]()
Img. 8 Pcmanfm – preference menu
You can use Rox (rox -p Default) or a separate program like idesk which isn’t a part of IceWM. I recommend PCMan File Manager. It’s created in GTK+ and is the only program of its type.
It enables opening windows in tabs and displaying icons on the desktop. The last option is implicitly disabled. To enable it: Option Menu -> Preferences -> (tab)Desktop -> (option) “Show Icons”. You may choose a a background color or a wallpaper there too.
![]()
Img. 9 IceWM with running Pcmanfm
Summary
IceWM is perfect for Windows’s “emigrants” especially for users with older computers. IceWM will be suitable for advanced users who are looking for a lightweight and simple window manager.
Links
Warning: include_once(/sites/polishlinux.org/wp-content/themes/jakilinuxorg/google_article_inside.php): failed to open stream: No such file or directory in /sites/polishlinux.org/wp-content/themes/jakilinuxorg/single.php on line 48
Warning: include_once(): Failed opening '/sites/polishlinux.org/wp-content/themes/jakilinuxorg/google_article_inside.php' for inclusion (include_path='.:/usr/share/pear:/usr/share/php') in /sites/polishlinux.org/wp-content/themes/jakilinuxorg/single.php on line 48
Subscribe to RSS feed for this article!
20 Comments
- A hyperlink: <a href="polishlinux.org">GNU/Linux for everyone!</a>,
- Strong text: <strong>Strong text</strong>,
- Italic text: <em>italic text</em>,
- Strike: <strike>
strike</strike>, - Code: <code>
printf("hello world");</code>, - Block quote: <blockquote>Block quote</blockquote>













I’m 200 % sure it can.
Of course it was meant “it can’t display icons on the desktop”. Corrected.
Very nice article! Thanks for writing it
I was wondering what distro you use IceWM on. I can see that the screenshots are of Ubuntu, but is it simply Ubuntu with IceWM installed on top or is it a special version of Ubuntu?
OK, here`s one – hopefuly not senseless – suggestion.
I used to run IceWM with KDesktop in the background … and so I get desktop and the usual IceWM … What do you think about that kind of solution? Is that good? does it take more or less memory … ?
Very nice write up and a great howto. I’ll keep this handy.
Some tips. You can get desktop icons w/ Rox filer or idesk.
The 5.1 SOHO version of Vector Linux had a georgeous IECWM desktop using ROX to manage the desktop.
here
and
here
Not sure if the latest 5.8 has ICEWM any longer.
marc – if you run any of the KDE services you are effectively running KDE. This won’t save you (much) in the way of system resources.
Just wanted to point out an alternative to PCMan. Heck, there’s plenty of alternatives actually, but I think a pertinent one is XFE. It depends on the fox library, so it’s a bit liter than PCMan and a bit more in alignment with what IceWM is often used for. You can find XFE here:
http://roland65.free.fr/xfe/
Used to run IceWM for years from an Pentium 100 MHz 16MB until I upgraded to AthlonXP with 768MB RAM by this time KDE 3.4 optimized for lower resources. Still IceWM make windows users feels it is a faster windows than windows.
@proog It is simply Ubuntu with IceWM installed on top, there was a project called ‘Ubuntu Lite’ – ubuntu with IceWM as default WM. I don’t know if it still active because ubuntu lite website is offline, but here are some links ubuntu-lite mailing list, Howto install Ubuntu Lite on your computer.
adz, do you use the Ubuntu system with IceWM on top as your usual desktop OS (the one in the screenshots, not Lite)?
for the stated purpose of this article, “a desktop for Windows emigrants”, XFCE 4.4 (http://www.xfce.org) is MUCH better. it almost as light and fast but has graphical configuration, a print manager, desktop shortcuts, and lots of other goodies. IceWM is the desktop to use for old slow pentium IIIs; it is NOT the way to impress recent windows emigrants with speed and flash; XFCE is better for that.
Wish icewm had a wm-compatible Dock.
There is a host of Windowmaker dockapps, and in particular some of the interactive status/control applets look rather handy. A while back there was a program called “icedock” that allowed using those applets with icewm, but it used a rather unconventional build process, and seems to have withered. I’ve looked a little at gkrellm, which might be able to do some of this, in addition to monitoring, but it seems to have some strange desktop interactions.
Anything other options?
@proog Yes, I use IceWM at top of my desktop, screenshots were made on Ubuntu 6.06. IceWM Lite was only a metapackage and it used IceWM from Ubuntu repository.
@marc You can change WM in kde and it should take less memory, I think that GNOME is better desktop environment for such experiments becasue it’s more modular. If you want replace default WM in GNOME (metacity) and use IceWM simply type in terminal
@will I think that IceWM’s ‘look and feel’ is more similar to MS Windows than XFCE which was inspired by CDE.
@phred14 If you are looking for ligh-weight but powerful try conky
> You can change WM in kde and it should take less memory, I
> think that GNOME is better desktop environment for such
> experiments becasue it’s more modular.
this is a misconception.
for window managers, both gnome and kde share the same window manager hints, standardized at freedesktop.org. it’s trivial to swap in a different netwm-compliant window manager in kde. see: http://developer.kde.org/~seli/kdewm/
I tried IceWM. I was disappointed and went back to fluxbox in about 10 minutes.
“Developers say it’s ” Not only did you misuse its but you didn’t need it at all
Thank you. I fixed the spelling.
What is the name of that green theme in the screenshots?
Green theme is called IceBuntu http://themes.freshmeat.net/projects/icebuntu/
I’m using IceWM right now (on Vector Linux 6.0).
One thing that struck me is that IceWM actually supports rubber-banding–pre-4.6 Xfce doesn’t.
Wonderful goods from you, man. I’ve understand your stuff previous to and you’re just extremely great. I actually like what you have acquired here, certainly like what you are saying and the way in which you say it. You make it entertaining and you still care for to keep it wise. I cant wait to read far more from you. This is actually a great site.