This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
Frequently_Asked_Questions [2017/09/19 09:55] peternlewis [How can I get the mouse coordinates on the screen or in a window?] |
Frequently_Asked_Questions [2023/10/10 02:21] (current) peternlewis [Should I buy from the Mac App Store or Buy Direct?] |
||
---|---|---|---|
Line 3: | Line 3: | ||
==== How do I get started? ==== | ==== How do I get started? ==== | ||
- | * Read the Quick Start (Help ➤ Quick Start) which will get you familiar with Keyboard Maestro terminology. | + | * Read the [[manual:Quick_Start|Quick Start]] (Help ➤ Quick Start) which will get you familiar with Keyboard Maestro terminology. |
* Do the Tutorial (Help ➤ Tutorial). Now you know the basics of creating a macro. | * Do the Tutorial (Help ➤ Tutorial). Now you know the basics of creating a macro. | ||
* When Keyboard Maestro asks, sign up for the Getting Started email series. | * When Keyboard Maestro asks, sign up for the Getting Started email series. | ||
* Watch the [[https://www.youtube.com/channel/UCHazZsl2tCEcSyFu1NbhHoA|Keyboard Maestro Videos]]. | * Watch the [[https://www.youtube.com/channel/UCHazZsl2tCEcSyFu1NbhHoA|Keyboard Maestro Videos]]. | ||
- | * Follow [@keyboardmastro on Twitter](http://twitter.com/keyboardmaestro) or [Facebook](https://www.facebook.com/pages/Keyboard-Maestro/117589644919387) or [the Stairways link blog](http://blog.stairways.com) to see lots of third party ideas for using Keyboard Maestro. | + | * Follow [@KeyboardMaestro@mastodon.social](https://mastodon.social/@KeyboardMaestro). |
* Join the [Keyboard Maestro Forum](http://forum.keyboardmaestro.com) and ask questions there. | * Join the [Keyboard Maestro Forum](http://forum.keyboardmaestro.com) and ask questions there. | ||
- | * Contact [support@stairways.com](mailto:support@stairways.com) if you have any problems. | + | * Consider enrolling in David Spark’s [[https://learn.macsparky.com/p/km|Keyboard Maestro Field Guide]]. |
+ | * Contact [support@stairways.com](mailto:support@stairways.com) if you have any problems using Keyboard Maestro. | ||
==== What is the upgrade price? ==== | ==== What is the upgrade price? ==== | ||
- | * If you purchased Keyboard Maestro directly after March 1 2017 you have received a free upgrade to Keyboard Maestro 8. | + | * If you purchased Keyboard Maestro after 1 March 2023 you have received a free upgrade to Keyboard Maestro 11. |
- | * If you purchased Keyboard Maestro 7, you can upgrade for $18 until 19 November 2017. | + | * If you *purchased* Keyboard Maestro version 10, you can upgrade for $18 until 15 December 2023. |
- | * If you own any version of Keyboard Maestro, you can upgrade for $25. | + | * If you own any previous version of Keyboard Maestro, you can upgrade for $25. |
- | * If you purchased Keyboard Maestro from the Mac App Store, you can convert your license to a direct license, and then you can upgrade for $25. | + | |
* Otherwise you can purchase a new version for $36. | * Otherwise you can purchase a new version for $36. | ||
+ | |||
+ | Prices are in US$ and applicable taxes will be added to the purchase price. | ||
You can get your license and upgrade details from [the Keyboard Maestro web site](http://www.keyboardmaestro.com/form/enquiry?upgrade=keyboardmaestro). | You can get your license and upgrade details from [the Keyboard Maestro web site](http://www.keyboardmaestro.com/form/enquiry?upgrade=keyboardmaestro). | ||
Line 25: | Line 28: | ||
To upgrade from the Mac App Store version, you first need to transfer your license to a direct download license. You do that by launching Keyboard Maestro, opening the About box, and Option-clicking on the "Mac App Store version" text, and then following the instructions. | To upgrade from the Mac App Store version, you first need to transfer your license to a direct download license. You do that by launching Keyboard Maestro, opening the About box, and Option-clicking on the "Mac App Store version" text, and then following the instructions. | ||
- | After that, you will have a direct download version and can upgrade to Keyboard Maestro 6 for $25. | + | After that, you will have a direct download version and can upgrade to Keyboard Maestro for $25. |
+ | |||
+ | ==== Is Keyboard Maestro compatible with Yosemite? ==== | ||
+ | |||
+ | No, Keyboard Maestro 11 requires 10.13 High Sierra or later. [[https://download.stairways.com/|Version 8.2.4]] was the last version compatible with Yosemite. | ||
==== Is Keyboard Maestro compatible with El Capitan? ==== | ==== Is Keyboard Maestro compatible with El Capitan? ==== | ||
- | Yes, Keyboard Maestro is fully compatible with El Capitan. | + | No, Keyboard Maestro 11 requires 10.13 High Sierra or later. [[https://download.stairways.com/|Version 9.2]] was the last version compatible with El Capitan. |
- | Keyboard Maestro does not install anything on your harddisk, and uses public APIs, so the security measures added to OS X in El Capitan do not affect Keyboard Maestro's facilities. | + | ==== Is Keyboard Maestro compatible with Sierra? ==== |
- | ==== Is Keyboard Maestro compatible with Yosemite? ==== | + | No, Keyboard Maestro 11 requires 10.13 High Sierra or later. [[https://download.stairways.com/|Version 9.2]] was the last version compatible with Sierra. Keyboard Maestro versions going back as far as version 2.x still work fine on Yosemite. |
- | Yes, Keyboard Maestro is, for all practical purposes, fully compatible with Yosemite. In fact, Keyboard Maestro versions going back as far as version 2.x still work fine on Yosemite. | + | ==== Is Keyboard Maestro compatible with High Sierra? ==== |
- | There are, however, two cosmetic bugs in Yosemite that affect some versions of Keyboard Maestro and up. Keyboard Maestro versions 4.0-6.4.8 has a weird flashing of the focus ring in some fields. In Keyboard Maestro version 4.0-6.4.7, the popup menus used in most Keyboard Maestro actions turn white (almost invisible) when you hover over them. Both of these have been reported to Apple, and it is disappointing they were never fixed. Still, they are cosmetic only, so other than being slightly irritating they do not affect the behaviour of Keyboard Maestro. | + | Yes, Keyboard Maestro version 11 is fully compatible with High Sierra, however for some very small set of people the Keyboard Maestro Engine can sometimes crash after sleep. This crash is caused by a very low level bug in the system software, resolved in 10.14 Mojave. Relaunching the Keyboard Maestro Engine (by launching Keyboard Maestro or by selecting File ➤ Launch Engine) will restart the engine and allow the macros to be processed. |
- | There is a bug in the NSSpeechSynthesizer that returns isPlaying as false immediately. This means the Speak Text Action in Keyboard Maestro versions up to 6.4.7 finishes immediately, so the text is not spoken. As a workaround, you can set a variable named "Text to Speak" to the text you want, then you can use the Execute Shell Script action with the command: say "$KMVAR_Text_to_Speak" - actually, Ivan Fetch describes a [better workaround](http://blog.ivanfetch.com/2014/11/29/workaround-for-keyboard-maestro-no-longer-speaking-text-in-yosemite/) of just adding a pause after the action, since the action wont be destroyed (taking the NSSpeechSynthesizer object with it) until the macro complete (it probably should destroy it when the action completes, but it doesn't, which turns out to be a good thing in this case). | + | ==== Is Keyboard Maestro compatible with Mojave? ==== |
- | There is also a bug in the Yosemite 10.10.0-10.10.2 accessibility setting system which can cause problems allowing accessibility access to applications including the Keyboard Maestro Engine(([[rdar://problem/18643648]])), see the [Troubleshooting Yosemite GM and Accessibility Settings Problems](Troubleshooting#Yosemite_GM_and_Accessibility_Settings_Problems) section for a workaround. Upgrading to 10.10.4 should resolve the issues. | + | Yes, Keyboard Maestro version 11 is fully compatible with Mojave. In fact, Keyboard Maestro versions going back as far as version 2.x still work fine on Mojave. |
- | ==== Is Keyboard Maestro compatible with Sierra? ==== | + | Mojave has bugs with its Accessibility System Preferences which may require toggling the Accessibility permissions of Keyboard Maestro Engine off and on again. Generally this is only required once when upgrading to Mojave. See the [[assistance:Accessibility_Permission_Problem|Accessibility Permission Problem assistance]] for more information. |
- | Yes, Keyboard Maestro is fully compatible with Sierra. In fact, Keyboard Maestro versions going back as far as version 2.x still work fine on Yosemite. | + | Note that Mojave adds some nagging for security permissions that can be tedious when first using Keyboard Maestro or when first controlling a specific facility or application. |
- | Keyboard Maestro 7.3.1 and 8.x have no issues with Sierra. | + | ==== Is Keyboard Maestro compatible with Catalina? ==== |
- | ==== Is Keyboard Maestro compatible with High Sierra? ==== | + | Yes, Keyboard Maestro version 11 is fully compatible with Catalina. In fact, Keyboard Maestro versions going back as far as version 4.x still work fine on Catalina. Versions of Keyboard Maestro prior to version 4.0 will no longer run on Catalina due to it dropping support for 32-bit applications. |
- | We believe Keyboard Maestro is fully compatible with High Sierra. | + | Catalina continues with the bugs with its Accessibility System Preferences introduced in Mojave which may require toggling the Accessibility permissions of Keyboard Maestro Engine off and on again, and/or deleting the Keyboard Maestro Engine preference from the Accessibility system and having it re-added. Generally this is only required once when upgrading to Catalina. See the [[assistance:Accessibility_Permission_Problem|Accessibility Permission Problem assistance]] for more information. |
- | There is an issue with old Color Pickers which may cause the editor to crash on launch. | + | Note that Mojave and later add lots of nagging for security permissions that can be tedious when first using Keyboard Maestro or when first controlling a specific facility or application. |
- | Other than that, Keyboard Maestro 7.3.1 and 8.x have no issues that we know of with High Sierra. | + | ==== Is Keyboard Maestro compatible with Big Sur? ==== |
+ | |||
+ | Yes, Keyboard Maestro version 11 is fully compatible with Big Sur. In fact, Keyboard Maestro versions going back as far as version 4.x still work fine on Big Sur. | ||
+ | |||
+ | Big Sur continues with the bugs with its Accessibility System Preferences introduced in Mojave which may require toggling the Accessibility permissions of Keyboard Maestro Engine off and on again, and/or deleting the Keyboard Maestro Engine preference from the Accessibility system and having it re-added. Generally this is only required once when upgrading to Catalina. See the [[assistance:Accessibility_Permission_Problem|Accessibility Permission Problem assistance]] for more information. | ||
+ | |||
+ | Note that Mojave and later add lots of nagging for security permissions that can be tedious when first using Keyboard Maestro or when first controlling a specific facility or application. | ||
+ | |||
+ | ==== Is Keyboard Maestro compatible with Monterey? ==== | ||
+ | |||
+ | Yes, Keyboard Maestro version 11 is fully compatible with Monterey. In fact, Keyboard Maestro versions going back as far as version 4.x still work fine on Monterey. | ||
+ | |||
+ | Monterey continues with the bugs with its Accessibility System Preferences introduced in Mojave which may require toggling the Accessibility permissions of Keyboard Maestro Engine off and on again, and/or deleting the Keyboard Maestro Engine preference from the Accessibility system and having it re-added. Generally this is only required once when upgrading to Catalina. See the [[assistance:Accessibility_Permission_Problem|Accessibility Permission Problem assistance]] for more information. | ||
+ | |||
+ | Note that Mojave and later add lots of nagging for security permissions that can be tedious when first using Keyboard Maestro or when first controlling a specific facility or application. | ||
+ | |||
+ | ==== Is Keyboard Maestro compatible with Ventura? ==== | ||
+ | |||
+ | Yes, Keyboard Maestro version 11 is fully compatible with Ventura. In fact, Keyboard Maestro versions going back as far as version 4.x still work fine on Ventura. | ||
+ | |||
+ | Ventura continues with the bugs with its Accessibility System Preferences introduced in Mojave which may require toggling the Accessibility permissions of Keyboard Maestro Engine off and on again, and/or deleting the Keyboard Maestro Engine preference from the Accessibility system and having it re-added. Generally this is only required once when upgrading to Catalina. See the [[assistance:Accessibility_Permission_Problem|Accessibility Permission Problem assistance]] for more information. | ||
+ | |||
+ | Note that Mojave and later add lots of nagging for security permissions that can be tedious when first using Keyboard Maestro or when first controlling a specific facility or application. | ||
+ | |||
+ | ==== Is Keyboard Maestro compatible with Sonoma? ==== | ||
+ | |||
+ | Yes, Keyboard Maestro version 11 is fully compatible with Sonoma. In fact, Keyboard Maestro versions going back as far as version 4.x still work fine on Sonoma. | ||
+ | |||
+ | However the initial version of Sonoma has a bug where the menu selection API succeeds but then reports an error which will result in the [[action:Select_or_Show_a_Menu_Item|Select a Menu Item]] action notifies of the failure and aborting the macro unless you turn off notifying and aborting. Hopefully Apple will resolve this in upcoming versions of Sonoma. | ||
+ | |||
+ | Also, Sonoma restricts access to the wireless information unless you grant the application Location security permissions, but unfortunately Apple do not request those security permissions when the API is used, and there is no way to manually add Location permissions. In Keyboard Maestro version 11 you can poke the system to request this permission by executing the [[action:Get_Location|Get Location]] action once. Hopefully Apple will resolve this in upcoming versions of Sonoma. | ||
+ | |||
+ | Sonoma may continue with the bugs with its Accessibility System Preferences introduced in Mojave - we will see as more people use Sonoma. | ||
+ | |||
+ | Note that Mojave and later add lots of nagging for security permissions that can be tedious when first using Keyboard Maestro or when first controlling a specific facility or application. | ||
==== Reporting a bug ==== | ==== Reporting a bug ==== | ||
Line 64: | Line 105: | ||
* What happened that appears incorrect. | * What happened that appears incorrect. | ||
* How to reproduce the problem. | * How to reproduce the problem. | ||
+ | * What version of Keyboard Maestro and macOS you are using. | ||
The more explicit you are, the easier it will be to either explain the problem or correct any issue. | The more explicit you are, the easier it will be to either explain the problem or correct any issue. | ||
Line 69: | Line 111: | ||
==== How do I sync macros between two Macs? ==== | ==== How do I sync macros between two Macs? ==== | ||
- | Keyboard Maestro 6 includes built in support for syncing. | + | Keyboard Maestro (v6+) includes built in support for syncing via Dropbox , iCloud Drive or the like. |
- | + | ||
- | First, all except the first Mac will have their macros entirely replaced, so if you have different macros on each Mac you should export any unique macros for latter import after you have set up syncing. | + | |
- | + | ||
- | * On one Mac, select Start Syncing from the File menu, select Create New, and save your macros to your Dropbox (or other) folder. | + | |
- | * Wait for Dropbox to do its magic. | + | |
- | * On each other Mac, select Start Syncing, select Open Existing, *read the dialog*, then select the sync file in your Dropbox folder. | + | |
- | * Finally, reimport any unique macros you saved from earlier. | + | |
- | + | ||
- | Macro syncing is all or nothing, so all your macros will be on all your Macs, and you can edit them on any Mac. You can set a Macro Group to be disabled specifically on this Mac by editing it in the editor. | + | |
- | As long as you don't make changes on two Macs faster than Dropbox syncs you will not get any conflicts, but if you do, Dropbox will save a conflict file and one or other change will be lost. You will probably need to periodically delete any conflict files Dropbox generates. | + | See the [[manual:Macro_Syncing|Macro Syncing]] user manual section for more information. |
==== How can I transfer my macros to a new Mac? ==== | ==== How can I transfer my macros to a new Mac? ==== | ||
Line 91: | Line 124: | ||
Make very sure that the resulting files and folders on your new Mac have the correct ownership and permissions. | Make very sure that the resulting files and folders on your new Mac have the correct ownership and permissions. | ||
+ | |||
+ | If you are going to continue using both Macs (a single user license for Keyboard Maestro allows you to use it on up to five Macs), you should use [[manual:Macro_Syncing|Macro Syncing]] instead. Also, if you use this method and continue to use both Macs, you will need to run the Terminal command: | ||
+ | |||
+ | ``` | ||
+ | defaults delete com.stairways.keyboardmaestro.engine MacUUID | ||
+ | defaults delete com.stairways.keyboardmaestro.engine MacRemoteUUID | ||
+ | ``` | ||
+ | |||
+ | and then quit and relaunch the Keyboard Maestro Engine and editor. Otherwise the two Macs will be considered the same Mac for several purposes which may cause problems with [[trigger:Remote|Remote]] triggers and [[manual:Macro_Syncing|Macro Syncing]]. | ||
==== Does/will Keyboard Maestro support the Touch Bar? ==== | ==== Does/will Keyboard Maestro support the Touch Bar? ==== | ||
Line 96: | Line 138: | ||
The API for the Touch Bar does not appear to allow non-front applications to affect the Touch Bar, except that Apple does this themselves in Xcode and Screen Capture and the like. So Apple knows and understands the need, but have not made the facility available for Third Party macro trigger style applications. | The API for the Touch Bar does not appear to allow non-front applications to affect the Touch Bar, except that Apple does this themselves in Xcode and Screen Capture and the like. So Apple knows and understands the need, but have not made the facility available for Third Party macro trigger style applications. | ||
- | The Keyboard Maestro 8 editor supports the Touch Bar in the future for use within the editor. | + | The Keyboard Maestro (v8+) editor supports the Touch Bar for use within the editor. |
- | Keyboard Maestro 8 includes some Touch Bar actions ([[action:Show_Palette_of_Macros|Show Palette of Macros]] action and [[action:Get_Touch_Bar_Selection|Get Touch Bar Selection]] action) and allows you to have Conflict Palettes show up in the Touch Bar (though the limited space may make this impractical in practice). | + | Keyboard Maestro (v8+) includes some Touch Bar actions ([[action:Show_Palette_of_Macros|Show Palette of Macros]] action and [[action:Get_Touch_Bar_Selection|Get Touch Bar Selection]] action) and allows you to have Conflict Palettes show up in the Touch Bar (though the limited space may make this impractical in practice). |
Because of Apple's restrictions, actions showing in the Touch Bar require that the current application loses keyboard focus, which is not ideal but may not be a problem. | Because of Apple's restrictions, actions showing in the Touch Bar require that the current application loses keyboard focus, which is not ideal but may not be a problem. | ||
Asking Apple to add Third Party APIs for the "Control Strip" section of the Touch Bar would be a good idea. | Asking Apple to add Third Party APIs for the "Control Strip" section of the Touch Bar would be a good idea. | ||
- | |||
- | ==== What do I enter in the Host field in Keyboard Maestro Control? ==== | ||
- | |||
- | Keyboard Maestro Control lets you trigger macros on your Mac from your iPhone/iPod touch or iPad. | ||
- | |||
- | See [[Keyboard Maestro Control]] for more information. | ||
==== Why is the clipboard not restored after any clipboard action? ==== | ==== Why is the clipboard not restored after any clipboard action? ==== | ||
Line 119: | Line 155: | ||
See also the [next question](#When_should_I_use_Insert_Text_by_Typing_instead_of_by_Pasting). | See also the [next question](#When_should_I_use_Insert_Text_by_Typing_instead_of_by_Pasting). | ||
+ | |||
==== When should I use Insert Text by Typing instead of by Pasting? ==== | ==== When should I use Insert Text by Typing instead of by Pasting? ==== | ||
Line 133: | Line 170: | ||
Type Keystroke. Advantages are it is just like typing yourself, so you can type any keystroke. Disadvantages are that it is quite tedious to do a sequence of them. | Type Keystroke. Advantages are it is just like typing yourself, so you can type any keystroke. Disadvantages are that it is quite tedious to do a sequence of them. | ||
- | Insert Text by Typing. Advantages are it is just like typing yourself, particularly in relation to characters like tab/return, and to the current style in the text you are typing. Disadvantages are that it is slow for large amounts of text, and can't type unusual characters. | + | Insert Text by Typing. Advantages are it is just like typing yourself, particularly in relation to characters like tab/return, and to the current style in the text you are typing. Disadvantages are that it is slow for large amounts of text, and can’t necessarily type unusual characters like emoji. |
Insert Text by Pasting. Advantages are it is fast for large text, and can include any kind of characters. Disadvantages are that it overwrites your clipboard, and how styles are handled may be different to what you expect. | Insert Text by Pasting. Advantages are it is fast for large text, and can include any kind of characters. Disadvantages are that it overwrites your clipboard, and how styles are handled may be different to what you expect. | ||
Line 169: | Line 206: | ||
This means that you should only be using the Typed String triggers in a case where you are in a field that can accept typing. For example, if instead you typed them in the Finder (when not renaming a file for example), first the characters you type would select a file, and then Keyboard Maestro would simulate a delete and trash the file. | This means that you should only be using the Typed String triggers in a case where you are in a field that can accept typing. For example, if instead you typed them in the Finder (when not renaming a file for example), first the characters you type would select a file, and then Keyboard Maestro would simulate a delete and trash the file. | ||
- | Even if you turn off the "Delete Characters", the characters you type are still going to be going to the front application, so you still generally want to be in a text typing context, otherwise the typed characters will beep, or perform weird behaviours (like the aforementioned selecting of a file in the Finder). | + | Even if you turn off the “Delete Characters”, the characters you type are still going to be going to the front application, so you still generally want to be in a text typing context, otherwise the typed characters will beep, or perform weird behaviours (like the aforementioned selecting of a file in the Finder). |
So, you only want to use Typed String triggers in cases where you know you will be typing anyway. Where as a macro that opens a document, URL, application, whatever, is the sort of action you might want to do from anywhere, from the Finder, or while reading email, or whatever. You might well not be in a text typing context, and as such as Typed String trigger is typically a bad choice for the trigger. | So, you only want to use Typed String triggers in cases where you know you will be typing anyway. Where as a macro that opens a document, URL, application, whatever, is the sort of action you might want to do from anywhere, from the Finder, or while reading email, or whatever. You might well not be in a text typing context, and as such as Typed String trigger is typically a bad choice for the trigger. | ||
Line 183: | Line 220: | ||
* Before any action that is going to [[Found Image|find an image]] on the screen (using a [[action:Pause Until|Pause Until]] the image appears on the screen is a good solution here). | * Before any action that is going to [[Found Image|find an image]] on the screen (using a [[action:Pause Until|Pause Until]] the image appears on the screen is a good solution here). | ||
* Periodically if you are going to type lots of text. In particular, at the end of a long loop to ensure the system does not get further and further behind. The event queue is only so big and will eventually fill up and lose events. | * Periodically if you are going to type lots of text. In particular, at the end of a long loop to ensure the system does not get further and further behind. The event queue is only so big and will eventually fill up and lose events. | ||
- | |||
==== How do I get more than one macro palette? ==== | ==== How do I get more than one macro palette? ==== | ||
Line 197: | Line 233: | ||
You can control the order of macros in a macro palette (or the status menu) by prefixing their name with a code like "xx)" (eg "01)"). The macros will be sorted based on the code, but the code will be stripped off before display in the palette (or status menu). | You can control the order of macros in a macro palette (or the status menu) by prefixing their name with a code like "xx)" (eg "01)"). The macros will be sorted based on the code, but the code will be stripped off before display in the palette (or status menu). | ||
+ | |||
==== How do I use a multiple keystroke trigger? ==== | ==== How do I use a multiple keystroke trigger? ==== | ||
Line 237: | Line 274: | ||
So you could use all the function keys (with associated modifiers) on both Macs using a device key trigger. But you could not use, for example, the "a" key on a second keyboard without also typing an "a" (or swallowing both a's if you used a hot key). | So you could use all the function keys (with associated modifiers) on both Macs using a device key trigger. But you could not use, for example, the "a" key on a second keyboard without also typing an "a" (or swallowing both a's if you used a hot key). | ||
- | An alternative is to use a non-keyboard keyboard, something like an [XK-24](http://xkeys.com/xkeys/xk24.php) or the like, that does not perform any normal function. You can use device key triggers with that kind of keyboard. | + | An alternative is to use a non-keyboard keyboard, something like an [XK-24](http://xkeys.com/xkeys/xk24.php) or the like, that does not perform any normal function. You can use device key triggers with that kind of keyboard. Note that the XK devices may need a firmware upgrade to work with Keyboard Maestro in Big Sur or later. |
+ | Also, with version 9, Keyboard Maestro adds direct support for the [[Stream Deck]], including the ability to trigger macros as well as control the image and title of the buttons. | ||
==== What is the difference between text token fields and calculation fields? ==== | ==== What is the difference between text token fields and calculation fields? ==== | ||
Line 244: | Line 282: | ||
In Keyboard Maestro, there are two kinds of processed fields, text token fields and calculation fields. Most text fields are the text token fields. Most numeric fields are calculation fields. | In Keyboard Maestro, there are two kinds of processed fields, text token fields and calculation fields. Most text fields are the text token fields. Most numeric fields are calculation fields. | ||
- | In version 8, a small indicator appears in the field when you are editing to tell you what kind of field it is, Token, Calculation, or Variable. | + | A small indicator appears (v8+) in the field when you are editing to tell you what kind of field it is, Token, Calculation, or Variable. |
Text token fields typically (but not always) have an Insert Token pull down menu, and are always quite long. They are designed to allow you to enter text, rather than a numeric value. | Text token fields typically (but not always) have an Insert Token pull down menu, and are always quite long. They are designed to allow you to enter text, rather than a numeric value. | ||
Line 256: | Line 294: | ||
If desired, you can include a calculation in a text token field by using the %Calculate% token like this: %Calculate%1+2%. | If desired, you can include a calculation in a text token field by using the %Calculate% token like this: %Calculate%1+2%. | ||
- | If desired, you can include a tokens in a calculation field by using the CALCULATE function. | + | If desired, you can include a tokens in a calculation field by using the [[function:CALCULATE|CALCULATE]] function. |
One more thing to note, variables can contain an array of comma separated numbers, like the image size (123,456) or window frame (100,120,600,550). In a calculation field, you can refer to these using a normal (1-based) index notation, like Variable[2]. So you can use ClipboardImageSize[1] and ClipboardImageSize[2]. In a text field you can use %Variable%ClipboardImageSize[1]%. | One more thing to note, variables can contain an array of comma separated numbers, like the image size (123,456) or window frame (100,120,600,550). In a calculation field, you can refer to these using a normal (1-based) index notation, like Variable[2]. So you can use ClipboardImageSize[1] and ClipboardImageSize[2]. In a text field you can use %Variable%ClipboardImageSize[1]%. | ||
For example, the Display Text action field is a text field, and is parsed for text tokens. It can optionally uses the %Calculate% text token to evaluate expressions, whereas the Draw a Shape action fields are calculation fields, so no text tokens, just raw calculations. | For example, the Display Text action field is a text field, and is parsed for text tokens. It can optionally uses the %Calculate% text token to evaluate expressions, whereas the Draw a Shape action fields are calculation fields, so no text tokens, just raw calculations. | ||
+ | |||
==== What is the difference between different kinds of hot keys? ==== | ==== What is the difference between different kinds of hot keys? ==== | ||
Line 283: | Line 322: | ||
==== How should I name my variables? ==== | ==== How should I name my variables? ==== | ||
- | Keyboard Maestro 5 introduced [variables](http://www.keyboardmaestro.com/documentation/6/variables.html) to its set of features. These variables are really great for us scripters! They are implemented in a way that a variable can be initiated from within Keyboard Maestro (A Prompt for User Input, Set Variable to Text, or a Set Variable to Calculation action.), which can then be used in other actions such as Shell and AppleScript scripts. One variable, manipulated with everything your Mac has to offer. | + | Keyboard Maestro 5 introduced [[manual:Variables|Variables]] to its set of features. These variables are really great for scripters. They are implemented in a way that a variable can be initialized from within a Keyboard Maestro macro (A Prompt for User Input, Set Variable to Text, or a Set Variable to Calculation action.), which can then be used in other actions, including Shell and AppleScript scripts. |
- | Variables can be used with the ''%Variable%variable name%'' syntax. [Calculations](http://www.keyboardmaestro.com/documentation/6/calculations.html), such as screen coordinates and frames, whether the Mac is online, Safari tabs, etc, can also be used for some nifty things, and they can set variables! There's a lot to check out with calculations. Calculations, can even have two elements, in which case the variables can be accessed as array. (''%Calculate%variable name[2]'') | + | Variables can be used with the [[token:Variable|%Variable%]] token syntax in Text Fields. [[manual:Calculations|Calculations]] , such as screen coordinates and frames, whether the Mac is online, Safari tabs, etc, can also be used for some nifty things, and they can set variables. There’s a lot to check out with calculations. Calculations, can even have two elements, in which case the variables can be accessed as array. (eg, ''%Calculate%variable name[2]''). In Shell and AppleScript’s this looks similar. Please refer to the [[manual:Variables|Variables]] user manual section for more information. A [[action:Execute_a_Shell_Script|Execute a Shell Script]] action can access variables like so: ''$KMVAR‗variable‗name'' or so ''$_ENV["KMVAR‗variable‗name"]''. |
- | In Shell and AppleScript's this looks similar. Please refer to the [documentation](http://www.keyboardmaestro.com/documentation/6/variables.html) for this. A Shell script can access variables like so: ''$KMVAR‗variable‗name'' or so ''$_ENV["KMVAR‗variable‗name"]'' (‗ is an underscore character). | + | |
Which brings us to the point of this article: *naming best practices*. | Which brings us to the point of this article: *naming best practices*. | ||
- | In version 8, variables that start with "Local " will be local to the macro in question, and that start with "Instance " will be local to the macro instance (ie, that macro and all the macros that it executes). Consider availing yourself of these local variables if appropriate. | + | Variables that start with "Local " (v8+) will be local to the macro in question, and that start with "Instance " will be local to the macro instance (ie, that macro and all the macros that it executes). Consider availing yourself of these local variables if appropriate. |
- | Keyboard Maestro variables can have whitespace characters in their name. This is good for human readability. It also makes for better user experience in User Input dialogs. Whitespace characters are converted to underscores in scripts. From a Shell or AppleScript'ers point of view these don't look “natural”. | + | Keyboard Maestro variables can have whitespace characters in their name. This is good for human readability. It also makes for better user experience in User Input dialogs. Whitespace characters are converted to underscores in scripts. |
- | As I’ve been working on Markdown for Keyboard Maestro 2, Keyboard Maestro introduced a new feature for variable names. Everything that is before two underscores in a variable name will not be shown in User Input actions. | ||
- | |||
- | Example: | ||
- | |||
- | Variable name: ''MMD\_\_Title Case'' | ||
- | |||
- | Will be displayed as: ''Title Case'' | ||
- | |||
- | This variable can be accessed from an AppleScript like so: | ||
- | |||
- | tell application "Keyboard Maestro Engine" | ||
- | set MMDTitleCase to make variable with properties {name:"MMD__Title Case"} | ||
- | set MMDTitleCaseValue to value of MMDTitleCase | ||
- | end tell | ||
- | |||
- | So the best practice recommendation: start your scripts by assigning Keyboard Maestro variables to script variables. | ||
- | |||
- | In Markdown for Keyboard Maestro all variables are prefixed with ''MMD__'' and they use space in their variable name. Prefix *groups* of variables with the same prefix. This way it is easier to keep track of belonging variables, e.g. in Preferences → Variables. | ||
- | |||
- | As a last best practice recommendation: | ||
- | |||
- | Good programmers clean up after themselves, so when you've finished using a variable it's good practice to delete it. | ||
- | |||
- | One method is to use a ''Set Varible to Text'' action: | ||
- | |||
- | set <your-variable-name> to the text-token ''%Delete%'', and it will be completely deleted. | ||
- | |||
- | Another method is to use AppleScript: | ||
- | |||
- | tell application "Keyboard Maestro Engine" to delete variable "myVariableName" | ||
- | |||
- | Keywords: delete variable | ||
==== People have suggested I use regular expressions to solve a problem, but how? ==== | ==== People have suggested I use regular expressions to solve a problem, but how? ==== | ||
Line 331: | Line 337: | ||
You can learn more about regular expressions in various places: | You can learn more about regular expressions in various places: | ||
+ | |||
* The BBEdit or TextWrangler Help has extensive documentation on regular expressions. | * The BBEdit or TextWrangler Help has extensive documentation on regular expressions. | ||
* gskinner’s [RegExr](http://gskinner.com/RegExr/) provides a live testing field for regular expressions (requires Flash). | * gskinner’s [RegExr](http://gskinner.com/RegExr/) provides a live testing field for regular expressions (requires Flash). | ||
Line 339: | Line 346: | ||
==== How can I close the Keyboard Maestro editor window? ==== | ==== How can I close the Keyboard Maestro editor window? ==== | ||
- | The Keyboard Maestro editor is designed to be run only when needed, and then quit. By not allowing the main window to be closed, the application encourages you to quit it instead. | + | You can (v8+) click the close box on the editor window and it will quit the editor for you. |
- | + | ||
- | In Keyboard Maestro 8, you can click the close box on the editor window and it will quit the editor for you. | + | |
The Keyboard Maestro Engine will continue running and processing your macros after you quit the Keyboard Maestro editor. Read the [Quick Start](http://wiki.keyboardmaestro.com/Quick_Start) for more details about the difference between the editor and the engine. | The Keyboard Maestro Engine will continue running and processing your macros after you quit the Keyboard Maestro editor. Read the [Quick Start](http://wiki.keyboardmaestro.com/Quick_Start) for more details about the difference between the editor and the engine. | ||
- | ==== What does Keyboard Maestro use the Address Book for? ==== | + | ==== What does Keyboard Maestro use the Contacts for? ==== |
- | Mountain Lion adds an alert to tell you when an application is accessing the Address Book, but unfortunately, that alert does not distinguish between an application reading your email address and an application reading your whole contacts database. | + | The system adds an alert to tell you when an application is accessing the Contacts, but unfortunately, that alert does not distinguish between an application reading your “My Card” email address and an application reading your whole contacts database. |
- | Keyboard Maestro accesses your Me card information only, for the purposes of pre-filling your contact information if you wish to subscribe to the Getting Started emails (highly recommended!), and for the use in the AddressBook tokens (eg %AddressBook%First%). | + | Keyboard Maestro can access your My Card information only, for the purposes of pre-filling your contact information if you wish to subscribe to the Getting Started emails (highly recommended!), and for the use in the [[token:AddressBook|%AddressBook%]] tokens (eg %AddressBook%First%). Keyboard Maestro does not directly access any of the remainder of your contacts database (although you can access them via AppleScript). |
==== How can I get the mouse coordinates on the screen or in a window? ==== | ==== How can I get the mouse coordinates on the screen or in a window? ==== | ||
Line 367: | Line 372: | ||
==== How can I move an application or window to a particular Desktop/Space? ==== | ==== How can I move an application or window to a particular Desktop/Space? ==== | ||
- | Unfortunately, Apple have provided no control or API over the Spaces system, so unfortunately Keyboard Maestro cannot help you control which Space an application or window is in. | + | Unfortunately, Apple have provided no control or API over the Spaces system, so Keyboard Maestro cannot help you control which Space an application or window is in. The only option is to control the UI to perform the required changes. |
==== How can I select from a popup menu? ==== | ==== How can I select from a popup menu? ==== | ||
Line 420: | Line 425: | ||
You can cancel specific macros by selecting from the Cancel submenu in the Status Menu, or by selecting Start Debugging in the Status Menu, and clicking the appropriate cancel buttons. | You can cancel specific macros by selecting from the Cancel submenu in the Status Menu, or by selecting Start Debugging in the Status Menu, and clicking the appropriate cancel buttons. | ||
+ | |||
+ | You can also see and cancel macros by choosing the Status Menu ➤ Start Debugging menu. | ||
There are also [actions for Cancelling All, This, or Other Macros](https://wiki.keyboardmaestro.com/action/Cancel_All_Macros), which you can use and trigger in any way you like. | There are also [actions for Cancelling All, This, or Other Macros](https://wiki.keyboardmaestro.com/action/Cancel_All_Macros), which you can use and trigger in any way you like. | ||
+ | |||
+ | You can quit the Keyboard Maestro Engine from the status menu of the Keyboard Maestro editor File menu, and you can launch the editor while holding all the modifiers down to quit all running engines and not launch the engine. | ||
+ | |||
==== What are the differences between the Mac App Store version and the version purchased directly from Stairways? ==== | ==== What are the differences between the Mac App Store version and the version purchased directly from Stairways? ==== | ||
Line 428: | Line 438: | ||
The Mac App Store had only version 5. It is an old version and you should not buy Keyboard Maestro from the Mac App Store. | The Mac App Store had only version 5. It is an old version and you should not buy Keyboard Maestro from the Mac App Store. | ||
- | The MAS requires sandboxing for any non-bugfix updates (Apple's requirement). and this excludes workflow applications like Keyboard Maestro, so version 5.3.2 will likely be the last version available on the MAS. | + | The Mac App Store requires sandboxing for any non-bugfix updates (Apple's requirement). and this excludes workflow applications like Keyboard Maestro, so version 5.3.2 will likely be the last version available on the Mac App Store. |
* The MAS version does not support secure https in the web server. So all web use (including clipboard transfers) are done in clear text (Apple's requirement). | * The MAS version does not support secure https in the web server. So all web use (including clipboard transfers) are done in clear text (Apple's requirement). | ||
Line 442: | Line 452: | ||
Keyboard Maestro is no longer available from the Mac App Store. | Keyboard Maestro is no longer available from the Mac App Store. | ||
- | As of June 2012, Apple now requires sandboxing of any application before it can be updated (other than bug fix updates) on the Mac App Store. Since the Apple entitlements available to a sandboxed application are entirely insufficient to allow Keyboard Maestro to perform many of its operations, Keyboard Maestro cannot be sandboxed. Everything Keyboard Maestro does is strictly part of the standard system APIs, but Apple simply has not provided the entitlements required to do the things Keyboard Maestro does from within a sandbox. So as it stands, Keyboard Maestro will not be able to get anything more than minor updates on the Mac App Store, and version 5.3.x will be the last version available through the Mac App Store. | + | As of June 2012, Apple requires sandboxing of any application before it can be updated (other than bug fix updates) on the Mac App Store. Since the Apple entitlements available to a sandboxed application are entirely insufficient to allow Keyboard Maestro to perform many of its operations, Keyboard Maestro cannot be sandboxed. Everything Keyboard Maestro does is strictly part of the standard system APIs, but Apple simply has not provided the entitlements required to do the things Keyboard Maestro does from within a sandbox. So as it stands, Keyboard Maestro will not be able to get anything more than minor updates on the Mac App Store, and version 5.3.x will be the last version available through the Mac App Store. |
Although it is possible to transition your license from the Mac App Store version to a direct license by contacting Stairways, it will cause some disruption. | Although it is possible to transition your license from the Mac App Store version to a direct license by contacting Stairways, it will cause some disruption. | ||
Line 448: | Line 458: | ||
==== Should I buy from the Mac App Store or Buy Direct? ==== | ==== Should I buy from the Mac App Store or Buy Direct? ==== | ||
- | Keyboard Maestro is no longer available from the Mac App Store, you cannot buy from the Mac App Store. You could never buy version 6 from the Mac App Store. | + | Keyboard Maestro is no longer available from the Mac App Store, so you cannot buy from the Mac App Store. |
+ | |||
+ | You could never buy any version from version 6 onwards from the Mac App Store. | ||
+ |