aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJesse Vincent <jesse@keyboard.io>2018-07-19 22:12:36 -0700
committerJesse Vincent <jesse@keyboard.io>2018-07-19 22:12:36 -0700
commit8526858c38da0105258c6543bad94d38a5c804e3 (patch)
tree30fa4a787c94808d78676070d796943856463504
parentAdd a Caps lock key on Fn-Let by default. (diff)
downloadkeyboardio-model01-8526858c38da0105258c6543bad94d38a5c804e3.tar.gz
keyboardio-model01-8526858c38da0105258c6543bad94d38a5c804e3.tar.bz2
keyboardio-model01-8526858c38da0105258c6543bad94d38a5c804e3.zip
Make it easier to switch to COLEMAK/DVORAK/CUSTOM layouts
-rw-r--r--Model01-Firmware.ino85
1 files changed, 82 insertions, 3 deletions
diff --git a/Model01-Firmware.ino b/Model01-Firmware.ino
index 87cfc09..1d16fdb 100644
--- a/Model01-Firmware.ino
+++ b/Model01-Firmware.ino
@@ -126,7 +126,28 @@ enum { MACRO_VERSION_INFO,
*
*/
-enum { QWERTY, NUMPAD, FUNCTION }; // layers
+enum { PRIMARY, NUMPAD, FUNCTION }; // layers
+
+
+/**
+ * To change your keyboard's layout from QWERTY to DVORAK or COLEMAK, comment out the line
+ *
+ * #define PRIMARY_KEYMAP_QWERTY
+ *
+ * by changing it to
+ *
+ * // #define PRIMARY_KEYMAP_QWERTY
+ *
+ * Then uncomment the line corresponding to the layout you want to use.
+ *
+ */
+
+#define PRIMARY_KEYMAP_QWERTY
+// #define PRIMARY_KEYMAP_COLEMAK
+// #define PRIMARY_KEYMAP_DVORAK
+// #define PRIMARY_KEYMAP_CUSTOM
+
+
/* This comment temporarily turns off astyle's indent enforcement
* so we can make the keymaps actually resemble the physical key layout better
@@ -135,7 +156,59 @@ enum { QWERTY, NUMPAD, FUNCTION }; // layers
KEYMAPS(
- [QWERTY] = KEYMAP_STACKED
+#if defined (PRIMARY_KEYMAP_QWERTY)
+ [PRIMARY] = KEYMAP_STACKED
+ (___, Key_1, Key_2, Key_3, Key_4, Key_5, Key_LEDEffectNext,
+ 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,
+ ShiftToLayer(FUNCTION),
+
+ M(MACRO_ANY), Key_6, Key_7, Key_8, Key_9, Key_0, LockLayer(NUMPAD),
+ 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_RightAlt, Key_N, Key_M, Key_Comma, Key_Period, Key_Slash, Key_Minus,
+ Key_RightShift, Key_LeftAlt, Key_Spacebar, Key_RightControl,
+ ShiftToLayer(FUNCTION)),
+
+#elif defined (PRIMARY_KEYMAP_DVORAK)
+
+ [PRIMARY] = KEYMAP_STACKED
+ (___, Key_1, Key_2, Key_3, Key_4, Key_5, Key_LEDEffectNext,
+ Key_Backtick, Key_Quote, Key_Comma, Key_Period, Key_P, Key_Y, Key_Tab,
+ Key_PageUp, Key_A, Key_O, Key_E, Key_U, Key_I,
+ Key_PageDown, Key_Semicolon, Key_Q, Key_J, Key_K, Key_X, Key_Escape,
+ Key_LeftControl, Key_Backspace, Key_LeftGui, Key_LeftShift,
+ ShiftToLayer(FUNCTION),
+
+ M(MACRO_ANY), Key_6, Key_7, Key_8, Key_9, Key_0, LockLayer(NUMPAD),
+ Key_Enter, Key_F, Key_G, Key_C, Key_R, Key_L, Key_Slash,
+ Key_D, Key_H, Key_T, Key_N, Key_S, Key_Minus,
+ Key_RightAlt, Key_B, Key_M, Key_W, Key_V, Key_Z, Key_Equals,
+ Key_RightShift, Key_LeftAlt, Key_Spacebar, Key_RightControl,
+ ShiftToLayer(FUNCTION)),
+
+#elif defined (PRIMARY_KEYMAP_COLEMAK)
+
+ [PRIMARY] = KEYMAP_STACKED
+ (___, Key_1, Key_2, Key_3, Key_4, Key_5, Key_LEDEffectNext,
+ Key_Backtick, Key_Q, Key_W, Key_F, Key_P, Key_G, Key_Tab,
+ Key_PageUp, Key_A, Key_R, Key_S, Key_T, Key_D,
+ Key_PageDown, Key_Z, Key_X, Key_C, Key_V, Key_B, Key_Escape,
+ Key_LeftControl, Key_Backspace, Key_LeftGui, Key_LeftShift,
+ ShiftToLayer(FUNCTION),
+
+ M(MACRO_ANY), Key_6, Key_7, Key_8, Key_9, Key_0, LockLayer(NUMPAD),
+ Key_Enter, Key_J, Key_L, Key_U, Key_Y, Key_Semicolon, Key_Equals,
+ Key_H, Key_N, Key_E, Key_I, Key_O, Key_Quote,
+ Key_RightAlt, Key_K, Key_M, Key_Comma, Key_Period, Key_Slash, Key_Minus,
+ Key_RightShift, Key_LeftAlt, Key_Spacebar, Key_RightControl,
+ ShiftToLayer(FUNCTION)),
+
+#elif defined (PRIMARY_KEYMAP_CUSTOM)
+ // Edit this keymap to make a custom layout
+ [PRIMARY] = KEYMAP_STACKED
(___, Key_1, Key_2, Key_3, Key_4, Key_5, Key_LEDEffectNext,
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,
@@ -150,6 +223,13 @@ KEYMAPS(
Key_RightShift, Key_LeftAlt, Key_Spacebar, Key_RightControl,
ShiftToLayer(FUNCTION)),
+#else
+
+#error "No default keymap defined. You should make sure that you have a line like '#define PRIMARY_KEYMAP_QWERTY' in your sketch"
+
+#endif
+
+
[NUMPAD] = KEYMAP_STACKED
(___, ___, ___, ___, ___, ___, ___,
@@ -180,7 +260,6 @@ KEYMAPS(
Key_PcApplication, Consumer_Mute, Consumer_VolumeDecrement, Consumer_VolumeIncrement, ___, Key_Backslash, Key_Pipe,
___, ___, Key_Enter, ___,
___)
-
) // KEYMAPS(
/* Re-enable astyle's indent enforcement */