keymap.c 7.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159
  1. #include QMK_KEYBOARD_H
  2. enum layer_names {
  3. _QWERTY,
  4. _LOWER,
  5. _RAISE,
  6. _ADJUST,
  7. };
  8. enum custom_keycodes {
  9. LOWER = SAFE_RANGE,
  10. RAISE,
  11. ADJUST,
  12. GUSR,
  13. HGRP,
  14. CHUS,
  15. };
  16. #define KC_CAPW LGUI(LSFT(KC_3)) // Capture whole screen
  17. #define KC_CPYW LGUI(LSFT(LCTL(KC_3))) // Copy whole screen
  18. #define KC_CAPP LGUI(LSFT(KC_4)) // Capture portion of screen
  19. #define KC_CPYP LGUI(LSFT(LCTL(KC_4))) // Copy portion of screen
  20. #define KC_ESCC MT(MOD_LCTL, KC_ESC)
  21. #define KC_LOWR LOWER
  22. #define KC_RASE RAISE
  23. #define KC_RST RESET
  24. #define KC_BL_S BL_STEP
  25. // Left and right shift as mot-tap square braces
  26. #define KC_LSBR MT(MOD_LSFT, KC_LBRC)
  27. #define KC_RSBR MT(MOD_RSFT, KC_RBRC)
  28. // mod-tap shift/minus
  29. #define KC_SMIN MT(MOD_LSFT, KC_MINS)
  30. // Tap-toggle layers
  31. #define KC_TT_L TT(1)
  32. #define KC_TT_R TT(2)
  33. #define KC_RGBM RGB_MOD
  34. #define KC_RGBT RGB_TOG
  35. #define KC_SLOK LGUI(LCTL(KC_Q)) // mojave lock screen
  36. #define KC_GUSR GUSR // "gam info user" macro
  37. #define KC_HGRP HGRP // "history | grep" macro
  38. #define KC_CHUS CHUS // "thisisunsafe" chrome browser macro
  39. const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
  40. [_QWERTY] = LAYOUT(
  41. //,-------+-------+-------+-------+-------+-------. ,-------+-------+-------+-------+-------+-------.
  42. KC_GRV , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 ,KC_BSPC,
  43. //|-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------|
  44. KC_TAB , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I , KC_O , KC_P ,KC_BSLS,
  45. //|-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------|
  46. KC_ESC , KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L ,KC_SCLN,KC_QUOT,
  47. //|-------+-------+-------+-------+-------+-------+-------. ,-------|-------+-------+-------+-------+-------+-------|
  48. KC_LSBR, KC_Z , KC_X , KC_C , KC_V , KC_B ,KC_TT_L, KC_TT_R, KC_N , KC_M ,KC_COMM,KC_DOT ,KC_SLSH,KC_RSBR,
  49. //`-------+-------+-------+---+---+-------+-------+-------/ \-------+-------+-------+---+---+-------+-------+-------'
  50. KC_LCTL,KC_SMIN,KC_LGUI, KC_ENT ,KC_SPC ,KC_LALT
  51. // `-------+-------+-------' `-------+-------+-------'
  52. ),
  53. [_LOWER] = LAYOUT(
  54. //,-------+-------+-------+-------+-------+-------. ,-------+-------+-------+-------+-------+-------.
  55. KC_TILD,KC_EXLM, KC_AT ,KC_HASH,KC_DLR ,KC_PERC, KC_CIRC,KC_AMPR,KC_ASTR,KC_MINS,KC_EQL ,_______,
  56. //|-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------|
  57. _______,KC_SLOK,_______, KC_UP ,_______,KC_RGBT, KC_P7 , KC_P8 , KC_P9 , KC_E , KC_F ,KC_LPRN,
  58. //|-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------|
  59. KC_DEL ,_______,KC_LEFT,KC_DOWN,KC_RGHT,KC_GUSR, KC_P4 , KC_P5 , KC_P6 , KC_C , KC_D ,KC_RPRN,
  60. //|-------+-------+-------+-------+-------+-------+-------. ,-------|-------+-------+-------+-------+-------+-------|
  61. KC_BL_S,_______,_______,_______,KC_HGRP,KC_CHUS,_______, _______, KC_P1 , KC_P2 , KC_P3 , KC_A , KC_B ,_______,
  62. //`-------+-------+-------+---+---+-------+-------+-------/ \-------+-------+-------+---+---+-------+-------+-------'
  63. _______,_______,_______, KC_DOT , KC_P0 ,KC_COLN
  64. // `-------+-------+-------' `-------+-------+-------'
  65. ),
  66. [_RAISE] = LAYOUT(
  67. //,-------+-------+-------+-------+-------+-------. ,-------+-------+-------+-------+-------+-------.
  68. KC_F12 , KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , KC_F7 , KC_F8 , KC_F9 ,KC_F10 ,KC_F11 ,
  69. //|-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------|
  70. _______,KC_RGBT,KC_RGBM,_______,_______,_______, _______,KC_AMPR,KC_MUTE,_______,_______,_______,
  71. //|-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------|
  72. _______,KC_CAPW,KC_CPYW,KC_CAPP,KC_CPYP,KC_PGUP, KC_EQL ,KC_HOME,KC_VOLU,KC_MRWD,KC_MFFD,_______,
  73. //|-------+-------+-------+-------+-------+-------+-------. ,-------|-------+-------+-------+-------+-------+-------|
  74. _______,_______,_______,_______,_______,KC_PGDN,_______, _______,KC_PLUS,KC_END ,KC_VOLD,KC_MPLY,KC_MSTP,_______,
  75. //`-------+-------+-------+---+---+-------+-------+-------/ \-------+-------+-------+---+---+-------+-------+-------'
  76. _______,_______,_______, _______,_______,_______
  77. // `-------+-------+-------' `-------+-------+-------'
  78. ),
  79. [_ADJUST] = LAYOUT(
  80. //,--------+--------+--------+--------+--------+--------. ,--------+--------+--------+--------+--------+--------.
  81. _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
  82. //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
  83. RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, _______, _______, _______, _______, _______, _______, _______,
  84. //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
  85. RESET , DEBUG , RGB_HUD, RGB_SAD, RGB_VAD, _______, _______, _______, _______, _______, _______, _______,
  86. //|--------+--------+--------+--------+--------+--------+--------. ,--------|--------+--------+--------+--------+--------+--------|
  87. _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
  88. //`--------+--------+--------+----+---+--------+--------+--------/ \--------+--------+--------+---+----+--------+--------+--------'
  89. _______, _______, _______, _______, _______, _______
  90. // `--------+--------+--------' `--------+--------+--------'
  91. )
  92. };
  93. #ifdef AUDIO_ENABLE
  94. float tone_qwerty[][2] = SONG(QWERTY_SOUND);
  95. #endif
  96. bool process_record_user(uint16_t keycode, keyrecord_t *record) {
  97. switch (keycode) {
  98. case LOWER:
  99. if (record->event.pressed) {
  100. layer_on(_LOWER);
  101. update_tri_layer(_LOWER, _RAISE, _ADJUST);
  102. } else {
  103. layer_off(_LOWER);
  104. update_tri_layer(_LOWER, _RAISE, _ADJUST);
  105. }
  106. return false;
  107. break;
  108. case RAISE:
  109. if (record->event.pressed) {
  110. layer_on(_RAISE);
  111. update_tri_layer(_LOWER, _RAISE, _ADJUST);
  112. } else {
  113. layer_off(_RAISE);
  114. update_tri_layer(_LOWER, _RAISE, _ADJUST);
  115. }
  116. return false;
  117. break;
  118. case ADJUST:
  119. if (record->event.pressed) {
  120. layer_on(_ADJUST);
  121. } else {
  122. layer_off(_ADJUST);
  123. }
  124. return false;
  125. break;
  126. case GUSR:
  127. if (record->event.pressed) {
  128. SEND_STRING("gam info user ");
  129. }
  130. break;
  131. case HGRP:
  132. if (record->event.pressed) {
  133. SEND_STRING("history|grep ");
  134. }
  135. break;
  136. case CHUS:
  137. if (record->event.pressed) {
  138. SEND_STRING("thisisunsafe");
  139. }
  140. break;
  141. }
  142. return true;
  143. }