keymap.c 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111
  1. #include "roadkit.h"
  2. #include "action_layer.h"
  3. #include "eeconfig.h"
  4. extern keymap_config_t keymap_config;
  5. #define _NP 0
  6. #define _L1 1
  7. #define _L2 2
  8. // Fillers to make layering more clear
  9. #define _______ KC_TRNS
  10. #define XXXXXXX KC_NO
  11. enum custom_keycodes {
  12. NUMPAD = SAFE_RANGE,
  13. ADMIN,
  14. SMSPC1,
  15. STR192,
  16. STR255
  17. };
  18. const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
  19. /* Numpad
  20. * ,-----------------------.
  21. * | 7 | 8 | 9 |Bksp |
  22. * |-----`-----`-----`-----|
  23. * | 4 | 5 | 6 | Tab |
  24. * |-----`-----`-----`-----|
  25. * | 1 | 2 | 3 |Enter|
  26. * |-----`-----`-----`-----|
  27. * | 0 |Space| . | / |
  28. * `-----`-----`-----`-----'
  29. * | L1 | L2 | | | Layer hold
  30. */
  31. [_NP] = /* Numpad */
  32. LAYOUT_ortho_4x4(KC_P7, KC_P8, KC_P9, KC_BSPC, \
  33. KC_P4, KC_P5, KC_P6, KC_TAB, \
  34. KC_P1, KC_P2, KC_P3, KC_PENT, \
  35. LT(1, KC_P0), LT(2, KC_SPC), KC_PDOT, KC_PSLS),
  36. /* L1
  37. * ,-----------------------.
  38. * |Reset| | | Del |
  39. * |-----`-----`-----`-----|
  40. * | Left| Down| Up |Right|
  41. * |-----`-----`-----`-----|
  42. * | 192.| 255 | | |
  43. * |-----`-----`-----`-----|
  44. * |_____| LED | . | |
  45. * `-----`-----`-----`-----'
  46. */
  47. [_L1] = /* LAYER 1 */
  48. LAYOUT_ortho_4x4(RESET, XXXXXXX, XXXXXXX, KC_DEL, \
  49. KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, \
  50. STR192, STR255, XXXXXXX, XXXXXXX, \
  51. _______, BL_STEP, _______, XXXXXXX),
  52. /* L2
  53. * ,-----------------------.
  54. * | | | str | str |
  55. * |-----`-----`-----`-----|
  56. * | | | | |
  57. * |-----`-----`-----`-----|
  58. * | | | | |
  59. * |-----`-----`-----`-----|
  60. * | |_____| | |
  61. * `-----`-----`-----`-----'
  62. */
  63. [_L2] = /* LAYER 2 */
  64. LAYOUT_ortho_4x4(XXXXXXX, XXXXXXX, ADMIN, SMSPC1, \
  65. XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
  66. XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
  67. XXXXXXX, _______, XXXXXXX, XXXXXXX)
  68. };
  69. void persistent_default_layer_set(uint16_t default_layer) {
  70. eeconfig_update_default_layer(default_layer);
  71. default_layer_set(default_layer);
  72. }
  73. bool process_record_user(uint16_t keycode, keyrecord_t *record) {
  74. switch (keycode) {
  75. case ADMIN:
  76. if (record->event.pressed) {
  77. SEND_STRING("Administrator");
  78. }
  79. return false;
  80. break;
  81. case SMSPC1:
  82. if (record->event.pressed) {
  83. SEND_STRING("Simspace1!");
  84. }
  85. return false;
  86. break;
  87. case STR192:
  88. if (record->event.pressed) {
  89. SEND_STRING("192.168.");
  90. }
  91. return false;
  92. break;
  93. case STR255:
  94. if (record->event.pressed) {
  95. SEND_STRING("255");
  96. }
  97. return false;
  98. break;
  99. }
  100. return true;
  101. };