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.

144 lines
5.9 KiB

  1. {
  2. "keys": [
  3. "TOP1", "TOP2", "TOP3", "TOP4", "TOP5", "TOP6", "TOP7", "TOP8", "TOP9", "TOP0",
  4. "BOT1", "BOT2", "BOT3", "BOT4", "BOT5", "BOT6", "BOT7", "BOT8", "BOT9", "BOT0"
  5. ],
  6. "parameters": {
  7. "do_not_include_QMK": true,
  8. "layout_function_name": "LAYOUT_test",
  9. "chord_timeout": 100,
  10. "dance_timeout": 200,
  11. "leader_timeout": 750,
  12. "tap_timeout": 50,
  13. "command_max_length": 5,
  14. "leader_max_length": 5,
  15. "dynamic_macro_max_length": 20,
  16. "string_max_length": 16,
  17. "long_press_multiplier": 3,
  18. "default_pseudolayer": "QWERTY"
  19. },
  20. "layers": [
  21. {
  22. "type": "auto"
  23. },
  24. {
  25. "type": "manual",
  26. "keycodes": ["KC_1", "KC_2", "KC_3", "KC_4", "KC_5", "KC_6", "KC_7", "KC_8", "KC_9", "KC_0",
  27. "KC_Q", "KC_W", "KC_E", "KC_R", "KC_T", "KC_Y", "KC_U", "KC_I", "KC_O", "KC_P"
  28. ]
  29. }
  30. ],
  31. "chord_sets": [
  32. {
  33. "name": "rows",
  34. "chords": [
  35. ["TOP1"], ["TOP2"], ["TOP3"], ["TOP4"], ["TOP5"], ["TOP6"], ["TOP7"], ["TOP8"], ["TOP9"], ["TOP0"],
  36. ["TOP1", "BOT1"], ["TOP2", "BOT2"], ["TOP3", "BOT3"], ["TOP4", "BOT4"], ["TOP5", "BOT5"], ["TOP6", "BOT6"], ["TOP7", "BOT7"], ["TOP8", "BOT8"], ["TOP9", "BOT9"], ["TOP0", "BOT0"],
  37. ["BOT1"], ["BOT2"], ["BOT3"], ["BOT4"], ["BOT5"], ["BOT6"], ["BOT7"], ["BOT8"], ["BOT9"], ["BOT0"]
  38. ]
  39. },
  40. {
  41. "name": "cols",
  42. "chords": [
  43. ["TOP1", "TOP2"], ["TOP2", "TOP3"], ["TOP3", "TOP4"], ["TOP4", "TOP5"], ["TOP5", "TOP6"], ["TOP6", "TOP7"], ["TOP7", "TOP8"], ["TOP8", "TOP9"], ["TOP9", "TOP0"],
  44. ["TOP1", "TOP2", "BOT1", "BOT2"], ["TOP2", "TOP3", "BOT2", "BOT3"], ["TOP3", "TOP4", "BOT3", "BOT4"], ["TOP4", "TOP5", "BOT4", "BOT5"], ["TOP5", "TOP6", "BOT5", "BOT6"], ["TOP6", "TOP7", "BOT6", "BOT7"], ["TOP7", "TOP8", "BOT7", "BOT8"], ["TOP8", "TOP9", "BOT8", "BOT9"], ["TOP9", "TOP0", "BOT9", "BOT0"],
  45. ["BOT1", "BOT2"], ["BOT2", "BOT3"], ["BOT3", "BOT4"], ["BOT4", "BOT5"], ["BOT5", "BOT6"], ["BOT6", "BOT7"], ["BOT7", "BOT8"], ["BOT8", "BOT9"], ["BOT9", "BOT0"]
  46. ]
  47. },
  48. {
  49. "name": "asetniop",
  50. "chords": [
  51. ["TOP1"], ["TOP2"], ["TOP3"], ["TOP4"], ["TOP7"], ["TOP8"], ["TOP9"], ["TOP0"],
  52. ["TOP1", "TOP2"], ["TOP2", "TOP3"], ["TOP3", "TOP4"], ["TOP4", "TOP7"], ["TOP7", "TOP8"], ["TOP8", "TOP9"], ["TOP9", "TOP0"],
  53. ["TOP1", "TOP3"], ["TOP2", "TOP4"], ["TOP3", "TOP7"], ["TOP4", "TOP8"], ["TOP7", "TOP9"], ["TOP8", "TOP0"],
  54. ["TOP1", "TOP4"], ["TOP2", "TOP7"], ["TOP3", "TOP8"], ["TOP4", "TOP9"], ["TOP7", "TOP0"],
  55. ["TOP1", "TOP7"], ["TOP2", "TOP8"], ["TOP3", "TOP9"], ["TOP4", "TOP0"],
  56. ["TOP1", "TOP8"], ["TOP2", "TOP9"], ["TOP3", "TOP0"],
  57. ["TOP1", "TOP9"], ["TOP2", "TOP0"],
  58. ["TOP1", "TOP0"]
  59. ]
  60. }
  61. ],
  62. "pseudolayers": [
  63. {
  64. "name": "ALWAYS_ON",
  65. "chords": [
  66. {
  67. "type": "visual",
  68. "chord": [
  69. " ", " ", " ", " ", " ", " ", " ", "X", "X", "X",
  70. " ", " ", " ", " ", " ", " ", " ", "X", "X", "X"
  71. ],
  72. "keycode": "MO(FNC, NUM)"
  73. }
  74. ]
  75. },
  76. {
  77. "name": "QWERTY",
  78. "chords": [
  79. {
  80. "type": "chord_set",
  81. "set": "rows",
  82. "keycodes": [
  83. "Q", "W", "E", "R", "T", "Y", "U", "I", "O", "P",
  84. "A", "S", "D", "F", "G", "H", "J", "K", "L", ";",
  85. "AS(Z)", "KK(X, LCTL)", "KL(C, NUM)", "KM(V, LALT)", "B", "N", "M", "COMMA", ".", "M(double_dance, KC_9, KC_0)"
  86. ]
  87. },
  88. {
  89. "type": "chord_set",
  90. "set": "cols",
  91. "keycodes": [
  92. "ESC", "", "", "", "", "", "", "", "",
  93. "", "LEAD", "", "", "CMD", "", "", "", "",
  94. "LSFT", "O(LSFT)", "", "", "", "O(NUM)", "MO(NUM)", "", "DF(NUM)"
  95. ]
  96. },
  97. {
  98. "type": "visual",
  99. "chord": [
  100. "X", "X", " ", " ", " ", " ", " ", " ", " ", " ",
  101. "X", "X", " ", " ", " ", " ", " ", " ", " ", " "
  102. ],
  103. "keycode": "LOCK"
  104. }
  105. ]
  106. },
  107. {
  108. "name": "NUM",
  109. "chords": [
  110. {
  111. "type": "chord_set",
  112. "set": "rows",
  113. "keycodes": [
  114. "1", "2", "3", "4", "5", "6", "7", "8", "9", "0",
  115. "", "", "", "", "", "", "", "", "", "",
  116. "", "KC_LEFT", "D(KC_1, KC_2, KC_3)", "", "", "", "DM_RECORD", "DM_NEXT", "DM_END", "DM_PLAY"
  117. ]
  118. },
  119. {
  120. "type": "simple",
  121. "chord": ["BOT1"],
  122. "keycode": "MK(KC_LCTL, KC_LSFT)"
  123. }
  124. ]
  125. },
  126. {
  127. "name": "FNC",
  128. "chords": []
  129. }
  130. ],
  131. "leader_sequences": [
  132. {
  133. "name": "fnc_L1",
  134. "function": "void fnc_L1(void) { key_in(KC_A); clear_keyboard(); }",
  135. "sequence": ["KC_O", "KC_P"]
  136. },
  137. {
  138. "name": "fnc_L2",
  139. "function": "void fnc_L2(void) { key_in(KC_S); clear_keyboard(); }",
  140. "sequence": ["KC_P", "KC_O"]
  141. }
  142. ],
  143. "extra_code": "void double_dance(const struct Chord* self) {\n switch (*self->state) {\n case ACTIVATED:\n *self->counter = (*self->counter + 1) % 2;\n break;\n case PRESS_FROM_ACTIVE:\n if (*self->counter == 1) {\n key_in(self->value1);\n } else {\n key_in(self->value2);\n }\n *self->state = FINISHED_FROM_ACTIVE;\n break;\n case FINISHED:\n if (*self->counter == 1) {\n tap_key(self->value1);\n } else {\n tap_key(self->value2);\n }\n *self->counter = 0;\n *self->state = IDLE;\n break;\n case RESTART:\n if (*self->counter == 1) {\n key_out(self->value1);\n } else {\n key_out(self->value2);\n }\n *self->counter = 0;\n break;\n default:\n break;\n }\n}\n",
  144. "extra_dependencies": []
  145. }