keymap.c 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. #include QMK_KEYBOARD_H
  2. extern keymap_config_t keymap_config;
  3. // Each layer gets a name for readability, which is then used in the keymap matrix below.
  4. // The underscores don't mean anything - you can have a layer called STUFF or any other name.
  5. // Layer names don't all need to be of the same length, obviously, and you can also skip them
  6. // entirely and just use numbers.
  7. #define _NUMPAD 0
  8. #define _ADJUST 3
  9. enum custom_keycodes {
  10. NUMPAD = SAFE_RANGE,
  11. ADJUST
  12. };
  13. const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
  14. /* Numpad
  15. * ,-----------------------------------------------------------------------------------.
  16. * | 0 | 1 | 4 | 7 | nlck | esc | 0 | 1 | 4 | 7 | nlck | esc |
  17. * |------+------+------+------+------+-------------+------+------+------+------+------|
  18. * | , | 2 | 5 | 8 | / | adj | , | 2 | 5 | 8 | / | adj |
  19. * |------+------+------+------+------+------|------+------+------+------+------+------|
  20. * | . | 3 | 6 | 9 | * | adj | . | 3 | 6 | 9 | * | adj |
  21. * |------+------+------+------+------+------+------+------+------+------+------+------|
  22. * | Enter| adj | - | + |bckspc| adj | Enter| adj | - | + |bckspc| adj |
  23. * `-----------------------------------------------------------------------------------'
  24. */
  25. [_NUMPAD] = LAYOUT_ortho_4x12( \
  26. KC_KP_0, KC_KP_1, KC_KP_4, KC_KP_7, KC_NUMLOCK, KC_ESC, KC_KP_0, KC_KP_1, KC_KP_4, KC_KP_7, KC_NUMLOCK, KC_ESC, \
  27. KC_KP_COMMA, KC_KP_2, KC_KP_5, KC_KP_8, KC_KP_SLASH, ADJUST, KC_KP_COMMA, KC_KP_2, KC_KP_5, KC_KP_8, KC_KP_SLASH, ADJUST, \
  28. KC_KP_DOT, KC_KP_3, KC_KP_6, KC_KP_9, KC_KP_ASTERISK, ADJUST, KC_KP_DOT, KC_KP_3, KC_KP_6, KC_KP_9, KC_KP_ASTERISK, ADJUST , \
  29. KC_KP_ENTER, ADJUST, KC_KP_MINUS, KC_KP_PLUS, KC_BSPACE, ADJUST, KC_KP_ENTER, ADJUST, KC_KP_MINUS, KC_KP_PLUS, KC_BSPACE, ADJUST \
  30. ),
  31. /* Adjust (Lower + Raise)
  32. * ,-----------------------------------------------------------------------------------.
  33. * | | Reset| | | | | | | | | | Del |
  34. * |------+------+------+------+------+-------------+------+------+------+------+------|
  35. * | | | |Aud on|Audoff|AGnorm|AGswap| | | | | |
  36. * |------+------+------+------+------+------|------+------+------+------+------+------|
  37. * | | | | | | | | | | | | |
  38. * |------+------+------+------+------+------+------+------+------+------+------+------|
  39. * | | | | | | RESET RESET | | | | |RGB_MOD|
  40. * `-----------------------------------------------------------------------------------'
  41. */
  42. [_ADJUST] = LAYOUT_ortho_4x12( \
  43. _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL, \
  44. _______, _______, _______, AU_ON, AU_OFF, AG_NORM, AG_SWAP, _______, _______, _______, _______, _______, \
  45. _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
  46. _______, _______, _______, _______, _______, RESET, RESET, _______, _______, _______, _______, RGB_MOD \
  47. )
  48. };
  49. void persistent_default_layer_set(uint16_t default_layer) {
  50. eeconfig_update_default_layer(default_layer);
  51. default_layer_set(default_layer);
  52. }
  53. bool process_record_user(uint16_t keycode, keyrecord_t *record) {
  54. switch (keycode) {
  55. case ADJUST:
  56. if (record->event.pressed) {
  57. layer_on(_ADJUST);
  58. } else {
  59. layer_off(_ADJUST);
  60. }
  61. return false;
  62. break;
  63. }
  64. return true;
  65. }