How do I configure LiteStep?
LiteStep and all LiteStep modules are configured through a text file known as
the Step.RC, located by default in the same directory as litestep.exe.
Each module that is loaded by LiteStep has its own settings to be placed
in the Step.RC. These settings can go in any order in the Step.RC,
however it is good practice to group together the commands for each
module. Any line in the Step.RC that begins with a semi-colon, ";" is a
"comment", and is ignored by LiteStep.
LiteStep reads the Step.RC on startup and when you use !Recycle or !Refresh.
If you make a change to the Step.RC, the change will not take place until you
!Recycle, !Refresh or restart LiteStep.
What is a Module?
A module is a mini-program or plugin that adds features to LiteStep. Almost
all LiteStep modules have a .dll extension, although some old Wharf modules
have an .app extension. Modules bring new Step.RC commands and new !Bang
commands to LiteStep, so it is essential to read the appropriate documentation
before using and configuring a new module.
"Core" modules are those that come with the basic LiteStep distribution. There
are ten of these core modules:
However, the true power and flexibility of LiteStep
lies in the large number of Third-Party Modules, usually written by programmers
outside of the Development Team. There are currently several hundred Third-Party
Modules available, with a wide range of functions. These modules are updated
reasonably regularly until they are considered stable by the author and the
community. It is important to stay informed of the latest and/or most stable
version of any modules you are using. Refer to the
Links section for webpages that have Third-Party
Modules for download.
Both Core and Third-Party modules are loaded by LiteStep with the
LoadModule command. The core desktop2.dll should be loaded before all other
Note that full paths or Environment Variables can be used in this command. Some
modules can also be loaded by the Wharf. Refer to the documentation for
the Wharf for instructions on how to do this.
What is a !Bang Command?
A !Bang command is an internal command specifically designed to control LiteStep
or one of its modules. All !Bang commands are prefixed with an exclamation
point, "!". For example, the !Bang command "!Run" displays the Windows Run
dialog box. !Bang commands can be executed by hotkeys, shortcuts, popups and so
on. A full list of the !Bang commands available to LiteStep at any particular
time can be obtained by issuing the !About command and selecting "!Bang
Commands" from the drop-down list. An explanation of the function of each
!Bang command can be found in the appropriate documentation.
For example, to put the !Recycle command in the popup menu:
*Popup "Recycle LiteStep" !Recycle
Remember any !Bang Command that alters something in the Step.RC is only a
temporary change and will be changed once you !Recycle, !Refresh or restart
What is an Environment Variable?
Environment Variables allow you to define certain words to
abbreviate commonly used paths. They are surrounded by dollar signs ($)
and can be used in any LiteStep command, although most commonly in the
Step.RC. Environment Variables are best used for replacing long paths or
frequently used paths so that they can be quickly typed into the Step.RC when
required. In addition, Environment Variables are a useful tool for making
themes easily customisable. The user can quickly enter their own paths
for the Environment Variables used in the theme, reducing the need to
fix every single path in the Step.RC.
Note: When replacing path names with Environment Variables you
should always end the path with a "\".
Defining the Environment Variable "ModuleDir":
Referencing this path in the Step.RC is done like this:
There are a large number of predefined Environment Variables
configured into LiteStep. Please refer to the
LiteStep Core documentation.
Can I use conditional Statements?
Conditional statements allow for themes to be more platform independent and are
similar to the "conditional compilation" feature in programming languages such as C
and C++. Conditionals allow different actions to be carried out, depending on the result of a
The example above illustrates the basic layout of a conditional
statement. If [expression1] is true, then [block1] will be processed. If
[expression1] is false, [expression2] will be evaluated. Expressions will
continue to be evaluated until a true statement is reached, at which point
processing of the conditional statement will stop. If no expressions are
found to be true, the final [else-block] will be carried out.
The only required parts of the conditional statement are "If" and "EndIf".
There can be any number of "ElseIf" expressions but only one (optional)
"Else" command. If an "Else" command is present, it must be placed at the
end of the entire conditional statement, immediately before "EndIf".
Expressions can contain boolean operators, like "and", "or", and "not",
and relational operators, such as "<", "<=", "<>", "=", ">=", and ">".
The equals sign, "=", is used for testing equality and the
greater than/less than combination, "<>", is used for testing inequality;
C-style combinations "==" and "!=" are not supported. Currently only comparison of
integers is supported, but strings will be supported in the future.
; Use a predefined Environment Variable to select different commands based on OS
*Popup "DOS Prompt" cmd.exe
*Popup "DOS Prompt" command.com
; Comparison of integer values and use of boolean operators
If ResolutionX < 800 or ResolutionY < 600
ElseIf ResolutionX = 800 and ResolutionY = 600