User Tools

Site Tools


Table of Contents

**This is an old revision of the document!**

The Typed String trigger lets you execute a macro in response to a sequence of keys.

Typed String triggers allow you to use more verbose (and hence descriptive) sequences of keys to trigger a macro. Because the keys first go through to the current application, the keys are usually deleted prior to executing the macro, although with this disabled you can use it in an application that largely ignores keys. Triggers can include non-ASCII characters, but you should verify that the deletes work appropriately in these cases.

WARNING: You should generally not use a Typed String trigger that simulates deletes in a non-text typing context, as the simulated delete keystrokes could be destructive.

NOTE: If you are going to immediately change focus (for example, with a Prompt For User Input, or by switching windows or applications), then you may need a short pause at the start of the macro to allow the simulated deletes to be processed before the focus changes.

To avoid macros firing unexpectedly it is a good idea to include a consistent prefix and/or suffix to your strings. For example, to insert your email address, rather than use just “em” (which would fire if you typed “them”), use something like “=em=” which you will not type accidentally.

Keyboard Maestro will accept the trigger even if you use the delete key to correct it (for example, in the case above, if you typed “=en«delete»m=” the trigger will still fire. If you need to type the trigger text without the macro firing, type and delete a Shift-Space in the middle, like “=e«Shift-Space»«delete»m=”.

As above, typing Shift-Space will cancel the sequence, as will any control key or command key (eg Command-.), any macro execution, switching applications, clicking the mouse, or not typing for more than a few seconds.

You can optionally allow typed string triggers to work regardless of case, regardless of diacriticals, or to remember the case of the typed string and mimic the case in any Insert Text actions. You can limit the typed string trigger to only work after a word break (which means any non-alphanumeric character, or any case that cancels the sequence as described above).

Alternatively, you can use a regular expression to match a trigger. The trigger is matched against the end of the typing sequence, so there is an implicit \z on the end of the regular expression. Note that it would be useless to try to match a word break at the end with \b or some sort of positive or negative lookahead assertion as the typing sequence always ends at the current character. So for example “ell\b” would match “hell” even if the next character you planned on typing was an “o”.

You can use the %TriggerValue% Text Token to determine the exact text that was typed.

If multiple typed string triggers match from the end (eg “hello” and “llo”), the longest will be used. If there are multiple matches with the same length (as can occur if you use the case or diacritic options), the conflict palette will be displayed, offering a selection of the matching macros. In this case, if all of the typed string triggers have the “Simulate N deletes before executing” option enabled, the deletes will be simulated immediately and then the conflict palette will be displayed; otherwise the deletes will not be simulated.

Note that the system will not allow Keyboard Maestro Engine to see keys typed in its own windows (such as the Prompt for User Input or Custom HTML Prompt), the Typed String triggers will not work within Keyboard Maestro Engine windows.

The system also will (rightly) not allow Keyboard Maestro to see keys typed in password fields, so Typed String triggers will not fire if you type them in most password fields. You can use Insert Text by Typing to type in to password fields (although this is a serious security concern), but you cannot use Typed String triggers while inside a password field.

Note also that there is a relatively prevalent third party / system bug that makes the system think it is permanently in a password field, and thus will prevent typed string triggers from working.

See Also





trigger/Typed_String.1488771191.txt.gz · Last modified: 2017/03/05 22:33 by peternlewis