|
1 | | -export const coordmaphelperpy = `# coordmaphelper.py helper script to get your coord map - v1.0.0 |
| 1 | +export const coordmaphelperpy = `# coordmaphelper.py v1.0.1 |
| 2 | +import board |
| 3 | +import pog |
| 4 | +from kb import POGKeyboard |
2 | 5 | from kmk.keys import KC |
3 | | -from kb import KMKKeyboard as _KMKKeyboard |
4 | 6 | from kmk.modules.macros import Press, Release, Tap, Macros |
5 | | -import pog |
6 | | -class KMKKeyboard(_KMKKeyboard): |
| 7 | +
|
| 8 | +class CoordMapKeyboard(POGKeyboard): |
7 | 9 | def __init__(self): |
8 | | - super().__init__() |
9 | | - macros = Macros() |
10 | | - self.modules.append(macros) |
11 | | - print("running coord_mapping assistant") |
12 | | - print("press each key to get its coord_mapping value") |
13 | | - # *2 for split keyboards, which will typically manage twice the number of keys |
14 | | - # of one side. Having this N too large will have no impact (maybe slower boot..) |
| 10 | + super().__init__(features=['basic', 'macros']) |
| 11 | + print("Running coord_mapping assistant") |
| 12 | + print("Press each key to get its coord_mapping value") |
| 13 | +
|
| 14 | + if not hasattr(pog, 'keyCount') or pog.keyCount == 0: |
| 15 | + raise ValueError("pog.keyCount is not set or is zero") |
| 16 | +
|
15 | 17 | N = pog.keyCount * 2 |
16 | 18 | coord_mapping = list(range(N)) |
17 | | -
|
18 | 19 | layer = [] |
| 20 | + print(f"coord_mapping = {coord_mapping}") |
| 21 | + print(f"Total keys: {N}") |
19 | 22 |
|
20 | 23 | for i in range(N): |
21 | 24 | c, r = divmod(i, 100) |
22 | 25 | d, u = divmod(r, 10) |
23 | | - layer.append( |
24 | | - KC.MACRO( |
25 | | - Tap(getattr(KC, "N" + str(c))), |
26 | | - Tap(getattr(KC, "N" + str(d))), |
27 | | - Tap(getattr(KC, "N" + str(u))), |
| 26 | + print(f"Adding key {i} ({c}{d}{u})") |
| 27 | + try: |
| 28 | + layer.append( |
| 29 | + KC.MACRO( |
| 30 | + Tap(getattr(KC, f"N{c}")), |
| 31 | + Tap(getattr(KC, f"N{d}")), |
| 32 | + Tap(getattr(KC, f"N{u}")), |
28 | 33 | Tap(KC.SPC), |
| 34 | + ) |
29 | 35 | ) |
30 | | - ) |
31 | | - self.keymap = [layer]` |
| 36 | + except AttributeError as e: |
| 37 | + print(f"Error creating macro for key {i}: {e}") |
| 38 | +
|
| 39 | + if not layer: |
| 40 | + raise ValueError("No keys were added to the layer") |
| 41 | +
|
| 42 | + print(f"Layer created with {len(layer)} keys") |
| 43 | + self.keymap = [layer] |
| 44 | + self.coord_mapping = coord_mapping |
| 45 | + print(f"Keymap initialized with {len(self.keymap[0])} keys") |
| 46 | +` |
0 commit comments