Browse the docs

Show message

Flashes a short message on screen for a moment, or keeps a progress message up for the whole run.

Show text on screen

Keyboard Maestro: DisplayText, InsertText DisplayBriefly, DisplayProgress

Details #

Shows text in a floating glass pill that fades after seconds. It does not take focus and clicks go through it, so nothing needs dismissing. It appears where Settings › General says (top, center or bottom of the screen you are working on). VoiceOver reads it aloud, and with Reduce Motion on it appears and goes without fading.

Several messages at once stack, up to three, newest nearest the edge. Give a message a key and a later message with the same key replaces it in place and restarts its time, which is how a bar creeps forward.

A message with stay is a progress message. It has no timeout: it belongs to the macro run and stays until the run ends, then turns into a check and done (1.2 s), the failure (4 s) or "Stopped" in the same spot, never a second message. Add cancel for a Cancel button that stops the run, or indeterminate when you cannot say how far along it is (a moving stripe, no percentage). The key run (or stay with no key) is the run's own progress message, the one a Repeat with progress writes to, so a step inside the loop can change its words and a hud step with stay and no loop is the whole message. A step inside a macro run by Run macro writes to the same message.

The output is the text shown.

Parameters #

ParameterTypeRequiredValuesWhat it does
texttextYesRequired and not empty. Supports {{ }} values.
aiyes / notrue adds the AI badge: a model made or decided what this message says.
cancelyes / notrue adds a Cancel button that stops the run. It does not take the keyboard focus; the keyboard way is the menu bar item Stop, with Command-period while the menu is open.
donetextWhat the message says when the run ends well. The default is "Done".
indeterminateyes / notrue draws a moving stripe instead of a bar, and no percentage. Reduce Motion makes it a still dashed bar.
keytextA name. A message with the same key replaces the one on screen instead of stacking. run is this run's own progress message.
progressnumberA number from 0 to 1. Draws a thin bar under the text, and VoiceOver adds the percentage.
secondsnumberHow long it stays. The default is 1.5 s. Values are held between 0.2 and 60.
stayyes / notrue keeps the message up until the run ends, whatever seconds says. It does not count against the three messages that stack; they sit under it.
symboltextAn SF Symbol name shown before the text, such as checkmark.circle.

Every step also accepts label, onFailure, timeout and dryRunSafe.

Examples #

Example
Do
  1. Set count to 3
  2. Show “Copied {{count}} files” for 2 s
Open in Switchboard to try it

Gotchas #

  • A progress message that has a Cancel button stops the run when clicked; the step in flight is cancelled like any cancelled run, and a shell command gets SIGTERM.

  • A message whose run has ended is never brought back by a late update, and a stay message nobody updates for 10 minutes leaves anyway.

  • A dry run does show the message. It is one of the steps that is safe to run for real while testing.

  • It disappears on its own. If the person must read it or answer it, use Show notification or Ask for input.

Example
Do
  1. Show “Exporting 1 of 3” for 5 s
  2. Show “Exporting 3 of 3”
Open in Switchboard to try it
A progress message by hand
Do
  1. Show “Preparing” until the macro ends, with a Cancel button
  2. Show “Almost there” until the macro ends
Open in Switchboard to try it

See also #

Show notification, Say aloud, Repeat