summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordakkar <dakkar@thenautilus.net>2019-02-22 12:24:18 +0000
committerdakkar <dakkar@thenautilus.net>2019-02-22 12:26:05 +0000
commit17faf830fbe12222e64d9b92ac14cb1c8742ac96 (patch)
tree176699d113aa1d4c409898dc540769c9019d6cd9
parentmove layer declaration to its own header (diff)
downloadkeyboardio-model01-17faf830fbe12222e64d9b92ac14cb1c8742ac96.tar.gz
keyboardio-model01-17faf830fbe12222e64d9b92ac14cb1c8742ac96.tar.bz2
keyboardio-model01-17faf830fbe12222e64d9b92ac14cb1c8742ac96.zip
numlock as a macro
Press the NumLock key, switch the layer. Previously, pressing the NumLock key was handled by the NumPad plugin (which mostly deals with LED colors). I stopped using that plugin when I built my own LED plugin. Also, recently the NumPad plugin stopped handling the NumLock press, so we really need to do it here.
-rw-r--r--keymaps.h2
-rw-r--r--macros.h20
2 files changed, 20 insertions, 2 deletions
diff --git a/keymaps.h b/keymaps.h
index 4932ab1..70b0e8f 100644
--- a/keymaps.h
+++ b/keymaps.h
@@ -12,7 +12,7 @@ ColorKeymaps(
CK(Key_LeftControl,Base), CK(Key_Backspace,Base), CK(Key_LeftGui,Base), CK(Key_LeftShift,Base),
CK(ShiftToLayer(FVWM),Base),
- CK(M(MACRO_ANY),Base), CK(Key_6,Base), CK(Key_7,Base), CK(Key_8,Base), CK(Key_9,Base), CK(Key_0,Base), CK(LockLayer(NUMPAD),Base),
+ CK(M(MACRO_ANY),Base), CK(Key_6,Base), CK(Key_7,Base), CK(Key_8,Base), CK(Key_9,Base), CK(Key_0,Base), CK(M(MACRO_NUMLOCK),Base),
CK(Key_Enter,Base), CK(Key_Y,Base), CK(Key_U,Base), CK(Key_I,Base), CK(Key_O,Base), CK(Key_P,Base), CK(Key_Equals,Base),
CK(Key_H,Base), CK(Key_J,Base), CK(Key_K,Base), CK(Key_L,Base), CK(Key_Semicolon,Base), CK(Key_Quote,Base),
CK(Key_RightAlt,Base), CK(Key_N,Base), CK(Key_M,Base), CK(Key_Comma,Base), CK(Key_Period,Base), CK(Key_Slash,Base), CK(Key_Minus,Base),
diff --git a/macros.h b/macros.h
index 06df775..715d2bc 100644
--- a/macros.h
+++ b/macros.h
@@ -2,9 +2,11 @@
#pragma once
#include "kaleidoscope/plugin/Macros.h"
+#include "keymap-layers.h"
enum { MACRO_VERSION_INFO,
- MACRO_ANY
+ MACRO_ANY,
+ MACRO_NUMLOCK,
};
#ifndef BUILD_INFORMATION
@@ -30,6 +32,18 @@ static void anyKeyMacro(uint8_t keyState) {
kaleidoscope::hid::pressKey(lastKey, toggledOn);
}
+static void numLockMacro(uint8_t keyState) {
+ if (keyToggledOn(keyState)) {
+ kaleidoscope::hid::pressKey(Key_KeypadNumLock);
+ if (Layer.isActive(NUMPAD)) {
+ Layer.deactivate(NUMPAD);
+ }
+ else {
+ Layer.activate(NUMPAD);
+ }
+ }
+}
+
const macro_t *macroAction(uint8_t macroIndex, uint8_t keyState) {
switch (macroIndex) {
@@ -40,6 +54,10 @@ const macro_t *macroAction(uint8_t macroIndex, uint8_t keyState) {
case MACRO_ANY:
anyKeyMacro(keyState);
break;
+
+ case MACRO_NUMLOCK:
+ numLockMacro(keyState);
+ break;
}
return MACRO_NONE;
}