User Tools

Site Tools


action:Execute_an_AppleScript

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

Execute AppleScript Action

The Execute an AppleScript action executes a specified AppleScript, either from a file or text.

Setup

When you insert an Execute AppleScript Action, it will appear as shown below.

There are two setup options:

Setup Option Choices
(Default shown first)
Script location Execute text script (type or paste script into Action text field)
Execute script file (This is faster if it is a compiled script file .scpt)
Script Results Ignored.
Displayed in a floating window.
Displayed briefly in a Notification.
Typed in the current text field that has focus.
Pasted in text field that has focus.
Saved to a Keyboard Maestro Variable.
Saved to the System or Named Clipboard.
Ignore Results and run Asynchronously (the script runs while the macro immediately continues on to the next Action.)

Here is a typical example with these options:

  1. Script location: Execute text script
  2. Script Results: save results to variable
    • This causes the Save to variable field to appear at the bottom
    • Since this variable is not needed after the macro finishes, a Local variable is used.
    • While the script can set Keyboard Maestro Variables, it is generally better to just return the result from the script, then allow the user to choose the Variable.


Scripting

For the latest update on this topic, see the User Manual article: Scripting.
This provides the latest method to get and set Keyboard Maestro variables via AppleScript.

AppleScripts are executed in the background via osascript. This means they are not allowed to do user interaction. You can work around this by asking the current applicationto do the user interaction for you, for example:

snippet.applescript
tell application "System Events"
  set currentAppName to name of first application process whose frontmost is true
end tell
 
tell application currentAppName
  display dialog "Your message here" with title "Your Title here"
end tell

Using Keyboard Maestro Variables

:!: See Using AppleScript to Get and Set Keyboard Maestro Variables for best methods.

In AppleScript with Keyboard Maestro Version 7.1+, you can tell the application “Keyboard Maestro Engine” to:

getvariable <KM Variable Name>
setvariable <KM Variable Name> to <New Value>

where both the <KM Variable Name> and <New Value> are text values.

For example:

tell application "Keyboard Maestro Engine" to set myVar to getvariable "My KM Variable"

Using Keyboard Maestro Variables in a Shell Script from AppleScript

AppleScripts can access variables by using environment variables (using system attribute) or by talking to the Keyboard Maestro Engine. Note that AppleScript’s system attribute is not safe for international characters, although it can use code like:

set myVar to do shell script "echo $KMVAR_My_KM_Variable"
action/Execute_an_AppleScript.1530602603.txt.gz · Last modified: 2018/07/03 03:23 by peternlewis