Macro for abbreviations and unicode, emoji, extended characters



Here’s a screenshot of the macro I use to type characters not easily available on the keyboard like ★ or ⌘ or ™ etc. I just type a leading comma which is my trigger key then a word/pneumonic that maps to the character like “star” or “cmd” or “tm”. Same concept works great for abbreviations like “,ha” gets my home address, “,pn” gets my phone number “em” for email, etc. I use comma because it doesn’t require shift and in normal usage is almost always followed by a space, so this doesn’t disrupt my normal typing.


Thanks for this idea, so simple yet really effective.


For most characters, you can likely use Insert Text by Typing instead of pasting to avoid messing up your clipboard. Keyboard Maestro will type the character as a unicode character even though there is no actual way to type the character from the keyboard.

A couple caveats:

  • Some applications may not support this, but most normal Mac applications have no problems with it.
  • You cannot have the control or command key pressed (so its generally fine with typed string triggers, but may be problematic with hot key triggered macros unless you pause until the modifiers are released.


I can only get this to work for some characters. So I can get this to work for the ¬ character but not for the → character and others as well. When I try to type the → character a small circle will appear instead. I've tried both putting the actual character in the insert text by typing as well as using %HEX%. Both have the same affect. Also, when I try to type the arrow it has the same effect in any application.conditional.kmmacros (1.5 KB)


Hey Kyle,


Both the literal arrow character and the HEX method work for me on macOS 10.12.6 with Keyboard Maestro 8.2.4.

What macOS and KM are you using?

Have you tried the Insert by Pasting method?



Thanks, the insert text by pasting method did it. I should have thought of that, silly me.


Hey Kyle,

It's troubling that you're having these oddball problems with Insert-by-Typing, but at least you have a work-around.