I should say up front that I am not particularly fond of the Windows Classic theme, nor am I terribly enthusiastic about any particular Windows look. Even if Windows 2000 was the last version I liked, I am not so enamored with it that I need to emulate it.

On the other hand, this is fairly simple to set up and behaves in much the same way as its namesake, and is terrifically lightweight to boot. So I could do a lot worse. …

This is not a project. It’s not something that I can claim to “actively” pursue, or some sort of goal that I felt needed to be achieved. If I must be truthful, I don’t know what it is. It just happened.

Over a rather long course of time, that is. Anyone who looks at IceWM, even in its ugliest state, can tell you that it always was intended to be a Windows 9x knockoff. Nudging it further to look something like the Windows Classic theme in XP is just the natural evolution of things.

So whether you see this as a possible stepping stone for a Linux convert-to-be, or a practical and speedy desktop that mimics one from ten years ago that you liked, or an awful throwback to a horrific era of computer imprisonment, or blasphemy against the principles of free software, or an unbelievable waste of time … I really don’t mind.

If you see something that you like and want to change, be my guest. Tell me about it if you like.


I generally use Arch Linux for this. You don’t have to, of course, but it seems easiest because there are PKGBUILDs available in AUR that make this quicker and easier to build than, say, Ubuntu.

But that’s no reason why you can’t use Ubuntu or OpenSuse or anything else. I’ve used Crux and Ubuntu and I think even once or twice Debian; use whatever you like.

Here’s the software I use, and of course you’re free to adjust it as you like:

IceWM I am not a huge IceWM fan, but it is a great option for single-menu-bar desktops and can be customized to unbelievable levels. But don’t take my word for it.
rxvt-unicode This can be managed at a low enough level to make it look a lot like the CMD box from early versions of Windows.
Firefox Not my favorite browser, but the one that everyone expects.
Xfe Xfe is arranged to be an Explorer knockoff, and with the right font and a proper arrangement, it’s quite close. The icons, technically, will be out of place, but until someone actually goes in and converts better icons and makes them available to Xfe, this will do just fine.
VolWheel VolWheel is a pretty cool application in its own right, and doesn’t have to be part of a Windows 2000-ish desktop to be useful.
Leafpad Leafpad is an almost perfect rendition of Notepad.
gPicView This always struck me as a kind of oddball application for the LXDE team — a blatant ripoff of the Windows image viewer? Unusual, given the other applications in the LXDE stable. But perfect for our purposes.
Alsaplayer Having two players on board is a bit wasteful, but Alsaplayer, if you didn’t know better, looks a lot like very early versions of Windows Media Player (circa v6.4) … before it became all fat and globular and stopped being useful.
iDesk extras
The final touches. While not exactly a perfect mimic of the Windows desktop buttons, it’s close enough to keep me happy. The iDesk extras application makes it much easier to configure these the way you like.
MS fonts
You can interpret the licensing arrangements any way you like; it’s possible to go without these fonts and use something similar to get the same effect.
xscreensaver I have a love-hate relationship with xscreensaver; sometimes it does the right thing and sometimes it seems to be an impediment. Regardless, the Morph3D screensaver is a dead ringer for the old floating tetrahedron thingy screensaver. Or whatever.

A little extra software for this and that.

ePDFView Again, not really part of the ensemble, but fits the theme and does a good job.
gtk-chtheme You should technically only need this once, to change to the Redmond theme. And you could avoid it and just hard-code that theme into your desktop. But it’s fun to play with too.
Audacious Audacious inherited from XMMS a healthy resemblance to Winamp 2.x. Technically this audio player is not part of the desktop, but it completes the look.
Galculator Galculator is galculator. It looks like a calculator, even if it doesn’t really look like a Windows calculator.

Basically put, install your favorite distro keeping it as light as possible, and configure it for hardware, sound, graphics, etc. Then install any or all of the software listed up there, keeping in mind that many of the configurations and themes will expect to see any or all of them.


Next, grab or copy these configuration files and themes, and install them in the appropriate locations. For Xfe, it’s actually quicker and easier to just navigate between its internal menus, than to copy-and-paste theme configurations.

