You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

154 lines
3.8 KiB

  1. #include "ajp10304.h"
  2. bool process_record_user(uint16_t keycode, keyrecord_t *record) {
  3. switch (keycode) {
  4. case QWERTY:
  5. if (record->event.pressed) {
  6. set_single_persistent_default_layer(_QWERTY);
  7. }
  8. return false;
  9. case LOWER:
  10. if (record->event.pressed) {
  11. layer_on(_LOWER);
  12. update_tri_layer(_LOWER, _RAISE, _ADJUST);
  13. } else {
  14. layer_off(_LOWER);
  15. update_tri_layer(_LOWER, _RAISE, _ADJUST);
  16. }
  17. return false;
  18. case RAISE:
  19. if (record->event.pressed) {
  20. layer_on(_RAISE);
  21. update_tri_layer(_LOWER, _RAISE, _ADJUST);
  22. } else {
  23. layer_off(_RAISE);
  24. update_tri_layer(_LOWER, _RAISE, _ADJUST);
  25. }
  26. return false;
  27. case MLWR:
  28. if (record->event.pressed) {
  29. layer_on(_LOWER);
  30. layer_on(_MLWR);
  31. update_tri_layer(_LOWER, _RAISE, _ADJUST);
  32. } else {
  33. layer_off(_LOWER);
  34. layer_off(_MLWR);
  35. update_tri_layer(_LOWER, _RAISE, _ADJUST);
  36. }
  37. return false;
  38. case MRSE:
  39. if (record->event.pressed) {
  40. layer_on(_RAISE);
  41. layer_on(_MRSE);
  42. update_tri_layer(_LOWER, _RAISE, _ADJUST);
  43. } else {
  44. layer_off(_RAISE);
  45. layer_off(_MRSE);
  46. update_tri_layer(_LOWER, _RAISE, _ADJUST);
  47. }
  48. return false;
  49. case MFNC:
  50. if (record->event.pressed) {
  51. layer_on(_FUNC);
  52. layer_on(_MFNC);
  53. } else {
  54. layer_off(_FUNC);
  55. layer_off(_MFNC);
  56. }
  57. return false;
  58. case MFNC2:
  59. if (record->event.pressed) {
  60. layer_on(_FUNC2);
  61. layer_on(_MFNC2);
  62. } else {
  63. layer_off(_FUNC2);
  64. layer_off(_MFNC2);
  65. }
  66. return false;
  67. case M_CUSTOM:
  68. if (record->event.pressed) {
  69. SEND_STRING("Custom text here");
  70. }
  71. break;
  72. case M_WORD_SEL:
  73. if (record->event.pressed) {
  74. register_mods(MOD_LCTL);
  75. tap_code(KC_RGHT);
  76. tap_code16(S(KC_LEFT));
  77. unregister_mods(MOD_LCTL);
  78. }
  79. break;
  80. case M_WORD_SEL_MAC:
  81. if (record->event.pressed) {
  82. register_mods(MOD_LALT);
  83. tap_code(KC_RGHT);
  84. tap_code16(S(KC_LEFT));
  85. unregister_mods(MOD_LALT);
  86. }
  87. break;
  88. case M_LINE_SEL:
  89. if (record->event.pressed) {
  90. tap_code(KC_HOME);
  91. tap_code16(S(KC_END));
  92. }
  93. break;
  94. case M_LINE_SEL_MAC:
  95. if (record->event.pressed) {
  96. tap_code16(C(KC_A));
  97. tap_code16(C(S(KC_E)));
  98. }
  99. break;
  100. case M_LINE_DEL:
  101. if (record->event.pressed) {
  102. tap_code(KC_HOME);
  103. tap_code16(S(KC_END));
  104. tap_code(KC_BSPC);
  105. }
  106. break;
  107. case M_LINE_DEL_MAC:
  108. if (record->event.pressed) {
  109. tap_code16(C(KC_A));
  110. tap_code16(C(S(KC_E)));
  111. tap_code(KC_BSPC);
  112. }
  113. break;
  114. case M_DUP:
  115. if (record->event.pressed) {
  116. tap_code16(C(KC_C));
  117. tap_code(KC_RGHT);
  118. tap_code16(C(KC_V));
  119. }
  120. break;
  121. case M_DUP_MAC:
  122. if (record->event.pressed) {
  123. tap_code16(G(KC_C));
  124. tap_code(KC_RGHT);
  125. tap_code16(G(KC_V));
  126. }
  127. break;
  128. case M_JOIN:
  129. if (record->event.pressed) {
  130. tap_code(KC_END);
  131. tap_code(KC_DEL);
  132. }
  133. break;
  134. case M_JOIN_MAC:
  135. if (record->event.pressed) {
  136. tap_code16(C(KC_E));
  137. tap_code(KC_DEL);
  138. }
  139. break;
  140. case M_MODE:
  141. if (record->event.pressed) {
  142. SEND_STRING("PC");
  143. }
  144. break;
  145. case M_MODE_MAC:
  146. if (record->event.pressed) {
  147. SEND_STRING("OSX");
  148. }
  149. break;
  150. }
  151. return true;
  152. }