UberSkin themes [skins] format documentation
Features not supported in LameSkin are highlighted.

UberSkin
World's first skinning engine which is capable of maximally native theming of windows, buttons and taskbar.
Consumes as minimum resources as possible, works fast, unloads clean.
It is highly compatible with Windows XP '.msstyles bitmaps. See FAQ for information on porting.

Creating a new theme
To create a new theme, you must repeat those steps until you're satisfied:
1) Open \Windows\Resources\Themes folder. Select "Windows XP" or other folder with theme you think it'll be easier to start with.
Copy it into same folder with different name. It will be your theme name. Remember it :)
2) Open Display Properties -> Appearance.
Tweak some theme with color and sizes you want. Save it under that name you desired. Apply it.
3) Go to \Windows\Resources\Themes\<your theme name> and edit skin.ini as you like. Add your bitmaps or replace existing.
Repeat steps 2-3 until you satisfied. To refresh loaded bitmaps, you must apply other theme or theme variaton and then apply your skin back.
Note: you can create various themes with same bitmaps, but different colors / metrics. If your theme is named Ubuntu, then, you can save variations of it under names
Ubuntu_Large, Ubuntu_Inverted and so on.

Global Section
This section defines all things which are not applicable in common section format.
Default values are specified.
[Global]

GlyphLimit=18
When loading a theme, UberSkin uses images for small glyphs if Windows caption button height is lesser or equal than this value.
NoPremultAlpha=0
This setting controls all alpha-blending operations. In Vista msstyles format all images are coming with pre-multiplied alpha.
Images with pre-muliplied alpha contain every pixel muliplied with its alpha value.
There is no software i'm aware of which allows to pre- or de- multiply alpha. So, please let it be 0 and use images with normal alpha channel.
If you'll specify wrong value, your 32-bit images may come too dark or too bright.
GroupBoxColor=0 0 0
Specifies group box text color. R G B
TaskText=0 0 0
Specifies text color for buttons on taskbar. R G B
ClockText=0 0 0
Specifies text color for clock on taskbar. R G B
TaskBarSize=30
Specifies taskbar height, if taskbar skinning is used.
Don't play too much with it!
TransCorn=x
Specifies if your top window frame uses transparent corners.
If x=0 (default), no transparent processing is used.
If x>0, each image is examined in left and right x*x squares for magenta color.
Note: transparent corners provide worser perfomance when resizing windows.
AeroButtons=0
If set to 0, system metrics and placement are used for caption buttons.
Otherwise, bitmap size is used.
AeroButtonsMinRight=x
If AeroButtons=1, x specifies minimal caption button right shift.
AeroButtonsTop=x
If AeroButtons=1, x specifies caption buttons top shift.
AeroButtonsTopMaxi=x
If AeroButtons=1, x specifies caption buttons top shift for maximized windows.
ActiveShadow=1
Specifies that active windows will have title shadow.
ActiveShadowColor=0 0 0
Specifies title shadow color for active windows. R G B
InActiveShadow=0
Specifies that inactive windows will have title shadow.
InActiveShadowColor=0 0 0
Specifies title shadow color for inactive windows. R G B
ProgressShift=1
Specifies etching offset for progress bar chunk. I.e. if you have progress bar occupying coorinates (0,0)-(100,20), then chunk will fill itself in (1,1)-(99,19) when ProgressShift=1.
QLCutOffTop=0
Specifies amount of pixels to cut off from TaskbarToolbar image top.
QLCutOffBottom=0
Specifies amount of pixels to cut off from TaskbarToolbar image bottom.

Common section format
Those lines apply to every section in skin.ini file, although, all of them are optional except Bitmap.
[SectionName]
Bitmap=bitmapfile.bmp
Specifies bitmap file (with extension) which will be loaded.
It must be 8-bit, 24-bit with magenta (R:255 G:0 B:255) or 32-bit image with alpha channel if you desire transparency.
Note: you can specify images from other skin(s), in relative path format (..\otherskin\otherbitmap.bmp)
Count=x
Specifies count of individual images in file in vertical order.
Note: if you provide less images than
MarginLeft=x
MarginRight=x
MarginTop=x
MarginBottom=x
Specifies margins (corners) for one image, that won't be stretched.

