Skip to content

Commit

Permalink
load keymap from file
Browse files Browse the repository at this point in the history
  • Loading branch information
david0 committed Nov 12, 2020
1 parent e273acf commit fc48f20
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 27 deletions.
6 changes: 6 additions & 0 deletions keymaps/taurus_k320
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
29h 89h f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12 Print Roll Roll 0h 0h 0h 0h
35h 1 2 3 4 5 6 7 8 9 27h 2dh 2eh Backspace Insert Pos1 PageUp 53h 54h 55h 56h
Tab q w e r t y u i o p 2fh 30h 31h Delete End PageDown 5fh 60h 61h 57h
CapsLock a s d f g h j k l 33h 34h 32h Enter Delete End PageDown 5ch 5dh 5eh 85h
LShift 64h z x c v b n m 36h 37h 38h 87h RShift 0h Up 0h 59h 5ah 5bh 0h
LCtrl LWindows LAlt 8bh 0h 0h Space 0h 8ah 88h RAlt 10000h RWindows RCtrl Left Down Right 0h 62h 63h 58h
39 changes: 12 additions & 27 deletions remap.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,26 +19,6 @@
SAVE = b"\x00\x03\x05\x82"
DISCONNECT = b"\x00\x03\x19\x88" # Disconnect? is sent on application exit

keymap = [
b"\x00\x00\x00\x29\x00\x00\x00\x89\x00\x00\x00\x3a\x00\x00\x00\x3b\x00\x00\x00\x3c\x00\x00\x00\x3d\x00\x00\x00\x3e\x00\x00\x00\x3f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00",
b"\x00\x00\x00\x40\x00\x00\x00\x41\x00\x00\x00\x42\x00\x00\x00\x43\x00\x00\x00\x44\x00\x00\x00\x45\x00\x00\x00\x46\x00\x00\x00\x47\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00",
b"\x00\x00\x00\x48\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x35\x00\x00\x00\x1e\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00",
b"\x00\x00\x00\x20\x00\x00\x00\x21\x00\x00\x00\x22\x00\x00\x00\x23\x00\x00\x00\x24\x00\x00\x00\x25\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00",
b"\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x2a\x00\x00\x00\x49\x00\x00\x00\x4a\x00\x00\x00\x4b\x00\x00\x00\x53\x00\x00\x00\x54\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00",
b"\x00\x00\x00\x55\x00\x00\x00\x56\x00\x00\x00\x2b\x00\x00\x00\x14\x00\x00\x00\x1a\x00\x00\x00\x08\x00\x00\x00\x15\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00",
b"\x00\x00\x00\x1c\x00\x00\x00\x18\x00\x00\x00\x0c\x00\x00\x00\x12\x00\x00\x00\x13\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00",
b"\x00\x00\x00\x4c\x00\x00\x00\x4d\x00\x00\x00\x4e\x00\x00\x00\x5f\x00\x00\x00\x60\x00\x00\x00\x61\x00\x00\x00\x57\x00\x00\x00\x39\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00",

b"\x00\x00\x00\x04\x00\x00\x00\x16\x00\x00\x00\x07\x00\x00\x00\x09\x00\x00\x00\x0a\x00\x00\x00\x0b\x00\x00\x00\x0d\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00",
b"\x00\x00\x00\x0f\x00\x00\x00\x33\x00\x00\x00\x34\x00\x00\x00\x32\x00\x00\x00\x28\x00\x00\x00\x4c\x00\x00\x00\x4d\x00\x00\x00\x4e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00",
b"\x00\x00\x00\x5c\x00\x00\x00\x5d\x00\x00\x00\x5e\x00\x00\x00\x85\x00\x00\x00\xe1\x00\x00\x00\x64\x00\x00\x00\x1d\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00",
b"\x00\x00\x00\x06\x00\x00\x00\x19\x00\x00\x00\x05\x00\x00\x00\x11\x00\x00\x00\x10\x00\x00\x00\x36\x00\x00\x00\x37\x00\x00\x00\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00",
b"\x00\x00\x00\x87\x00\x00\x00\xe5\x00\x00\x00\x00\x00\x00\x00\x52\x00\x00\x00\x00\x00\x00\x00\x59\x00\x00\x00\x5a\x00\x00\x00\x5b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00",
b"\x00\x00\x00\x00\x00\x00\x00\xe0\x00\x00\x00\xe3\x00\x00\x00\xe2\x00\x00\x00\x8b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00",
b"\x00\x00\x00\x00\x00\x00\x00\x8a\x00\x00\x00\x88\x00\x00\x00\xe6\x00\x01\x00\x00\x00\x00\x00\xe7\x00\x00\x00\xe4\x00\x00\x00\x50\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00",
b"\x00\x00\x00\x51\x00\x00\x00\x4f\x00\x00\x00\x00\x00\x00\x00\x62\x00\x00\x00\x63\x00\x00\x00\x58\x00\x00\x00\x00\x00\x78\x56\x34\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00",
]

KEYNAMES = dict()
KEYNAMES[0x28] = 'Enter'
KEYNAMES[0x2C] = 'Space'
Expand Down Expand Up @@ -79,8 +59,6 @@
for c in range(0,26):
KEYNAMES[4+c] = chr(ord('a')+c)



def connect():
device_info = next(device for device in hid.enumerate() if device['vendor_id'] == VENDOR_ID and device['product_id'] == PRODUCT_ID and device['interface_number'] == 2 )

Expand Down Expand Up @@ -124,7 +102,8 @@ def print_keymap(keymap):
keymap_parsed = []
for arg in keymap:
row = arg[0:N*4]
keymap_parsed += unpack('>' + N*'I', row)
n = min(N, int(len(arg)/4))
keymap_parsed += unpack('>' + n*'I', arg)
for i, c in enumerate(keymap_parsed):
if (i % ROW_LENGTH) == 0:
print("")
Expand All @@ -133,7 +112,6 @@ def print_keymap(keymap):
else:
print("%10xh" % c, end='\t')

#TODO: there is some other data in the end 12000000
print("")

def chunks(lst, n):
Expand Down Expand Up @@ -166,10 +144,17 @@ def format_reprogram_command(data):
return r

if __name__ == '__main__':
loaded_keymap = read_keymap('map3')
if len(sys.argv) != 2:
print(f"usage: {sys.argv[0]} keymap")
sys.exit(-1)

keymap_file = sys.argv[1]
loaded_keymap = read_keymap(keymap_file)
assert len(loaded_keymap) == 126, "Keymap length is not what was expected, invalid file?"

commands = [format_reprogram_command(cmd) for cmd in chunks(loaded_keymap, 8)]
extra = b"\x78\x56\x34\x12"
commands[-1] = commands[-1][0:29] + extra
print_keymap(keymap)
reprogram(keymap)

print_keymap(commands)
reprogram(commands)

0 comments on commit fc48f20

Please sign in to comment.