WinClassic2 For IceWM. Decompress this into the .icewm/themes folder and get ready to modify it.
GnomeXP A sparse but effective Windows icon set aimed at Gnome users. Don’t worry, it won’t swamp your machine.
Classic Flat White Cursor arrow theme. It’s not shadowed, but there may be another one out there that is.
GTK2 Engines Chances are if you have installed any of the software I suggested above, you also got the engines. Redmond is the one you’re after, which is almost exactly the Windows XP Classic color scheme and dimensions.
Bliss wallpaper I consider this optional, since the wallpaper really fits the Luna theme, not the Windows Classic theme. But some people like it, so. …
Winamp Classic skin If you installed Audacious like I mentioned above, this is the skin you want to make it look like the old Winamp 2.0. Beware impostors.

Decompress the icon and pointer themes into ~/.icons and place the fonts, if they’re not installed system-wide, into ~/.fonts so Xorg can find them.


Now it’s time to get your hands dirty. These are configuration files that you can either add to the existing files, or replace altogether. First, here’s ~/.config/volwheel

urxvt -e 'alsamixer'

Keep in mind that the volwheel configuration relies on the icons in the WinClassic2 theme.

Here’s ~/.icewm/preferences

MenuActivateDelay=0 # [0-5000]
QuickSwitchMaxWidth=1 # 0/1
QuickSwitchSmallWindow=1 # 0/1
QuickSwitchToAllWorkspaces=1 # 0/1
QuickSwitchVertical=0 # 0/1
RebootCommand="sudo /sbin/reboot"
ShowAbout=0 # 0/1
ShowFocusModeMenu=0 # 0/1
ShowHelp=0 # 0/1
ShowLogoutSubMenu=1 # 0/1
ShowMoveSizeStatus=0 # 0/1
ShowProgramsMenu=0 # 0/1
ShowSettingsMenu=0 # 0/1
ShowWindowList=0 # 0/1
ShowWorkspaceStatus=0 # 0/1
ShutdownCommand="sudo /sbin/halt"
TaskbarButtonWidthDivisor=5 # [1-25]
TaskBarShowCPUStatus=0 # 0/1
TaskBarShowMailboxStatus=0 # 0/1
TaskBarShowNetStatus=0 # 0/1
TaskBarShowWindowListMenu=0 # 0/1
TaskBarShowWorkspaces=0 # 0/1
TimeFormat="%l:%M %p "
TrayDrawBevel=1 # 0/1
UseMouseWheel=1 # 0/1

Notice that the shutdown and reboot commands use sudo to call on /sbin/halt or /sbin/reboot. Your sudoers file needs to allow the group to call that command without a password, or the shutdown and reboot will just hang. Also make sure those commands are in the same place. ;)

Next is ~/.icewm/toolbar

prog "Terminal emulator" xterm urxvt 
prog "Web browser" /home/kmandla/.firefox/icons/mozicon128.png /home/kmandla/.scripts/firefox.sh
prog "File manager" explorer xfe

Remember here and in other IceWM menu files, that you need to substitute the user name for kmandla. I can’t seem to get IceWM to recognize a $HOME path; perhaps it’s possible to do in a configuration file.

Next, ~/.icewm/menu

prog "Terminal emulator" xterm urxvt 
prog "Web browser" /home/kmandla/.firefox/icons/mozicon128.png /home/kmandla/.scripts/firefox.sh
prog "File manager" explorer xfe

