Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.
Это архивный репозиторий. Вы можете его клонировать или просматривать файлы, но не вносить изменения или открывать задачи/запросы на слияние.

10 лет назад
10 лет назад
10 лет назад
10 лет назад
10 лет назад
10 лет назад
10 лет назад
10 лет назад
10 лет назад
10 лет назад
10 лет назад
10 лет назад
10 лет назад
10 лет назад
10 лет назад
10 лет назад
10 лет назад
10 лет назад
10 лет назад
10 лет назад
10 лет назад
10 лет назад
10 лет назад
10 лет назад
10 лет назад
10 лет назад
10 лет назад
10 лет назад
10 лет назад
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. #include "keymap_common.h"
  2. /* Default layout */
  3. #ifdef KEYMAP_SECTION_ENABLE
  4. const uint8_t keymaps[KEYMAPS_COUNT][MATRIX_ROWS][MATRIX_COLS] __attribute__ ((section (".keymap.keymaps"))) = {
  5. #else
  6. const uint8_t keymaps[][MATRIX_ROWS][MATRIX_COLS] PROGMEM = {
  7. #endif
  8. /* Keymap 0: Default Layer
  9. * ,---------------------------------------------------------------.
  10. * |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backsp | `|
  11. * |---------------------------------------------------------------|
  12. * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \|Del|
  13. * |---------------------------------------------------------------|
  14. * |Caps | A| S| D| F| G| H| J| K| L| ;| '|Return |PgU|
  15. * |---------------------------------------------------------------|
  16. * |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift |Up |PgD|
  17. * |---------------------------------------------------------------|
  18. * |Ctrl |Gui |Alt | Space |Alt |Ctrl |Lef|Dow|Rig|
  19. * `---------------------------------------------------------------'
  20. * | Fn0 |
  21. * `----------------------'
  22. */
  23. KEYMAP(
  24. ESC, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, BSPC,GRV, \
  25. TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC,RBRC,BSLS,DEL, \
  26. CAPS,A, S, D, F, G, H, J, K, L, SCLN,QUOT, ENT, PGUP, \
  27. LSFT,Z, X, C, V, B, N, M, COMM,DOT, SLSH, RSFT,UP, PGDN, \
  28. LCTL,LGUI,LALT, SPC, RALT,RCTL,LEFT,DOWN,RGHT, \
  29. FN0 ),
  30. /* Keymap 1: Fn Layer
  31. * ,---------------------------------------------------------------.
  32. * |Mut| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12| | |
  33. * |---------------------------------------------------------------|
  34. * | | |Up | | | | | | | |Psc|Slk|Pau| Ins| |
  35. * |---------------------------------------------------------------|
  36. * | |Lef|Dow|Rig| | | | | | | | |Fn1 |Hom|
  37. * |---------------------------------------------------------------|
  38. * | | | | | | | | | | | | |VoU|End|
  39. * |---------------------------------------------------------------|
  40. * | | | | | | |Fn2|VoD|Fn3|
  41. * `---------------------------------------------------------------'
  42. * | |
  43. * `----------------------'
  44. */
  45. KEYMAP(
  46. MUTE,F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, TRNS,TRNS, \
  47. TRNS,TRNS,UP, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,PSCR,SLCK,PAUS,INS, TRNS, \
  48. TRNS,LEFT,DOWN,RGHT,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, FN1, HOME, \
  49. TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, TRNS,VOLU,END, \
  50. TRNS,TRNS,TRNS, TRNS, TRNS,TRNS,FN2, VOLD,FN3, \
  51. TRNS ),
  52. };
  53. /*
  54. * Fn action definition
  55. */
  56. #ifdef KEYMAP_SECTION_ENABLE
  57. const uint16_t fn_actions[FN_ACTIONS_COUNT] __attribute__ ((section (".keymap.fn_actions"))) = {
  58. #else
  59. const uint16_t fn_actions[] PROGMEM = {
  60. #endif
  61. /* Default layout */
  62. [0] = ACTION_LAYER_MOMENTARY(1),
  63. [1] = ACTION_BACKLIGHT_TOGGLE(),
  64. [2] = ACTION_BACKLIGHT_DECREASE(),
  65. [3] = ACTION_BACKLIGHT_INCREASE()
  66. };
  67. #ifdef KEYMAP_IN_EEPROM_ENABLE
  68. uint16_t keys_count(void) {
  69. return sizeof(keymaps) / sizeof(keymaps[0]) * MATRIX_ROWS * MATRIX_COLS;
  70. }
  71. uint16_t fn_actions_count(void) {
  72. return sizeof(fn_actions) / sizeof(fn_actions[0]);
  73. }
  74. #endif
  75. enum function_id {
  76. TRICKY_ESC = 0,
  77. };
  78. #define MODS_SHIFT_MASK (MOD_BIT(KC_LSHIFT)|MOD_BIT(KC_RSHIFT))
  79. void action_function(keyrecord_t *record, uint8_t id, uint8_t opt)
  80. {
  81. static uint8_t tricky_esc_registered;
  82. switch (id) {
  83. case TRICKY_ESC:
  84. if (record->event.pressed) {
  85. if (get_mods() & MODS_SHIFT_MASK) {
  86. tricky_esc_registered = KC_GRV;
  87. }
  88. else {
  89. tricky_esc_registered = KC_ESC;
  90. }
  91. register_code(tricky_esc_registered);
  92. send_keyboard_report();
  93. }
  94. else {
  95. unregister_code(tricky_esc_registered);
  96. send_keyboard_report();
  97. }
  98. break;
  99. }
  100. }