# Legacy SetupS File Specification (.app/.ppg)

Note: This file-format has been depreciated. It is provided here as reference-only and due to the requirement of maintaining backwards compatibility.

This is the most important file of the ssTek deployment package. It is an ordinary text file that resembles an .ini-file but is much more advanced. Section names are enclosed in <...> and although keys and their values are handled much the same way as .ini-files, this spec allows for values without keys and these values can actually be several lines of data.
Use any text-editor, such as Notepad2, to create or modify one. Or the easiest way is to simply use the SetupS Editor (ssEditor) included with the SetupS package.
Also like an .ini-file, most system and environmental variables, frequently seen enclosed in %...%, are recognized plus many new ones specific only to SetupS (i.e., %ppApps%). See Automatic Variable Substitutions Chart for more details.

Ξ Note: Section ordering is unimportant, with two exceptions: <Title> needs to be the first section (a requirement for ssWPI) and <End> needs to be last (for obvious reasons).
_____________________________________________________

<Title>

(Required)
Single-line only. Name of Application or Game.

<Version>

(Optional)
Single-line only. Version (for App's) or Copyright (for Games) information, for example:

v1.23|c2009, etc.

<URL>

(Optional)
Multiline allowed. Currently only used by ssWPI. Enter websites addresses here. For example:

http://www.xyz.com
http://www.example.com

<Description>

(Optional)
Multiline allowed. Currently only used by ssWPI. Enter a description of the application or game.

<Assembly>

(Recommended for ssApps. Optional for ppApps/ppGames)
Ignored during Regen-mode. Multiline allowed. Place commands, components, directives (see below), setup, or install package(s) here with proper silent install switches or script(s) to automate the install. Mainly for SetupS/ssApps, but can be used with ppApps/ppGames for any post-install or preprocessing commands, script(s), or registry entries.

See these for useful Components or Directives.

Some examples:

setup.msi /qb
%WaitForIt% "%ProgramsCommon%\TestStartmenu.lnk"
%ProcessKill% "Notepad.exe"
%AddonInstaller% "%SourcePath%\Test_addon.7z"
%AddToHosts% "127.0.0.1 secure.example.com"
%Extract% "Extras.rar" -o"%SystemRoot%\LastXP"
md "%ProgramFiles%\Something" #CMD#
"7z920-x64.msi" /qb #Is_x64#
ImportTest.reg
ScriptTest.cmd

<Category>

(Recommended)
Single-line only. Separate multiple categories with "|" on the same line. Currently only used by ssWPI. See Category List for a complete list.

<Flags>

(Optional)
Set these = "Yes/No", "1/0" or "True/False" (whatever your preference). Note: Assumed to be "No/0/False" unless otherwise noted; such as 'MakeInStartMenu' and 'AllUsers', below.
The following are recognized by SetupS and apply mainly to shortcut creation.
Shortcut Locations:

MakeInStartMenu=

Default is Yes, so set to "No" to NOT create Shortcuts in the StartMenu. . Affected by the Shortcut Options: "KeepInFolder" and "KeepAll", below.

MakeInRoot=

Create shortcut in "Start Menu" (Root). Only the first shortcut listed from <ShortCutNamesKeep> or from <ShortcutS>.

MakeInPrograms=

Create shortcut in "Start Menu\Programs". Only the first shortcut listed from <ShortCutNamesKeep> or from <ShortcutS>.

MakeInStartUp=

Create shortcut in "Start Menu\Programs\Startup". Only the first shortcut listed from <ShortCutNamesKeep> or from <ShortcutS>.

MakeSendTo=

Create shortcut in "SendTo" context-menu. Only the first shortcut listed from <ShortCutNamesKeep> or from <ShortcutS>.

MakeDesktop=

Create shortcut on "Desktop". Only the first shortcut listed from <ShortCutNamesKeep> or from <ShortcutS>.

MakeQuickLaunch=

Create shortcut in "QuickLaunch". Only the first shortcut listed from <ShortCutNamesKeep> or from <ShortcutS>.

AllUsers=

Create shortcut(s) for "AllUsers" instead of "Current User" using above listed flags.
Default is Yes, so set to "No" to create Shortcuts for "Current User".

TaskbarPin=

(Windows 7 only). Pins a shortcut to the Taskbar. Only the first shortcut listed from <ShortCutNamesKeep> or from <ShortcutS>.

StartmenuPin=

(Windows 7 only). Pins a shortcut to the Startmenu. Only the first shortcut listed from <ShortCutNamesKeep> or from <ShortcutS>.

Shortcut Options:

KeepAll=

Keep all the shortcuts available in <ShortcutS> and ignore <ShortCutNamesKeep>. Applies to Shortcut Location "MakeInStartMenu" only.

KeepInFolder=

Contain the shortcut(s) in the folder specified in <StartMenuSourcePath>. Applies to Shortcut Location "MakeInStartMenu" only.

NeverSort=

Suppress shortcut creation of any kind whatsoever. Over-rides "AlwaysSort", below.

AlwaysSort=

Force shortcut creation into an Advanced menu rather than the Standard one

NoMenuIcons=

Suppress this App's StartMenu icon folder creation

RefreshDesktop=

Force a desktop refresh (without having to cycle thru a logoff then logon)

LivePE=

Mark this ppApp/ppGame for LivePE's such as ppAppsLive or ppGamesLive (not implemented)

Post-processing Options:

NoneThing=

Suppress SetupS related files. Basically, this prevents creation of the Aux files (screenshot, fader, etc.), advanced startmenu shortcuts, folder icons, and the .app-file. This also means that the app will be rendered invisible or nonexistent to SetupS and ssWPI.

ssWPI Options (the following only affect ssWPI):

AlwaysShow=
DuringSetupOnly=
InstallT13=
InstallInstant=
Order=

<AppPath>

(Recommended but not required)
Single-line only. Install to path here -- the actual physical (final) location of the app or game.

<StartMenuSourcePath>

(Required only if shortcuts are to be created)
Single-line only. The original shortcut folder name for SetupS/ssApp's or default/non-advanced StartMenu folder for ppApps/ppGames. This is where shortcuts get created if no advanced StartMenu sorting is selected.

<MenuCatalog>

(Recommended)
Multiline allowed. For Advanced StartMenu sorting only, this defines where to create shortcuts. See StartMenu Catalog for a complete list. Note, if utilized, <StartMenuDestPath> is ignored.

<StartMenuDestPath>

(Depreciated)
Only two lines allowed. For Advanced StartMenu sorting only, this defines where to create shortcuts. The first line is for the Kazz Layout (see StartMenu Destinations - Kazz); and the second line is the ssTek Layout (see StartMenu Destinations - LastOS). Separate multiple locations with "|" on the same line as the layout. Ignored if <MenuCatalog> is used instead (see above).

<ShortCutNamesKeep>

(Optional or Required depending on the KeepAll flag or if BuildType is a ppApp or ppGame)
Multiline allowed. List which shortcuts desired to keep (if KeepAll=No). First one listed here is the most important one as it is the one to be used for creating the Desktop, Startup, Sendto, or QuickLaunch shortcut(s).

<OS>

(Optional)
Single-line only. Used by ssWPI for filtering app/game lists or by SetupS to gate installs. Use: 1 (2K/XP/2K3) | 2 (Vista/7)

<Architecture>

(Optional)
Single-line only. Used by ssWPI for filtering app/game lists or by SetupS to gate installs. Use: 1 (x86) | 2 (x64) | 3 (DualArch)

<LicenseType>

(Optional)
Single-line only. Used by ssWPI for filtering app/game lists. Use: 1 (non-gratis) | 2 (gratis-only) | 4 (libre)

<BuildType>

(Optional)
Single-line only. Use: ssApp|ppApp|ppGame

<Script>

(Optional)
Multiline allowed. Place batch file (.bat) or script (.cmd) contents here. Use of %Variables% including Component variables is allowed (and encouraged). Also, Gate Directives (such as #Is_x64#, #Is_NT6#, etc.) are allowed.

<Registry>

(Optional)
Multiline allowed. Place the contents of registy tweaks or patches (.reg) here. Use of %Variables% and Gate Directives (such as #Is_x64#, #Is_NT6#, etc.) is allowed (and encouraged).

<Extensions>

(Optional)
List the file extension(s) (one per line) to associate with the entire Application or Game. The use of Gate Directives (such as #Is_x64#, #Is_NT6#, etc.) is allowed.

<InstallFonts>

(Optional)
List font-files (one per line) here to be installed to the Windows Fonts applet. Use of %Variables% and Gate Directives (such as #Is_x64#, #Is_NT6#, etc.) is allowed.

<RegisterDLL>

(Optional)
List any files (one per line) here to be installed via the Windows Register Server. Use of %Variables% and Gate Directives (such as #Is_x64#, #Is_NT6#, etc.) is allowed.

<ShortcutS>

(Optional)
List ppApp/ppGame or extra ssApp shortcuts here. Each Shortcut is defined as follows:
Target=

Required. Must be first in the section. This is the actual physical filename of app or game; usually the .exe. Do not use parameters or arguments here (see below for that).

Shortcut=

Required. This is link or name of the shortcut as it will appear in the StartMenu, etc.

WorkingDir=

Optional. What folder to start in, or work from.

Comment=

Optional. A short description of this shortcut.

Arguments=

Optional. Shortcut arguments or parameters, if any

Icon=

Optional. File name of icon to use.

IconIndex=

Optional. The icon instance to use (default is 0)

Extension=

Optional. File extension(s) to associate with this Shortcut/app. Over-rides <Extensions> above.

Windowstate=

Optional. The state the shortcut is launched in. Use 1=Normal (default), 2=Minimized, not active, 3=Maximized, 7=Minimized but not active.

Flags=

Optional. Only gates (such as #Is_x64, #Is_NT6, etc.) are supported at the moment.

<Meta>

(Optional)
Tags=

Optional. Separate multiple tags with "|". Currently only used by ssWPI. Unlike <Category>, this is a searchable-freeform field where any keyword or phrase is allowed.

Publisher=

Language=

Releaser=

Additional=

Rating=

RequiredRuntimes=

ReleaseVersion=

ReleaseDate=

InstalledSize=

LicenseType=

Optional. The type of license that applies. Use as so:

0 (N/A or Unassigned).

1 (non-gratis). Proprietary and closed-source (commercial). Example: Microsoft Office.

2 (gratis-only). Proprietary and closed-source (non-commercial). Example: Kingsoft Office.

3 (libre). Non-proprietary and open-source. Example: LibreOffice.

<End>

Copyright © 2020, Vergitek Solutions

ssTek Forum: Tools for custom Operating Systems!