logo

qmk_firmware

custom branch of QMK firmware git clone https://anongit.hacktivis.me/git/qmk_firmware.git

keymap.c (9218B)


  1. // this is the style you want to emulate.
  2. // This is the canonical layout file for the Quantum project. If you want to add another keyboard,
  3. #include QMK_KEYBOARD_H
  4. // Each layer gets a name for readability, which is then used in the keymap matrix below.
  5. // The underscores don't mean anything - you can have a layer called STUFF or any other name.
  6. // Layer names don't all need to be of the same length, obviously, and you can also skip them
  7. // entirely and just use numbers.
  8. enum chimera_ortho_layers {
  9. _QWERTY,
  10. _CAPS,
  11. _NUMPAD,
  12. _SYMBOLS,
  13. _MACROS,
  14. _NAV
  15. };
  16. #define KC_NMPD TG(_NUMPAD)
  17. #define KC_SYMB TG(_SYMBOLS)
  18. #define KC_SPFN LT(_NAV,KC_EQL)
  19. #define KC_SCTL MT(MOD_LCTL, KC_LBRC)
  20. #define KC_SCTR MT(MOD_LCTL, KC_RBRC)
  21. #define KC_SPLT MT(MOD_LALT, KC_MINS)
  22. #define KC_SPRT MT(MOD_LALT, KC_1)
  23. #define KC_GBRC MT(MOD_RGUI, KC_8)
  24. #define KC_GQOT MT(MOD_LGUI, KC_QUOT)
  25. #define KC_MESC LT(_MACROS, KC_ESC)
  26. #define KC_CAD LALT(LCTL(KC_DEL))
  27. enum custom_keycodes {
  28. KC_INCL = SAFE_RANGE,
  29. KC_PULL,
  30. KC_PUSH,
  31. KC_SCAP,
  32. KC_SCOF
  33. };
  34. const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
  35. [_QWERTY] = LAYOUT(
  36. //,-------+-------+-------+-------+-------+-------+-------. ,-------+-------+-------+-------+-------+-------+-------.
  37. KC_MESC, KC_Q , KC_W , KC_E , KC_R , KC_T ,KC_SCTL, KC_SCTR, KC_Y , KC_U , KC_I , KC_O , KC_P ,KC_QUOT,
  38. //|-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------+-------|
  39. KC_TAB , KC_A , KC_S , KC_D , KC_F , KC_G ,KC_SPLT, KC_SPRT, KC_H , KC_J , KC_K , KC_L ,KC_SCLN,KC_ENT ,
  40. //|-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------+-------|
  41. SC_LSPO, KC_Z , KC_X , KC_C , KC_V , KC_B ,KC_SPFN, KC_GBRC, KC_N , KC_M ,KC_COMM,KC_DOT ,KC_SLSH,SC_RSPC,
  42. //|-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------+-------|
  43. KC_NMPD,KC_BSPC, KC_SPC ,KC_SYMB
  44. // \------------------------------+-------+-------+------/ \------+-------+-------+------------------------------/
  45. ),
  46. [_CAPS] = LAYOUT(
  47. //,-------+-------+-------+-------+-------+-------+-------. ,-------+-------+-------+-------+-------+-------+-------.
  48. _______,_______,_______,_______,_______,_______,_______, _______,_______,_______,_______,_______,_______,_______,
  49. //|-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------+-------|
  50. _______,_______,_______,_______,_______,_______,KC_UNDS, _______,_______,_______,_______,_______,KC_COLN,_______,
  51. //|-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------+-------|
  52. KC_SCOF,_______,_______,_______,_______,_______,_______, _______,_______,_______,_______,_______,_______,KC_SCOF,
  53. //|-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------+-------|
  54. _______,_______, _______,_______
  55. // \------------------------------+-------+-------+------/ \------+-------+-------+------------------------------/
  56. ),
  57. [_NUMPAD] = LAYOUT(
  58. //,-------+-------+-------+-------+-------+-------+-------. ,-------+-------+-------+-------+-------+-------+-------.
  59. _______,_______,KC_COLN,_______,_______,_______,_______, _______,_______, KC_7 , KC_8 , KC_9 ,KC_ASTR,KC_MINS,
  60. //|-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------+-------|
  61. _______,_______,KC_DOT ,_______,_______,_______,_______, _______,_______, KC_4 , KC_5 , KC_6 ,KC_PLUS,_______,
  62. //|-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------+-------|
  63. _______,_______,_______,_______,_______,_______,_______, _______,_______, KC_1 , KC_2 , KC_3 ,KC_SLSH,_______,
  64. //|-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------+-------|
  65. _______,_______, _______, KC_0
  66. // \------------------------------+-------+-------+------/ \------+-------+-------+------------------------------/
  67. ),
  68. [_SYMBOLS] = LAYOUT(
  69. //,-------+-------+-------+-------+-------+-------+-------. ,-------+-------+-------+-------+-------+-------+-------.
  70. _______,KC_EXLM, KC_AT ,KC_HASH,KC_DLR ,KC_PERC,_______, _______,KC_CIRC,KC_AMPR,KC_ASTR,KC_LPRN,KC_RPRN,KC_BSLS,
  71. //|-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------+-------|
  72. _______, KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 ,_______, _______,KC_TILD,KC_COLN,KC_UNDS,KC_LCBR,KC_RCBR,_______,
  73. //|-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------+-------|
  74. _______, KC_F6 , KC_F7 , KC_F8 , KC_F9 ,KC_F10 ,_______, _______,KC_GRV ,KC_SCLN,KC_MINS,KC_LBRC,KC_RBRC,_______,
  75. //|-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------+-------|
  76. KC_PIPE,_______, _______,_______
  77. // \------------------------------+-------+-------+------/ \------+-------+-------+------------------------------/
  78. ),
  79. [_NAV] = LAYOUT(
  80. //,-------+-------+-------+-------+-------+-------+-------. ,-------+-------+-------+-------+-------+-------+-------.
  81. _______,_______,_______,_______,_______,_______,_______, _______,_______,_______, KC_UP ,_______,KC_PSCR,_______,
  82. //|-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------+-------|
  83. _______,_______,_______,_______,_______,_______,_______, _______,_______,KC_LEFT,KC_DOWN,KC_RGHT,_______,_______,
  84. //|-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------+-------|
  85. _______,_______,_______,_______,_______,_______,_______, _______,_______,KC_PGUP,KC_PGDN,_______,_______,_______,
  86. //|-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------+-------|
  87. _______,KC_DEL , _______,_______
  88. // \------------------------------+-------+-------+------/ \------+-------+-------+------------------------------/
  89. ),
  90. [_MACROS] = LAYOUT(
  91. //,-------+-------+-------+-------+-------+-------+-------. ,-------+-------+-------+-------+-------+-------+-------.
  92. _______,_______,_______,_______,_______,_______,_______, _______,_______,_______,KC_INCL,_______,_______,_______,
  93. //|-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------+-------|
  94. _______,_______,_______,KC_CAD ,_______,_______,_______, _______,_______,_______,_______,_______,_______,_______,
  95. //|-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------+-------|
  96. KC_SCAP,_______,_______,_______,_______,_______,_______, _______,_______,_______,KC_PULL,KC_PUSH,_______,KC_SCAP,
  97. //|-------+-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------+-------|
  98. _______,_______, _______,_______
  99. // \------------------------------+-------+-------+------/ \------+-------+-------+------------------------------/
  100. )
  101. };
  102. bool process_record_user(uint16_t keycode, keyrecord_t *record) {
  103. switch(keycode) {
  104. /* include some kind of library or header */
  105. case KC_INCL:
  106. if (record->event.pressed) {
  107. SEND_STRING("#include <>" SS_TAP(X_LEFT));
  108. }
  109. return false;
  110. case KC_PULL:
  111. if (record->event.pressed) {
  112. SEND_STRING("git pull" SS_TAP(X_ENTER));
  113. }
  114. return false;
  115. case KC_PUSH:
  116. if (record->event.pressed){
  117. SEND_STRING("git push" SS_TAP(X_ENTER));
  118. }
  119. return false;
  120. case KC_SCAP:
  121. if (record->event.pressed){
  122. layer_on(_CAPS);
  123. register_code(KC_CAPS_LOCK);
  124. unregister_code(KC_CAPS_LOCK);
  125. }
  126. return false;
  127. case KC_SCOF:
  128. if (record->event.pressed){
  129. layer_off(_CAPS);
  130. register_code(KC_CAPS_LOCK);
  131. unregister_code(KC_CAPS_LOCK);
  132. }
  133. return false;
  134. }
  135. return true;
  136. };
  137. void matrix_scan_user(void) {
  138. uint8_t layer = get_highest_layer(layer_state);
  139. switch (layer) {
  140. case _QWERTY:
  141. set_led_green;
  142. break;
  143. case _CAPS:
  144. set_led_white;
  145. break;
  146. case _NUMPAD:
  147. set_led_blue;
  148. break;
  149. case _SYMBOLS:
  150. set_led_red;
  151. break;
  152. case _NAV:
  153. set_led_magenta;
  154. break;
  155. case _MACROS:
  156. set_led_cyan;
  157. break;
  158. default:
  159. set_led_green;
  160. break;
  161. }
  162. };