-
Notifications
You must be signed in to change notification settings - Fork 300
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Signed-off-by: Andrew Gallagher <[email protected]> Signed-off-by: Andrew Gallagher <[email protected]>
- Loading branch information
1 parent
c24497f
commit 0cfbb9f
Showing
2 changed files
with
182 additions
and
182 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,180 @@ | ||
/** The Model 01's key layouts are defined as 'keymaps'. By default, there are three | ||
* keymaps: The standard QWERTY keymap, the "Function layer" keymap and the "Numpad" | ||
* keymap. | ||
* | ||
* 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/key_defs_keyboard.h | ||
* https://github.com/keyboardio/Kaleidoscope/blob/master/src/key_defs_consumerctl.h | ||
* https://github.com/keyboardio/Kaleidoscope/blob/master/src/key_defs_sysctl.h | ||
* https://github.com/keyboardio/Kaleidoscope/blob/master/src/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. | ||
* the special nature of the PROG key | ||
* keeping NUM and FN consistent and accessible on all layers | ||
* | ||
* | ||
* The "keymaps" data structure is a list of the keymaps compiled into the firmware. | ||
* The order of keymaps in the list is important, as the ShiftToLayer(#) and LockLayer(#) | ||
* macros switch to key layers based on this list. | ||
* | ||
* | ||
* A key defined as 'ShiftToLayer(FUNCTION)' will switch to FUNCTION while held. | ||
* Similarly, a key defined as 'LockLayer(NUMPAD)' will switch to NUMPAD when tapped. | ||
*/ | ||
|
||
/** | ||
* Layers are "0-indexed" -- That is the first one is layer 0. The second one is layer 1. | ||
* The third one is layer 2. | ||
* This 'enum' lets us use names like QWERTY, FUNCTION, and NUMPAD in place of | ||
* the numbers 0, 1 and 2. | ||
* | ||
*/ | ||
|
||
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 | ||
*/ | ||
// *INDENT-OFF* | ||
|
||
KEYMAPS( | ||
|
||
#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, | ||
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)), | ||
|
||
#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 | ||
(___, ___, ___, ___, ___, ___, ___, | ||
___, ___, ___, ___, ___, ___, ___, | ||
___, ___, ___, ___, ___, ___, | ||
___, ___, ___, ___, ___, ___, ___, | ||
___, ___, ___, ___, | ||
___, | ||
|
||
M(MACRO_VERSION_INFO), ___, Key_Keypad7, Key_Keypad8, Key_Keypad9, Key_KeypadSubtract, ___, | ||
___, ___, Key_Keypad4, Key_Keypad5, Key_Keypad6, Key_KeypadAdd, ___, | ||
___, Key_Keypad1, Key_Keypad2, Key_Keypad3, Key_Equals, ___, | ||
___, ___, Key_Keypad0, Key_KeypadDot, Key_KeypadMultiply, Key_KeypadDivide, Key_Enter, | ||
___, ___, ___, ___, | ||
___), | ||
|
||
[FUNCTION] = KEYMAP_STACKED | ||
(___, Key_F1, Key_F2, Key_F3, Key_F4, Key_F5, Key_CapsLock, | ||
Key_Tab, ___, Key_mouseUp, ___, Key_mouseBtnR, Key_mouseWarpEnd, Key_mouseWarpNE, | ||
Key_Home, Key_mouseL, Key_mouseDn, Key_mouseR, Key_mouseBtnL, Key_mouseWarpNW, | ||
Key_End, Key_PrintScreen, Key_Insert, ___, Key_mouseBtnM, Key_mouseWarpSW, Key_mouseWarpSE, | ||
___, Key_Delete, ___, ___, | ||
___, | ||
|
||
Consumer_ScanPreviousTrack, Key_F6, Key_F7, Key_F8, Key_F9, Key_F10, Key_F11, | ||
Consumer_PlaySlashPause, Consumer_ScanNextTrack, Key_LeftCurlyBracket, Key_RightCurlyBracket, Key_LeftBracket, Key_RightBracket, Key_F12, | ||
Key_LeftArrow, Key_DownArrow, Key_UpArrow, Key_RightArrow, ___, ___, | ||
Key_PcApplication, Consumer_Mute, Consumer_VolumeDecrement, Consumer_VolumeIncrement, ___, Key_Backslash, Key_Pipe, | ||
___, ___, Key_Enter, ___, | ||
___) | ||
) // KEYMAPS( | ||
|
||
/* Re-enable astyle's indent enforcement */ | ||
// *INDENT-ON* |