ControllerMate Tutorials


This is a place for basic ControllerMate tutorials. When you first open ControllerMate, you'll notice 4 different windows:

  • ControllerMate Window
  • Palette Window
  • Inspector Window
  • Output Window

ControllerMate Window


This is the largest window available. At the top you have:

  • Programming - where all your programming will happen
  • Controller Types - a list of installed devices
  • Virtual Controllers - often used for complex programming

A beginner with a single X-keys device probably doesn't need to worry too much about anything but Programming. Click on Programming, if it isn't already selected, and read over the tutorial on the Start Page. This is a good introduction to how programming works.

On the left side of the screen, there is a column with a check box and the Start Page listed. You may click in the check box to enable or disable the page. You probably don't need to enable it, but playing with it will get you used to the difference between what a page looks like when it is enabled (the programming is active) and disabled (the programming is still there, but inactive). Enabling and disabling pages allows you to have unlimited sets of programming.

To create a new page, click the small P icon on the lower left corner of the screen. This will give you a blank programming area. You drag and drop your building blocks (we'll get to those in a minute) in the big programming area. You can rename the pages to reflect what's on them in the Inspector window, too. More about that later.

Palette Window

The Palette window should be the topmost window on the right side of the screen. Here, you choose all your building blocks to drag over to the programming area. There are several different categories available to you:

  • Controllers (this is where your device, and the buttons you need, are)
  • Outputs (most basic functions like keystrokes and text)
  • AppleScript (useful for more advanced programming)
  • Logic (standard logic gates such as and, not, or)
  • Basic Math (addition, subtraction, multiplication, etc.)
  • Calculations (for advanced numerical programming, such as counters)
  • Timers (delays, pulses, etc.)
  • Extras (launching Finder items, and anything else that doesn't fit elsewhere)

Each of the above have their own special purpose, but we'll just touch on a couple of them that are most useful for beginners.


Pallete Window

When you select Controllers, you should see all the X-keys devices you have connected listed. If you only have one, then you will only see one item. If you click on it, it will expand and you will be able to access all the controls on that device (buttons, LED's). At this point, you may physically press the buttons on the device and the corresponding entry on this list will light up. This is useful if you're not sure how the buttons are numbered.

To program a button, grab it with your mouse and drag it over to the programming space you created on your New Page. Drop it wherever you want to on the page, it can be as tidy or as messy as you like.


Output Window

This is where most of the things you'll need live. Under Outputs, you'll find these options:

  • Text (simple text such as your name, or paragraphs)
  • Single Key (a single key and/or modifiers, for example "Shift" or "Cmd+W")
  • Keystrokes (a series of keystrokes, commonly used for macros)
  • Cursor (mouse movement)
  • Mouse Button (mouse clicks)
  • Scroll Wheel (mouse scrolling)
  • Beep (generates a beep, can be used as an indicator of when programming reaches a certain point)


Timers Window

When just starting out, you won't need most of the stuff in this category, but particularly useful is the Auto-Repeater block. This can allow your programming to repeat over and over again as you hold down your X-keys button.

Also useful is the Delay block which will allow you to insert a delay in your programming, useful for if your macros aren't working quite right because your computer can't keep up.

Both of these can be dragged over to the programming area just like the other building blocks.


One of the things you might get the most use of, under Extras, is the Finder Item block. This allows you to open an application or a document with one touch of the X-keys. Like the other blocks, this can be dragged over and dropped underneath the proceeding blocks.


The Inspector window is where you define all the behavior of the building blocks you've added to your buttons. In order to define or edit a building block's behavior, you'll need to highlight it on your programming page. Then, the Inspector window will change to show you the options you have for that particular block.

The Inspector window can look drastically different depending on what kind of building block you have, but we'll cover a few right now to help get you familiar with the concepts.


The Text building block offers you a simple text entry box. Just type the text you want the X-keys button to send here.

Single Key

Single Key

To program a Single Key, you'll need to click on the button that says Keystrokes Palette to bring up an on-screen keyboard. Then, you only need to drag the key you want X-keys to emulate from the keyboard to the Inspector window's box. There are check boxes for modifier keys, if you want to combine your single key with those, which is useful for keyboard shortcut combinations.



With Keystrokes you simply need to drag and drop keys from the Keystrokes Palette (much like with Single Key) but it offers you a window with two columns that you can drag and drop keys to. When turned ON: means that when you press your X-keys button, those keystrokes will send. When turned OFF: mean that when you stop pressing the X-keys button, the keystrokes will send.

Most circumstances allow for When turned ON: to be used alone.

An example of using both would be if you needed one keystroke to execute when you press the key (for example, a multimedia Play button), but another (for example, a multimedia Pause button) to execute when you let go.

Output Window

Output Window

The Output window is simply a place to test your programming, if you have used text or visible keystrokes programmed to the button. Simply place your cursor in the box and hit the button and it will play back your text or visible keystrokes.