Keyboard Maestro actions
Every Keyboard Maestro action and what it becomes.
Every Keyboard Maestro action the importer knows, with the Switchboard step it becomes. Search for the Keyboard Maestro name and the answer comes up here and on the step's own page. Notes are what the importer tells you when a conversion is close but not exact.
Applications #
| Keyboard Maestro action | Switchboard | Notes |
|---|---|---|
| Activate a Specific Application | Activate app | |
| Activate Last Application | App commands | |
| Activate Next Application | App commands | |
| Activate Application Switcher | App or window switcher | The Application Switcher's look (icon grid, cover flow, colours) isn't carried over: Switchboard shows a list to pick an app from |
| Activate Application Launcher | App or window switcher | The Application Launcher's look isn't carried over: Switchboard shows a list of installed apps to launch |
| Apply Modifiers to a Specific Application | Press or hold modifiers | Keyboard Maestro applied these modifiers to events sent to the application; Switchboard holds them down until a "release modifiers" step (or a minute passes) |
| Quit a Specific Application | Quit app | |
| Force Quit a Specific Application | Quit app | |
| Quit All Applications | Quit app | Quit All Applications quits every regular app except Finder and Switchboard; Keyboard Maestro's exceptions aren't carried over |
| Quit Other Applications | App commands | |
| Hide Front Application | App commands | |
| Hide Other Applications | App commands | |
| Hide All Applications | App commands | |
| Hide a Specific Application | Hide app | |
| Show All Applications | App commands | |
| Show a Specific Application | App commands | |
| Show Applications Palette | App or window switcher | The Applications Palette is Switchboard's app switcher list |
| Hide Applications Palette | Nothing to run (see the note) or built from the action's settings | Hide Applications Palette dropped: Switchboard's app list closes itself after a choice |
| Toggle Applications Palette | App or window switcher | The Applications Palette is Switchboard's app switcher list |
Clipboard & named clipboards #
| Keyboard Maestro action | Switchboard | Notes |
|---|---|---|
| Paste by Name | Clipboard | Paste by Name becomes a list of the recent clipboards (history), and the pick is pasted |
| Set Clipboard to Text | Clipboard | |
| Set Named Clipboard to Text | Clipboard | |
| Set Clipboard to Past Clipboard | Clipboard | |
| Set Clipboard to Named Clipboard | Clipboard | |
| Save Clipboard to Named Clipboard | Clipboard | |
| Delete Past Clipboard | Clipboard | |
| Copy Clipboard to Clipboard | Clipboard | |
| Cut | Press keys, Wait | |
| Copy | Press keys, Wait | Copy presses Command-C and waits a moment instead of watching the clipboard change |
| Paste | Press keys | |
| Copy named clipboard | Clipboard | |
| Cut named clipboard | Clipboard | |
| Paste named clipboard | Clipboard | |
| Activate Clipboard History Switcher | Clipboard | The history switcher is a list of recent clipboards; the pick is pasted |
| Activate Clipboard Copy Switcher | Clipboard | |
| Activate Clipboard Cut Switcher | Clipboard | |
| Activate Clipboard Paste Switcher | Clipboard | |
| Activate Named Clipboard Switcher | Clipboard | The clipboard switcher becomes a list of named clipboards; the pick is put on the clipboard (Keyboard Maestro switches which clipboard later copies use, which Switchboard doesn't) |
| Set Clipboard to Image | Clipboard | |
| Set Clipboard to File Reference | Clipboard | |
| Set Find Pasteboard | Clipboard | |
| Remove Clipboard Flavors | Clipboard | |
| Display Clipboard / Named Clipboard | Clipboard, Show message | Display Clipboard shows the clipboard's text as a message on screen (a picture or styled text shows as its plain text) |
Control flow #
| Keyboard Maestro action | Switchboard | Notes |
|---|---|---|
| If Then Else | If | |
| Switch / Case | Nothing to run (see the note) or built from the action's settings | Switch/Case became nested if steps |
| Try / Catch | Group | Try/Catch became a group whose failure runs the catch steps |
| Throw | Throw error | |
| Group | Group | |
| Repeat | Repeat | |
| While | Repeat | |
| Until | Repeat | |
| For Each | Repeat | No collection was chosen in Keyboard Maestro for the For Each loop. Pick what to go through; until then it runs for nothing |
| For Each over LinesIn | Repeat | No collection was chosen in Keyboard Maestro for the For Each loop. Pick what to go through; until then it runs for nothing |
| For Each over SubstringsIn | Repeat | No collection was chosen in Keyboard Maestro for the For Each loop. Pick what to go through; until then it runs for nothing |
| For Each over Files | Repeat | No collection was chosen in Keyboard Maestro for the For Each loop. Pick what to go through; until then it runs for nothing |
| For Each over Applications | Repeat | No collection was chosen in Keyboard Maestro for the For Each loop. Pick what to go through; until then it runs for nothing |
| For Each over Variables | Repeat | No collection was chosen in Keyboard Maestro for the For Each loop. Pick what to go through; until then it runs for nothing |
| For Each over Dictionaries | Repeat | No collection was chosen in Keyboard Maestro for the For Each loop. Pick what to go through; until then it runs for nothing |
| For Each over DictionaryKeys | Repeat | No collection was chosen in Keyboard Maestro for the For Each loop. Pick what to go through; until then it runs for nothing |
| For Each over FinderSelection | Repeat | No collection was chosen in Keyboard Maestro for the For Each loop. Pick what to go through; until then it runs for nothing |
| For Each over FoundImages | Repeat | No collection was chosen in Keyboard Maestro for the For Each loop. Pick what to go through; until then it runs for nothing |
| For Each over JSON | Repeat | No collection was chosen in Keyboard Maestro for the For Each loop. Pick what to go through; until then it runs for nothing |
| For Each over Volumes | Repeat | No collection was chosen in Keyboard Maestro for the For Each loop. Pick what to go through; until then it runs for nothing |
| For Each over PastClipboards | Repeat | No collection was chosen in Keyboard Maestro for the For Each loop. Pick what to go through; until then it runs for nothing |
| For Each over Range | Repeat | No collection was chosen in Keyboard Maestro for the For Each loop. Pick what to go through; until then it runs for nothing |
| Cancel This Macro | Stop macro | Cancel stops this macro; a macro that called it carries on |
| Cancel Just This Macro | Stop macro | Cancel stops this macro; a macro that called it carries on |
| Cancel All Macros | Stop macro | Cancel All Macros only stops this macro in Switchboard |
| Cancel All Other Macros | Cancel other macros | |
| Cancel a Specific Macro | Cancel other macros | The macro to cancel (00000000-0000-0000-0000-000000000000) isn't in this import; the step fails until a macro with that id exists |
| Break From Loop | Break out of repeat | |
| Continue Loop | Next repeat | |
| Retry This Loop | Retry this loop pass | |
| Return Result / from Subroutine | Return a value | |
| Pause for seconds | Wait | |
| Pause for hundredths | Wait | |
| Pause for minutes | Wait | |
| Pause for hours | Wait | |
| Pause Until | Repeat, Wait | Pause Until became a loop that checks every quarter second |
| Pause Until Change | Wait for a change | Pause Until Change waits up to an hour |
| Assert | If, Stop macro | Assert became: if the conditions don't hold, cancel the macro |
| Comment | Nothing to run (see the note) or built from the action's settings | Comment dropped |
| Log | Log message | |
| Set Action Delay | Nothing to run (see the note) or built from the action's settings | Action delay setting dropped: Switchboard waits for each target instead (rule 5) |
| Semaphore Lock | Lock or unlock | |
| Semaphore Unlock | Lock or unlock | |
| Semaphore Reset | Lock or unlock |
Debugging #
| Keyboard Maestro action | Switchboard | Notes |
|---|---|---|
| Debugger: Start | Debugger action | Debugger action Start pauses a debugged run before the next step; in a normal run it is a note |
| Debugger: Toggle | Debugger action | Debugger action Toggle pauses a debugged run before the next step; in a normal run it is a note |
| Debugger: Finish | Debugger action | Debugger action Finish has no Switchboard counterpart; it leaves a note in the trace |
| Debugger: BreakpointThis | Debugger action | Debugger action BreakpointThis pauses a debugged run before the next step; in a normal run it is a note |
| Debugger: BreakpointEvery | Debugger action | Debugger action BreakpointEvery has no Switchboard counterpart; it leaves a note in the trace |
| Debugger: BreakpointOthers | Debugger action | Debugger action BreakpointOthers has no Switchboard counterpart; it leaves a note in the trace |
| Debugger: ContinueThis | Debugger action | Debugger action ContinueThis has no Switchboard counterpart; it leaves a note in the trace |
| Debugger: ContinueEvery | Debugger action | Debugger action ContinueEvery has no Switchboard counterpart; it leaves a note in the trace |
| Debugger: NewMacrosPaused | Debugger action | Debugger action NewMacrosPaused has no Switchboard counterpart; it leaves a note in the trace |
| Debugger: NewMacrosRun | Debugger action | Debugger action NewMacrosRun has no Switchboard counterpart; it leaves a note in the trace |
| Debugger: StepIntoOthers | Debugger action | Debugger action StepIntoOthers pauses a debugged run before the next step; in a normal run it is a note |
| Debugger: StepOutOthers | Debugger action | Debugger action StepOutOthers pauses a debugged run before the next step; in a normal run it is a note |
| Debugger: StepOverOthers | Debugger action | Debugger action StepOverOthers pauses a debugged run before the next step; in a normal run it is a note |
Files #
| Keyboard Maestro action | Switchboard | Notes |
|---|---|---|
| Reveal a File | File operation | |
| Create Unique File | File operation | |
| Move a File | Run shell script | |
| Rename a File | File operation | |
| Move or Rename a File | File operation | |
| Copy a File | Run shell script | |
| Duplicate a File | File operation | |
| Trash a File | File operation | |
| Delete a File | Run shell script | Delete moves the item to the Trash through Finder |
| Recursively Delete a File | File operation | |
| New Folder | Run shell script | New Folder runs mkdir -p |
| Read a File into Variable | Run shell script | |
| Read a File into Named Clipboard | Work with a picture | |
| Read a File into System Clipboard | Work with a picture | |
| Write to a File | Run shell script | |
| Append Text to a File | Run shell script | |
| Get File Attribute: FileType | Get or set a file attribute | File Type reads File, Folder, Symbolic Link or Alias |
| Get File Attribute: Size | Get or set a file attribute | |
| Get File Attribute: CreationDate | Get or set a file attribute | Dates are read as yyyy-MM-dd HH:mm:ss text |
| Get File Attribute: ModificationDate | Get or set a file attribute | Dates are read as yyyy-MM-dd HH:mm:ss text |
| Get File Attribute: AddedDate | Get or set a file attribute | Dates are read as yyyy-MM-dd HH:mm:ss text |
| Get File Attribute: LastUsedDate | Get or set a file attribute | Dates are read as yyyy-MM-dd HH:mm:ss text |
| Get File Attribute: DownloadedDate | Get or set a file attribute | Dates are read as yyyy-MM-dd HH:mm:ss text |
| Get File Attribute: WhereFrom | Get or set a file attribute | WhereFrom is one item per line |
| Get File Attribute: OwnerName | Get or set a file attribute | |
| Get File Attribute: OwnerID | Get or set a file attribute | |
| Get File Attribute: GroupName | Get or set a file attribute | |
| Get File Attribute: GroupID | Get or set a file attribute | |
| Get File Attribute: POSIXPermissions | Get or set a file attribute | |
| Get File Attribute: ExtensionHidden | Get or set a file attribute | |
| Get File Attribute: Invisible | Get or set a file attribute | |
| Get File Attribute: HFSCreatorCode | Get or set a file attribute | |
| Get File Attribute: HFSTypeCode | Get or set a file attribute | |
| Get File Attribute: ContentType | Get or set a file attribute | |
| Get File Attribute: ContentKind | Get or set a file attribute | |
| Get File Attribute: Tags | Get or set a file attribute | Tags is one item per line |
| Get File Attribute: Comment | Get or set a file attribute | |
| Get File Attribute: ParentPath | Get or set a file attribute | |
| Get File Attribute: Name | Get or set a file attribute | |
| Get File Attribute: BaseName | Get or set a file attribute | |
| Get File Attribute: Extension | Get or set a file attribute | |
| Get File Attribute: DisplayName | Get or set a file attribute | |
| Set File Attribute: CreationDate | Get or set a file attribute | |
| Set File Attribute: ModificationDate | Get or set a file attribute | |
| Set File Attribute: GroupName | Get or set a file attribute | |
| Set File Attribute: GroupID | Get or set a file attribute | |
| Set File Attribute: POSIXPermissions | Get or set a file attribute | |
| Set File Attribute: ExtensionHidden | Get or set a file attribute | |
| Set File Attribute: Invisible | Get or set a file attribute | |
| Set File Attribute: HFSCreatorCode | Get or set a file attribute | |
| Set File Attribute: HFSTypeCode | Get or set a file attribute | |
| Set File Attribute: Tags | Get or set a file attribute | |
| Set File Attribute: TagsAdd | Get or set a file attribute | |
| Set File Attribute: TagsToggle | Get or set a file attribute | |
| Set File Attribute: TagsRemove | Get or set a file attribute | |
| Set File Attribute: Comment | Get or set a file attribute | |
| Split Path | Split path | Split Path sets shared.x to the path, and shared.xDirectory, shared.xName, shared.xBaseName and shared.xExtension |
| Set File Icon | Set file icon | |
| Open a File, Folder or Application | Open file or folder | |
| Open the Finder Selection | Open Finder selection | |
| Open File (legacy) | Open file or folder |
Images #
| Keyboard Maestro action | Switchboard | Notes |
|---|---|---|
| Screen Capture | Work with a picture | |
| Find Image on Screen | Work with a picture | The picture to look for isn't in the macro. Capture it again The picture's fuzz of 1 became a match threshold of 98% The result is in the foundImage variable (left, top, width, height, score) |
| OCR Image / Screen | Work with a picture, Clipboard | |
| Flip Image Horizontally | Work with a picture | |
| Flip Image Vertically | Work with a picture | |
| Rotate Image 180 | Work with a picture | |
| Rotate Image Clockwise | Work with a picture | |
| Rotate Image Counter-clockwise | Work with a picture | |
| Rotate Image by Angle | Work with a picture | |
| Resize Image | Work with a picture | |
| Resize Image to Fit | Work with a picture | |
| Resize Canvas | Work with a picture | |
| Add or Remove Margins | Work with a picture | Add Margins: Left and Top are the left and top margins, Width and Height the right and bottom ones |
| Crop Image | Work with a picture | |
| Set Image DPI | Work with a picture | |
| Composite onto Image | Work with a picture | |
| Draw Line onto Image | Work with a picture | |
| Draw Oval onto Image | Work with a picture | |
| Draw Rectangle onto Image | Work with a picture | |
| Draw RoundedRectangle onto Image | Work with a picture | |
| Draw Text onto Image | Work with a picture | Text is drawn in the fill colour |
| Trim Image | Work with a picture | |
| Create New Image | Work with a picture | |
| Get Image Size | Work with a picture | |
| Display Image | Work with a picture | Display Image opens the picture in your default image viewer (Preview) instead of Keyboard Maestro's floating window |
Interface control #
| Keyboard Maestro action | Switchboard | Notes |
|---|---|---|
| Select a Menu Item | Choose menu item | No menu item was chosen in Keyboard Maestro. Fill in the menu path to select |
| Show a Menu Item | Choose menu item | No menu item was chosen in Keyboard Maestro. Fill in the menu path to select |
| Select Menu by Name | Choose menu item by name | |
| Press a Button | Press button by name | |
| Press button action AXShowMenu | Press button by name | |
| Press button action AXDecrement | Press button by name | |
| Press button action AXIncrement | Press button by name | |
| Press button action AXCancel | Press button by name | |
| Get Touch Bar Selection | Set variable | No Mac has a Touch Bar any more, so there is never a Touch Bar selection: the variable is set to empty |
Keyboard & Mouse #
| Keyboard Maestro action | Switchboard | Notes |
|---|---|---|
| Type a Keystroke | Press keys | |
| Type Modifiers | Press or hold modifiers | |
| Simulate Hardware Key | Press keys | Macs without an optical drive have no Eject key to press; this only matters for external drives and keyboards |
| Simulate Scroll Wheel | Scroll | Scroll amounts are read as pixels |
| Move Mouse | Click | Recorded by position (1, 1 from the screen); re-record as an element |
| Click Mouse | Click | Recorded by position (1, 1 from the screen); re-record as an element |
| Move and Click Mouse | Click | Recorded by position (1, 1 from the screen); re-record as an element |
| Mouse position relative to absolute | Click | Recorded by position (1, 1 from the screen); re-record as an element |
| Mouse position relative to screen | Click | Recorded by position (1, 1 from the screen); re-record as an element |
| Mouse position relative to window | Click | Recorded by position (1, 1 from the window); re-record as an element |
| Mouse position relative to mouse | Click | Recorded by position (1, 1 from the mouse); re-record as an element |
| Mouse position relative to image | Click | The picture to look for isn't in the macro. Capture it again |
| Mouse drag: None | Click | No horizontal position was set in Keyboard Maestro. Fill it in No vertical position was set in Keyboard Maestro. Fill it in The click has no position. Set where to click |
| Mouse drag: Hold | Click, Hold or release mouse button | No horizontal position was set in Keyboard Maestro. Fill it in No vertical position was set in Keyboard Maestro. Fill it in The click has no position. Set where to click The mouse button stays down after this action until a "mouseButton up" step (Switchboard lets go after a minute at the latest) |
| Mouse drag: Relative | Click, Drag mouse | No horizontal position was set in Keyboard Maestro. Fill it in No vertical position was set in Keyboard Maestro. Fill it in The click has no position. Set where to click |
Macros & groups #
| Keyboard Maestro action | Switchboard | Notes |
|---|---|---|
| Execute a Macro | Run macro | Runs a macro that isn't in this import (00000000-0000-0000-0000-000000000000); it fails until a macro with that id exists |
| Execute a Subroutine | Run macro | Calls a macro that isn't in this import (00000000-0000-0000-0000-000000000000); it fails until a macro with that id exists |
| Trigger Macro by Name | Choose a macro to run | Trigger Macro by Name became a list of macros to choose from; the chosen one runs |
| Trigger Macros by Hot Key | Press keys | Presses the hot key so Switchboard's own hotkey triggers fire |
| Mark Macro | Set variable | Macro marks aren't shown in Switchboard: the mark is kept in the shared variable shared.marked.00000000-0000-0000-0000-000000000000 |
| Set Macro or Group: Enable | Turn on macro | Turns on or off a macro that isn't in this import (00000000-0000-0000-0000-000000000000); it fails until a macro with that id exists |
| Set Macro or Group: Disable | Turn off macro | Turns on or off a macro that isn't in this import (00000000-0000-0000-0000-000000000000); it fails until a macro with that id exists |
| Set Macro or Group: Toggle | Turn on macro | Turns on or off a macro that isn't in this import (00000000-0000-0000-0000-000000000000); it fails until a macro with that id exists |
| Activate Macro Group for One Action | Turn on macro | "Activate for one action" turns the group on and leaves it on: add a Deactivate after the action that needs it |
| Activate Macro Group | Turn on macro | |
| Deactivate Macro Group | Turn off macro | |
| Activate or Deactivate Macro Group | Turn on macro | |
| Show Macro Group for One Action | Turn on macro | "Activate for one action" turns the group on and leaves it on: add a Deactivate after the action that needs it |
| Show Macro Group | Nothing to run (see the note) or built from the action's settings | Switchboard shows a group's macros in its own palette (opened by hotkey), so there is no palette to show: the step does nothing |
| Hide Macro Group | Nothing to run (see the note) or built from the action's settings | Switchboard shows a group's macros in its own palette (opened by hotkey), so there is no palette to hide: the step does nothing |
| Show or Hide Macro Group | Nothing to run (see the note) or built from the action's settings | Switchboard shows a group's macros in its own palette (opened by hotkey), so there is no palette to show: the step does nothing |
| Show Palette of Macros | Choose a macro to run | A palette of macros became a list to choose from; the chosen macro runs |
| Record Quick Macro | Show notification | Switchboard can't record a quick macro: the step shows a notification when it runs |
| Conceal Macro Palettes | Nothing to run (see the note) or built from the action's settings | Switchboard has one macro palette (opened from its hotkey) and nothing to conceal or reveal: the step does nothing |
| Reveal Macro Palettes | Nothing to run (see the note) or built from the action's settings | Switchboard has one macro palette (opened from its hotkey) and nothing to conceal or reveal: the step does nothing |
| Remote Trigger | Run shell script | Keyboard Maestro's Remote Trigger goes through Stairways' cloud; this calls the webhook trigger named "x" on this Mac instead |
Mail & messaging #
| Keyboard Maestro action | Switchboard | Notes |
|---|---|---|
| Send Mail Message | Send mail | Mail opens a draft window for you to finish; nothing is sent |
| Set Mail Status | Set mail status | |
| Send SMS | Send message | Text messages go out through Messages, which needs Text Message Forwarding turned on from your iPhone |
| Send iMessage | Send message | |
| Send Pushover Notification | Send HTTP request | |
| Growl Notification (deprecated) | Show notification | Growl was discontinued; the notification shows through macOS notifications |
| Create Calendar Event | Add calendar event | Dates are read as yyyy-MM-dd HH:mm (or any date macOS can parse); Switchboard Engine needs Calendar automation permission |
Music, audio & media #
| Keyboard Maestro action | Switchboard | Notes |
|---|---|---|
| Send MIDI NoteOn | Send MIDI | |
| Send MIDI NoteOff | Send MIDI | |
| Send MIDI ControlChange | Send MIDI | |
| Send MIDI Packet | Send MIDI | |
| Play or Pause Current Track | Music and player control | iTunes is the Music app now: the command went to Music |
| Pause Current Track | Music and player control | iTunes is the Music app now: the command went to Music |
| Stop Current Track | Music and player control | iTunes is the Music app now: the command went to Music |
| Next Track | Music and player control | iTunes is the Music app now: the command went to Music |
| Previous Track | Music and player control | iTunes is the Music app now: the command went to Music |
| Rewind Current Track | Music and player control | iTunes is the Music app now: the command went to Music Rewind skips back 10 seconds (Music has no hold-to-rewind from a script) |
| Fast-Forward Current Track | Music and player control | iTunes is the Music app now: the command went to Music Fast Forward skips ahead 10 seconds (Music has no hold-to-fast-forward from a script) |
| Play a Random Track | Music and player control | iTunes is the Music app now: the command went to Music |
| Play a Random Track from Playlist | Music and player control | iTunes is the Music app now: the command went to Music |
| Play a Specific Track | Music and player control | iTunes is the Music app now: the command went to Music |
| Play a Specific Playlist | Music and player control | iTunes is the Music app now: the command went to Music |
| Increase iTunes Volume | Music and player control | iTunes is the Music app now: the command went to Music |
| Decrease iTunes Volume | Music and player control | iTunes is the Music app now: the command went to Music |
| Set iTunes Volume | Music and player control | iTunes is the Music app now: the command went to Music |
| Increase Rating by Half a Star | Music and player control | iTunes is the Music app now: the command went to Music |
| Decrease Rating by Half a Star | Music and player control | iTunes is the Music app now: the command went to Music |
| Set Rating | Music and player control | iTunes is the Music app now: the command went to Music |
| Play Current Movie | Music and player control | |
| Pause Current Movie | Music and player control | |
| Play or Pause Current Movie | Music and player control | |
| Step Forward Current Movie | Music and player control | |
| Step Backward Current Movie | Music and player control | |
| Increase Current Movie Volume | Music and player control | |
| Decrease Current Movie Volume | Music and player control | |
| Set Current Movie Volume | Music and player control | |
| Set System Output Volume | Run AppleScript | |
| Toggle System Sound Mute | System volume | |
| Increase System Sound Volume | System volume | |
| Decrease System Sound Volume | System volume | |
| Small Increase System Sound Volume | System volume | |
| Small Decrease System Sound Volume | System volume | |
| Set Audio Input Device | Switch audio device | |
| Set Audio Output Device | Switch audio device | |
| Set Audio SoundEffects Device | Switch audio device | |
| Mute Audio Device | Switch audio device | |
| Unmute Audio Device | Switch audio device | |
| Toggle Audio Device | Switch audio device |
Other #
| Keyboard Maestro action | Switchboard | Notes |
|---|---|---|
| Send Message to Editor (internal) | Nothing to run (see the note) or built from the action's settings | A message to Keyboard Maestro's editor dropped |
| Don't Rotate Status Menu (internal) | Nothing to run (see the note) or built from the action's settings | Keyboard Maestro's status menu rotation setting dropped |
| Typed String Duplicate Palette (internal) | Nothing to run (see the note) or built from the action's settings | Keyboard Maestro's typed-string palette setting dropped |
Prompts & UI #
| Keyboard Maestro action | Switchboard | Notes |
|---|---|---|
| Display Text in Window | Show notification | Display text in a window became a notification |
| Display Text Briefly | Show message | |
| Display Text Large | Show message | |
| Custom HTML Prompt | Show an HTML prompt | This macro uses web content: the Custom HTML Prompt runs as a web page with no network, and only Keyboard Maestro's GetVariable, SetVariable and Submit calls |
| Prompt for User Input | Ask for input | |
| Prompt With List | Ask for input | |
| Prompt for File | Choose a file or folder | |
| Prompt for Files | Choose a file or folder | Several chosen paths are stored one per line |
| Prompt for Folder | Choose a file or folder | |
| Prompt for Folders | Choose a file or folder | Several chosen paths are stored one per line |
| Prompt for NewFile | Choose a file or folder | |
| Prompt for NewFolder | Choose a file or folder | |
| Prompt for NewFolderCreate | Choose a file or folder | |
| Prompt for screen Rect | Pick a screen point or rectangle | Picking a rectangle on screen became a question; enter left,top,right,bottom in screen points |
| Prompt for screen RectPreserveNegatives | Pick a screen point or rectangle | Picking a rectangle on screen became a question; enter left,top,right,bottom in screen points |
| Prompt for screen Point | Pick a screen point or rectangle | Picking a point on screen became a question with the pointer's position filled in (x,y) |
| Prompt for Snippet | Ask for input, Clipboard, Press keys, Wait | The snippet is shown in a text prompt for editing, then pasted |
| Alert | Ask for input, Set variable | Alert became a prompt with an OK button |
| Notification | Show notification | |
| Display Progress | Show message | A progress window became a brief HUD |
| Speak Text | Say aloud | |
| Play Sound | Run shell script | Play Sound runs afplay in the background |
| Stream Deck Show OK | Show message | Stream Deck needs Elgato's software; a brief message on screen replaces the key's check mark |
| Stream Deck Show Alert | Show message | Stream Deck needs Elgato's software; a brief message on screen replaces the key's alert |
| Stream Deck Set Title | Nothing to run (see the note) or built from the action's settings | Stream Deck keys are not driven from Switchboard: the key title is not set |
| Stream Deck Set Image | Nothing to run (see the note) or built from the action's settings | Stream Deck keys are not driven from Switchboard: the key image is not set |
Scripts #
| Keyboard Maestro action | Switchboard | Notes |
|---|---|---|
| Execute a Shell Script | Run shell script | Runs the script file through a shell step |
| Execute an AppleScript | Run shell script | Runs the script file through a shell step |
| Execute a JavaScript for Automation | Run shell script | Runs the script file through a shell step |
| Execute a Swift Script | Run shell script | Runs the script file through a shell step |
| Execute an Automator Workflow | Run shell script | Runs the workflow with the automator command |
| Execute a JavaScript in Custom Prompt | Nothing to run (see the note) or built from the action's settings | A script that changes a custom HTML prompt window has nothing to run in: the prompt has ended by the time it runs, so the script is not run |
| Execute Shortcut | Run Shortcut | |
| Edit Shortcut | Open URL | |
| Script result: None | Run shell script | |
| Script result: Window | Run shell script, Set variable, Show notification | Script output shown in a window became a notification |
| Script result: Briefly | Run shell script, Set variable, Show message | |
| Script result: Large | Run shell script, Set variable, Show message | Large text became a message that stays up for five seconds |
| Script result: Typing | Run shell script, Set variable, Type text | |
| Script result: Pasting | Run shell script, Set variable, Clipboard, Press keys, Wait | |
| Script result: Variable | Run shell script, Set variable | |
| Script result: AppendVar | Run shell script, Set variable | |
| Script result: Clipboard | Run shell script, Set variable, Clipboard | |
| Script result: File | Run shell script, Set variable | |
| Script result: Asynchronously | Run shell script | Keyboard Maestro runs the script without waiting; Switchboard waits for it |
| Plug In Action | Run shell script | Runs the plug-in "x" from Keyboard Maestro's Actions folder, so it must still be installed there |
| Execute Script (generic editor view) | Run shell script |
System #
| Keyboard Maestro action | Switchboard | Notes |
|---|---|---|
| Open a System Preference Pane | Open URL | System Settings has been reorganized; panes that no longer exist open System Settings at its last page |
| Open 1Password Bookmark | Open URL | Opens 1Password's search for the bookmark's name (1Password 8 has no bookmarks) |
| System Beep | System beep | |
| Get Location | Get current location | Get Location sets shared.x to "latitude,longitude", and shared.xLatitude, shared.xLongitude and shared.xAccuracy; Switchboard Engine needs Location Services permission |
| Restart Computer | Sleep, restart or log out | Restart the Mac runs right away, with no confirmation |
| Shut Down Computer | Sleep, restart or log out | Shut the Mac down runs right away, with no confirmation |
| Log Out | Sleep, restart or log out | Log out runs right away, with no confirmation |
| Login Window | Sleep, restart or log out | macOS no longer has a way to go straight to the login window; this locks the screen instead |
| Put Computer to Sleep | Sleep, restart or log out | Put the Mac to sleep runs right away, with no confirmation |
| Open or Close the CD Tray | Sleep, restart or log out | Macs have no built-in disc drive; this ejects the tray of an external drive (drutil), and fails when there is none |
| Start Screen Saver | Sleep, restart or log out | |
| Stop Screen Saver | Sleep, restart or log out | |
| Sleep Screen | Sleep, restart or log out | |
| Wake Screen | Sleep, restart or log out | |
| Increase Screen Brightness | Change screen brightness | |
| Decrease Screen Brightness | Change screen brightness | |
| Small Increase Screen Brightness | Change screen brightness | |
| Small Decrease Screen Brightness | Change screen brightness | |
| Show Global Macro Palette | Nothing to run (see the note) or built from the action's settings | "Show Global Macro Palette" is part of Keyboard Maestro itself and does nothing in Switchboard; run macros from the Switchboard menu bar menu or its palette hot key |
| Hide Global Macro Palette | Nothing to run (see the note) or built from the action's settings | "Hide Global Macro Palette" is part of Keyboard Maestro itself and does nothing in Switchboard; run macros from the Switchboard menu bar menu or its palette hot key |
| Toggle Global Macro Palette | Nothing to run (see the note) or built from the action's settings | "Toggle Global Macro Palette" is part of Keyboard Maestro itself and does nothing in Switchboard; run macros from the Switchboard menu bar menu or its palette hot key |
| Show Status Menu | Nothing to run (see the note) or built from the action's settings | "Show Status Menu" is part of Keyboard Maestro itself and does nothing in Switchboard; run macros from the Switchboard menu bar menu or its palette hot key |
| Clear Typed String Buffer | Nothing to run (see the note) or built from the action's settings | "Clear Typed String Buffer" is part of Keyboard Maestro itself and does nothing in Switchboard; run macros from the Switchboard menu bar menu or its palette hot key |
| Fast User Switch | Sleep, restart or log out | macOS removed the command that switches users directly; this locks the screen, where the other user can be picked |
| Set Keyboard Layout | Switch keyboard layout | |
| Set Network Location | Switch network location | |
| Set Screen Resolution | Set screen resolution | |
| Set Desktop Image | Set desktop picture | |
| Set System to Dark Mode | Light or dark mode | |
| Set Keyboard Maestro to Dark Mode | Nothing to run (see the note) or built from the action's settings | "Set Keyboard Maestro to Dark Mode" changes Keyboard Maestro's own windows, so it was dropped |
Text #
| Keyboard Maestro action | Switchboard | Notes |
|---|---|---|
| Insert Text by Typing | Type text | |
| Insert Text by Pasting | Clipboard, Press keys, Wait | Insert by pasting: the clipboard is saved first and put back afterwards |
| Insert Styled Text by Pasting | Clipboard, Press keys, Wait | Insert by pasting with styles pastes the plain text: Switchboard doesn't keep the styling of the text |
| Substring of Variable or Clipboard | Transform text, Set variable | |
| Filter: RemoveStyles | Transform text, Set variable | Styled text: Switchboard converts between plain text and RTF text; the clipboard keeps only plain text afterwards |
| Filter: MacLineEndings | Transform text, Set variable | |
| Filter: UnixLineEndings | Transform text, Set variable | |
| Filter: WindowsLineEndings | Transform text, Set variable | |
| Filter: TrimWhitespace | Transform text, Set variable | |
| Filter: Wrap | Transform text, Set variable | |
| Filter: Unwrap | Transform text, Set variable | |
| Filter: Lowercase | Transform text, Set variable | |
| Filter: LowercaseFirst | Transform text, Set variable | |
| Filter: Uppercase | Transform text, Set variable | |
| Filter: UppercaseFirst | Transform text, Set variable | |
| Filter: Capitalize | Transform text, Set variable | Capitalize follows Switchboard's own capitalisation rules, which can differ from Keyboard Maestro's in edge cases |
| Filter: Sentence | Transform text, Set variable | Sentence follows Switchboard's own capitalisation rules, which can differ from Keyboard Maestro's in edge cases |
| Filter: TitleCase | Transform text, Set variable | TitleCase follows Switchboard's own capitalisation rules, which can differ from Keyboard Maestro's in edge cases |
| Filter: SmartQuotes | Transform text, Set variable | |
| Filter: DumbQuotes | Transform text, Set variable | |
| Filter: FrenchQuotes | Transform text, Set variable | |
| Filter: EncodeHTMLEntities | Transform text, Set variable | |
| Filter: EncodeNonASCIIHTMLEntities | Transform text, Set variable | |
| Filter: EncodeWithNumericEntities | Transform text, Set variable | |
| Filter: DecodeHTMLEntities | Transform text, Set variable | |
| Filter: MakeHTMLList | Transform text, Set variable | |
| Filter: PercentEncodeForURL | Transform text, Set variable | |
| Filter: PercentDecodeURL | Transform text, Set variable | |
| Filter: EncodeForRegularExpression | Transform text, Set variable | |
| Filter: EncodeBase64 | Transform text, Set variable | |
| Filter: DecodeBase64 | Transform text, Set variable | |
| Filter: CalculateMD5 | Transform text, Set variable | |
| Filter: AttributedTextToRTF | Transform text, Set variable | Styled text: Switchboard converts between plain text and RTF text; the clipboard keeps only plain text afterwards |
| Filter: RTFToAttributedText | Transform text, Set variable | Styled text: Switchboard converts between plain text and RTF text; the clipboard keeps only plain text afterwards |
| Filter: QuoteForAppleScript | Transform text, Set variable | |
| Filter: QuoteForJavaScript | Transform text, Set variable | |
| Filter: QuoteForShellScript | Transform text, Set variable | |
| Filter: QuoteForSwift | Transform text, Set variable | |
| Filter: QuoteForJSON | Transform text, Set variable | |
| Filter: QuoteForProcessTokens | Transform text, Set variable | |
| Filter: LastPathComponent | Transform text, Set variable | |
| Filter: DeleteLastPathComponent | Transform text, Set variable | |
| Filter: PathExtension | Transform text, Set variable | |
| Filter: DeletePathExtension | Transform text, Set variable | |
| Filter: BaseName | Transform text, Set variable | |
| Filter: DisplayName | Transform text, Set variable | |
| Filter: ExpandTildeInPath | Transform text, Set variable | |
| Filter: AbbreviateWithTildeInPath | Transform text, Set variable | |
| Filter: ResolveSymlinks | Transform text, Set variable | |
| Filter: StandardizePath | Transform text, Set variable | |
| Filter: URLScheme | Transform text, Set variable | |
| Filter: URLHost | Transform text, Set variable | |
| Filter: URLPort | Transform text, Set variable | |
| Filter: URLUser | Transform text, Set variable | |
| Filter: URLPassword | Transform text, Set variable | |
| Filter: URLPath | Transform text, Set variable | |
| Filter: URLFragment | Transform text, Set variable | |
| Filter: URLQuery | Transform text, Set variable | |
| Filter: Reverse | Transform text, Set variable | |
| Filter: Shuffle | Transform text, Set variable | Shuffle reorders the lines of the text |
| Filter: ZapControlCharacters | Transform text, Set variable | |
| Filter: BulletControlCharacters | Transform text, Set variable | |
| Filter: Calculate | Transform text, Set variable | |
| Filter: ProcessTokens | Transform text, Set variable | |
| Filter: ValueOfNamedVariable | Transform text, Set variable | |
| Filter: ValueOfNamedClipboard | Transform text, Set variable | |
| Filter: CharacterCount | Transform text, Set variable | |
| Filter: WordCount | Transform text, Set variable | |
| Filter: LineCount | Transform text, Set variable | |
| Filter: JSONCompact | Transform text, Set variable | |
| Filter: JSONPretty | Transform text, Set variable | |
| FilterVariable (legacy form of Filter) | Transform text, Set variable | Filter "" is unknown to Switchboard: the text is passed through unchanged |
| FilterClipboard (legacy form of Filter) | Transform text, Clipboard | Filter "" is unknown to Switchboard: the text is passed through unchanged |
| Search and Replace: text, case sensitive | Set variable | |
| Search and Replace: text, ignore case | Set variable | |
| Search and Replace: regex, case sensitive | Set variable | |
| Search and Replace: regex, ignore case | Set variable | |
| Search using CaseSensitiveString | Nothing to run (see the note) or built from the action's settings | This search captures nothing, so it has no effect in Switchboard; use a Found-count condition on the text instead |
| Search using IgnoreCaseString | Nothing to run (see the note) or built from the action's settings | This search captures nothing, so it has no effect in Switchboard; use a Found-count condition on the text instead |
| Search using CaseSensitiveRegEx | Nothing to run (see the note) or built from the action's settings | This search captures nothing, so it has no effect in Switchboard; use a Found-count condition on the text instead |
| Search using IgnoreCaseRegEx | Nothing to run (see the note) or built from the action's settings | This search captures nothing, so it has no effect in Switchboard; use a Found-count condition on the text instead |
| SearchReplaceVariable (legacy form) | Set variable | |
| SearchReplaceClipboard (legacy form) | Clipboard | |
| SearchVariable (legacy form) | Nothing to run (see the note) or built from the action's settings | This search captures nothing, so it has no effect in Switchboard; use a Found-count condition on the text instead |
| SearchClipboard (legacy form) | Nothing to run (see the note) or built from the action's settings | This search captures nothing, so it has no effect in Switchboard; use a Found-count condition on the text instead |
| Apply a BBEdit Text Factory | Open file or folder | BBEdit text factories run only inside BBEdit: this opens the factory file in BBEdit instead of applying it to the text |
| Apply Style to Clipboard | Nothing to run (see the note) or built from the action's settings | Apply Style (styling the clipboard) has no effect in Switchboard: the clipboard keeps its content unstyled Apply Style changes the styling of the clipboard's rich text; Switchboard keeps plain text, so this step was left out |
Variables & dictionaries #
| Keyboard Maestro action | Switchboard | Notes |
|---|---|---|
| Use Variable | Activate app | |
| Set Variable to Text | Set variable | |
| Append Text to Variable | Set variable | |
| Prepend Text to Variable | Set variable | |
| Set Variable to Calculation | Set variable | |
| Set Variables to JSON | Variables from JSON | |
| Set JSON Value | Set variable | The JSON target "x" names no path inside the variable, so the whole variable is set |
| Set Dictionary to JSON | Set variable | Dictionary "x" became a variable holding the parsed JSON; read it with {{ shared.x.key }} |
| Set Dictionary Value | Set variable | |
| Set Variable to Keychain Password | Keychain password | |
| Set Keychain Password to Text | Keychain password |
Web, HTML & browser #
| Keyboard Maestro action | Switchboard | Notes |
|---|---|---|
| Search the Web | Ask for input, Open URL | |
| Open a URL | Open URL | |
| Get a URL | Send HTTP request, Set variable, Run shell script | The request has no cookies or saved logins, and times out with the step (10 seconds unless you raise it) |
| Browser: New Tab | Control browser | |
| Browser: New Window | Control browser | |
| Browser: Next Tab | Control browser | |
| Browser: Previous Tab | Control browser | |
| Browser: Select Tab | Control browser | |
| Browser: Wait for Page Load | Control browser | Runs in the browser's front tab; Safari and Chrome need "Allow JavaScript from Apple Events" turned on |
| Browser: Set URL | Control browser | |
| Browser: Set Title | Control browser | Runs in the browser's front tab; Safari and Chrome need "Allow JavaScript from Apple Events" turned on |
| Browser: Click Link | Control browser | Runs in the browser's front tab; Safari and Chrome need "Allow JavaScript from Apple Events" turned on |
| Browser: Submit Form | Control browser | Runs in the browser's front tab; Safari and Chrome need "Allow JavaScript from Apple Events" turned on |
| Browser: Reset Form | Control browser | Runs in the browser's front tab; Safari and Chrome need "Allow JavaScript from Apple Events" turned on |
| Browser: Focus Field | Control browser | Runs in the browser's front tab; Safari and Chrome need "Allow JavaScript from Apple Events" turned on |
| Browser: Select Field | Control browser | Runs in the browser's front tab; Safari and Chrome need "Allow JavaScript from Apple Events" turned on |
| Browser: Set Field to Text | Control browser | Runs in the browser's front tab; Safari and Chrome need "Allow JavaScript from Apple Events" turned on |
| Browser: Set Variable to Field | Control browser | Runs in the browser's front tab; Safari and Chrome need "Allow JavaScript from Apple Events" turned on |
| Browser: Set Checkbox | Control browser | Runs in the browser's front tab; Safari and Chrome need "Allow JavaScript from Apple Events" turned on |
| Browser: Set Radio Button | Control browser | Runs in the browser's front tab; Safari and Chrome need "Allow JavaScript from Apple Events" turned on |
| Execute a JavaScript in Browser | Run shell script, Run JavaScript in browser | The script is read from its file each time the macro runs Runs in the browser's front tab; Safari and Chrome need "Allow JavaScript from Apple Events" turned on Variables in the script are pasted in as text, as in Keyboard Maestro |
Windows #
| Keyboard Maestro action | Switchboard | Notes |
|---|---|---|
| Move Window to Position | Move or resize window | |
| Move Window by Pixels | Move or resize window | |
| Resize Window to Pixels | Move or resize window | |
| Resize Window by Pixels | Move or resize window | |
| Scale Window by Percent | Move or resize window | |
| Move and Resize Window | Move or resize window | |
| Center Window | Move or resize window | |
| Center Window at Position | Move or resize window | |
| Close Window | Close window | |
| Zoom Window | Move or resize window | |
| Minimize Window | Move or resize window | |
| Minimize Window (really) | Move or resize window | "Minimize Window (really)" minimizes to the Dock, the same as Minimize here |
| Unminimize Window | Move or resize window | |
| Bring Window to Front | Move or resize window | |
| Window target: FrontWindow | Move or resize window | Window action "" is not one Switchboard knows; the window is brought to the front instead |
| Window target: NamedWindow | Move or resize window | Window action "" is not one Switchboard knows; the window is brought to the front instead |
| Window target: WindowNameContaining | Move or resize window | Window action "" is not one Switchboard knows; the window is brought to the front instead |
| Window target: WindowNameMatching | Move or resize window | Window action "" is not one Switchboard knows; the window is brought to the front instead |
| Window target: WindowIndex | Move or resize window | Window action "" is not one Switchboard knows; the window is brought to the front instead |
| Window target: KMWindowID | Move or resize window | A Keyboard Maestro window id means nothing to Switchboard: the window is found by the id Switchboard's own window step reports Window action "" is not one Switchboard knows; the window is brought to the front instead |
| Window target: KMLastWindow | Move or resize window | "Last window" is the window the previous window step in this macro or an earlier run acted on Window action "" is not one Switchboard knows; the window is brought to the front instead |
| Set Next Engine Window Position | Nothing to run (see the note) or built from the action's settings | Set Next Engine Window places Keyboard Maestro's own prompt and HUD windows; Switchboard places its own, so the action is dropped |
| Set Next Engine Window Size | Nothing to run (see the note) or built from the action's settings | Set Next Engine Window places Keyboard Maestro's own prompt and HUD windows; Switchboard places its own, so the action is dropped |
| Set Next Engine Window Position and Size | Nothing to run (see the note) or built from the action's settings | Set Next Engine Window places Keyboard Maestro's own prompt and HUD windows; Switchboard places its own, so the action is dropped |
| Center Next Engine Window | Nothing to run (see the note) or built from the action's settings | Set Next Engine Window places Keyboard Maestro's own prompt and HUD windows; Switchboard places its own, so the action is dropped |
| Center Next Engine Window at Position | Nothing to run (see the note) or built from the action's settings | Set Next Engine Window places Keyboard Maestro's own prompt and HUD windows; Switchboard places its own, so the action is dropped |
| Bring Application Windows to Front | App commands | |
| Activate Window Switcher | App or window switcher | The Window Switcher's colours and mouse-rollover options aren't carried over: Switchboard shows a list to pick a window from |
| Highlight Location | Highlight area |