|
|
|
@ -6,53 +6,54 @@
|
|
|
|
|
#define BUILD_INFORMATION "locally built on " __DATE__ " at " __TIME__
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#include "Kaleidoscope.h"
|
|
|
|
|
#include "Kaleidoscope-EEPROM-Settings.h"
|
|
|
|
|
#include "Kaleidoscope-Colormap.h"
|
|
|
|
|
#include "Kaleidoscope-EEPROM-Keymap.h"
|
|
|
|
|
#include "Kaleidoscope-EEPROM-Settings.h"
|
|
|
|
|
#include "Kaleidoscope-FocusSerial.h"
|
|
|
|
|
#include "Kaleidoscope-MouseKeys.h"
|
|
|
|
|
#include "Kaleidoscope-Macros.h"
|
|
|
|
|
#include "Kaleidoscope-HardwareTestMode.h"
|
|
|
|
|
#include "Kaleidoscope-HostPowerManagement.h"
|
|
|
|
|
#include "Kaleidoscope-LED-Palette-Theme.h"
|
|
|
|
|
#include "Kaleidoscope-LED-Stalker.h"
|
|
|
|
|
#include "Kaleidoscope-LEDControl.h"
|
|
|
|
|
#include "Kaleidoscope-LEDEffect-BootGreeting.h"
|
|
|
|
|
#include "Kaleidoscope-LEDEffect-Rainbow.h"
|
|
|
|
|
#include "Kaleidoscope-LED-Stalker.h"
|
|
|
|
|
#include "Kaleidoscope-LED-Palette-Theme.h"
|
|
|
|
|
#include "Kaleidoscope-Colormap.h"
|
|
|
|
|
#include "Kaleidoscope-HardwareTestMode.h"
|
|
|
|
|
#include "Kaleidoscope-HostPowerManagement.h"
|
|
|
|
|
#include "Kaleidoscope-Macros.h"
|
|
|
|
|
#include "Kaleidoscope-MagicCombo.h"
|
|
|
|
|
#include "Kaleidoscope-MouseKeys.h"
|
|
|
|
|
#include "Kaleidoscope-USB-Quirks.h"
|
|
|
|
|
#include "Kaleidoscope.h"
|
|
|
|
|
|
|
|
|
|
#include "LayerBasedTheme.h"
|
|
|
|
|
|
|
|
|
|
enum {
|
|
|
|
|
MACRO_VERSION_INFO,
|
|
|
|
|
MACRO_ANY,
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/** The Model 100's key layouts are defined as 'keymaps'.
|
|
|
|
|
*
|
|
|
|
|
* Each keymap is defined as a list using the 'KEYMAP_STACKED' macro, built
|
|
|
|
|
* of first the left hand's layout, followed by the right hand's layout.
|
|
|
|
|
*
|
|
|
|
|
* Keymaps typically consist mostly of `Key_` definitions. There are many, many keys
|
|
|
|
|
* defined as part of the USB HID Keyboard specification. You can find the names
|
|
|
|
|
* (if not yet the explanations) for all the standard `Key_` defintions offered by
|
|
|
|
|
* Kaleidoscope in these files:
|
|
|
|
|
* https://github.com/keyboardio/Kaleidoscope/blob/master/src/kaleidoscope/key_defs/keyboard.h
|
|
|
|
|
* https://github.com/keyboardio/Kaleidoscope/blob/master/src/kaleidoscope/key_defs/consumerctl.h
|
|
|
|
|
* https://github.com/keyboardio/Kaleidoscope/blob/master/src/kaleidoscope/key_defs/sysctl.h
|
|
|
|
|
* https://github.com/keyboardio/Kaleidoscope/blob/master/src/kaleidoscope/key_defs/keymaps.h
|
|
|
|
|
*
|
|
|
|
|
* Additional things that should be documented here include
|
|
|
|
|
* using ___ to let keypresses fall through to the previously active layer
|
|
|
|
|
* using XXX to mark a keyswitch as 'blocked' on this layer
|
|
|
|
|
* using ShiftToLayer() and LockLayer() keys to change the active keymap.
|
|
|
|
|
* keeping NUM and FN consistent and accessible on all layers
|
|
|
|
|
*
|
|
|
|
|
* A key defined as 'ShiftToLayer(FUNCTION)' will switch to FUNCTION while held.
|
|
|
|
|
* Similarly, a key defined as 'LockLayer(FUNCTION)' will switch to FUNCTION when tapped.
|
|
|
|
|
*/
|
|
|
|
|
*
|
|
|
|
|
* Each keymap is defined as a list using the 'KEYMAP_STACKED' macro, built
|
|
|
|
|
* of first the left hand's layout, followed by the right hand's layout.
|
|
|
|
|
*
|
|
|
|
|
* Keymaps typically consist mostly of `Key_` definitions. There are many, many
|
|
|
|
|
* keys defined as part of the USB HID Keyboard specification. You can find the
|
|
|
|
|
* names (if not yet the explanations) for all the standard `Key_` defintions
|
|
|
|
|
* offered by Kaleidoscope in these files:
|
|
|
|
|
* https://github.com/keyboardio/Kaleidoscope/blob/master/src/kaleidoscope/key_defs/keyboard.h
|
|
|
|
|
* https://github.com/keyboardio/Kaleidoscope/blob/master/src/kaleidoscope/key_defs/consumerctl.h
|
|
|
|
|
* https://github.com/keyboardio/Kaleidoscope/blob/master/src/kaleidoscope/key_defs/sysctl.h
|
|
|
|
|
* https://github.com/keyboardio/Kaleidoscope/blob/master/src/kaleidoscope/key_defs/keymaps.h
|
|
|
|
|
*
|
|
|
|
|
* Additional things that should be documented here include
|
|
|
|
|
* using ___ to let keypresses fall through to the previously active layer
|
|
|
|
|
* using XXX to mark a keyswitch as 'blocked' on this layer
|
|
|
|
|
* using ShiftToLayer() and LockLayer() keys to change the active keymap.
|
|
|
|
|
* keeping NUM and FN consistent and accessible on all layers
|
|
|
|
|
*
|
|
|
|
|
* A key defined as 'ShiftToLayer(FUNCTION)' will switch to FUNCTION while held.
|
|
|
|
|
* Similarly, a key defined as 'LockLayer(FUNCTION)' will switch to FUNCTION
|
|
|
|
|
* when tapped.
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
enum {
|
|
|
|
|
PRIMARY,
|
|
|
|
@ -66,7 +67,6 @@ enum {
|
|
|
|
|
ONEHAND_RIGHT,
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* This comment temporarily turns off astyle's indent enforcement
|
|
|
|
|
* so we can make the keymaps actually resemble the physical key layout better
|
|
|
|
|
*/
|
|
|
|
@ -240,8 +240,8 @@ const macro_t *macroAction(uint8_t macro_id, KeyEvent &event) {
|
|
|
|
|
return MACRO_NONE;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void toggleLedsOnSuspendResume(kaleidoscope::plugin::HostPowerManagement::Event event) {
|
|
|
|
|
void toggleLedsOnSuspendResume(
|
|
|
|
|
kaleidoscope::plugin::HostPowerManagement::Event event) {
|
|
|
|
|
switch (event) {
|
|
|
|
|
case kaleidoscope::plugin::HostPowerManagement::Suspend:
|
|
|
|
|
LEDControl.disable();
|
|
|
|
@ -254,14 +254,12 @@ void toggleLedsOnSuspendResume(kaleidoscope::plugin::HostPowerManagement::Event
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void hostPowerManagementEventHandler(kaleidoscope::plugin::HostPowerManagement::Event event) {
|
|
|
|
|
void hostPowerManagementEventHandler(
|
|
|
|
|
kaleidoscope::plugin::HostPowerManagement::Event event) {
|
|
|
|
|
toggleLedsOnSuspendResume(event);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
enum {
|
|
|
|
|
COMBO_TOGGLE_NKRO_MODE,
|
|
|
|
|
COMBO_ENTER_TEST_MODE
|
|
|
|
|
};
|
|
|
|
|
enum { COMBO_TOGGLE_NKRO_MODE, COMBO_ENTER_TEST_MODE };
|
|
|
|
|
|
|
|
|
|
static void toggleKeyboardProtocol(uint8_t combo_index) {
|
|
|
|
|
USBQuirks.toggleKeyboardProtocol();
|
|
|
|
@ -296,7 +294,9 @@ KALEIDOSCOPE_INIT_PLUGINS(
|
|
|
|
|
MouseKeys,
|
|
|
|
|
HostPowerManagement,
|
|
|
|
|
MagicCombo,
|
|
|
|
|
USBQuirks);
|
|
|
|
|
USBQuirks,
|
|
|
|
|
LayerBasedTheme
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
void setup() {
|
|
|
|
|
Kaleidoscope.setup();
|
|
|
|
|