ShiftOS skin formats and compatibility


(/home/alkaline) #1

I’m making this post just to outline the various ShiftOS skin formats and their version compatibility so that people know what skins can be applied to what versions of the game.

Original 0.0.x format

This skin format is prevalent all the way into some early 0.0.8 builds. It’s identifiable by the use of zip compression. If you rename the .skn file to a .zip, you should be able to see the image files used in the skin as well as the skindata.dat file that holds non-image data about the skin (colors, sizes, locations, fonts, etc.)

If you open the skindata.dat file in a text editor, you should be able to scroll to a point in the file where there are absolute Windows file paths pointing to the images used in the skin. These are original 0.0.x skin files and are compatible with all of 0.0.x as well as the ShiftOS In One Week challenge builds.

Late 0.0.x skins

These skins follow a similar format to the original 0.0.x skins but they are identified by the first line of text in the skindata.dat file telling you “this is a ShiftOS skin. Manually editing this file may cause errors.”

These skins are compatible with later 0.0.8 builds as well as 0.0.9 only, but will partially load in ShiftOS in One Week challenge.

ShiftOS-Next

ShiftOS-Next has different skin formats that are used depending on the current desktop environment.

Basic Window Manager skins

These are simply color skins and are stored as skindata.dats with very minimal data. There is no zip compression. You should just be able to load the skin file in a text editor and see a list of packed RGB values as signed 32-bit integers, one per line.

These skins will only load in Basic Window Manager.

Memphis Desktop Environment

No skinning was implemented for MDE. In the lore, Jonathan cared more about functionality of his desktop than customizability.

Shifter’s Desktop

This is a port of the 0.0.8 desktop to ShiftOS-Next and as such, it uses the late 0.0.x skin format.

0.1.0

This is the first skin format where JSON data serialization is used. These skins use zip compression like 0.0.x, so you can get into them by extracting them as zip files.

Images are stored in the exact same way as 0.0.x skins, but the data blob is serialized as JSON. Only 0.1.0 understands these skins, but the ShiftOS In One Week challenge builds MAY read them as native skins due to it being a similar format and some of the JSON fields being the same.

1.0

This format is pure JSON. No more zip compression. You should be able to open these .skn files in a text editor and see pure JSON. Images are stored as Base64 in the JSON data.

Only 1.0 builds will load this format. No other build of ShiftOS will ever be compatible with it.

ShiftOS In One Week Challenge

These builds of the game should theoretically load everything but 1.0 and ShiftOS-Next BWM skins. 0.0.7 skins are confirmed to work fine.