This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Last revision Both sides next revision | ||
Scripting_the_Keyboard_Maestro_editor [2017/09/20 23:24] JMichaelTX ADD selecting lists of objects |
Scripting_the_Keyboard_Maestro_editor [2018/04/14 18:46] JMichaelTX [5. Create Macro Group and Macros] Added error checking to Example 5 Test for Macro Group existence. |
||
---|---|---|---|
Line 7: | Line 7: | ||
FIXME Just adding this until I can provide a more complete script. | FIXME Just adding this until I can provide a more complete script. | ||
- | ===== Selecting Lists of Objects in KM8 ===== | + | ===== 1. Selecting Lists of Objects in KM8 ===== |
+ | |||
+ | The `selection` property will return whatever is selected, and has focus, in the Keyboard Maestro editor. So this could be any of these: action, macro, macro group. Here is how to get the selection, and determine the type (class) of the object that is selected: | ||
+ | |||
+ | ```applescript | ||
+ | tell application "Keyboard Maestro" | ||
+ | |||
+ | --- First Select an Action, Macro, or Macro Group | ||
+ | -- in the KM Editor, then run this script | ||
+ | |||
+ | set kmList to selection | ||
+ | set kmClass to class of item 1 of kmList | ||
+ | |||
+ | -->Based on selection, will return one of these: | ||
+ | -->action, macro, macro group | ||
+ | |||
+ | end tell | ||
+ | |||
+ | ``` | ||
```applescript | ```applescript | ||
Line 18: | Line 37: | ||
- | ===== 1. Get Current Macro Object ===== | + | ===== 2. Get Current Macro Object ===== |
```applescript | ```applescript | ||
Line 44: | Line 63: | ||
``` | ``` | ||
+ | ===== 3. Macro Groups ===== | ||
- | ===== 2. Get and Create Variety of Editor Objects ===== | + | **Disable a Macro Group** |
+ | |||
+ | <code applescript> | ||
+ | tell application "Keyboard Maestro" | ||
+ | set enabled of macro group "Macro Group Name" to false | ||
+ | end tell | ||
+ | </code> | ||
+ | |||
+ | **Edit a Macro Group** | ||
+ | |||
+ | <code applescript> | ||
+ | tell application "Keyboard Maestro" | ||
+ | editMacro "Macro Group Name or UID" | ||
+ | end tell | ||
+ | </code> | ||
+ | |||
+ | **Get the list of currently selected macro groups** | ||
+ | |||
+ | <code applescript> | ||
+ | tell application "Keyboard Maestro" | ||
+ | set groupList to selected macro groups | ||
+ | end tell | ||
+ | </code> | ||
+ | |||
+ | ===== 4. Get and Create Variety of Editor Objects ===== | ||
Line 86: | Line 130: | ||
``` | ``` | ||
- | ===== 3. Create Macro Group and Macros ===== | + | ===== 5. Create Macro Group and Macros ===== |
+ | |||
+ | Before you use a macro group you probably want to check if it exists. The following example tests for the macro group's existence, based on a Keyboard Maestro input variable containing the macro group name -`macroGroup`. | ||
+ | |||
+ | (This test is case-insensitive. For example macro group "Firefox" could also be specified as "firefox".) | ||
+ | |||
+ | ```applescript | ||
+ | tell application "Keyboard Maestro Engine" | ||
+ | set macroGroup to getvariable "macroGroup" | ||
+ | if (macroGroup = "") then error "[ERROR]" & linefeed & "Invalid Macro Group Name. KM Variable \"" & "macroGroup" & "\" was empty or undefined." | ||
+ | end tell | ||
+ | |||
+ | tell application "Keyboard Maestro" -- Editor | ||
+ | if exists macro group macroGroup then | ||
+ | return true | ||
+ | else | ||
+ | return false | ||
+ | end if | ||
+ | end tell | ||
+ | ``` | ||
Here is a full example that creates a macro group called "Multiple Clipboards" and then creates 9 macros with hot Control-C and action to copy the clipboard to a named clipboard with name "Clipboard N" (where N is 1-9) and another set of 9 macros with hot key Control-V and action to paste from the named clipboard "Clipboard N" | Here is a full example that creates a macro group called "Multiple Clipboards" and then creates 9 macros with hot Control-C and action to copy the clipboard to a named clipboard with name "Clipboard N" (where N is 1-9) and another set of 9 macros with hot key Control-V and action to paste from the named clipboard "Clipboard N" |