I use System Keyboard Preferences (Setting) this way for most application menu commands whose keyboard shortcut I want to change.
Some people are fine with using a KM select-menu macro, but I like to be able to look in the menu and see the keyboard shortcut. I also like the fact that they work when Keyboard Maestro isn't running.
Agree, @ccstone, but now that I look at my MBPro System Settings, I see that I haven’t set up as many I’ve done on my Mac mini (running Mojave). Can I blame Apple for the butt-ugly System Settings?
Largely an advantage, but sometimes users forget that a keyboard shortcut isn't a default for the app.
Thank you for that kick in the pants. I've been meaning to change that for months -- ⌘R is so ingrained as "Run" that I'm forever starting a recording by mistake. No more!
Handy when you've downloaded and installed macros from the forum. Select them and trigger this macro, which will move them to a group of your choosing and delete the group they were in if it's now empty. It will then navigate to your nominated test group and enable the macros that have been moved. It comes set to move to TEST GROUP by default (green action).
Indeed, very handy when lazy people like me leave the macros in my own groups when uploading. Sometimes I leave them there because it's instructive, but usually I'm just lazy.
UPDATE: I see this macro uploads to the Keyboard Maestro group. That makes perfect sense!
On my system, I moved it to the .KM ⚪️ group. I like to keep the group names short and have the permanent groups sort to the top, thus the . prefix. The ⚪️ suffix indicates that the macros in the group only trigger when that particular application, Keyboard Maestro in this case, is active.
When this macro is triggered, the macros in the selected macro group or smart macro group will be conditionally sorted. The conditions, based on the name of the group or smart group, can be optionally adjusted using settings for Date Created, Date Modified, Date Used, Size, and*/or* Trigger. If none of the configured conditions are met, the macros will be sorted by Name.
If the hot key trigger includes the Option and Shift keys (⌥⇧), or if ⌥ and ⇧ are down when the macro is triggered the View>Sort Macros by>Disabled to Bottom menu item will be selected if it is not already checked. Conversely, without the ⌥⇧ modifiers, View>Sort Macros by>Disabled to Bottom will be selected if it is checked.
On a related note, for the Execute a Macro and the Execute a Subroutine actions, @peternlewis informed me that there is a native feature of the Keyboard Maestro editor that navigates to the configured macro or subroutine:
In the action, click the macro or subroutine name.
On the right or left side of the selected macro, a Select Macro, a pop-up will appear.
Click the Select Macro pop-up and the Keyboard Maestro editor will open the macro or subroutine.
I somehow overlooked this native feature . But as one that has suffered from ergonomic pain related to mouse overuse, I prefer to use Navigate to Configured Macro or Subroutine since it is primarily driven by the keyboard. In addition, this macro has the capability to navigate to a macro specified in an Open a URL action.
Changed method to detect the Group name (from using %WindowName%1% to AppleScript). This enables the macro to function as expected if a group is selected, even if it is not focused.
Changed ⌥⇧ logic: if selected, mark Disabled to Bottom; if not selected, unmark Disabled to Bottom.
Inexplicably, extraneous characters sometimes appear in the Search field when the Find in All Macros… menu item is selected. The macro will now delete such characters.
If this macro is run from another macro using the Execute a Macro action (or via AppleScript), and With Parameter is specified, the value will be deciphered via this macro’s %TriggerValue%. If it includes a 0: prefix, the dialog will be bypassed, and the text that follows 0: will be used as the search string. For example, if With Parameter is 0:used:1m, the dialog will be bypassed and used:1m will be the search string. If it does not include a 0: prefix, the values will used as the initial value in the dialog box.