ergodox-firmware/src/keyboard/ergodox/layout/saneo-mod.c

339 lines
13 KiB
C
Raw Normal View History

2015-07-20 20:43:50 +02:00
/* ----------------------------------------------------------------------------
* ergoDOX layout : saneo
* ----------------------------------------------------------------------------
* Copyright (c) 2012 Ben Blazak <benblazak.dev@gmail.com>
* Released under The MIT License (MIT) (see "license.md")
* Project located at <https://github.com/benblazak/ergodox-firmware>
* ------------------------------------------------------------------------- */
#include <stdint.h>
#include <stddef.h>
#include <avr/pgmspace.h>
#include "../../../lib/data-types/misc.h"
#include "../../../lib/usb/usage-page/keyboard--short-names.h"
#include "../../../lib/key-functions/public.h"
#include "../matrix.h"
#include "../layout.h"
// ----------------------------------------------------------------------------
// ----------------------------------------------------------------------------
const uint8_t PROGMEM _kb_layout[KB_LAYERS][KB_ROWS][KB_COLUMNS] = {
KB_MATRIX_LAYER( // layout: layer 0: default
// unused
0,
// left hand
2015-07-22 22:27:58 +02:00
_0, _1, _2, _3, _4, _5, _6,
2015-07-22 23:04:15 +02:00
_X, _X, _V, _L, _C, _W, 0,
2015-07-22 23:01:29 +02:00
_altR, _U, _I, _A, _E, _O,
2015-07-30 10:06:22 +02:00
_shiftL, _5, _8 , _semicolon, _P, _Z, _enter,
2015-07-22 22:27:58 +02:00
_arrowL, _arrowU, _arrowD, _arrowR, _guiL,
2015-11-02 16:24:46 +01:00
_scrollLock, _scrollLock,
_space, _ctrlL, _altL,
2015-07-22 22:27:58 +02:00
_space, _ctrlL, _altL,
2015-07-20 20:43:50 +02:00
// right hand
2015-12-08 08:55:00 +01:00
_5, _6, _7, _8, _9, _0, _0,
0, _K, _H, _G, _F, _Q, _Q,
_S, _N, _R, _T, _D, _altR,
_enter, _B, _M, _J, _Y, _semicolon, _shiftR,
2, _arrowL, _arrowU, _arrowD, _arrowR,
0, 0,
_application, _altL, 1,
_application, _altL, 1 ),
2015-07-20 20:43:50 +02:00
KB_MATRIX_LAYER( // layout: layer 1: function and symbol keys
// unused
0,
// left hand
_F11, _F1, _F2, _F3, _F4, _F5, _F6,
0, _grave, _bracketL, _quote, _comma, _backslash, 0,
0, _comma, _bracketL, _slash, _1, _9,
0, _grave, _6, _backslash, _dash, _2, 0,
0, 0, 0, 0, 0,
0, 0,
2015-11-02 16:24:46 +01:00
_space, 0, 0,
2015-08-01 07:56:11 +02:00
_space, 0, 0,
2015-07-20 20:43:50 +02:00
// right hand
_F5, _F6, _F7, _F8, _F9, _F10, _F12,
0, _equal, _period, _quote, _bracketR, _grave, 0,
_0, _dash, _slash, _bracketR, _period, 0,
0, _equal, _4, _7, _3, _6, 0,
0, 0, 0, 0, 0,
0, 0,
0, 0, 0,
0, 0, 0 ),
2015-07-20 20:43:50 +02:00
KB_MATRIX_LAYER( // layout: layer 2: keyboard functions
// unused
0,
// left hand
_F11, _F1, _F2, _F3, _F4, _F5, _F6,
0, _esc, _bs, _enter, _del, _insert, 0,
0, _arrowL, _arrowU, _arrowD, _arrowR, _tab,
0, _home, _pageU, _pageD, _end, 0, 0,
0, 0, 0, 0, 0,
0, 0,
0, 0, 0,
0, 0, 0,
2015-07-20 20:43:50 +02:00
// right hand
2015-12-09 11:20:56 +01:00
_F5, _F6, _F7, _F8, _F9, _F10, _F12,
0, 0, 0, 0, 0, 0, 0,
0, _bs, _del, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0,
0, 0,
0, 0, 0,
0, 0, 0 ),
2015-07-20 20:43:50 +02:00
KB_MATRIX_LAYER( // layout: layer 3: numpad
// unused
0,
// left hand
0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0,
0, 0,
0, 0, 0,
0, 0, 0,
// right hand
0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0,
0, 0,
0, 0, 0,
0, 0, 0 ),
};
// ----------------------------------------------------------------------------
// ----------------------------------------------------------------------------
// aliases
// basic
#define kprrel &kbfun_press_release
#define ktog &kbfun_toggle
#define ktrans &kbfun_transparent
// --- layer push/pop functions
#define lpush1 &kbfun_layer_push_1
#define lpush2 &kbfun_layer_push_2
#define lpush3 &kbfun_layer_push_3
#define lpop1 &kbfun_layer_pop_1
#define lpop2 &kbfun_layer_pop_2
#define lpop3 &kbfun_layer_pop_3
2015-07-22 22:27:58 +02:00
#define latch1 &kbfun_layer_sticky_1
#define latch2 &kbfun_layer_sticky_2
#define latch3 &kbfun_layer_sticky_3
2015-07-20 20:43:50 +02:00
// ---
// special
2015-12-09 11:20:56 +01:00
#define shifted &kbfun_shift_press_release
#define ctrled &kbfun_control_press_release
2015-07-20 20:43:50 +02:00
#define s2kcap &kbfun_2_keys_capslock_press_release
#define slpunum &kbfun_layer_push_numpad
#define slponum &kbfun_layer_pop_numpad
// ----------------------------------------------------------------------------
// ----------------------------------------------------------------------------
const void_funptr_t PROGMEM _kb_layout_press[KB_LAYERS][KB_ROWS][KB_COLUMNS] = {
KB_MATRIX_LAYER( // press: layer 0: default
// unused
NULL,
// left hand
kprrel, kprrel, kprrel, kprrel, kprrel, kprrel, kprrel,
kprrel, kprrel, kprrel, kprrel, kprrel, kprrel, kprrel,
2015-07-22 23:01:29 +02:00
kprrel, kprrel, kprrel, kprrel, kprrel, kprrel,
2015-12-09 11:20:56 +01:00
s2kcap,shifted,shifted,shifted, kprrel, kprrel, kprrel,
2015-07-20 20:43:50 +02:00
kprrel, kprrel, kprrel, kprrel, kprrel,
kprrel, kprrel,
2015-11-02 16:24:46 +01:00
kprrel, kprrel, kprrel,
2015-07-20 20:43:50 +02:00
kprrel, kprrel, kprrel,
// right hand
kprrel, kprrel, kprrel, kprrel, kprrel, kprrel, kprrel,
kprrel, kprrel, kprrel, kprrel, kprrel, kprrel, kprrel,
2015-07-22 23:01:29 +02:00
kprrel, kprrel, kprrel, kprrel, kprrel, kprrel,
2015-07-20 20:43:50 +02:00
kprrel, kprrel, kprrel, kprrel, kprrel, kprrel, s2kcap,
2015-07-21 09:58:59 +02:00
lpush2, kprrel, kprrel, kprrel, kprrel,
2015-07-20 20:43:50 +02:00
kprrel, kprrel,
2015-11-02 16:24:46 +01:00
kprrel, kprrel, latch1,
2015-07-22 22:27:58 +02:00
kprrel, kprrel, latch1 ),
2015-07-20 20:43:50 +02:00
KB_MATRIX_LAYER( // press: layer 1: function and symbol keys
// unused
NULL,
// left hand
kprrel, kprrel, kprrel, kprrel, kprrel, kprrel, kprrel,
2015-12-09 11:20:56 +01:00
kprrel,shifted, kprrel, kprrel,shifted, kprrel, kprrel,
kprrel, kprrel,shifted,shifted,shifted,shifted,
ktrans, kprrel,shifted,shifted, kprrel,shifted, kprrel,
2015-07-20 20:43:50 +02:00
ktrans, kprrel, kprrel, kprrel, kprrel,
kprrel, kprrel,
kprrel, kprrel, kprrel,
kprrel, kprrel, kprrel,
// right hand
kprrel, kprrel, kprrel, kprrel, kprrel, kprrel, kprrel,
2015-12-09 11:20:56 +01:00
kprrel, kprrel,shifted,shifted, kprrel, kprrel, kprrel,
shifted,shifted, kprrel,shifted, kprrel, kprrel,
kprrel,shifted,shifted,shifted,shifted,shifted, kprrel,
2015-07-20 20:43:50 +02:00
kprrel, kprrel, kprrel, kprrel, kprrel,
kprrel, kprrel,
2015-11-02 16:24:46 +01:00
kprrel, kprrel, kprrel,
2015-07-20 20:43:50 +02:00
kprrel, kprrel, kprrel ),
KB_MATRIX_LAYER( // press: layer 2: keyboard functions
// unused
2015-07-21 09:58:59 +02:00
kprrel,
2015-07-20 20:43:50 +02:00
// left hand
2015-07-21 09:58:59 +02:00
kprrel, kprrel, kprrel, kprrel, kprrel, kprrel, kprrel,
kprrel, kprrel, kprrel, kprrel, kprrel, kprrel, kprrel,
kprrel, kprrel, kprrel, kprrel, kprrel, kprrel,
2015-07-22 19:51:53 +02:00
ktrans, kprrel, kprrel, kprrel, kprrel, kprrel, kprrel,
kprrel, kprrel, kprrel, kprrel, ktrans,
2015-07-21 09:58:59 +02:00
kprrel, kprrel,
2015-11-02 16:24:46 +01:00
kprrel, ktrans, ktrans,
2015-07-22 19:51:53 +02:00
kprrel, ktrans, ktrans,
2015-07-20 20:43:50 +02:00
// right hand
2015-07-21 09:58:59 +02:00
kprrel, kprrel, kprrel, kprrel, kprrel, kprrel, kprrel,
kprrel, kprrel, kprrel, kprrel, kprrel, kprrel, kprrel,
2015-12-09 11:20:56 +01:00
kprrel, ctrled, ctrled, kprrel, kprrel, kprrel,
2015-07-22 19:51:53 +02:00
kprrel, kprrel, kprrel, kprrel, kprrel, kprrel, ktrans,
2015-07-21 09:58:59 +02:00
kprrel, kprrel, kprrel, kprrel, kprrel,
kprrel, kprrel,
2015-11-02 16:24:46 +01:00
kprrel, ktrans, ktrans,
2015-07-22 19:51:53 +02:00
kprrel, ktrans, ktrans ),
2015-07-20 20:43:50 +02:00
KB_MATRIX_LAYER( // press: layer 3: numpad
// unused
NULL,
// left hand
ktrans, ktrans, ktrans, ktrans, ktrans, ktrans, ktrans,
2015-07-22 20:37:06 +02:00
ktrans, kprrel, kprrel, kprrel, kprrel, kprrel, ktrans,
ktrans, kprrel, kprrel, kprrel, kprrel, kprrel,
ktrans, kprrel, kprrel, kprrel, kprrel, kprrel, ktrans,
2015-07-20 20:43:50 +02:00
ktrans, kprrel, ktrans, ktrans, ktrans,
ktrans, ktrans,
ktrans, ktrans, ktrans,
ktrans, ktrans, ktrans,
// right hand
2015-12-08 08:54:51 +01:00
ktrans, ktrans, ktrans, ktrans, ktrans, ktrans, ktrans,
2015-07-22 20:37:06 +02:00
ktrans, kprrel, kprrel, kprrel, kprrel, kprrel, kprrel,
kprrel, kprrel, kprrel, kprrel, kprrel, kprrel,
ktrans, kprrel, kprrel, kprrel, kprrel, kprrel, kprrel,
2015-07-20 20:43:50 +02:00
ktrans, ktrans, kprrel, kprrel, ktrans,
ktrans, ktrans,
ktrans, ktrans, ktrans,
ktrans, ktrans, kprrel ),
};
// ----------------------------------------------------------------------------
// ----------------------------------------------------------------------------
const void_funptr_t PROGMEM _kb_layout_release[KB_LAYERS][KB_ROWS][KB_COLUMNS] = {
KB_MATRIX_LAYER( // release: layer 0: default
// unused
NULL,
// left hand
kprrel, kprrel, kprrel, kprrel, kprrel, kprrel, kprrel,
kprrel, kprrel, kprrel, kprrel, kprrel, kprrel, kprrel,
2015-07-22 23:01:29 +02:00
kprrel, kprrel, kprrel, kprrel, kprrel, kprrel,
2015-12-09 11:20:56 +01:00
s2kcap,shifted,shifted,shifted, kprrel, kprrel, kprrel,
2015-07-20 20:43:50 +02:00
kprrel, kprrel, kprrel, kprrel, kprrel,
kprrel, kprrel,
2015-11-02 16:24:46 +01:00
kprrel, kprrel, kprrel,
2015-07-20 20:43:50 +02:00
kprrel, kprrel, kprrel,
// right hand
2015-12-08 08:54:51 +01:00
kprrel, kprrel, kprrel, kprrel, kprrel, kprrel, kprrel,
2015-07-20 20:43:50 +02:00
kprrel, kprrel, kprrel, kprrel, kprrel, kprrel, kprrel,
2015-07-22 23:01:29 +02:00
kprrel, kprrel, kprrel, kprrel, kprrel, kprrel,
2015-07-20 20:43:50 +02:00
kprrel, kprrel, kprrel, kprrel, kprrel, kprrel, s2kcap,
2015-07-21 09:58:59 +02:00
lpop2, kprrel, kprrel, kprrel, kprrel,
2015-07-20 20:43:50 +02:00
kprrel, kprrel,
2015-11-02 16:24:46 +01:00
kprrel, kprrel, latch1,
2015-07-22 23:06:34 +02:00
kprrel, kprrel, latch1 ),
2015-07-20 20:43:50 +02:00
KB_MATRIX_LAYER( // release: layer 1: function and symbol keys
// unused
NULL,
// left hand
kprrel, kprrel, kprrel, kprrel, kprrel, kprrel, kprrel,
2015-12-09 11:20:56 +01:00
kprrel,shifted, kprrel, kprrel,shifted, kprrel, kprrel,
kprrel, kprrel,shifted,shifted,shifted,shifted,
ktrans, kprrel,shifted,shifted, kprrel,shifted, kprrel,
2015-07-20 20:43:50 +02:00
kprrel, kprrel, kprrel, kprrel, kprrel,
kprrel, kprrel,
kprrel, kprrel, kprrel,
kprrel, kprrel, kprrel,
// right hand
kprrel, kprrel, kprrel, kprrel, kprrel, kprrel, kprrel,
2015-12-09 11:20:56 +01:00
kprrel, kprrel,shifted,shifted, kprrel, kprrel, kprrel,
shifted,shifted, kprrel,shifted, kprrel, kprrel,
kprrel,shifted,shifted,shifted,shifted,shifted, kprrel,
2015-07-20 20:43:50 +02:00
kprrel, kprrel, kprrel, kprrel, kprrel,
kprrel, kprrel,
kprrel, kprrel, kprrel,
kprrel, kprrel, kprrel ),
KB_MATRIX_LAYER( // release: layer 2: keyboard functions
// unused
2015-07-21 09:58:59 +02:00
kprrel,
2015-07-20 20:43:50 +02:00
// left hand
2015-07-21 09:58:59 +02:00
kprrel, kprrel, kprrel, kprrel, kprrel, kprrel, kprrel,
kprrel, kprrel, kprrel, kprrel, kprrel, kprrel, kprrel,
kprrel, kprrel, kprrel, kprrel, kprrel, kprrel,
2015-07-22 19:51:53 +02:00
ktrans, kprrel, kprrel, kprrel, kprrel, kprrel, kprrel,
kprrel, kprrel, kprrel, kprrel, ktrans,
2015-07-21 09:58:59 +02:00
kprrel, kprrel,
2015-11-02 16:24:46 +01:00
kprrel, ktrans, ktrans,
2015-07-22 19:51:53 +02:00
kprrel, ktrans, ktrans,
2015-07-20 20:43:50 +02:00
// right hand
2015-07-21 09:58:59 +02:00
kprrel, kprrel, kprrel, kprrel, kprrel, kprrel, kprrel,
kprrel, kprrel, kprrel, kprrel, kprrel, kprrel, kprrel,
2015-12-09 11:20:56 +01:00
kprrel, ctrled, ctrled, kprrel, kprrel, kprrel,
2015-07-22 19:51:53 +02:00
kprrel, kprrel, kprrel, kprrel, kprrel, kprrel, ktrans,
2015-07-21 09:58:59 +02:00
kprrel, kprrel, kprrel, kprrel, kprrel,
kprrel, kprrel,
2015-11-02 16:24:46 +01:00
kprrel, ktrans, ktrans,
2015-07-22 19:51:53 +02:00
kprrel, ktrans, ktrans ),
2015-07-20 20:43:50 +02:00
KB_MATRIX_LAYER( // release: layer 3: numpad
// unused
2015-07-22 20:37:06 +02:00
0,
2015-07-20 20:43:50 +02:00
// left hand
ktrans, ktrans, ktrans, ktrans, ktrans, ktrans, ktrans,
2015-07-22 20:37:06 +02:00
ktrans, kprrel, kprrel, kprrel, kprrel, kprrel, ktrans,
ktrans, kprrel, kprrel, kprrel, kprrel, kprrel,
ktrans, kprrel, kprrel, kprrel, kprrel, kprrel, ktrans,
2015-07-20 20:43:50 +02:00
ktrans, kprrel, ktrans, ktrans, ktrans,
ktrans, ktrans,
ktrans, ktrans, ktrans,
ktrans, ktrans, ktrans,
// right hand
2015-12-08 08:54:51 +01:00
ktrans, ktrans, ktrans, ktrans, ktrans, ktrans, ktrans,
2015-07-22 20:37:06 +02:00
ktrans, kprrel, kprrel, kprrel, kprrel, kprrel, kprrel,
kprrel, kprrel, kprrel, kprrel, kprrel, kprrel,
ktrans, kprrel, kprrel, kprrel, kprrel, kprrel, kprrel,
2015-07-20 20:43:50 +02:00
ktrans, ktrans, kprrel, kprrel, ktrans,
ktrans, ktrans,
2015-11-02 16:24:46 +01:00
ktrans, ktrans, kprrel,
2015-07-20 20:43:50 +02:00
ktrans, ktrans, kprrel ),
};