From efad5a434b79cc66627b44669a61d6dd24e1be73 Mon Sep 17 00:00:00 2001 From: Michael Richters Date: Fri, 28 May 2021 20:00:35 -0500 Subject: [PATCH] Add example sketch for AutoShift Signed-off-by: Michael Richters --- examples/Keystrokes/AutoShift/AutoShift.ino | 75 +++++++++++++++++++++ examples/Keystrokes/AutoShift/sketch.json | 6 ++ 2 files changed, 81 insertions(+) create mode 100644 examples/Keystrokes/AutoShift/AutoShift.ino create mode 100644 examples/Keystrokes/AutoShift/sketch.json diff --git a/examples/Keystrokes/AutoShift/AutoShift.ino b/examples/Keystrokes/AutoShift/AutoShift.ino new file mode 100644 index 00000000..4cc2ce88 --- /dev/null +++ b/examples/Keystrokes/AutoShift/AutoShift.ino @@ -0,0 +1,75 @@ +// -*- mode: c++ -*- + +#include + +#include +#include +#include +#include +#include + +enum { + TOGGLE_AUTOSHIFT, +}; + +// *INDENT-OFF* +KEYMAPS( + [0] = KEYMAP_STACKED + ( + Key_NoKey, Key_1, Key_2, Key_3, Key_4, Key_5, Key_NoKey, + Key_Backtick, Key_Q, Key_W, Key_E, Key_R, Key_T, Key_Tab, + Key_PageUp, Key_A, Key_S, Key_D, Key_F, Key_G, + Key_PageDown, Key_Z, Key_X, Key_C, Key_V, Key_B, Key_Escape, + + Key_LeftControl, Key_Backspace, Key_LeftGui, Key_LeftShift, + XXX, + + M(TOGGLE_AUTOSHIFT), Key_6, Key_7, Key_8, Key_9, Key_0, Key_skip, + Key_Enter, Key_Y, Key_U, Key_I, Key_O, Key_P, Key_Equals, + Key_H, Key_J, Key_K, Key_L, Key_Semicolon, Key_Quote, + Key_skip, Key_N, Key_M, Key_Comma, Key_Period, Key_Slash, Key_Minus, + + Key_RightShift, Key_RightAlt, Key_Spacebar, Key_RightControl, + XXX + ), +) +// *INDENT-ON* + +// Defining a macro (on the "any" key: see above) to turn AutoShift on and off +const macro_t *macroAction(uint8_t macro_id, KeyEvent &event) { + switch (macro_id) { + case TOGGLE_AUTOSHIFT: + if (keyToggledOn(event.state)) + AutoShift.toggle(); + break; + } + return MACRO_NONE; +} + +KALEIDOSCOPE_INIT_PLUGINS( + EEPROMSettings, // for AutoShiftConfig + EEPROMKeymap, // for AutoShiftConfig + Focus, // for AutoShiftConfig + FocusEEPROMCommand, // for AutoShiftConfig + FocusSettingsCommand, // for AutoShiftConfig + AutoShift, + AutoShiftConfig, // for AutoShiftConfig + Macros // for toggle AutoShift Macro +); + +void setup() { + // Enable AutoShift for letter keys and number keys only: + AutoShift.setEnabled(AutoShift.letterKeys() | AutoShift.numberKeys()); + // Add symbol keys to the enabled categories: + AutoShift.enable(AutoShift.symbolKeys()); + // Set the AutoShift long-press time to 150ms: + AutoShift.setTimeout(150); + // Start with AutoShift turned off: + AutoShift.disable(); + + Kaleidoscope.setup(); +} + +void loop() { + Kaleidoscope.loop(); +} diff --git a/examples/Keystrokes/AutoShift/sketch.json b/examples/Keystrokes/AutoShift/sketch.json new file mode 100644 index 00000000..884ed009 --- /dev/null +++ b/examples/Keystrokes/AutoShift/sketch.json @@ -0,0 +1,6 @@ +{ + "cpu": { + "fqbn": "keyboardio:avr:model01", + "port": "" + } +}