aboutsummaryrefslogtreecommitdiff
path: root/docs/config_options.md
diff options
context:
space:
mode:
Diffstat (limited to 'docs/config_options.md')
-rw-r--r--docs/config_options.md47
1 files changed, 44 insertions, 3 deletions
diff --git a/docs/config_options.md b/docs/config_options.md
index d0f0b316e..78c1f70fd 100644
--- a/docs/config_options.md
+++ b/docs/config_options.md
@@ -51,8 +51,10 @@ This is a C header file that is one of the first things included, and will persi
51 * the number of columns in your keyboard's matrix 51 * the number of columns in your keyboard's matrix
52* `#define MATRIX_ROW_PINS { D0, D5, B5, B6 }` 52* `#define MATRIX_ROW_PINS { D0, D5, B5, B6 }`
53 * pins of the rows, from top to bottom 53 * pins of the rows, from top to bottom
54 * may be omitted by the keyboard designer if matrix reads are handled in an alternate manner. See [low-level matrix overrides](custom_quantum_functions.md?id=low-level-matrix-overrides) for more information.
54* `#define MATRIX_COL_PINS { F1, F0, B0, C7, F4, F5, F6, F7, D4, D6, B4, D7 }` 55* `#define MATRIX_COL_PINS { F1, F0, B0, C7, F4, F5, F6, F7, D4, D6, B4, D7 }`
55 * pins of the columns, from left to right 56 * pins of the columns, from left to right
57 * may be omitted by the keyboard designer if matrix reads are handled in an alternate manner. See [low-level matrix overrides](custom_quantum_functions.md?id=low-level-matrix-overrides) for more information.
56* `#define MATRIX_IO_DELAY 30` 58* `#define MATRIX_IO_DELAY 30`
57 * the delay in microseconds when between changing matrix pin state and reading values 59 * the delay in microseconds when between changing matrix pin state and reading values
58* `#define UNUSED_PINS { D1, D2, D3, B1, B2, B3 }` 60* `#define UNUSED_PINS { D1, D2, D3, B1, B2, B3 }`
@@ -186,13 +188,27 @@ If you define these options you will enable the associated feature, which may in
186 few ms of delay from this. But if you're doing chording on something with 3-4ms 188 few ms of delay from this. But if you're doing chording on something with 3-4ms
187 scan times? You probably want this. 189 scan times? You probably want this.
188* `#define COMBO_COUNT 2` 190* `#define COMBO_COUNT 2`
189 * Set this to the number of combos that you're using in the [Combo](feature_combo.md) feature. 191 * Set this to the number of combos that you're using in the [Combo](feature_combo.md) feature. Or leave it undefined and programmatically set the count.
190* `#define COMBO_TERM 200` 192* `#define COMBO_TERM 200`
191 * how long for the Combo keys to be detected. Defaults to `TAPPING_TERM` if not defined. 193 * how long for the Combo keys to be detected. Defaults to `TAPPING_TERM` if not defined.
194* `#define COMBO_MUST_HOLD_MODS`
195 * Flag for enabling extending timeout on Combos containing modifers
196* `#define COMBO_MOD_TERM 200`
197 * Allows for extending COMBO_TERM for mod keys while mid-combo.
198* `#define COMBO_MUST_HOLD_PER_COMBO`
199 * Flag to enable per-combo COMBO_TERM extension and `get_combo_must_hold()` function
200* `#define COMBO_TERM_PER_COMBO`
201 * Flag to enable per-combo COMBO_TERM extension and `get_combo_term()` function
202* `#define COMBO_STRICT_TIMER`
203 * Only start the combo timer on the first key press instead of on all key presses.
204* `#define COMBO_NO_TIMER`
205 * Disable the combo timer completely for relaxed combos.
192* `#define TAP_CODE_DELAY 100` 206* `#define TAP_CODE_DELAY 100`
193 * Sets the delay between `register_code` and `unregister_code`, if you're having issues with it registering properly (common on VUSB boards). The value is in milliseconds. 207 * Sets the delay between `register_code` and `unregister_code`, if you're having issues with it registering properly (common on VUSB boards). The value is in milliseconds.
194* `#define TAP_HOLD_CAPS_DELAY 80` 208* `#define TAP_HOLD_CAPS_DELAY 80`
195 * Sets the delay for Tap Hold keys (`LT`, `MT`) when using `KC_CAPSLOCK` keycode, as this has some special handling on MacOS. The value is in milliseconds, and defaults to 80 ms if not defined. For macOS, you may want to set this to 200 or higher. 209 * Sets the delay for Tap Hold keys (`LT`, `MT`) when using `KC_CAPSLOCK` keycode, as this has some special handling on MacOS. The value is in milliseconds, and defaults to 80 ms if not defined. For macOS, you may want to set this to 200 or higher.
210* `#define KEY_OVERRIDE_REPEAT_DELAY 500`
211 * Sets the key repeat interval for [key overrides](feature_key_overrides.md).
196 212
197## RGB Light Configuration 213## RGB Light Configuration
198 214
@@ -272,7 +288,7 @@ There are a few different ways to set handedness for split keyboards (listed in
272### Other Options 288### Other Options
273 289
274* `#define USE_I2C` 290* `#define USE_I2C`
275 * For using I2C instead of Serial (defaults to serial) 291 * For using I2C instead of Serial (default is serial; serial transport is supported on ARM -- I2C is AVR-only)
276 292
277* `#define SOFT_SERIAL_PIN D0` 293* `#define SOFT_SERIAL_PIN D0`
278 * When using serial, define this. `D0` or `D1`,`D2`,`D3`,`E6`. 294 * When using serial, define this. `D0` or `D1`,`D2`,`D3`,`E6`.
@@ -280,6 +296,7 @@ There are a few different ways to set handedness for split keyboards (listed in
280* `#define MATRIX_ROW_PINS_RIGHT { <row pins> }` 296* `#define MATRIX_ROW_PINS_RIGHT { <row pins> }`
281* `#define MATRIX_COL_PINS_RIGHT { <col pins> }` 297* `#define MATRIX_COL_PINS_RIGHT { <col pins> }`
282 * If you want to specify a different pinout for the right half than the left half, you can define `MATRIX_ROW_PINS_RIGHT`/`MATRIX_COL_PINS_RIGHT`. Currently, the size of `MATRIX_ROW_PINS` must be the same as `MATRIX_ROW_PINS_RIGHT` and likewise for the definition of columns. 298 * If you want to specify a different pinout for the right half than the left half, you can define `MATRIX_ROW_PINS_RIGHT`/`MATRIX_COL_PINS_RIGHT`. Currently, the size of `MATRIX_ROW_PINS` must be the same as `MATRIX_ROW_PINS_RIGHT` and likewise for the definition of columns.
299 * may be omitted by the keyboard designer if matrix reads are handled in an alternate manner. See [low-level matrix overrides](custom_quantum_functions.md?id=low-level-matrix-overrides) for more information.
283 300
284* `#define DIRECT_PINS_RIGHT { { F1, F0, B0, C7 }, { F4, F5, F6, F7 } }` 301* `#define DIRECT_PINS_RIGHT { { F1, F0, B0, C7 }, { F4, F5, F6, F7 } }`
285 * If you want to specify a different direct pinout for the right half than the left half, you can define `DIRECT_PINS_RIGHT`. Currently, the size of `DIRECT_PINS` must be the same as `DIRECT_PINS_RIGHT`. 302 * If you want to specify a different direct pinout for the right half than the left half, you can define `DIRECT_PINS_RIGHT`. Currently, the size of `DIRECT_PINS` must be the same as `DIRECT_PINS_RIGHT`.
@@ -300,7 +317,7 @@ There are a few different ways to set handedness for split keyboards (listed in
300* `#define SPLIT_USB_DETECT` 317* `#define SPLIT_USB_DETECT`
301 * Detect (with timeout) USB connection when delegating master/slave 318 * Detect (with timeout) USB connection when delegating master/slave
302 * Default behavior for ARM 319 * Default behavior for ARM
303 * Required for AVR Teensy 320 * Required for AVR Teensy (without hardware mods)
304 321
305* `#define SPLIT_USB_TIMEOUT 2000` 322* `#define SPLIT_USB_TIMEOUT 2000`
306 * Maximum timeout when detecting master/slave when using `SPLIT_USB_DETECT` 323 * Maximum timeout when detecting master/slave when using `SPLIT_USB_DETECT`
@@ -308,6 +325,28 @@ There are a few different ways to set handedness for split keyboards (listed in
308* `#define SPLIT_USB_TIMEOUT_POLL 10` 325* `#define SPLIT_USB_TIMEOUT_POLL 10`
309 * Poll frequency when detecting master/slave when using `SPLIT_USB_DETECT` 326 * Poll frequency when detecting master/slave when using `SPLIT_USB_DETECT`
310 327
328* `#define FORCED_SYNC_THROTTLE_MS 100`
329 * Deadline for synchronizing data from master to slave when using the QMK-provided split transport.
330
331* `#define SPLIT_TRANSPORT_MIRROR`
332 * Mirrors the master-side matrix on the slave when using the QMK-provided split transport.
333
334* `#define SPLIT_LAYER_STATE_ENABLE`
335 * Ensures the current layer state is available on the slave when using the QMK-provided split transport.
336
337* `#define SPLIT_LED_STATE_ENABLE`
338 * Ensures the current host indicator state (caps/num/scroll) is available on the slave when using the QMK-provided split transport.
339
340* `#define SPLIT_MODS_ENABLE`
341 * Ensures the current modifier state (normal, weak, and oneshot) is available on the slave when using the QMK-provided split transport.
342
343* `#define SPLIT_WPM_ENABLE`
344 * Ensures the current WPM is available on the slave when using the QMK-provided split transport.
345
346* `#define SPLIT_TRANSACTION_IDS_KB .....`
347* `#define SPLIT_TRANSACTION_IDS_USER .....`
348 * Allows for custom data sync with the slave when using the QMK-provided split transport. See [custom data sync between sides](feature_split_keyboard.md#custom-data-sync) for more information.
349
311# The `rules.mk` File 350# The `rules.mk` File
312 351
313This is a [make](https://www.gnu.org/software/make/manual/make.html) file that is included by the top-level `Makefile`. It is used to set some information about the MCU that we will be compiling for as well as enabling and disabling certain features. 352This is a [make](https://www.gnu.org/software/make/manual/make.html) file that is included by the top-level `Makefile`. It is used to set some information about the MCU that we will be compiling for as well as enabling and disabling certain features.
@@ -375,6 +414,8 @@ Use these to enable or disable building certain features. The more you have enab
375 * USB N-Key Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work 414 * USB N-Key Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
376* `AUDIO_ENABLE` 415* `AUDIO_ENABLE`
377 * Enable the audio subsystem. 416 * Enable the audio subsystem.
417* `KEY_OVERRIDE_ENABLE`
418 * Enable the key override feature
378* `RGBLIGHT_ENABLE` 419* `RGBLIGHT_ENABLE`
379 * Enable keyboard underlight functionality 420 * Enable keyboard underlight functionality
380* `LEADER_ENABLE` 421* `LEADER_ENABLE`