Advertisement
Guest User

Untitled

a guest
May 21st, 2018
258
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 9.14 KB | None | 0 0
  1. #include "viterbi.h"
  2. #include "action_layer.h"
  3. #include "eeconfig.h"
  4.  
  5. extern keymap_config_t keymap_config;
  6.  
  7. // Each layer gets a name for readability, which is then used in the keymap matrix below.
  8. // The underscores don't mean anything - you can have a layer called STUFF or any other name.
  9. // Layer names don't all need to be of the same length, obviously, and you can also skip them
  10. // entirely and just use numbers.
  11. #define _QWERTY 0
  12. #define _LOWER 1
  13. #define _RAISE 2
  14. #define _ADJUST 16
  15.  
  16. enum custom_keycodes {
  17. QWERTY = SAFE_RANGE,
  18. LOWER,
  19. RAISE,
  20. ADJUST,
  21. };
  22.  
  23. // Fillers to make layering more clear
  24. #define KC_ KC_TRNS
  25. #define _______ KC_TRNS
  26. #define XXXXXXX KC_NO
  27. #define KC_AJST ADJUST
  28. #define KC_LOWR LOWER
  29. #define KC_RASE RAISE
  30.  
  31. const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
  32.  
  33. /* QWERTY
  34. * ,------------------------------------------------. ,------------------------------------------------.
  35. * | ` | 1 | 2 | 3 | 4 | 5 | MINS | | EQL | 6 | 7 | 8 | 9 | 0 | Bksp |
  36. * |------+------+------+------+------+------+------| |------+------+------+------+------+------+------|
  37. * | Tab | Q | W | E | R | T | LBRC | | RBRC | Y | U | I | O | P | Del |
  38. * |------+------+------+------+------+------+------| |------+------+------+------+------+------+------|
  39. * | Esc | A | S | D | F | G | LPRN | | RPRN | H | J | K | L | ; | " |
  40. * |------+------+------+------+------+------+------| |------+------+------+------+------+------+------|
  41. * | Shift| Z | X | C | V | B | Home | | End | N | M | , | . | / |RShift|
  42. * |------+------+------+------+------+------+------| |------+------+------+------+------+------+------|
  43. * | Ctrl | LGUI | | Alt |Lower | |Enter | |Space | | Raise| Left | Down | Up |Right |
  44. * `- -----------------------------------------------' `------------------------------------------------'
  45. */
  46. [_QWERTY] = KC_KEYMAP(
  47. //,----+----+----+----+----+----+----. ,----+----+----+----+----+----+----.
  48. GRV , 1 , 2 , 3 , 4 , 5 ,MINS, EQL, 6 , 7 , 8 , 9 , 0 ,BSPC,
  49. //|----+----+----+----+----+----+----| |----+----+----+----+----+----+----|
  50. TAB , Q , W , E , R , T ,LBRC, RBRC, Y , U , I , O , P ,DEL ,
  51. //|----+----+----+----+----+----+----| |----+----+----+----+----+----+----|
  52. ESC , A , S , D , F , G ,LPRN, RPRN, H , J , K , L ,SCLN,QUOT,
  53. //|----+----+----+----+----+----+----| |----+----+----+----+----+----+----|
  54. LSFT, Z , X , C , V , B ,HOME, END , N , M ,COMM,DOT ,SLSH,RSFT,
  55. //|----+----+----+----+----+----+----| |----+----+----+----+----+----+----|
  56. LCTL,LGUI,NO ,LALT,LOWR,NO ,ENT , SPC ,NO ,RASE,LEFT,DOWN, UP ,RGHT
  57. //`----+----+----+----+----+----+----' `----+----+----+----+----+----+----'
  58. ),
  59.  
  60. /* Lower
  61. * ,------------------------------------------------. ,------------------------------------------------.
  62. * | ~ | F1 | F2 | F3 | F4 | F5 | | | F6 | F7 | F8 | F9 | F10 | F11 | F12 |
  63. * |------+------+------+------+------+------+------| |------+------+------+------+------+------+------|
  64. * | _ | ! | @ | # | $ | % | | | | ^ | & | * | ( | ) | |
  65. * |------+------+------+------+------+------+------| |------+------+------+------+------+------+------|
  66. * | + | F1 | F2 | F3 | F4 | F5 | F6 | | | _ | + | { | } | PIPE | |
  67. * |------+------+------+------+------+------+------| |------+------+------+------+------+------+------|
  68. * | | F7 | F8 | F9 | F10 | F11 | F12 | | | | | | | | |
  69. * |------+------+------+------+------+------+------| |------+------+------+------+------+------+------|
  70. * | | | | | | | | | | | Next | Vol- | Vol+ | Play | |
  71. * `------------------------------------------------' `------------------------------------------------'
  72. */
  73. [_LOWER] = KC_KEYMAP(
  74. //,----+----+----+----+----+----+----. ,----+----+----+----+----+----+----.
  75. TILD, F1 , F2 , F3 , F4 , F5 , , F6 , F7 , F8 , F9 ,F10 ,F11 ,F12 ,
  76. //|----+----+----+----+----+----+----| |----+----+----+----+----+----+----|
  77. UNDS,EXLM, AT ,HASH,DLR ,PERC, , ,CIRC,AMPR,ASTR,LPRN,RPRN, ,
  78. //|----+----+----+----+----+----+----| |----+----+----+----+----+----+----|
  79. PLUS, F1 , F2 , F3 , F4 , F5 , F6 , ,UNDS,PLUS,LCBR,RCBR,PIPE, ,
  80. //|----+----+----+----+----+----+----| |----+----+----+----+----+----+----|
  81. , F7 , F8 , F9 ,F10 ,F11 ,F12 , , , , , , , ,
  82. //|----+----+----+----+----+----+----| |----+----+----+----+----+----+----|
  83. , , , , , , , , ,MNXT,VOLD,VOLU,MPLY,MUTE
  84. //`----+----+----+----+----+----+----' `----+----+----+----+----+----+----'
  85. ),
  86.  
  87. /* Raise
  88. * ,------------------------------------------------. ,------------------------------------------------.
  89. * | ~ | F1 | F2 | F3 | F4 | F5 | | | F6 | F7 | F8 | F9 | F10 | F11 | F12 |
  90. * |------+------+------+------+------+------+------| |------+------+------+------+------+------+------|
  91. * | _ | 1 | 2 | 3 | 4 | 5 | | | | 6 | 7 | 8 | 9 | 0 | |
  92. * |------+------+------+------+------+------+------| |------+------+------+------+------+------+------|
  93. * | + | F1 | F2 | F3 | F4 | F5 | F6 | | | - | = | [ | ] | BSLS | |
  94. * |------+------+------+------+------+------+------| |------+------+------+------+------+------+------|
  95. * | | F7 | F8 | F9 | F10 | F11 | F12 | | |ISO # |ISO / | | | | |
  96. * |------+------+------+------+------+------+------| |------+------+------+------+------+------+------|
  97. * | | | | | | | | | | | Next | Vol- | Vol+ | Play | |
  98. * `------------------------------------------------' `------------------------------------------------'
  99. */
  100. [_RAISE] = KC_KEYMAP(
  101. //,----+----+----+----+----+----+----. ,----+----+----+----+----+----+----.
  102. TILD, F1 , F2 , F3 , F4 , F5 , , F6 , F7 , F8 , F9 ,F10 ,F11 ,F12 ,
  103. //|----+----+----+----+----+----+----| |----+----+----+----+----+----+----|
  104. UNDS, 1 , 2 , 3 , 4 , 5 , , , 6 , 7 , 8 , 9 , 0 , ,
  105. //|----+----+----+----+----+----+----| |----+----+----+----+----+----+----|
  106. PLUS, F1 , F2 , F3 , F4 , F5 , F6 , ,MINS,EQL ,LBRC,RBRC,BSLS, ,
  107. //|----+----+----+----+----+----+----| |----+----+----+----+----+----+----|
  108. , F7 , F8 , F9 ,F10 ,F11 , F12, ,NUHS,NUBS, , , , ,
  109. //|----+----+----+----+----+----+----| |----+----+----+----+----+----+----|
  110. , , , , , , , , ,MNXT,VOLD,VOLU,MPLY,MUTE
  111. //`----+----+----+----+----+----+----' `----+----+----+----+----+----+----'
  112. ),
  113.  
  114. [_ADJUST] = KEYMAP(
  115. _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, \
  116. _______, _______, RESET , RGB_TOG, RGB_MOD, RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI, RGB_VAD, RGB_VAI, _______, KC_DEL, _______, \
  117. _______, _______, _______, _______, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, _______, _______, _______, _______, _______, \
  118. _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
  119. _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \
  120. )
  121.  
  122. };
  123.  
  124. #ifdef AUDIO_ENABLE
  125. float tone_qwerty[][2] = SONG(QWERTY_SOUND);
  126. #endif
  127.  
  128. void persistent_default_layer_set(uint16_t default_layer) {
  129. eeconfig_update_default_layer(default_layer);
  130. default_layer_set(default_layer);
  131. }
  132.  
  133. bool process_record_user(uint16_t keycode, keyrecord_t *record) {
  134. switch (keycode) {
  135. case QWERTY:
  136. if (record->event.pressed) {
  137. #ifdef AUDIO_ENABLE
  138. PLAY_NOTE_ARRAY(tone_qwerty, false, 0);
  139. #endif
  140. persistent_default_layer_set(1UL<<_QWERTY);
  141. }
  142. return false;
  143. break;
  144. case LOWER:
  145. if (record->event.pressed) {
  146. layer_on(_LOWER);
  147. update_tri_layer(_LOWER, _RAISE, _ADJUST);
  148. } else {
  149. layer_off(_LOWER);
  150. update_tri_layer(_LOWER, _RAISE, _ADJUST);
  151. }
  152. return false;
  153. break;
  154. case RAISE:
  155. if (record->event.pressed) {
  156. layer_on(_RAISE);
  157. update_tri_layer(_LOWER, _RAISE, _ADJUST);
  158. } else {
  159. layer_off(_RAISE);
  160. update_tri_layer(_LOWER, _RAISE, _ADJUST);
  161. }
  162. return false;
  163. break;
  164. case ADJUST:
  165. if (record->event.pressed) {
  166. layer_on(_ADJUST);
  167. } else {
  168. layer_off(_ADJUST);
  169. }
  170. return false;
  171. break;
  172. }
  173. return true;
  174. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement