config.h 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147
  1. /* Copyright 2021 Chris Laprade
  2. *
  3. * This program is free software: you can redistribute it and/or modify
  4. * it under the terms of the GNU General Public License as published by
  5. * the Free Software Foundation, either version 2 of the License, or
  6. * (at your option) any later version.
  7. *
  8. * This program is distributed in the hope that it will be useful,
  9. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  10. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  11. * GNU General Public License for more details.
  12. *
  13. * You should have received a copy of the GNU General Public License
  14. * along with this program. If not, see <http://www.gnu.org/licenses/>.
  15. */
  16. #pragma once
  17. /*
  18. * USB/POWER OPTIONS
  19. */
  20. // #define USB_MAX_POWER_CONSUMPTION 500
  21. #define USB_SUSPEND_WAKEUP_DELAY 200
  22. #define USB_POLLING_INTERVAL_MS 1
  23. /*
  24. * MUSIC/AUDIO options
  25. */
  26. #ifdef AUDIO_ENABLE
  27. # define AUDIO_CLICKY
  28. # define MUSIC_MAP
  29. # define AUDIO_VOICES
  30. # define AUDIO_VOICE_DEFAULT something
  31. # define AUDIO_DAC_SAMPLE_MAX 2732U
  32. # define DEFAULT_LAYER_SONGS \
  33. { SONG(QWERTY_SOUND), SONG(COLEMAK_SOUND), SONG(DVORAK_SOUND) }
  34. /* Plays during keyboard startup */
  35. # define STARTUP_SONG SONG(NO_SOUND)
  36. #endif
  37. /*
  38. * MIDI options
  39. */
  40. /* enable basic MIDI features:
  41. - MIDI notes can be sent when in Music mode is on
  42. */
  43. #define MIDI_BASIC
  44. /* enable advanced MIDI features:
  45. - MIDI notes can be added to the keymap
  46. - Octave shift and transpose
  47. - Virtual sustain, portamento, and modulation wheel
  48. - etc.
  49. */
  50. #define MIDI_ADVANCED
  51. /*
  52. * ENCODER options
  53. */
  54. #define ENCODER_DIRECTION_FLIP
  55. #define ENCODER_RESOLUTION 4 // Define number of stages between detents on encoders
  56. #define ENCODERS_PAD_A \
  57. { B12 }
  58. #define ENCODERS_PAD_B \
  59. { B13 }
  60. /*
  61. * RGB options
  62. */
  63. #ifdef RGBLIGHT_ENABLE
  64. # define RGBLIGHT_SLEEP // Allows rgb to sleep when the host/keyboard does
  65. # define RGBLIGHT_ANIMATIONS // Enable using rgb animations
  66. # define RGBLIGHT_LAYERS // Enable indicating layers using layered rgb assignments
  67. # define RGBLIGHT_LAYER_BLINK // Allows rgb layers to be blinked (activate for a set amount of time)
  68. # define RGBLIGHT_MAX_LAYERS 32 // Overides the default (8) max number of rgb layers
  69. # define RGBLIGHT_LAYERS_OVERRIDE_RGB_OFF // Allows rgb layers to work even when rgb is toggled off
  70. #endif
  71. /*
  72. * UNICODE options
  73. */
  74. #define UNICODE_SELECTED_MODES UC_WINC, UC_LNX, UC_MAC // Define the methods used for in/outputting unicode
  75. /*
  76. * TAP-DANCE options
  77. */
  78. #define TAPPING_TERM_PER_KEY // Control Tap-Dance time individually by key
  79. #define TAPPING_TERM 250 // Default time allowed before resetting a Tap-Dance combo
  80. #define ONESHOT_TAP_TOGGLE 5 /* Tapping this number of times holds the key until tapped once again. */
  81. #define ONESHOT_TIMEOUT 5000 /* Time (in ms) before the one shot key is released */
  82. #define TAPPING_TOGGLE 3
  83. /*
  84. * LEADER-KEY options
  85. */ // Used for on-board chording
  86. #define LEADER_PER_KEY_TIMING
  87. #define LEADER_TIMEOUT 500
  88. /*
  89. * COMBO-KEY options
  90. */
  91. #define COMBO_COUNT 2
  92. #define COMBO_TERM 300
  93. /*
  94. * MACRO per-key options
  95. */
  96. #define RETRO_TAPPING_PER_KEY // Control Retro-Tap individually by key
  97. #define TAPPING_FORCE_HOLD_PER_KEY // Control Force-Hold individually by key
  98. #define IGNORE_MOD_TAP_INTERRUPT_PER_KEY // Control Mod-Tap-Interrupt individually by key
  99. #define PERMISSIVE_HOLD_PER_KEY // Control Permissive-Hold individually by key
  100. #define MK_KINETIC_SPEED // Use kinetic acceleration for mouse-keys
  101. // Fall-back defines to prevent compile errors if user_song_list is missing
  102. #ifndef ZELDA_PUZZLE2
  103. # define ZELDA_PUZZLE2 Q__NOTE(_G5)
  104. #endif
  105. #ifndef SONIC_RING2
  106. # define SONIC_RING2 E__NOTE(_E6)
  107. #endif
  108. #ifndef ZELDA_CHEST2
  109. # define ZELDA_CHEST2 Q__NOTE(_G5)
  110. #endif
  111. #ifndef COIN_SOUND2
  112. # define COIN_SOUND2 E__NOTE(_A5)
  113. #endif
  114. #ifndef ONE_UP_SOUND2
  115. # define ONE_UP_SOUND2 Q__NOTE(_E6)
  116. #endif
  117. #ifndef IMPERIAL_MARCH
  118. # define IMPERIAL_MARCH HD_NOTE(_A4)
  119. #endif
  120. #ifndef MARIO_GAMEOVER
  121. # define MARIO_GAMEOVER HD_NOTE(_C5)
  122. #endif
  123. #ifndef LEAD_START_SOUND
  124. # define LEAD_START_SOUND E__NOTE(_C5)
  125. #endif
  126. #ifndef LEAD_SUCCESS_SOUND
  127. # define LEAD_SUCCESS_SOUND E__NOTE(_A5), HD_NOTE(_E6),
  128. #endif
  129. #ifndef LEAD_FAIL_SOUND
  130. # define LEAD_FAIL_SOUND E__NOTE(_A5), HD_NOTE(_E4),
  131. #endif