To configure Keyboard Maestro, first launch Keyboard Maestro and choose Preferences from the Keyboard Maestro menu.
The preferences are divided into sections.
In the General preference pane you can:
In the Palettes preference pane you can adjust the style of the default palette, the Global Macro Palette, the Applications Palette, and the Conflict Palette.
You can configure the Conflict Palette to be placed under the mouse or to have it remain where you place it.
You can configure the Conflict Palette to include entries in the Touch Bar.
In the Web Server preference pane you can:
The web server is disabled by default.
If the web server and web browsing are enabled, then anyone who can connect to your Mac can execute any macro that has a Public Web trigger.
If the web server and web browsing are enabled, and if you have configured a username and password, then anyone who can connect to your Mac and login with the specified username and password can execute any of your macros.
If the web server and iPhone access are enabled, and if you have configured a username and password, then anyone who can connect to your Mac from an iPhone and login with the specified username and password can execute any of your macros.
If the web server and receiving clipboard are enabled, then anyone can send you clipboards which will appear in your clipboard history. By default they do not overwrite the current clipboard, but you can enable that to allow the current clipboard to be directly written remotely.
Macros are still only available when they are enabled and their containing macro group is enabled and active.
You can configure custom styles using the defaults write command to add a custom style, for example:
defaults write com.stairways.keyboardmaestro.editor WebServerCustomStyles -string 'body { background: green; }'
This might be useful if you are controlling multiple Macs and want to differentiate them more clearly.
In the Clipboards preference pane you can add, remove and rename Named Clipboards and see and change their values.
Named Clipboards store snippets or text or images (or anything the clipboard can hold) and you can copy or paste from them using the Clipboard Switcher or using appropriate macro actions.
You can paste an image into a Named Clipboard by selecting it in the list and pasting an image (if you select part of the text, it will paste the image into the styled text, which works but is probably not what you want).
You can also inspect variables and other values in the Value Inspector.
In the Variables preference pane you can add and remove variables and see and change their values.
You do not need to create variables, just using them and giving them a value is all that is required for them to spring into existence. You can also inspect variables and other values in the Value Inspector.
In the Excluded preference pane you can add and remove applications from the global excluded applications list. Excluded applications will not be shown in the Application Switcher, and are (optionally) not hidden or quit by the Hide All Applications or Quit All Applications actions.
You can add and remove applications from the Applications Palette exclusion list. Excluded applications will not appear in the Applications Palette. You can also exclude applications by control or right clicking on them in the Applications Palette and selecting Exclude from Applications Palette.
You can also add and remove applications from the clipboard history exclusion list. When an excluded application is at the front, Keyboard Maestro will not automatically record the clipboard history each time it changes. It will still read the current System Clipboard if you explicitly ask for it in a macro or open the Clipboard History Switcher.
You can configure various preferences using defaults write from the Mac OS X Terminal. Some preferences will take effect immediately, but others may require the editor or engine to be relaunched.
You can adjust the get mouse location delay with:
defaults write com.stairways.keyboardmaestro.editor MouseGetCountdown -int 5
You can adjust the spelling of Favorites with:
defaults write com.stairways.keyboardmaestro.editor FavoritesDisplayName -string "Favourites"
You can turn off automatic completion (autocomplete) with:
defaults write com.stairways.keyboardmaestro.editor AutomaticCompletion -bool NO
You can limit the maximum undo stack size in the editor with (default 200MB):
defaults write com.stairways.keyboardmaestro.editor MaximumUndoSize -int 200000000
You can add some custom styling to the detail view displays with:
defaults write com.stairways.keyboardmaestro.editor DetailDisplayExtraStyle -string 'div.ActionComment div.UserText { font-family:"Monaco"; }'
You can set your preferred first day of the week (1=Sunday, 7=Saturday):
defaults write com.stairways.keyboardmaestro.editor FirstDayOfWeek -int 2
You can disable all animation in the editor with:
defaults write com.stairways.keyboardmaestro.editor DisableAnimation -bool YES
You can configure the fonts used for the various action text views with:
defaults write com.stairways.keyboardmaestro.editor Font-Normal -string "Monaco" defaults write com.stairways.keyboardmaestro.editor Font-Shell -string "USER" defaults write com.stairways.keyboardmaestro.editor Font-AppleScript -string "FIXED" defaults write com.stairways.keyboardmaestro.editor Font-JavaScript -string "SYSTEM" defaults write com.stairways.keyboardmaestro.editor Font-Swift -string "Times" defaults write com.stairways.keyboardmaestro.editor Font-HTML -string "Courier:25" defaults write com.stairways.keyboardmaestro.editor Font-JSON -string "Marker Felt:10" defaults write com.stairways.keyboardmaestro.editor Font-Comment -string "Palatino:20"
The value of this field can be one of “USER”, “FIXED” or “SYSTEM” (for the default user, fixed and system fonts), or a font name. This can optionally be followed by a colon and the point size. The default point size is 13. The font size is scaled based on the Large Text setting, and this size is used for the Normal setting.
If you wish to effectively disable the Keyboard Maestro Clipboard History, you can do so by setting the history size to zero, and then Keyboard Maestro will only read the clipboard when you explicitly ask it to use the clipboard.
You can set the following preferences for the Clipboard History
Maximum Number of Items (default 200)
defaults write com.stairways.keyboardmaestro.engine MaxClipboardHistory -int 200
Maximum Clipboard Flavor Size (default 100MB)
defaults write com.stairways.keyboardmaestro.engine ClipboardFlavorMaximumSize -int 100000000
Maximum Position of Concealed (Password) Items (default 10)
defaults write com.stairways.keyboardmaestro.engine MaxConcealedPosition -int 10
Regular Expression Which Matches Text You Think Should or Should Not Be Concealed as Passwords
defaults write com.stairways.keyboardmaestro.engine LooksLikePassword -string "^[a-zA-Z0-9]+$" defaults write com.stairways.keyboardmaestro.engine LooksLikeNotPassword -string "^[a-zA-Z0-9]+$"
Include Microsoft PDFs in Clipboards
Microsoft applications include a PDF flavor with every copy, and starting up the PDF rendering engine is slow, making the first copy after launching a Microsoft application. Keyboard Maestro (v9.0+) excludes PDF flavors from clipboards copied in Microsoft applications by default, but you can turn this off with:
defaults write com.stairways.keyboardmaestro.engine ExcludeMicrosoftPDFFlavor -bool NO
Include Microsoft Image Formats
Microsoft applications also include flavors for every possible image format with every copy. Keyboard Maestro (v9.0+) excludes secondary image flavors like BMP when there is a PNG or TIFF flavor available. You can turn this off with:
defaults write com.stairways.keyboardmaestro.engine ExcludeMultipleImageFlavors -bool NO
You can set the command line tool that is used to execute AppleScripts
defaults write com.stairways.keyboardmaestro.engine OSAScriptCommand -string "/usr/bin/arch -i386 /usr/bin/osascript"
Change which Safari-based Browser will be targeted by the “Safari” Actions, Tokens, and Functions.
These preferences change AppleScript Application name that is used to control the respective browser in the form of tell application “<browser name>”. Note that the Safari browser must still behave like Safari, and the Chrome browser must behave like Chrome, or the actions will not work. Do not bother trying to set them to Firefox or something like that as it will not work. All this allows you to do is select a specific version of Safari or Chrome respectively.
You can Safari-based Browser targeted in Actions, etc, as well as the name of the Safari browser shown in applications:
defaults write com.stairways.keyboardmaestro.engine AppleScriptSafariBundleID -string "com.apple.SafariTechnologyPreview" defaults write com.stairways.keyboardmaestro.engine BrowserSafariName -string "Safari Tech"
or
defaults write com.stairways.keyboardmaestro.engine AppleScriptSafariName -string "com.apple.Safari"
Change which Chrome-based Browser will be targeted by the various Keyboard Maestro “Chrome Related” Actions, Tokens, and Functions.
Note: By using the FrontBrowser Related Tokens, Actions, and Functions, you may not need to change the below. Just use these FrontBrowser entities and whatever Browser is currently (or most recently) frontmost will be targeted. This includes all Safari-based Browsers and Chrome-based Browsers.
# ~~~ For Brave Browser ~~~ defaults write com.stairways.keyboardmaestro.engine AppleScriptGoogleChromeBundleID -string "com.brave.Browser" defaults write com.stairways.keyboardmaestro.engine BrowserGoogleChromeName -string "Brave Browser" # ~~~For Chrome Canary ~~~ defaults write com.stairways.keyboardmaestro.engine AppleScriptGoogleChromeBundleID -string "com.google.Chrome.canary" defaults write com.stairways.keyboardmaestro.engine BrowserGoogleChromeName -string "Chrome Canary"
To restore the defaults back to use Google Chrome, just delete the preferences:
# ~~~ Restore to Google Chrome ~~~
defaults delete com.stairways.keyboardmaestro.engine AppleScriptGoogleChromeBundleID
defaults delete com.stairways.keyboardmaestro.engine BrowserGoogleChromeName
You can disable all animation in the engine with:
defaults write com.stairways.keyboardmaestro.engine DisableAnimation -bool YES
You can disable Shift-Space from clearing the Typed String buffer
defaults write com.stairways.keyboardmaestro.engine TypedStringClearWithShiftSpace -bool NO
and you can disable clicks from clearing the Typed String buffer
defaults write com.stairways.keyboardmaestro.engine TypedStringClearWithMouse -bool NO
and you can set the idle time for clearing the Typed String buffer (default 5 seconds)
defaults write com.stairways.keyboardmaestro.engine TypedStringClearTime -float 5.0
You can force Keyboard Maestro to simulate keystrokes only as Unicode characters, rather than typing them as you would on the keyboard
defaults write com.stairways.keyboardmaestro.engine ForceInsertTextByTypingToUseUnicode -bool YES
You can set the maximum key down trigger time for Hot Key triggers (default 10 seconds)
defaults write com.stairways.keyboardmaestro.engine MaxKeyRepeatTime -float 10.0
You can configure the timing of a “tap” (Hot Key and USB Device Key triggers) with:
defaults write com.stairways.keyboardmaestro.engine MaxTapDownTime -float 1.0 defaults write com.stairways.keyboardmaestro.engine MaxTapUpTime -float 1.0
You can silence the clipboard transfer sounds with:
defaults write com.stairways.keyboardmaestro.engine SilenceClipboardSounds -bool YES
And you can silence the recording sounds with:
defaults write com.stairways.keyboardmaestro.engine SilenceRecordingSounds -bool YES
You can adjust the recording delay with:
defaults write com.stairways.keyboardmaestro.engine RecordingCountDown -int 5
Note: you can option click the Record button to avoid the delay.
You can have all recorded clicks recorded in absolute coordinates by default with:
defaults write com.stairways.keyboardmaestro.engine AlwaysRecordAbsoluteClicks -bool YEA
By default, clicks are recorded relative to the front window, if that window has remained the front window and retained its size and position for some time. Note that for a short time after recording, you can change the relative field in the action, and the values will update to appropriate values.
You can have the conflict palette use sequential hot keys from the first letter with:
defaults write com.stairways.keyboardmaestro.engine SequentialConflictPalette -bool YES
The default allowable down time is the double click interval, and the default allowable up time is twice the double click interval.
You can set configure whether the Status Menu includes the Paste submenu and how many items it includes with:
defaults write com.stairways.keyboardmaestro.engine StatusMenuIncludePaste -bool NO defaults write com.stairways.keyboardmaestro.engine StatusMenuPasteCount -int 30
You can set configure Display Large text color and display period with:
defaults write com.stairways.keyboardmaestro.engine DisplayLargeTextColor -string "502033" defaults write com.stairways.keyboardmaestro.engine DisplayLargeTextDisplayPeriod -float 5.0
By default recorded clicks do not restore the mouse location, but you can change that with:
defaults write com.stairways.keyboardmaestro.engine RecordedClickRestoresMouseLocation -bool NO
You can control which notifications are displayed with:
defaults write com.stairways.keyboardmaestro.engine "Notification-Information" -bool NO defaults write com.stairways.keyboardmaestro.engine "Notification-MacroExecution" -bool NO defaults write com.stairways.keyboardmaestro.engine "Notification-MacroCancelled" -bool YES defaults write com.stairways.keyboardmaestro.engine "Notification-ActionFailed" -bool YES defaults write com.stairways.keyboardmaestro.engine "Notification-ReceivedClipboard" -bool YES
You can have new versions reported only when the editor activates with:
defaults write com.stairways.keyboardmaestro.engine ReportUpdatesWhenEditorActivates -bool YES
You can enable the WebKit inspector with:
defaults write com.stairways.keyboardmaestro.engine WebKitDeveloperExtras -bool YES
Then you can control-click on elements and use Inspect Element and get an inspector window, including a Console tab.
You can configure a custom palette theme color style with:
defaults write com.stairways.keyboardmaestro.engine CustomPaletteTheme -string "0,90,74, 110,90,74, 256,90,74"
The style includes 3 or 6 HSB colors (being background, text, highlighted letter, selected background, selected text, selected highlight letter) each specified as hue,saturation,brightness. The background brightness is dropped by 33%, but if there are only three colors, then the selected background color is the background without the 33% drop. You can select the Custom style in the Theme Editor.
Alternatively (v9.0+), you can specify the theme using JSON and including all the details for the theme including optional gradients. The format is:
{ "IncludeTexture":<BOOLEAN>, "TitleBackground":<COLORorGRADIENT>, "TitleBorder":<COLORorGRADIENT>, "BodyBackground":<COLORorGRADIENT>, "BodyBackgroundSelected":<COLORorGRADIENT>, "Frame":<COLOR>, "TitleText":<COLOR>, "Text":<COLOR>, "TextHighlighted":<COLOR>, "TextSelected":<COLOR>, "TextSelectedHighlighted":<COLOR>, }
Type | Value |
---|---|
<BOOLEAN> | “true” or “false” |
<COLOR> | an array of three numbers, being hue (0-360), saturation (0-100), and brightness (0-100) |
<COLORorGRADIENT> | either a <COLOR> or a dictionary {“c1”:<COLOR>, “c2”:<COLOR>, “angle”:<0-360>} |
IncludeTexture specifies whether Keyboard Maestro includes the subtle mottling texture on the main background.
For example:
defaults write com.stairways.keyboardmaestro.engine CustomPaletteTheme -string '{ "IncludeTexture":false, "TitleBackground":{"c1" : [180,30,53], "c2" : [180,30,40], "angle":270}, "TitleBorder":[180,30,40], "BodyBackground":{"c1" : [180,30,50], "c2" : [180,30,38], "angle":270}, "BodyBackgroundSelected":[180,30,60], "Frame":[180,30,40], "TitleText":[180,40,92], "Text":[180,40,92], "TextHighlighted":[180,40,70], "TextSelected":[180,40,98], "TextSelectedHighlighted":[180,40,75], }'
NoteL the “-string” is important - otherwise the defaults
command will interpret the JSON itself and that will not work.