You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

117 lines
4.8 KiB

  1. /**
  2. * Copyright (C) 2021 Jerrell, Jacob <@jjerrell>
  3. *
  4. * This file is part of qmk_firmware.
  5. *
  6. * qmk_firmware is free software: you can redistribute it and/or modify
  7. * it under the terms of the GNU General Public License as published by
  8. * the Free Software Foundation, either version 3 of the License, or
  9. * (at your option) any later version.
  10. *
  11. * qmk_firmware is distributed in the hope that it will be useful,
  12. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  13. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  14. * GNU General Public License for more details.
  15. *
  16. * You should have received a copy of the GNU General Public License
  17. * along with qmk_firmware. If not, see <http://www.gnu.org/licenses/>.
  18. */
  19. #include "jjerrell.h"
  20. enum moonlander_layers {
  21. _GAME_LOWER = LAYER_SAFE_RANGE,
  22. // _GAME_RAISE,
  23. };
  24. // clang-format off
  25. const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
  26. [_WORKMAN] = LAYOUT_moonlander_mods(
  27. __________________WORKMN_L1__________________, __________________WORKMN_R1__________________,
  28. __________________WORKMN_L2__________________, __________________WORKMN_R2__________________,
  29. __________________WORKMN_L3__________________, __________________WORKMN_R3__________________,
  30. XXXXXXX, XXXXXXX, XXXXXXX, KC_LSFT, KC_RSFT, XXXXXXX, XXXXXXX, XXXXXXX
  31. ),
  32. [_LOWER] = LAYOUT_moonlander_mods(
  33. __________________LOWER_L1___________________, __________________LOWER_R1___________________,
  34. __________________LOWER_L2___________________, __________________LOWER_R2___________________,
  35. __________________LOWER_L3___________________, __________________LOWER_R3___________________,
  36. XXXXXXX, XXXXXXX, XXXXXXX, KC_LSFT, KC_0, KC_DOT, KC_COMM, KC_PLUS
  37. ),
  38. [_RAISE] = LAYOUT_moonlander_common(
  39. __________________RAISE_L1___________________, __________________RAISE_R1___________________,
  40. __________________RAISE_L2___________________, __________________RAISE_R2___________________,
  41. __________________RAISE_L3___________________, __________________RAISE_R3___________________,
  42. XXXXXXX, XXXXXXX, XXXXXXX, KC_LSFT, KC_RSFT, XXXXXXX, XXXXXXX, XXXXXXX
  43. ),
  44. [_ADJUST] = LAYOUT_moonlander_common(
  45. __________________ADJUST_L1__________________, __________________ADJUST_R1__________________,
  46. __________________ADJUST_L2__________________, __________________ADJUST_R2__________________,
  47. __________________ADJUST_L3__________________, __________________ADJUST_R3__________________,
  48. XXXXXXX, XXXXXXX, XXXXXXX, KC_LSFT, KC_RSFT, XXXXXXX, XXXXXXX, XXXXXXX
  49. ),
  50. [_SPECIAL] = LAYOUT_moonlander_common(
  51. XXXXXXX, XXXXXXX, KC_WH_D, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
  52. XXXXXXX, KC_WH_L, KC_WH_U, KC_WH_R, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
  53. XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
  54. XXXXXXX, XXXXXXX, XXXXXXX, KC_LALT, KC_RALT, XXXXXXX, XXXXXXX, XXXXXXX
  55. ),
  56. [_GAME] = LAYOUT_moonlander_gamepad(
  57. KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6,
  58. KC_TAB, __________________QWERTY_L1__________________, KC_SLSH,
  59. KC_LALT, __________________QWERTY_L2__________________, KC_BSLS,
  60. KC_LSFT, __________________QWERTY_L3__________________,
  61. KC_LGUI, MACRO_1, MACRO_2, MACRO_3, MACRO_4, KC_LOCK,
  62. KC_SPC, KC_BTN2, MO(_LOWER)
  63. ),
  64. [_GAME_LOWER] = LAYOUT_moonlander_gamepad(
  65. KC_GRV, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL,
  66. KC_TAB, __________________QWERTY_L1__________________, KC_SLSH,
  67. KC_LALT, __________________QWERTY_L2__________________, KC_BSLS,
  68. KC_LSFT, __________________QWERTY_L3__________________,
  69. KC_LGUI, MACRO_5, MACRO_6, MACRO_7, MACRO_8, KC_LOCK,
  70. KC_SPC, KC_BTN2, MO(_LOWER)
  71. )
  72. };
  73. // clang-format on
  74. layer_state_t layer_state_set_keymap(layer_state_t state) {
  75. ML_LED_1(0);
  76. ML_LED_2(0);
  77. ML_LED_3(0);
  78. ML_LED_4(0);
  79. ML_LED_5(0);
  80. ML_LED_6(0);
  81. state = update_tri_layer_state(state, _GAME, _LOWER, _GAME_LOWER);
  82. switch (get_highest_layer(state)) {
  83. case 1:
  84. ML_LED_1(1);
  85. ML_LED_4(1);
  86. break;
  87. case 2:
  88. ML_LED_2(1);
  89. ML_LED_5(1);
  90. break;
  91. case 3:
  92. ML_LED_3(1);
  93. break;
  94. case 4:
  95. ML_LED_4(1);
  96. break;
  97. case 5:
  98. ML_LED_5(1);
  99. break;
  100. case 6:
  101. ML_LED_6(1);
  102. break;
  103. default:
  104. break;
  105. }
  106. return state;
  107. }