logo

qmk_firmware

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

keymap.c (8210B)


  1. /* Copyright 2020 DmNosachev
  2. *
  3. * This program is free software: you can redistribute it and/or modify
  4. * it under the terms of the GNU General Public License as published by
  5. * the Free Software Foundation, either version 2 of the License, or
  6. * (at your option) any later version.
  7. *
  8. * This program is distributed in the hope that it will be useful,
  9. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  10. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  11. * GNU General Public License for more details.
  12. *
  13. * You should have received a copy of the GNU General Public License
  14. * along with this program. If not, see <http://www.gnu.org/licenses/>.
  15. */
  16. #include QMK_KEYBOARD_H
  17. #include "debug.h"
  18. #include "version.h"
  19. enum custom_keycodes {
  20. VRSN = SAFE_RANGE,
  21. MC1
  22. };
  23. enum unicode_names {
  24. USCT,
  25. ULSB,
  26. URSB,
  27. USCO,
  28. UAPO,
  29. UCOM,
  30. UDOT,
  31. USLS,
  32. ULCB,
  33. URCB,
  34. UCLN,
  35. UQOT,
  36. ULTH,
  37. UGTH,
  38. UQUE,
  39. UGRV,
  40. UTLD,
  41. UAT,
  42. UHSH,
  43. UDLR,
  44. UPCT,
  45. UCFX,
  46. UAMP,
  47. UAST
  48. };
  49. const uint32_t unicode_map[] PROGMEM = {
  50. [USCT] = 0x00A7, // §
  51. [ULSB] = 0x005B, // [
  52. [URSB] = 0x005D, // ]
  53. [USCO] = 0x003B, // ;
  54. [UAPO] = 0x0027, // '
  55. [UCOM] = 0x002C, // ,
  56. [UDOT] = 0x002E, // .
  57. [USLS] = 0x002F, // slash
  58. [ULCB] = 0x007B, // {
  59. [URCB] = 0x007D, // }
  60. [UCLN] = 0x003A, // :
  61. [UQOT] = 0x0022, // "
  62. [ULTH] = 0x003C, // <
  63. [UGTH] = 0x003E, // >
  64. [UQUE] = 0x003F, // ?
  65. [UGRV] = 0x0060, // `
  66. [UTLD] = 0x007E, // ~
  67. [UAT] = 0x0040, // at
  68. [UHSH] = 0x0023, // hash
  69. [UDLR] = 0x0024, // dollar
  70. [UPCT] = 0x0025, // percent
  71. [UCFX] = 0x005E, // ^
  72. [UAMP] = 0x0026, // &
  73. [UAST] = 0x002A, // asterisk
  74. };
  75. const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
  76. /*
  77. * ,-------------------------------------------------------------------------------------------------------------------------------------.
  78. * | gui | | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | Vol-| Vol+| Mute|Pause| |
  79. * |-------------------------------------------------------------------------------------------------------------------------------------|
  80. * | esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | ~ |backspc| | PgUp| Home| |NumLk| / | * | - |
  81. * |-------------------------------------------------------------------------------------------------------------------------------------|
  82. * | tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] | enter | PgDn| End| | 7 | 8 | 9 | += |
  83. * |-------------------------------------------------------------------------------- |--------------------------------------|
  84. * | ctrl | A | S | D | F | G | H | J | K | L | ;: | '" | |\ | | Del |NumLk| | 4 | 5 | 6 | + |
  85. * |-------------------------------------------------------------------------------------------------------------------------------------|
  86. * | shift | Z | X | C | V | B | N | M | , | . | /? | [] | shift | up | down| | 1 | 2 | 3 |enter|
  87. * |-------------------------------------------------------------------------------------------------------------------------------| |
  88. * | | caps | alt | Space | Fn | | left|right| | 0 | . | |
  89. * `-------------------------------------------------------------------------------------------------------------------------------------'
  90. */
  91. [0] = LAYOUT(
  92. KC_LGUI, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_VOLD, KC_VOLU, KC_MUTE, KC_PSCR,
  93. KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_GRV, KC_BSPC, KC_PGUP, KC_HOME, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS,
  94. KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_ENT, KC_PGDN, KC_END, KC_P7, KC_P8, KC_P9, KC_EQL,
  95. KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_BSLS, KC_DEL, KC_NUM, KC_P4, KC_P5, KC_P6, KC_PPLS,
  96. KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, MC1, KC_RSFT, KC_UP, KC_DOWN, KC_P1, KC_P2, KC_P3, KC_PENT,
  97. KC_CAPS, KC_LALT, KC_SPC, MO(1), KC_LEFT, KC_RGHT, KC_P0, KC_PDOT
  98. ),
  99. /*
  100. * ,-------------------------------------------------------------------------------------------------------------------------------------.
  101. * | VRSN| |Sleep| |Umode| | | | | | | | | | | | | | |
  102. * |-------------------------------------------------------------------------------------------------------------------------------------|
  103. * | | | @ | # | $ | § | ^ | & | * | | | | | | | | | | |Calc | | | |
  104. * |-------------------------------------------------------------------------------------------------------------------------------------|
  105. * | | mb1 | m↑ | mb2 | mb3 | | | |SysRq|ScrLk|Pause| | | | | | | | | | |
  106. * |-------------------------------------------------------------------------------- |--------------------------------------|
  107. * | | m← | m↓ | m→ | mb5 | | | | | | | | | | | | | | | | |
  108. * |-------------------------------------------------------------------------------------------------------------------------------------|
  109. * | | | | mb4 | | | | | | | | | | | | | | | | |
  110. * |-------------------------------------------------------------------------------------------------------------------------------| |
  111. * | | | | | | | | | | | | |
  112. * `-------------------------------------------------------------------------------------------------------------------------------------'
  113. */
  114. [1] = LAYOUT(
  115. VRSN, KC_SLEP, _______, UC_NEXT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
  116. _______, _______, UM(UAT), UM(UHSH), UM(UDLR), UM(USCT), UM(UCFX), UM(UAMP), UM(UAST), _______, _______, _______, _______, _______, _______, _______, _______, KC_CALC, _______, _______, _______,
  117. _______, KC_BTN1, KC_MS_U, KC_BTN2, KC_BTN3, _______, _______, _______, KC_SYRQ, KC_SCRL, KC_PAUS, UP(ULSB, ULCB), UP(URSB, URCB), _______, _______, _______, _______, _______, _______, _______,
  118. _______, KC_MS_L, KC_MS_D, KC_MS_R, KC_BTN5, _______, _______, _______, _______, _______, UP(USCO, UCLN), UP(UAPO, UQOT), _______, _______, _______, _______, _______, _______, _______,
  119. _______, _______, _______, KC_BTN4, _______, _______, _______, _______, UP(UCOM, ULTH), UP(UDOT, UGTH), UP(USLS, UQUE), KC_APP, _______, _______, _______, _______, _______, _______, _______,
  120. _______, _______, _______, _______, _______, _______, _______, _______
  121. )
  122. };
  123. bool process_record_user(uint16_t keycode, keyrecord_t *record) {
  124. switch (keycode) {
  125. case VRSN:
  126. if (record->event.pressed) {
  127. SEND_STRING (QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION);
  128. }
  129. return false;
  130. break;
  131. case MC1:
  132. if (record->event.pressed) {
  133. send_unicode_string("[]");
  134. }
  135. return false;
  136. break;
  137. }
  138. return true;
  139. }