diff options
Diffstat (limited to 'docs/feature_macros.md')
-rw-r--r-- | docs/feature_macros.md | 18 |
1 files changed, 8 insertions, 10 deletions
diff --git a/docs/feature_macros.md b/docs/feature_macros.md index 92afe68c2e..f9a4e69d18 100644 --- a/docs/feature_macros.md +++ b/docs/feature_macros.md @@ -6,7 +6,7 @@ Macros allow you to send multiple keystrokes when pressing just one key. QMK has **Security Note**: While it is possible to use macros to send passwords, credit card numbers, and other sensitive information it is a supremely bad idea to do so. Anyone who gets ahold of your keyboard will be able to access that information by opening a text editor. {% endhint %} -## The new way: `SEND_STRING()` & `process_record_user` +## The New Way: `SEND_STRING()` & `process_record_user` Sometimes you just want a key to type out words or phrases. For the most common situations we've provided `SEND_STRING()`, which will type out your string (i.e. a sequence of characters) for you. All ASCII characters that are easily translated to a keycode are supported (e.g. `\n\t`). @@ -105,13 +105,13 @@ They can be used like this: Which would send LCTRL+a (LCTRL down, a, LCTRL up) - notice that they take strings (eg `"k"`), and not the `X_K` keycodes. -### Alternative keymaps +### Alternative Keymaps By default, it assumes a US keymap with a QWERTY layout; if you want to change that (e.g. if your OS uses software Colemak), include this somewhere in your keymap: #include <sendstring_colemak.h> -### Strings in memory +### Strings in Memory If for some reason you're manipulating strings and need to print out something you just generated (instead of being a literal, constant string), you can use `send_string()`, like this: @@ -129,7 +129,7 @@ send_string(my_str); SEND_STRING(".."SS_TAP(X_END)); ``` -## The old way: `MACRO()` & `action_get_macro` +## The Old Way: `MACRO()` & `action_get_macro` {% hint style='info' %} This is inherited from TMK, and hasn't been updated - it's recommend that you use `SEND_STRING` and `process_record_user` instead. @@ -166,7 +166,7 @@ A macro can include the following commands: * W() wait (milliseconds). * END end mark. -### Mapping a Macro to a key +### Mapping a Macro to a Key Use the `M()` function within your `KEYMAP()` to call a macro. For example, here is the keymap for a 2-key keyboard: @@ -192,7 +192,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { When you press the key on the left it will type "Hi!" and when you press the key on the right it will type "Bye!". -### Naming your macros +### Naming Your Macros If you have a bunch of macros you want to refer to from your keymap while keeping the keymap easily readable you can name them using `#define` at the top of your file. @@ -207,7 +207,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { }; ``` -## Advanced macro functions +## Advanced Macro Functions There are some functions you may find useful in macro-writing. Keep in mind that while you can write some fairly advanced code within a macro if your functionality gets too complex you may want to define a custom keycode instead. Macros are meant to be simple. @@ -243,7 +243,7 @@ This will clear all mods currently pressed. This will clear all keys besides the mods currently pressed. -## Advanced Example: Single-key copy/paste +## Advanced Example: Single-Key Copy/Paste This example defines a macro which sends `Ctrl-C` when pressed down, and `Ctrl-V` when released. @@ -262,5 +262,3 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { return MACRO_NONE; }; ``` - - |