Advanced .rmskin Options

There are times that you want to release a new version of a skin or "suite" of skins. This might be to:

Completely replace the skin or suite of skins.
  • Simply create a new .rmskin with all files.
  • The installing user may or may not have installed the previous version of your .rmskin. It is just a "new" install if not, and a "replace" if so.
Change only some files in a suite of skins while leaving others alone.
  • Create a new .rmskin, with the same root config folder, but only the files you want to replace in the folder tree. You must use Merge skins. (See below for instructions)
  • The installing user must have installed the previous version of your .rmskin.
Add new skins and / or other files to an existing installation.
  • Create a new .rmskin, with the same root config folder, but only the files you want to add in the folder tree. You must use Merge skins. (See below for instructions)
  • The installing user must have installed the previous version of your .rmskin.

With any of these three approaches you use, (or a combination of the second and third) one thing that needs to be kept in mind is that a user may have set the variables you put in to have the skin work correctly for that user. This might be variables for cosmetic colors, fonts or sizes, or variables for gmail logins, RSS feed URL's, weather location codes or other functional settings for the user.

Variables are key=value options in a [Variables] section in a .inc or .ini file.

In any case, unless you want to the user to have to "start over" with configuring your skin or suite with their personal information and cosmetic choices, You should consider using one or both of the following advanced options for your new .rmskin.

Using Advanced Options

Create your .rsmkin from the Manage dialog. Once you have selected the root config folder for the skin or suite of skin, click Next. Set any options on the Options tab before continuing.

Select the Advanced tab on this dialog:

Advanced option - Variables files:

Specify the file location starting with the root config folder. Multiple files can be added by separating them with the pipe | symbol.

Format: RootConfigFolder\Folder\MyVars.inc | RootConfigFolder\Folder\MySkin.ini
Example: MySuite\@Resources\Includes\SuiteVars.inc | MySuite\Clock\AnalogClock.ini

Result:

  • Any existing variables that are in both the current file(s) and the .rmskin are left unchanged.
  • Any existing lines that are in both the current file(s) and the .rmskin and are not variables are replaced.
  • Any lines of any type that are in the .rmskin and not in the current file(s) are added.
  • Any lines of any type that are in the current file(s) and not in the .rmskin are removed.

Advanced option - Merge skins:

Result:

  • The root config folder is not removed or backed up.
  • Any new files in the .rmskin are added.
  • Any changed files in the .rmskin are completely replaced.
  • Any files that are in the root config folder but not in the .rmskin are left unchanged.
  • Merge skins cannot be used to remove any files.

Both Variables files and Merge skins:

One or more .ini (or .inc) files are listed in Variables files, and Merge skins is checked.

Result:

  • Both actions are done.
  • Can be used used to change a skin .ini file while leaving existing variable values set by the user unchanged.
  • Can be used to add lines to a .inc file, while leaving existing variable values set by the user unchanged.

Neither advanced option:

Result:

  • The root config folder is backed up and removed.
  • All files are completely replaced.

What won't work:

  • The installing user can't have added any new files that are not in the .rmskin, unless Merge skins was used.
  • The installing user can't have added any new lines of any type in any file if that file exists in the .rmskin.

Final note: It wouldn't do any harm, and might even make you a friend, if you just add files that contains variables to the "Variables files" option in "Advanced" even if it ISN'T a new version of your skin. Just always do it... Why? If an end-user installs your suite, does all the setting up of all the variables for his personal information and all that, then screws up one or more skins trying to customize something, they will thank you when you tell them they can just "re-install" your .rsmkin again and get back to square one without losing all the variables they set.