summaryrefslogtreecommitdiff
path: root/lib/python/qmk/cli
diff options
context:
space:
mode:
authorRyan <fauxpark@gmail.com>2024-12-16 06:06:05 +1100
committerGitHub <noreply@github.com>2024-12-15 19:06:05 +0000
commit0f3993b9a3cd3a50b2c9e5d920d6bdb40a9d78be (patch)
tree6e76fd2ea8938f74d2e1e60ed45b8f88531383dc /lib/python/qmk/cli
parent8e6bfbfdc27b6ecb38f884b011ebca3ef95e33fc (diff)
default_keyboard.h generation tweaks (#24715)
Diffstat (limited to 'lib/python/qmk/cli')
-rwxr-xr-xlib/python/qmk/cli/generate/keyboard_h.py19
1 files changed, 12 insertions, 7 deletions
diff --git a/lib/python/qmk/cli/generate/keyboard_h.py b/lib/python/qmk/cli/generate/keyboard_h.py
index 5863a0983a..cb9528d96b 100755
--- a/lib/python/qmk/cli/generate/keyboard_h.py
+++ b/lib/python/qmk/cli/generate/keyboard_h.py
@@ -22,6 +22,11 @@ def _generate_layouts(keyboard, kb_info_json):
22 row_num = kb_info_json['matrix_size']['rows'] 22 row_num = kb_info_json['matrix_size']['rows']
23 23
24 lines = [] 24 lines = []
25 lines.append('')
26 lines.append('// Layout content')
27 lines.append('')
28 lines.append('#define XXX KC_NO')
29
25 for layout_name, layout_data in kb_info_json['layouts'].items(): 30 for layout_name, layout_data in kb_info_json['layouts'].items():
26 if layout_data['c_macro']: 31 if layout_data['c_macro']:
27 continue 32 continue
@@ -31,7 +36,7 @@ def _generate_layouts(keyboard, kb_info_json):
31 continue 36 continue
32 37
33 layout_keys = [] 38 layout_keys = []
34 layout_matrix = [['KC_NO'] * col_num for _ in range(row_num)] 39 layout_matrix = [['XXX'] * col_num for _ in range(row_num)]
35 40
36 for key_data in layout_data['layout']: 41 for key_data in layout_data['layout']:
37 row, col = key_data['matrix'] 42 row, col = key_data['matrix']
@@ -46,7 +51,7 @@ def _generate_layouts(keyboard, kb_info_json):
46 lines.append('') 51 lines.append('')
47 lines.append(f'#define {layout_name}({", ".join(layout_keys)}) {{ \\') 52 lines.append(f'#define {layout_name}({", ".join(layout_keys)}) {{ \\')
48 53
49 rows = ', \\\n'.join(['\t {' + ', '.join(row) + '}' for row in layout_matrix]) 54 rows = ', \\\n'.join([' { ' + ', '.join(row) + ' }' for row in layout_matrix])
50 rows += ' \\' 55 rows += ' \\'
51 lines.append(rows) 56 lines.append(rows)
52 lines.append('}') 57 lines.append('}')
@@ -67,6 +72,9 @@ def _generate_keycodes(kb_info_json):
67 return [] 72 return []
68 73
69 lines = [] 74 lines = []
75 lines.append('')
76 lines.append('// Keycode content')
77 lines.append('')
70 lines.append('enum keyboard_keycodes {') 78 lines.append('enum keyboard_keycodes {')
71 79
72 for index, item in enumerate(kb_info_json.get('keycodes')): 80 for index, item in enumerate(kb_info_json.get('keycodes')):
@@ -103,17 +111,14 @@ def generate_keyboard_h(cli):
103 valid_config = dd_layouts or keyboard_h 111 valid_config = dd_layouts or keyboard_h
104 112
105 # Build the layouts.h file. 113 # Build the layouts.h file.
106 keyboard_h_lines = [GPL2_HEADER_C_LIKE, GENERATED_HEADER_C_LIKE, '#pragma once', '#include "quantum.h"'] 114 keyboard_h_lines = [GPL2_HEADER_C_LIKE, GENERATED_HEADER_C_LIKE, '#pragma once', '', '#include "quantum.h"']
107 115
108 keyboard_h_lines.append('')
109 keyboard_h_lines.append('// Layout content')
110 if dd_layouts: 116 if dd_layouts:
111 keyboard_h_lines.extend(dd_layouts) 117 keyboard_h_lines.extend(dd_layouts)
118
112 if keyboard_h: 119 if keyboard_h:
113 keyboard_h_lines.append(f'#include "{Path(keyboard_h).name}"') 120 keyboard_h_lines.append(f'#include "{Path(keyboard_h).name}"')
114 121
115 keyboard_h_lines.append('')
116 keyboard_h_lines.append('// Keycode content')
117 if dd_keycodes: 122 if dd_keycodes:
118 keyboard_h_lines.extend(dd_keycodes) 123 keyboard_h_lines.extend(dd_keycodes)
119 124