Lookalike Windows XP Classic

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. 😈

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. 😯
  • 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:


33 thoughts on “Lookalike Windows XP Classic

  1. Pingback: Lookalike Windows XP Classic « Motho ke motho ka botho

  2. Pingback: The fourth Debian is (probably) lucky « Andy C.'s weblog

  3. Pingback: FOX Desktop and some graphical apps « Motho ke motho ka botho

  4. Sergio

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

  5. Pingback: Wait, is that Windows 2000? « Andy C.'s weblog

  6. llewton

    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 🙂

  7. Pingback: My uglified ConnochaetOS beta 2 desktop « Motho ke motho ka botho

  8. Pingback: Back to Openbox « Motho ke motho ka botho

  9. Pingback: Ubuntu完美模仿Win7主题

  10. Pingback: Ubuntu完美模仿Win7

  11. Pingback: Linux does C64 does Unix « Motho ke motho ka botho

  12. Pingback: IceWM, IceWM, Baby « gambaru.de

  13. Pingback: The elephant in the room: A coda « Motho ke motho ka botho

  14. Dan

    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. 🙂

  15. Mario

    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.

  16. chris

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

  17. Pingback: Test bed: Dell Latitude D600 | Inconsolation

  18. Pingback: Bonus: More links, of varying importance | Inconsolation

  19. Pingback: Any colour you like | Motho ke motho ka botho

  20. Addison

    I have used Windows classic for a LONG time (since Win95)– and I am VERY accustomed to using it — but it seems like it is no longer supported in Windows 8. So, since Win/XP is phasing away, I would like to migrate to Linux, but find it uncomfortable. I like the prospect of tailoring Linux to look like Windows classic. It seems like you have done this — but your instructions, while no doubt comprehensive — appear complicated to me — and requiring of some deeper degree of Linux expertise than I have.
    I have looked at Zorin, but find it only superficially like w/classic
    Would you be open to developing a canned script for me to install your (apparently) more comprehensive simulation? If we do this as a fixed-price project What would the cost be? — Thanks — Addison

    1. Nico

      I strongly recommend you do NOT do this. This blog is primarily aimed at people who are at least intermediate level linux users. This procedure will certainly make the computer LOOK like Windows XP, but the BEHAVIOR will be so different that it may well be borderline unusable for you: In particular, almost any form of system configuration would have to be done via the command line.
      There do exist techniques to make more “user-friendly” environments look like Windows, but honestly I wouldn’t recommend you go that way either: No matter how much you alter the outward appearance and theming, Linux will never be Windows.
      Zorin OS (which you mentioned) is not exactly a windows imitator, so much as a way to try to make the learning curve as shallow as possible, and I have heard it does a pretty good job (I have never used it myself).
      I am sorry to be the bearer of bad news . . .
      . . . On the bright side, however, Linux is great! Trying to make Linux look like Windows classic is like trying to apply makeup to a supermodel so that she looks like your ex-girlfriend. My advice (if it is worth anything) is to accept that Windows classic is dead: Pick one of the “user-friendly” systems (Linux Mint, Zorin OS, *buntu, etc.) and bite the bullet. My money says in a few months you will find you don’t miss windows classic at all.

  21. Pingback: termsaver and terminal-screensaver: Peas in a pod | Inconsolation

  22. uskerine

    I have found this post really useful. I always found Windows XP Classic style as a pleasant theme/environment for working long periods in the computer. It is simple, professional and does not distract from work.

    The only thing I miss from the post is that GnomeXP iconset link (under themes, at the beginning of the post) http://www.gnome-look.org/content/show.php/show.php?content=69587 seems to be broken.

    ***** Could anyone help to locate the set? ******

    Also for the Tahoma fonts, I think that you can install -if you are using Arch Linux- from the AUR repository (ttf-ms-fonts), although I am not 100% sure that they are the same.

  23. Pingback: More awesome GTK and WM themes for your Linux desktop. | Securitron Linux blog.

  24. steve

    If then so When do developers of Linux get it ??? It’s all about graphical user interface that matter ! Untill GUI is not user friendly and ease of use with max mouse integration and interactive desktop usability just like win is untill then Linux is not the choice of Desktop OS no matter how many PhD is done on it !!! Personaly i dont like that developers are developing eye candy os lok a like Desktops – usability, installing app and other tasks in compare to Win are then nightmare, but what i would like to have is easy mouse click package installer with install from the source (or unified package manager) for all dektop Linux OS-ses and interactive desktop system tools in context menu and so on ! If i can not control os then i dont use it and no Linux can be controlled by user if he/she is not developer ! Usability 0 points, installing app 0 points, modding and changing themes and or desktop managers also 0 points, usable app integration within context menu 0 points, easy interactive desktop 0 points in compare to WinXP Linux is nightmare when it comes to use it to job to be done ! Linux fro developers for developers ! Linux was desighed as strong purpose OS and development goes that way ! Linux will newer be universal desktop OS far to many non standarized flavors packages and guis that arent compatible !!! Also goes for app ! On one Distro goes on another does not even if Debian sourced !


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 )

Facebook photo

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

Connecting to %s