Lets get this party started, you’ll need a QMK Powered Keyboard, a working QMK build environment. and your own keymap. Once you have those set up, come on back. If you’re using a newer g Heavy Inudstries/ board these may be enabled already!


Still here? Awesome. Let’s edit your setup. Pop open your keymaps and add this somewhere. If there isn’t a file in your keymap, create it!

VPATH  +=  keyboards/gboards/

This line lets the compiler know where to look for combos. Now make a empty file named combos.def in your keymap directory.

In keymap.c add #include "g/keymap_combo.h" just after #include QMK_KEYBOARD_H. This will include your combos into the compile process.

Next, you need to make sure #define COMBO_VARIABLE_LEN is included in config.h in your keymap directory.

Lastly, you can also define a timeout value for combos in config.h. It’s optional, but helps with errors from typing too fast! #define COMBO_TERM 50. If you don’t set this, value of TAPING_TERM is used.

Your first combo

In combos.def add this statement. SUBS(helloWorld, "QMK is pretty rad eh?", KC_H, KC_J)

Save it, compile your keymap and flash it. If you’ve done it correctly pressing H and J at the same time will output the text. Congrats!

If you’re not enabling the Chording Engine, head on over to

Creating Combos


If you wish to use the onboard chording engine, a little bit more tweaking needs to be done. The easy way is to grab a preconfigured board, but in lieu of that, there’s a default config that is tuned for QWERTY, you can use this as a base it’s over in gboards/g/config_default.h, copy this to your keymap folder as config_engine.h

You’ll need to edit as follows:

VPATH               +=  keyboards/gboards/ 
SRC                 +=  g/engine.c 

Make a file called dicts.def and add this statement: SUBS(GD | GF, undef1, "Oh yeah, it's all coming together.")

If you’ve done everything correctly, your firmware should compile and output that string when DF is pressed! Head on over to the next section for how to import existing dictionaries and whatnot

Creating Chords