Skinned 0.01

(c) 2026 R. F. Windley & The Really Small Software Company


Skinned applies the theme selected in Choices:Themes.Choices when the
desktop starts. It is a reimagining of Theme Selector by Chris Wraight,
and reads the same theme directories and Choices files, including those
written by Skinny.


Supported systems

The running OS is read from Boot$OSVersion (OS_Byte 129 if that is not
set). Resources.Versions lists the Choices tokens each version cannot
use; it is the same format as Skinny's Versions file.

  RISC OS 4.02        IconSprites, ToolSprites, WimpVisualFlags.
                      No window outline or WimpIconBorder settings.

  Select (4.29-4.39)  IconSprites -priority, WimpVisualFlags and
                      WimpIconBorder. No window outline settings.

  RISC OS 5           WimpVisualFlags including window outline colours
                      (WindowManager later than 5.00). Settings from
                      !WimpVF (Choices:Boot.Tasks.WimpVisualFlags) are
                      kept. No WimpIconBorder settings.

  RISC OS 6           As Select, plus window outline colours.

Switches already in Choices:Boot.PreDesk.WinSetup and IconSetup that the
theme does not mention are kept. A token set to No removes its switch.
Tokens the running OS cannot use leave the existing switch alone.


Installing

Skinned lives in Boot:Resources.!Skinned and is run by its !Boot file
when the desktop starts. It does not need the old !Themes (Theme
Selector): themes go in Skinned's own Themes directory, one
sub-directory per theme holding some or all of Choices, Icons and Tools.
Skinner creates the Themes directory when the first theme is installed.

If Skinned has no Themes directory and the old !Themes is installed
(Themes$Dir is set, or Boot:Resources.!Themes exists), Skinned uses the
themes in !Themes.Themes instead. Resources.Versions is always read from
Skinned.

The commands that apply the theme are written to Skinned.Output and run
once the desktop has started. They finish by redrawing the desktop in the
current mode with Skinned's !RunImage -setmode, so no SetMode file is
needed. Theme$Current and Theme$Path are set to the theme in use.
