]> git.donarmstrong.com Git - qmk_firmware.git/commitdiff
Fix the LFKeyboards so they work with the QMK Configurator (#4591)
authorDrashna Jaelre <drashna@live.com>
Mon, 10 Dec 2018 19:38:57 +0000 (11:38 -0800)
committerMechMerlin <30334081+mechmerlin@users.noreply.github.com>
Mon, 10 Dec 2018 19:38:57 +0000 (11:38 -0800)
* Make layer_info weak so it works with QMK Configurator

* Fix lfk87 compile issue

* Add fixes for lfkpad

17 files changed:
keyboards/lfkeyboards/lfk78/keymaps/ca178858/rules.mk
keyboards/lfkeyboards/lfk78/keymaps/default/rules.mk
keyboards/lfkeyboards/lfk78/keymaps/iso/rules.mk
keyboards/lfkeyboards/lfk78/keymaps/split_bs_osx/rules.mk
keyboards/lfkeyboards/lfk78/lfk78.c
keyboards/lfkeyboards/lfk78/rules.mk
keyboards/lfkeyboards/lfk87/keymaps/ca178858/rules.mk
keyboards/lfkeyboards/lfk87/keymaps/default/rules.mk
keyboards/lfkeyboards/lfk87/keymaps/gbchk/rules.mk
keyboards/lfkeyboards/lfk87/keymaps/iso/rules.mk
keyboards/lfkeyboards/lfk87/lfk87.c
keyboards/lfkeyboards/lfk87/rules.mk
keyboards/lfkeyboards/lfkpad/keymaps/default/rules.mk
keyboards/lfkeyboards/lfkpad/rules.mk
keyboards/lfkeyboards/mini1800/keymaps/ca178858/rules.mk
keyboards/lfkeyboards/mini1800/keymaps/default/rules.mk
keyboards/lfkeyboards/mini1800/mini1800.c

index 394c58b37ecf02e41b3aa50f3e0c76c396731d5b..98e3d5a78b18c3dccbfec74bcd28b299034ec84f 100644 (file)
@@ -23,19 +23,6 @@ ISSI_ENABLE = yes                    # If the I2C pullup resistors aren't install this must be di
 WATCHDOG_ENABLE = yes          # Resets keyboard if matrix_scan isn't run every 250ms
 
 
-ifndef QUANTUM_DIR
-       include ../../../../Makefile
-endif
-
-ifeq ($(strip $(ISSI_ENABLE)), yes)
-    TMK_COMMON_DEFS += -DISSI_ENABLE
-endif
-
-ifeq ($(strip $(WATCHDOG_ENABLE)), yes)
-    TMK_COMMON_DEFS += -DWATCHDOG_ENABLE
-endif
-
-
 # # Set the LFK78 hardware version. This is defined in rules.mk, but can be overidden here if desired
 # #
 # # RevB - first public release, uses atmega32u4, has audio, ISSI matrix split between RGB and backlight
index 555ad97230468e85b417d705b72b6415d935ee8f..1477c3ac77b3d1d0fd68fda8751931a10d5f4ae3 100644 (file)
@@ -14,7 +14,7 @@ MIDI_ENABLE = no                # MIDI controls
 AUDIO_ENABLE = yes               # Audio output on port C6
 UNICODE_ENABLE = no             # Unicode
 BLUETOOTH_ENABLE = no           # Enable Bluetooth with the Adafruit EZ-Key HID
-RGBLIGHT_ENABLE = yes           # Enable WS2812 RGB underlight. 
+RGBLIGHT_ENABLE = yes           # Enable WS2812 RGB underlight.
 RGBLIGHT_CUSTOM_DRIVER = yes    # RGB code is implemented in lefkeyboards, not qmk base
 SLEEP_LED_ENABLE = yes          # Breathing sleep LED during USB suspend
 TAP_DANCE_ENABLE = no
@@ -23,21 +23,6 @@ ISSI_ENABLE = yes               # If the I2C pullup resistors aren't install thi
 WATCHDOG_ENABLE = no            # Resets keyboard if matrix_scan isn't run every 250ms
 CAPSLOCK_LED = no              # Toggle back light LED of Caps Lock
 
-ifndef QUANTUM_DIR
-    include ../../../../Makefile
-endif
-
-ifeq ($(strip $(ISSI_ENABLE)), yes)
-    TMK_COMMON_DEFS += -DISSI_ENABLE
-endif
-
-ifeq ($(strip $(WATCHDOG_ENABLE)), yes)
-    TMK_COMMON_DEFS += -DWATCHDOG_ENABLE
-endif
-
-ifeq ($(strip $(CAPSLOCK_LED)), yes)
-    TMK_COMMON_DEFS += -DCAPSLOCK_LED
-endif
 
 # Override the LFK78 hardware version:
 #
index 147e95bc87844b833257f2b08e05db9c8f650282..3cfc994cb8e26eee9b79a995105076d8716a7b61 100644 (file)
@@ -14,7 +14,7 @@ MIDI_ENABLE = no                # MIDI controls
 AUDIO_ENABLE = yes               # Audio output on port C6
 UNICODE_ENABLE = no             # Unicode
 BLUETOOTH_ENABLE = no           # Enable Bluetooth with the Adafruit EZ-Key HID
-RGBLIGHT_ENABLE = yes           # Enable WS2812 RGB underlight. 
+RGBLIGHT_ENABLE = yes           # Enable WS2812 RGB underlight.
 RGBLIGHT_CUSTOM_DRIVER = yes    # RGB code is implemented in lefkeyboards, not qmk base
 SLEEP_LED_ENABLE = yes          # Breathing sleep LED during USB suspend
 TAP_DANCE_ENABLE = no
@@ -23,18 +23,6 @@ ISSI_ENABLE = yes           # If the I2C pullup resistors aren't install this mu
 WATCHDOG_ENABLE = no       # Resets keyboard if matrix_scan isn't run every 250ms
 
 
-ifndef QUANTUM_DIR
-    include ../../../../Makefile
-endif
-
-ifeq ($(strip $(ISSI_ENABLE)), yes)
-    TMK_COMMON_DEFS += -DISSI_ENABLE
-endif
-
-ifeq ($(strip $(WATCHDOG_ENABLE)), yes)
-    TMK_COMMON_DEFS += -DWATCHDOG_ENABLE
-endif
-
 
 # # Set the LFK78 hardware version. This is defined in rules.mk, but can be overidden here if desired
 # #
index 555ad97230468e85b417d705b72b6415d935ee8f..f789b6866b488c30fbd1815bcab3b360740b6e0e 100644 (file)
@@ -14,7 +14,7 @@ MIDI_ENABLE = no                # MIDI controls
 AUDIO_ENABLE = yes               # Audio output on port C6
 UNICODE_ENABLE = no             # Unicode
 BLUETOOTH_ENABLE = no           # Enable Bluetooth with the Adafruit EZ-Key HID
-RGBLIGHT_ENABLE = yes           # Enable WS2812 RGB underlight. 
+RGBLIGHT_ENABLE = yes           # Enable WS2812 RGB underlight.
 RGBLIGHT_CUSTOM_DRIVER = yes    # RGB code is implemented in lefkeyboards, not qmk base
 SLEEP_LED_ENABLE = yes          # Breathing sleep LED during USB suspend
 TAP_DANCE_ENABLE = no
@@ -23,22 +23,6 @@ ISSI_ENABLE = yes               # If the I2C pullup resistors aren't install thi
 WATCHDOG_ENABLE = no            # Resets keyboard if matrix_scan isn't run every 250ms
 CAPSLOCK_LED = no              # Toggle back light LED of Caps Lock
 
-ifndef QUANTUM_DIR
-    include ../../../../Makefile
-endif
-
-ifeq ($(strip $(ISSI_ENABLE)), yes)
-    TMK_COMMON_DEFS += -DISSI_ENABLE
-endif
-
-ifeq ($(strip $(WATCHDOG_ENABLE)), yes)
-    TMK_COMMON_DEFS += -DWATCHDOG_ENABLE
-endif
-
-ifeq ($(strip $(CAPSLOCK_LED)), yes)
-    TMK_COMMON_DEFS += -DCAPSLOCK_LED
-endif
-
 # Override the LFK78 hardware version:
 #
 # B   - first public release, uses atmega32u4, has audio, ISSI matrix split between RGB and backlight
index e02739e4f5aa57eaaeb488d7997d5a9c25f5fbfb..60b7ab4ce09199d65e752e8d9094478b4cd20d85 100644 (file)
@@ -13,6 +13,15 @@ uint16_t click_hz = CLICK_HZ;
 uint16_t click_time = CLICK_MS;
 uint8_t click_toggle = CLICK_ENABLED;
 
+__attribute__((weak))
+const Layer_Info layer_info[] = {
+  // Layer     Mask           Red     Green   Blue
+  {0x00000000, 0xFFFFFFFF, {0x0000, 0x0FFF, 0x0000}}, // base layer - green
+  {0x00000002, 0xFFFFFFFE, {0x0000, 0x0000, 0x0FFF}}, // function layer - blue
+  {0x00000004, 0xFFFFFFFC, {0x0FFF, 0x0000, 0x0FFF}}, // settings layer - magenta
+  {0xFFFFFFFF, 0xFFFFFFFF, {0x0FFF, 0x0FFF, 0x0FFF}}, // unknown layer - REQUIRED - white
+};
+
 void matrix_init_kb(void)
 {
     matrix_init_user();
index 091cd77556f3e59baf55888d05a8f595cd6015e4..cc314c97a2c2c72ce1e3e1be8fb21b49581137ea 100644 (file)
@@ -32,3 +32,52 @@ F_USB = $(F_CPU)
 
 # Interrupt driven control endpoint task(+60)
 OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
+
+BOOTMAGIC_ENABLE = no           # Virtual DIP switch configuration(+1000)
+MOUSEKEY_ENABLE = no            # Mouse keys(+4700)
+EXTRAKEY_ENABLE = yes           # Audio control and System control(+450)
+CONSOLE_ENABLE = no             # Console for debug(+400)
+COMMAND_ENABLE = no             # Commands for debug and configuration
+NKRO_ENABLE = yes               # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+BACKLIGHT_ENABLE = yes          # Enable keyboard backlight functionality
+MIDI_ENABLE = no                # MIDI controls
+AUDIO_ENABLE = yes               # Audio output on port C6
+UNICODE_ENABLE = no             # Unicode
+BLUETOOTH_ENABLE = no           # Enable Bluetooth with the Adafruit EZ-Key HID
+RGBLIGHT_ENABLE = yes           # Enable WS2812 RGB underlight.
+RGBLIGHT_CUSTOM_DRIVER = yes    # RGB code is implemented in lefkeyboards, not qmk base
+SLEEP_LED_ENABLE = yes          # Breathing sleep LED during USB suspend
+TAP_DANCE_ENABLE = no
+
+ISSI_ENABLE = yes               # If the I2C pullup resistors aren't install this must be disabled
+WATCHDOG_ENABLE = no            # Resets keyboard if matrix_scan isn't run every 250ms
+CAPSLOCK_LED = no              # Toggle back light LED of Caps Lock
+
+
+ifeq ($(strip $(ISSI_ENABLE)), yes)
+    TMK_COMMON_DEFS += -DISSI_ENABLE
+endif
+
+ifeq ($(strip $(WATCHDOG_ENABLE)), yes)
+    TMK_COMMON_DEFS += -DWATCHDOG_ENABLE
+endif
+
+ifeq ($(strip $(CAPSLOCK_LED)), yes)
+    TMK_COMMON_DEFS += -DCAPSLOCK_LED
+endif
+
+# # Set the LFK78 hardware version. This is defined in rules.mk, but can be overidden here if desired
+# #
+# # RevB - first public release, uses atmega32u4, has audio, ISSI matrix split between RGB and backlight
+# # RevC/D - at90usb1286, no audio, ISSI device 0 is backlight, 4 is RGB
+# #
+# # Set to B, C or D
+# LFK_REV = D
+
+# ifeq ($(LFK_REV), B)
+#   MCU = atmega32u4
+# else
+#   MCU = at90usb1286
+# endif
+# OPT_DEFS += -DLFK_REV_$(LFK_REV)
+# OPT_DEFS += -DUSB_PRODUCT=\"LFK_Rev$(LFK_REV)\"
index 9819cdbee247f3d0987751282ffa7f67c003ef70..f28ec80ea72379cf89938affd8b022d63ee355bb 100644 (file)
@@ -23,17 +23,6 @@ ISSI_ENABLE = yes                    # If the I2C pullup resistors aren't install this must be di
 WATCHDOG_ENABLE = yes          # Resets keyboard if matrix_scan isn't run every 250ms
 
 
-ifndef QUANTUM_DIR
-       include ../../../../Makefile
-endif
-
-ifeq ($(strip $(ISSI_ENABLE)), yes)
-    TMK_COMMON_DEFS += -DISSI_ENABLE
-endif
-
-ifeq ($(strip $(WATCHDOG_ENABLE)), yes)
-    TMK_COMMON_DEFS += -DWATCHDOG_ENABLE
-endif
 
 
 # # Set the LFK78 hardware version. This is defined in rules.mk, but can be overidden here if desired
index c1f1070fd6002f08c25f5810d025e7cff7d7595e..c079c264ed7af867770f830492b0c91c503e693f 100644 (file)
@@ -23,17 +23,6 @@ ISSI_ENABLE = yes                    # If the I2C pullup resistors aren't install this must be di
 WATCHDOG_ENABLE = no           # Resets keyboard if matrix_scan isn't run every 250ms
 
 
-ifndef QUANTUM_DIR
-       include ../../../../Makefile
-endif
-
-ifeq ($(strip $(ISSI_ENABLE)), yes)
-    TMK_COMMON_DEFS += -DISSI_ENABLE
-endif
-
-ifeq ($(strip $(WATCHDOG_ENABLE)), yes)
-    TMK_COMMON_DEFS += -DWATCHDOG_ENABLE
-endif
 
 
 # Override the LFK87 hardware version.
index c1f1070fd6002f08c25f5810d025e7cff7d7595e..f7b39455b49d952f012d0c1c10df8dbf63284c35 100644 (file)
@@ -23,19 +23,6 @@ ISSI_ENABLE = yes                    # If the I2C pullup resistors aren't install this must be di
 WATCHDOG_ENABLE = no           # Resets keyboard if matrix_scan isn't run every 250ms
 
 
-ifndef QUANTUM_DIR
-       include ../../../../Makefile
-endif
-
-ifeq ($(strip $(ISSI_ENABLE)), yes)
-    TMK_COMMON_DEFS += -DISSI_ENABLE
-endif
-
-ifeq ($(strip $(WATCHDOG_ENABLE)), yes)
-    TMK_COMMON_DEFS += -DWATCHDOG_ENABLE
-endif
-
-
 # Override the LFK87 hardware version.
 #
 # A - Green PCB. at90usb1286 Only 3 exist
index 68e200a5de11ee8d93a18d5d90a5f7be6457b64f..7823dea7874e71274ce903a81b075850cee3da66 100644 (file)
@@ -23,17 +23,6 @@ ISSI_ENABLE = yes               # If the I2C pullup resistors aren't install thi
 WATCHDOG_ENABLE = no           # Resets keyboard if matrix_scan isn't run every 250ms
 
 
-ifndef QUANTUM_DIR
-       include ../../../../Makefile
-endif
-
-ifeq ($(strip $(ISSI_ENABLE)), yes)
-    TMK_COMMON_DEFS += -DISSI_ENABLE
-endif
-
-ifeq ($(strip $(WATCHDOG_ENABLE)), yes)
-    TMK_COMMON_DEFS += -DWATCHDOG_ENABLE
-endif
 
 
 # # Set the LFK78 hardware version. This is defined in rules.mk, but can be overidden here if desired
index e9f184e36f99a37165f54f7bf8a01b6a2ee71027..4b34fcef7e19873ca84587163ecd1bbb5a5b67ce 100644 (file)
@@ -14,6 +14,15 @@ uint16_t click_hz = CLICK_HZ;
 uint16_t click_time = CLICK_MS;
 uint8_t click_toggle = CLICK_ENABLED;
 
+__attribute__((weak))
+const Layer_Info layer_info[] = {
+    // Layer     Mask           Red     Green   Blue
+    {0x00000000, 0xFFFFFFFF, {0x00, 0xFF, 0x00}}, // base layers - green
+    {0x00000002, 0xFFFFFFFE, {0x00, 0x00, 0xFF}}, // function layer - blue
+    {0x00000004, 0xFFFFFFFC, {0xFF, 0x00, 0xFF}}, // settings layer - magenta
+    {0xFFFFFFFF, 0xFFFFFFFF, {0xFF, 0xFF, 0xFF}}, // unknown layer - REQUIRED - white
+};
+
 void matrix_init_kb(void)
 {
     // put your keyboard start-up code here
index 19b41de09624034660555cc390f44c63cf9e83f0..c10f4730657dfe9c04b1de0222718a0b6ebe4ea2 100644 (file)
@@ -31,3 +31,37 @@ F_USB = $(F_CPU)
 OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
 
 LAYOUTS = tkl_ansi tkl_iso
+
+# Build Options
+#   change to "no" to disable the options, or define them in the Makefile in
+#   the appropriate keymap folder that will get included automatically
+#
+
+BOOTMAGIC_ENABLE = no           # Virtual DIP switch configuration(+1000)
+MOUSEKEY_ENABLE = no            # Mouse keys(+4700)
+EXTRAKEY_ENABLE = yes           # Audio control and System control(+450)
+CONSOLE_ENABLE = no             # Console for debug(+400)
+COMMAND_ENABLE = no             # Commands for debug and configuration
+NKRO_ENABLE = yes               # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+BACKLIGHT_ENABLE = yes           # Enable keyboard backlight functionality
+MIDI_ENABLE = no                # MIDI controls
+AUDIO_ENABLE = yes              # Audio output on port C6
+UNICODE_ENABLE = no             # Unicode
+BLUETOOTH_ENABLE = no           # Enable Bluetooth with the Adafruit EZ-Key HID
+RGBLIGHT_ENABLE = yes           # Enable RGB underlight
+RGBLIGHT_CUSTOM_DRIVER = yes    # RGB code is implemented in lefkeyboards, not WS2812
+SLEEP_LED_ENABLE = yes          # Breathing sleep LED during USB suspend
+TAP_DANCE_ENABLE = no
+
+ISSI_ENABLE = yes                      # If the I2C pullup resistors aren't install this must be disabled
+WATCHDOG_ENABLE = no           # Resets keyboard if matrix_scan isn't run every 250ms
+
+
+
+ifeq ($(strip $(ISSI_ENABLE)), yes)
+    OPT_DEFS += -DISSI_ENABLE
+endif
+
+ifeq ($(strip $(WATCHDOG_ENABLE)), yes)
+    OPT_DEFS += -DWATCHDOG_ENABLE
+endif
index 1653f4e3023b9e64d88e081ee772673b53d17c83..cc21b32dce337cbc950d9dc5679bc0b98b1f6d6b 100644 (file)
@@ -14,7 +14,7 @@ MIDI_ENABLE = no                # MIDI controls
 AUDIO_ENABLE = no               # Audio output on port C6
 UNICODE_ENABLE = no             # Unicode
 BLUETOOTH_ENABLE = no           # Enable Bluetooth with the Adafruit EZ-Key HID
-RGBLIGHT_ENABLE = yes           # Enable WS2812 RGB underlight. 
+RGBLIGHT_ENABLE = yes           # Enable WS2812 RGB underlight.
 RGBLIGHT_CUSTOM_DRIVER = yes    # RGB code is implemented in lefkeyboards, not qmk base
 SLEEP_LED_ENABLE = yes          # Breathing sleep LED during USB suspend
 TAP_DANCE_ENABLE = no
@@ -23,17 +23,6 @@ ISSI_ENABLE = yes           # If the I2C pullup resistors aren't install this mu
 WATCHDOG_ENABLE = no       # Resets keyboard if matrix_scan isn't run every 250ms
 
 
-ifndef QUANTUM_DIR
-    include ../../../../Makefile
-endif
-
-ifeq ($(strip $(ISSI_ENABLE)), yes)
-    TMK_COMMON_DEFS += -DISSI_ENABLE
-endif
-
-ifeq ($(strip $(WATCHDOG_ENABLE)), yes)
-    TMK_COMMON_DEFS += -DWATCHDOG_ENABLE
-endif
 
 
 # # Set the LFK78 hardware version. This is defined in rules.mk, but can be overidden here if desired
index e28e398cc885476204dadac1bd52db1f08a098ef..83553f64cb3589da3f366ab33642f2c4b0140723 100644 (file)
@@ -11,3 +11,31 @@ ARCH = AVR8
 OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
 
 LAYOUTS = numpad_6x4
+
+BOOTMAGIC_ENABLE = no           # Virtual DIP switch configuration(+1000)
+MOUSEKEY_ENABLE = no            # Mouse keys(+4700)
+EXTRAKEY_ENABLE = yes           # Audio control and System control(+450)
+CONSOLE_ENABLE = no             # Console for debug(+400)
+COMMAND_ENABLE = no             # Commands for debug and configuration
+NKRO_ENABLE = no               # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+BACKLIGHT_ENABLE = no          # Enable keyboard backlight functionality
+MIDI_ENABLE = no                # MIDI controls
+AUDIO_ENABLE = no               # Audio output on port C6
+UNICODE_ENABLE = no             # Unicode
+BLUETOOTH_ENABLE = no           # Enable Bluetooth with the Adafruit EZ-Key HID
+RGBLIGHT_ENABLE = yes           # Enable WS2812 RGB underlight.
+RGBLIGHT_CUSTOM_DRIVER = yes    # RGB code is implemented in lefkeyboards, not qmk base
+SLEEP_LED_ENABLE = yes          # Breathing sleep LED during USB suspend
+TAP_DANCE_ENABLE = no
+
+ISSI_ENABLE = yes           # If the I2C pullup resistors aren't install this must be disabled
+WATCHDOG_ENABLE = no       # Resets keyboard if matrix_scan isn't run every 250ms
+
+
+ifeq ($(strip $(ISSI_ENABLE)), yes)
+    TMK_COMMON_DEFS += -DISSI_ENABLE
+endif
+
+ifeq ($(strip $(WATCHDOG_ENABLE)), yes)
+    TMK_COMMON_DEFS += -DWATCHDOG_ENABLE
+endif
index 16452df677de906c8e6d8aa097784379996de56e..2c6035d583fa112ceba3914a14e9eeda6c9e5f0c 100644 (file)
@@ -23,9 +23,6 @@ ISSI_ENABLE = yes                     # If the I2C pullup resistors aren't install this must be di
 WATCHDOG_ENABLE = yes          # Resets keyboard if matrix_scan isn't run every 250ms
 
 
-ifndef QUANTUM_DIR
-       include ../../../../Makefile
-endif
 
 ifeq ($(strip $(ISSI_ENABLE)), yes)
     TMK_COMMON_DEFS += -DISSI_ENABLE
index d6e35e353730d51eeff2325eab1af923e0318345..1598173f36b75c7e5af446c68ca7285d036425c7 100644 (file)
@@ -23,10 +23,6 @@ ISSI_ENABLE = yes                    # If the I2C pullup resistors aren't install this must be di
 WATCHDOG_ENABLE = yes          # Resets keyboard if matrix_scan isn't run every 250ms
 
 
-ifndef QUANTUM_DIR
-       include ../../../../Makefile
-endif
-
 ifeq ($(strip $(ISSI_ENABLE)), yes)
     TMK_COMMON_DEFS += -DISSI_ENABLE
 endif
index f0692d46c764084eb11481a17aa3b6f4d638a94d..d5f4193c1da0915f96731a7d3c111d3be96b2de1 100644 (file)
@@ -17,6 +17,16 @@ uint16_t click_time = CLICK_MS;
 uint8_t click_toggle = CLICK_ENABLED;
 float my_song[][2] = SONG(ZELDA_PUZZLE);
 
+// Colors of the layer indicator LED
+// This list needs to define layer 0xFFFFFFFF, it is the end of the list, and the unknown layer
+__attribute__((weak))
+const Layer_Info layer_info[] = {
+    // Layer     Mask           Red     Green   Blue
+    {0x00000000, 0xFFFFFFFF, {0x00, 0xFF, 0x00}}, // base layers - green
+    {0x00000002, 0xFFFFFFFE, {0x00, 0x00, 0xFF}}, // function layer - blue
+    {0x00000004, 0xFFFFFFFC, {0xFF, 0x00, 0xFF}}, // settings layer - magenta
+    {0xFFFFFFFF, 0xFFFFFFFF, {0xFF, 0xFF, 0xFF}}, // unknown layer - REQUIRED - white
+};
 
 void matrix_init_kb(void)
 {