This removes the need for the user to define... most things, honestly. Notably, `main()` is no longer the end user's responsibility. This also allows us to do fun stuff going forward like validating keymaps for sanity (ex: the key assigned to `KC_MO(x)` should be assigned to `KC_TRNS` on the target layer or the user will never be able to escape that layer). This also disambiguates `BOARD` to always refer to an actual slab of silicon, renaming to `USER_KEYMAP`. Entrypoints are now a bit more wild, and mostly-unsupported boards no longer have working entrypoints. It's probably just time to scrap those boards for now (until we have BLE HID and/or bitbang USB HID, at least).
		
			
				
	
	
		
			25 lines
		
	
	
		
			540 B
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			25 lines
		
	
	
		
			540 B
		
	
	
	
		
			Python
		
	
	
	
	
	
| import sys
 | |
| from logging import DEBUG
 | |
| 
 | |
| from kmk.firmware import Firmware
 | |
| from kmk.micropython.pyb_hid import HIDHelper
 | |
| 
 | |
| 
 | |
| def main():
 | |
|     from kmk_keyboard_user import cols, diode_orientation, keymap, rows
 | |
| 
 | |
|     try:
 | |
|         firmware = Firmware(
 | |
|             keymap=keymap,
 | |
|             row_pins=rows,
 | |
|             col_pins=cols,
 | |
|             diode_orientation=diode_orientation,
 | |
|             hid=HIDHelper,
 | |
|             log_level=DEBUG,
 | |
|         )
 | |
| 
 | |
|         firmware.go()
 | |
|     except Exception as e:
 | |
|         sys.print_exception(e)
 | |
|         sys.exit(1)
 |