diff --git a/plugins/Kaleidoscope-Hardware-Keyboardio-Model100/examples/FactoryFirmware/FactoryFirmware.ino b/plugins/Kaleidoscope-Hardware-Keyboardio-Model100/examples/FactoryFirmware/FactoryFirmware.ino index 50fc9053..4f440409 100644 --- a/plugins/Kaleidoscope-Hardware-Keyboardio-Model100/examples/FactoryFirmware/FactoryFirmware.ino +++ b/plugins/Kaleidoscope-Hardware-Keyboardio-Model100/examples/FactoryFirmware/FactoryFirmware.ino @@ -1,5 +1,5 @@ // -*- mode: c++ -*- -// Copyright 2016 Keyboardio, inc. +// Copyright 2016-2022 Keyboardio, inc. // See "LICENSE" for license details #ifndef BUILD_INFORMATION @@ -63,6 +63,12 @@ // Support for an LED mode that lets one configure per-layer color maps #include "Kaleidoscope-Colormap.h" +// Support for turning the LEDs off after a certain amount of time +#include "Kaleidoscope-IdleLEDs.h" + +// Support for setting a default LED mode +#include "Kaleidoscope-PersistentLEDMode.h" + // Support for Keyboardio's internal keyboard testing mode #include "Kaleidoscope-HardwareTestMode.h" @@ -75,6 +81,16 @@ // Support for USB quirks, like changing the key state report protocol #include "Kaleidoscope-USB-Quirks.h" +// Support for secondary actions on keys +#include "Kaleidoscope-Qukeys.h" + +// Support for one-shot modifiers and layer keys +#include "Kaleidoscope-OneShot.h" +#include "Kaleidoscope-Escape-OneShot.h" + +// Support for dynamic, Chrysalis-editable macros +#include "Kaleidoscope-DynamicMacros.h" + /** This 'enum' is a list of all the macros used by the Model 100's firmware * The names aren't particularly important. What is important is that each * is unique. @@ -516,7 +532,28 @@ KALEIDOSCOPE_INIT_PLUGINS( // comfortable - or able - to do automatically, but can be useful // nevertheless. Such as toggling the key report protocol between Boot (used // by BIOSes) and Report (NKRO). - USBQuirks); + USBQuirks, + + // The Qukeys plugin enables the "Secondary action" functionality in + // Chrysalis. Keys with secondary actions will have their primary action + // performed when tapped, but the secondary action when held. + Qukeys, + + // Enables the "Sticky" behavior for modifiers, and the "Layer shift when + // held" functionality for layer keys. + OneShot, + EscapeOneShot, + EscapeOneShotConfig, + + // Turns LEDs off after a configurable amount of idle time. + IdleLEDs, + PersistentIdleLEDs, + + // Enables setting a default LED mode without compiling new firmware. + PersistentLEDMode, + + // Enables dynamic, Chrysalis-editable macros. + DynamicMacros); /** The 'setup' function is one of the two standard Arduino sketch functions. * It's called when your keyboard first powers up. This is where you set up @@ -546,22 +583,21 @@ void setup() { // https://github.com/keyboardio/Kaleidoscope/blob/master/docs/plugins/LED-Stalker.md StalkerEffect.variant = STALKER(BlazingTrail); - // We want to make sure that the firmware starts with LED effects off - // This avoids over-taxing devices that don't have a lot of power to share - // with USB devices - LEDOff.activate(); - // To make the keymap editable without flashing new firmware, we store - // additional layers in EEPROM. For now, we reserve space for five layers. If + // additional layers in EEPROM. For now, we reserve space for eight layers. If // one wants to use these layers, just set the default layer to one in EEPROM, // by using the `settings.defaultLayer` Focus command, or by using the // `keymap.onlyCustom` command to use EEPROM layers only. - EEPROMKeymap.setup(5); + EEPROMKeymap.setup(8); // We need to tell the Colormap plugin how many layers we want to have custom - // maps for. To make things simple, we set it to five layers, which is how + // maps for. To make things simple, we set it to eight layers, which is how // many editable layers we have (see above). - ColormapEffect.max_layers(5); + ColormapEffect.max_layers(8); + + // For Dynamic Macros, we need to reserve storage space for the editable + // macros. A kilobyte is a reasonable default. + DynamicMacros.reserve_storage(1024); } /** loop is the second of the standard Arduino sketch functions.