keymap.c 7.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141
  1. #include QMK_KEYBOARD_H
  2. #include "drashna.h"
  3. #define KC_ALAP ALT_T(KC_APP)
  4. const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
  5. [_QWERTY] = LAYOUT_wrapper(
  6. KC_GESC, ________________NUMBER_LEFT________________, ________________NUMBER_RIGHT_______________, KC_MINS,
  7. KC_TAB , _________________QWERTY_L1_________________, _________________QWERTY_R1_________________, KC_BSLS,
  8. KC_C1R3, _________________QWERTY_L2_________________, _________________QWERTY_R2_________________, KC_QUOT,
  9. KC_MLSF, _________________QWERTY_L3_________________, KC_ALAP, KC_LGUI, _________________QWERTY_R3_________________, KC_MRSF,
  10. LOWER, KC_SPC, KC_BSPC, KC_DEL, KC_ENT, RAISE
  11. ),
  12. [_COLEMAK] = LAYOUT_wrapper(
  13. KC_GESC, ________________NUMBER_LEFT________________, ________________NUMBER_RIGHT_______________, KC_MINS,
  14. KC_TAB , _________________COLEMAK_L1________________, _________________COLEMAK_R1________________, KC_BSLS,
  15. KC_C1R3, _________________COLEMAK_L2________________, _________________COLEMAK_R2________________, KC_QUOT,
  16. KC_MLSF, _________________COLEMAK_L3________________, KC_ALAP, KC_LGUI, _________________COLEMAK_R3________________, KC_MRSF,
  17. LOWER, KC_SPC, KC_BSPC, KC_DEL, KC_ENT, RAISE
  18. ),
  19. [_DVORAK] = LAYOUT_wrapper(
  20. KC_GESC, ________________NUMBER_LEFT________________, ________________NUMBER_RIGHT_______________, KC_MINS,
  21. KC_TAB , _________________DVORAK_L1_________________, _________________DVORAK_R1_________________, KC_BSLS,
  22. KC_C1R3, _________________DVORAK_L2_________________, _________________DVORAK_R2_________________, KC_QUOT,
  23. KC_MLSF, _________________DVORAK_L3_________________, KC_ALAP, KC_LGUI, _________________DVORAK_R3_________________, KC_MRSF,
  24. LOWER, KC_SPC, KC_BSPC, KC_DEL, KC_ENT, RAISE
  25. ),
  26. [_WORKMAN] = LAYOUT_wrapper(
  27. KC_GESC, ________________NUMBER_LEFT________________, ________________NUMBER_RIGHT_______________, KC_MINS,
  28. KC_TAB , _________________WORKMAN_L1________________, _________________WORKMAN_R1________________, KC_BSLS,
  29. KC_C1R3, _________________WORKMAN_L2________________, _________________WORKMAN_R2________________, KC_QUOT,
  30. KC_MLSF, _________________WORKMAN_L3________________, KC_ALAP, KC_LGUI, _________________WORKMAN_R3________________, KC_MRSF,
  31. LOWER, KC_SPC, KC_BSPC, KC_DEL, KC_ENT, RAISE
  32. ),
  33. [_MODS] = LAYOUT(
  34. _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
  35. _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
  36. _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
  37. KC_LSFT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
  38. _______, _______, _______, _______, _______, _______
  39. ),
  40. [_LOWER] = LAYOUT(
  41. KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC,
  42. _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
  43. KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_RBRC, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE,
  44. KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_LPRN, KC_RPRN, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______,
  45. _______, _______, KC_DEL, _______, _______, _______
  46. ),
  47. [_RAISE] = LAYOUT(
  48. KC_F12, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
  49. _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
  50. _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_UNDS, KC_EQL , KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS,
  51. _______, _______, _______, _______, _______, _______, _______, _______, KC_PLUS, KC_END, _______, _______, _______, _______,
  52. _______, _______, _______, _______, _______, _______
  53. ),
  54. [_ADJUST] = LAYOUT(
  55. KC_MAKE, KC_RST, EPRM, _______, _______, _______, _______, _______, _______, _______, _______, _______,
  56. RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, _______, _______, _______, _______, _______, _______, _______,
  57. RGB_SMOD,RGB_HUI, CK_TOGG, AU_ON, AU_OFF, AG_NORM, AG_SWAP, KC_QWERTY, KC_COLEMAK, KC_DVORAK, KC_WORKMAN, TG(_MODS),
  58. KC_RGB_T,RGB_SMOD,RGB_HUD, RGB_SAD, RGB_VAD, _______, _______, _______, MG_NKRO, KC_MUTE, KC_VOLD, KC_VOLU, KC_MNXT, KC_MPLY,
  59. _______, _______, _______, _______, _______, _______
  60. )
  61. };
  62. #ifdef INDICATOR_LIGHT
  63. uint32_t layer_state_set_keymap (uint32_t state) {
  64. uint8_t modifiders = get_mods();
  65. uint8_t led_usb_state = host_keyboard_leds();
  66. uint8_t one_shot = get_oneshot_mods();
  67. if (modifiders & MODS_SHIFT_MASK || led_usb_state & (1<<USB_LED_CAPS_LOCK) || one_shot & MODS_SHIFT_MASK) {
  68. rgblight_sethsv_at(0, 255, 255, 5);
  69. rgblight_sethsv_at(0, 255, 255, 10);
  70. }
  71. if (modifiders & MODS_CTRL_MASK || one_shot & MODS_CTRL_MASK) {
  72. rgblight_sethsv_at(51, 255, 255, 6);
  73. rgblight_sethsv_at(51, 255, 255, 9);
  74. }
  75. if (modifiders & MODS_ALT_MASK || one_shot & MODS_ALT_MASK) {
  76. rgblight_sethsv_at(120, 255, 255, 7);
  77. rgblight_sethsv_at(120, 255, 255, 8);
  78. }
  79. return state;
  80. }
  81. void matrix_scan_keymap (void) {
  82. static uint8_t current_mods;
  83. static uint8_t current_host_leds;
  84. static uint8_t current_oneshot_mods;
  85. static bool has_status_changed = true;
  86. if ( current_mods != get_mods() || current_host_leds != host_keyboard_leds() || current_oneshot_mods != get_oneshot_mods()) {
  87. has_status_changed = true;
  88. current_mods = get_mods();
  89. current_host_leds = host_keyboard_leds();
  90. current_oneshot_mods = get_oneshot_mods();
  91. }
  92. if (has_status_changed) {
  93. has_status_changed = false;
  94. if (current_mods & MODS_SHIFT_MASK || current_host_leds & (1<<USB_LED_CAPS_LOCK) || current_oneshot_mods & MODS_SHIFT_MASK) {
  95. rgblight_sethsv_at(0, 255, 255, 5);
  96. rgblight_sethsv_at(0, 255, 255, 10);
  97. } else {
  98. rgblight_sethsv_default_helper(5);
  99. rgblight_sethsv_default_helper(10);
  100. }
  101. if (current_mods & MODS_CTRL_MASK || current_oneshot_mods & MODS_CTRL_MASK) {
  102. rgblight_sethsv_at(51, 255, 255, 6);
  103. rgblight_sethsv_at(51, 255, 255, 9);
  104. } else {
  105. rgblight_sethsv_default_helper(6);
  106. rgblight_sethsv_default_helper(9);
  107. }
  108. if (current_mods & MODS_GUI_MASK || current_oneshot_mods & MODS_GUI_MASK) {
  109. rgblight_sethsv_at(120, 255, 255, 7);
  110. rgblight_sethsv_at(120, 255, 255, 8);
  111. } else {
  112. rgblight_sethsv_default_helper(7);
  113. rgblight_sethsv_default_helper(8);
  114. }
  115. }
  116. }
  117. #endif