</code></pre><p><code>MIDI_ENABLE</code></p><p>This enables MIDI sending and receiving with your keyboard. To enter MIDI send mode, you can use the keycode <code>MI_ON</code>, and <code>MI_OFF</code> to turn it off. This is a largely untested feature, but more information can be found in the <code>quantum/quantum.c</code> file.</p><p><code>UNICODE_ENABLE</code></p><p>This allows you to send Unicode characters using <code>UC(<code point>)</code> in your keymap. Code points up to <code>0x7FFF</code> are supported. This covers characters for most modern languages, as well as symbols, but it doesn't cover emoji.</p><p><code>UNICODEMAP_ENABLE</code></p><p>This allows you to send Unicode characters using <code>UM(<map index>)</code> in your keymap. You will need to maintain a mapping table in your keymap file. All possible code points (up to <code>0x10FFFF</code>) are supported.</p><p><code>UCIS_ENABLE</code></p><p>This allows you to send Unicode characters by inputting a mnemonic corresponding to the character you want to send. You will need to maintain a mapping table in your keymap file. All possible code points (up to <code>0x10FFFF</code>) are supported.</p><p>For further details, as well as limitations, see the <ahref="./features/unicode">Unicode page</a>.</p><p><code>AUDIO_ENABLE</code></p><p>This allows you output audio on the C6 pin (needs abstracting). See the <ahref="./features/audio">audio page</a> for more information.</p><p><code>VARIABLE_TRACE</code></p><p>Use this to debug changes to variable values, see the <ahref="./unit_testing#tracing-variables">tracing variables</a> section of the Unit Testing page for more information.</p><p><code>KEY_LOCK_ENABLE</code></p><p>This enables <ahref="./features/key_lock">key lock</a>.</p><p><code>SPLIT_KEYBOARD</code></p><p>This enables split keyboard support (dual MCU like the let's split and bakingpy's boards) and includes all necessary files located at quantum/split_common</p><p><code>SPLIT_TRANSPORT</code></p><p>As there is no standard split communication driver for ARM-based split keyboards yet, <code>SPLIT_TRANSPORT = custom</code> must be used for these. It will prevent the standard split keyboard communication code (which is AVR-specific) from being included, allowing a custom implementation to be used.</p><p><code>CUSTOM_MATRIX</code></p><p>Lets you replace the default matrix scanning routine with your own code. For further details, see the <ahref="./custom_matrix">Custom Matrix page</a>.</p><p><code>DEBOUNCE_TYPE</code></p><p>Lets you replace the default key debouncing routine with an alternative one. If <code>custom</code> you will need to provide your own implementation.</p><p><code>DEFERRED_EXEC_ENABLE</code></p><p>Enables deferred executor support -- timed delays before callbacks are invoked. See <ahref="./custom_quantum_functions#deferred-execution">deferred execution</a> for more information.</p><h2id="customizing-makefile-options-on-a-per-keymap-basis"tabindex="-1">Customizing Makefile Options on a Per-Keymap Basis <aclass="header-anchor"href="#customizing-makefile-options-on-a-per-keymap-basis"aria-label="Permalink to "Customizing Makefile Options on a Per-Keymap Basis""></a></h2><p>If your keymap directory has a file called <code>rules.mk</code> any options you set in that file will take precedence over other <code>rules.mk</code> options for your particular keyboard.</p><p>So let's say your keyboard's <code>rules.mk</code> has <code>BACKLIGHT_ENABLE = yes</code>. You want your particular keyboard to not have the backlight, so you make a file called <code>rules.mk</code> and specify <code>BACKLIGHT_ENABLE = no</code>.</p></div></div></main><footerclass="VPDocFooter"data-v-39a288b8data-v-09de1c0f><!--[--><!--]--><!----><navclass="prev-next"data-v-09de1c0f><divclass="pager"data-v-09de1c0f><aclass="VPLink link pager-link prev"href="/data_driven_config"data-v-09de1c0f><!--[--><spanclass="desc"data-v-09de1c0f>Previous page</span><spanclass="title"data-v-09de1c0f>Data Driven Configuration</spa