I use this macro all the time but about a month or two ago it broke and I can't seem to fix it.
I am trying to automatically select the last run macro with a macro (meaning the macro run before I run the macro to find the last run macro).
I think this broke about a month before I upgraded to Keyboard Maestro 10. I have spent a while trying to modify it. I didn't use to have it look in the all Macros group but it just did. I added that and the list of dropdown doesn't seem to show the order of the most recent macros.
This Forum title does say pre-KM8 though what I had was working in version 8 and 9 until the very end.
While not an answer to your question about the macro you were using, as an alternative, this is the macro I've been using since KM 8 to show my recently used macros and quickly choose one for editing:
That is great thank you, neat to see another way to execute it. I appreciate you sharing that. Here's also a similar link to an alternative way to do it. I think from yours I can automate getting the last executed macro since I can't seem to figure it out from what I was doing.
Update: I think what is happening is it is command clicking on Modified instead of Used icon. Perhaps those were reassigned positions. I'll see what I can figure out and repost.
I was actually doing several of my macros with the menus and perhaps it was just in certain applications but in general it seems like the macros all ran slower so I often will group them and put the key command and the menu item in there.
This is very cool I was trying to do it with a Keyboard Maestro.
tell application "Keyboard Maestro"
edit smart group "All Macros"
end tell
This action doesn't have the ability to show smart groups for some reason.
I really wish selecting the from the recently used menu didn't highlight the name of the Macro. I have never notice it do that before and think this might be something new in Keyboard Maestro 10.
A lot of these still use key commands but they are working though no doubt could be improved and sped up.
All Applications - Ultra Claw - Adam Macros (v10.0.1)
I probably wasn't very clear but I was referring to the action Activate Macro group not the AppleScript.
If I type Tell application "Keyboard Maestro Engine" it doesn't work since I am trying to show the All Group in the Keyboard Maestro editor and not do anything directly to the engine if that makes sense.
All four of those macros I uploaded are tested and working on my end. They just might not be running as fast as they could be since they still feel a little clunky and slow but still faster than doing it by hand.
I think I was wrong. I think I understand now. I'm sorry. I'm not always right, especially when it comes to AppleScript. Let me reconsider. Perhaps your explanation was clear, and I was just dead wrong.
I've just never seen anyone use AppleScript to change the bahevior of the KM Editor. This is new ground for me. Sorry. I will feel bad about this mistake for a long time.
I've reconsidered, and I realize my first answer was truly inappropriate and wrong. Sorry. I hesitate to giver any further answers because it is likely to be wrong again.
But I will say that (a) you can "unselect the macro name" by sending a tab character to the editor; and (b) you can determine where the slowness is occurring by opening the debugger and watching which statements that the engine is hanging up on. If the actions are occurring so fast that you can't read their names, you can start your macros with a "Set Between actions Delay for this macro to 0.5 seconds" which would allow you to see better where the slowdown was occurring in the Debugger.
No need to feel bad and I am very grateful you responded. I consider anyone taking time out of their day to even try to help someone else out a kind gift.
Again, no problem and I am glad you replied and no worries at all, it is hard to know exactly what someone is trying to do. I always struggle with giving too little or too much information when I post.
The debugger is one I have spent some time with and watched a video from a few versions on and never really got my head completely wrapped around it. I am sure I could spend more time and need to practice using it more.
I feel like a dedicated class forcing me to go through the motions of several types of macros would be so helpful to me. I wish there was a week long class on Keyboard Maestro. I'd be all over that.
Thanks for accepting my apology. It will help me a lot.
I've seen @peternlewis recommend an online training thing, but I can't find it right now. Maybe he was referring to this:
I find the debugger to be occasionally handy in figuring out where things are getting stuck. There's even an action in KM that turns on the debugger when one's code reaches a certain point. That can be handy too. But one needs to read really fast to be able to follow what's happening in the debugger window. That's why my idea above of putting a half second between each action might be helpful when using the debugger.
Select Macro Name or Group Name or Smart Group Name Field for Editing.
--------------------------------------------------------
# Auth: Christopher Stone
# dCre: 2015/07/25 03:06
# dMod: 2021/09/30 17:17
# Appl: Keyboard Maestro & System Events
# Task: Select Macro Name or Group Name or Smart Group Name Field for Editing.
# Libs: ELb
# Osax: None
# Tags: @Applescript, @Script, @System_Events, @Keyboard_Maestro, @Select, @Name, @Field
--------------------------------------------------------
tell application "Keyboard Maestro"
set kmVersion to its version
end tell
if kmVersion starts with "9." then
tell application "System Events"
tell application process "Keyboard Maestro"
tell (first window whose subrole is "AXStandardWindow")
tell group 1
tell splitter group 1
tell scroll area 3
tell scroll bar 1
if value ≠ 0 then set value to 0
end tell
if exists (first text field whose accessibility description is "Macro Name") then
tell (first text field whose accessibility description is "Macro Name")
set focused to true
end tell
else if exists (first text field whose accessibility description is "Macro Group Name") then
tell (first text field whose accessibility description is "Macro Group Name")
set focused to true
end tell
else if exists (first text field whose accessibility description is "Smart Group Name") then
tell (first text field whose accessibility description is "Smart Group Name")
set focused to true
end tell
end if
end tell
end tell
end tell
end tell
end tell
end tell
else if kmVersion starts with "10." then
tell application "System Events"
tell application process "Keyboard Maestro"
tell (first window whose subrole is "AXStandardWindow")
tell group 6
tell splitter group 1
tell scroll area 3
tell scroll bar 1
if value ≠ 0 then set value to 0
end tell
if exists (first text field whose accessibility description is "Macro Name") then
tell (first text field whose accessibility description is "Macro Name")
set focused to true
end tell
else if exists (first text field whose accessibility description is "Macro Group Name") then
tell (first text field whose accessibility description is "Macro Group Name")
set focused to true
end tell
else if exists (first text field whose accessibility description is "Smart Group Name") then
tell (first text field whose accessibility description is "Smart Group Name")
set focused to true
end tell
end if
end tell
end tell
end tell
end tell
end tell
end tell
end if
--------------------------------------------------------
(*
--------------------------------------------------------
REVISION NOTES:
2018/01/12 00:36 ⇢ Streamlined for pure speed.
2018/04/10 03:45 ⇢ More flexibly handling macro group name or macro name ⇢ by name instead of number.
2019/02/20 04:29 ⇢ Added “Smart Group Name” to selector choice.
--------------------------------------------------------
*)
Select the First Action of the Macro Currently Being Edited
--------------------------------------------------------
# Auth: Christopher Stone
# dCre: 2019/06/30 23:41
# dMod: 2021/10/09 20:28
# Appl: Keyboard Maestro & System Events
# Task: Select First Action of Current Macro
# : Scroll if necessary.
# Libs: None
# Osax: None
# Tags: @Applescript, @Script, @System_Events, @Keyboard_Maestro, @Select, @Name, @Field
--------------------------------------------------------
tell application "Keyboard Maestro" to set kmVersion to version
if kmVersion starts with "9." then
# Keyboard Maestro v9.x.
tell application "System Events"
tell application process "Keyboard Maestro"
tell (first window whose subrole is "AXStandardWindow")
tell group 1
tell splitter group 1
tell scroll area 3
tell scroll bar 1
try
set value to 0
end try
end tell
end tell
end tell
end tell
end tell
end tell
end tell
else if kmVersion starts with "10." then
# Keyboard Maestro v10.x.
tell application "System Events"
tell application process "Keyboard Maestro"
tell (first window whose subrole is "AXStandardWindow")
tell group 6
tell splitter group 1
tell scroll area 3
tell scroll bar 1
try
set value to 0
end try
end tell
end tell
end tell
end tell
end tell
end tell
end tell
end if
--------------------------------------------------------
tell application "Keyboard Maestro"
set selectedMacroList to selected macros
if length of selectedMacroList = 0 then
error "No macros are selected!"
else if length of selectedMacroList = 1 then
set currentMacro to item 1 of selectedMacroList
else if length of selectedMacroList > 1 then
error "Too many macros are selected!"
end if
select the first action of the currentMacro
end tell
--------------------------------------------------------
(* CHANGE NOTES:
- 2021/09/30 01:39
- Added descriminator for KM 9 and KM 10.
*)
--------------------------------------------------------
Select the Last Action of the Macro Currently Being Edited
--------------------------------------------------------
# Auth: Christopher Stone
# dCre: 2019/06/30 23:41
# dMod: 2021/09/30 01:44
# Appl: Keyboard Maestro & System Events
# Task: Select Last Action of Current Macro
# Libs: None
# Osax: None
# Tags: @Applescript, @Script, @System_Events, @Keyboard_Maestro, @Select, @Name, @Field
--------------------------------------------------------
tell application "Keyboard Maestro" to set kmVersion to version
if kmVersion starts with "9." then
# Keyboard Maestro v9.x.
tell application "System Events"
tell application process "Keyboard Maestro"
tell (first window whose subrole is "AXStandardWindow")
tell group 1
tell splitter group 1
tell scroll area 3
tell scroll bar 1
if value ≠ 1 then set value to 1
end tell
end tell
end tell
end tell
end tell
end tell
end tell
else if kmVersion starts with "10." then
# Keyboard Maestro v10.x.
tell application "System Events"
tell application process "Keyboard Maestro"
tell (first window whose subrole is "AXStandardWindow")
tell group 6
tell splitter group 1
tell scroll area 3
tell scroll bar 1
if value ≠ 1 then set value to 1
end tell
end tell
end tell
end tell
end tell
end tell
end tell
end if
tell application "Keyboard Maestro"
set selectedMacroList to selected macros
if length of selectedMacroList = 0 then
error "No macros are selected!"
else if length of selectedMacroList = 1 then
set currentMacro to item 1 of selectedMacroList
else if length of selectedMacroList > 1 then
error "Too many macros are selected!"
end if
select the last action of the currentMacro
end tell
--------------------------------------------------------
(* CHANGE NOTES:
- 2021/09/30 01:39
- Added descriminator for KM 9 and KM 10.
*)
--------------------------------------------------------