|
|
@ -0,0 +1,407 @@ |
|
|
|
#include "ergodox.h" |
|
|
|
#include "action_layer.h" |
|
|
|
#include "keymap_extras/keymap_german.h" |
|
|
|
|
|
|
|
#define UM 0 |
|
|
|
|
|
|
|
#define L0 0 // layer_0 |
|
|
|
#define L1 1 // layer_1 |
|
|
|
#define L2 2 // layer_2 |
|
|
|
#define L3 3 // layer_3 |
|
|
|
#define L4 4 // layer_4 |
|
|
|
#define L5 5 // layer_5 |
|
|
|
#define L6 6 // layer_6 |
|
|
|
|
|
|
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { |
|
|
|
/* |
|
|
|
* .------------------------------------.------------------------------------. |
|
|
|
* |ESC | 1 | 2 | 3 | 4 | 5 |ACUT | GRV | 6 | 7 | 8 | 9 | 0 |CIRC | |
|
|
|
* !-----+----+----+----+----+----------!-----+----+----+----+----+----+-----! |
|
|
|
* |TAB | X | V | L | C | W |Print| | K | H | G | F | Q | SS | |
|
|
|
* !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! |
|
|
|
* |MO(1)| U | I | A | E | O |-----!-----! S | N | R | T | D | Y | |
|
|
|
* !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! |
|
|
|
* |LSFT | UE | OE | AE | P | Z |SPACE| | B | M |COMM| DOT| J |RSFT | |
|
|
|
* '-----+----+----+----+----+----------'----------+----+----+----+----+-----' |
|
|
|
* |LCTL|LGUI|LALT|MO(3)|MO(2)| !MO(2)|MO(3)|APP |RALT|RCTL| |
|
|
|
* '------------------------' '------------------------' |
|
|
|
* .-----------. .-----------. |
|
|
|
* |VOL- |VOL+ | !MUTE |PLAY | |
|
|
|
* .-----+-----+-----! !-----+-----+-----. |
|
|
|
* ! ! | | ! | ! ! |
|
|
|
* ! CTL ! !-ALT-! !-CTL-! ! ALT ! |
|
|
|
* |ENTER|MO(1)| TAB | !ESC |MO(3)|SPACE| |
|
|
|
* '-----------------' '-----------------' |
|
|
|
*/ |
|
|
|
[L0] = KEYMAP( |
|
|
|
KC_ESC, DE_1, DE_2, DE_3, DE_4, DE_5, DE_ACUT, |
|
|
|
KC_TAB, DE_X, DE_V, DE_L, DE_C, DE_W, KC_PSCR, |
|
|
|
MO(1), DE_U, DE_I, DE_A, DE_E, DE_O, |
|
|
|
KC_LSFT, DE_UE, DE_OE, DE_AE, DE_P, DE_Z, KC_SPACE, |
|
|
|
KC_LCTL, KC_LGUI, KC_LALT, MO(3), MO(2), |
|
|
|
/*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_VOLD, KC_VOLU, |
|
|
|
/*-*/ /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, |
|
|
|
/*-*/ /*-*/ /*-*/ /*-*/ CTL_T(KC_ENTER), MO(1), ALT_T(KC_TAB), |
|
|
|
DE_GRV, DE_6, DE_7, DE_8, DE_9, DE_0, DE_CIRC, |
|
|
|
KC_TRNS, DE_K, DE_H, DE_G, DE_F, DE_Q, DE_SS, |
|
|
|
/*-*/ DE_S, DE_N, DE_R, DE_T, DE_D, DE_Y, |
|
|
|
KC_TRNS, DE_B, DE_M, DE_COMM, DE_DOT, DE_J, KC_RSFT, |
|
|
|
/*-*/ /*-*/ MO(2), MO(3), KC_APP, KC_RALT, KC_RCTL, |
|
|
|
KC_MUTE, KC_MPLY, |
|
|
|
KC_TRNS, |
|
|
|
CTL_T(KC_ESC), MO(3), ALT_T(KC_SPACE) |
|
|
|
), |
|
|
|
/* |
|
|
|
* .------------------------------------.------------------------------------. |
|
|
|
* | | | | | | | | | | | | | | | |
|
|
|
* !-----+----+----+----+----+----------!-----+----+----+----+----+----+-----! |
|
|
|
* | |EURO|UNDS|LBRC|RBRC| | | |EXLM|LESS|MORE|EQL |AMPR| | |
|
|
|
* !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! |
|
|
|
* | |BSLS|SLSH|LCBR|RCBR|ASTR|-----!-----!QST |LPRN|RPRN|MINS|COLN| AT | |
|
|
|
* !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! |
|
|
|
* | |HASH|DLR |PIPE|TILD| | | |PLUS|PERC|DQOT|QUOT|SCLN| | |
|
|
|
* '-----+----+----+----+----+----------'----------+----+----+----+----+-----' |
|
|
|
* | | | | | | ! | | | | | |
|
|
|
* '------------------------' '------------------------' |
|
|
|
* .-----------. .-----------. |
|
|
|
* | | | ! | | |
|
|
|
* .-----+-----+-----! !-----+-----+-----. |
|
|
|
* ! ! | | ! | ! ! |
|
|
|
* ! ! !-----! !-----! ! ! |
|
|
|
* | | | | ! | | | |
|
|
|
* '-----------------' '-----------------' |
|
|
|
*/ |
|
|
|
[L1] = KEYMAP( |
|
|
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, |
|
|
|
KC_TRNS, DE_EURO, DE_UNDS, DE_LBRC, DE_RBRC, KC_TRNS, KC_TRNS, |
|
|
|
KC_TRNS, DE_BSLS, DE_SLSH, DE_LCBR, DE_RCBR, DE_ASTR, |
|
|
|
KC_TRNS, DE_HASH, DE_DLR, DE_PIPE, DE_TILD, KC_TRNS, KC_TRNS, |
|
|
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, |
|
|
|
/*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, KC_TRNS, |
|
|
|
/*-*/ /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, |
|
|
|
/*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, KC_TRNS, KC_TRNS, |
|
|
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, |
|
|
|
KC_TRNS, DE_EXLM, DE_LESS, DE_MORE, DE_EQL, DE_AMPR, KC_TRNS, |
|
|
|
/*-*/ DE_QST, DE_LPRN, DE_RPRN, DE_MINS, DE_COLN, DE_AT, |
|
|
|
KC_TRNS, DE_PLUS, DE_PERC, DE_DQOT, DE_QUOT, DE_SCLN, KC_TRNS, |
|
|
|
/*-*/ /*-*/ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, |
|
|
|
KC_TRNS, KC_TRNS, |
|
|
|
KC_TRNS, |
|
|
|
KC_TRNS, KC_TRNS, KC_TRNS |
|
|
|
), |
|
|
|
/* |
|
|
|
* .------------------------------------.------------------------------------. |
|
|
|
* | | | | | | | | | | | | | | | |
|
|
|
* !-----+----+----+----+----+----------!-----+----+----+----+----+----+-----! |
|
|
|
* | |PGUP|BSPC| UP |DEL |PGDN| | | | 7 | 8 | 9 | | | |
|
|
|
* !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! |
|
|
|
* | |HOME|LEFT|DOWN|RGHT|END |-----!-----! | 4 | 5 | 6 | | | |
|
|
|
* !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! |
|
|
|
* | | | |PREV|NEXT| | | | | 1 | 2 | 3 | | | |
|
|
|
* '-----+----+----+----+----+----------'----------+----+----+----+----+-----' |
|
|
|
* | | | | | | ! | | | | | |
|
|
|
* '------------------------' '------------------------' |
|
|
|
* .-----------. .-----------. |
|
|
|
* | | | ! | | |
|
|
|
* .-----+-----+-----! !-----+-----+-----. |
|
|
|
* ! ! | | ! | ! ! |
|
|
|
* ! ! !-----! !-----! ! ! |
|
|
|
* | | | | ! | | 0 | |
|
|
|
* '-----------------' '-----------------' |
|
|
|
*/ |
|
|
|
[L2] = KEYMAP( |
|
|
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, |
|
|
|
KC_TRNS, KC_PGUP, KC_BSPC, KC_UP, KC_DEL, KC_PGDN, KC_TRNS, |
|
|
|
KC_TRNS, KC_HOME, KC_LEFT, KC_DOWN, KC_RGHT, KC_END, |
|
|
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_MNXT, KC_TRNS, KC_TRNS, |
|
|
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, |
|
|
|
/*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, KC_TRNS, |
|
|
|
/*-*/ /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, |
|
|
|
/*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, KC_TRNS, KC_TRNS, |
|
|
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, |
|
|
|
KC_TRNS, KC_TRNS, DE_7, DE_8, DE_9, KC_TRNS, KC_TRNS, |
|
|
|
/*-*/ KC_TRNS, DE_4, DE_5, DE_6, KC_TRNS, KC_TRNS, |
|
|
|
KC_TRNS, KC_TRNS, DE_1, DE_2, DE_3, KC_TRNS, KC_TRNS, |
|
|
|
/*-*/ /*-*/ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, |
|
|
|
KC_TRNS, KC_TRNS, |
|
|
|
KC_TRNS, |
|
|
|
KC_TRNS, KC_TRNS, DE_0 |
|
|
|
), |
|
|
|
/* |
|
|
|
* .------------------------------------.------------------------------------. |
|
|
|
* | | F1 | F2 | F3 | F4 | F5 | F6 | | | | | | | | |
|
|
|
* !-----+----+----+----+----+----------!-----+----+----+----+----+----+-----! |
|
|
|
* | | F7 | F8 | F9 | F10| F11| F12 | | |M_WU|M_CU|M_WD| | | |
|
|
|
* !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! |
|
|
|
* |M_B5 |M_B4|M_B3|M_B2|M_B1| |-----!-----! |M_CL|M_CD|M_CR| | | |
|
|
|
* !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! |
|
|
|
* | | |M_A2|M_A1|M_A0| | | | | | | | | | |
|
|
|
* '-----+----+----+----+----+----------'----------+----+----+----+----+-----' |
|
|
|
* | | | | | | ! | | | | | |
|
|
|
* '------------------------' '------------------------' |
|
|
|
* .-----------. .-----------. |
|
|
|
* | | | ! | | |
|
|
|
* .-----+-----+-----! !-----+-----+-----. |
|
|
|
* ! ! | | ! | ! ! |
|
|
|
* ! ! !-----! !-----! ! ! |
|
|
|
* | | | | ! | | | |
|
|
|
* '-----------------' '-----------------' |
|
|
|
*/ |
|
|
|
[L3] = KEYMAP( |
|
|
|
KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, |
|
|
|
KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, |
|
|
|
KC_BTN5, KC_BTN4, KC_BTN3, KC_BTN2, KC_BTN1, KC_TRNS, |
|
|
|
KC_TRNS, KC_TRNS, KC_ACL2, KC_ACL1, KC_ACL0, KC_TRNS, KC_TRNS, |
|
|
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, |
|
|
|
/*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, KC_TRNS, |
|
|
|
/*-*/ /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, |
|
|
|
/*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, KC_TRNS, KC_TRNS, |
|
|
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, |
|
|
|
KC_TRNS, KC_TRNS, KC_WH_U, KC_MS_U, KC_WH_D, KC_TRNS, KC_TRNS, |
|
|
|
/*-*/ KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS, KC_TRNS, |
|
|
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, |
|
|
|
/*-*/ /*-*/ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, |
|
|
|
KC_TRNS, KC_TRNS, |
|
|
|
KC_TRNS, |
|
|
|
KC_TRNS, KC_TRNS, KC_TRNS |
|
|
|
), |
|
|
|
/* |
|
|
|
* .------------------------------------.------------------------------------. |
|
|
|
* | | | | | | | | | | | | | | | |
|
|
|
* !-----+----+----+----+----+----------!-----+----+----+----+----+----+-----! |
|
|
|
* | | | | | | | | | | | | | | | |
|
|
|
* !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! |
|
|
|
* | | | | | | |-----!-----! | | | | | | |
|
|
|
* !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! |
|
|
|
* | | | | | | | | | | | | | | | |
|
|
|
* '-----+----+----+----+----+----------'----------+----+----+----+----+-----' |
|
|
|
* | | | | | | ! | | | | | |
|
|
|
* '------------------------' '------------------------' |
|
|
|
* .-----------. .-----------. |
|
|
|
* | | | ! | | |
|
|
|
* .-----+-----+-----! !-----+-----+-----. |
|
|
|
* ! ! | | ! | ! ! |
|
|
|
* ! ! !-----! !-----! ! ! |
|
|
|
* | | | | ! | | | |
|
|
|
* '-----------------' '-----------------' |
|
|
|
*/ |
|
|
|
[L4] = KEYMAP( |
|
|
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, |
|
|
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, |
|
|
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, |
|
|
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, |
|
|
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, |
|
|
|
/*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, KC_TRNS, |
|
|
|
/*-*/ /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, |
|
|
|
/*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, KC_TRNS, KC_TRNS, |
|
|
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, |
|
|
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, |
|
|
|
/*-*/ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, |
|
|
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, |
|
|
|
/*-*/ /*-*/ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, |
|
|
|
KC_TRNS, KC_TRNS, |
|
|
|
KC_TRNS, |
|
|
|
KC_TRNS, KC_TRNS, KC_TRNS |
|
|
|
), |
|
|
|
/* |
|
|
|
* .------------------------------------.------------------------------------. |
|
|
|
* | | | | | | | | | | | | | | | |
|
|
|
* !-----+----+----+----+----+----------!-----+----+----+----+----+----+-----! |
|
|
|
* | | | | | | | | | | | | | | | |
|
|
|
* !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! |
|
|
|
* | | | | | | |-----!-----! | | | | | | |
|
|
|
* !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! |
|
|
|
* | | | | | | | | | | | | | | | |
|
|
|
* '-----+----+----+----+----+----------'----------+----+----+----+----+-----' |
|
|
|
* | | | | | | ! | | | | | |
|
|
|
* '------------------------' '------------------------' |
|
|
|
* .-----------. .-----------. |
|
|
|
* | | | ! | | |
|
|
|
* .-----+-----+-----! !-----+-----+-----. |
|
|
|
* ! ! | | ! | ! ! |
|
|
|
* ! ! !-----! !-----! ! ! |
|
|
|
* | | | | ! | | | |
|
|
|
* '-----------------' '-----------------' |
|
|
|
*/ |
|
|
|
[L5] = KEYMAP( |
|
|
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, |
|
|
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, |
|
|
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, |
|
|
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, |
|
|
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, |
|
|
|
/*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, KC_TRNS, |
|
|
|
/*-*/ /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, |
|
|
|
/*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, KC_TRNS, KC_TRNS, |
|
|
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, |
|
|
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, |
|
|
|
/*-*/ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, |
|
|
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, |
|
|
|
/*-*/ /*-*/ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, |
|
|
|
KC_TRNS, KC_TRNS, |
|
|
|
KC_TRNS, |
|
|
|
KC_TRNS, KC_TRNS, KC_TRNS |
|
|
|
), |
|
|
|
/* |
|
|
|
* .------------------------------------.------------------------------------. |
|
|
|
* | | | | | | | | | | | | | | | |
|
|
|
* !-----+----+----+----+----+----------!-----+----+----+----+----+----+-----! |
|
|
|
* | | | | | | | | | | | | | | | |
|
|
|
* !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! |
|
|
|
* | | | | | | |-----!-----! | | | | | | |
|
|
|
* !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! |
|
|
|
* | | | | | | | | | | | | | | | |
|
|
|
* '-----+----+----+----+----+----------'----------+----+----+----+----+-----' |
|
|
|
* | | | | | | ! | | | | | |
|
|
|
* '------------------------' '------------------------' |
|
|
|
* .-----------. .-----------. |
|
|
|
* | | | ! | | |
|
|
|
* .-----+-----+-----! !-----+-----+-----. |
|
|
|
* ! ! | | ! | ! ! |
|
|
|
* ! ! !-----! !-----! ! ! |
|
|
|
* | | | | ! | | | |
|
|
|
* '-----------------' '-----------------' |
|
|
|
*/ |
|
|
|
[L6] = KEYMAP( |
|
|
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, |
|
|
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, |
|
|
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, |
|
|
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, |
|
|
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, |
|
|
|
/*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, KC_TRNS, |
|
|
|
/*-*/ /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, |
|
|
|
/*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, KC_TRNS, KC_TRNS, |
|
|
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, |
|
|
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, |
|
|
|
/*-*/ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, |
|
|
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, |
|
|
|
/*-*/ /*-*/ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, |
|
|
|
KC_TRNS, KC_TRNS, |
|
|
|
KC_TRNS, |
|
|
|
KC_TRNS, KC_TRNS, KC_TRNS |
|
|
|
), |
|
|
|
}; |
|
|
|
|
|
|
|
const uint16_t PROGMEM fn_actions[] = {}; |
|
|
|
|
|
|
|
#define UC_MODE_WIN 0 |
|
|
|
#define UC_MODE_LINUX 1 |
|
|
|
#define UC_MODE_OSX 2 |
|
|
|
|
|
|
|
// TODO: allow default mode to be configured |
|
|
|
static uint16_t unicode_mode = UC_MODE_WIN; |
|
|
|
|
|
|
|
uint16_t hextokeycode(uint8_t hex) { |
|
|
|
if (hex == 0x0) { |
|
|
|
return KC_P0; |
|
|
|
} |
|
|
|
if (hex < 0xA) { |
|
|
|
return KC_P1 + (hex - 0x1); |
|
|
|
} |
|
|
|
return KC_A + (hex - 0xA); |
|
|
|
} |
|
|
|
|
|
|
|
void unicode_action_function(uint16_t hi, uint16_t lo) { |
|
|
|
switch (unicode_mode) { |
|
|
|
case UC_MODE_WIN: |
|
|
|
register_code(KC_LALT); |
|
|
|
|
|
|
|
register_code(KC_PPLS); |
|
|
|
unregister_code(KC_PPLS); |
|
|
|
|
|
|
|
register_code(hextokeycode((hi & 0xF0) >> 4)); |
|
|
|
unregister_code(hextokeycode((hi & 0xF0) >> 4)); |
|
|
|
register_code(hextokeycode((hi & 0x0F))); |
|
|
|
unregister_code(hextokeycode((hi & 0x0F))); |
|
|
|
register_code(hextokeycode((lo & 0xF0) >> 4)); |
|
|
|
unregister_code(hextokeycode((lo & 0xF0) >> 4)); |
|
|
|
register_code(hextokeycode((lo & 0x0F))); |
|
|
|
unregister_code(hextokeycode((lo & 0x0F))); |
|
|
|
|
|
|
|
unregister_code(KC_LALT); |
|
|
|
break; |
|
|
|
case UC_MODE_LINUX: |
|
|
|
register_code(KC_LCTL); |
|
|
|
register_code(KC_LSFT); |
|
|
|
|
|
|
|
register_code(KC_U); |
|
|
|
unregister_code(KC_U); |
|
|
|
|
|
|
|
register_code(hextokeycode((hi & 0xF0) >> 4)); |
|
|
|
unregister_code(hextokeycode((hi & 0xF0) >> 4)); |
|
|
|
register_code(hextokeycode((hi & 0x0F))); |
|
|
|
unregister_code(hextokeycode((hi & 0x0F))); |
|
|
|
register_code(hextokeycode((lo & 0xF0) >> 4)); |
|
|
|
unregister_code(hextokeycode((lo & 0xF0) >> 4)); |
|
|
|
register_code(hextokeycode((lo & 0x0F))); |
|
|
|
unregister_code(hextokeycode((lo & 0x0F))); |
|
|
|
|
|
|
|
unregister_code(KC_LCTL); |
|
|
|
unregister_code(KC_LSFT); |
|
|
|
break; |
|
|
|
case UC_MODE_OSX: |
|
|
|
break; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { |
|
|
|
if (!record->event.pressed) { |
|
|
|
return MACRO_NONE; |
|
|
|
} |
|
|
|
// MACRODOWN only works in this function |
|
|
|
switch(id) { |
|
|
|
case UM: |
|
|
|
unicode_mode = (unicode_mode + 1) % 2; |
|
|
|
break; |
|
|
|
|
|
|
|
|
|
|
|
default: |
|
|
|
break; |
|
|
|
} |
|
|
|
return MACRO_NONE; |
|
|
|
}; |
|
|
|
|
|
|
|
// Runs just one time when the keyboard initializes. |
|
|
|
void matrix_init_user(void) { |
|
|
|
|
|
|
|
}; |
|
|
|
|
|
|
|
// Runs constantly in the background, in a loop. |
|
|
|
void matrix_scan_user(void) { |
|
|
|
uint8_t layer = biton32(layer_state); |
|
|
|
|
|
|
|
ergodox_board_led_off(); |
|
|
|
ergodox_right_led_1_off(); |
|
|
|
ergodox_right_led_2_off(); |
|
|
|
ergodox_right_led_3_off(); |
|
|
|
switch (layer) { |
|
|
|
case L1: |
|
|
|
ergodox_right_led_1_on(); |
|
|
|
break; |
|
|
|
case L2: |
|
|
|
ergodox_right_led_2_on(); |
|
|
|
break; |
|
|
|
case L3: |
|
|
|
ergodox_right_led_3_on(); |
|
|
|
break; |
|
|
|
case L4: |
|
|
|
ergodox_right_led_1_on(); |
|
|
|
ergodox_right_led_2_on(); |
|
|
|
break; |
|
|
|
case L5: |
|
|
|
ergodox_right_led_1_on(); |
|
|
|
ergodox_right_led_3_on(); |
|
|
|
break; |
|
|
|
// case L6: |
|
|
|
// ergodox_right_led_2_on(); |
|
|
|
// ergodox_right_led_3_on(); |
|
|
|
// break; |
|
|
|
// case L7: |
|
|
|
// ergodox_right_led_1_on(); |
|
|
|
// ergodox_right_led_2_on(); |
|
|
|
// ergodox_right_led_3_on(); |
|
|
|
// break; |
|
|
|
default: |
|
|
|
ergodox_board_led_off(); |
|
|
|
break; |
|
|
|
} |
|
|
|
}; |