|
66 | 66 | )
|
67 | 67 | # fmt: on
|
68 | 68 |
|
| 69 | +KEY_NAME = ( |
| 70 | + 'ESC', '1', '2', '3', '4', '5', '6', '7', '8', '9', '0', '-', '=', 'BACKSPACE', |
| 71 | + 'TAB', 'Q', 'W', 'E', 'R', 'T', 'Y', 'U', 'I', 'O', 'P', '[', ']', '|', |
| 72 | + 'CAPS', 'A', 'S', 'D', 'F', 'G', 'H', 'J', 'K', 'L', ';', '"', 'ENTER', |
| 73 | + 'LSHIFT','Z', 'X', 'C', 'V', 'B', 'N', 'M', ',', '.', '/', 'RSHIFT', |
| 74 | + 'LCTRL', 'LGUI', 'LALT', 'SPACE', 'RALT', 'MENU', 'FN', 'RCTRL' |
| 75 | +) |
| 76 | + |
| 77 | +def get_name(key): |
| 78 | + key = COORDS[key] |
| 79 | + return KEY_NAME[key] |
69 | 80 |
|
70 | 81 | @micropython.asm_thumb
|
71 | 82 | def mem(r0):
|
@@ -266,20 +277,44 @@ def is_tapping_key(self, key):
|
266 | 277 | # --+-------+-------+-------+------> t
|
267 | 278 | # | dt1 |
|
268 | 279 | # dt1 < tap_delay
|
| 280 | + new_key &= 0x7F |
| 281 | + new_key_name = get_name(new_key) |
| 282 | + key_name = get_name(key) |
| 283 | + print('Tap - {} \\ {} \\ {} /'.format(new_key_name, key_name, new_key_name)) |
| 284 | + dt0 = matrix.get_keydown_time(key) - matrix.get_keydown_time(new_key) |
| 285 | + dt1 = matrix.get_keyup_time(new_key) - matrix.get_keydown_time(key) |
| 286 | + print(' dt0 = {}, dt1 = {}'.format(dt0, dt1)) |
269 | 287 | return True
|
270 | 288 |
|
271 | 289 | if n == 1:
|
272 | 290 | n = matrix.wait(
|
273 | 291 | self.fast_type_thresh
|
274 | 292 | - matrix.ms(matrix.time() - matrix.get_keydown_time(new_key))
|
275 | 293 | )
|
276 |
| - if n >= 2 and target == matrix.view(1): |
277 |
| - # Fast Typing - B is a tap-key |
278 |
| - # B↓ C↓ B↑ C↑ |
279 |
| - # --+-------+-------+-------+------> t |
280 |
| - # | dt1 | dt2 | |
281 |
| - # dt1 < tap_delay && dt2 < fast_type_thresh |
282 |
| - return True |
| 294 | + if n >= 2: |
| 295 | + if target == matrix.view(1): |
| 296 | + # Fast Typing - B is a tap-key |
| 297 | + # B↓ C↓ B↑ C↑ |
| 298 | + # --+-------+-------+-------+------> t |
| 299 | + # | dt1 | dt2 | |
| 300 | + # dt1 < tap_delay && dt2 < fast_type_thresh |
| 301 | + new_key = matrix.view(0) & 0x7F |
| 302 | + new_key_name = get_name(new_key) |
| 303 | + key_name = get_name(key) |
| 304 | + self.log('Tap - {} \\ {} \\ {} /'.format(key_name, new_key_name, key_name)) |
| 305 | + dt1 = matrix.get_keydown_time(new_key) - matrix.get_keydown_time(key) |
| 306 | + dt2 = matrix.get_keyup_time(key) - matrix.get_keydown_time(new_key) |
| 307 | + self.log(' dt1 = {}, dt2 = {}'.format(dt1, dt2)) |
| 308 | + return True |
| 309 | + |
| 310 | + new_key = matrix.view(0) & 0x7F |
| 311 | + if new_key == (matrix.view(1) & 0x7F): |
| 312 | + new_key_name = get_name(new_key) |
| 313 | + key_name = get_name(key) |
| 314 | + self.log('Hold - {} \\ {} \\ {} /'.format(key_name, new_key_name, new_key_name)) |
| 315 | + dt1 = matrix.get_keydown_time(new_key) - matrix.get_keydown_time(key) |
| 316 | + dt2 = matrix.get_keyup_time(new_key) - matrix.get_keydown_time(new_key) |
| 317 | + self.log(' dt1 = {}, dt2 = {}'.format(dt1, dt2)) |
283 | 318 |
|
284 | 319 | return False
|
285 | 320 |
|
@@ -447,7 +482,7 @@ def run(self):
|
447 | 482 | self.press(action_code)
|
448 | 483 | if self.verbose:
|
449 | 484 | dt = ms(matrix.time() - matrix.get_keydown_time(key))
|
450 |
| - log("{} \\ {} latency {}".format(key, hex(action_code), dt)) |
| 485 | + log("{} {} \\ {} latency {}".format(key, get_name(key), hex(action_code), dt)) |
451 | 486 | else:
|
452 | 487 | kind = action_code >> 12
|
453 | 488 | if kind < ACT_MODS_TAP:
|
@@ -571,4 +606,4 @@ def run(self):
|
571 | 606 |
|
572 | 607 | if self.verbose:
|
573 | 608 | dt = ms(matrix.time() - matrix.get_keyup_time(key))
|
574 |
| - log("{} / {} latency {}".format(key, hex(action_code), dt)) |
| 609 | + log("{} {} / {} latency {}".format(key, get_name(key), hex(action_code), dt)) |
0 commit comments