GlyphBitmap=bitmapfile.bmp
GlyphBitmapSmall=bitmapfile.bmp

Glyphs are helper images which are centered in your bitmaps. They're practically used in caption buttons.
They are intended to be transparent, so you must use 8-bit, 24-bit bitmap file with magenta (R:255 G:0 B:255) or 32-bit one with alpha channel
They must contain same number of images as specified with Count. GlyphLimit (previous page) defines if standard or small glyphs will be loaded. You must specify both or none.
AlphaLevel=255
Specifies transparency level (0-255) for any fake (pre-rendered) translucency.
AlphaLevelGlyph=255
Specifies transparency level (0-255) for glyph to be rendered over image.
Tiled=0
Specifies that image will use tiling, not stretching method when sizing.
NoPremultAlpha=x
Overrides global alphal pre-multiplying for this image. Specify it when you must use both pre-multiplied and standard 32-bit images within your skin. (ex. Vista Standard)

Skin Sections
[Button]
Purpose: Standard buttons
Transparency: Fake 32-bit transparency.
Image count: 5
Image strip:

Normal, Hovered, Pressed, Disabled, Selected

[CheckBox]
Purpose: Check boxes
Transparency: None
Image count: 12
Image strip:

Unchecked Normal, Hovered, Pressed, Disabled
Checked Normal, Hovered, Pressed, Disabled 
Intermediate Normal, Hovered, Pressed, Disabled 

[RadioButton]
Purpose: Radio buttons
Transparency: Fake 32-bit transparency.
Image count: 8
Image strip:

Unchecked Normal, Hovered, Pressed, Disabled
Checked Normal, Hovered, Pressed, Disabled 

[CloseButton], [CloseButton], [MinimizeButton], [RestoreButton], [MaximizeButton], [HelpButton]
Purpose: Caption buttons: Close button,  Close button (if no other buttons visible - highly optional), Minimize, Restore, Maximize, Help
Transparency: Fake 32-bit transparency.
Image count: 8
Image strip:

Active Normal, Hovered, Pressed, Disabled
Unactive Normal, Hovered, Pressed, Disabled 

[CaptionN]
Purpose: Window frame top.
Transparency: Magenta transparency with TransCorn.
Image count: 2
Image strip:

Active
Unactive

[FrameTopLeft], [FrameTopRight]
Purpose: Window frame top left and top right. Do not implement it unless you want something very precise. May help when porting WindowBlinds skins.
Transparency: None. Breaks CaptionN transparency.
Image count: 2
Image strip:

Active
Unactive

[FrameLeft], [FrameRight], [FrameBottom]
Purpose: Window frame left, right and bottom borders.
Transparency: None.
Image count: 2
Image strip:

Active
Unactive

[ComboBox]
Purpose: Combobox button
Transparency: Fake 32-bit transparency.
Image count: 4
Image strip:

Normal, Hovered, Pressed, Disabled

[GroupBox]
Purpose: Group box.
Transparency: Magenta transparency.
Image count: 1
Image strip:


[Taskbar]
Purpose: Taskbar background.
Transparency: None.
Image count: 1
Image strip:


[TaskbarVert]
Purpose: Vertical taskbar background. Optional.
Transparency: None.
Image count: 1
Image strip:


[TaskbarButton]
Purpose: Taskbar task buttons
Transparency: Magenta transparency. Rendered over itself, so be careful to make images with equal shape.
Image count: 7 or 6
Image strip:

Normal, Hovered, Selected, Hung, Not Used, Hovered Selected, Flashing

