keychron_qmk_firmware/keyboards/id80/rules.mk

37 lines
1.3 KiB
Makefile
Raw Normal View History

# Defalt to the ansi version
DEFAULT_FOLDER = id80/ansi
[Keyboard] Add IDOBAO ID80 (#8728) * id80: New keyboard (IDOBAO ID80) Add initial support for the IDOBAO ID80 keyboard. Most source files were generated by the KBFirmware JSON to QMK Parser (https://noroadsleft.github.io/kbf_qmk_converter/) based on the ID80.json file provided by the keyboard vendor. The only change to rules.mk was to set `COMMAND_ENABLE = no` to make the compiled firmware fit into the available flash space. * id80: Update default keymap to match stock Update the Fn layer in the default keymap to match the stock firmware which was actually flashed into the PCB. * id80: Add Caps Lock indicator support Although the KBFirmware JSON includes information about the MCU pins used for keyboard indicator LEDs, the KBF to QMK converter does not generate the required code automatically. Implement the LED handling code, and at the same time switch from the older `led_set_kb` API to the newer `led_update_kb`. * id80: Remove placeholder functions The provided skeletons for `matrix_scan_kb` and `process_record_kb` did not do anything useful, so remove them. * id80: Use Esc as the Bootmagic Lite activation key The Esc key is not at the (0, 0) position in the ID80 matrix, therefore setting `BOOTMAGIC_LITE_ROW` and `BOOTMAGIC_LITE_COLUMN` is required to use the Esc key for Bootmagic Lite. * id80: Update info.json Replace info.json generated by the KBF to QMK converter with another version generated using http://www.keyboard-layout-editor.com/ and the KLE raw to QMK info.json converter (https://qmk.fm/converter/). The updated info.json has the correct physical layout (the distance between the function key row and the main block is actually 0.25U, but the vendor-provided ID80.json had 0.5U there) and correct key labels (using the stock layout instead of raw matrix locations and pin names). * id80: Enable NKRO The default keymap is updated to have NK_TOGG at Fn+N, like most other keyboards which have NKRO enabled. * id80: Use unique USB vendor/product ID Having an unique USB vendor/product ID is required for VIA support. The vendor ID value is the same as for the `idobo` (ID75) keyboard. * id80: Fix right modifiers in the default keymap For some reason the default keymap converted from the vendor-supplied JSON had the right Shift, Alt and Ctrl keys mapped to the left side modifier keycodes. * id80: Remove empty row 6 (F0) from matrix The matrix layout which was defined in the vendor-supplied ID80.json file had 12 rows which corresponded to the left and right parts of the 6 physical rows. However, the row 6 of the matrix (connected to the F0 pin), which corresponded to the right part of the physical bottom row, was completely empty (all 9 keys of the bottom row were placed in the matrix row for the left part). Keeping this row in the matrix just wastes resources; in particular, when the VIA support is enabled, having a 9×12 matrix with 4 layers leaves only 122 bytes available for dynamic macros, which is less than the recommended minimum of 128 bytes. Removing the unused row reduces the matrix size to 9×11, which leaves 194 bytes of EEPROM space for dynamic macros. * id80: Update row numbers in the LAYOUT macro Update row numbers in the names of the LAYOUT macro parameters after removing a row in the middle. * id80: Set RGBLED_NUM to 20 to match the actual PCB The vendor-supplied ID80.json file specified that the PCB should have 28 RGB LEDs in the chain. However, the actual PCB that was shipped from AliExpress had 20 LEDs in the chain (16 underglow LEDs, and then 4 more LEDs on top of the PCB, to the right of the Enter key location). Update RGBLED_NUM to match the actual PCB.
2020-04-13 04:55:01 +06:00
# MCU name
MCU = atmega32u4
# Bootloader selection
# Teensy halfkay
# Pro Micro caterina
# Atmel DFU atmel-dfu
# LUFA DFU lufa-dfu
# QMK DFU qmk-dfu
# ATmega32A bootloadHID
# ATmega328P USBasp
BOOTLOADER = atmel-dfu
# Build Options
# change yes to no to disable
#
Remove Full Bootmagic (#13846) * disambiguate Bootmagic rules in keymaps The files edited by this commit were added at a point in time where `BOOTMAGIC_ENABLE = yes` enabled full Bootmagic. This commit edits the files to specify that full Bootmagic is intended. * remove BOOTMAGIC_ENABLE=full setting * unify commented BOOTMAGIC_ENABLE rules in keyboards Explicitly sets `BOOTMAGIC_ENABLE = no` in keyboards where the rule was commented out. Command: ``` find keyboards/ -type f -name 'rules.mk' -and -not -path '*/keymaps/*' -exec sed -i -e 's;#[ \t]*\(BOOTMAGIC_ENABLE\)[ \t=]\+\([a-zA-Z]\+\).*;\1 = no # Virtual DIP switch configuration;g' {} + ``` * remove commented Bootmagic rules from keymap/user level Command: ``` find keyboards/ layouts/ users/ -type f -name 'rules.mk' -exec sed -i -e '/#.*\(BOOTMAGIC_ENABLE\)[ \t=]\+\([a-z]\+\).*/d' {} + ``` * update keyboard BOOTMAGIC_ENABLE rule formatting Sets the formatting of BOOTMAGIC_ENABLE rules to `BOOTMAGIC_ENABLE = [value]`, without the inline comments (which will be replaced later). Command: ``` find keyboards/ -type f -name 'rules.mk' -and -not -path '*/keymaps/*' -exec sed -i -e 's;\(BOOTMAGIC_ENABLE\)[ \t=]\+\([a-z]\+\).*;\1 = \2;g' '{}' + ``` * update keyboards' BOOTMAGIC_ENABLE settings Updates keyboard `rules.mk` files to use `BOOTMAGIC_ENABLE = lite` where `BOOTMAGIC_ENABLE = full` was being used. Command: ``` find keyboards/ -type f -name 'rules.mk' -and -not -path '*/keymaps/*' -exec sed -i -e 's;\(BOOTMAGIC_ENABLE = \)full;\1lite;g' '{}' + ``` * update keymap/user BOOTMAGIC_ENABLE settings Updates keymap/user `rules.mk` files to use `BOOTMAGIC_ENABLE = lite` where `BOOTMAGIC_ENABLE = full` was being used. Commands: ``` find keyboards/ -type f -name 'rules.mk' -and -path '*/keymaps/*' -exec sed -i -e 's;\(BOOTMAGIC_ENABLE[ \t=]\+\)full;\1lite;g' '{}' + find layouts/community/ users/ -type f -name 'rules.mk' -exec sed -i -e 's;\(BOOTMAGIC_ENABLE[ \t=]\+\)full;\1lite;g' '{}' + ``` * remove and replace inline comments in keyboards and keymap/user files Removes and replaces the inline comments, which have been updated to read `Enable Bootmagic Lite`. Commands: ``` find keyboards/ -type f -name 'rules.mk' -and -path '*/keymaps/*' -exec sed -i -e 's;\(BOOTMAGIC_ENABLE\)[ \t=]\+\([a-z]\+\).*;\1 = \2;g' '{}' + find layouts/community/ users/ -type f -name 'rules.mk' -exec sed -i -e 's;\(BOOTMAGIC_ENABLE\)[ \t=]\+\([a-z]\+\).*;\1 = \2;g' '{}' + find keyboards/ layouts/community/ users/ -type f -name 'rules.mk' -exec sed -i -e 's;\(BOOTMAGIC_ENABLE = lite\);\1 # Enable Bootmagic Lite;g' '{}' + find keyboards/ layouts/community/ users/ -type f -name 'rules.mk' -exec sed -i -e 's;\(BOOTMAGIC_ENABLE = yes\);\1 # Enable Bootmagic Lite;g' '{}' + find keyboards/ layouts/community/ users/ -type f -name 'rules.mk' -exec sed -i -e 's;\(BOOTMAGIC_ENABLE = no\);\1 # Enable Bootmagic Lite;g' '{}' + ``` * rename improperly named makefiles Some files intended to be used as makefiles had improper names causing them to not be used as intended when building. This commit corrects the filenames of the affected files. * update renamed file with new rule formatting * update QMK's template files Updates QMK's `rules.mk` templates to use the new inline comment. * update QMK Docs - remove documentation of full Bootmagic - update links to Bootmagic Lite doc - add doc for Magic Keycodes * rules.mk patch for coarse/ixora and coarse/vinta
2021-08-07 12:59:56 +06:00
BOOTMAGIC_ENABLE = lite # Enable Bootmagic Lite
[Keyboard] Add IDOBAO ID80 (#8728) * id80: New keyboard (IDOBAO ID80) Add initial support for the IDOBAO ID80 keyboard. Most source files were generated by the KBFirmware JSON to QMK Parser (https://noroadsleft.github.io/kbf_qmk_converter/) based on the ID80.json file provided by the keyboard vendor. The only change to rules.mk was to set `COMMAND_ENABLE = no` to make the compiled firmware fit into the available flash space. * id80: Update default keymap to match stock Update the Fn layer in the default keymap to match the stock firmware which was actually flashed into the PCB. * id80: Add Caps Lock indicator support Although the KBFirmware JSON includes information about the MCU pins used for keyboard indicator LEDs, the KBF to QMK converter does not generate the required code automatically. Implement the LED handling code, and at the same time switch from the older `led_set_kb` API to the newer `led_update_kb`. * id80: Remove placeholder functions The provided skeletons for `matrix_scan_kb` and `process_record_kb` did not do anything useful, so remove them. * id80: Use Esc as the Bootmagic Lite activation key The Esc key is not at the (0, 0) position in the ID80 matrix, therefore setting `BOOTMAGIC_LITE_ROW` and `BOOTMAGIC_LITE_COLUMN` is required to use the Esc key for Bootmagic Lite. * id80: Update info.json Replace info.json generated by the KBF to QMK converter with another version generated using http://www.keyboard-layout-editor.com/ and the KLE raw to QMK info.json converter (https://qmk.fm/converter/). The updated info.json has the correct physical layout (the distance between the function key row and the main block is actually 0.25U, but the vendor-provided ID80.json had 0.5U there) and correct key labels (using the stock layout instead of raw matrix locations and pin names). * id80: Enable NKRO The default keymap is updated to have NK_TOGG at Fn+N, like most other keyboards which have NKRO enabled. * id80: Use unique USB vendor/product ID Having an unique USB vendor/product ID is required for VIA support. The vendor ID value is the same as for the `idobo` (ID75) keyboard. * id80: Fix right modifiers in the default keymap For some reason the default keymap converted from the vendor-supplied JSON had the right Shift, Alt and Ctrl keys mapped to the left side modifier keycodes. * id80: Remove empty row 6 (F0) from matrix The matrix layout which was defined in the vendor-supplied ID80.json file had 12 rows which corresponded to the left and right parts of the 6 physical rows. However, the row 6 of the matrix (connected to the F0 pin), which corresponded to the right part of the physical bottom row, was completely empty (all 9 keys of the bottom row were placed in the matrix row for the left part). Keeping this row in the matrix just wastes resources; in particular, when the VIA support is enabled, having a 9×12 matrix with 4 layers leaves only 122 bytes available for dynamic macros, which is less than the recommended minimum of 128 bytes. Removing the unused row reduces the matrix size to 9×11, which leaves 194 bytes of EEPROM space for dynamic macros. * id80: Update row numbers in the LAYOUT macro Update row numbers in the names of the LAYOUT macro parameters after removing a row in the middle. * id80: Set RGBLED_NUM to 20 to match the actual PCB The vendor-supplied ID80.json file specified that the PCB should have 28 RGB LEDs in the chain. However, the actual PCB that was shipped from AliExpress had 20 LEDs in the chain (16 underglow LEDs, and then 4 more LEDs on top of the PCB, to the right of the Enter key location). Update RGBLED_NUM to match the actual PCB.
2020-04-13 04:55:01 +06:00
MOUSEKEY_ENABLE = yes # Mouse keys
EXTRAKEY_ENABLE = yes # Audio control and System control
CONSOLE_ENABLE = no # Console for debug
[Keyboard] Add IDOBAO ID80 (#8728) * id80: New keyboard (IDOBAO ID80) Add initial support for the IDOBAO ID80 keyboard. Most source files were generated by the KBFirmware JSON to QMK Parser (https://noroadsleft.github.io/kbf_qmk_converter/) based on the ID80.json file provided by the keyboard vendor. The only change to rules.mk was to set `COMMAND_ENABLE = no` to make the compiled firmware fit into the available flash space. * id80: Update default keymap to match stock Update the Fn layer in the default keymap to match the stock firmware which was actually flashed into the PCB. * id80: Add Caps Lock indicator support Although the KBFirmware JSON includes information about the MCU pins used for keyboard indicator LEDs, the KBF to QMK converter does not generate the required code automatically. Implement the LED handling code, and at the same time switch from the older `led_set_kb` API to the newer `led_update_kb`. * id80: Remove placeholder functions The provided skeletons for `matrix_scan_kb` and `process_record_kb` did not do anything useful, so remove them. * id80: Use Esc as the Bootmagic Lite activation key The Esc key is not at the (0, 0) position in the ID80 matrix, therefore setting `BOOTMAGIC_LITE_ROW` and `BOOTMAGIC_LITE_COLUMN` is required to use the Esc key for Bootmagic Lite. * id80: Update info.json Replace info.json generated by the KBF to QMK converter with another version generated using http://www.keyboard-layout-editor.com/ and the KLE raw to QMK info.json converter (https://qmk.fm/converter/). The updated info.json has the correct physical layout (the distance between the function key row and the main block is actually 0.25U, but the vendor-provided ID80.json had 0.5U there) and correct key labels (using the stock layout instead of raw matrix locations and pin names). * id80: Enable NKRO The default keymap is updated to have NK_TOGG at Fn+N, like most other keyboards which have NKRO enabled. * id80: Use unique USB vendor/product ID Having an unique USB vendor/product ID is required for VIA support. The vendor ID value is the same as for the `idobo` (ID75) keyboard. * id80: Fix right modifiers in the default keymap For some reason the default keymap converted from the vendor-supplied JSON had the right Shift, Alt and Ctrl keys mapped to the left side modifier keycodes. * id80: Remove empty row 6 (F0) from matrix The matrix layout which was defined in the vendor-supplied ID80.json file had 12 rows which corresponded to the left and right parts of the 6 physical rows. However, the row 6 of the matrix (connected to the F0 pin), which corresponded to the right part of the physical bottom row, was completely empty (all 9 keys of the bottom row were placed in the matrix row for the left part). Keeping this row in the matrix just wastes resources; in particular, when the VIA support is enabled, having a 9×12 matrix with 4 layers leaves only 122 bytes available for dynamic macros, which is less than the recommended minimum of 128 bytes. Removing the unused row reduces the matrix size to 9×11, which leaves 194 bytes of EEPROM space for dynamic macros. * id80: Update row numbers in the LAYOUT macro Update row numbers in the names of the LAYOUT macro parameters after removing a row in the middle. * id80: Set RGBLED_NUM to 20 to match the actual PCB The vendor-supplied ID80.json file specified that the PCB should have 28 RGB LEDs in the chain. However, the actual PCB that was shipped from AliExpress had 20 LEDs in the chain (16 underglow LEDs, and then 4 more LEDs on top of the PCB, to the right of the Enter key location). Update RGBLED_NUM to match the actual PCB.
2020-04-13 04:55:01 +06:00
COMMAND_ENABLE = no # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
NKRO_ENABLE = yes # USB Nkey Rollover
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
# partially generated by KBFirmware JSON to QMK Parser
# https://noroadsleft.github.io/kbf_qmk_converter/