Chances are, one of the first things that comes to mind when you hear "customizable keyboard" is macros. When we talk about macros, we're talking about sequences of key presses, not shortcuts of simultaneous key presses. We support both in Oryx, but they are not the same.

Yet, even though our open-source firmware, QMK, supports intricate macros, macros in Oryx are limited to five characters. Why is that?

The main answer is kind of boring: legality. It is technically possible to store passwords and other sensitive information as macros. We wouldn't recommend this in any case, but people do it. Oryx is a public web app not meant to store secure information, and layouts are public by default. If you put anything secret into your layout, people can see it.

Unrestricted macros just aren't a risk we think makes sense, especially since there are already apps that do complex macros better! Let's take a look at how they work with Oryx.

TextExpander

TextExpander is a Chrome extension (and a local app, but we'll be talking about the extension) that allows you to automatically replace short strings of characters with longer phrases. I'm covering TextExpander here because it's simple to use and works with Windows, macOS, Linux, and ChromeOS, so it's easy for anyone to try it out. The disadvantage of TextExpander as an extension is it will only work in your browser, of course.

Creating a useful macro

If you do any sort of work on a computer, you probably have a use case for at least a couple of macros. For example, let's say I send a weekly email report, and the structure of the report is always the same.

Example email report
Reporting to Lorem Ipsum Inc.

I could copy last week's email and delete the information, but I run the risk of leaving something in that should have been removed. A macro helps avoid this, and it is even faster than copying and deleting.

First, in TextExpander, I need to create a new snippet and put my template in.

Creating the template in TextExpander
TextExpander also lets you add some basic formatting to snippets to save even more time.

Then, I need a sequence of characters that TextExpander will look for to slot in my template. I need to be careful not to choose a sequence of characters I would type normally. Otherwise, I may accidentally insert my template into something I don't mean to. If I want to trigger this macro from Oryx, I also need to choose five characters or fewer.

Using "templ" to trigger the snippet
Using too common of a trigger phrase can get annoying quickly.

For this example, "templ" is an option, but not a great choice because I could easily type that sequence of characters while doing other things.

Using "!!twr" to trigger the snippet
You can also type in the trigger phrase manually if you want.

A better option is something like "!!twr". This is both a very uncommon sequence of characters to hit normally, and it tells me a little bit about the macro: "t" for template and "wr" for weekly report. So, that's what I'll use, and now on to Oryx to make a key that triggers this text expansion.

Creating an Oryx macro

This is the easy part. Just pick a key in Oryx, choose the macro tab, and assign your characters.

Creating the Oryx macro
Using two symbols here helps make sure you never type it accidentially.

The only trick here is the "!" character. If you search for "!" when creating a macro, it won't come up because its a shifted character. These aren't available on their own for somewhat complicated technical reasons, but they can still be added to macros. Just assign the base character, "1" in this case (this may change with your locale), and then add the Shift modifier to it.

Finished Oryx macro
You can name the macro key to remind yourself what it's for.

That's all there is to it! I now have a key to quickly insert my report template, whether I want to put it in an email or draft it in a text doc first.

TextExpander Alternatives

If you'd prefer a local app that works across your whole computer instead of a browser-based one, there are lots of good options. TextExpander has local apps for Mac and Windows. Also on Windows, AutoHotKey is well-documented and powerful. For macOS users, Alfred and Keyboard Maestro are both great. And finally for Linux, AutoKey is worth diving into. The process for all these apps is similar to TextExpander, and in some cases, you can set up even more versatile text replacements.