Rules
All rules managed by Caster are tracked in this config file rules.toml
located in Caster User Directory settings
folder. This configuration file allows you not only to see what rules are active but change with the whitelist which rules are loaded by Caster during startup. Rules are loaded from Caster User Directory Rules
folder and/or the Caster source code directly typically Documents\Caster\Rules
.
Rules can exist in different states:
Loaded
During startup Caster loads all available rules on startup into the speech recognition engine. If a rule is not loaded, it cannot beenabled
/disabled
, and the rule's commands cannot be recognized.Active
/Inactive
rule state denotes whether or not a rule is available for recognition. For instance if you saydisable Firefox
, the Firefox rule will becomeInactive
. When the Firefox application is launched, the commands will not be available for recognition until the Firefox rule is set toactive
with theenable Firefox
command.- Newly created rules will not be registered in
rules.toml
until Caster restarts and aredisabled
by default.
Enabled Ordered
Enabled ordered represents all active
rules. When you enable
the rule, its class name is added to the _enabled_ordered
list. When the rule is disabled
, it is removed from the list. It's a great way to see what rules are currently available. Note: This list should not be modified manually.
Internal Rules
A handful of rules get special treatment by the Grammar Manager
as represented in _internal
. These "internal" rules are the rules which are generated by/for Caster loaded content. They do not belong in the set of rules which can be reloaded. You can turn them off, but it is strongly discouraged as they are required for Caster to function.
WhiteList
The number of Caster rules has grown immensely in the past few years, which is great, but means that the initial load time has grown as well. In order to reduce boot time, a WhiteList has been added to allow the user to control which rules get loaded
. Most users will not be using all of the available rules, so it does not make sense to encumber users with unused rules.
New users will be provided a core set of starter rules to get started with and then expected to manage which rules load for them via the [whitelisted]
feature. Rules are defined as true in the Whitelist load when Caster starts. However if a rule is set to false, it is not loaded and therefore cannot be enabled or disabled.
- All rules loaded by Caster including from
AppData\Local\caster\caster_user_content\rules
(user made) andDocuments\Caster\castervoice\rules
(Caster Starter Rules) will automatically be added to[whitelisted]
astrue
during startup when the rule is first detected. - Caster must be restarted for changes in
[whitelisted]
to take effect.
The following rules.toml
is a mock representation of the default settings. _enabled_ordered
shows the default enabled grammars when Caster first starts. Defaults may vary by Caster version and engine.
_enabled_ordered = ["Alphabet", "Navigation", "NavigationNon", "Numbers", "Punctuation", "Keyboard", "CasterRule", "HardwareRule", "MouseAlternativesRule", "WindowManagementRule", "LegionGridRule", "DouglasGridRule", "RainbowGridRule", "SudokuGridRule", "HMCRule", "HMCConfirmRule", "HMCDirectoryRule", "HMCHistoryRule", "HMCLaunchRule", "HMCSettingsRule", "HistoryRule", "ChainAlias", "Alias", "DragonRule", "BringRule", "Again", "GrammarActivatorRule", "HooksActivationRule"]
_internal = ["GrammarActivatorRule", "HooksActivationRule", "TransformersActivationRule", "ManualGrammarReloadRule"]
[whitelisted]
AcrobatRule = true
Again = true
Alias = true
Alphabet = true
AtomRule = true
Bash = true
BringRule = true
CPP = true
CSSTreeRule = true
CSharp = true
CasterRule = true
ChainAlias = true
ChromeRule = true
Dart = true
Python = true
PythonNon = true
VSCodeNonCcrRule = true
VisualStudioRule = true
# Truncated created for brevity