[TaskbarButtonFlash]
Purpose: Taskbar task button in flashing state. When you're porting Windows XP skin, you can add seventh (flashing) image to TaskbarButton manually,
but it is easier to leave images as is, and specify TaskbarButtonFlash separately. When you specify it, TaskbarButton Count should be set to 6, as it is.
Transparency: Magenta transparency.
Image count: 1
Image strip:


[TaskbarTray]
Purpose: Taskbar tray. Optional.
Transparency: None.
Image count: 1
Image strip:


[StartButton]
Purpose: Start button
Transparency: Real 32-bit transparency or magenta transparency.
Image count: 3
Image strip:

Normal, Hovered, Pressed

[StartButton.LANGID]
Purpose: Start button with text in other language. LangID is a number identificator of the lanuage.
Transparency: Real 32-bit transparency or magenta transparency.
Image count: 3
Image strip:

Normal, Hovered, Pressed


[IEToolbar]
Purpose: Toolbar buttons for flat toolbars.
Transparency: Magenta transparency.
Image count: 6
Image strip:

Normal, Hovered, Pressed, Disabled, Checked, Checked Hovered.

[ScrollArrows]
Purpose: Toolbar buttons for Explorer & IE.
Transparency: Fake 32-bit transparency.
Image count: 16
Image strip:
Up Normal, Hovered, Pressed, Disabled
Down Normal, Hovered, Pressed, Disabled 
Left Normal, Hovered, Pressed, Disabled
Right Normal, Hovered, Pressed, Disabled

[ScrollShaftV]
Purpose: Scroll bar vertical shaft.
Transparency: None.
Image count: 4
Image strip:

Normal, Hovered, Pressed, Disabled

[ScrollShaftH]
Purpose: Scroll bar horizontal shaft.
Transparency: None.
Image count: 4
Image strip:

Normal, Hovered, Pressed, Disabled

[ScrollThumbV]
Purpose: Scroll bar vertical thumb box.
Transparency: None.
Image count: 4
Image strip:

Normal, Hovered, Pressed, Disabled

[ScrollThumbH]
Purpose: Scroll bar horizontal thumb box.
Transparency: None.
Image count: 4
Image strip:

Normal, Hovered, Pressed, Disabled

[ProgressTrack]
Purpose: Progress bar background.
Transparency: Fake 32-bit transparency.
Image count: 1
Image strip:


[ProgressChunk]
Purpose: Progress bar foreground.
Transparency: None.
Image count: 1
Image strip:


[TaskbarToolbar]
Purpose: Toolbar buttons for taskbar (Quick Launch, for example).
Transparency: Magenta transparency.
Image count: 6
Image strip:

Normal, Hovered, Pressed, Disabled, Checked, Checked Hovered

[TrackbarD],[TrackbarH],[TrackbarU],[TrackbarV],[TrackbarL],[TrackbarR]
Purpose: Track bars (sliders): for horizontal silders pointing Down, Both Horizontal, Up sides; for vertical ones pointing Both Vertical, Left, Right sides.
Transparency: Fake 32-bit, Magenta transparency.
Image count: 5
Image strip:

Normal, Hovered, Pressed, Not Used, Disabled.


FAQ - Easy Windows XP skin porting
Q: How to get exact theme colors fast?
A: Go to Windows XP. Set theme you want. Go to regedit. Export [HKEY_CURRENT_USER\Control Panel\Colors] to (Win9x/NT4) reg file.
Import in into your Windows 98. Logoff. You'll get colors you want. Save it under your theme name and viola!

Q: How to get margins?
A: Theoretically, you must extract all those TEXTFILE\SOMETHING_INI and examine them.
Practically, you can left values from Windows XP, ZuneXP or other skin and tweak them if they're looking bad.

Q: How to port all bitmaps fast?
A: You can open .msstyles in Restorator and quickly drag-and-drop them over old bitmaps.
Some skins may have exactly same bitmap name or slighly varying.
You should only care about [StartButton] - it must contain text or image, otherwise it'll look dumb.

I recommend using ArtIcons Pro to easily deal with 32-bit images.