Guest User

Untitled

a guest
Nov 21st, 2017
99
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.20 KB | None | 0 0
  1. #include "planck.h"
  2. #include "action_layer.h"
  3. #include "virtser.h"
  4. #include "keymap_steno.h"
  5.  
  6. extern keymap_config_t keymap_config;
  7.  
  8. #define QWERTY 0
  9. #define PLOVER 1
  10. #define RAISE 2
  11. #define DEAD 3
  12. #define RAISE_DEAD 4
  13. #define NUMPAD 5
  14. #define FN 6
  15.  
  16. enum planck_keycodes {
  17. KC_QWERTY = SAFE_RANGE,
  18. KC_PLOVER,
  19. KC_RAISE
  20. };
  21.  
  22. #define _______ KC_TRNS
  23. #define XXXXXXX KC_NO
  24.  
  25. const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
  26.  
  27. [QWERTY] = {
  28. {KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC},
  29. {KC_RAISE, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT},
  30. {KC_RGUI, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, MO(NUMPAD)},
  31. {KC_MUTE, KC_VOLD, KC_VOLU, KC_LGUI, KC_LCTL, KC_SPC, KC_ENT, KC_LSFT, KC_LALT, KC_PSCR, KC_RCTL, MO(FN)}
  32. },
  33.  
  34. [PLOVER] = {
  35. {XXXXXXX, STN_S1, STN_TL, STN_PL, STN_HL, STN_ST1, STN_ST3, STN_FR, STN_PR, STN_LR, STN_TR, STN_DR},
  36. {XXXXXXX, STN_S1, STN_KL, STN_WL, STN_RL, STN_ST2, STN_ST4, STN_RR, STN_BR, STN_GR, STN_SR, STN_ZR},
  37. {XXXXXXX, STN_N1, STN_N2, STN_N3, STN_N4, STN_N5, STN_N6, STN_N7, STN_N8, STN_N9, STN_NA, XXXXXXX},
  38. {KC_QWERTY, XXXXXXX, XXXXXXX, XXXXXXX, STN_A, STN_O, STN_E, STN_U, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX}
  39. },
  40.  
  41. [RAISE] = {
  42. {KC_CAPS, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______},
  43. {_______, KC_TAB, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT, KC_GRV, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS},
  44. {_______, XXXXXXX, KC_PGUP, KC_HOME, KC_END, KC_PGDN, KC_MSTP, KC_MPLY, KC_MPRV, KC_MNXT, KC_DELETE, XXXXXXX},
  45. {KC_CUT, KC_COPY, KC_PASTE, _______, _______, _______, _______, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX}
  46. },
  47.  
  48. [NUMPAD] = {
  49. {KC_NLCK, XXXXXXX, XXXXXXX, KC_E, XXXXXXX, XXXXXXX, XXXXXXX, KC_P7, KC_P8, KC_P9, KC_PSLS, _______},
  50. {XXXXXXX, KC_A, XXXXXXX, KC_D, KC_F, XXXXXXX, XXXXXXX, KC_P4, KC_P5, KC_P6, KC_PAST, XXXXXXX},
  51. {XXXXXXX, XXXXXXX, XXXXXXX, KC_C, XXXXXXX, KC_B, XXXXXXX, KC_P1, KC_P2, KC_P3, KC_PMNS, _______},
  52. {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_SPC, KC_ENT, KC_P0, KC_PDOT, KC_PENT, KC_PPLS, XXXXXXX}
  53. },
  54.  
  55. [FN] = {
  56. {KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12},
  57. {MAGIC_TOGGLE_NKRO,XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, BL_TOGG},
  58. {RESET, DEBUG, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, BL_STEP},
  59. {KC_PLOVER, XXXXXXX, _______, _______, _______, _______, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX, _______}
  60. },
  61.  
  62. };
  63.  
  64. void matrix_init_user() {
  65. steno_set_mode(STENO_MODE_GEMINI);
  66. }
  67.  
  68. bool process_record_user(uint16_t keycode, keyrecord_t *record) {
  69. switch (keycode) {
  70. case KC_RAISE:
  71. if (record->event.pressed) {
  72. layer_on(RAISE);
  73. /* update_tri_layer(RAISE, DEAD, RAISE_DEAD); */
  74. } else {
  75. layer_off(RAISE);
  76. /* update_tri_layer(RAISE, DEAD, RAISE_DEAD); */
  77. }
  78. return false;
  79. case KC_PLOVER:
  80. if (record->event.pressed) {
  81. layer_off(FN);
  82. layer_on(PLOVER);
  83. keymap_config.nkro = 1;
  84. /* register_code(KC_A); */
  85. /* register_code(KC_S); */
  86. /* register_code(KC_D); */
  87. /* register_code(KC_F); */
  88. /* unregister_code(KC_A); */
  89. /* unregister_code(KC_S); */
  90. /* unregister_code(KC_D); */
  91. /* unregister_code(KC_F); */
  92. }
  93. return false;
  94. case KC_QWERTY:
  95. if (record->event.pressed) {
  96. layer_off(PLOVER);
  97. layer_on(QWERTY);
  98. /* register_code(KC_A); */
  99. /* register_code(KC_S); */
  100. /* register_code(KC_D); */
  101. /* register_code(KC_F); */
  102. /* unregister_code(KC_A); */
  103. /* unregister_code(KC_S); */
  104. /* unregister_code(KC_D); */
  105. /* unregister_code(KC_F); */
  106. }
  107. return false;
  108. }
  109. return true;
  110. }
Add Comment
Please, Sign In to add comment