Keystroke Tokens

Send real key presses and timed pauses inside a TXT expansion — without a separate KEY step.

Tokens inside {curly braces} in a TXT step are not typed as text — they send the corresponding keystroke or perform a special action. Use them to tab through form fields, press Enter to confirm, or insert dynamic content mid-expansion.

Token Key sent
{TAB} Tab
{ENTER} Enter / Return
{ESC} Escape
{BACKSPACE} Backspace
{DELETE} Delete
{INSERT} Insert
{HOME} Home
{END} End
{PGUP} Page Up
{PGDN} Page Down
{UP} Arrow Up
{DOWN} Arrow Down
{LEFT} Arrow Left
{RIGHT} Arrow Right

Function keys

{F1} through {F12} — sends the corresponding function key.

Timing tokens

Token Effect
{DELAY:N} Pause N milliseconds before continuing
{DELAY:N,"text"} Type the quoted text at N ms per character (slow-type)
{WAIT:N} Alias for {DELAY:N} — absolute pause only (no inline text variant)
{RDELAY:LO-HI} Pause a random number of milliseconds between LO and HI
{RDELAY:LO-HI,"text"} Type the quoted text at a random per-character speed between LO and HI ms
{RWAIT:LO-HI} Alias for {RDELAY:LO-HI} — pairs naturally with the WAIT/DELAY naming
{SPEED:N} Set per-character delay to N ms for all plain text that follows in this step
{SETTLE:N} Set post-action settle delay to N ms for all tokens that follow in this step; {SETTLE:0} disables

Random delays (RDELAY, RWAIT) mimic human-like rhythm — useful to bypass naive bot detection in fragile web forms, or to feel less robotic when the expansion is watched.

Tip: you can abort a running trigger with ESC at any time — the in-flight workflow interrupts at the next ~50 ms check.

Settle delay — what it is and why you (rarely) want to change it

After every keystroke-producing token (paste, typed text, or a named key like {TAB}), Blue Synergy waits a short moment before continuing to the next token. This is the settle delay: it gives the target application time to actually process what was just sent. Without it, a {TAB} can race ahead of a preceding paste and land your text in the next field by mistake, or a {DELAY:1000} can start counting before the {TAB} has actually moved focus.

Defaults (no configuration needed):

After Settle
Text paste (Ctrl+V) 80 ms
Typed text (char-by-char) 20 ms
Named key ({TAB}, {ENTER}, {F2}, …) 20 ms
{DELAY:N} / {RDELAY:LO-HI} — (the delay is the wait)

These defaults are tuned for typical desktop apps and most users never need to change them. Use {SETTLE:N} only when the target demands it:

  • {SETTLE:0} — target is fast and you want maximum throughput (e.g. Notepad, plain text editors). Accepts the old race behaviour in exchange for speed.
  • {SETTLE:200} or higher — target has a laggy paste-handler (some React forms, cloud IDE editors, remote desktop sessions). Use when values keep landing in wrong fields.

{SETTLE:N} applies from its position in the step onwards; set it once at the top of the step, or change it mid-step if only part of the workflow needs a different value.

Try it live

The Trigger Playground is a self-contained test page with five inputs, gated autocomplete, keystroke blocking, and a configurable laggy-form simulator — the exact pattern that makes settle delays matter. Open it in a browser, focus the first field, and fire your trigger; you will see in the event log whether values drift into the wrong field or land cleanly. Useful suggested triggers are listed on the page itself.

Dynamic content tokens

Clipboard

Token Inserts
{clip:last} Most recent clipboard item
{clip:-1} Most recent clipboard item (same as last)
{clip:-2} Second most recent clipboard item
{clip:-N} Nth most recent clipboard item
{clip:N} Clipboard item with absolute nr = N

Date and time

Token Inserts
{date} Current date (locale default, 2026-04-20)
{time} Current time (locale default, 17:30:45)
{datetime} Full date + time (2026-04-20 17:30:45)
{date:FMT} Current date with custom format — see below
{time:FMT} Current time with custom format
{datetime:FMT} Full timestamp with custom format

Format tokens

Blue Synergy accepts both friendly tokens and strftime patterns in a single format string:

Friendly strftime Meaning
YYYY %Y 4-digit year
YY %y 2-digit year
MM %m Month (01–12)
DD %d Day of month (01–31)
HH %H Hour (00–23)
mm %M Minute (00–59)
ss %S Second (00–59)

Examples:

  • {date:YYYY-MM-DD}2026-04-20
  • {time:HH:mm}17:30
  • {datetime:%A %d %B %Y — HH:mm}Monday 20 April 2026 — 17:30

Time / date rounding

Round a timestamp to a coarser granularity (e.g. snap to the nearest 15 minutes):

Token Behaviour
{time:round:Nm} Round time to the nearest N minutes
{time:round:Nm:up} Always round up to the next N-minute tick
{time:round:Nm:down} Always round down
{time:round:Nh} Round to the nearest N hours
{date:round:…} Same grammar, applied to the date component

Useful for timesheets, meeting notes, or any workflow where you type the “current time” but want it quantised to 5 / 10 / 15 / 30 minutes.

Example — Excel timesheet row ending with a rounded start time:

{clip:-3}{TAB}{clip:-2}{TAB}{clip:-1}{TAB}{time:round:15m:down}{TAB}

How to insert tokens

Type them directly in the TXT step editor, or use the token toolbar above the editor — buttons for common tokens like {TAB}, {ENTER}, {DELAY:N}, {date}, {clip:-1}, and more.

Example: fill a form

First name{TAB}Last name{TAB}email@example.com{TAB}{ENTER}

This types the three values, tabbing between fields, then presses Enter to submit.

Example: slow-type a password hint

Hint: {DELAY:80,"correct horse battery staple"}

Types the hint text at 80 ms per character — useful for apps that don’t handle pasted text well.

Tips & gotchas

  • Token names are case-insensitive{tab}, {TAB}, and {Tab} all work.
  • Unknown token names (e.g. {typo}) are passed through as literal text.
  • {clip:-N} fetches from the in-memory clip cache — if you deleted the clip, the token inserts an empty string.
  • Tokens work in both Paste and Type typing modes.

See also