// -*- mode: c++ -*- #pragma once #include "Kaleidoscope-Macros.h" #include "keymap-layers.h" enum { MACRO_VERSION_INFO, MACRO_ANY, MACRO_FVWM, }; #ifndef BUILD_INFORMATION #define BUILD_INFORMATION "locally built" #endif static void versionInfoMacro(uint8_t keyState) { if (keyToggledOn(keyState)) { Macros.type(PSTR("Keyboardio Model 01 - Kaleidoscope ")); Macros.type(PSTR(BUILD_INFORMATION)); } } static void anyKeyMacro(KeyEvent &event) { if (keyToggledOn(event.state)) { event.key.setKeyCode(Key_A.getKeyCode() + (uint8_t)(millis() % 36)); event.key.setFlags(0); } } static const macro_t *fvwmMacro(KeyEvent &event) { if (keyToggledOn(event.state)) { return MACRO(D(LeftAlt),Dr(ShiftToLayer(FVWM))); } else if (keyToggledOff(event.state)) { return MACRO(Ur(ShiftToLayer(FVWM)),U(LeftAlt)); } return MACRO_NONE; } const macro_t *macroAction(uint8_t macroIndex, KeyEvent &event) { switch (macroIndex) { case MACRO_VERSION_INFO: versionInfoMacro(event.state); break; case MACRO_ANY: anyKeyMacro(event); break; case MACRO_FVWM: return fvwmMacro(event); break; } return MACRO_NONE; }