menu Applications folder {
	menu Accessories folder {
 		prog Galculator /usr/share/pixmaps/galculator.xpm galculator
		prog Leafpad notepad leafpad
		prog Xfe explorer xfe
		prog Recorder /usr/share/pixmaps/recorder.png recorder
	menu Games folder {
		prog "VICE Emulator" app x64
		prog "Warzone 2100" /usr/share/icons/warzone2100.png warzone2100 --fullscreen --resolution=1024x768
		prog "OpenTTD" /usr/share/pixmaps/openttd.32.xpm openttd
	menu Graphics folder {
		prog gcolor2 /usr/share/pixmaps/gcolor2/icon.png gcolor2
		prog gPicView /usr/share/pixmaps/gpicview.png gpicview
		prog Gimp /usr/share/gimp/2.0/images/wilber.png gimp
 		prog Inkscape /usr/share/pixmaps/inkscape.png inkscape
	menu Multimedia folder {
		prog Audacious xmms audacious
	menu Network folder {
 		prog "Firefox" /home/kmandla/.firefox/icons/mozicon128.png /home/kmandla/.scripts/firefox.sh
	prog Skype /usr/share/pixmaps/skype.png skype
	menu Office folder {
		prog ePDFView /usr/share/epdfview/pixmaps/icon_epdfview-48.png epdfview

menu System folder {
	prog "GTK2.0 Change Theme" settings gtk-chtheme
	prog "rxvt-unicode" xterm urxvt
 	prog "Screensaver" settings2 xscreensaver-demo
 	prog "Take screenshot" run2 scrot -q 100 -d 3 screenshot-%y%m%d-%H%M%S.jpg
	menu Volume folder {
		prog Adjust none urxvt -e alsamixer
		prog Mute none /home/kmandla/.scripts/mute.sh
		prog Reset none /home/kmandla/.scripts/volume.sh

Be careful with that one. Take note that it calls on some software I haven’t mentioned on this page, plus a few scripts for volume control and so forth. You’ll want to edit this down to include the programs you like. And make sure your icons are in the right place.

Also note that I don’t use the Firefox that’s packaged in most distros; I just download the precompiled binary directly from Mozilla, and hide it in my home directory. Then I call on it from a script that cleans up all the rubbish it leaves in my home directory after it runs.

Why? Because I can, that’s why. :twisted:

Here’s what I add to ~/.icewm/themes/WinClassic2/default.theme

DesktopBackgroundCenter=1 # 0 / 1
DesktopBackgroundScaled=0 # 0 / 1
# DesktopBackgroundImage="wallpaper.png"

Don’t replace the theme file with this, add to it.

I comment out the wallpaper because again, it doesn’t fit the theme for me. If you want the Bliss wallpaper I mentioned above, you should redirect this file to point at it.

I should also mention that the 8-point Tahoma looks right on my screen, but you might want a different size. It will depend on your screen and its pitch, antialiasing, etc.

This is ~/.ideskrc which is the default configuration for idesk.

table Config
  FontName: tahoma
  FontSize: 8
  FontColor: #ffffff
  Locked: false
  Transparency: 0
  Shadow: true
  ShadowColor: #000000
  ShadowX: 1
  ShadowY: 2
  Bold: false
  ClickDelay: 200
  IconSnap: true
  SnapWidth: 16
  SnapHeight: 24
  SnapOrigin: BottomRight
  SnapShadow: true
  SnapShadowTrans: 200
  CaptionOnHover: false

table Actions
  Lock: control right doubleClk
  Reload: middle doubleClk
  Drag: left hold
  EndDrag: left singleClk
  Execute[0]: left doubleClk
  Execute[1]: right doubleClk

You can adjust this file manually, or with the idesk-extras utility I mentioned elsewhere.

I use three desktop icons, which of course is rather minimal but perfectly adjustable. If you like how I have mine arranged, here’s ~/.idesktop/Firefox.lnk

table Icon
  Caption: Firefox
  Icon: /usr/share/idesk/icons/32x32/firefox.png
  X: 24
  Y: 148
  Command[0]: /home/kmandla/.firefox/firefox
  Command[1]: idesktool Firefox.lnk


table Icon
  Caption: My Computer
  Icon: /home/kmandla/.icons/GnomeXP/32x32/places/gnome-fs-server.png
  X: 24
  Y: 76
  Command[0]: xfe /
  Command[1]: idesktool My_Computer.lnk

and ~/.idesktop/My_Documents.lnk

table Icon
  Caption: My Documents
  Icon: /home/kmandla/.icons/GnomeXP/32x32/places/folder_home.png
  X: 24
  Y: 4
  Command[0]: xfe
  Command[1]: idesktool My_Documents.lnk

Adjust those as you will. Next, here’s ~/.Xdefaults which is important since it sets a lot of the options for rxvt-unicode as well as how fonts are rendered around the entire screen.

Xft.dpi:                96
Xft.antialias:          true
Xft.hinting:            true
Xft.hintstyle:          hintfull
Xft.rgba:               rgb

Xcursor.theme:          Classic-White

urxvt.font:             xft:mono:antialias=true:size=8
urxvt.reverseVideo:     true
urxvt.scrollBar:        false
urxvt.transparent:      false

I don’t use the Tahoma font in rxvt-unicode because it always ends up wacky-spaced. I just call on whatever mono font is on top, and it looks fine.

Be sure to adjust the dpi for your screen, or the font sizes will be weird.

Now here are two GTK configuration files: ~/.gtkrc-2.0

include "/usr/share/themes/Redmond/gtk-2.0/gtkrc"

style "user-font" {
	font_name = "Tahoma 8"

widget_class "*" style "user-font"

gtk-font-name="Tahoma 8"

include "/home/kmandla/.gtkrc.mine"


Yeah, I know. It says don’t edit it. Are you going to let a computer tell you what to do?

And here’s ~/.gtkrc.mine which I am sure you noticed was called by the previous GTK config file.


That’s all. Nothing fancy there, except it sets the icon for your desktop, so it’s kind of important.

The last one is my ~/.xinitrc file, which only starts up a few things before IceWM itself.

idesk &
volwheel &
setxkbmap jp

xscreensaver -nosplash &
exec icewm-session

I’m 99 percent sure you’ll want to yank the line about the Japanese keyboard. and if you didn’t install xscreensaver, you probably don’t want that line either.

Remember that icewm-session is what handles spawns the background and tray processes, so if you start up these things one by one, you might have to trigger one or both of the others too. Probably best just to stick with the -session.


  • I usually don’t mess too much with the command line prompt in rxvt-unicode, but Peter did offer a quick way to adjust it to look like a standard DOS prompt, as well as an icon source.
  • You may encounter some sort of bizarre behavior between volwheel and icewmtray, where instead of a tray icon with the volume icon in it, you get an unkillable floating zero-size application window. This sometimes happens for me but usually not; I ascribe it to some kind of wimpy race condition between the two. If you figure out a way around that, let me know.
  • The Winamp skin should be decompressed into ~/.local/share/audacious/Skins … why Audacious wants it there is beyond me; I usually just do whatever I can to make Audacious happy. :shock:
  • If you’re an Arch user and you have yaourt installed, this will drag in everything you need for this desktop (except for your video driver), compile it and install it:
    yaourt -S xorg alsa-utils icewm rxvt-unicode epdfview flashplugin galculator xfe gcolor2 gimp gpicview gtk-chtheme gtk-engines idesk-extras audacious audacious-plugins neon leafpad volwheel xscreensaver ttf-ms-fonts ttf-tahoma mplayer codecs unzip recorder scrot

    Recorder is a plain-jane disc burner; scrot allows you to take screenshots and the other few things are just applications I find I sometimes use. Add or subtract as you will.

  • The start menu … is not exactly like the Windows start menu, and to be honest, that’s the point where my interest falls away. If it’s possible to whack the IceWM start menu into conformity with the Windows start menu, I haven’t figured out how to do it. But I can tell you that the IceWM menu is infinitely faster and much easier to navigate than its Windows analogue, so I don’t chase this very hard.
  • If you want some sort of network tool I strongly suggest wicd. Add the daemon to your system startup, add wicd-gtk to your .xinitrc file and it will do the rest.


I think that’s about everything. If you have a suggestion or want to boast about your phony Windows desktop or have a screenshot to show, please feel free to share. :mrgreen:

25 Responses to “Lookalike Windows XP Classic”

  1. 1 Sergio 2010/09/19 at 7:48 AM

    At least if you put the volwheel command in ~/.icewm/startup, a sleep command before should solve that ‘race’ thing
    sleep 2 && volwheel &

  2. 4 dude 2010/11/24 at 7:05 AM

    For the BSOD maybe you can set xscreensaver to start at random and display something :/

  3. 5 llewton 2010/11/30 at 5:19 AM

    I’ll take the… “DOS prompt look” in the hope it could take me way, way, way, way, way back… the rest I just hate. Sorry :)

  4. 6 mike 2011/10/16 at 12:49 PM

    This couldn’t possibly be XP. The fonts are too clear and legible ;)

  5. 7 Dan 2012/01/22 at 6:41 AM

    Interesting project. However, idesk may look like Windows, but it certainly does not feel like windows. You can’t do drag & drop, no right click context menu…

    Have you ever looked at rox (http://rox.sourceforge.net/)? It can be configured to mimic a Windows desktop to a high degree. It is not as lightweight as idesk, but still far away from bloat, and it works very well with IceWM. :-)

  6. 8 Mario 2012/02/13 at 3:40 AM

    I can’t find GnomeXp icons, could you please help me to find them or send them to me?

  7. 9 Mario 2012/02/13 at 3:55 AM

    How Xfe should be configured to get a windows-like look and feel? I see from your screenshot that you managed to get a pretty similar aspect to Windows, but following your instructions you get the standard Xfe look.

  8. 10 chris 2012/02/17 at 4:21 AM

    how about gpicview as picture viewer? is a clone of the one from windows (yeah old post, abandoned blog, whatever :P)

  9. 12 penulis surat lamaran 2013/12/01 at 11:46 AM

    is there the simple way to make lxde looklike windows xp / 7 for newbie like me

  1. 1 Lookalike Windows XP Classic « Motho ke motho ka botho Trackback on 2010/08/15 at 8:49 PM
  2. 2 The fourth Debian is (probably) lucky « Andy C.'s weblog Trackback on 2010/09/03 at 1:03 AM
  3. 3 FOX Desktop and some graphical apps « Motho ke motho ka botho Trackback on 2010/09/07 at 8:59 AM
  4. 4 Wait, is that Windows 2000? « Andy C.'s weblog Trackback on 2010/10/30 at 6:22 AM
  5. 5 My uglified ConnochaetOS beta 2 desktop « Motho ke motho ka botho Trackback on 2010/12/10 at 10:46 PM
  6. 6 Back to Openbox « Motho ke motho ka botho Trackback on 2010/12/26 at 8:13 AM
  7. 7 Ubuntu完美模仿Win7主题 Trackback on 2011/01/13 at 5:51 PM
  8. 8 Ubuntu完美模仿Win7 Trackback on 2011/01/20 at 3:09 PM
  9. 9 Linux does C64 does Unix « Motho ke motho ka botho Trackback on 2011/02/08 at 10:49 PM
  10. 10 IceWM, IceWM, Baby « gambaru.de Trackback on 2011/09/02 at 9:04 PM
  11. 11 The elephant in the room: A coda « Motho ke motho ka botho Trackback on 2011/10/03 at 10:39 AM
  12. 12 Test bed: Dell Latitude D600 | Inconsolation Trackback on 2013/08/22 at 12:29 PM
  13. 13 Bonus: More links, of varying importance | Inconsolation Trackback on 2013/12/08 at 1:06 AM

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 )

Twitter picture

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

Facebook photo

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

Google+ photo

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

Connecting to %s


Visit the Wiki!

Some recent desktops

May 6, 2011
Musca 0.9.24 on Crux Linux
150Mhz Pentium 96Mb 8Gb CF

May 14, 2011
IceWM 1.2.37 and Arch Linux
L2300 core duo 3Gb 320Gb

Some recent games

Apr. 21, 2011
Oolite on Xubuntu 11.04
L2300 core duo 3Gb 320Gb

Enter your email address to subscribe to this blog and receive notifications of new posts.

Join 405 other followers


This work is licensed under the GNU Free Documentation License. Please see the About page for details.

Blog Stats

  • 3,959,123 hits



Get every new post delivered to your Inbox.

Join 405 other followers

%d bloggers like this: