Choosing how to skin Windows - Skin Formats

The first decision after deciding that you want to make Windows look different than how it comes out of the box is deciding how you want to go about it.  Historically there have been several programs that can skin Windows to varying degrees. Those programs are eFX, Illumination, Chroma, and WindowBlinds. Each has their pros and cons which we won't get into here. All but Chroma use a INI based format. Chroma uses a skin langauge called Chromium. It is quite elegant. But it is also very complicated. It also hasn't been certified to work on Windows XP. The others use an INI based "language".

INI based skins and Programming based skins

INI based skins means that each part is put into distinct sections. Here's an example of an INI based skin part:


Image = myskin\titlebar.bmp

TopLeftIndent = 10

TopRightIndent = 10

Buttons = 3

TitleBarTextAlignment = 1

TitleBarTextOffset = 20


What I have shown above doesn't actually exist in the skinning programs, it's just an example of what one might look like. By contrast, a Chromium one might look like:

*WindowFrame { additional_properties = "caption : Mouseable, border : EdgeBitmap"; shaped = true; combine_shape = false; cobmbine_child_shapes = true; content { combine_shape = true; combine_child_shapes = false; } caption { combine_shape = false; combine_child_shapes = false; } border.combine_shape = true; }

The job of an INI based skin language is to make it as straight forward as possible (at the expense of elegance) as to how a skin works. This is my title bar. My title bar uses this image. The image is unique 10 pixels from the left and from the right. There are 3 buttons, the text is aligned from the left, it is indented by 20 pixels from the left. The drawback is in power and elegance.

Since this guide is written by Stardock, we're naturally biased towards our particular languages. The program that most people use to skin Windows is called WindowBlinds and it supports two INI based languages. The first one is called "Standard" (also known as "Extended Visual Styles) but we'll refer to by its techie name, UIS1 for this document. The second one is called "Professional" which we'll call UIS2.

UIS1 vs. UIS2

Why two skin languages? Because each has their own strengths and weaknesses that you as a skin author will have to weigh. Let's look at the pros of each:

UIS1 Strengths

  • Very very fast (twice as fast as Microsoft's own Windows XP visual style on a similar skin)
  • Works with virtually every program (almost nothing needs to be excluded)
  • Uses fewer resources on Windows 98/ME
  • Window size/position is same as a standard window


UIS2 strengths

  • Supports animation in title bars
  • Each side of a window can be its own size and shape
  • Buttons can be placed on any side of a window (even the bottom)
  • More straight forward to skin (since there's no limitations on sizes and positions of things)

UIS1 Weaknesses

  • Borders must be a set size of 4 pixels
  • Skin authors must specify the height of their title bar
  • Buttons must be on the title bar.
  • Limited number of effects allowed.

UIS2 Weaknesses

  • Windows aren't actually the size they think they are (because borders can all be independently sized, this sometimes creates "strange" behavior where the Windows thinks the window is 20 pixels higher than it is).
  • Slower than UIS1 since it has to handle much more complex regions
  • Compatibility issues with programs that don't follow GUI coding guidelines.


Most (nearly all) skins are made with UIS2. But that's not because UIS2 is better, it simply reflects the priorities that most people who customize their system.  Sometimes users on the Internet will criticize WindowBlinds saying it's "buggy" or "slow". Odds are they used a UIS2 skin and had some problem. Ultimately, as a skin author, you are probably making the skin for your own enjoyment. And so the skin represents what you consider to be a priority. Since UIS2 skins work fine for nearly everyone, most skin authors, giving their work away for free, aren't terribly concerned if some guy somewhere is having problems with some strange application. As time goes on, Stardock will probably include more and more UIS1 skins to cut down on support even at the expense of the skins not being quite as fancy. Which one you use is up to you. If your skin design can be done with UIS1, then by all means, use that. But you should probably let the vision of what kind of skin you want to make guide you, not the skin language.

(c) 2002