ergodox-firmware/firmware/keyboard/ergodox/layout/colemak-symbol-mod.c

198 lines
9.1 KiB
C
Raw Normal View History

2013-01-22 08:33:08 +01:00
/* ----------------------------------------------------------------------------
* Copyright (c) 2013 Ben Blazak <benblazak.dev@gmail.com>
2013-02-01 11:18:27 +01:00
* Released under The MIT License (see "doc/licenses/MIT.md")
2013-01-22 08:33:08 +01:00
* Project located at <https://github.com/benblazak/ergodox-firmware>
* ------------------------------------------------------------------------- */
2013-01-27 09:00:47 +01:00
/** description
* A Colemak layout (modified from the Kinesis layout).
2013-01-22 08:33:08 +01:00
*
2013-01-27 09:00:47 +01:00
* Implements the "layout" section of '.../firmware/keyboard.h'
*
2013-01-27 09:00:47 +01:00
* History:
* - Originally submitted by Jason Trill [jjt] (https://github.com/jjt) (who
* declined to be added to the copyright above).
2013-04-07 08:37:16 +02:00
* - Various changes have been made since (see git history)
2013-01-22 08:33:08 +01:00
*/
2013-04-07 08:37:16 +02:00
#include "./common/definitions.h"
2013-01-22 08:33:08 +01:00
// ----------------------------------------------------------------------------
// matrix control
// ----------------------------------------------------------------------------
2013-04-07 08:37:16 +02:00
#include "./common/exec_key.c.h"
2013-01-22 08:33:08 +01:00
// ----------------------------------------------------------------------------
// LED control
// ----------------------------------------------------------------------------
void kb__led__logical_on(char led) {
2013-04-07 08:37:16 +02:00
switch(led) {
2013-01-22 08:33:08 +01:00
case 'N': kb__led__on(1); break; // numlock
case 'C': kb__led__on(2); break; // capslock
case 'S': kb__led__on(3); break; // scroll lock
case 'O': break; // compose
case 'K': break; // kana
};
}
void kb__led__logical_off(char led) {
2013-04-07 08:37:16 +02:00
switch(led) {
2013-01-22 08:33:08 +01:00
case 'N': kb__led__off(1); break; // numlock
case 'C': kb__led__off(2); break; // capslock
case 'S': kb__led__off(3); break; // scroll lock
case 'O': break; // compose
case 'K': break; // kana
};
}
// ----------------------------------------------------------------------------
// keys
// ----------------------------------------------------------------------------
2013-04-07 08:37:16 +02:00
#include "./common/keys.c.h"
KEYS__LAYER__NUM_PU_PO(10, 4);
KEYS__LAYER__NUM_PUSH(10, 4);
KEYS__LAYER__NUM_POP(10);
2013-01-22 08:33:08 +01:00
// ----------------------------------------------------------------------------
// layout
// ----------------------------------------------------------------------------
2013-04-07 08:37:16 +02:00
#include "./common/matrix.h"
_layout_t _layout = {
2013-01-22 08:33:08 +01:00
// ............................................................................
MATRIX_LAYER( // layer 0 : default (colemak)
2013-04-07 08:37:16 +02:00
// macro, unused,
K, nop,
2013-01-22 08:33:08 +01:00
// left hand ...... ......... ......... ......... ......... ......... .........
2013-04-07 08:37:16 +02:00
equal, 1, 2, 3, 4, 5, lpu2l2,
tab, q, w, f, p, g, esc,
ctrlL, a, r, s, t, d,
shL2kcap, z, x, c, v, b, lpupo2l2,
guiL, grave, bkslash, altL, lpupo1l1,
ctrlL, altL,
nop, nop, home,
space, enter, end,
2013-01-22 08:33:08 +01:00
// right hand ..... ......... ......... ......... ......... ......... .........
2013-04-07 08:37:16 +02:00
numPush, 6, 7, 8, 9, 0, dash,
esc, j, l, u, y, semicol, bkslash,
h, n, e, i, o, quote,
numPuPo, k, m, comma, period, slash, shR2kcap,
lpupo1l1, arrowL, arrowD, arrowU, arrowR,
altR, ctrlR,
pageU, nop, nop,
pageD, del, bs ),
2013-01-22 08:33:08 +01:00
// ............................................................................
MATRIX_LAYER( // layer 1 : function and symbol keys
2013-04-07 08:37:16 +02:00
// macro, unused,
K, nop,
2013-01-22 08:33:08 +01:00
// left hand ...... ......... ......... ......... ......... ......... .........
2013-04-07 08:37:16 +02:00
transp, F1, F2, F3, F4, F5, F11,
transp, braceL, braceR, brktL, brktR, colon, transp,
transp, bkslash, slash, parenL, parenR, semicol,
transp, exclam, at, pound, dollar, percent, transp,
transp, transp, transp, transp, lpupo3l3,
transp, transp,
transp, transp, transp,
transp, transp, transp,
2013-01-22 08:33:08 +01:00
// right hand ..... ......... ......... ......... ......... ......... .........
2013-04-07 08:37:16 +02:00
F12, F6, F7, F8, F9, F10, power,
transp, nop, equal, plus, dash, undersc, nop,
arrowL, arrowD, arrowU, arrowR, nop, nop,
transp, caret, amp, asterisk, parenL, parenR, transp,
lpupo3l3, transp, transp, transp, transp,
transp, transp,
transp, transp, transp,
transp, transp, transp ),
2013-01-22 08:33:08 +01:00
// ............................................................................
MATRIX_LAYER( // layer 2 : QWERTY alphanum
2013-04-07 08:37:16 +02:00
// macro, unused,
K, nop,
2013-01-22 08:33:08 +01:00
// left hand ...... ......... ......... ......... ......... ......... .........
2013-04-07 08:37:16 +02:00
transp, 1, 2, 3, 4, 5, lpo2l2,
transp, q, w, e, r, t, transp,
transp, a, s, d, f, g,
transp, z, x, c, v, b, transp,
transp, transp, transp, transp, transp, transp,
transp, transp,
transp, transp, transp,
transp, transp, transp,
2013-01-22 08:33:08 +01:00
// right hand ..... ......... ......... ......... ......... ......... .........
2013-04-07 08:37:16 +02:00
transp, 6, 7, 8, 9, 0, transp,
transp, y, u, i, o, p, transp,
h, j, k, l, semicol, transp,
transp, n, m, comma, period, slash, transp,
transp, transp, transp, transp, transp,
transp, transp,
transp, transp, transp,
transp, transp, transp ),
2013-01-22 08:33:08 +01:00
// ............................................................................
2013-04-07 08:37:16 +02:00
MATRIX_LAYER( // layer 3 : keyboard functions
// macro, unused,
K, nop,
// left hand ...... ......... ......... ......... ......... ......... .........
btldr, nop, nop, nop, nop, nop, nop,
nop, nop, nop, nop, nop, nop, nop,
nop, nop, nop, nop, nop, nop,
nop, nop, nop, nop, nop, nop, nop,
nop, nop, nop, nop, nop,
nop, nop,
nop, nop, nop,
nop, nop, nop,
// right hand ..... ......... ......... ......... ......... ......... .........
nop, nop, nop, nop, nop, nop, nop,
nop, nop, nop, nop, nop, nop, nop,
nop, nop, nop, nop, nop, nop,
nop, nop, nop, nop, nop, nop, nop,
nop, nop, nop, nop, nop,
nop, nop,
nop, nop, nop,
nop, nop, nop ),
// ............................................................................
MATRIX_LAYER( // layer 4 : numpad
// macro, unused,
K, nop,
2013-01-22 08:33:08 +01:00
// left hand ...... ......... ......... ......... ......... ......... .........
2013-04-07 08:37:16 +02:00
transp, transp, transp, transp, transp, transp, transp,
transp, transp, transp, transp, transp, transp, transp,
transp, transp, transp, transp, transp, transp,
transp, transp, transp, transp, transp, transp, transp,
transp, ins, transp, transp, transp,
transp, transp,
transp, transp, transp,
transp, transp, transp,
2013-01-22 08:33:08 +01:00
// right hand ..... ......... ......... ......... ......... ......... .........
2013-04-07 08:37:16 +02:00
numPop, transp, numPop, equal, kpDiv, kpMul, transp,
transp, transp, kp7, kp8, kp9, kpSub, transp,
transp, kp4, kp5, kp6, kpAdd, transp,
transp, transp, kp1, kp2, kp3, kpEnter, transp,
transp, transp, period, kpEnter, transp,
transp, transp,
transp, transp, transp,
transp, transp, kp0 ),
2013-01-22 08:33:08 +01:00
// ............................................................................
};