User Tools

Site Tools


Scripting_the_Keyboard_Maestro_editor

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Scripting_the_Keyboard_Maestro_editor [2017/09/20 16:46]
JMichaelTX [1. Get Current Macro Object] Update script
Scripting_the_Keyboard_Maestro_editor [2018/04/14 19:02] (current)
JMichaelTX Removed script from Section 4 because it won't even compile.
Line 5: Line 5:
 The Keyboard Maestro Scripting Definition (sdef) describes all the support, and you can open in in the Script Editor to see more details. ​ Here are some examples of what you can do: The Keyboard Maestro Scripting Definition (sdef) describes all the support, and you can open in in the Script Editor to see more details. ​ Here are some examples of what you can do:
  
-===== 1. Get Current Macro Object =====+FIXME  Just adding this until I can provide a more complete script. 
 + 
 +===== 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 
 +tell application "​Keyboard Maestro"​ 
 +  set selList to selection 
 +  set macroList to selected macros 
 +  set grpList to selected macro groups 
 +end tell 
 +``` 
 + 
 + 
 +===== 2. Get Current Macro Object =====
  
 ```applescript ```applescript
Line 31: 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>​
  
-```applescript +**Edit a Macro Group**
-tell app "​Keyboard Maestro"​+
  
-   ​properties of group "Enabled+<code applescript>​ 
-   properties of smart group "Enabled"+tell application ​"Keyboard Maestro
 +  ​editMacro ​"Macro Group Name or UID" 
 +end tell 
 +</​code>​
  
-   make new smart group with properties {name:"​Enabled",​ search strings:​{"​enabled:​yes"​}} +**Get the list of currently selected ​macro groups**
-   set search strings of smart group "​Disabled"​ to {"​enabled:​no"​} +
-    +
-   set enable ​of macro group "Turn Off" to false+
  
-   set name of macro 1 to "Great!"+<code applescript>​ 
 +tell application ​"Keyboard Maestro" 
 +   set groupList to selected macro groups 
 +end tell 
 +</​code>​
  
-   tell macro group "New Stuff" to make new macro +===== 4. Get and Create Variety ​of Editor Objects =====
-       +
-   set color of action 1 of macro "​Bright"​ to "​red"​ +
-    +
-   ​select action 1 through 3 of action 2 of macro "​Working"​+
  
-   set selection to global macro group+FIXME [JMichaelTX: ​ This script removed pending review & update].
  
-   move first action of macro "​Source Macro" to end of actions of macro "Dest Macro" 
-  
-   move macro "​Macro33"​ to macro group "​Test4"​ 
-   move (every macro of macro group "​Test4"​ whose name starts with "​Macro3"​) to macro group "​Test3"​ 
-   move macro 2 of macro group "​Test3"​ to macro group "​Test4"​ 
  
-   ​delete second action of macro "​Target ​Macro+===== 5. Create ​Macro Group and Macros =====
-   +
-   ​duplicate every macro group whose name starts with "​Test"​+
  
-   set m to duplicate action 1 of macro "​Macro33" ​to after action 2 of macro "​Macro32"​+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`.
  
-   ​duplicate ​(selected macros) to macro group "Test4+(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 end tell
 ``` ```
  
-===== 3. Create Macro Group and Macros ===== 
  
 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"
Scripting_the_Keyboard_Maestro_editor.1505940374.txt.gz · Last modified: 2017/09/20 16:46 by JMichaelTX