From f0dfe8ab97e6919957e371dcb09989fcedaada77 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stephan=20Bo=CC=88sebeck?= Date: Mon, 15 Feb 2016 14:13:29 +0100 Subject: [PATCH 01/45] testing moving the 6 to the left, having one key more on the right used for hash now feels a bit more natural to me. Need to investigate further. --- keyboard/ergodox_ez/keymaps/osx_de/keymap.c | 22 +++++++++--------- keyboard/ergodox_ez/keymaps/osx_de/osx_de.hex | Bin 66352 -> 68180 bytes 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/keyboard/ergodox_ez/keymaps/osx_de/keymap.c b/keyboard/ergodox_ez/keymaps/osx_de/keymap.c index 0298cb7028..e75187202f 100644 --- a/keyboard/ergodox_ez/keymaps/osx_de/keymap.c +++ b/keyboard/ergodox_ez/keymaps/osx_de/keymap.c @@ -31,18 +31,18 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Keymap 0: Basic layer * * ,--------------------------------------------------. ,--------------------------------------------------. - * | ESC | 1 | 2 | 3 | 4 | 5 |CMD-V | |CMD-C | 6 | 7 | 8 | 9 | 0 | ß | + * | ESC | 1 | 2 | 3 | 4 | 5 | 6 | |CMD-C | 7 | 8 | 9 | 0 | ß | # | * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| * | TAB | Q | W | E | R | T | CMD | | CMD | Z | U | I | O | P | ü | * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | LALT | A | S | D | F | G |------| |------| H | J | K | L | ö | ä/RALT| + * | LALT | A | S | D | F | G |------| |------| H | J | K | L | ö | ä/RALT| * |--------+------+------+------+------+------| LALT | | RALT |------+------+------+------+------+--------| * | LShift |Y/Ctrl| X | C | V | B | | | | N | M | , | . |-/Ctrl| RShift | * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * | | ! | ? | | | | | \ | [ | ] | | | # | F12 | * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | # | $ | \ | / | . |------| |------| / | ( | ) | { | } | | + * | | # | $ | \ | / | . |------| |------| / | ( | ) | { | } | * | * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| * | | | ^ | % | | | ~ | | | | & | < | > | " | ' | ? | * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * | | | | | | | | | . | ! | | + * | | | | | | | + | - | . | ! | | * `----------------------------------' `----------------------------------' * ,-------------. ,-------------. * | | | | | | @@ -106,9 +106,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // right hand M(M_TOGGLE_5), KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_TRNS, LALT(LSFT(KC_7)), LALT(KC_5), LALT(KC_6), LALT(KC_7), DE_HASH, KC_F12, - DE_SLSH, DE_LPRN, DE_RPRN, LALT(KC_8), LALT(KC_9), KC_TRNS, + DE_SLSH, DE_LPRN, DE_RPRN, LALT(KC_8), LALT(KC_9), LSFT(DE_PLUS), KC_TRNS, DE_AMPR, KC_GRV, LSFT(KC_GRV), DE_DQOT, DE_QUOT, DE_QST, - KC_TRNS,KC_DOT, KC_EXLM, KC_TRNS, KC_TRNS, + DE_PLUS, DE_MINS, KC_DOT, KC_EXLM, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS diff --git a/keyboard/ergodox_ez/keymaps/osx_de/osx_de.hex b/keyboard/ergodox_ez/keymaps/osx_de/osx_de.hex index 2c83055b0df76a71d39e4cfb8b6896f2275cb563..8d74fd599b98d5eabd25d580f8afd1dbc5ed1c8e 100644 GIT binary patch literal 68180 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 literal 66352 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 LTl_ Date: Wed, 2 Mar 2016 08:40:38 +0100 Subject: [PATCH 02/45] updated version, changed F-Key-Layout, minor change in code layer --- keyboard/ergodox_ez/keymaps/osx_de/keymap.c | 14 +++++++------- keyboard/ergodox_ez/keymaps/osx_de/osx_de.hex | Bin 68180 -> 68104 bytes 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/keyboard/ergodox_ez/keymaps/osx_de/keymap.c b/keyboard/ergodox_ez/keymaps/osx_de/keymap.c index e75187202f..4e88376e49 100644 --- a/keyboard/ergodox_ez/keymaps/osx_de/keymap.c +++ b/keyboard/ergodox_ez/keymaps/osx_de/keymap.c @@ -74,15 +74,15 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Keymap 1: Symbol Layer * * ,--------------------------------------------------. ,--------------------------------------------------. - * | | F1 | F2 | F3 | F4 | F5 | | | L5 | F6 | F7 | F8 | F9 | F10 | F11 | + * | | F1 | F2 | F3 | F4 | F5 | F6 | | L5 | F7 | F8 | F9 | F10 | F11 | F12 | * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - * | | < | > | ! | ? | | | | | \ | [ | ] | | | # | F12 | + * | | < | > | ! | ? | | | | | \ | [ | ] | | | # | ! | * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| * | | # | $ | \ | / | . |------| |------| / | ( | ) | { | } | * | * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | | ^ | % | | | ~ | | | | & | < | > | " | ' | ? | + * | | | ^ | % | | | ~ | | | | & | < | > | " | ' | ? | * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * | | | | | | | + | - | . | ! | | + * | | | | | | | + | - | . | ; | | * `----------------------------------' `----------------------------------' * ,-------------. ,-------------. * | | | | | | @@ -104,11 +104,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS,KC_DEL,KC_TRNS, // right hand - M(M_TOGGLE_5), KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, - KC_TRNS, LALT(LSFT(KC_7)), LALT(KC_5), LALT(KC_6), LALT(KC_7), DE_HASH, KC_F12, + M(M_TOGGLE_5), KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, + KC_TRNS, LALT(LSFT(KC_7)), LALT(KC_5), LALT(KC_6), LALT(KC_7), DE_HASH, DE_EXLM, DE_SLSH, DE_LPRN, DE_RPRN, LALT(KC_8), LALT(KC_9), LSFT(DE_PLUS), KC_TRNS, DE_AMPR, KC_GRV, LSFT(KC_GRV), DE_DQOT, DE_QUOT, DE_QST, - DE_PLUS, DE_MINS, KC_DOT, KC_EXLM, KC_TRNS, + DE_PLUS, DE_MINS, KC_DOT, LSFT(DE_COMM), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS diff --git a/keyboard/ergodox_ez/keymaps/osx_de/osx_de.hex b/keyboard/ergodox_ez/keymaps/osx_de/osx_de.hex index 8d74fd599b98d5eabd25d580f8afd1dbc5ed1c8e..5346f1bdf83222eb1b88b2c74ffeac95ed2476b7 100644 GIT binary patch literal 68104 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≠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�h%>SM>KwIAClkOum}HTaM9%#*8ots^su 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 So$oFY^3w5pz1T$l@Bag+vmsOf literal 68180 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 From 46ddbd1fe27c910cd4d6ae3d2b6044cfbf71c3cb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stephan=20Bo=CC=88sebeck?= Date: Wed, 2 Mar 2016 08:43:21 +0100 Subject: [PATCH 03/45] forgot F6 --- keyboard/ergodox_ez/keymaps/osx_de/keymap.c | 2 +- keyboard/ergodox_ez/keymaps/osx_de/osx_de.hex | Bin 68104 -> 68104 bytes 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/keyboard/ergodox_ez/keymaps/osx_de/keymap.c b/keyboard/ergodox_ez/keymaps/osx_de/keymap.c index 4e88376e49..c3b296cd77 100644 --- a/keyboard/ergodox_ez/keymaps/osx_de/keymap.c +++ b/keyboard/ergodox_ez/keymaps/osx_de/keymap.c @@ -95,7 +95,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // SYMBOLS [SYMB] = KEYMAP( // left hand - KC_TRNS,KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS, + KC_TRNS,KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_TRNS,DE_LESS,DE_MORE,DE_EXLM,DE_QST, KC_TRNS,KC_TRNS, KC_TRNS,DE_HASH,DE_DLR, DE_BSLS,DE_SLSH,KC_DOT, KC_TRNS,KC_TRNS,DE_LESS,DE_PERC,DE_PIPE,DE_TILD,KC_TRNS, diff --git a/keyboard/ergodox_ez/keymaps/osx_de/osx_de.hex b/keyboard/ergodox_ez/keymaps/osx_de/osx_de.hex index 5346f1bdf83222eb1b88b2c74ffeac95ed2476b7..bf12476a4f5666e04b599b35262405b64dc1758a 100644 GIT binary patch delta 28 jcmeB}!qPE?WrI8ild;=mMGhGzbC+g&j_vjwj3*fZbx#L- delta 29 lcmeB}!qPE?WrIA&WMfXj$p##}OioVC_8i;oIT%ke0sw)K2k8I+ From d0c62feb7e5992c2a6de2e50d347572720fa92a1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stephan=20Bo=CC=88sebeck?= Date: Sun, 20 Mar 2016 22:53:43 +0100 Subject: [PATCH 04/45] tweaking it a bit further, fixing things --- keyboard/ergodox_ez/keymaps/osx_de/keymap.c | 24 ++++++++++----------- 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/keyboard/ergodox_ez/keymaps/osx_de/keymap.c b/keyboard/ergodox_ez/keymaps/osx_de/keymap.c index c3b296cd77..3efe3de8ba 100644 --- a/keyboard/ergodox_ez/keymaps/osx_de/keymap.c +++ b/keyboard/ergodox_ez/keymaps/osx_de/keymap.c @@ -31,7 +31,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Keymap 0: Basic layer * * ,--------------------------------------------------. ,--------------------------------------------------. - * | ESC | 1 | 2 | 3 | 4 | 5 | 6 | |CMD-C | 7 | 8 | 9 | 0 | ß | # | + * | ESC | 1 | 2 | 3 | 4 | 5 |CTL_SFT| | # | 6 | 7 | 8 | 9 | 0 | ß | * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| * | TAB | Q | W | E | R | T | CMD | | CMD | Z | U | I | O | P | ü | * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| @@ -39,8 +39,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |--------+------+------+------+------+------| LALT | | RALT |------+------+------+------+------+--------| * | LShift |Y/Ctrl| X | C | V | B | | | | N | M | , | . |-/Ctrl| RShift | * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * | | " | ' | ? | + * | | | ^ | % | | | ~ | | | | & | < | > | - | UP | + | * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * | | | | | | | + | - | . | ; | | + * | | | | | | | ' | " |Left | DOWN |Right | * `----------------------------------' `----------------------------------' * ,-------------. ,-------------. * | | | | | | @@ -107,8 +107,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { M(M_TOGGLE_5), KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, LALT(LSFT(KC_7)), LALT(KC_5), LALT(KC_6), LALT(KC_7), DE_HASH, DE_EXLM, DE_SLSH, DE_LPRN, DE_RPRN, LALT(KC_8), LALT(KC_9), LSFT(DE_PLUS), - KC_TRNS, DE_AMPR, KC_GRV, LSFT(KC_GRV), DE_DQOT, DE_QUOT, DE_QST, - DE_PLUS, DE_MINS, KC_DOT, LSFT(DE_COMM), KC_TRNS, + KC_TRNS, DE_AMPR, KC_GRV, LSFT(KC_GRV), DE_MINS, KC_UP, DE_PLUS, + DE_QUOT, DE_DQOT, KC_LEFT, KC_DOWN, KC_RIGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS From 7ebc813e8291af61ea3ec6828d682c2d84e2b4e5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stephan=20Bo=CC=88sebeck?= Date: Sun, 20 Mar 2016 23:00:20 +0100 Subject: [PATCH 05/45] changing cursor keys, back to "default" cursor key layout, adding ISO-cursor keys to Symb layer. Changed numbers back to symmetric layout again, keeping F-keys in symb though --- keyboard/ergodox_ez/keymaps/osx_de/keymap.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/keyboard/ergodox_ez/keymaps/osx_de/keymap.c b/keyboard/ergodox_ez/keymaps/osx_de/keymap.c index 3efe3de8ba..e661010133 100644 --- a/keyboard/ergodox_ez/keymaps/osx_de/keymap.c +++ b/keyboard/ergodox_ez/keymaps/osx_de/keymap.c @@ -80,9 +80,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| * | | # | $ | \ | / | . |------| |------| / | ( | ) | { | } | * | * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | | ^ | % | | | ~ | | | | & | < | > | - | UP | + | + * | | | ^ | % | | | ~ | | | | & | < | > | UP | - | + | * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * | | | | | | | ' | " |Left | DOWN |Right | + * | | | | | | | ' | LEFT| DOWN | RIGHT | | * `----------------------------------' `----------------------------------' * ,-------------. ,-------------. * | | | | | | @@ -107,8 +107,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { M(M_TOGGLE_5), KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, LALT(LSFT(KC_7)), LALT(KC_5), LALT(KC_6), LALT(KC_7), DE_HASH, DE_EXLM, DE_SLSH, DE_LPRN, DE_RPRN, LALT(KC_8), LALT(KC_9), LSFT(DE_PLUS), - KC_TRNS, DE_AMPR, KC_GRV, LSFT(KC_GRV), DE_MINS, KC_UP, DE_PLUS, - DE_QUOT, DE_DQOT, KC_LEFT, KC_DOWN, KC_RIGHT, + KC_TRNS, DE_AMPR, KC_GRV, LSFT(KC_GRV), KC_UP, DE_MINS, DE_PLUS, + DE_QUOT, KC_LEFT, KC_DOWN, KC_RIGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS From 1313e0c8283dc4c5f544aeb981ea047928950f0e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stephan=20Bo=CC=88sebeck?= Date: Sun, 20 Mar 2016 23:07:38 +0100 Subject: [PATCH 06/45] fix number pad, add , --- keyboard/ergodox_ez/keymaps/osx_de/keymap.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/keyboard/ergodox_ez/keymaps/osx_de/keymap.c b/keyboard/ergodox_ez/keymaps/osx_de/keymap.c index e661010133..7ecd1ae70f 100644 --- a/keyboard/ergodox_ez/keymaps/osx_de/keymap.c +++ b/keyboard/ergodox_ez/keymaps/osx_de/keymap.c @@ -211,7 +211,7 @@ KEYMAP( KC_TRNS, KC_UP, KC_7, KC_8, KC_9, LSFT(KC_RBRC), KC_F12, KC_DOWN, KC_4, KC_5, KC_6, KC_RBRC, DE_MINS, KC_TRNS, LSFT(KC_6), KC_1, KC_2, KC_3, LSFT(KC_7), KC_TRNS, - KC_0,KC_DOT, KC_0, DE_EQL, KC_TRNS, + KC_0,KC_DOT, KC_COMM, DE_EQL, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS From 94e96456b87c28299b426e8d0f047033f6d93d42 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stephan=20Bo=CC=88sebeck?= Date: Thu, 24 Mar 2016 10:30:27 +0100 Subject: [PATCH 07/45] minor changes --- keyboard/ergodox_ez/keymaps/osx_de/keymap.c | 30 +++++++++--------- keyboard/ergodox_ez/keymaps/osx_de/osx_de.hex | Bin 52692 -> 52588 bytes 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/keyboard/ergodox_ez/keymaps/osx_de/keymap.c b/keyboard/ergodox_ez/keymaps/osx_de/keymap.c index 7dbe05b28e..0349c749bb 100644 --- a/keyboard/ergodox_ez/keymaps/osx_de/keymap.c +++ b/keyboard/ergodox_ez/keymaps/osx_de/keymap.c @@ -74,28 +74,28 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Keymap 1: Symbol Layer * * ,--------------------------------------------------. ,--------------------------------------------------. - * | | F1 | F2 | F3 | F4 | F5 | F6 | | L5 | F7 | F8 | F9 | F10 | F11 | F12 | + * | | F1 | F2 | F3 | F4 | F5 | | | L5 | F6 | F7 | F8 | F9 | F10 | F11 | * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - * | | < | > | ! | ? | | | | | \ | [ | ] | | | # | ! | + * | | < | > | ! | ? | | | | | \ | [ | ] | < | > | ! | * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | # | $ | \ | / | . |------| |------| / | ( | ) | { | } | * | + * | | # | $ | \ | / | . |------| |------| / | ( | ) | { | } | # | * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | | ^ | % | | | ~ | | | | & | < | > | UP | - | + | + * | | | ^ | % | | | ~ | | | | | | ~ | ^ | UP | | $ | * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' * | | | | | | | ' | LEFT| DOWN | RIGHT | | * `----------------------------------' `----------------------------------' * ,-------------. ,-------------. - * | | | | | | + * | | | | F13 | F12 | * ,------|------|------| |------+------+------. - * | | | | | | | | + * | | | | | F14 | | | * | | |------| |------| | | - * | | | | | | | | + * | | | | | F15 | | | * `--------------------' `--------------------' */ // SYMBOLS [SYMB] = KEYMAP( // left hand - KC_TRNS,KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, + KC_TRNS,KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS, KC_TRNS,DE_LESS,DE_MORE,DE_EXLM,DE_QST, KC_TRNS,KC_TRNS, KC_TRNS,DE_HASH,DE_DLR, DE_BSLS,DE_SLSH,KC_DOT, KC_TRNS,KC_TRNS,DE_LESS,DE_PERC,DE_PIPE,DE_TILD,KC_TRNS, @@ -104,14 +104,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS,KC_DEL,KC_TRNS, // right hand - M(M_TOGGLE_5), KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, - KC_TRNS, LALT(LSFT(KC_7)), LALT(KC_5), LALT(KC_6), LALT(KC_7), DE_HASH, DE_EXLM, - DE_SLSH, DE_LPRN, DE_RPRN, LALT(KC_8), LALT(KC_9), LSFT(DE_PLUS), - KC_TRNS, DE_AMPR, KC_GRV, LSFT(KC_GRV), KC_UP, DE_MINS, DE_PLUS, + M(M_TOGGLE_5), KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, + KC_TRNS, LALT(LSFT(KC_7)), LALT(KC_5), LALT(KC_6), DE_LESS, DE_MORE, DE_EXLM, + DE_SLSH, DE_LPRN, DE_RPRN, LALT(KC_8), LALT(KC_9), DE_HASH, + KC_TRNS, DE_PIPE, DE_TILD, DE_CIRC, KC_UP, DE_MINS, LSFT(KC_4), DE_QUOT, KC_LEFT, KC_DOWN, KC_RIGHT, KC_TRNS, - KC_TRNS, KC_TRNS, - KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS + KC_F13, KC_F12, + KC_F14, + KC_F15, KC_TRNS, KC_TRNS ), /* Keymap 2: Media and mouse keys * diff --git a/keyboard/ergodox_ez/keymaps/osx_de/osx_de.hex b/keyboard/ergodox_ez/keymaps/osx_de/osx_de.hex index 7f3ed1af5bcf837196be3aefaad35a932d7de2e6..c7cb8d8630ae47fb0c2b8d9ba9ed35c11b6232de 100644 GIT binary patch literal 52588 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 I{)~D5e;cD!82|tP From 20a3229faf12d964403becf210bf7ba280ca2e49 Mon Sep 17 00:00:00 2001 From: Manuel Barkhau Date: Sun, 27 Mar 2016 02:22:41 +0000 Subject: [PATCH 08/45] Add manuneo layout --- .../keymaps/german-manuneo/compile_keymap.py | 418 ++++++ .../keymaps/german-manuneo/keymap.c | 1278 +++++++++++++++++ .../keymaps/german-manuneo/keymap.md | 222 +++ 3 files changed, 1918 insertions(+) create mode 100644 keyboard/ergodox_ez/keymaps/german-manuneo/compile_keymap.py create mode 100644 keyboard/ergodox_ez/keymaps/german-manuneo/keymap.c create mode 100644 keyboard/ergodox_ez/keymaps/german-manuneo/keymap.md diff --git a/keyboard/ergodox_ez/keymaps/german-manuneo/compile_keymap.py b/keyboard/ergodox_ez/keymaps/german-manuneo/compile_keymap.py new file mode 100644 index 0000000000..3bbb9340b2 --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/german-manuneo/compile_keymap.py @@ -0,0 +1,418 @@ +# encoding: utf-8 +from __future__ import division +from __future__ import print_function +from __future__ import absolute_import +from __future__ import unicode_literals + +import os +import io +import re +import sys +import json +import unicodedata +import collections + +PY2 = sys.version_info.major == 2 + +if PY2: + chr = unichr + + +ONELINE_COMMENT_RE = re.compile(r"^\s*//.*$", re.MULTILINE) +INLINE_COMMENT_RE = re.compile( + r"([\,\"\[\]\{\}\d])\s+//\s[^\"\]\}\{\[]*$", re.MULTILINE +) +TRAILING_COMMA_RE = re.compile( + r",$\s*([\]\}])", re.MULTILINE +) + +def loads(raw_data): + if isinstance(raw_data, bytes): + raw_data = raw_data.decode('utf-8') + raw_data = ONELINE_COMMENT_RE.sub(r"", raw_data) + raw_data = INLINE_COMMENT_RE.sub(r"\1", raw_data) + raw_data = TRAILING_COMMA_RE.sub(r"\1", raw_data) + return json.loads(raw_data) + +with io.open("keymap.md", encoding="utf-8") as fh: + lines = fh.readlines() + +SECTIONS = [ + 'layout_config', + 'layers', +] + +config = { + "includes_basedir": "quantum/", + "keymaps_includes": [ + "keymap_common.h", + ], + 'filler': "-+.':x", + 'separator': "|", + 'default_key_prefix': ["KC_"], + 'unicode_macros': [], + 'macro_ids': ['UMS'], + 'layers': collections.OrderedDict(), + 'layer_lines': collections.OrderedDict(), +} + +section_start_index = -1 +current_section = None +current_layer_name = None +current_layer_lines = [] +config_data = [] + +def end_section(): + global section_start_index + global current_layer_lines + section_start_index = -1 + if current_section == 'layout_config': + config.update(loads("".join( + config_data + ))) + elif current_section == 'layers': + config['layer_lines'][current_layer_name] = current_layer_lines + current_layer_lines = [] + + +for i, line in enumerate(lines): + if line.startswith("# "): + section = line[2:].strip().replace(" ", "_").lower() + if section in SECTIONS: + current_section = section + elif line.startswith("## "): + sub_section = line[3:] + if current_section == 'layers': + current_layer_name = sub_section.strip() + # TODO: parse descriptio + config['layers'][current_layer_name] = "" + elif line.startswith(" "): + if section_start_index < 0: + section_start_index = i + if current_section == 'layout_config': + config_data.append(line) + elif current_section == 'layers': + if not line.strip(): + continue + current_layer_lines.append(line) + elif section_start_index > 0: + end_section() + +end_section() + +KEYDEF_RE = re.compile(r"#define ((?:{})(?:\w+))".format( + "|".join(config['key_prefixes']) +)) +IF0_RE = re.compile(r"^#if 0$.*?#endif", re.MULTILINE | re.DOTALL) +COMMENT_RE = re.compile(r"/\*.*?\*/", re.MULTILINE | re.DOTALL) +ENUM_RE = re.compile(r"(enum\s\w+\s\{.*?\};)", re.MULTILINE | re.DOTALL) +ENUM_KEY_RE = re.compile(r"({}\w+)".format( + "|".join(config['key_prefixes']) +)) + +def parse_keydefs(path): + with io.open(path, encoding="utf-8") as fh: + data = fh.read() + data, _ = COMMENT_RE.subn("", data) + data, _ = IF0_RE.subn("", data) + + for match in KEYDEF_RE.finditer(data): + yield match.groups()[0] + + for enum_match in ENUM_RE.finditer(data): + enum = enum_match.groups()[0] + for key_match in ENUM_KEY_RE.finditer(enum): + yield key_match.groups()[0] + +valid_keycodes = set() +basepath = os.path.abspath(os.path.join( + os.path.dirname(__file__), "..", "..", "..", ".." +)) + +valid_keycodes.update(parse_keydefs(os.path.join( + basepath, "tmk_core", "common", "keycode.h" +))) + +for include_path in config['keymaps_includes']: + path = os.path.join(basepath, config['includes_dir'], include_path) + path = path.replace("/", os.sep) + if os.path.exists(path): + valid_keycodes.update(parse_keydefs(path)) + +LAYER_CHANGE_RE = re.compile(r"(DF|TG|MO)\(\d+\)") +MACRO_RE = re.compile(r"M\(\w+\)") +UNICODE_RE = re.compile(r"U[0-9A-F]{4}") +NON_CODE = re.compile(r"^[^A-Z0-9_]$") + + +def UNICODE_MACRO(config, c): + # TODO: don't use macro for codepoints below 0x2000 + macro_id = "UC_" + ( + unicodedata.name(c) + .replace(" ", "_") + .replace("-", "_") + .replace("SUPERSCRIPT_", "SUP_") + .replace("SUBSCRIPT_", "SUB_") + .replace("GREEK_SMALL_LETTER", "GR_LC") + .replace("GREEK_CAPITAL_LETTER", "GR_UC") + .replace("VULGAR_FRACTION_", "FR_") + ) + if macro_id not in config['macro_ids']: + config['macro_ids'].append(macro_id) + code = "{:04X}".format(ord(c)) + if (macro_id, code) not in config['unicode_macros']: + config['unicode_macros'].append((macro_id, code)) + return "M({})".format(macro_id) + + +def MACRO(config, code): + macro_id = code[2:-1] + if macro_id not in config['macro_ids']: + config['macro_ids'].append(macro_id) + return code + +# TODO: presumably we can have a macro or function which takes +# the hex code and produces much smaller code. + +WIN_UNICODE_MACRO_TEMPLATE = """ +case {0}: + return MACRODOWN( + D(LALT), T(KP_PLUS), {1}, U(LALT), END + ); +""" + +LINUX_UNICODE_MACRO_TEMPLATE = """ +case {0}: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), {1}, T(KP_ENTER), END + ); +""" + +def macro_cases(config, mode): + if mode == 'win': + template = WIN_UNICODE_MACRO_TEMPLATE + elif mode == 'linux': + template = LINUX_UNICODE_MACRO_TEMPLATE + else: + raise ValueError("Invalid mode: ", mode) + template = template.strip() + + for macro_id, unimacro_chars in config['unicode_macros']: + unimacro_keys = ", ".join( + "T({})".format( + "KP_" + char if char.isdigit() else char + ) for char in unimacro_chars + ) + yield template.format(macro_id, unimacro_keys) + + +MACROCODE = """ +#define UC_MODE_WIN 0 +#define UC_MODE_LINUX 1 + +static uint16_t unicode_mode = UC_MODE_WIN; + +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 UMS: + unicode_mode = (unicode_mode + 1) % 2; + break; + {macro_cases} + default: + break; + }} + if (unicode_mode == UC_MODE_WIN) {{ + switch(id) {{ + {win_macro_cases} + default: + break; + }} + }} else if (unicode_mode == UC_MODE_LINUX) {{ + switch(id) {{ + {linux_macro_cases} + default: + break; + }} + }} + return MACRO_NONE; +}}; +""" + + +def iter_keycodes(layer_lines, config): + filler_re = re.compile("[" + + config['filler'] + " " + + "]") + + all_codes = [] + for line in layer_lines: + line, _ = filler_re.subn("", line.strip()) + if not line: + continue + codes = line.split(config['separator']) + all_codes.extend(codes[1:-1]) + + key_groups = {} + for group_index, key_indexes in enumerate(config['keymap_indexes']): + for key_index in key_indexes: + key_groups[key_index] = group_index + + keymap_indexes = sum(config['keymap_indexes'], []) + assert len(all_codes) == len(keymap_indexes) + code_index_pairs = zip(all_codes, keymap_indexes) + prev_index = None + for i, (code, key_index) in enumerate(code_index_pairs): + code = code.strip() + layer_match = LAYER_CHANGE_RE.match(code) + unicode_match = UNICODE_RE.match(code) + noncode_match = NON_CODE.match(code) + macro_match = MACRO_RE.match(code) + + ws = "\n" if key_groups[key_index] != prev_index else "" + prev_index = key_groups[key_index] + + try: + if not code: + code = 'KC_TRNS' + elif layer_match: + pass + elif macro_match: + code = MACRO(config, code) + elif unicode_match: + hex_code = code[1:] + code = UNICODE_MACRO(config, chr(int(hex_code, 16))) + elif noncode_match: + code = UNICODE_MACRO(config, code) + elif "_" in code: + assert code in valid_keycodes, "unknown code '{}'".format(code) + else: + for prefix in config['key_prefixes']: + if prefix + code in valid_keycodes: + code = prefix + code + break + assert code in valid_keycodes, "unknown code '{}'".format(code) + yield code, key_index, ws + except AssertionError: + print("Error processing code", repr(code).encode("utf-8")) + raise + +USERCODE = """ +// 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; + } +}; +""" + +def parse_keymaps(config): + keymaps = {} + layer_line_items = config['layer_lines'].items() + for i, (layer_name, layer_lines) in enumerate(layer_line_items): + print("parseing layer", layer_name) + keymap = {} + for code, key_index, ws in iter_keycodes(layer_lines, config): + keymap[key_index] = (code, ws) + keymaps[layer_name] = [v for k, v in sorted(keymap.items())] + return keymaps + + +def iter_keymap_lines(config, keymaps): + for include_path in config['keymaps_includes']: + yield '#include "{}"\n'.format(include_path) + + yield "\n" + + layer_items = config['layers'].items() + for i, (layer_name, description) in enumerate(layer_items): + yield '#define L{0:<3} {0:<5} // {1}\n'.format(i, layer_name) + + for i, macro_id in enumerate(config['macro_ids']): + yield "#define {} {}\n".format(macro_id, i) + + yield "\n" + + yield "const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {\n" + + layer_line_items = config['layer_lines'].items() + last_index = config['keymap_indexes'][-1] + for i, (layer_name, layer_lines) in enumerate(layer_line_items): + keymap = keymaps[layer_name] + yield "/*\n" + for line in layer_lines: + yield " *{}".format(line) + yield "*/\n" + + yield "[L{0}] = KEYMAP(\n".format(i) + + for key_index, (code, ws) in enumerate(keymap): + yield "\t{}".format(code) + if key_index < len(keymap) - 1: + yield "," + yield ws + yield "),\n" + + yield "};\n\n" + + yield "const uint16_t PROGMEM fn_actions[] = {\n" + yield "};\n" + + yield MACROCODE.format( + macro_cases="", + win_macro_cases="\n".join(macro_cases(config, mode='win')), + linux_macro_cases="\n".join(macro_cases(config, mode='linux')), + ) + + yield USERCODE + + +with io.open("keymap.c", mode="w", encoding="utf-8") as fh: + for data in iter_keymap_lines(config, parse_keymaps(config)): + fh.write(data) + + +# print("\n".join(sorted(valid_keycodes))) +# print(json.dumps(config, indent=4)) diff --git a/keyboard/ergodox_ez/keymaps/german-manuneo/keymap.c b/keyboard/ergodox_ez/keymaps/german-manuneo/keymap.c new file mode 100644 index 0000000000..400ad6fcf8 --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/german-manuneo/keymap.c @@ -0,0 +1,1278 @@ +#include "ergodox_ez.h" +#include "action_layer.h" +#include "keymap_common.h" +#include "keymap_extras/keymap_german.h" + +#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 +#define L7 7 // Layer 7 +#define L8 8 // Layer 8 +#define UMS 0 +#define UC_UPWARDS_ARROW 1 +#define UC_LEFTWARDS_ARROW 2 +#define UC_DOWNWARDS_ARROW 3 +#define UC_RIGHTWARDS_ARROW 4 +#define UC_SUP_ONE 5 +#define UC_SUP_TWO 6 +#define UC_SUP_THREE 7 +#define UC_SUP_FOUR 8 +#define UC_SUP_FIVE 9 +#define UC_FOR_ALL 10 +#define UC_SUP_SIX 11 +#define UC_SUP_SEVEN 12 +#define UC_SUP_EIGHT 13 +#define UC_SUP_NINE 14 +#define UC_SUP_ZERO 15 +#define UC_MULTIPLICATION_SIGN 16 +#define UC_FR_ONE_HALF 17 +#define UC_DIVISION_SIGN 18 +#define UC_FR_ONE_QUARTER 19 +#define UC_FR_ONE_FIFTH 20 +#define UC_FR_ONE_SIXTH 21 +#define UC_FR_ONE_EIGHTH 22 +#define UC_PLUS_MINUS_SIGN 23 +#define UC_EMPTY_SET 24 +#define UC_INFINITY 25 +#define UC_SUP_LATIN_SMALL_LETTER_N 26 +#define UC_THERE_EXISTS 27 +#define UC_ELEMENT_OF 28 +#define UC_FR_ONE_THIRD 29 +#define UC_NOT_EQUAL_TO 30 +#define UC_FR_TWO_THIRDS 31 +#define UC_FR_THREE_QUARTERS 32 +#define UC_ASYMPTOTICALLY_EQUAL_TO 33 +#define UC_THERE_DOES_NOT_EXIST 34 +#define UC_NOT_AN_ELEMENT_OF 35 +#define UC_SUB_ONE 36 +#define UC_SUB_TWO 37 +#define UC_SUB_THREE 38 +#define UC_SUB_FOUR 39 +#define UC_SUB_FIVE 40 +#define UC_SUB_SIX 41 +#define UC_SUB_SEVEN 42 +#define UC_SUB_EIGHT 43 +#define UC_SUB_NINE 44 +#define UC_SUB_ZERO 45 +#define UC_GR_LC_CHI 46 +#define UC_GR_LC_PI 47 +#define UC_GR_LC_PHI 48 +#define UC_GR_LC_OMEGA 49 +#define UC_GR_LC_GAMMA 50 +#define UC_GR_LC_ETA 51 +#define UC_GR_LC_XI 52 +#define UC_GR_LC_KAPPA 53 +#define UC_GR_LC_LAMDA 54 +#define UC_GR_LC_ZETA 55 +#define UC_GR_LC_UPSILON 56 +#define UC_GR_LC_IOTA 57 +#define UC_GR_LC_ALPHA 58 +#define UC_GR_LC_EPSILON 59 +#define UC_GR_LC_OMICRON 60 +#define UC_GR_LC_SIGMA 61 +#define UC_GR_LC_NU 62 +#define UC_GR_LC_RHO 63 +#define UC_GR_LC_TAU 64 +#define UC_GR_LC_DELTA 65 +#define UC_GR_LC_FINAL_SIGMA 66 +#define UC_GR_LC_THETA 67 +#define UC_GR_LC_BETA 68 +#define UC_GR_LC_MU 69 +#define UC_GR_LC_PSI 70 +#define UC_GR_UC_CHI 71 +#define UC_GR_UC_PI 72 +#define UC_GR_UC_PHI 73 +#define UC_GR_UC_OMEGA 74 +#define UC_GR_UC_GAMMA 75 +#define UC_GR_UC_ETA 76 +#define UC_GR_UC_XI 77 +#define UC_GR_UC_KAPPA 78 +#define UC_GR_UC_LAMDA 79 +#define UC_GR_UC_ZETA 80 +#define UC_GR_UC_UPSILON 81 +#define UC_GR_UC_IOTA 82 +#define UC_GR_UC_ALPHA 83 +#define UC_GR_UC_EPSILON 84 +#define UC_GR_UC_OMICRON 85 +#define UC_GR_UC_SIGMA 86 +#define UC_GR_UC_NU 87 +#define UC_GR_UC_RHO 88 +#define UC_GR_UC_TAU 89 +#define UC_GR_UC_DELTA 90 +#define UC_GR_UC_THETA 91 +#define UC_GR_UC_BETA 92 +#define UC_GR_UC_MU 93 +#define UC_GR_UC_PSI 94 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* + * .-------------------------------------. .-------------------------------------. + * |MO(5)| 1 | 2 | 3 | 4 | 5 | ACUT | ! GRV | 6 | 7 | 8 | 9 | 0 |CIRC | + * !-----+----+----+----+----+-----------! !------+----+----+----+----+----+-----! + * |MO(4)| X | P | F | W | G | HOME | !TG(2) | H | J | K | L | Q | Z | + * !-----+----+----+----x----x----! ! ! !----x----x----+----+----+-----! + * |MO(1)| U | I | A | E | O |------! !------! S | N | R | T | D | SS | + * !-----+----+----+----x----x----! ! ! !----x----x----+----+----+-----! + * |MO(3)| UE | OE | AE | C | V | END | ! TAB | B | M |COMM| DOT| UP | Y | + * '-----+----+----+----+----+-----------' '-----------+----+----+----+----+-----' + * | | |LGUI|LALT|LCTL| !LALT| |LEFT|DOWN|RGHT| + * '------------------------'.-------------. .-------------.'------------------------' + * | INS |TG(2) | !M(UMS)| DELT | + * .------+------+------! !------+------+------. + * ! ! | APP | ! PGUP | ! ! + * ! ! !------! !------! ! ! + * | BSPC | LSFT | ESC | ! PGDN |ENTER |SPACE | + * '--------------------' '--------------------' +*/ +[L0] = KEYMAP( + MO(5), + DE_1, DE_2, DE_3, DE_4, DE_5, DE_ACUT, MO(4), + DE_X, DE_P, DE_F, DE_W, DE_G, KC_HOME, MO(1), + DE_U, DE_I, DE_A, DE_E, DE_O, MO(3), + DE_UE, DE_OE, DE_AE, DE_C, DE_V, KC_END, KC_TRNS, + KC_TRNS, KC_LGUI, KC_LALT, KC_LCTL, KC_INS, + TG(2), KC_APP, + KC_BSPC, + KC_LSFT, KC_ESC, DE_GRV, + DE_6, DE_7, DE_8, DE_9, DE_0, DE_CIRC, TG(2), + DE_H, DE_J, DE_K, DE_L, DE_Q, DE_Z, DE_S, + DE_N, DE_R, DE_T, DE_D, DE_SS, KC_TAB, + DE_B, DE_M, DE_COMM, DE_DOT, KC_UP, DE_Y, KC_LALT, + KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, M(UMS), + KC_DELT, KC_PGUP, + KC_PGDN, + KC_ENTER, KC_SPACE), +/* + * .-------------------------------------. .-------------------------------------. + * | |EXLM|DQOT|PARA| | | | ! | | | | |RING| | + * !-----+----+----+----+----+-----------! !------+----+----+----+----+----+-----! + * | |ASTR|PIPE|SLSH|LCBR|RCBR| | ! |HASH|LESS|MORE| |DQOT| | + * !-----+----+----+----x----x----! ! ! !----x----x----+----+----+-----! + * | |UNDS|MINS|AMPR|LBRC|RBRC|------! !------!DLR |LPRN|RPRN|TILD|QUOT|QST | + * !-----+----+----+----x----x----! ! ! !----x----x----+----+----+-----! + * | | |PLUS| EQL| | | | ! |BSLS|PERC|SCLN|COLN| ↑ | | + * '-----+----+----+----+----+-----------' '-----------+----+----+----+----+-----' + * | | | | | | ! | | ← | ↓ | → | + * '------------------------'.-------------. .-------------.'------------------------' + * | | | ! | | + * .------+------+------! !------+------+------. + * ! ! | | ! | ! ! + * ! ! !------! !------! ! ! + * | | | | ! | | | + * '--------------------' '--------------------' +*/ +[L1] = KEYMAP( + KC_TRNS, + DE_EXLM, DE_DQOT, DE_PARA, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + DE_ASTR, DE_PIPE, DE_SLSH, DE_LCBR, DE_RCBR, KC_TRNS, KC_TRNS, + DE_UNDS, DE_MINS, DE_AMPR, DE_LBRC, DE_RBRC, KC_TRNS, + KC_TRNS, DE_PLUS, DE_EQL, 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_RING, KC_TRNS, KC_TRNS, + DE_HASH, DE_LESS, DE_MORE, KC_TRNS, DE_DQOT, KC_TRNS, DE_DLR, + DE_LPRN, DE_RPRN, DE_TILD, DE_QUOT, DE_QST, KC_TRNS, + DE_BSLS, DE_PERC, DE_SCLN, DE_COLN, M(UC_UPWARDS_ARROW), KC_TRNS, KC_TRNS, + KC_TRNS, M(UC_LEFTWARDS_ARROW), M(UC_DOWNWARDS_ARROW), M(UC_RIGHTWARDS_ARROW), KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS), +/* + * .-------------------------------------. .-------------------------------------. + * | | F1 | F2 | F3 | F4 | F5 | F11 | ! F12 | F6 | F7 | F8 | F9 |F10 |PEQL | + * !-----+----+----+----+----+-----------! !------+----+----+----+----+----+-----! + * | | | | | | | | ! | | P7 | P8 | P9 |PAST|PSLS | + * !-----+----+----+----x----x----! ! ! !----x----x----+----+----+-----! + * | | | | | | |------! !------! | P4 | P5 | P6 |PMNS|PMNS | + * !-----+----+----+----x----x----! ! ! !----x----x----+----+----+-----! + * | | | | | | | | ! NLCK | | P1 | P2 | P3 |PPLS|PPLS | + * '-----+----+----+----+----+-----------' '-----------+----+----+----+----+-----' + * | | | | | | ! P0 |PCMM|PDOT|PENT|PENT| + * '------------------------'.-------------. .-------------.'------------------------' + * | | | ! | | + * .------+------+------! !------+------+------. + * ! ! | | ! | ! ! + * ! ! !------! !------! ! ! + * | | | | ! | | | + * '--------------------' '--------------------' +*/ +[L2] = KEYMAP( + KC_TRNS, + KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F11, 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_F12, + KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_PEQL, KC_TRNS, + KC_TRNS, KC_P7, KC_P8, KC_P9, KC_PAST, KC_PSLS, KC_TRNS, + KC_P4, KC_P5, KC_P6, KC_PMNS, KC_PMNS, KC_NLCK, + KC_TRNS, KC_P1, KC_P2, KC_P3, KC_PPLS, KC_PPLS, KC_P0, + KC_PCMM, KC_PDOT, KC_PENT, KC_PENT, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS), +/* + * .-------------------------------------. .-------------------------------------. + * | | ¹ | ² | ³ | ⁴ | ⁵ | ∀ | ! | ⁶ | ⁷ | ⁸ | ⁹ | ⁰ | | + * !-----+----+----+----+----+-----------! !------+----+----+----+----+----+-----! + * | | × | ½ | ÷ | ¼ | ⅕ | | ! | ⅙ | | ⅛ | | | | + * !-----+----+----+----x----x----! ! ! !----x----x----+----+----+-----! + * | | | ± | AT |EURO| ∅ |------! !------! ∞ | ⁿ | ∃ | ∈ | | | + * !-----+----+----+----x----x----! ! ! !----x----x----+----+----+-----! + * | | ⅓ | ≠ | ⅔ | ¾ | ≃ | | ! |EXLM| | ∄ | ∉ | | | + * '-----+----+----+----+----+-----------' '-----------+----+----+----+----+-----' + * | | | | | | ! | | | | | + * '------------------------'.-------------. .-------------.'------------------------' + * | | | ! | | + * .------+------+------! !------+------+------. + * ! ! | | ! | ! ! + * ! ! !------! !------! ! ! + * | | | | ! | | | + * '--------------------' '--------------------' +*/ +[L3] = KEYMAP( + KC_TRNS, + M(UC_SUP_ONE), M(UC_SUP_TWO), M(UC_SUP_THREE), M(UC_SUP_FOUR), M(UC_SUP_FIVE), M(UC_FOR_ALL), KC_TRNS, + M(UC_MULTIPLICATION_SIGN), M(UC_FR_ONE_HALF), M(UC_DIVISION_SIGN), M(UC_FR_ONE_QUARTER), M(UC_FR_ONE_FIFTH), KC_TRNS, KC_TRNS, + KC_TRNS, M(UC_PLUS_MINUS_SIGN), DE_AT, DE_EURO, M(UC_EMPTY_SET), KC_TRNS, + M(UC_FR_ONE_THIRD), M(UC_NOT_EQUAL_TO), M(UC_FR_TWO_THIRDS), M(UC_FR_THREE_QUARTERS), M(UC_ASYMPTOTICALLY_EQUAL_TO), 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, + M(UC_SUP_SIX), M(UC_SUP_SEVEN), M(UC_SUP_EIGHT), M(UC_SUP_NINE), M(UC_SUP_ZERO), KC_TRNS, KC_TRNS, + M(UC_FR_ONE_SIXTH), KC_TRNS, M(UC_FR_ONE_EIGHTH), KC_TRNS, KC_TRNS, KC_TRNS, M(UC_INFINITY), + M(UC_SUP_LATIN_SMALL_LETTER_N), M(UC_THERE_EXISTS), M(UC_ELEMENT_OF), KC_TRNS, KC_TRNS, KC_TRNS, + DE_EXLM, KC_TRNS, M(UC_THERE_DOES_NOT_EXIST), M(UC_NOT_AN_ELEMENT_OF), 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, + M(UC_SUB_ONE), M(UC_SUB_TWO), M(UC_SUB_THREE), M(UC_SUB_FOUR), M(UC_SUB_FIVE), KC_TRNS, KC_TRNS, + M(UC_GR_LC_CHI), M(UC_GR_LC_PI), M(UC_GR_LC_PHI), M(UC_GR_LC_OMEGA), M(UC_GR_LC_GAMMA), KC_TRNS, KC_TRNS, + M(UC_GR_LC_UPSILON), M(UC_GR_LC_IOTA), M(UC_GR_LC_ALPHA), M(UC_GR_LC_EPSILON), M(UC_GR_LC_OMICRON), KC_TRNS, + KC_TRNS, M(UC_GR_LC_THETA), 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, + M(UC_SUB_SIX), M(UC_SUB_SEVEN), M(UC_SUB_EIGHT), M(UC_SUB_NINE), M(UC_SUB_ZERO), KC_TRNS, KC_TRNS, + M(UC_GR_LC_ETA), M(UC_GR_LC_XI), M(UC_GR_LC_KAPPA), M(UC_GR_LC_LAMDA), KC_TRNS, M(UC_GR_LC_ZETA), M(UC_GR_LC_SIGMA), + M(UC_GR_LC_NU), M(UC_GR_LC_RHO), M(UC_GR_LC_TAU), M(UC_GR_LC_DELTA), M(UC_GR_LC_FINAL_SIGMA), KC_TRNS, + M(UC_GR_LC_BETA), M(UC_GR_LC_MU), KC_TRNS, KC_TRNS, KC_TRNS, M(UC_GR_LC_PSI), 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, + M(UC_GR_UC_CHI), M(UC_GR_UC_PI), M(UC_GR_UC_PHI), M(UC_GR_UC_OMEGA), M(UC_GR_UC_GAMMA), KC_TRNS, KC_TRNS, + M(UC_GR_UC_UPSILON), M(UC_GR_UC_IOTA), M(UC_GR_UC_ALPHA), M(UC_GR_UC_EPSILON), M(UC_GR_UC_OMICRON), KC_TRNS, + KC_TRNS, M(UC_GR_UC_THETA), 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, + M(UC_GR_UC_ETA), M(UC_GR_UC_XI), M(UC_GR_UC_KAPPA), M(UC_GR_UC_LAMDA), KC_TRNS, M(UC_GR_UC_ZETA), M(UC_GR_UC_SIGMA), + M(UC_GR_UC_NU), M(UC_GR_UC_RHO), M(UC_GR_UC_TAU), M(UC_GR_UC_DELTA), KC_TRNS, KC_TRNS, + M(UC_GR_UC_BETA), M(UC_GR_UC_MU), KC_TRNS, KC_TRNS, KC_TRNS, M(UC_GR_UC_PSI), 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), +/* + * .-------------------------------------. .-------------------------------------. + * | | | | | | | | ! | | | | | | | + * !-----+----+----+----+----+-----------! !------+----+----+----+----+----+-----! + * | | | | | | | | ! | | | | | | | + * !-----+----+----+----x----x----! ! ! !----x----x----+----+----+-----! + * | | | | | | |------! !------! | | | | | | + * !-----+----+----+----x----x----! ! ! !----x----x----+----+----+-----! + * | | | | | | | | ! | | | | | | | + * '-----+----+----+----+----+-----------' '-----------+----+----+----+----+-----' + * | | | | | | ! | | | | | + * '------------------------'.-------------. .-------------.'------------------------' + * | | | ! | | + * .------+------+------! !------+------+------. + * ! ! | | ! | ! ! + * ! ! !------! !------! ! ! + * | | | | ! | | | + * '--------------------' '--------------------' +*/ +[L7] = 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----+----+----+-----! + * | | | | | | | | ! | | | | | | | + * '-----+----+----+----+----+-----------' '-----------+----+----+----+----+-----' + * | | | | | | ! | | | | | + * '------------------------'.-------------. .-------------.'------------------------' + * | | | ! | | + * .------+------+------! !------+------+------. + * ! ! | | ! | ! ! + * ! ! !------! !------! ! ! + * | | | | ! | | | + * '--------------------' '--------------------' +*/ +[L8] = 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 + +static uint16_t unicode_mode = UC_MODE_WIN; + +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 UMS: + unicode_mode = (unicode_mode + 1) % 2; + break; + + default: + break; + } + if (unicode_mode == UC_MODE_WIN) { + switch(id) { + case UC_UPWARDS_ARROW: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_2), T(KP_1), T(KP_9), T(KP_1), U(LALT), END + ); +case UC_LEFTWARDS_ARROW: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_2), T(KP_1), T(KP_9), T(KP_0), U(LALT), END + ); +case UC_DOWNWARDS_ARROW: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_2), T(KP_1), T(KP_9), T(KP_3), U(LALT), END + ); +case UC_RIGHTWARDS_ARROW: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_2), T(KP_1), T(KP_9), T(KP_2), U(LALT), END + ); +case UC_SUP_ONE: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_0), T(B), T(KP_9), U(LALT), END + ); +case UC_SUP_TWO: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_0), T(B), T(KP_2), U(LALT), END + ); +case UC_SUP_THREE: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_0), T(B), T(KP_3), U(LALT), END + ); +case UC_SUP_FOUR: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_2), T(KP_0), T(KP_7), T(KP_4), U(LALT), END + ); +case UC_SUP_FIVE: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_2), T(KP_0), T(KP_7), T(KP_5), U(LALT), END + ); +case UC_FOR_ALL: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_2), T(KP_2), T(KP_0), T(KP_0), U(LALT), END + ); +case UC_SUP_SIX: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_2), T(KP_0), T(KP_7), T(KP_6), U(LALT), END + ); +case UC_SUP_SEVEN: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_2), T(KP_0), T(KP_7), T(KP_7), U(LALT), END + ); +case UC_SUP_EIGHT: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_2), T(KP_0), T(KP_7), T(KP_8), U(LALT), END + ); +case UC_SUP_NINE: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_2), T(KP_0), T(KP_7), T(KP_9), U(LALT), END + ); +case UC_SUP_ZERO: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_2), T(KP_0), T(KP_7), T(KP_0), U(LALT), END + ); +case UC_MULTIPLICATION_SIGN: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_0), T(D), T(KP_7), U(LALT), END + ); +case UC_FR_ONE_HALF: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_0), T(B), T(D), U(LALT), END + ); +case UC_DIVISION_SIGN: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_0), T(F), T(KP_7), U(LALT), END + ); +case UC_FR_ONE_QUARTER: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_0), T(B), T(C), U(LALT), END + ); +case UC_FR_ONE_FIFTH: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_2), T(KP_1), T(KP_5), T(KP_5), U(LALT), END + ); +case UC_FR_ONE_SIXTH: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_2), T(KP_1), T(KP_5), T(KP_9), U(LALT), END + ); +case UC_FR_ONE_EIGHTH: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_2), T(KP_1), T(KP_5), T(B), U(LALT), END + ); +case UC_PLUS_MINUS_SIGN: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_0), T(B), T(KP_1), U(LALT), END + ); +case UC_EMPTY_SET: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_2), T(KP_2), T(KP_0), T(KP_5), U(LALT), END + ); +case UC_INFINITY: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_2), T(KP_2), T(KP_1), T(E), U(LALT), END + ); +case UC_SUP_LATIN_SMALL_LETTER_N: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_2), T(KP_0), T(KP_7), T(F), U(LALT), END + ); +case UC_THERE_EXISTS: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_2), T(KP_2), T(KP_0), T(KP_3), U(LALT), END + ); +case UC_ELEMENT_OF: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_2), T(KP_2), T(KP_0), T(KP_8), U(LALT), END + ); +case UC_FR_ONE_THIRD: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_2), T(KP_1), T(KP_5), T(KP_3), U(LALT), END + ); +case UC_NOT_EQUAL_TO: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_2), T(KP_2), T(KP_6), T(KP_0), U(LALT), END + ); +case UC_FR_TWO_THIRDS: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_2), T(KP_1), T(KP_5), T(KP_4), U(LALT), END + ); +case UC_FR_THREE_QUARTERS: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_0), T(B), T(E), U(LALT), END + ); +case UC_ASYMPTOTICALLY_EQUAL_TO: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_2), T(KP_2), T(KP_4), T(KP_3), U(LALT), END + ); +case UC_THERE_DOES_NOT_EXIST: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_2), T(KP_2), T(KP_0), T(KP_4), U(LALT), END + ); +case UC_NOT_AN_ELEMENT_OF: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_2), T(KP_2), T(KP_0), T(KP_9), U(LALT), END + ); +case UC_SUB_ONE: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_2), T(KP_0), T(KP_8), T(KP_1), U(LALT), END + ); +case UC_SUB_TWO: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_2), T(KP_0), T(KP_8), T(KP_2), U(LALT), END + ); +case UC_SUB_THREE: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_2), T(KP_0), T(KP_8), T(KP_3), U(LALT), END + ); +case UC_SUB_FOUR: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_2), T(KP_0), T(KP_8), T(KP_4), U(LALT), END + ); +case UC_SUB_FIVE: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_2), T(KP_0), T(KP_8), T(KP_5), U(LALT), END + ); +case UC_SUB_SIX: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_2), T(KP_0), T(KP_8), T(KP_6), U(LALT), END + ); +case UC_SUB_SEVEN: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_2), T(KP_0), T(KP_8), T(KP_7), U(LALT), END + ); +case UC_SUB_EIGHT: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_2), T(KP_0), T(KP_8), T(KP_8), U(LALT), END + ); +case UC_SUB_NINE: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_2), T(KP_0), T(KP_8), T(KP_9), U(LALT), END + ); +case UC_SUB_ZERO: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_2), T(KP_0), T(KP_8), T(KP_0), U(LALT), END + ); +case UC_GR_LC_CHI: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(C), T(KP_7), U(LALT), END + ); +case UC_GR_LC_PI: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(C), T(KP_0), U(LALT), END + ); +case UC_GR_LC_PHI: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(C), T(KP_6), U(LALT), END + ); +case UC_GR_LC_OMEGA: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(C), T(KP_9), U(LALT), END + ); +case UC_GR_LC_GAMMA: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(B), T(KP_3), U(LALT), END + ); +case UC_GR_LC_ETA: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(B), T(KP_7), U(LALT), END + ); +case UC_GR_LC_XI: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(B), T(E), U(LALT), END + ); +case UC_GR_LC_KAPPA: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(B), T(A), U(LALT), END + ); +case UC_GR_LC_LAMDA: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(B), T(B), U(LALT), END + ); +case UC_GR_LC_ZETA: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(B), T(KP_6), U(LALT), END + ); +case UC_GR_LC_UPSILON: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(C), T(KP_5), U(LALT), END + ); +case UC_GR_LC_IOTA: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(B), T(KP_9), U(LALT), END + ); +case UC_GR_LC_ALPHA: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(B), T(KP_1), U(LALT), END + ); +case UC_GR_LC_EPSILON: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(B), T(KP_5), U(LALT), END + ); +case UC_GR_LC_OMICRON: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(B), T(F), U(LALT), END + ); +case UC_GR_LC_SIGMA: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(C), T(KP_3), U(LALT), END + ); +case UC_GR_LC_NU: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(B), T(D), U(LALT), END + ); +case UC_GR_LC_RHO: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(C), T(KP_1), U(LALT), END + ); +case UC_GR_LC_TAU: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(C), T(KP_4), U(LALT), END + ); +case UC_GR_LC_DELTA: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(B), T(KP_4), U(LALT), END + ); +case UC_GR_LC_FINAL_SIGMA: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(C), T(KP_2), U(LALT), END + ); +case UC_GR_LC_THETA: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(B), T(KP_8), U(LALT), END + ); +case UC_GR_LC_BETA: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(B), T(KP_2), U(LALT), END + ); +case UC_GR_LC_MU: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(B), T(C), U(LALT), END + ); +case UC_GR_LC_PSI: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(C), T(KP_8), U(LALT), END + ); +case UC_GR_UC_CHI: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(A), T(KP_7), U(LALT), END + ); +case UC_GR_UC_PI: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(A), T(KP_0), U(LALT), END + ); +case UC_GR_UC_PHI: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(A), T(KP_6), U(LALT), END + ); +case UC_GR_UC_OMEGA: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(A), T(KP_9), U(LALT), END + ); +case UC_GR_UC_GAMMA: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(KP_9), T(KP_3), U(LALT), END + ); +case UC_GR_UC_ETA: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(KP_9), T(KP_7), U(LALT), END + ); +case UC_GR_UC_XI: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(KP_9), T(E), U(LALT), END + ); +case UC_GR_UC_KAPPA: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(KP_9), T(A), U(LALT), END + ); +case UC_GR_UC_LAMDA: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(KP_9), T(B), U(LALT), END + ); +case UC_GR_UC_ZETA: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(KP_9), T(KP_6), U(LALT), END + ); +case UC_GR_UC_UPSILON: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(A), T(KP_5), U(LALT), END + ); +case UC_GR_UC_IOTA: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(KP_9), T(KP_9), U(LALT), END + ); +case UC_GR_UC_ALPHA: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(KP_9), T(KP_1), U(LALT), END + ); +case UC_GR_UC_EPSILON: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(KP_9), T(KP_5), U(LALT), END + ); +case UC_GR_UC_OMICRON: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(KP_9), T(F), U(LALT), END + ); +case UC_GR_UC_SIGMA: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(A), T(KP_3), U(LALT), END + ); +case UC_GR_UC_NU: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(KP_9), T(D), U(LALT), END + ); +case UC_GR_UC_RHO: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(A), T(KP_1), U(LALT), END + ); +case UC_GR_UC_TAU: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(A), T(KP_4), U(LALT), END + ); +case UC_GR_UC_DELTA: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(KP_9), T(KP_4), U(LALT), END + ); +case UC_GR_UC_THETA: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(KP_9), T(KP_8), U(LALT), END + ); +case UC_GR_UC_BETA: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(KP_9), T(KP_2), U(LALT), END + ); +case UC_GR_UC_MU: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(KP_9), T(C), U(LALT), END + ); +case UC_GR_UC_PSI: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(A), T(KP_8), U(LALT), END + ); + default: + break; + } + } else if (unicode_mode == UC_MODE_LINUX) { + switch(id) { + case UC_UPWARDS_ARROW: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_1), T(KP_9), T(KP_1), T(KP_ENTER), END + ); +case UC_LEFTWARDS_ARROW: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_1), T(KP_9), T(KP_0), T(KP_ENTER), END + ); +case UC_DOWNWARDS_ARROW: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_1), T(KP_9), T(KP_3), T(KP_ENTER), END + ); +case UC_RIGHTWARDS_ARROW: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_1), T(KP_9), T(KP_2), T(KP_ENTER), END + ); +case UC_SUP_ONE: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_0), T(B), T(KP_9), T(KP_ENTER), END + ); +case UC_SUP_TWO: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_0), T(B), T(KP_2), T(KP_ENTER), END + ); +case UC_SUP_THREE: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_0), T(B), T(KP_3), T(KP_ENTER), END + ); +case UC_SUP_FOUR: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_0), T(KP_7), T(KP_4), T(KP_ENTER), END + ); +case UC_SUP_FIVE: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_0), T(KP_7), T(KP_5), T(KP_ENTER), END + ); +case UC_FOR_ALL: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_2), T(KP_0), T(KP_0), T(KP_ENTER), END + ); +case UC_SUP_SIX: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_0), T(KP_7), T(KP_6), T(KP_ENTER), END + ); +case UC_SUP_SEVEN: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_0), T(KP_7), T(KP_7), T(KP_ENTER), END + ); +case UC_SUP_EIGHT: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_0), T(KP_7), T(KP_8), T(KP_ENTER), END + ); +case UC_SUP_NINE: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_0), T(KP_7), T(KP_9), T(KP_ENTER), END + ); +case UC_SUP_ZERO: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_0), T(KP_7), T(KP_0), T(KP_ENTER), END + ); +case UC_MULTIPLICATION_SIGN: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_0), T(D), T(KP_7), T(KP_ENTER), END + ); +case UC_FR_ONE_HALF: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_0), T(B), T(D), T(KP_ENTER), END + ); +case UC_DIVISION_SIGN: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_0), T(F), T(KP_7), T(KP_ENTER), END + ); +case UC_FR_ONE_QUARTER: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_0), T(B), T(C), T(KP_ENTER), END + ); +case UC_FR_ONE_FIFTH: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_1), T(KP_5), T(KP_5), T(KP_ENTER), END + ); +case UC_FR_ONE_SIXTH: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_1), T(KP_5), T(KP_9), T(KP_ENTER), END + ); +case UC_FR_ONE_EIGHTH: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_1), T(KP_5), T(B), T(KP_ENTER), END + ); +case UC_PLUS_MINUS_SIGN: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_0), T(B), T(KP_1), T(KP_ENTER), END + ); +case UC_EMPTY_SET: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_2), T(KP_0), T(KP_5), T(KP_ENTER), END + ); +case UC_INFINITY: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_2), T(KP_1), T(E), T(KP_ENTER), END + ); +case UC_SUP_LATIN_SMALL_LETTER_N: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_0), T(KP_7), T(F), T(KP_ENTER), END + ); +case UC_THERE_EXISTS: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_2), T(KP_0), T(KP_3), T(KP_ENTER), END + ); +case UC_ELEMENT_OF: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_2), T(KP_0), T(KP_8), T(KP_ENTER), END + ); +case UC_FR_ONE_THIRD: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_1), T(KP_5), T(KP_3), T(KP_ENTER), END + ); +case UC_NOT_EQUAL_TO: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_2), T(KP_6), T(KP_0), T(KP_ENTER), END + ); +case UC_FR_TWO_THIRDS: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_1), T(KP_5), T(KP_4), T(KP_ENTER), END + ); +case UC_FR_THREE_QUARTERS: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_0), T(B), T(E), T(KP_ENTER), END + ); +case UC_ASYMPTOTICALLY_EQUAL_TO: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_2), T(KP_4), T(KP_3), T(KP_ENTER), END + ); +case UC_THERE_DOES_NOT_EXIST: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_2), T(KP_0), T(KP_4), T(KP_ENTER), END + ); +case UC_NOT_AN_ELEMENT_OF: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_2), T(KP_0), T(KP_9), T(KP_ENTER), END + ); +case UC_SUB_ONE: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_0), T(KP_8), T(KP_1), T(KP_ENTER), END + ); +case UC_SUB_TWO: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_0), T(KP_8), T(KP_2), T(KP_ENTER), END + ); +case UC_SUB_THREE: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_0), T(KP_8), T(KP_3), T(KP_ENTER), END + ); +case UC_SUB_FOUR: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_0), T(KP_8), T(KP_4), T(KP_ENTER), END + ); +case UC_SUB_FIVE: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_0), T(KP_8), T(KP_5), T(KP_ENTER), END + ); +case UC_SUB_SIX: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_0), T(KP_8), T(KP_6), T(KP_ENTER), END + ); +case UC_SUB_SEVEN: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_0), T(KP_8), T(KP_7), T(KP_ENTER), END + ); +case UC_SUB_EIGHT: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_0), T(KP_8), T(KP_8), T(KP_ENTER), END + ); +case UC_SUB_NINE: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_0), T(KP_8), T(KP_9), T(KP_ENTER), END + ); +case UC_SUB_ZERO: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_0), T(KP_8), T(KP_0), T(KP_ENTER), END + ); +case UC_GR_LC_CHI: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(C), T(KP_7), T(KP_ENTER), END + ); +case UC_GR_LC_PI: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(C), T(KP_0), T(KP_ENTER), END + ); +case UC_GR_LC_PHI: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(C), T(KP_6), T(KP_ENTER), END + ); +case UC_GR_LC_OMEGA: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(C), T(KP_9), T(KP_ENTER), END + ); +case UC_GR_LC_GAMMA: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(B), T(KP_3), T(KP_ENTER), END + ); +case UC_GR_LC_ETA: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(B), T(KP_7), T(KP_ENTER), END + ); +case UC_GR_LC_XI: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(B), T(E), T(KP_ENTER), END + ); +case UC_GR_LC_KAPPA: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(B), T(A), T(KP_ENTER), END + ); +case UC_GR_LC_LAMDA: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(B), T(B), T(KP_ENTER), END + ); +case UC_GR_LC_ZETA: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(B), T(KP_6), T(KP_ENTER), END + ); +case UC_GR_LC_UPSILON: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(C), T(KP_5), T(KP_ENTER), END + ); +case UC_GR_LC_IOTA: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(B), T(KP_9), T(KP_ENTER), END + ); +case UC_GR_LC_ALPHA: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(B), T(KP_1), T(KP_ENTER), END + ); +case UC_GR_LC_EPSILON: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(B), T(KP_5), T(KP_ENTER), END + ); +case UC_GR_LC_OMICRON: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(B), T(F), T(KP_ENTER), END + ); +case UC_GR_LC_SIGMA: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(C), T(KP_3), T(KP_ENTER), END + ); +case UC_GR_LC_NU: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(B), T(D), T(KP_ENTER), END + ); +case UC_GR_LC_RHO: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(C), T(KP_1), T(KP_ENTER), END + ); +case UC_GR_LC_TAU: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(C), T(KP_4), T(KP_ENTER), END + ); +case UC_GR_LC_DELTA: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(B), T(KP_4), T(KP_ENTER), END + ); +case UC_GR_LC_FINAL_SIGMA: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(C), T(KP_2), T(KP_ENTER), END + ); +case UC_GR_LC_THETA: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(B), T(KP_8), T(KP_ENTER), END + ); +case UC_GR_LC_BETA: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(B), T(KP_2), T(KP_ENTER), END + ); +case UC_GR_LC_MU: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(B), T(C), T(KP_ENTER), END + ); +case UC_GR_LC_PSI: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(C), T(KP_8), T(KP_ENTER), END + ); +case UC_GR_UC_CHI: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(A), T(KP_7), T(KP_ENTER), END + ); +case UC_GR_UC_PI: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(A), T(KP_0), T(KP_ENTER), END + ); +case UC_GR_UC_PHI: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(A), T(KP_6), T(KP_ENTER), END + ); +case UC_GR_UC_OMEGA: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(A), T(KP_9), T(KP_ENTER), END + ); +case UC_GR_UC_GAMMA: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(KP_9), T(KP_3), T(KP_ENTER), END + ); +case UC_GR_UC_ETA: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(KP_9), T(KP_7), T(KP_ENTER), END + ); +case UC_GR_UC_XI: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(KP_9), T(E), T(KP_ENTER), END + ); +case UC_GR_UC_KAPPA: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(KP_9), T(A), T(KP_ENTER), END + ); +case UC_GR_UC_LAMDA: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(KP_9), T(B), T(KP_ENTER), END + ); +case UC_GR_UC_ZETA: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(KP_9), T(KP_6), T(KP_ENTER), END + ); +case UC_GR_UC_UPSILON: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(A), T(KP_5), T(KP_ENTER), END + ); +case UC_GR_UC_IOTA: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(KP_9), T(KP_9), T(KP_ENTER), END + ); +case UC_GR_UC_ALPHA: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(KP_9), T(KP_1), T(KP_ENTER), END + ); +case UC_GR_UC_EPSILON: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(KP_9), T(KP_5), T(KP_ENTER), END + ); +case UC_GR_UC_OMICRON: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(KP_9), T(F), T(KP_ENTER), END + ); +case UC_GR_UC_SIGMA: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(A), T(KP_3), T(KP_ENTER), END + ); +case UC_GR_UC_NU: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(KP_9), T(D), T(KP_ENTER), END + ); +case UC_GR_UC_RHO: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(A), T(KP_1), T(KP_ENTER), END + ); +case UC_GR_UC_TAU: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(A), T(KP_4), T(KP_ENTER), END + ); +case UC_GR_UC_DELTA: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(KP_9), T(KP_4), T(KP_ENTER), END + ); +case UC_GR_UC_THETA: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(KP_9), T(KP_8), T(KP_ENTER), END + ); +case UC_GR_UC_BETA: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(KP_9), T(KP_2), T(KP_ENTER), END + ); +case UC_GR_UC_MU: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(KP_9), T(C), T(KP_ENTER), END + ); +case UC_GR_UC_PSI: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(A), T(KP_8), T(KP_ENTER), END + ); + 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; + } +}; diff --git a/keyboard/ergodox_ez/keymaps/german-manuneo/keymap.md b/keyboard/ergodox_ez/keymaps/german-manuneo/keymap.md new file mode 100644 index 0000000000..9c0c12528b --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/german-manuneo/keymap.md @@ -0,0 +1,222 @@ +# ManuNeo Ergodox Keyboard Layout + +# Layout Config + + { + "includes_dir": "quantum/", + "keymaps_includes": [ + "ergodox_ez.h", + "action_layer.h", + "keymap_common.h", + "keymap_extras/keymap_german.h", + ], + "keymap_indexes": [ + [ 0, 1, 2, 3, 4, 5, 6], [38, 39, 40, 41, 42, 43, 44], + [ 7, 8, 9, 10, 11, 12, 13], [45, 46, 47, 48, 49, 50, 51], + [14, 15, 16, 17, 18, 19 ], [ 52, 53, 54, 55, 56, 57], + [20, 21, 22, 23, 24, 25, 26], [58, 59, 60, 61, 62, 63, 64], + [27, 28, 29, 30, 31 ], [ 65, 66, 67, 68, 69], + [ 32, 33], [70, 71 ], + [ 34], [72 ], + [ 35, 36, 37], [73, 74, 75 ], + ], + "key_prefixes": ["DE_", "KC_"], + "filler": "-+.'!x", + "separator": "|", + "macros": { + "MUC": "", + }, + } + + +# Layers + + +## Layer 0 + + .-------------------------------------. .-------------------------------------. + |MO(5)| 1 | 2 | 3 | 4 | 5 | ACUT | ! GRV | 6 | 7 | 8 | 9 | 0 |CIRC | + !-----+----+----+----+----+-----------! !------+----+----+----+----+----+-----! + |MO(4)| X | P | F | W | G | HOME | !TG(2) | H | J | K | L | Q | Z | + !-----+----+----+----x----x----! ! ! !----x----x----+----+----+-----! + |MO(1)| U | I | A | E | O |------! !------! S | N | R | T | D | SS | + !-----+----+----+----x----x----! ! ! !----x----x----+----+----+-----! + |MO(3)| UE | OE | AE | C | V | END | ! TAB | B | M |COMM| DOT| UP | Y | + '-----+----+----+----+----+-----------' '-----------+----+----+----+----+-----' + | | |LGUI|LALT|LCTL| !LALT| |LEFT|DOWN|RGHT| + '------------------------'.-------------. .-------------.'------------------------' + | INS |TG(2) | !M(UMS)| DELT | + .------+------+------! !------+------+------. + ! ! | APP | ! PGUP | ! ! + ! ! !------! !------! ! ! + | BSPC | LSFT | ESC | ! PGDN |ENTER |SPACE | + '--------------------' '--------------------' + + +## Layer 1 + + .-------------------------------------. .-------------------------------------. + | |EXLM|DQOT|PARA| | | | ! | | | | |RING| | + !-----+----+----+----+----+-----------! !------+----+----+----+----+----+-----! + | |ASTR|PIPE|SLSH|LCBR|RCBR| | ! |HASH|LESS|MORE| |DQOT| | + !-----+----+----+----x----x----! ! ! !----x----x----+----+----+-----! + | |UNDS|MINS|AMPR|LBRC|RBRC|------! !------!DLR |LPRN|RPRN|TILD|QUOT|QST | + !-----+----+----+----x----x----! ! ! !----x----x----+----+----+-----! + | | |PLUS| EQL| | | | ! |BSLS|PERC|SCLN|COLN| ↑ | | + '-----+----+----+----+----+-----------' '-----------+----+----+----+----+-----' + | | | | | | ! | | ← | ↓ | → | + '------------------------'.-------------. .-------------.'------------------------' + | | | ! | | + .------+------+------! !------+------+------. + ! ! | | ! | ! ! + ! ! !------! !------! ! ! + | | | | ! | | | + '--------------------' '--------------------' + + +## Layer 2 + + .-------------------------------------. .-------------------------------------. + | | F1 | F2 | F3 | F4 | F5 | F11 | ! F12 | F6 | F7 | F8 | F9 |F10 |PEQL | + !-----+----+----+----+----+-----------! !------+----+----+----+----+----+-----! + | | | | | | | | ! | | P7 | P8 | P9 |PAST|PSLS | + !-----+----+----+----x----x----! ! ! !----x----x----+----+----+-----! + | | | | | | |------! !------! | P4 | P5 | P6 |PMNS|PMNS | + !-----+----+----+----x----x----! ! ! !----x----x----+----+----+-----! + | | | | | | | | ! NLCK | | P1 | P2 | P3 |PPLS|PPLS | + '-----+----+----+----+----+-----------' '-----------+----+----+----+----+-----' + | | | | | | ! P0 |PCMM|PDOT|PENT|PENT| + '------------------------'.-------------. .-------------.'------------------------' + | | | ! | | + .------+------+------! !------+------+------. + ! ! | | ! | ! ! + ! ! !------! !------! ! ! + | | | | ! | | | + '--------------------' '--------------------' + + +## Layer 3 + +http://symbolcodes.tlt.psu.edu/bylanguage/mathchart.html + + .-------------------------------------. .-------------------------------------. + | | ¹ | ² | ³ | ⁴ | ⁵ | ∀ | ! | ⁶ | ⁷ | ⁸ | ⁹ | ⁰ | | + !-----+----+----+----+----+-----------! !------+----+----+----+----+----+-----! + | | × | ½ | ÷ | ¼ | ⅕ | | ! | ⅙ | | ⅛ | | | | + !-----+----+----+----x----x----! ! ! !----x----x----+----+----+-----! + | | | ± | AT |EURO| ∅ |------! !------! ∞ | ⁿ | ∃ | ∈ | | | + !-----+----+----+----x----x----! ! ! !----x----x----+----+----+-----! + | | ⅓ | ≠ | ⅔ | ¾ | ≃ | | ! |EXLM| | ∄ | ∉ | | | + '-----+----+----+----+----+-----------' '-----------+----+----+----+----+-----' + | | | | | | ! | | | | | + '------------------------'.-------------. .-------------.'------------------------' + | | | ! | | + .------+------+------! !------+------+------. + ! ! | | ! | ! ! + ! ! !------! !------! ! ! + | | | | ! | | | + '--------------------' '--------------------' + + +## Layer 4 + + .-------------------------------------. .-------------------------------------. + | | ₁ | ₂ | ₃ | ₄ | ₅ | | ! | ₆ | ₇ | ₈ | ₉ | ₀ | | + !-----+----+----+----+----+-----------! !------+----+----+----+----+----+-----! + | | χ | π | φ | ω | γ | | ! | η | ξ | κ | λ | | ζ | + !-----+----+----+----x----x----! ! ! !----x----x----+----+----+-----! + | | υ | ι | α | ε | ο |------! !------! σ | ν | ρ | τ | δ | ς | + !-----+----+----+----x----x----! ! ! !----x----x----+----+----+-----! + | | | θ | | | | | ! | β | μ | | | | ψ | + '-----+----+----+----+----+-----------' '-----------+----+----+----+----+-----' + | | | | | | ! | | | | | + '------------------------'.-------------. .-------------.'------------------------' + | | | ! | | + .------+------+------! !------+------+------. + ! ! | | ! | ! ! + ! ! !------! !------! ! ! + | | | | ! | | | + '--------------------' '--------------------' + + +## Layer 5 + + .-------------------------------------. .-------------------------------------. + | | | | | | | | ! | | | | | | | + !-----+----+----+----+----+-----------! !------+----+----+----+----+----+-----! + | | Χ | Π | Φ | Ω | Γ | | ! | Η | Ξ | Κ | Λ | | Ζ | + !-----+----+----+----x----x----! ! ! !----x----x----+----+----+-----! + | | Υ | Ι | Α | Ε | Ο |------! !------! Σ | Ν | Ρ | Τ | Δ | | + !-----+----+----+----x----x----! ! ! !----x----x----+----+----+-----! + | | | Θ | | | | | ! | Β | Μ | | | | Ψ | + '-----+----+----+----+----+-----------' '-----------+----+----+----+----+-----' + | | | | | | ! | | | | | + '------------------------'.-------------. .-------------.'------------------------' + | | | ! | | + .------+------+------! !------+------+------. + ! ! | | ! | ! ! + ! ! !------! !------! ! ! + | | | | ! | | | + '--------------------' '--------------------' + + +## Layer 6 + + .-------------------------------------. .-------------------------------------. + | | | | | | | | ! | | | | | | | + !-----+----+----+----+----+-----------! !------+----+----+----+----+----+-----! + | | | | | | | | ! | | | | | | | + !-----+----+----+----x----x----! ! ! !----x----x----+----+----+-----! + | | | | | | |------! !------! | | | | | | + !-----+----+----+----x----x----! ! ! !----x----x----+----+----+-----! + | | | | | | | | ! | | | | | | | + '-----+----+----+----+----+-----------' '-----------+----+----+----+----+-----' + | | | | | | ! | | | | | + '------------------------'.-------------. .-------------.'------------------------' + | | | ! | | + .------+------+------! !------+------+------. + ! ! | | ! | ! ! + ! ! !------! !------! ! ! + | | | | ! | | | + '--------------------' '--------------------' + +## Layer 7 + + .-------------------------------------. .-------------------------------------. + | | | | | | | | ! | | | | | | | + !-----+----+----+----+----+-----------! !------+----+----+----+----+----+-----! + | | | | | | | | ! | | | | | | | + !-----+----+----+----x----x----! ! ! !----x----x----+----+----+-----! + | | | | | | |------! !------! | | | | | | + !-----+----+----+----x----x----! ! ! !----x----x----+----+----+-----! + | | | | | | | | ! | | | | | | | + '-----+----+----+----+----+-----------' '-----------+----+----+----+----+-----' + | | | | | | ! | | | | | + '------------------------'.-------------. .-------------.'------------------------' + | | | ! | | + .------+------+------! !------+------+------. + ! ! | | ! | ! ! + ! ! !------! !------! ! ! + | | | | ! | | | + '--------------------' '--------------------' + + +## Layer 8 + + .-------------------------------------. .-------------------------------------. + | | | | | | | | ! | | | | | | | + !-----+----+----+----+----+-----------! !------+----+----+----+----+----+-----! + | | | | | | | | ! | | | | | | | + !-----+----+----+----x----x----! ! ! !----x----x----+----+----+-----! + | | | | | | |------! !------! | | | | | | + !-----+----+----+----x----x----! ! ! !----x----x----+----+----+-----! + | | | | | | | | ! | | | | | | | + '-----+----+----+----+----+-----------' '-----------+----+----+----+----+-----' + | | | | | | ! | | | | | + '------------------------'.-------------. .-------------.'------------------------' + | | | ! | | + .------+------+------! !------+------+------. + ! ! | | ! | ! ! + ! ! !------! !------! ! ! + | | | | ! | | | + '--------------------' '--------------------' From beda4e6fd3a7b9e31b9cf591563e7aa1df0c7eed Mon Sep 17 00:00:00 2001 From: Matthew Carroll Date: Sun, 27 Mar 2016 23:51:11 -0400 Subject: [PATCH 09/45] Added msc keymap for ergodox_ez --- .../ergodox_ez/keymaps/msc/img/code_layer.png | Bin 0 -> 86217 bytes .../ergodox_ez/keymaps/msc/img/main_layer.png | Bin 0 -> 90624 bytes .../keymaps/msc/img/media_layer.png | Bin 0 -> 75750 bytes keyboard/ergodox_ez/keymaps/msc/keymap.c | 184 ++++++++++++++++++ keyboard/ergodox_ez/keymaps/msc/msc.hex | Bin 0 -> 50246 bytes keyboard/ergodox_ez/keymaps/msc/readme.md | 32 +++ 6 files changed, 216 insertions(+) create mode 100644 keyboard/ergodox_ez/keymaps/msc/img/code_layer.png create mode 100644 keyboard/ergodox_ez/keymaps/msc/img/main_layer.png create mode 100644 keyboard/ergodox_ez/keymaps/msc/img/media_layer.png create mode 100644 keyboard/ergodox_ez/keymaps/msc/keymap.c create mode 100644 keyboard/ergodox_ez/keymaps/msc/msc.hex create mode 100644 keyboard/ergodox_ez/keymaps/msc/readme.md diff --git a/keyboard/ergodox_ez/keymaps/msc/img/code_layer.png b/keyboard/ergodox_ez/keymaps/msc/img/code_layer.png new file mode 100644 index 0000000000000000000000000000000000000000..1d707c5eaef58f826fff1b58b67339bc3790c272 GIT binary patch literal 86217 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�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 literal 0 HcmV?d00001 diff --git a/keyboard/ergodox_ez/keymaps/msc/img/main_layer.png b/keyboard/ergodox_ez/keymaps/msc/img/main_layer.png new file mode 100644 index 0000000000000000000000000000000000000000..65f92dda1b64bcef1a1838cb5bd01ded13979260 GIT binary patch literal 90624 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
  • >1F@{$fRVZ*(oqC)0n1R_Vkd&tA&b;M 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 X&i literal 0 HcmV?d00001 diff --git a/keyboard/ergodox_ez/keymaps/msc/readme.md b/keyboard/ergodox_ez/keymaps/msc/readme.md new file mode 100644 index 0000000000..0d14fcbd29 --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/msc/readme.md @@ -0,0 +1,32 @@ +# MSC Configuration + +### Based mostly on the ErgoDox EZ default layout with optimizations for coding on osx. + +#### Expecting the user to rely on Coder Layer this keymap removes some of the duplicate symbol keys in the lower portions of the board and replaces them with arrow keys and modifiers. The Media Layer is also updated to match the change in the arrow keys and the left and right click buttons are moved under the thumb position. The Media layer is now reached with toggle button in the lower right. + +### Main Layer + +![Main Layer](img/main_layer.png) + +### Code Layer + +![Code Layer](img/code_layer.png) + +### Media Layer + +![Media Layer](img/media_layer.png) + +## Changelog + +Version 1.0 + +- Changed the temp code layer key in the bottom right to toggle media layer +- Changed the temp media key to only be ";" +- Changed right hand bottom row to match vim home row nav directions +- Changed media keys to match arrow key changes +- Changed media left and right click to spacebar and backspace locations +- Changed bottom left to Cmd +- Changed single quote on left bottom row to alt + +#### Coming Soon: +- A new layer for Blender editing with a focus on left hand shortcut and a righthand num pad to control the view in Blender. From 577971ab07a49405e1dcd8e5f75b3ecb87e710b9 Mon Sep 17 00:00:00 2001 From: IBNobody Date: Mon, 28 Mar 2016 00:03:21 -0500 Subject: [PATCH 10/45] Magic Key Overrides / Keyboard Lock / Forced NKRO Added Magic Key Overrides / Magic Key Cleanup / Added Keyboard Lock option to template / Added forced NKRO option to template (disabled by default) --- keyboard/retro_refit/Makefile | 23 +-- keyboard/retro_refit/config.h | 47 ++++- quantum/template/Makefile | 23 +-- quantum/template/config.h | 47 ++++- tmk_core/common/command.c | 355 +++++++++++++++++++++++----------- tmk_core/common/command.h | 121 ++++++++++++ tmk_core/common/keyboard.c | 6 + 7 files changed, 489 insertions(+), 133 deletions(-) diff --git a/keyboard/retro_refit/Makefile b/keyboard/retro_refit/Makefile index ec51227ff1..918b430719 100644 --- a/keyboard/retro_refit/Makefile +++ b/keyboard/retro_refit/Makefile @@ -113,18 +113,19 @@ OPT_DEFS += -DBOOTLOADER_SIZE=512 # Build Options # comment out to disable the options. # -BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000) -MOUSEKEY_ENABLE = yes # Mouse keys(+4700) -EXTRAKEY_ENABLE = yes # Audio control and System control(+450) -CONSOLE_ENABLE = yes # Console for debug(+400) -COMMAND_ENABLE = yes # Commands for debug and configuration +BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE = yes # Mouse keys(+4700) +EXTRAKEY_ENABLE = yes # Audio control and System control(+450) +CONSOLE_ENABLE = yes # Console for debug(+400) +COMMAND_ENABLE = yes # Commands for debug and configuration +KEYBOARD_LOCK_ENABLE = yes # Allow locking of keyboard via magic key # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE -# SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend -# NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work -# BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality -# MIDI_ENABLE = YES # MIDI controls -# UNICODE_ENABLE = YES # Unicode -# BLUETOOTH_ENABLE = yes # Enable Bluetooth with the Adafruit EZ-Key HID +# SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend +NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +# BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality +# MIDI_ENABLE = YES # MIDI controls +# UNICODE_ENABLE = YES # Unicode +# BLUETOOTH_ENABLE = yes # Enable Bluetooth with the Adafruit EZ-Key HID # Optimize size but this may cause error "relocation truncated to fit" diff --git a/keyboard/retro_refit/config.h b/keyboard/retro_refit/config.h index ba9a861edd..05fceb92b2 100644 --- a/keyboard/retro_refit/config.h +++ b/keyboard/retro_refit/config.h @@ -53,11 +53,54 @@ along with this program. If not, see . /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE -/* key combination for command */ + +/* Force NKRO Mode - If forced on, must be disabled via magic key (default = LShift+RShift+N) */ +#define FORCE_NKRO + +/* + * Magic key options + * These options allow the magic key functionality to be changed. This is useful + * if your keyboard/keypad is missing keys and you want magic key support. + */ + +/* key combination for magic key command */ #define IS_COMMAND() ( \ keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ ) +/* control how magic key switches layers */ +//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true +//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true +//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false + +/* remap magic keys */ +//#define MAGIC_KEY_HELP1 H +//#define MAGIC_KEY_HELP2 SLASH +//#define MAGIC_KEY_DEBUG D +//#define MAGIC_KEY_DEBUG_MATRIX X +//#define MAGIC_KEY_DEBUG_KBD K +//#define MAGIC_KEY_DEBUG_MOUSE M +//#define MAGIC_KEY_VERSION V +//#define MAGIC_KEY_STATUS S +//#define MAGIC_KEY_CONSOLE C +//#define MAGIC_KEY_LAYER0_ALT1 ESC +//#define MAGIC_KEY_LAYER0_ALT2 GRAVE +//#define MAGIC_KEY_LAYER0 0 +//#define MAGIC_KEY_LAYER1 1 +//#define MAGIC_KEY_LAYER2 2 +//#define MAGIC_KEY_LAYER3 3 +//#define MAGIC_KEY_LAYER4 4 +//#define MAGIC_KEY_LAYER5 5 +//#define MAGIC_KEY_LAYER6 6 +//#define MAGIC_KEY_LAYER7 7 +//#define MAGIC_KEY_LAYER8 8 +//#define MAGIC_KEY_LAYER9 9 +//#define MAGIC_KEY_BOOTLOADER PAUSE +#define MAGIC_KEY_LOCK BSLS +//#define MAGIC_KEY_EEPROM E +//#define MAGIC_KEY_NKRO N +//#define MAGIC_KEY_SLEEP_LED Z + /* * Feature disable options * These options are also useful to firmware size reduction. @@ -76,4 +119,4 @@ along with this program. If not, see . //#define NO_ACTION_MACRO //#define NO_ACTION_FUNCTION -#endif +#endif \ No newline at end of file diff --git a/quantum/template/Makefile b/quantum/template/Makefile index 2efa691380..4fa195468d 100644 --- a/quantum/template/Makefile +++ b/quantum/template/Makefile @@ -113,18 +113,19 @@ OPT_DEFS += -DBOOTLOADER_SIZE=512 # Build Options # comment out to disable the options. # -BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000) -MOUSEKEY_ENABLE = yes # Mouse keys(+4700) -EXTRAKEY_ENABLE = yes # Audio control and System control(+450) -CONSOLE_ENABLE = yes # Console for debug(+400) -COMMAND_ENABLE = yes # Commands for debug and configuration +BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE = yes # Mouse keys(+4700) +EXTRAKEY_ENABLE = yes # Audio control and System control(+450) +CONSOLE_ENABLE = yes # Console for debug(+400) +COMMAND_ENABLE = yes # Commands for debug and configuration +KEYBOARD_LOCK_ENABLE = yes # Allow locking of keyboard via magic key # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE -# SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend -# NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work -# BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality -# MIDI_ENABLE = YES # MIDI controls -# UNICODE_ENABLE = YES # Unicode -# BLUETOOTH_ENABLE = yes # Enable Bluetooth with the Adafruit EZ-Key HID +# SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend +#NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +# BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality +# MIDI_ENABLE = YES # MIDI controls +# UNICODE_ENABLE = YES # Unicode +# BLUETOOTH_ENABLE = yes # Enable Bluetooth with the Adafruit EZ-Key HID # Optimize size but this may cause error "relocation truncated to fit" diff --git a/quantum/template/config.h b/quantum/template/config.h index 7d6149f436..dae4b63130 100644 --- a/quantum/template/config.h +++ b/quantum/template/config.h @@ -55,11 +55,56 @@ along with this program. If not, see . /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE -/* key combination for command */ +/* Force NKRO Mode - If forced on, must be disabled via magic key (default = LShift+RShift+N) */ +//#define FORCE_NKRO + +/* + * Magic key options + * These options allow the magic key functionality to be changed. This is useful + * if your keyboard/keypad is missing keys and you want magic key support. + */ + +/* key combination for magic key command */ #define IS_COMMAND() ( \ keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ ) +/* control how magic key switches layers */ +//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true +//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true +//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false + +/* override magic key keymap */ +//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS +//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS +//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM +//#define MAGIC_KEY_HELP1 H +//#define MAGIC_KEY_HELP2 SLASH +//#define MAGIC_KEY_DEBUG D +//#define MAGIC_KEY_DEBUG_MATRIX X +//#define MAGIC_KEY_DEBUG_KBD K +//#define MAGIC_KEY_DEBUG_MOUSE M +//#define MAGIC_KEY_VERSION V +//#define MAGIC_KEY_STATUS S +//#define MAGIC_KEY_CONSOLE C +//#define MAGIC_KEY_LAYER0_ALT1 ESC +//#define MAGIC_KEY_LAYER0_ALT2 GRAVE +//#define MAGIC_KEY_LAYER0 0 +//#define MAGIC_KEY_LAYER1 1 +//#define MAGIC_KEY_LAYER2 2 +//#define MAGIC_KEY_LAYER3 3 +//#define MAGIC_KEY_LAYER4 4 +//#define MAGIC_KEY_LAYER5 5 +//#define MAGIC_KEY_LAYER6 6 +//#define MAGIC_KEY_LAYER7 7 +//#define MAGIC_KEY_LAYER8 8 +//#define MAGIC_KEY_LAYER9 9 +//#define MAGIC_KEY_BOOTLOADER PAUSE +//#define MAGIC_KEY_LOCK CAPS +//#define MAGIC_KEY_EEPROM E +//#define MAGIC_KEY_NKRO N +//#define MAGIC_KEY_SLEEP_LED Z + /* * Feature disable options * These options are also useful to firmware size reduction. diff --git a/tmk_core/common/command.c b/tmk_core/common/command.c index d59bb01bbc..b4cd3ca56b 100644 --- a/tmk_core/common/command.c +++ b/tmk_core/common/command.c @@ -52,6 +52,8 @@ along with this program. If not, see . static bool command_common(uint8_t code); static void command_common_help(void); +static void print_version(void); +static void print_status(void); static bool command_console(uint8_t code); static void command_console_help(void); #ifdef MOUSEKEY_ENABLE @@ -112,35 +114,140 @@ bool command_console_extra(uint8_t code) ***********************************************************/ static void command_common_help(void) { - print("\n\t- Magic -\n" - "d: debug\n" - "x: debug matrix\n" - "k: debug keyboard\n" - "m: debug mouse\n" - "v: version\n" - "s: status\n" - "c: console mode\n" - "0-4: layer0-4(F10-F4)\n" - "Paus: bootloader\n" + print( "\n\t- Magic -\n" + STR(MAGIC_KEY_DEBUG ) ": Debug Message Toggle\n" + STR(MAGIC_KEY_DEBUG_MATRIX) ": Matrix Debug Mode Toggle - Show keypresses in matrix grid\n" + STR(MAGIC_KEY_DEBUG_KBD ) ": Keyboard Debug Toggle - Show keypress report\n" + STR(MAGIC_KEY_DEBUG_MOUSE ) ": Debug Mouse Toggle\n" + STR(MAGIC_KEY_VERSION ) ": Version\n" + STR(MAGIC_KEY_STATUS ) ": Status\n" + STR(MAGIC_KEY_CONSOLE ) ": Activate Console Mode\n" + +#if MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM + STR(MAGIC_KEY_LAYER0 ) ": Switch to Layer 0\n" + STR(MAGIC_KEY_LAYER1 ) ": Switch to Layer 1\n" + STR(MAGIC_KEY_LAYER2 ) ": Switch to Layer 2\n" + STR(MAGIC_KEY_LAYER3 ) ": Switch to Layer 3\n" + STR(MAGIC_KEY_LAYER4 ) ": Switch to Layer 4\n" + STR(MAGIC_KEY_LAYER5 ) ": Switch to Layer 5\n" + STR(MAGIC_KEY_LAYER6 ) ": Switch to Layer 6\n" + STR(MAGIC_KEY_LAYER7 ) ": Switch to Layer 7\n" + STR(MAGIC_KEY_LAYER8 ) ": Switch to Layer 8\n" + STR(MAGIC_KEY_LAYER9 ) ": Switch to Layer 9\n" +#endif + +#if MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS + "F1-F10: Switch to Layer 0-9 (F10 = L0)\n" +#endif + +#if MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS + "0-9: Switch to Layer 0-9\n" +#endif + + STR(MAGIC_KEY_LAYER0_ALT1 ) ": Switch to Layer 0 (alternate key 1)\n" + STR(MAGIC_KEY_LAYER0_ALT2 ) ": Switch to Layer 0 (alternate key 2)\n" + STR(MAGIC_KEY_BOOTLOADER ) ": Jump to Bootloader (Reset)\n" #ifdef KEYBOARD_LOCK_ENABLE - "Caps: Lock\n" + STR(MAGIC_KEY_LOCK ) ": Lock\n" #endif #ifdef BOOTMAGIC_ENABLE - "e: eeprom\n" + STR(MAGIC_KEY_EEPROM ) ": Print EEPROM Settings\n" #endif #ifdef NKRO_ENABLE - "n: NKRO\n" + STR(MAGIC_KEY_NKRO ) ": NKRO Toggle\n" #endif #ifdef SLEEP_LED_ENABLE - "z: sleep LED test\n" + STR(MAGIC_KEY_SLEEP_LED ) ": Sleep LED Test\n" #endif ); } +static void print_version(void) +{ + // print version & information + print("\n\t- Version -\n"); + print("DESC: " STR(DESCRIPTION) "\n"); + print("VID: " STR(VENDOR_ID) "(" STR(MANUFACTURER) ") " + "PID: " STR(PRODUCT_ID) "(" STR(PRODUCT) ") " + "VER: " STR(DEVICE_VER) "\n"); + print("BUILD: " STR(VERSION) " (" __TIME__ " " __DATE__ ")\n"); + + /* build options */ + print("OPTIONS:" + +#ifdef PROTOCOL_PJRC + " PJRC" +#endif +#ifdef PROTOCOL_LUFA + " LUFA" +#endif +#ifdef PROTOCOL_VUSB + " VUSB" +#endif +#ifdef BOOTMAGIC_ENABLE + " BOOTMAGIC" +#endif +#ifdef MOUSEKEY_ENABLE + " MOUSEKEY" +#endif +#ifdef EXTRAKEY_ENABLE + " EXTRAKEY" +#endif +#ifdef CONSOLE_ENABLE + " CONSOLE" +#endif +#ifdef COMMAND_ENABLE + " COMMAND" +#endif +#ifdef NKRO_ENABLE + " NKRO" +#endif +#ifdef KEYMAP_SECTION_ENABLE + " KEYMAP_SECTION" +#endif + + " " STR(BOOTLOADER_SIZE) "\n"); + + print("GCC: " STR(__GNUC__) "." STR(__GNUC_MINOR__) "." STR(__GNUC_PATCHLEVEL__) + " AVR-LIBC: " __AVR_LIBC_VERSION_STRING__ + " AVR_ARCH: avr" STR(__AVR_ARCH__) "\n"); + + return; +} + +static void print_status(void) +{ + + print("\n\t- Status -\n"); + + print_val_hex8(host_keyboard_leds()); + print_val_hex8(keyboard_protocol); + print_val_hex8(keyboard_idle); +#ifdef NKRO_ENABLE + print_val_hex8(keyboard_nkro); +#endif + print_val_hex32(timer_count); + +#ifdef PROTOCOL_PJRC + print_val_hex8(UDCON); + print_val_hex8(UDIEN); + print_val_hex8(UDINT); + print_val_hex8(usb_keyboard_leds); + print_val_hex8(usb_keyboard_idle_count); +#endif + +#ifdef PROTOCOL_PJRC +# if USB_COUNT_SOF + print_val_hex8(usbSofCount); +# endif +#endif + return; +} + #ifdef BOOTMAGIC_ENABLE static void print_eeconfig(void) { @@ -178,24 +285,36 @@ static void print_eeconfig(void) static bool command_common(uint8_t code) { + +#ifdef KEYBOARD_LOCK_ENABLE static host_driver_t *host_driver = 0; +#endif + switch (code) { + #ifdef SLEEP_LED_ENABLE - case KC_Z: - // test breathing sleep LED - print("Sleep LED test\n"); + + // test breathing sleep LED + case MAGIC_KC(MAGIC_KEY_SLEEP_LED): + print("Sleep LED Test\n"); sleep_led_toggle(); led_set(host_keyboard_leds()); break; #endif + #ifdef BOOTMAGIC_ENABLE - case KC_E: + + // print stored eeprom config + case MAGIC_KC(MAGIC_KEY_EEPROM): print("eeconfig:\n"); print_eeconfig(); break; #endif + #ifdef KEYBOARD_LOCK_ENABLE - case KC_CAPSLOCK: + + // lock/unlock keyboard + case MAGIC_KC(MAGIC_KEY_LOCK): if (host_get_driver()) { host_driver = host_get_driver(); clear_keyboard(); @@ -207,11 +326,15 @@ static bool command_common(uint8_t code) } break; #endif - case KC_H: - case KC_SLASH: /* ? */ + + // print help + case MAGIC_KC(MAGIC_KEY_HELP1): + case MAGIC_KC(MAGIC_KEY_HELP2): command_common_help(); break; - case KC_C: + + // activate console + case MAGIC_KC(MAGIC_KEY_CONSOLE): debug_matrix = false; debug_keyboard = false; debug_mouse = false; @@ -220,25 +343,33 @@ static bool command_common(uint8_t code) print("C> "); command_state = CONSOLE; break; - case KC_PAUSE: - clear_keyboard(); - print("\n\nbootloader... "); + + // jump to bootloader + case MAGIC_KC(MAGIC_KEY_BOOTLOADER): + clear_keyboard(); // clear to prevent stuck keys + print("\n\nJumping to bootloader... "); _delay_ms(1000); bootloader_jump(); // not return break; - case KC_D: + + // debug toggle + case MAGIC_KC(MAGIC_KEY_DEBUG): + debug_enable = !debug_enable; if (debug_enable) { + print("\ndebug: on\n"); + debug_matrix = true; + debug_keyboard = true; + debug_mouse = true; + } else { print("\ndebug: off\n"); debug_matrix = false; debug_keyboard = false; debug_mouse = false; - debug_enable = false; - } else { - print("\ndebug: on\n"); - debug_enable = true; } break; - case KC_X: // debug matrix toggle + + // debug matrix toggle + case MAGIC_KC(MAGIC_KEY_DEBUG_MATRIX): debug_matrix = !debug_matrix; if (debug_matrix) { print("\nmatrix: on\n"); @@ -247,7 +378,9 @@ static bool command_common(uint8_t code) print("\nmatrix: off\n"); } break; - case KC_K: // debug keyboard toggle + + // debug keyboard toggle + case MAGIC_KC(MAGIC_KEY_DEBUG_KBD): debug_keyboard = !debug_keyboard; if (debug_keyboard) { print("\nkeyboard: on\n"); @@ -256,87 +389,33 @@ static bool command_common(uint8_t code) print("\nkeyboard: off\n"); } break; - case KC_M: // debug mouse toggle + + // debug mouse toggle + case MAGIC_KC(MAGIC_KEY_DEBUG_MOUSE): debug_mouse = !debug_mouse; if (debug_mouse) { print("\nmouse: on\n"); debug_enable = true; } else { - print("\nmouse: off\n"); + print("\nmouse: off\n"); } break; - case KC_V: // print version & information - print("\n\t- Version -\n"); - print("DESC: " STR(DESCRIPTION) "\n"); - print("VID: " STR(VENDOR_ID) "(" STR(MANUFACTURER) ") " - "PID: " STR(PRODUCT_ID) "(" STR(PRODUCT) ") " - "VER: " STR(DEVICE_VER) "\n"); - print("BUILD: " STR(VERSION) " (" __TIME__ " " __DATE__ ")\n"); - /* build options */ - print("OPTIONS:" -#ifdef PROTOCOL_PJRC - " PJRC" -#endif -#ifdef PROTOCOL_LUFA - " LUFA" -#endif -#ifdef PROTOCOL_VUSB - " VUSB" -#endif -#ifdef BOOTMAGIC_ENABLE - " BOOTMAGIC" -#endif -#ifdef MOUSEKEY_ENABLE - " MOUSEKEY" -#endif -#ifdef EXTRAKEY_ENABLE - " EXTRAKEY" -#endif -#ifdef CONSOLE_ENABLE - " CONSOLE" -#endif -#ifdef COMMAND_ENABLE - " COMMAND" -#endif -#ifdef NKRO_ENABLE - " NKRO" -#endif -#ifdef KEYMAP_SECTION_ENABLE - " KEYMAP_SECTION" -#endif - " " STR(BOOTLOADER_SIZE) "\n"); - print("GCC: " STR(__GNUC__) "." STR(__GNUC_MINOR__) "." STR(__GNUC_PATCHLEVEL__) - " AVR-LIBC: " __AVR_LIBC_VERSION_STRING__ - " AVR_ARCH: avr" STR(__AVR_ARCH__) "\n"); + // print version + case MAGIC_KC(MAGIC_KEY_VERSION): + print_version(); + break; + + // print status + case MAGIC_KC(MAGIC_KEY_STATUS): + print_status(); break; - case KC_S: - print("\n\t- Status -\n"); - print_val_hex8(host_keyboard_leds()); - print_val_hex8(keyboard_protocol); - print_val_hex8(keyboard_idle); -#ifdef NKRO_ENABLE - print_val_hex8(keyboard_nkro); -#endif - print_val_hex32(timer_count); -#ifdef PROTOCOL_PJRC - print_val_hex8(UDCON); - print_val_hex8(UDIEN); - print_val_hex8(UDINT); - print_val_hex8(usb_keyboard_leds); - print_val_hex8(usb_keyboard_idle_count); -#endif - -#ifdef PROTOCOL_PJRC -# if USB_COUNT_SOF - print_val_hex8(usbSofCount); -# endif -#endif - break; #ifdef NKRO_ENABLE - case KC_N: - clear_keyboard(); //Prevents stuck keys. + + // NKRO toggle + case MAGIC_KC(MAGIC_KEY_NKRO): + clear_keyboard(); // clear to prevent stuck keys keyboard_nkro = !keyboard_nkro; if (keyboard_nkro) print("NKRO: on\n"); @@ -344,18 +423,78 @@ static bool command_common(uint8_t code) print("NKRO: off\n"); break; #endif - case KC_ESC: - case KC_GRV: - case KC_0: - case KC_F10: + + // switch layers + + case MAGIC_KC(MAGIC_KEY_LAYER0_ALT1): + case MAGIC_KC(MAGIC_KEY_LAYER0_ALT2): switch_default_layer(0); break; - case KC_1 ... KC_9: - switch_default_layer((code - KC_1) + 1); + +#if MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM + + case MAGIC_KC(MAGIC_KEY_LAYER0): + switch_default_layer(0); break; + + case MAGIC_KC(MAGIC_KEY_LAYER1): + switch_default_layer(1); + break; + + case MAGIC_KC(MAGIC_KEY_LAYER2): + switch_default_layer(2); + break; + + case MAGIC_KC(MAGIC_KEY_LAYER3): + switch_default_layer(3); + break; + + case MAGIC_KC(MAGIC_KEY_LAYER4): + switch_default_layer(4); + break; + + case MAGIC_KC(MAGIC_KEY_LAYER5): + switch_default_layer(5); + break; + + case MAGIC_KC(MAGIC_KEY_LAYER6): + switch_default_layer(6); + break; + + case MAGIC_KC(MAGIC_KEY_LAYER7): + switch_default_layer(7); + break; + + case MAGIC_KC(MAGIC_KEY_LAYER8): + switch_default_layer(8); + break; + + case MAGIC_KC(MAGIC_KEY_LAYER9): + switch_default_layer(9); + break; +#endif + + +#if MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS + case KC_F1 ... KC_F9: switch_default_layer((code - KC_F1) + 1); break; + case KC_F10: + switch_default_layer(0); + break; +#endif + +#if MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS + + case KC_1 ... KC_9: + switch_default_layer((code - KC_1) + 1); + break; + case KC_0: + switch_default_layer(0); + break; +#endif + default: print("?"); return false; diff --git a/tmk_core/common/command.h b/tmk_core/common/command.h index b57a6c1ced..92b18849bf 100644 --- a/tmk_core/common/command.h +++ b/tmk_core/common/command.h @@ -32,4 +32,125 @@ bool command_proc(uint8_t code); #define command_proc(code) false #endif + +#ifndef MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS +#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true #endif + +#ifndef MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS +#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true +#endif + +#ifndef MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM +#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false +#endif + +#ifndef MAGIC_KEY_HELP1 +#define MAGIC_KEY_HELP1 H +#endif + +#ifndef MAGIC_KEY_HELP2 +#define MAGIC_KEY_HELP2 SLASH +#endif + +#ifndef MAGIC_KEY_DEBUG +#define MAGIC_KEY_DEBUG D +#endif + +#ifndef MAGIC_KEY_DEBUG_MATRIX +#define MAGIC_KEY_DEBUG_MATRIX X +#endif + +#ifndef MAGIC_KEY_DEBUG_KBD +#define MAGIC_KEY_DEBUG_KBD K +#endif + +#ifndef MAGIC_KEY_DEBUG_MOUSE +#define MAGIC_KEY_DEBUG_MOUSE M +#endif + +#ifndef MAGIC_KEY_VERSION +#define MAGIC_KEY_VERSION V +#endif + +#ifndef MAGIC_KEY_STATUS +#define MAGIC_KEY_STATUS S +#endif + +#ifndef MAGIC_KEY_CONSOLE +#define MAGIC_KEY_CONSOLE C +#endif + +#ifndef MAGIC_KEY_LAYER0_ALT1 +#define MAGIC_KEY_LAYER0_ALT1 ESC +#endif + +#ifndef MAGIC_KEY_LAYER0_ALT2 +#define MAGIC_KEY_LAYER0_ALT2 GRAVE +#endif + +#ifndef MAGIC_KEY_LAYER0 +#define MAGIC_KEY_LAYER0 0 +#endif + +#ifndef MAGIC_KEY_LAYER1 +#define MAGIC_KEY_LAYER1 1 +#endif + +#ifndef MAGIC_KEY_LAYER2 +#define MAGIC_KEY_LAYER2 2 +#endif + +#ifndef MAGIC_KEY_LAYER3 +#define MAGIC_KEY_LAYER3 3 +#endif + +#ifndef MAGIC_KEY_LAYER4 +#define MAGIC_KEY_LAYER4 4 +#endif + +#ifndef MAGIC_KEY_LAYER5 +#define MAGIC_KEY_LAYER5 5 +#endif + +#ifndef MAGIC_KEY_LAYER6 +#define MAGIC_KEY_LAYER6 6 +#endif + +#ifndef MAGIC_KEY_LAYER7 +#define MAGIC_KEY_LAYER7 7 +#endif + +#ifndef MAGIC_KEY_LAYER8 +#define MAGIC_KEY_LAYER8 8 +#endif + +#ifndef MAGIC_KEY_LAYER9 +#define MAGIC_KEY_LAYER9 9 +#endif + +#ifndef MAGIC_KEY_BOOTLOADER +#define MAGIC_KEY_BOOTLOADER PAUSE +#endif + +#ifndef MAGIC_KEY_LOCK +#define MAGIC_KEY_LOCK CAPS +#endif + +#ifndef MAGIC_KEY_EEPROM +#define MAGIC_KEY_EEPROM E +#endif + +#ifndef MAGIC_KEY_NKRO +#define MAGIC_KEY_NKRO N +#endif + +#ifndef MAGIC_KEY_SLEEP_LED +#define MAGIC_KEY_SLEEP_LED Z + +#endif + +#define XMAGIC_KC(key) KC_##key +#define MAGIC_KC(key) XMAGIC_KC(key) + +#endif \ No newline at end of file diff --git a/tmk_core/common/keyboard.c b/tmk_core/common/keyboard.c index eb7b096bed..e668084858 100644 --- a/tmk_core/common/keyboard.c +++ b/tmk_core/common/keyboard.c @@ -70,6 +70,7 @@ void keyboard_setup(void) void keyboard_init(void) { + timer_init(); matrix_init(); #ifdef PS2_MOUSE_ENABLE @@ -90,6 +91,11 @@ void keyboard_init(void) #ifdef BACKLIGHT_ENABLE backlight_init(); #endif + +#ifdef FORCE_NKRO + keyboard_nkro = true; +#endif + } /* From a1ce1332034a3f01049aab10f4a55ee6fd5560d9 Mon Sep 17 00:00:00 2001 From: Matthew Carroll Date: Mon, 28 Mar 2016 06:00:05 -0400 Subject: [PATCH 11/45] Corrected duplicate image issue --- .../ergodox_ez/keymaps/msc/img/code_layer.png | Bin 86217 -> 71266 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/keyboard/ergodox_ez/keymaps/msc/img/code_layer.png b/keyboard/ergodox_ez/keymaps/msc/img/code_layer.png index 1d707c5eaef58f826fff1b58b67339bc3790c272..7b5efaae791d878fa0349e6ea0f9b1b89a6ad9a2 100644 GIT binary patch literal 71266 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 bLoTs>J&tf-{Hi%<;Gc$yHnd8~>iPczKzChU literal 86217 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�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 From ef21a855e6d60b78011ddb8940f58985b1c60acb Mon Sep 17 00:00:00 2001 From: Damien Pollet Date: Sun, 27 Mar 2016 17:58:26 +0200 Subject: [PATCH 12/45] Add per-event user hook function to QMK --- tmk_core/common/action.c | 5 +++++ tmk_core/common/action.h | 3 +++ 2 files changed, 8 insertions(+) diff --git a/tmk_core/common/action.c b/tmk_core/common/action.c index 4197c53ed2..c6595196ff 100644 --- a/tmk_core/common/action.c +++ b/tmk_core/common/action.c @@ -53,6 +53,9 @@ void action_exec(keyevent_t event) #endif } +__attribute__ ((weak)) +void process_action_user(keyrecord_t *record) {} + void process_action(keyrecord_t *record) { keyevent_t event = record->event; @@ -62,6 +65,8 @@ void process_action(keyrecord_t *record) if (IS_NOEVENT(event)) { return; } + process_action_user(record); + action_t action = layer_switch_get_action(event.key); dprint("ACTION: "); debug_action(action); #ifndef NO_ACTION_LAYER diff --git a/tmk_core/common/action.h b/tmk_core/common/action.h index 8a4736d7bc..141dc3fca6 100644 --- a/tmk_core/common/action.h +++ b/tmk_core/common/action.h @@ -58,6 +58,9 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt); /* user defined special function */ void action_function(keyrecord_t *record, uint8_t id, uint8_t opt); +/* user-defined (pre)processing of each key event */ +void process_action_user(keyrecord_t *record); + /* Utilities for actions. */ void process_action(keyrecord_t *record); void register_code(uint8_t code); From acd64aa841f92ee638ca630fc66c3ff91c09ae72 Mon Sep 17 00:00:00 2001 From: Damien Pollet Date: Mon, 28 Mar 2016 16:12:50 +0200 Subject: [PATCH 13/45] Rename function to be keyboard-specific --- tmk_core/common/action.c | 4 ++-- tmk_core/common/action.h | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/tmk_core/common/action.c b/tmk_core/common/action.c index c6595196ff..2ccc0e0b94 100644 --- a/tmk_core/common/action.c +++ b/tmk_core/common/action.c @@ -54,7 +54,7 @@ void action_exec(keyevent_t event) } __attribute__ ((weak)) -void process_action_user(keyrecord_t *record) {} +void process_action_kb(keyrecord_t *record) {} void process_action(keyrecord_t *record) { @@ -65,7 +65,7 @@ void process_action(keyrecord_t *record) if (IS_NOEVENT(event)) { return; } - process_action_user(record); + process_action_kb(record); action_t action = layer_switch_get_action(event.key); dprint("ACTION: "); debug_action(action); diff --git a/tmk_core/common/action.h b/tmk_core/common/action.h index 141dc3fca6..9f528af4b9 100644 --- a/tmk_core/common/action.h +++ b/tmk_core/common/action.h @@ -58,8 +58,8 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt); /* user defined special function */ void action_function(keyrecord_t *record, uint8_t id, uint8_t opt); -/* user-defined (pre)processing of each key event */ -void process_action_user(keyrecord_t *record); +/* keyboard-specific key event (pre)processing */ +void process_action_kb(keyrecord_t *record); /* Utilities for actions. */ void process_action(keyrecord_t *record); From 2181be029e01d9cf46ae3cadcdf25f5bca02c631 Mon Sep 17 00:00:00 2001 From: Damien Pollet Date: Mon, 28 Mar 2016 16:13:37 +0200 Subject: [PATCH 14/45] Add action-preprocessing hook to keyboard template --- quantum/template/template.c | 20 ++++++++++++++++---- quantum/template/template.h | 5 +++-- 2 files changed, 19 insertions(+), 6 deletions(-) diff --git a/quantum/template/template.c b/quantum/template/template.c index 58e73cb09f..cc52e496ff 100644 --- a/quantum/template/template.c +++ b/quantum/template/template.c @@ -10,6 +10,11 @@ void matrix_scan_user(void) { // leave this function blank - it can be defined in a keymap file } +__attribute__ ((weak)) +void process_action_user(keyrecord_t *record) { + // leave this function blank - it can be defined in a keymap file +} + __attribute__ ((weak)) void led_set_user(uint8_t usb_led) { // leave this function blank - it can be defined in a keymap file @@ -18,19 +23,26 @@ void led_set_user(uint8_t usb_led) { void matrix_init_kb(void) { // put your keyboard start-up code here // runs once when the firmware starts up - + matrix_init_user(); } void matrix_scan_kb(void) { - // put your looping keyboard code here - // runs every cycle (a lot) + // put your looping keyboard code here + // runs every cycle (a lot) matrix_scan_user(); } +void process_action_kb(keyrecord_t *record) { + // put your per-action keyboard code here + // runs for every action, just before processing by the firmware + + process_action_user(record); +} + void led_set_kb(uint8_t usb_led) { // put your keyboard LED indicator (ex: Caps Lock LED) toggling code here led_set_user(usb_led); -} \ No newline at end of file +} diff --git a/quantum/template/template.h b/quantum/template/template.h index ba91abac3e..b1c34d3cbe 100644 --- a/quantum/template/template.h +++ b/quantum/template/template.h @@ -17,10 +17,11 @@ { \ { k00, k01, k02 }, \ { k10, KC_NO, k11 }, \ -} +} void matrix_init_user(void); void matrix_scan_user(void); +void process_action_user(keyrecord_t *record); void led_set_user(uint8_t usb_led); -#endif \ No newline at end of file +#endif From bcebb3447c155056819d42668943110ab0868517 Mon Sep 17 00:00:00 2001 From: Damien Pollet Date: Mon, 28 Mar 2016 16:14:54 +0200 Subject: [PATCH 15/45] Add action-preprocessing kb/user hooks in planck --- keyboard/planck/planck.c | 32 +++++++++++++++++--------------- keyboard/planck/planck.h | 1 + 2 files changed, 18 insertions(+), 15 deletions(-) diff --git a/keyboard/planck/planck.c b/keyboard/planck/planck.c index fe8731ec7b..4b39cf1e8b 100644 --- a/keyboard/planck/planck.c +++ b/keyboard/planck/planck.c @@ -1,28 +1,26 @@ #include "planck.h" __attribute__ ((weak)) -void matrix_init_user(void) { - -} +void matrix_init_user(void) {} __attribute__ ((weak)) -void matrix_scan_user(void) { +void matrix_scan_user(void) {} -} +__attribute__ ((weak)) +void process_action_user(keyrecord_t *record) {} void matrix_init_kb(void) { - #ifdef BACKLIGHT_ENABLE - backlight_init_ports(); - #endif +#ifdef BACKLIGHT_ENABLE + backlight_init_ports(); +#endif - #ifdef RGBLIGHT_ENABLE - rgblight_init(); - #endif +#ifdef RGBLIGHT_ENABLE + rgblight_init(); +#endif - - // Turn status LED on - DDRE |= (1<<6); - PORTE |= (1<<6); + // Turn status LED on + DDRE |= (1<<6); + PORTE |= (1<<6); matrix_init_user(); } @@ -30,3 +28,7 @@ void matrix_init_kb(void) { void matrix_scan_kb(void) { matrix_scan_user(); } + +void process_action_kb(keyrecord_t *record) { + process_action_user(record); +} diff --git a/keyboard/planck/planck.h b/keyboard/planck/planck.h index e9566b9228..edcb5fbff6 100644 --- a/keyboard/planck/planck.h +++ b/keyboard/planck/planck.h @@ -42,5 +42,6 @@ void matrix_init_user(void); void matrix_scan_user(void); +void process_action_user(keyrecord_t *record); #endif From 1fd9dbdbe9e7a819a7dae50d9b745640435e0e13 Mon Sep 17 00:00:00 2001 From: Andrew Pritchard Date: Mon, 28 Mar 2016 08:39:39 -0700 Subject: [PATCH 16/45] Add avr-libc to the Debian build dependencies. Without avr-libc the build fails trying to #include_next a header from the standard library, which of course doesn't exist. --- BUILD_GUIDE.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/BUILD_GUIDE.md b/BUILD_GUIDE.md index 81c3ec44f2..e8b242e4e3 100644 --- a/BUILD_GUIDE.md +++ b/BUILD_GUIDE.md @@ -25,12 +25,12 @@ You can also try these instructions: 3. Install [DFU-Programmer][dfu-prog]. ### Linux -Install AVR GCC and dfu-progammer with your favorite package manager. +Install AVR GCC, AVR libc, and dfu-progammer with your favorite package manager. Debian/Ubuntu example: sudo apt-get update - sudo apt-get install gcc-avr dfu-programmer + sudo apt-get install gcc-avr avr-libc dfu-programmer ### Vagrant If you have any problems building the firmware, you can try using a tool called Vagrant. It will set up a virtual computer with a known configuration that's ready-to-go for firmware building. OLKB does NOT host the files for this virtual computer. Details on how to set up Vagrant are in the [VAGRANT_GUIDE file](VAGRANT_GUIDE.md). @@ -52,4 +52,4 @@ If you have any problems building the firmware, you can try using a tool called ## Troubleshooting 1. Try running `make clean` if the make command fails. - WIP \ No newline at end of file + WIP From a70f43967283498dc01cbfc534819ac9da80f10b Mon Sep 17 00:00:00 2001 From: IBNobody Date: Mon, 28 Mar 2016 16:21:09 -0500 Subject: [PATCH 17/45] Added command to turn LED indicators off while sleeping --- tmk_core/common/avr/suspend.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/tmk_core/common/avr/suspend.c b/tmk_core/common/avr/suspend.c index caf0b06254..c07c2801d5 100644 --- a/tmk_core/common/avr/suspend.c +++ b/tmk_core/common/avr/suspend.c @@ -66,9 +66,12 @@ static void power_down(uint8_t wdto) wdt_intr_enable(wdto); #ifdef BACKLIGHT_ENABLE -backlight_set(0); + backlight_set(0); #endif + // Turn off LED indicators + led_set(0); + // TODO: more power saving // See PicoPower application note // - I/O port input with pullup From 32c7832609414d02c19b6ec312daabc8c741b266 Mon Sep 17 00:00:00 2001 From: Manuel Barkhau Date: Mon, 28 Mar 2016 21:32:16 +0000 Subject: [PATCH 18/45] Refactor compiler code --- .../keymaps/german-manuneo/compile_keymap.py | 856 +++--- .../keymaps/german-manuneo/keymap.c | 2373 +++++++++-------- .../keymaps/german-manuneo/keymap.md | 338 +-- 3 files changed, 1903 insertions(+), 1664 deletions(-) diff --git a/keyboard/ergodox_ez/keymaps/german-manuneo/compile_keymap.py b/keyboard/ergodox_ez/keymaps/german-manuneo/compile_keymap.py index 3bbb9340b2..9767b1e074 100644 --- a/keyboard/ergodox_ez/keymaps/german-manuneo/compile_keymap.py +++ b/keyboard/ergodox_ez/keymaps/german-manuneo/compile_keymap.py @@ -1,4 +1,13 @@ -# encoding: utf-8 +#!/usr/bin/env python +# -*- coding: utf-8 -*- +"""Compiler for keymap.c files + +This scrip will generate a keymap.c file from a simple +markdown file with a specific layout. + +Usage: + python compile_keymap.py INPUT_PATH [OUTPUT_PATH] +""" from __future__ import division from __future__ import print_function from __future__ import absolute_import @@ -15,299 +24,423 @@ import collections PY2 = sys.version_info.major == 2 if PY2: - chr = unichr + chr = unichr -ONELINE_COMMENT_RE = re.compile(r"^\s*//.*$", re.MULTILINE) -INLINE_COMMENT_RE = re.compile( - r"([\,\"\[\]\{\}\d])\s+//\s[^\"\]\}\{\[]*$", re.MULTILINE -) -TRAILING_COMMA_RE = re.compile( - r",$\s*([\]\}])", re.MULTILINE -) +BASEPATH = os.path.abspath(os.path.join( + os.path.dirname(__file__), "..", ".." +)) + + +KEYBOARD_LAYOUTS = { + # These map positions in the parsed layout to + # positions in the KEYMAP MATRIX + 'ergodox_ez': [ + [ 0, 1, 2, 3, 4, 5, 6], [38, 39, 40, 41, 42, 43, 44], + [ 7, 8, 9, 10, 11, 12, 13], [45, 46, 47, 48, 49, 50, 51], + [14, 15, 16, 17, 18, 19 ], [ 52, 53, 54, 55, 56, 57], + [20, 21, 22, 23, 24, 25, 26], [58, 59, 60, 61, 62, 63, 64], + [27, 28, 29, 30, 31 ], [ 65, 66, 67, 68, 69], + [ 32, 33], [70, 71 ], + [ 34], [72 ], + [ 35, 36, 37], [73, 74, 75 ], + ] +} + + +BLANK_LAYOUTS = [ +# Compact Layout +""" +.------------------------------------.------------------------------------. +| | | | | | | | | | | | | | | +!-----+----+----+----+----+----------!-----+----+----+----+----+----+-----! +| | | | | | | | | | | | | | | +!-----+----+----+----x----x----! ! !----x----x----+----+----+-----! +| | | | | | |-----!-----! | | | | | | +!-----+----+----+----x----x----! ! !----x----x----+----+----+-----! +| | | | | | | | | | | | | | | +'-----+----+----+----+----+----------'----------+----+----+----+----+-----' + | | | | | | ! | | | | | + '------------------------' '------------------------' + .-----------. .-----------. + | | | ! | | + .-----+-----+-----! !-----+-----+-----. + ! ! | | ! | ! ! + ! ! !-----! !-----! ! ! + | | | | ! | | | + '-----------------' '-----------------' +""", + +# Wide Layout +""" +.--------------------------------------------. .--------------------------------------------. +| | | | | | | | ! | | | | | | | +!------+-----+-----+-----+-----+-------------! !-------+-----+-----+-----+-----+-----+------! +| | | | | | | | ! | | | | | | | +!------+-----+-----+-----x-----x-----! ! ! !-----x-----x-----+-----+-----+------! +| | | | | | |-------! !-------! | | | | | | +!------+-----+-----+-----x-----x-----! ! ! !-----x-----x-----+-----+-----+------! +| | | | | | | | ! | | | | | | | +'------+-----+-----+-----+-----+-------------' '-------------+-----+-----+-----+-----+------' + | | | | | | ! | | | | | + '-----------------------------' '-----------------------------' + .---------------. .---------------. + | | | ! | | + .-------+-------+-------! !-------+-------+-------. + ! ! | | ! | ! ! + ! ! !-------! !-------! ! ! + | | | | ! | | | + '-----------------------' '-----------------------' +""", +] + + +DEFAULT_CONFIG = { + "includes_basedir": "quantum/", + "keymaps_includes": [ + "keymap_common.h", + ], + 'filler': "-+.':x", + 'separator': "|", + 'default_key_prefix': ["KC_"], +} + + +SECTIONS = [ + 'layout_config', + 'layers', +] + + +# Markdown Parsing def loads(raw_data): + ONELINE_COMMENT_RE = re.compile(r""" + ^ # comment must be at the start of the line + \s* # arbitrary whitespace + // # start of the comment + (.*) # the comment + $ # until the end of line + """, re.MULTILINE | re.VERBOSE + ) + + INLINE_COMMENT_RE = re.compile(r""" + (?:[\,\"\[\]\{\}\d]) # anythig that might end a expression + \s+ # comment must be preceded by whitespace + // # start of the comment + \s # and succeded by whitespace + ([^\"\]\}\{\[]*) # the comment (except things which might be json) + $ # until the end of line + """, re.MULTILINE | re.VERBOSE + ) + + TRAILING_COMMA_RE = re.compile(r""" + , # the comma + \s* # arbitrary whitespace (including newlines) + ([\]\}]) # end of an array or object + """, re.MULTILINE | re.VERBOSE + ) + if isinstance(raw_data, bytes): raw_data = raw_data.decode('utf-8') + raw_data = ONELINE_COMMENT_RE.sub(r"", raw_data) raw_data = INLINE_COMMENT_RE.sub(r"\1", raw_data) raw_data = TRAILING_COMMA_RE.sub(r"\1", raw_data) return json.loads(raw_data) -with io.open("keymap.md", encoding="utf-8") as fh: - lines = fh.readlines() -SECTIONS = [ - 'layout_config', - 'layers', -] +def parse_config(path): + def reset_section(): + section.update({ + 'name': section.get('name', ""), + 'sub_name': "", + 'start_line': -1, + 'end_line': -1, + 'code_lines': [], + }) -config = { - "includes_basedir": "quantum/", - "keymaps_includes": [ - "keymap_common.h", - ], - 'filler': "-+.':x", - 'separator': "|", - 'default_key_prefix': ["KC_"], - 'unicode_macros': [], - 'macro_ids': ['UMS'], - 'layers': collections.OrderedDict(), - 'layer_lines': collections.OrderedDict(), -} + def start_section(line_index, line): + end_section() + if line.startswith("# "): + name = line[2:] + elif line.startswith("## "): + name = line[3:] -section_start_index = -1 -current_section = None -current_layer_name = None -current_layer_lines = [] -config_data = [] + name = name.strip().replace(" ", "_").lower() + if name in SECTIONS: + section['name'] = name + else: + section['sub_name'] = name + section['start_line'] = line_index -def end_section(): - global section_start_index - global current_layer_lines - section_start_index = -1 - if current_section == 'layout_config': - config.update(loads("".join( - config_data - ))) - elif current_section == 'layers': - config['layer_lines'][current_layer_name] = current_layer_lines - current_layer_lines = [] + def end_section(): + if section['start_line'] >= 0: + if section['name'] == 'layout_config': + config.update(loads("\n".join( + section['code_lines'] + ))) + elif section['sub_name'].startswith('layer'): + layer_name = section['sub_name'] + config['layer_lines'][layer_name] = section['code_lines'] + + reset_section() + + def amend_section(line_index, line): + section['end_line'] = line_index + section['code_lines'].append(line) + + config = DEFAULT_CONFIG.copy() + config.update({ + 'layer_lines': collections.OrderedDict(), + 'macro_ids': {'UM'}, + 'unicode_macros': {}, + }) + + section = {} + reset_section() + + with io.open(path, encoding="utf-8") as fh: + for i, line in enumerate(fh): + if line.startswith("#"): + start_section(i, line) + elif line.startswith(" "): + amend_section(i, line[4:]) + else: + # TODO: maybe parse description + pass + + end_section() + return config + +# header file parsing + +IF0_RE = re.compile(r""" + ^ + #if 0 + $.*? + #endif + """, re.MULTILINE | re.DOTALL | re.VERBOSE +) -for i, line in enumerate(lines): - if line.startswith("# "): - section = line[2:].strip().replace(" ", "_").lower() - if section in SECTIONS: - current_section = section - elif line.startswith("## "): - sub_section = line[3:] - if current_section == 'layers': - current_layer_name = sub_section.strip() - # TODO: parse descriptio - config['layers'][current_layer_name] = "" - elif line.startswith(" "): - if section_start_index < 0: - section_start_index = i - if current_section == 'layout_config': - config_data.append(line) - elif current_section == 'layers': - if not line.strip(): - continue - current_layer_lines.append(line) - elif section_start_index > 0: - end_section() +COMMENT_RE = re.compile(r""" + /\* + .*? + \*/" + """, re.MULTILINE | re.DOTALL | re.VERBOSE +) -end_section() - -KEYDEF_RE = re.compile(r"#define ((?:{})(?:\w+))".format( - "|".join(config['key_prefixes']) -)) -IF0_RE = re.compile(r"^#if 0$.*?#endif", re.MULTILINE | re.DOTALL) -COMMENT_RE = re.compile(r"/\*.*?\*/", re.MULTILINE | re.DOTALL) -ENUM_RE = re.compile(r"(enum\s\w+\s\{.*?\};)", re.MULTILINE | re.DOTALL) -ENUM_KEY_RE = re.compile(r"({}\w+)".format( - "|".join(config['key_prefixes']) -)) - -def parse_keydefs(path): - with io.open(path, encoding="utf-8") as fh: - data = fh.read() - data, _ = COMMENT_RE.subn("", data) - data, _ = IF0_RE.subn("", data) - - for match in KEYDEF_RE.finditer(data): - yield match.groups()[0] - - for enum_match in ENUM_RE.finditer(data): - enum = enum_match.groups()[0] - for key_match in ENUM_KEY_RE.finditer(enum): - yield key_match.groups()[0] - -valid_keycodes = set() -basepath = os.path.abspath(os.path.join( - os.path.dirname(__file__), "..", "..", "..", ".." -)) - -valid_keycodes.update(parse_keydefs(os.path.join( - basepath, "tmk_core", "common", "keycode.h" -))) - -for include_path in config['keymaps_includes']: - path = os.path.join(basepath, config['includes_dir'], include_path) - path = path.replace("/", os.sep) - if os.path.exists(path): - valid_keycodes.update(parse_keydefs(path)) - -LAYER_CHANGE_RE = re.compile(r"(DF|TG|MO)\(\d+\)") -MACRO_RE = re.compile(r"M\(\w+\)") -UNICODE_RE = re.compile(r"U[0-9A-F]{4}") -NON_CODE = re.compile(r"^[^A-Z0-9_]$") +def read_header_file(path): + with io.open(path, encoding="utf-8") as fh: + data = fh.read() + data, _ = COMMENT_RE.subn("", data) + data, _ = IF0_RE.subn("", data) + return data -def UNICODE_MACRO(config, c): - # TODO: don't use macro for codepoints below 0x2000 - macro_id = "UC_" + ( - unicodedata.name(c) - .replace(" ", "_") - .replace("-", "_") - .replace("SUPERSCRIPT_", "SUP_") - .replace("SUBSCRIPT_", "SUB_") - .replace("GREEK_SMALL_LETTER", "GR_LC") - .replace("GREEK_CAPITAL_LETTER", "GR_UC") - .replace("VULGAR_FRACTION_", "FR_") - ) - if macro_id not in config['macro_ids']: - config['macro_ids'].append(macro_id) - code = "{:04X}".format(ord(c)) - if (macro_id, code) not in config['unicode_macros']: - config['unicode_macros'].append((macro_id, code)) - return "M({})".format(macro_id) +def regex_partial(re_str_fmt, flags=re.MULTILINE | re.DOTALL | re.VERBOSE): + def partial(*args, **kwargs): + re_str = re_str_fmt.format(*args, **kwargs) + return re.compile(re_str, flags) + return partial -def MACRO(config, code): - macro_id = code[2:-1] - if macro_id not in config['macro_ids']: - config['macro_ids'].append(macro_id) - return code - -# TODO: presumably we can have a macro or function which takes -# the hex code and produces much smaller code. - -WIN_UNICODE_MACRO_TEMPLATE = """ -case {0}: - return MACRODOWN( - D(LALT), T(KP_PLUS), {1}, U(LALT), END - ); -""" - -LINUX_UNICODE_MACRO_TEMPLATE = """ -case {0}: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), {1}, T(KP_ENTER), END - ); -""" - -def macro_cases(config, mode): - if mode == 'win': - template = WIN_UNICODE_MACRO_TEMPLATE - elif mode == 'linux': - template = LINUX_UNICODE_MACRO_TEMPLATE - else: - raise ValueError("Invalid mode: ", mode) - template = template.strip() - - for macro_id, unimacro_chars in config['unicode_macros']: - unimacro_keys = ", ".join( - "T({})".format( - "KP_" + char if char.isdigit() else char - ) for char in unimacro_chars - ) - yield template.format(macro_id, unimacro_keys) +KEYDEF_REP = regex_partial(r""" + #define + \s + ( + (?:{}) # the prefixes + (?:\w+) # the key name + ) # capture group end + """ +) -MACROCODE = """ -#define UC_MODE_WIN 0 -#define UC_MODE_LINUX 1 - -static uint16_t unicode_mode = UC_MODE_WIN; - -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 UMS: - unicode_mode = (unicode_mode + 1) % 2; - break; - {macro_cases} - default: - break; - }} - if (unicode_mode == UC_MODE_WIN) {{ - switch(id) {{ - {win_macro_cases} - default: - break; - }} - }} else if (unicode_mode == UC_MODE_LINUX) {{ - switch(id) {{ - {linux_macro_cases} - default: - break; - }} - }} - return MACRO_NONE; -}}; -""" +ENUM_RE = re.compile(r""" + ( + enum + \s\w+\s + \{ + .*? # the enum content + \} + ; + ) # capture group end + """, re.MULTILINE | re.DOTALL | re.VERBOSE +) -def iter_keycodes(layer_lines, config): - filler_re = re.compile("[" + - config['filler'] + " " + - "]") +ENUM_KEY_REP = regex_partial(r""" + ( + {} # the prefixes + \w+ # the key name + ) # capture group end + """ +) - all_codes = [] - for line in layer_lines: - line, _ = filler_re.subn("", line.strip()) - if not line: - continue - codes = line.split(config['separator']) - all_codes.extend(codes[1:-1]) +def parse_keydefs(config, data): + prefix_options = "|".join(config['key_prefixes']) + keydef_re = KEYDEF_REP(prefix_options) + enum_key_re = ENUM_KEY_REP(prefix_options) + for match in keydef_re.finditer(data): + yield match.groups()[0] - key_groups = {} - for group_index, key_indexes in enumerate(config['keymap_indexes']): - for key_index in key_indexes: - key_groups[key_index] = group_index + for enum_match in ENUM_RE.finditer(data): + enum = enum_match.groups()[0] + for key_match in enum_key_re.finditer(enum): + yield key_match.groups()[0] - keymap_indexes = sum(config['keymap_indexes'], []) - assert len(all_codes) == len(keymap_indexes) - code_index_pairs = zip(all_codes, keymap_indexes) - prev_index = None - for i, (code, key_index) in enumerate(code_index_pairs): - code = code.strip() - layer_match = LAYER_CHANGE_RE.match(code) - unicode_match = UNICODE_RE.match(code) - noncode_match = NON_CODE.match(code) - macro_match = MACRO_RE.match(code) - ws = "\n" if key_groups[key_index] != prev_index else "" - prev_index = key_groups[key_index] +def parse_valid_keys(config): + valid_keycodes = set() + paths = [ + os.path.join(BASEPATH, "tmk_core", "common", "keycode.h") + ] + [ + os.path.join( + BASEPATH, config['includes_dir'], include_path + ) for include_path in config['keymaps_includes'] + ] - try: - if not code: - code = 'KC_TRNS' - elif layer_match: - pass - elif macro_match: - code = MACRO(config, code) - elif unicode_match: - hex_code = code[1:] - code = UNICODE_MACRO(config, chr(int(hex_code, 16))) - elif noncode_match: - code = UNICODE_MACRO(config, code) - elif "_" in code: - assert code in valid_keycodes, "unknown code '{}'".format(code) - else: - for prefix in config['key_prefixes']: - if prefix + code in valid_keycodes: - code = prefix + code - break - assert code in valid_keycodes, "unknown code '{}'".format(code) - yield code, key_index, ws - except AssertionError: - print("Error processing code", repr(code).encode("utf-8")) - raise + for path in paths: + path = path.replace("/", os.sep) + # the config always uses forward slashe + if os.path.exists(path): + header_data = read_header_file(path) + valid_keycodes.update( + parse_keydefs(config, header_data) + ) + return valid_keycodes + +# Keymap Parsing + +def iter_raw_codes(layer_lines, filler, separator): + filler_re = re.compile("[" + filler + " ]") + for line in layer_lines: + line, _ = filler_re.subn("", line.strip()) + if not line: + continue + codes = line.split(separator) + for code in codes[1:-1]: + yield code + + +def iter_indexed_codes(raw_codes, key_indexes): + key_rows = {} + key_indexes_flat = [] + for row_index, key_indexes in enumerate(key_indexes): + for key_index in key_indexes: + key_rows[key_index] = row_index + key_indexes_flat.extend(key_indexes) + assert len(raw_codes) == len(key_indexes_flat) + for raw_code, key_index in zip(raw_codes, key_indexes_flat): + # we keep track of the row mostly for layout purposes + yield raw_code, key_index, key_rows[key_index] + + +LAYER_CHANGE_RE = re.compile(r""" + (DF|TG|MO)\(\d+\) +""", re.VERBOSE) + + +MACRO_RE = re.compile(r""" + M\(\w+\) +""", re.VERBOSE) + + +UNICODE_RE = re.compile(r""" + U[0-9A-F]{4} +""", re.VERBOSE) + + +NON_CODE = re.compile(r""" + ^[^A-Z0-9_]$ +""", re.VERBOSE) + + +def parse_uni_code(raw_code): + macro_id = "UC_" + ( + unicodedata.name(raw_code) + .replace(" ", "_") + .replace("-", "_") + ) + code = "M({})".format(macro_id) + uc_hex = "{:04X}".format(ord(raw_code)) + return code, macro_id, uc_hex + + +def parse_key_code(raw_code, key_prefixes, valid_keycodes): + if raw_code in valid_keycodes: + return raw_code + + for prefix in key_prefixes: + code = prefix + raw_code + if code in valid_keycodes: + return code + + +def parse_code(raw_code, key_prefixes, valid_keycodes): + if not raw_code: + return 'KC_TRNS', None, None + + if LAYER_CHANGE_RE.match(raw_code): + return raw_code, None, None + + if MACRO_RE.match(raw_code): + code = macro_id = raw_code[2:-1] + return code, macro_id, None + + if UNICODE_RE.match(raw_code): + hex_code = raw_code[1:] + return parse_uni_code(chr(int(hex_code, 16))) + + if NON_CODE.match(raw_code): + return parse_uni_code(raw_code) + + code = parse_key_code(raw_code, key_prefixes, valid_keycodes) + return code, None, None + + +def parse_keymap(config, key_indexes, layer_lines, valid_keycodes): + keymap = {} + raw_codes = list(iter_raw_codes( + layer_lines, config['filler'], config['separator'] + )) + indexed_codes = iter_indexed_codes(raw_codes, key_indexes) + for raw_code, key_index, row_index in indexed_codes: + code, macro_id, uc_hex = parse_code( + raw_code, config['key_prefixes'], valid_keycodes + ) + if macro_id: + config['macro_ids'].add(macro_id) + if uc_hex: + config['unicode_macros'][macro_id] = uc_hex + keymap[key_index] = (code, row_index) + return keymap + + +def parse_keymaps(config, valid_keycodes): + keymaps = collections.OrderedDict() + key_indexes = config.get( + 'key_indexes', KEYBOARD_LAYOUTS[config['layout']] + ) + # TODO: maybe validate key_indexes + + for layer_name, layer_lines, in config['layer_lines'].items(): + keymaps[layer_name] = parse_keymap( + config, key_indexes, layer_lines, valid_keycodes + ) + return keymaps + +# keymap.c output USERCODE = """ // Runs just one time when the keyboard initializes. -void * matrix_init_user(void) { +void matrix_init_user(void) { }; // Runs constantly in the background, in a loop. -void * matrix_scan_user(void) { +void matrix_scan_user(void) { uint8_t layer = biton32(layer_state); ergodox_board_led_off(); @@ -348,71 +481,158 @@ void * matrix_scan_user(void) { }; """ -def parse_keymaps(config): - keymaps = {} - layer_line_items = config['layer_lines'].items() - for i, (layer_name, layer_lines) in enumerate(layer_line_items): - print("parseing layer", layer_name) - keymap = {} - for code, key_index, ws in iter_keycodes(layer_lines, config): - keymap[key_index] = (code, ws) - keymaps[layer_name] = [v for k, v in sorted(keymap.items())] - return keymaps +MACROCODE = """ +#define UC_MODE_WIN 0 +#define UC_MODE_LINUX 1 + +static uint16_t unicode_mode = UC_MODE_WIN; + +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; + {macro_cases} + default: + break; + }} + if (unicode_mode == UC_MODE_WIN) {{ + switch(id) {{ + {win_macro_cases} + default: + break; + }} + }} else if (unicode_mode == UC_MODE_LINUX) {{ + switch(id) {{ + {linux_macro_cases} + default: + break; + }} + }} + return MACRO_NONE; +}}; +""" + +WIN_UNICODE_MACRO_TEMPLATE = """ +case {0}: + return MACRODOWN( + D(LALT), T(KP_PLUS), {1}, U(LALT), END + ); +""" + +LINUX_UNICODE_MACRO_TEMPLATE = """ +case {0}: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), {1}, T(KP_ENTER), END + ); +""" + +def macro_cases(config, mode): + if mode == 'win': + template = WIN_UNICODE_MACRO_TEMPLATE + elif mode == 'linux': + template = LINUX_UNICODE_MACRO_TEMPLATE + else: + raise ValueError("Invalid mode: ", mode) + template = template.strip() + + for macro_id, uc_hex in config['unicode_macros'].items(): + unimacro_keys = ", ".join( + "T({})".format( + "KP_" + digit if digit.isdigit() else digit + ) for digit in uc_hex + ) + yield template.format(macro_id, unimacro_keys) -def iter_keymap_lines(config, keymaps): - for include_path in config['keymaps_includes']: - yield '#include "{}"\n'.format(include_path) - - yield "\n" - - layer_items = config['layers'].items() - for i, (layer_name, description) in enumerate(layer_items): - yield '#define L{0:<3} {0:<5} // {1}\n'.format(i, layer_name) - - for i, macro_id in enumerate(config['macro_ids']): - yield "#define {} {}\n".format(macro_id, i) - - yield "\n" - - yield "const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {\n" - - layer_line_items = config['layer_lines'].items() - last_index = config['keymap_indexes'][-1] - for i, (layer_name, layer_lines) in enumerate(layer_line_items): - keymap = keymaps[layer_name] - yield "/*\n" - for line in layer_lines: - yield " *{}".format(line) - yield "*/\n" - - yield "[L{0}] = KEYMAP(\n".format(i) - - for key_index, (code, ws) in enumerate(keymap): - yield "\t{}".format(code) - if key_index < len(keymap) - 1: - yield "," - yield ws - yield "),\n" - - yield "};\n\n" - - yield "const uint16_t PROGMEM fn_actions[] = {\n" - yield "};\n" - - yield MACROCODE.format( - macro_cases="", - win_macro_cases="\n".join(macro_cases(config, mode='win')), - linux_macro_cases="\n".join(macro_cases(config, mode='linux')), - ) - - yield USERCODE +def iter_keymap_lines(keymap): + prev_row_index = None + for key_index in sorted(keymap): + code, row_index = keymap[key_index] + if row_index != prev_row_index: + yield "\n" + yield " {}".format(code) + if key_index < len(keymap) - 1: + yield "," + prev_row_index = row_index -with io.open("keymap.c", mode="w", encoding="utf-8") as fh: - for data in iter_keymap_lines(config, parse_keymaps(config)): - fh.write(data) +def iter_keymap_parts(config, keymaps): + # includes + for include_path in config['keymaps_includes']: + yield '#include "{}"\n'.format(include_path) + + yield "\n" + + # definitions + for i, macro_id in enumerate(sorted(config['macro_ids'])): + yield "#define {} {}\n".format(macro_id, i) + + yield "\n" + + for i, layer_name in enumerate(config['layer_lines']): + yield '#define L{0:<3} {0:<5} // {1}\n'.format(i, layer_name) + + yield "\n" + + # keymaps + yield "const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {\n" + + for i, layer_name in enumerate(config['layer_lines']): + # comment + layer_lines = config['layer_lines'][layer_name] + prefixed_lines = " * " + " * ".join(layer_lines) + yield "/*\n{}*/\n".format(prefixed_lines) + + # keymap codes + keymap = keymaps[layer_name] + keymap_lines = "".join(iter_keymap_lines(keymap)) + yield "[L{0}] = KEYMAP({1}\n),\n".format(i, keymap_lines) + + yield "};\n\n" + + # no idea what this is for + yield "const uint16_t PROGMEM fn_actions[] = {};\n" + + # macros + yield MACROCODE.format( + macro_cases="", + win_macro_cases="\n".join(macro_cases(config, mode='win')), + linux_macro_cases="\n".join(macro_cases(config, mode='linux')), + ) + + # TODO: dynamically create blinking lights + yield USERCODE -# print("\n".join(sorted(valid_keycodes))) -# print(json.dumps(config, indent=4)) +def main(argv=sys.argv[1:]): + if not argv or '-h' in argv or '--help' in argv: + print(__doc__) + return 0 + + in_path = os.path.abspath(argv[0]) + if not os.path.exists(in_path): + print("No such file '{}'".format(in_path)) + return 1 + + if len(argv) > 1: + out_path = os.path.abspath(argv[1]) + else: + dirname = os.path.dirname(in_path) + out_path = os.path.join(dirname, "keymap.c") + + config = parse_config(in_path) + valid_keys = parse_valid_keys(config) + keymaps = parse_keymaps(config, valid_keys) + + with io.open(out_path, mode="w", encoding="utf-8") as fh: + for part in iter_keymap_parts(config, keymaps): + fh.write(part) + + +if __name__ == '__main__': + sys.exit(main()) diff --git a/keyboard/ergodox_ez/keymaps/german-manuneo/keymap.c b/keyboard/ergodox_ez/keymaps/german-manuneo/keymap.c index 400ad6fcf8..23611ddd89 100644 --- a/keyboard/ergodox_ez/keymaps/german-manuneo/keymap.c +++ b/keyboard/ergodox_ez/keymaps/german-manuneo/keymap.c @@ -3,449 +3,458 @@ #include "keymap_common.h" #include "keymap_extras/keymap_german.h" -#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 -#define L7 7 // Layer 7 -#define L8 8 // Layer 8 -#define UMS 0 -#define UC_UPWARDS_ARROW 1 -#define UC_LEFTWARDS_ARROW 2 -#define UC_DOWNWARDS_ARROW 3 -#define UC_RIGHTWARDS_ARROW 4 -#define UC_SUP_ONE 5 -#define UC_SUP_TWO 6 -#define UC_SUP_THREE 7 -#define UC_SUP_FOUR 8 -#define UC_SUP_FIVE 9 -#define UC_FOR_ALL 10 -#define UC_SUP_SIX 11 -#define UC_SUP_SEVEN 12 -#define UC_SUP_EIGHT 13 -#define UC_SUP_NINE 14 -#define UC_SUP_ZERO 15 -#define UC_MULTIPLICATION_SIGN 16 -#define UC_FR_ONE_HALF 17 -#define UC_DIVISION_SIGN 18 -#define UC_FR_ONE_QUARTER 19 -#define UC_FR_ONE_FIFTH 20 -#define UC_FR_ONE_SIXTH 21 -#define UC_FR_ONE_EIGHTH 22 -#define UC_PLUS_MINUS_SIGN 23 -#define UC_EMPTY_SET 24 -#define UC_INFINITY 25 -#define UC_SUP_LATIN_SMALL_LETTER_N 26 -#define UC_THERE_EXISTS 27 -#define UC_ELEMENT_OF 28 -#define UC_FR_ONE_THIRD 29 -#define UC_NOT_EQUAL_TO 30 -#define UC_FR_TWO_THIRDS 31 -#define UC_FR_THREE_QUARTERS 32 -#define UC_ASYMPTOTICALLY_EQUAL_TO 33 -#define UC_THERE_DOES_NOT_EXIST 34 -#define UC_NOT_AN_ELEMENT_OF 35 -#define UC_SUB_ONE 36 -#define UC_SUB_TWO 37 -#define UC_SUB_THREE 38 -#define UC_SUB_FOUR 39 -#define UC_SUB_FIVE 40 -#define UC_SUB_SIX 41 -#define UC_SUB_SEVEN 42 -#define UC_SUB_EIGHT 43 -#define UC_SUB_NINE 44 -#define UC_SUB_ZERO 45 -#define UC_GR_LC_CHI 46 -#define UC_GR_LC_PI 47 -#define UC_GR_LC_PHI 48 -#define UC_GR_LC_OMEGA 49 -#define UC_GR_LC_GAMMA 50 -#define UC_GR_LC_ETA 51 -#define UC_GR_LC_XI 52 -#define UC_GR_LC_KAPPA 53 -#define UC_GR_LC_LAMDA 54 -#define UC_GR_LC_ZETA 55 -#define UC_GR_LC_UPSILON 56 -#define UC_GR_LC_IOTA 57 -#define UC_GR_LC_ALPHA 58 -#define UC_GR_LC_EPSILON 59 -#define UC_GR_LC_OMICRON 60 -#define UC_GR_LC_SIGMA 61 -#define UC_GR_LC_NU 62 -#define UC_GR_LC_RHO 63 -#define UC_GR_LC_TAU 64 -#define UC_GR_LC_DELTA 65 -#define UC_GR_LC_FINAL_SIGMA 66 -#define UC_GR_LC_THETA 67 -#define UC_GR_LC_BETA 68 -#define UC_GR_LC_MU 69 -#define UC_GR_LC_PSI 70 -#define UC_GR_UC_CHI 71 -#define UC_GR_UC_PI 72 -#define UC_GR_UC_PHI 73 -#define UC_GR_UC_OMEGA 74 -#define UC_GR_UC_GAMMA 75 -#define UC_GR_UC_ETA 76 -#define UC_GR_UC_XI 77 -#define UC_GR_UC_KAPPA 78 -#define UC_GR_UC_LAMDA 79 -#define UC_GR_UC_ZETA 80 -#define UC_GR_UC_UPSILON 81 -#define UC_GR_UC_IOTA 82 -#define UC_GR_UC_ALPHA 83 -#define UC_GR_UC_EPSILON 84 -#define UC_GR_UC_OMICRON 85 -#define UC_GR_UC_SIGMA 86 -#define UC_GR_UC_NU 87 -#define UC_GR_UC_RHO 88 -#define UC_GR_UC_TAU 89 -#define UC_GR_UC_DELTA 90 -#define UC_GR_UC_THETA 91 -#define UC_GR_UC_BETA 92 -#define UC_GR_UC_MU 93 -#define UC_GR_UC_PSI 94 +#define UC_ASYMPTOTICALLY_EQUAL_TO 0 +#define UC_DIVISION_SIGN 1 +#define UC_DOWNWARDS_ARROW 2 +#define UC_ELEMENT_OF 3 +#define UC_EMPTY_SET 4 +#define UC_FOR_ALL 5 +#define UC_GREEK_CAPITAL_LETTER_ALPHA 6 +#define UC_GREEK_CAPITAL_LETTER_BETA 7 +#define UC_GREEK_CAPITAL_LETTER_CHI 8 +#define UC_GREEK_CAPITAL_LETTER_DELTA 9 +#define UC_GREEK_CAPITAL_LETTER_EPSILON 10 +#define UC_GREEK_CAPITAL_LETTER_ETA 11 +#define UC_GREEK_CAPITAL_LETTER_GAMMA 12 +#define UC_GREEK_CAPITAL_LETTER_IOTA 13 +#define UC_GREEK_CAPITAL_LETTER_KAPPA 14 +#define UC_GREEK_CAPITAL_LETTER_LAMDA 15 +#define UC_GREEK_CAPITAL_LETTER_MU 16 +#define UC_GREEK_CAPITAL_LETTER_NU 17 +#define UC_GREEK_CAPITAL_LETTER_OMEGA 18 +#define UC_GREEK_CAPITAL_LETTER_OMICRON 19 +#define UC_GREEK_CAPITAL_LETTER_PHI 20 +#define UC_GREEK_CAPITAL_LETTER_PI 21 +#define UC_GREEK_CAPITAL_LETTER_PSI 22 +#define UC_GREEK_CAPITAL_LETTER_RHO 23 +#define UC_GREEK_CAPITAL_LETTER_SIGMA 24 +#define UC_GREEK_CAPITAL_LETTER_TAU 25 +#define UC_GREEK_CAPITAL_LETTER_THETA 26 +#define UC_GREEK_CAPITAL_LETTER_UPSILON 27 +#define UC_GREEK_CAPITAL_LETTER_XI 28 +#define UC_GREEK_CAPITAL_LETTER_ZETA 29 +#define UC_GREEK_SMALL_LETTER_ALPHA 30 +#define UC_GREEK_SMALL_LETTER_BETA 31 +#define UC_GREEK_SMALL_LETTER_CHI 32 +#define UC_GREEK_SMALL_LETTER_DELTA 33 +#define UC_GREEK_SMALL_LETTER_EPSILON 34 +#define UC_GREEK_SMALL_LETTER_ETA 35 +#define UC_GREEK_SMALL_LETTER_FINAL_SIGMA 36 +#define UC_GREEK_SMALL_LETTER_GAMMA 37 +#define UC_GREEK_SMALL_LETTER_IOTA 38 +#define UC_GREEK_SMALL_LETTER_KAPPA 39 +#define UC_GREEK_SMALL_LETTER_LAMDA 40 +#define UC_GREEK_SMALL_LETTER_MU 41 +#define UC_GREEK_SMALL_LETTER_NU 42 +#define UC_GREEK_SMALL_LETTER_OMEGA 43 +#define UC_GREEK_SMALL_LETTER_OMICRON 44 +#define UC_GREEK_SMALL_LETTER_PHI 45 +#define UC_GREEK_SMALL_LETTER_PI 46 +#define UC_GREEK_SMALL_LETTER_PSI 47 +#define UC_GREEK_SMALL_LETTER_RHO 48 +#define UC_GREEK_SMALL_LETTER_SIGMA 49 +#define UC_GREEK_SMALL_LETTER_TAU 50 +#define UC_GREEK_SMALL_LETTER_THETA 51 +#define UC_GREEK_SMALL_LETTER_UPSILON 52 +#define UC_GREEK_SMALL_LETTER_XI 53 +#define UC_GREEK_SMALL_LETTER_ZETA 54 +#define UC_INFINITY 55 +#define UC_LEFTWARDS_ARROW 56 +#define UC_MULTIPLICATION_SIGN 57 +#define UC_NOT_AN_ELEMENT_OF 58 +#define UC_NOT_EQUAL_TO 59 +#define UC_PLUS_MINUS_SIGN 60 +#define UC_RIGHTWARDS_ARROW 61 +#define UC_SUBSCRIPT_EIGHT 62 +#define UC_SUBSCRIPT_FIVE 63 +#define UC_SUBSCRIPT_FOUR 64 +#define UC_SUBSCRIPT_NINE 65 +#define UC_SUBSCRIPT_ONE 66 +#define UC_SUBSCRIPT_SEVEN 67 +#define UC_SUBSCRIPT_SIX 68 +#define UC_SUBSCRIPT_THREE 69 +#define UC_SUBSCRIPT_TWO 70 +#define UC_SUBSCRIPT_ZERO 71 +#define UC_SUPERSCRIPT_EIGHT 72 +#define UC_SUPERSCRIPT_FIVE 73 +#define UC_SUPERSCRIPT_FOUR 74 +#define UC_SUPERSCRIPT_LATIN_SMALL_LETTER_N 75 +#define UC_SUPERSCRIPT_NINE 76 +#define UC_SUPERSCRIPT_ONE 77 +#define UC_SUPERSCRIPT_SEVEN 78 +#define UC_SUPERSCRIPT_SIX 79 +#define UC_SUPERSCRIPT_THREE 80 +#define UC_SUPERSCRIPT_TWO 81 +#define UC_SUPERSCRIPT_ZERO 82 +#define UC_THERE_DOES_NOT_EXIST 83 +#define UC_THERE_EXISTS 84 +#define UC_UPWARDS_ARROW 85 +#define UC_VULGAR_FRACTION_ONE_EIGHTH 86 +#define UC_VULGAR_FRACTION_ONE_FIFTH 87 +#define UC_VULGAR_FRACTION_ONE_HALF 88 +#define UC_VULGAR_FRACTION_ONE_QUARTER 89 +#define UC_VULGAR_FRACTION_ONE_SIXTH 90 +#define UC_VULGAR_FRACTION_ONE_THIRD 91 +#define UC_VULGAR_FRACTION_THREE_QUARTERS 92 +#define UC_VULGAR_FRACTION_TWO_THIRDS 93 +#define UM 94 + +#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 +#define L7 7 // layer_7 +#define L8 8 // layer_8 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* - * .-------------------------------------. .-------------------------------------. - * |MO(5)| 1 | 2 | 3 | 4 | 5 | ACUT | ! GRV | 6 | 7 | 8 | 9 | 0 |CIRC | - * !-----+----+----+----+----+-----------! !------+----+----+----+----+----+-----! - * |MO(4)| X | P | F | W | G | HOME | !TG(2) | H | J | K | L | Q | Z | - * !-----+----+----+----x----x----! ! ! !----x----x----+----+----+-----! - * |MO(1)| U | I | A | E | O |------! !------! S | N | R | T | D | SS | - * !-----+----+----+----x----x----! ! ! !----x----x----+----+----+-----! - * |MO(3)| UE | OE | AE | C | V | END | ! TAB | B | M |COMM| DOT| UP | Y | - * '-----+----+----+----+----+-----------' '-----------+----+----+----+----+-----' - * | | |LGUI|LALT|LCTL| !LALT| |LEFT|DOWN|RGHT| - * '------------------------'.-------------. .-------------.'------------------------' - * | INS |TG(2) | !M(UMS)| DELT | - * .------+------+------! !------+------+------. - * ! ! | APP | ! PGUP | ! ! - * ! ! !------! !------! ! ! - * | BSPC | LSFT | ESC | ! PGDN |ENTER |SPACE | - * '--------------------' '--------------------' + * .------------------------------------.------------------------------------. + * |MO(5)| 1 | 2 | 3 | 4 | 5 |ACUT | GRV | 6 | 7 | 8 | 9 | 0 |CIRC | + * !-----+----+----+----+----+----------!-----+----+----+----+----+----+-----! + * |MO(4)| X | P | F | W | G |HOME |TG(2)| H | J | K | L | Q | Z | + * !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + * |MO(1)| U | I | A | E | O |-----!-----! S | N | R | T | D | SS | + * !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + * |MO(3)| UE | OE | AE | C | V |END | TAB | B | M |COMM| DOT| UP | Y | + * '-----+----+----+----+----+----------'----------+----+----+----+----+-----' + * | | |LGUI|LALT|LCTL| !LALT| |LEFT|DOWN|RGHT| + * '------------------------' '------------------------' + * .-----------. .-----------. + * |INS |TG(2)| !M(UM)|DELT | + * .-----+-----+-----! !-----+-----+-----. + * ! ! | APP | ! PGUP| ! ! + * ! ! !-----! !-----! ! ! + * |BSPC |LSFT | ESC | ! PGDN|ENTER|SPACE| + * '-----------------' '-----------------' */ [L0] = KEYMAP( - MO(5), - DE_1, DE_2, DE_3, DE_4, DE_5, DE_ACUT, MO(4), - DE_X, DE_P, DE_F, DE_W, DE_G, KC_HOME, MO(1), - DE_U, DE_I, DE_A, DE_E, DE_O, MO(3), - DE_UE, DE_OE, DE_AE, DE_C, DE_V, KC_END, KC_TRNS, - KC_TRNS, KC_LGUI, KC_LALT, KC_LCTL, KC_INS, - TG(2), KC_APP, - KC_BSPC, - KC_LSFT, KC_ESC, DE_GRV, - DE_6, DE_7, DE_8, DE_9, DE_0, DE_CIRC, TG(2), - DE_H, DE_J, DE_K, DE_L, DE_Q, DE_Z, DE_S, - DE_N, DE_R, DE_T, DE_D, DE_SS, KC_TAB, - DE_B, DE_M, DE_COMM, DE_DOT, KC_UP, DE_Y, KC_LALT, - KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, M(UMS), - KC_DELT, KC_PGUP, - KC_PGDN, - KC_ENTER, KC_SPACE), + MO(5), DE_1, DE_2, DE_3, DE_4, DE_5, DE_ACUT, + MO(4), DE_X, DE_P, DE_F, DE_W, DE_G, KC_HOME, + MO(1), DE_U, DE_I, DE_A, DE_E, DE_O, + MO(3), DE_UE, DE_OE, DE_AE, DE_C, DE_V, KC_END, + KC_TRNS, KC_TRNS, KC_LGUI, KC_LALT, KC_LCTL, + KC_INS, TG(2), + KC_APP, + KC_BSPC, KC_LSFT, KC_ESC, + DE_GRV, DE_6, DE_7, DE_8, DE_9, DE_0, DE_CIRC, + TG(2), DE_H, DE_J, DE_K, DE_L, DE_Q, DE_Z, + DE_S, DE_N, DE_R, DE_T, DE_D, DE_SS, + KC_TAB, DE_B, DE_M, DE_COMM, DE_DOT, KC_UP, DE_Y, + KC_LALT, KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, + UM, KC_DELT, + KC_PGUP, + KC_PGDN, KC_ENTER, KC_SPACE +), /* - * .-------------------------------------. .-------------------------------------. - * | |EXLM|DQOT|PARA| | | | ! | | | | |RING| | - * !-----+----+----+----+----+-----------! !------+----+----+----+----+----+-----! - * | |ASTR|PIPE|SLSH|LCBR|RCBR| | ! |HASH|LESS|MORE| |DQOT| | - * !-----+----+----+----x----x----! ! ! !----x----x----+----+----+-----! - * | |UNDS|MINS|AMPR|LBRC|RBRC|------! !------!DLR |LPRN|RPRN|TILD|QUOT|QST | - * !-----+----+----+----x----x----! ! ! !----x----x----+----+----+-----! - * | | |PLUS| EQL| | | | ! |BSLS|PERC|SCLN|COLN| ↑ | | - * '-----+----+----+----+----+-----------' '-----------+----+----+----+----+-----' - * | | | | | | ! | | ← | ↓ | → | - * '------------------------'.-------------. .-------------.'------------------------' - * | | | ! | | - * .------+------+------! !------+------+------. - * ! ! | | ! | ! ! - * ! ! !------! !------! ! ! - * | | | | ! | | | - * '--------------------' '--------------------' + * .------------------------------------.------------------------------------. + * | |EXLM|DQOT|PARA| | | | | | | | |RING| | + * !-----+----+----+----+----+----------!-----+----+----+----+----+----+-----! + * | |ASTR|PIPE|SLSH|LCBR|RCBR| | |HASH|LESS|MORE| |DQOT| | + * !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + * | |UNDS|MINS|AMPR|LBRC|RBRC|-----!-----!DLR |LPRN|RPRN|TILD|QUOT| QST | + * !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + * | | |PLUS|EQL | | | | |BSLS|PERC|SCLN|COLN| ↑ | | + * '-----+----+----+----+----+----------'----------+----+----+----+----+-----' + * | | | | | | ! | | ← | ↓ | → | + * '------------------------' '------------------------' + * .-----------. .-----------. + * | | | ! | | + * .-----+-----+-----! !-----+-----+-----. + * ! ! | | ! | ! ! + * ! ! !-----! !-----! ! ! + * | | | | ! | | | + * '-----------------' '-----------------' */ [L1] = KEYMAP( - KC_TRNS, - DE_EXLM, DE_DQOT, DE_PARA, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - DE_ASTR, DE_PIPE, DE_SLSH, DE_LCBR, DE_RCBR, KC_TRNS, KC_TRNS, - DE_UNDS, DE_MINS, DE_AMPR, DE_LBRC, DE_RBRC, KC_TRNS, - KC_TRNS, DE_PLUS, DE_EQL, 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_RING, KC_TRNS, KC_TRNS, - DE_HASH, DE_LESS, DE_MORE, KC_TRNS, DE_DQOT, KC_TRNS, DE_DLR, - DE_LPRN, DE_RPRN, DE_TILD, DE_QUOT, DE_QST, KC_TRNS, - DE_BSLS, DE_PERC, DE_SCLN, DE_COLN, M(UC_UPWARDS_ARROW), KC_TRNS, KC_TRNS, - KC_TRNS, M(UC_LEFTWARDS_ARROW), M(UC_DOWNWARDS_ARROW), M(UC_RIGHTWARDS_ARROW), KC_TRNS, - KC_TRNS, KC_TRNS, - KC_TRNS, - KC_TRNS, KC_TRNS), + KC_TRNS, DE_EXLM, DE_DQOT, DE_PARA, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, DE_ASTR, DE_PIPE, DE_SLSH, DE_LCBR, DE_RCBR, KC_TRNS, + KC_TRNS, DE_UNDS, DE_MINS, DE_AMPR, DE_LBRC, DE_RBRC, + KC_TRNS, KC_TRNS, DE_PLUS, DE_EQL, 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_RING, KC_TRNS, + KC_TRNS, DE_HASH, DE_LESS, DE_MORE, KC_TRNS, DE_DQOT, KC_TRNS, + DE_DLR, DE_LPRN, DE_RPRN, DE_TILD, DE_QUOT, DE_QST, + KC_TRNS, DE_BSLS, DE_PERC, DE_SCLN, DE_COLN, M(UC_UPWARDS_ARROW), KC_TRNS, + KC_TRNS, KC_TRNS, M(UC_LEFTWARDS_ARROW), M(UC_DOWNWARDS_ARROW), M(UC_RIGHTWARDS_ARROW), + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS +), /* - * .-------------------------------------. .-------------------------------------. - * | | F1 | F2 | F3 | F4 | F5 | F11 | ! F12 | F6 | F7 | F8 | F9 |F10 |PEQL | - * !-----+----+----+----+----+-----------! !------+----+----+----+----+----+-----! - * | | | | | | | | ! | | P7 | P8 | P9 |PAST|PSLS | - * !-----+----+----+----x----x----! ! ! !----x----x----+----+----+-----! - * | | | | | | |------! !------! | P4 | P5 | P6 |PMNS|PMNS | - * !-----+----+----+----x----x----! ! ! !----x----x----+----+----+-----! - * | | | | | | | | ! NLCK | | P1 | P2 | P3 |PPLS|PPLS | - * '-----+----+----+----+----+-----------' '-----------+----+----+----+----+-----' - * | | | | | | ! P0 |PCMM|PDOT|PENT|PENT| - * '------------------------'.-------------. .-------------.'------------------------' - * | | | ! | | - * .------+------+------! !------+------+------. - * ! ! | | ! | ! ! - * ! ! !------! !------! ! ! - * | | | | ! | | | - * '--------------------' '--------------------' + * .------------------------------------.------------------------------------. + * | | F1 | F2 | F3 | F4 | F5 | F11 | F12 | F6 | F7 | F8 | F9 |F10 |PEQL | + * !-----+----+----+----+----+----------!-----+----+----+----+----+----+-----! + * | | | | | | | | | | P7 | P8 | P9 |PAST|PSLS | + * !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + * | | | | | | |-----!-----! | P4 | P5 | P6 |PMNS|PMNS | + * !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + * | | | | | | | | NLCK| | P1 | P2 | P3 |PPLS|PPLS | + * '-----+----+----+----+----+----------'----------+----+----+----+----+-----' + * | | | | | | ! P0 |PCMM|PDOT|PENT|PENT| + * '------------------------' '------------------------' + * .-----------. .-----------. + * | | | ! | | + * .-----+-----+-----! !-----+-----+-----. + * ! ! | | ! | ! ! + * ! ! !-----! !-----! ! ! + * | | | | ! | | | + * '-----------------' '-----------------' */ [L2] = KEYMAP( - KC_TRNS, - KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F11, 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_F12, - KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_PEQL, KC_TRNS, - KC_TRNS, KC_P7, KC_P8, KC_P9, KC_PAST, KC_PSLS, KC_TRNS, - KC_P4, KC_P5, KC_P6, KC_PMNS, KC_PMNS, KC_NLCK, - KC_TRNS, KC_P1, KC_P2, KC_P3, KC_PPLS, KC_PPLS, KC_P0, - KC_PCMM, KC_PDOT, KC_PENT, KC_PENT, KC_TRNS, - KC_TRNS, KC_TRNS, - KC_TRNS, - KC_TRNS, KC_TRNS), + KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F11, + 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_F12, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_PEQL, + KC_TRNS, KC_TRNS, KC_P7, KC_P8, KC_P9, KC_PAST, KC_PSLS, + KC_TRNS, KC_P4, KC_P5, KC_P6, KC_PMNS, KC_PMNS, + KC_NLCK, KC_TRNS, KC_P1, KC_P2, KC_P3, KC_PPLS, KC_PPLS, + KC_P0, KC_PCMM, KC_PDOT, KC_PENT, KC_PENT, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS +), /* - * .-------------------------------------. .-------------------------------------. - * | | ¹ | ² | ³ | ⁴ | ⁵ | ∀ | ! | ⁶ | ⁷ | ⁸ | ⁹ | ⁰ | | - * !-----+----+----+----+----+-----------! !------+----+----+----+----+----+-----! - * | | × | ½ | ÷ | ¼ | ⅕ | | ! | ⅙ | | ⅛ | | | | - * !-----+----+----+----x----x----! ! ! !----x----x----+----+----+-----! - * | | | ± | AT |EURO| ∅ |------! !------! ∞ | ⁿ | ∃ | ∈ | | | - * !-----+----+----+----x----x----! ! ! !----x----x----+----+----+-----! - * | | ⅓ | ≠ | ⅔ | ¾ | ≃ | | ! |EXLM| | ∄ | ∉ | | | - * '-----+----+----+----+----+-----------' '-----------+----+----+----+----+-----' - * | | | | | | ! | | | | | - * '------------------------'.-------------. .-------------.'------------------------' - * | | | ! | | - * .------+------+------! !------+------+------. - * ! ! | | ! | ! ! - * ! ! !------! !------! ! ! - * | | | | ! | | | - * '--------------------' '--------------------' + * .------------------------------------.------------------------------------. + * | | ¹ | ² | ³ | ⁴ | ⁵ | ∀ | | ⁶ | ⁷ | ⁸ | ⁹ | ⁰ | | + * !-----+----+----+----+----+----------!-----+----+----+----+----+----+-----! + * | | × | ½ | ÷ | ¼ | ⅕ | | | ⅙ | | ⅛ | | | | + * !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + * | | | ± | AT |EURO| ∅ |-----!-----! ∞ | ⁿ | ∃ | ∈ | | | + * !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + * | | ⅓ | ≠ | ⅔ | ¾ | ≃ | | |EXLM| | ∄ | ∉ | | | + * '-----+----+----+----+----+----------'----------+----+----+----+----+-----' + * | | | | | | ! | | | | | + * '------------------------' '------------------------' + * .-----------. .-----------. + * | | | ! | | + * .-----+-----+-----! !-----+-----+-----. + * ! ! | | ! | ! ! + * ! ! !-----! !-----! ! ! + * | | | | ! | | | + * '-----------------' '-----------------' */ [L3] = KEYMAP( - KC_TRNS, - M(UC_SUP_ONE), M(UC_SUP_TWO), M(UC_SUP_THREE), M(UC_SUP_FOUR), M(UC_SUP_FIVE), M(UC_FOR_ALL), KC_TRNS, - M(UC_MULTIPLICATION_SIGN), M(UC_FR_ONE_HALF), M(UC_DIVISION_SIGN), M(UC_FR_ONE_QUARTER), M(UC_FR_ONE_FIFTH), KC_TRNS, KC_TRNS, - KC_TRNS, M(UC_PLUS_MINUS_SIGN), DE_AT, DE_EURO, M(UC_EMPTY_SET), KC_TRNS, - M(UC_FR_ONE_THIRD), M(UC_NOT_EQUAL_TO), M(UC_FR_TWO_THIRDS), M(UC_FR_THREE_QUARTERS), M(UC_ASYMPTOTICALLY_EQUAL_TO), 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, - M(UC_SUP_SIX), M(UC_SUP_SEVEN), M(UC_SUP_EIGHT), M(UC_SUP_NINE), M(UC_SUP_ZERO), KC_TRNS, KC_TRNS, - M(UC_FR_ONE_SIXTH), KC_TRNS, M(UC_FR_ONE_EIGHTH), KC_TRNS, KC_TRNS, KC_TRNS, M(UC_INFINITY), - M(UC_SUP_LATIN_SMALL_LETTER_N), M(UC_THERE_EXISTS), M(UC_ELEMENT_OF), KC_TRNS, KC_TRNS, KC_TRNS, - DE_EXLM, KC_TRNS, M(UC_THERE_DOES_NOT_EXIST), M(UC_NOT_AN_ELEMENT_OF), 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, M(UC_SUPERSCRIPT_ONE), M(UC_SUPERSCRIPT_TWO), M(UC_SUPERSCRIPT_THREE), M(UC_SUPERSCRIPT_FOUR), M(UC_SUPERSCRIPT_FIVE), M(UC_FOR_ALL), + KC_TRNS, M(UC_MULTIPLICATION_SIGN), M(UC_VULGAR_FRACTION_ONE_HALF), M(UC_DIVISION_SIGN), M(UC_VULGAR_FRACTION_ONE_QUARTER), M(UC_VULGAR_FRACTION_ONE_FIFTH), KC_TRNS, + KC_TRNS, KC_TRNS, M(UC_PLUS_MINUS_SIGN), DE_AT, DE_EURO, M(UC_EMPTY_SET), + KC_TRNS, M(UC_VULGAR_FRACTION_ONE_THIRD), M(UC_NOT_EQUAL_TO), M(UC_VULGAR_FRACTION_TWO_THIRDS), M(UC_VULGAR_FRACTION_THREE_QUARTERS), M(UC_ASYMPTOTICALLY_EQUAL_TO), 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, M(UC_SUPERSCRIPT_SIX), M(UC_SUPERSCRIPT_SEVEN), M(UC_SUPERSCRIPT_EIGHT), M(UC_SUPERSCRIPT_NINE), M(UC_SUPERSCRIPT_ZERO), KC_TRNS, + KC_TRNS, M(UC_VULGAR_FRACTION_ONE_SIXTH), KC_TRNS, M(UC_VULGAR_FRACTION_ONE_EIGHTH), KC_TRNS, KC_TRNS, KC_TRNS, + M(UC_INFINITY), M(UC_SUPERSCRIPT_LATIN_SMALL_LETTER_N), M(UC_THERE_EXISTS), M(UC_ELEMENT_OF), KC_TRNS, KC_TRNS, + KC_TRNS, DE_EXLM, KC_TRNS, M(UC_THERE_DOES_NOT_EXIST), M(UC_NOT_AN_ELEMENT_OF), 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----+----+----+-----! - * | | | θ | | | | | ! | β | μ | | | | ψ | - * '-----+----+----+----+----+-----------' '-----------+----+----+----+----+-----' - * | | | | | | ! | | | | | - * '------------------------'.-------------. .-------------.'------------------------' - * | | | ! | | - * .------+------+------! !------+------+------. - * ! ! | | ! | ! ! - * ! ! !------! !------! ! ! - * | | | | ! | | | - * '--------------------' '--------------------' + * .------------------------------------.------------------------------------. + * | | ₁ | ₂ | ₃ | ₄ | ₅ | | | ₆ | ₇ | ₈ | ₉ | ₀ | | + * !-----+----+----+----+----+----------!-----+----+----+----+----+----+-----! + * | | χ | π | φ | ω | γ | | | η | ξ | κ | λ | | ζ | + * !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + * | | υ | ι | α | ε | ο |-----!-----! σ | ν | ρ | τ | δ | ς | + * !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + * | | | θ | | | | | | β | μ | | | | ψ | + * '-----+----+----+----+----+----------'----------+----+----+----+----+-----' + * | | | | | | ! | | | | | + * '------------------------' '------------------------' + * .-----------. .-----------. + * | | | ! | | + * .-----+-----+-----! !-----+-----+-----. + * ! ! | | ! | ! ! + * ! ! !-----! !-----! ! ! + * | | | | ! | | | + * '-----------------' '-----------------' */ [L4] = KEYMAP( - KC_TRNS, - M(UC_SUB_ONE), M(UC_SUB_TWO), M(UC_SUB_THREE), M(UC_SUB_FOUR), M(UC_SUB_FIVE), KC_TRNS, KC_TRNS, - M(UC_GR_LC_CHI), M(UC_GR_LC_PI), M(UC_GR_LC_PHI), M(UC_GR_LC_OMEGA), M(UC_GR_LC_GAMMA), KC_TRNS, KC_TRNS, - M(UC_GR_LC_UPSILON), M(UC_GR_LC_IOTA), M(UC_GR_LC_ALPHA), M(UC_GR_LC_EPSILON), M(UC_GR_LC_OMICRON), KC_TRNS, - KC_TRNS, M(UC_GR_LC_THETA), 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, - M(UC_SUB_SIX), M(UC_SUB_SEVEN), M(UC_SUB_EIGHT), M(UC_SUB_NINE), M(UC_SUB_ZERO), KC_TRNS, KC_TRNS, - M(UC_GR_LC_ETA), M(UC_GR_LC_XI), M(UC_GR_LC_KAPPA), M(UC_GR_LC_LAMDA), KC_TRNS, M(UC_GR_LC_ZETA), M(UC_GR_LC_SIGMA), - M(UC_GR_LC_NU), M(UC_GR_LC_RHO), M(UC_GR_LC_TAU), M(UC_GR_LC_DELTA), M(UC_GR_LC_FINAL_SIGMA), KC_TRNS, - M(UC_GR_LC_BETA), M(UC_GR_LC_MU), KC_TRNS, KC_TRNS, KC_TRNS, M(UC_GR_LC_PSI), KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, - KC_TRNS, - KC_TRNS, KC_TRNS), + KC_TRNS, M(UC_SUBSCRIPT_ONE), M(UC_SUBSCRIPT_TWO), M(UC_SUBSCRIPT_THREE), M(UC_SUBSCRIPT_FOUR), M(UC_SUBSCRIPT_FIVE), KC_TRNS, + KC_TRNS, M(UC_GREEK_SMALL_LETTER_CHI), M(UC_GREEK_SMALL_LETTER_PI), M(UC_GREEK_SMALL_LETTER_PHI), M(UC_GREEK_SMALL_LETTER_OMEGA), M(UC_GREEK_SMALL_LETTER_GAMMA), KC_TRNS, + KC_TRNS, M(UC_GREEK_SMALL_LETTER_UPSILON), M(UC_GREEK_SMALL_LETTER_IOTA), M(UC_GREEK_SMALL_LETTER_ALPHA), M(UC_GREEK_SMALL_LETTER_EPSILON), M(UC_GREEK_SMALL_LETTER_OMICRON), + KC_TRNS, KC_TRNS, M(UC_GREEK_SMALL_LETTER_THETA), 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, M(UC_SUBSCRIPT_SIX), M(UC_SUBSCRIPT_SEVEN), M(UC_SUBSCRIPT_EIGHT), M(UC_SUBSCRIPT_NINE), M(UC_SUBSCRIPT_ZERO), KC_TRNS, + KC_TRNS, M(UC_GREEK_SMALL_LETTER_ETA), M(UC_GREEK_SMALL_LETTER_XI), M(UC_GREEK_SMALL_LETTER_KAPPA), M(UC_GREEK_SMALL_LETTER_LAMDA), KC_TRNS, M(UC_GREEK_SMALL_LETTER_ZETA), + M(UC_GREEK_SMALL_LETTER_SIGMA), M(UC_GREEK_SMALL_LETTER_NU), M(UC_GREEK_SMALL_LETTER_RHO), M(UC_GREEK_SMALL_LETTER_TAU), M(UC_GREEK_SMALL_LETTER_DELTA), M(UC_GREEK_SMALL_LETTER_FINAL_SIGMA), + KC_TRNS, M(UC_GREEK_SMALL_LETTER_BETA), M(UC_GREEK_SMALL_LETTER_MU), KC_TRNS, KC_TRNS, KC_TRNS, M(UC_GREEK_SMALL_LETTER_PSI), + 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----+----+----+-----! - * | | | Θ | | | | | ! | Β | Μ | | | | Ψ | - * '-----+----+----+----+----+-----------' '-----------+----+----+----+----+-----' - * | | | | | | ! | | | | | - * '------------------------'.-------------. .-------------.'------------------------' - * | | | ! | | - * .------+------+------! !------+------+------. - * ! ! | | ! | ! ! - * ! ! !------! !------! ! ! - * | | | | ! | | | - * '--------------------' '--------------------' + * .------------------------------------.------------------------------------. + * | | | | | | | | | | | | | | | + * !-----+----+----+----+----+----------!-----+----+----+----+----+----+-----! + * | | Χ | Π | Φ | Ω | Γ | | | Η | Ξ | Κ | Λ | | Ζ | + * !-----+----+----+----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, - M(UC_GR_UC_CHI), M(UC_GR_UC_PI), M(UC_GR_UC_PHI), M(UC_GR_UC_OMEGA), M(UC_GR_UC_GAMMA), KC_TRNS, KC_TRNS, - M(UC_GR_UC_UPSILON), M(UC_GR_UC_IOTA), M(UC_GR_UC_ALPHA), M(UC_GR_UC_EPSILON), M(UC_GR_UC_OMICRON), KC_TRNS, - KC_TRNS, M(UC_GR_UC_THETA), 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, - M(UC_GR_UC_ETA), M(UC_GR_UC_XI), M(UC_GR_UC_KAPPA), M(UC_GR_UC_LAMDA), KC_TRNS, M(UC_GR_UC_ZETA), M(UC_GR_UC_SIGMA), - M(UC_GR_UC_NU), M(UC_GR_UC_RHO), M(UC_GR_UC_TAU), M(UC_GR_UC_DELTA), KC_TRNS, KC_TRNS, - M(UC_GR_UC_BETA), M(UC_GR_UC_MU), KC_TRNS, KC_TRNS, KC_TRNS, M(UC_GR_UC_PSI), 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, M(UC_GREEK_CAPITAL_LETTER_CHI), M(UC_GREEK_CAPITAL_LETTER_PI), M(UC_GREEK_CAPITAL_LETTER_PHI), M(UC_GREEK_CAPITAL_LETTER_OMEGA), M(UC_GREEK_CAPITAL_LETTER_GAMMA), KC_TRNS, + KC_TRNS, M(UC_GREEK_CAPITAL_LETTER_UPSILON), M(UC_GREEK_CAPITAL_LETTER_IOTA), M(UC_GREEK_CAPITAL_LETTER_ALPHA), M(UC_GREEK_CAPITAL_LETTER_EPSILON), M(UC_GREEK_CAPITAL_LETTER_OMICRON), + KC_TRNS, KC_TRNS, M(UC_GREEK_CAPITAL_LETTER_THETA), 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, M(UC_GREEK_CAPITAL_LETTER_ETA), M(UC_GREEK_CAPITAL_LETTER_XI), M(UC_GREEK_CAPITAL_LETTER_KAPPA), M(UC_GREEK_CAPITAL_LETTER_LAMDA), KC_TRNS, M(UC_GREEK_CAPITAL_LETTER_ZETA), + M(UC_GREEK_CAPITAL_LETTER_SIGMA), M(UC_GREEK_CAPITAL_LETTER_NU), M(UC_GREEK_CAPITAL_LETTER_RHO), M(UC_GREEK_CAPITAL_LETTER_TAU), M(UC_GREEK_CAPITAL_LETTER_DELTA), KC_TRNS, + KC_TRNS, M(UC_GREEK_CAPITAL_LETTER_BETA), M(UC_GREEK_CAPITAL_LETTER_MU), KC_TRNS, KC_TRNS, KC_TRNS, M(UC_GREEK_CAPITAL_LETTER_PSI), + 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----+----+----+-----! - * | | | | | | | | ! | | | | | | | - * '-----+----+----+----+----+-----------' '-----------+----+----+----+----+-----' - * | | | | | | ! | | | | | - * '------------------------'.-------------. .-------------.'------------------------' - * | | | ! | | - * .------+------+------! !------+------+------. - * ! ! | | ! | ! ! - * ! ! !------! !------! ! ! - * | | | | ! | | | - * '--------------------' '--------------------' + * .------------------------------------.------------------------------------. + * | | | | | | | | | | | | | | | + * !-----+----+----+----+----+----------!-----+----+----+----+----+----+-----! + * | | | | | | | | | | | | | | | + * !-----+----+----+----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), + 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----+----+----+-----! - * | | | | | | | | ! | | | | | | | - * '-----+----+----+----+----+-----------' '-----------+----+----+----+----+-----' - * | | | | | | ! | | | | | - * '------------------------'.-------------. .-------------.'------------------------' - * | | | ! | | - * .------+------+------! !------+------+------. - * ! ! | | ! | ! ! - * ! ! !------! !------! ! ! - * | | | | ! | | | - * '--------------------' '--------------------' + * .------------------------------------.------------------------------------. + * | | | | | | | | | | | | | | | + * !-----+----+----+----+----+----------!-----+----+----+----+----+----+-----! + * | | | | | | | | | | | | | | | + * !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + * | | | | | | |-----!-----! | | | | | | + * !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + * | | | | | | | | | | | | | | | + * '-----+----+----+----+----+----------'----------+----+----+----+----+-----' + * | | | | | | ! | | | | | + * '------------------------' '------------------------' + * .-----------. .-----------. + * | | | ! | | + * .-----+-----+-----! !-----+-----+-----. + * ! ! | | ! | ! ! + * ! ! !-----! !-----! ! ! + * | | | | ! | | | + * '-----------------' '-----------------' */ [L7] = 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), + 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----+----+----+-----! - * | | | | | | | | ! | | | | | | | - * '-----+----+----+----+----+-----------' '-----------+----+----+----+----+-----' - * | | | | | | ! | | | | | - * '------------------------'.-------------. .-------------.'------------------------' - * | | | ! | | - * .------+------+------! !------+------+------. - * ! ! | | ! | ! ! - * ! ! !------! !------! ! ! - * | | | | ! | | | - * '--------------------' '--------------------' + * .------------------------------------.------------------------------------. + * | | | | | | | | | | | | | | | + * !-----+----+----+----+----+----------!-----+----+----+----+----+----+-----! + * | | | | | | | | | | | | | | | + * !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + * | | | | | | |-----!-----! | | | | | | + * !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + * | | | | | | | | | | | | | | | + * '-----+----+----+----+----+----------'----------+----+----+----+----+-----' + * | | | | | | ! | | | | | + * '------------------------' '------------------------' + * .-----------. .-----------. + * | | | ! | | + * .-----+-----+-----! !-----+-----+-----. + * ! ! | | ! | ! ! + * ! ! !-----! !-----! ! ! + * | | | | ! | | | + * '-----------------' '-----------------' */ [L8] = 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), + 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[] = { -}; +const uint16_t PROGMEM fn_actions[] = {}; #define UC_MODE_WIN 0 #define UC_MODE_LINUX 1 @@ -453,791 +462,791 @@ const uint16_t PROGMEM fn_actions[] = { static uint16_t unicode_mode = UC_MODE_WIN; 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 UMS: - unicode_mode = (unicode_mode + 1) % 2; - break; - - default: - break; + if (!record->event.pressed) { + return MACRO_NONE; } - if (unicode_mode == UC_MODE_WIN) { - switch(id) { - case UC_UPWARDS_ARROW: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_2), T(KP_1), T(KP_9), T(KP_1), U(LALT), END - ); + // MACRODOWN only works in this function + switch(id) { + case UM: + unicode_mode = (unicode_mode + 1) % 2; + break; + + default: + break; + } + if (unicode_mode == UC_MODE_WIN) { + switch(id) { + case UC_GREEK_SMALL_LETTER_OMICRON: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(B), T(F), U(LALT), END + ); case UC_LEFTWARDS_ARROW: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_2), T(KP_1), T(KP_9), T(KP_0), U(LALT), END - ); -case UC_DOWNWARDS_ARROW: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_2), T(KP_1), T(KP_9), T(KP_3), U(LALT), END - ); -case UC_RIGHTWARDS_ARROW: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_2), T(KP_1), T(KP_9), T(KP_2), U(LALT), END - ); -case UC_SUP_ONE: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_0), T(B), T(KP_9), U(LALT), END - ); -case UC_SUP_TWO: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_0), T(B), T(KP_2), U(LALT), END - ); -case UC_SUP_THREE: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_0), T(B), T(KP_3), U(LALT), END - ); -case UC_SUP_FOUR: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_2), T(KP_0), T(KP_7), T(KP_4), U(LALT), END - ); -case UC_SUP_FIVE: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_2), T(KP_0), T(KP_7), T(KP_5), U(LALT), END - ); -case UC_FOR_ALL: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_2), T(KP_2), T(KP_0), T(KP_0), U(LALT), END - ); -case UC_SUP_SIX: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_2), T(KP_0), T(KP_7), T(KP_6), U(LALT), END - ); -case UC_SUP_SEVEN: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_2), T(KP_0), T(KP_7), T(KP_7), U(LALT), END - ); -case UC_SUP_EIGHT: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_2), T(KP_0), T(KP_7), T(KP_8), U(LALT), END - ); -case UC_SUP_NINE: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_2), T(KP_0), T(KP_7), T(KP_9), U(LALT), END - ); -case UC_SUP_ZERO: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_2), T(KP_0), T(KP_7), T(KP_0), U(LALT), END - ); -case UC_MULTIPLICATION_SIGN: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_0), T(D), T(KP_7), U(LALT), END - ); -case UC_FR_ONE_HALF: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_0), T(B), T(D), U(LALT), END - ); -case UC_DIVISION_SIGN: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_0), T(F), T(KP_7), U(LALT), END - ); -case UC_FR_ONE_QUARTER: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_0), T(B), T(C), U(LALT), END - ); -case UC_FR_ONE_FIFTH: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_2), T(KP_1), T(KP_5), T(KP_5), U(LALT), END - ); -case UC_FR_ONE_SIXTH: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_2), T(KP_1), T(KP_5), T(KP_9), U(LALT), END - ); -case UC_FR_ONE_EIGHTH: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_2), T(KP_1), T(KP_5), T(B), U(LALT), END - ); -case UC_PLUS_MINUS_SIGN: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_0), T(B), T(KP_1), U(LALT), END - ); -case UC_EMPTY_SET: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_2), T(KP_2), T(KP_0), T(KP_5), U(LALT), END - ); -case UC_INFINITY: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_2), T(KP_2), T(KP_1), T(E), U(LALT), END - ); -case UC_SUP_LATIN_SMALL_LETTER_N: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_2), T(KP_0), T(KP_7), T(F), U(LALT), END - ); -case UC_THERE_EXISTS: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_2), T(KP_2), T(KP_0), T(KP_3), U(LALT), END - ); -case UC_ELEMENT_OF: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_2), T(KP_2), T(KP_0), T(KP_8), U(LALT), END - ); -case UC_FR_ONE_THIRD: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_2), T(KP_1), T(KP_5), T(KP_3), U(LALT), END - ); -case UC_NOT_EQUAL_TO: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_2), T(KP_2), T(KP_6), T(KP_0), U(LALT), END - ); -case UC_FR_TWO_THIRDS: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_2), T(KP_1), T(KP_5), T(KP_4), U(LALT), END - ); -case UC_FR_THREE_QUARTERS: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_0), T(B), T(E), U(LALT), END - ); -case UC_ASYMPTOTICALLY_EQUAL_TO: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_2), T(KP_2), T(KP_4), T(KP_3), U(LALT), END - ); + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_2), T(KP_1), T(KP_9), T(KP_0), U(LALT), END + ); +case UC_GREEK_CAPITAL_LETTER_RHO: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(A), T(KP_1), U(LALT), END + ); +case UC_SUBSCRIPT_THREE: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_2), T(KP_0), T(KP_8), T(KP_3), U(LALT), END + ); +case UC_VULGAR_FRACTION_ONE_EIGHTH: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_2), T(KP_1), T(KP_5), T(B), U(LALT), END + ); +case UC_GREEK_SMALL_LETTER_LAMDA: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(B), T(B), U(LALT), END + ); +case UC_VULGAR_FRACTION_ONE_THIRD: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_2), T(KP_1), T(KP_5), T(KP_3), U(LALT), END + ); +case UC_GREEK_SMALL_LETTER_XI: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(B), T(E), U(LALT), END + ); case UC_THERE_DOES_NOT_EXIST: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_2), T(KP_2), T(KP_0), T(KP_4), U(LALT), END - ); + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_2), T(KP_2), T(KP_0), T(KP_4), U(LALT), END + ); +case UC_SUPERSCRIPT_ONE: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_0), T(B), T(KP_9), U(LALT), END + ); +case UC_GREEK_SMALL_LETTER_BETA: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(B), T(KP_2), U(LALT), END + ); +case UC_SUBSCRIPT_FIVE: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_2), T(KP_0), T(KP_8), T(KP_5), U(LALT), END + ); +case UC_GREEK_CAPITAL_LETTER_IOTA: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(KP_9), T(KP_9), U(LALT), END + ); +case UC_VULGAR_FRACTION_ONE_FIFTH: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_2), T(KP_1), T(KP_5), T(KP_5), U(LALT), END + ); +case UC_GREEK_SMALL_LETTER_PSI: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(C), T(KP_8), U(LALT), END + ); +case UC_SUBSCRIPT_NINE: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_2), T(KP_0), T(KP_8), T(KP_9), U(LALT), END + ); +case UC_SUPERSCRIPT_FOUR: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_2), T(KP_0), T(KP_7), T(KP_4), U(LALT), END + ); +case UC_RIGHTWARDS_ARROW: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_2), T(KP_1), T(KP_9), T(KP_2), U(LALT), END + ); +case UC_SUPERSCRIPT_SIX: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_2), T(KP_0), T(KP_7), T(KP_6), U(LALT), END + ); +case UC_DOWNWARDS_ARROW: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_2), T(KP_1), T(KP_9), T(KP_3), U(LALT), END + ); +case UC_GREEK_SMALL_LETTER_PI: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(C), T(KP_0), U(LALT), END + ); +case UC_SUPERSCRIPT_TWO: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_0), T(B), T(KP_2), U(LALT), END + ); +case UC_GREEK_CAPITAL_LETTER_OMEGA: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(A), T(KP_9), U(LALT), END + ); +case UC_GREEK_CAPITAL_LETTER_PSI: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(A), T(KP_8), U(LALT), END + ); +case UC_SUBSCRIPT_FOUR: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_2), T(KP_0), T(KP_8), T(KP_4), U(LALT), END + ); +case UC_GREEK_CAPITAL_LETTER_NU: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(KP_9), T(D), U(LALT), END + ); +case UC_DIVISION_SIGN: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_0), T(F), T(KP_7), U(LALT), END + ); +case UC_GREEK_SMALL_LETTER_SIGMA: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(C), T(KP_3), U(LALT), END + ); +case UC_GREEK_SMALL_LETTER_RHO: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(C), T(KP_1), U(LALT), END + ); +case UC_VULGAR_FRACTION_ONE_SIXTH: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_2), T(KP_1), T(KP_5), T(KP_9), U(LALT), END + ); +case UC_GREEK_SMALL_LETTER_GAMMA: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(B), T(KP_3), U(LALT), END + ); +case UC_VULGAR_FRACTION_TWO_THIRDS: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_2), T(KP_1), T(KP_5), T(KP_4), U(LALT), END + ); +case UC_GREEK_SMALL_LETTER_NU: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(B), T(D), U(LALT), END + ); +case UC_GREEK_SMALL_LETTER_ZETA: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(B), T(KP_6), U(LALT), END + ); +case UC_GREEK_SMALL_LETTER_EPSILON: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(B), T(KP_5), U(LALT), END + ); +case UC_GREEK_SMALL_LETTER_KAPPA: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(B), T(A), U(LALT), END + ); +case UC_SUPERSCRIPT_SEVEN: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_2), T(KP_0), T(KP_7), T(KP_7), U(LALT), END + ); +case UC_GREEK_CAPITAL_LETTER_PI: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(A), T(KP_0), U(LALT), END + ); +case UC_GREEK_SMALL_LETTER_FINAL_SIGMA: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(C), T(KP_2), U(LALT), END + ); +case UC_GREEK_CAPITAL_LETTER_XI: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(KP_9), T(E), U(LALT), END + ); +case UC_GREEK_SMALL_LETTER_THETA: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(B), T(KP_8), U(LALT), END + ); +case UC_GREEK_SMALL_LETTER_ETA: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(B), T(KP_7), U(LALT), END + ); +case UC_SUBSCRIPT_TWO: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_2), T(KP_0), T(KP_8), T(KP_2), U(LALT), END + ); +case UC_ASYMPTOTICALLY_EQUAL_TO: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_2), T(KP_2), T(KP_4), T(KP_3), U(LALT), END + ); +case UC_GREEK_SMALL_LETTER_ALPHA: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(B), T(KP_1), U(LALT), END + ); +case UC_GREEK_CAPITAL_LETTER_PHI: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(A), T(KP_6), U(LALT), END + ); +case UC_GREEK_SMALL_LETTER_PHI: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(C), T(KP_6), U(LALT), END + ); +case UC_INFINITY: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_2), T(KP_2), T(KP_1), T(E), U(LALT), END + ); +case UC_GREEK_CAPITAL_LETTER_OMICRON: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(KP_9), T(F), U(LALT), END + ); +case UC_ELEMENT_OF: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_2), T(KP_2), T(KP_0), T(KP_8), U(LALT), END + ); +case UC_MULTIPLICATION_SIGN: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_0), T(D), T(KP_7), U(LALT), END + ); +case UC_SUBSCRIPT_ZERO: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_2), T(KP_0), T(KP_8), T(KP_0), U(LALT), END + ); +case UC_GREEK_CAPITAL_LETTER_SIGMA: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(A), T(KP_3), U(LALT), END + ); +case UC_GREEK_SMALL_LETTER_OMEGA: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(C), T(KP_9), U(LALT), END + ); +case UC_SUBSCRIPT_ONE: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_2), T(KP_0), T(KP_8), T(KP_1), U(LALT), END + ); +case UC_GREEK_CAPITAL_LETTER_ZETA: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(KP_9), T(KP_6), U(LALT), END + ); +case UC_GREEK_SMALL_LETTER_TAU: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(C), T(KP_4), U(LALT), END + ); +case UC_SUPERSCRIPT_FIVE: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_2), T(KP_0), T(KP_7), T(KP_5), U(LALT), END + ); +case UC_THERE_EXISTS: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_2), T(KP_2), T(KP_0), T(KP_3), U(LALT), END + ); +case UC_PLUS_MINUS_SIGN: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_0), T(B), T(KP_1), U(LALT), END + ); +case UC_VULGAR_FRACTION_THREE_QUARTERS: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_0), T(B), T(E), U(LALT), END + ); +case UC_SUPERSCRIPT_THREE: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_0), T(B), T(KP_3), U(LALT), END + ); +case UC_EMPTY_SET: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_2), T(KP_2), T(KP_0), T(KP_5), U(LALT), END + ); +case UC_UPWARDS_ARROW: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_2), T(KP_1), T(KP_9), T(KP_1), U(LALT), END + ); +case UC_SUPERSCRIPT_NINE: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_2), T(KP_0), T(KP_7), T(KP_9), U(LALT), END + ); +case UC_GREEK_SMALL_LETTER_DELTA: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(B), T(KP_4), U(LALT), END + ); +case UC_GREEK_SMALL_LETTER_MU: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(B), T(C), U(LALT), END + ); +case UC_GREEK_CAPITAL_LETTER_KAPPA: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(KP_9), T(A), U(LALT), END + ); +case UC_SUBSCRIPT_EIGHT: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_2), T(KP_0), T(KP_8), T(KP_8), U(LALT), END + ); +case UC_GREEK_CAPITAL_LETTER_ALPHA: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(KP_9), T(KP_1), U(LALT), END + ); +case UC_SUBSCRIPT_SEVEN: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_2), T(KP_0), T(KP_8), T(KP_7), U(LALT), END + ); +case UC_GREEK_CAPITAL_LETTER_BETA: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(KP_9), T(KP_2), U(LALT), END + ); +case UC_GREEK_CAPITAL_LETTER_ETA: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(KP_9), T(KP_7), U(LALT), END + ); +case UC_SUPERSCRIPT_EIGHT: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_2), T(KP_0), T(KP_7), T(KP_8), U(LALT), END + ); +case UC_SUPERSCRIPT_ZERO: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_2), T(KP_0), T(KP_7), T(KP_0), U(LALT), END + ); case UC_NOT_AN_ELEMENT_OF: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_2), T(KP_2), T(KP_0), T(KP_9), U(LALT), END - ); -case UC_SUB_ONE: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_2), T(KP_0), T(KP_8), T(KP_1), U(LALT), END - ); -case UC_SUB_TWO: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_2), T(KP_0), T(KP_8), T(KP_2), U(LALT), END - ); -case UC_SUB_THREE: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_2), T(KP_0), T(KP_8), T(KP_3), U(LALT), END - ); -case UC_SUB_FOUR: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_2), T(KP_0), T(KP_8), T(KP_4), U(LALT), END - ); -case UC_SUB_FIVE: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_2), T(KP_0), T(KP_8), T(KP_5), U(LALT), END - ); -case UC_SUB_SIX: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_2), T(KP_0), T(KP_8), T(KP_6), U(LALT), END - ); -case UC_SUB_SEVEN: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_2), T(KP_0), T(KP_8), T(KP_7), U(LALT), END - ); -case UC_SUB_EIGHT: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_2), T(KP_0), T(KP_8), T(KP_8), U(LALT), END - ); -case UC_SUB_NINE: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_2), T(KP_0), T(KP_8), T(KP_9), U(LALT), END - ); -case UC_SUB_ZERO: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_2), T(KP_0), T(KP_8), T(KP_0), U(LALT), END - ); -case UC_GR_LC_CHI: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(C), T(KP_7), U(LALT), END - ); -case UC_GR_LC_PI: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(C), T(KP_0), U(LALT), END - ); -case UC_GR_LC_PHI: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(C), T(KP_6), U(LALT), END - ); -case UC_GR_LC_OMEGA: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(C), T(KP_9), U(LALT), END - ); -case UC_GR_LC_GAMMA: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(B), T(KP_3), U(LALT), END - ); -case UC_GR_LC_ETA: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(B), T(KP_7), U(LALT), END - ); -case UC_GR_LC_XI: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(B), T(E), U(LALT), END - ); -case UC_GR_LC_KAPPA: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(B), T(A), U(LALT), END - ); -case UC_GR_LC_LAMDA: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(B), T(B), U(LALT), END - ); -case UC_GR_LC_ZETA: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(B), T(KP_6), U(LALT), END - ); -case UC_GR_LC_UPSILON: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(C), T(KP_5), U(LALT), END - ); -case UC_GR_LC_IOTA: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(B), T(KP_9), U(LALT), END - ); -case UC_GR_LC_ALPHA: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(B), T(KP_1), U(LALT), END - ); -case UC_GR_LC_EPSILON: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(B), T(KP_5), U(LALT), END - ); -case UC_GR_LC_OMICRON: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(B), T(F), U(LALT), END - ); -case UC_GR_LC_SIGMA: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(C), T(KP_3), U(LALT), END - ); -case UC_GR_LC_NU: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(B), T(D), U(LALT), END - ); -case UC_GR_LC_RHO: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(C), T(KP_1), U(LALT), END - ); -case UC_GR_LC_TAU: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(C), T(KP_4), U(LALT), END - ); -case UC_GR_LC_DELTA: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(B), T(KP_4), U(LALT), END - ); -case UC_GR_LC_FINAL_SIGMA: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(C), T(KP_2), U(LALT), END - ); -case UC_GR_LC_THETA: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(B), T(KP_8), U(LALT), END - ); -case UC_GR_LC_BETA: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(B), T(KP_2), U(LALT), END - ); -case UC_GR_LC_MU: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(B), T(C), U(LALT), END - ); -case UC_GR_LC_PSI: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(C), T(KP_8), U(LALT), END - ); -case UC_GR_UC_CHI: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(A), T(KP_7), U(LALT), END - ); -case UC_GR_UC_PI: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(A), T(KP_0), U(LALT), END - ); -case UC_GR_UC_PHI: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(A), T(KP_6), U(LALT), END - ); -case UC_GR_UC_OMEGA: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(A), T(KP_9), U(LALT), END - ); -case UC_GR_UC_GAMMA: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(KP_9), T(KP_3), U(LALT), END - ); -case UC_GR_UC_ETA: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(KP_9), T(KP_7), U(LALT), END - ); -case UC_GR_UC_XI: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(KP_9), T(E), U(LALT), END - ); -case UC_GR_UC_KAPPA: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(KP_9), T(A), U(LALT), END - ); -case UC_GR_UC_LAMDA: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(KP_9), T(B), U(LALT), END - ); -case UC_GR_UC_ZETA: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(KP_9), T(KP_6), U(LALT), END - ); -case UC_GR_UC_UPSILON: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(A), T(KP_5), U(LALT), END - ); -case UC_GR_UC_IOTA: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(KP_9), T(KP_9), U(LALT), END - ); -case UC_GR_UC_ALPHA: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(KP_9), T(KP_1), U(LALT), END - ); -case UC_GR_UC_EPSILON: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(KP_9), T(KP_5), U(LALT), END - ); -case UC_GR_UC_OMICRON: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(KP_9), T(F), U(LALT), END - ); -case UC_GR_UC_SIGMA: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(A), T(KP_3), U(LALT), END - ); -case UC_GR_UC_NU: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(KP_9), T(D), U(LALT), END - ); -case UC_GR_UC_RHO: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(A), T(KP_1), U(LALT), END - ); -case UC_GR_UC_TAU: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(A), T(KP_4), U(LALT), END - ); -case UC_GR_UC_DELTA: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(KP_9), T(KP_4), U(LALT), END - ); -case UC_GR_UC_THETA: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(KP_9), T(KP_8), U(LALT), END - ); -case UC_GR_UC_BETA: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(KP_9), T(KP_2), U(LALT), END - ); -case UC_GR_UC_MU: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(KP_9), T(C), U(LALT), END - ); -case UC_GR_UC_PSI: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(A), T(KP_8), U(LALT), END - ); - default: - break; - } - } else if (unicode_mode == UC_MODE_LINUX) { - switch(id) { - case UC_UPWARDS_ARROW: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_1), T(KP_9), T(KP_1), T(KP_ENTER), END - ); + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_2), T(KP_2), T(KP_0), T(KP_9), U(LALT), END + ); +case UC_GREEK_SMALL_LETTER_UPSILON: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(C), T(KP_5), U(LALT), END + ); +case UC_NOT_EQUAL_TO: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_2), T(KP_2), T(KP_6), T(KP_0), U(LALT), END + ); +case UC_GREEK_CAPITAL_LETTER_CHI: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(A), T(KP_7), U(LALT), END + ); +case UC_FOR_ALL: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_2), T(KP_2), T(KP_0), T(KP_0), U(LALT), END + ); +case UC_GREEK_CAPITAL_LETTER_TAU: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(A), T(KP_4), U(LALT), END + ); +case UC_VULGAR_FRACTION_ONE_QUARTER: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_0), T(B), T(C), U(LALT), END + ); +case UC_GREEK_SMALL_LETTER_CHI: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(C), T(KP_7), U(LALT), END + ); +case UC_GREEK_CAPITAL_LETTER_THETA: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(KP_9), T(KP_8), U(LALT), END + ); +case UC_GREEK_SMALL_LETTER_IOTA: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(B), T(KP_9), U(LALT), END + ); +case UC_GREEK_CAPITAL_LETTER_LAMDA: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(KP_9), T(B), U(LALT), END + ); +case UC_SUPERSCRIPT_LATIN_SMALL_LETTER_N: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_2), T(KP_0), T(KP_7), T(F), U(LALT), END + ); +case UC_GREEK_CAPITAL_LETTER_UPSILON: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(A), T(KP_5), U(LALT), END + ); +case UC_GREEK_CAPITAL_LETTER_MU: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(KP_9), T(C), U(LALT), END + ); +case UC_GREEK_CAPITAL_LETTER_EPSILON: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(KP_9), T(KP_5), U(LALT), END + ); +case UC_GREEK_CAPITAL_LETTER_GAMMA: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(KP_9), T(KP_3), U(LALT), END + ); +case UC_SUBSCRIPT_SIX: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_2), T(KP_0), T(KP_8), T(KP_6), U(LALT), END + ); +case UC_GREEK_CAPITAL_LETTER_DELTA: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(KP_9), T(KP_4), U(LALT), END + ); +case UC_VULGAR_FRACTION_ONE_HALF: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_0), T(B), T(D), U(LALT), END + ); + default: + break; + } + } else if (unicode_mode == UC_MODE_LINUX) { + switch(id) { + case UC_GREEK_SMALL_LETTER_OMICRON: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(B), T(F), T(KP_ENTER), END + ); case UC_LEFTWARDS_ARROW: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_1), T(KP_9), T(KP_0), T(KP_ENTER), END - ); -case UC_DOWNWARDS_ARROW: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_1), T(KP_9), T(KP_3), T(KP_ENTER), END - ); -case UC_RIGHTWARDS_ARROW: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_1), T(KP_9), T(KP_2), T(KP_ENTER), END - ); -case UC_SUP_ONE: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_0), T(B), T(KP_9), T(KP_ENTER), END - ); -case UC_SUP_TWO: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_0), T(B), T(KP_2), T(KP_ENTER), END - ); -case UC_SUP_THREE: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_0), T(B), T(KP_3), T(KP_ENTER), END - ); -case UC_SUP_FOUR: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_0), T(KP_7), T(KP_4), T(KP_ENTER), END - ); -case UC_SUP_FIVE: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_0), T(KP_7), T(KP_5), T(KP_ENTER), END - ); -case UC_FOR_ALL: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_2), T(KP_0), T(KP_0), T(KP_ENTER), END - ); -case UC_SUP_SIX: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_0), T(KP_7), T(KP_6), T(KP_ENTER), END - ); -case UC_SUP_SEVEN: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_0), T(KP_7), T(KP_7), T(KP_ENTER), END - ); -case UC_SUP_EIGHT: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_0), T(KP_7), T(KP_8), T(KP_ENTER), END - ); -case UC_SUP_NINE: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_0), T(KP_7), T(KP_9), T(KP_ENTER), END - ); -case UC_SUP_ZERO: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_0), T(KP_7), T(KP_0), T(KP_ENTER), END - ); -case UC_MULTIPLICATION_SIGN: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_0), T(D), T(KP_7), T(KP_ENTER), END - ); -case UC_FR_ONE_HALF: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_0), T(B), T(D), T(KP_ENTER), END - ); -case UC_DIVISION_SIGN: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_0), T(F), T(KP_7), T(KP_ENTER), END - ); -case UC_FR_ONE_QUARTER: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_0), T(B), T(C), T(KP_ENTER), END - ); -case UC_FR_ONE_FIFTH: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_1), T(KP_5), T(KP_5), T(KP_ENTER), END - ); -case UC_FR_ONE_SIXTH: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_1), T(KP_5), T(KP_9), T(KP_ENTER), END - ); -case UC_FR_ONE_EIGHTH: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_1), T(KP_5), T(B), T(KP_ENTER), END - ); -case UC_PLUS_MINUS_SIGN: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_0), T(B), T(KP_1), T(KP_ENTER), END - ); -case UC_EMPTY_SET: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_2), T(KP_0), T(KP_5), T(KP_ENTER), END - ); -case UC_INFINITY: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_2), T(KP_1), T(E), T(KP_ENTER), END - ); -case UC_SUP_LATIN_SMALL_LETTER_N: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_0), T(KP_7), T(F), T(KP_ENTER), END - ); -case UC_THERE_EXISTS: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_2), T(KP_0), T(KP_3), T(KP_ENTER), END - ); -case UC_ELEMENT_OF: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_2), T(KP_0), T(KP_8), T(KP_ENTER), END - ); -case UC_FR_ONE_THIRD: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_1), T(KP_5), T(KP_3), T(KP_ENTER), END - ); -case UC_NOT_EQUAL_TO: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_2), T(KP_6), T(KP_0), T(KP_ENTER), END - ); -case UC_FR_TWO_THIRDS: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_1), T(KP_5), T(KP_4), T(KP_ENTER), END - ); -case UC_FR_THREE_QUARTERS: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_0), T(B), T(E), T(KP_ENTER), END - ); -case UC_ASYMPTOTICALLY_EQUAL_TO: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_2), T(KP_4), T(KP_3), T(KP_ENTER), END - ); + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_1), T(KP_9), T(KP_0), T(KP_ENTER), END + ); +case UC_GREEK_CAPITAL_LETTER_RHO: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(A), T(KP_1), T(KP_ENTER), END + ); +case UC_SUBSCRIPT_THREE: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_0), T(KP_8), T(KP_3), T(KP_ENTER), END + ); +case UC_VULGAR_FRACTION_ONE_EIGHTH: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_1), T(KP_5), T(B), T(KP_ENTER), END + ); +case UC_GREEK_SMALL_LETTER_LAMDA: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(B), T(B), T(KP_ENTER), END + ); +case UC_VULGAR_FRACTION_ONE_THIRD: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_1), T(KP_5), T(KP_3), T(KP_ENTER), END + ); +case UC_GREEK_SMALL_LETTER_XI: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(B), T(E), T(KP_ENTER), END + ); case UC_THERE_DOES_NOT_EXIST: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_2), T(KP_0), T(KP_4), T(KP_ENTER), END - ); + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_2), T(KP_0), T(KP_4), T(KP_ENTER), END + ); +case UC_SUPERSCRIPT_ONE: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_0), T(B), T(KP_9), T(KP_ENTER), END + ); +case UC_GREEK_SMALL_LETTER_BETA: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(B), T(KP_2), T(KP_ENTER), END + ); +case UC_SUBSCRIPT_FIVE: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_0), T(KP_8), T(KP_5), T(KP_ENTER), END + ); +case UC_GREEK_CAPITAL_LETTER_IOTA: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(KP_9), T(KP_9), T(KP_ENTER), END + ); +case UC_VULGAR_FRACTION_ONE_FIFTH: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_1), T(KP_5), T(KP_5), T(KP_ENTER), END + ); +case UC_GREEK_SMALL_LETTER_PSI: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(C), T(KP_8), T(KP_ENTER), END + ); +case UC_SUBSCRIPT_NINE: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_0), T(KP_8), T(KP_9), T(KP_ENTER), END + ); +case UC_SUPERSCRIPT_FOUR: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_0), T(KP_7), T(KP_4), T(KP_ENTER), END + ); +case UC_RIGHTWARDS_ARROW: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_1), T(KP_9), T(KP_2), T(KP_ENTER), END + ); +case UC_SUPERSCRIPT_SIX: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_0), T(KP_7), T(KP_6), T(KP_ENTER), END + ); +case UC_DOWNWARDS_ARROW: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_1), T(KP_9), T(KP_3), T(KP_ENTER), END + ); +case UC_GREEK_SMALL_LETTER_PI: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(C), T(KP_0), T(KP_ENTER), END + ); +case UC_SUPERSCRIPT_TWO: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_0), T(B), T(KP_2), T(KP_ENTER), END + ); +case UC_GREEK_CAPITAL_LETTER_OMEGA: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(A), T(KP_9), T(KP_ENTER), END + ); +case UC_GREEK_CAPITAL_LETTER_PSI: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(A), T(KP_8), T(KP_ENTER), END + ); +case UC_SUBSCRIPT_FOUR: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_0), T(KP_8), T(KP_4), T(KP_ENTER), END + ); +case UC_GREEK_CAPITAL_LETTER_NU: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(KP_9), T(D), T(KP_ENTER), END + ); +case UC_DIVISION_SIGN: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_0), T(F), T(KP_7), T(KP_ENTER), END + ); +case UC_GREEK_SMALL_LETTER_SIGMA: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(C), T(KP_3), T(KP_ENTER), END + ); +case UC_GREEK_SMALL_LETTER_RHO: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(C), T(KP_1), T(KP_ENTER), END + ); +case UC_VULGAR_FRACTION_ONE_SIXTH: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_1), T(KP_5), T(KP_9), T(KP_ENTER), END + ); +case UC_GREEK_SMALL_LETTER_GAMMA: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(B), T(KP_3), T(KP_ENTER), END + ); +case UC_VULGAR_FRACTION_TWO_THIRDS: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_1), T(KP_5), T(KP_4), T(KP_ENTER), END + ); +case UC_GREEK_SMALL_LETTER_NU: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(B), T(D), T(KP_ENTER), END + ); +case UC_GREEK_SMALL_LETTER_ZETA: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(B), T(KP_6), T(KP_ENTER), END + ); +case UC_GREEK_SMALL_LETTER_EPSILON: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(B), T(KP_5), T(KP_ENTER), END + ); +case UC_GREEK_SMALL_LETTER_KAPPA: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(B), T(A), T(KP_ENTER), END + ); +case UC_SUPERSCRIPT_SEVEN: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_0), T(KP_7), T(KP_7), T(KP_ENTER), END + ); +case UC_GREEK_CAPITAL_LETTER_PI: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(A), T(KP_0), T(KP_ENTER), END + ); +case UC_GREEK_SMALL_LETTER_FINAL_SIGMA: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(C), T(KP_2), T(KP_ENTER), END + ); +case UC_GREEK_CAPITAL_LETTER_XI: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(KP_9), T(E), T(KP_ENTER), END + ); +case UC_GREEK_SMALL_LETTER_THETA: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(B), T(KP_8), T(KP_ENTER), END + ); +case UC_GREEK_SMALL_LETTER_ETA: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(B), T(KP_7), T(KP_ENTER), END + ); +case UC_SUBSCRIPT_TWO: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_0), T(KP_8), T(KP_2), T(KP_ENTER), END + ); +case UC_ASYMPTOTICALLY_EQUAL_TO: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_2), T(KP_4), T(KP_3), T(KP_ENTER), END + ); +case UC_GREEK_SMALL_LETTER_ALPHA: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(B), T(KP_1), T(KP_ENTER), END + ); +case UC_GREEK_CAPITAL_LETTER_PHI: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(A), T(KP_6), T(KP_ENTER), END + ); +case UC_GREEK_SMALL_LETTER_PHI: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(C), T(KP_6), T(KP_ENTER), END + ); +case UC_INFINITY: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_2), T(KP_1), T(E), T(KP_ENTER), END + ); +case UC_GREEK_CAPITAL_LETTER_OMICRON: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(KP_9), T(F), T(KP_ENTER), END + ); +case UC_ELEMENT_OF: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_2), T(KP_0), T(KP_8), T(KP_ENTER), END + ); +case UC_MULTIPLICATION_SIGN: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_0), T(D), T(KP_7), T(KP_ENTER), END + ); +case UC_SUBSCRIPT_ZERO: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_0), T(KP_8), T(KP_0), T(KP_ENTER), END + ); +case UC_GREEK_CAPITAL_LETTER_SIGMA: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(A), T(KP_3), T(KP_ENTER), END + ); +case UC_GREEK_SMALL_LETTER_OMEGA: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(C), T(KP_9), T(KP_ENTER), END + ); +case UC_SUBSCRIPT_ONE: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_0), T(KP_8), T(KP_1), T(KP_ENTER), END + ); +case UC_GREEK_CAPITAL_LETTER_ZETA: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(KP_9), T(KP_6), T(KP_ENTER), END + ); +case UC_GREEK_SMALL_LETTER_TAU: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(C), T(KP_4), T(KP_ENTER), END + ); +case UC_SUPERSCRIPT_FIVE: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_0), T(KP_7), T(KP_5), T(KP_ENTER), END + ); +case UC_THERE_EXISTS: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_2), T(KP_0), T(KP_3), T(KP_ENTER), END + ); +case UC_PLUS_MINUS_SIGN: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_0), T(B), T(KP_1), T(KP_ENTER), END + ); +case UC_VULGAR_FRACTION_THREE_QUARTERS: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_0), T(B), T(E), T(KP_ENTER), END + ); +case UC_SUPERSCRIPT_THREE: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_0), T(B), T(KP_3), T(KP_ENTER), END + ); +case UC_EMPTY_SET: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_2), T(KP_0), T(KP_5), T(KP_ENTER), END + ); +case UC_UPWARDS_ARROW: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_1), T(KP_9), T(KP_1), T(KP_ENTER), END + ); +case UC_SUPERSCRIPT_NINE: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_0), T(KP_7), T(KP_9), T(KP_ENTER), END + ); +case UC_GREEK_SMALL_LETTER_DELTA: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(B), T(KP_4), T(KP_ENTER), END + ); +case UC_GREEK_SMALL_LETTER_MU: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(B), T(C), T(KP_ENTER), END + ); +case UC_GREEK_CAPITAL_LETTER_KAPPA: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(KP_9), T(A), T(KP_ENTER), END + ); +case UC_SUBSCRIPT_EIGHT: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_0), T(KP_8), T(KP_8), T(KP_ENTER), END + ); +case UC_GREEK_CAPITAL_LETTER_ALPHA: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(KP_9), T(KP_1), T(KP_ENTER), END + ); +case UC_SUBSCRIPT_SEVEN: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_0), T(KP_8), T(KP_7), T(KP_ENTER), END + ); +case UC_GREEK_CAPITAL_LETTER_BETA: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(KP_9), T(KP_2), T(KP_ENTER), END + ); +case UC_GREEK_CAPITAL_LETTER_ETA: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(KP_9), T(KP_7), T(KP_ENTER), END + ); +case UC_SUPERSCRIPT_EIGHT: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_0), T(KP_7), T(KP_8), T(KP_ENTER), END + ); +case UC_SUPERSCRIPT_ZERO: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_0), T(KP_7), T(KP_0), T(KP_ENTER), END + ); case UC_NOT_AN_ELEMENT_OF: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_2), T(KP_0), T(KP_9), T(KP_ENTER), END - ); -case UC_SUB_ONE: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_0), T(KP_8), T(KP_1), T(KP_ENTER), END - ); -case UC_SUB_TWO: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_0), T(KP_8), T(KP_2), T(KP_ENTER), END - ); -case UC_SUB_THREE: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_0), T(KP_8), T(KP_3), T(KP_ENTER), END - ); -case UC_SUB_FOUR: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_0), T(KP_8), T(KP_4), T(KP_ENTER), END - ); -case UC_SUB_FIVE: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_0), T(KP_8), T(KP_5), T(KP_ENTER), END - ); -case UC_SUB_SIX: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_0), T(KP_8), T(KP_6), T(KP_ENTER), END - ); -case UC_SUB_SEVEN: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_0), T(KP_8), T(KP_7), T(KP_ENTER), END - ); -case UC_SUB_EIGHT: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_0), T(KP_8), T(KP_8), T(KP_ENTER), END - ); -case UC_SUB_NINE: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_0), T(KP_8), T(KP_9), T(KP_ENTER), END - ); -case UC_SUB_ZERO: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_0), T(KP_8), T(KP_0), T(KP_ENTER), END - ); -case UC_GR_LC_CHI: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(C), T(KP_7), T(KP_ENTER), END - ); -case UC_GR_LC_PI: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(C), T(KP_0), T(KP_ENTER), END - ); -case UC_GR_LC_PHI: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(C), T(KP_6), T(KP_ENTER), END - ); -case UC_GR_LC_OMEGA: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(C), T(KP_9), T(KP_ENTER), END - ); -case UC_GR_LC_GAMMA: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(B), T(KP_3), T(KP_ENTER), END - ); -case UC_GR_LC_ETA: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(B), T(KP_7), T(KP_ENTER), END - ); -case UC_GR_LC_XI: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(B), T(E), T(KP_ENTER), END - ); -case UC_GR_LC_KAPPA: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(B), T(A), T(KP_ENTER), END - ); -case UC_GR_LC_LAMDA: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(B), T(B), T(KP_ENTER), END - ); -case UC_GR_LC_ZETA: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(B), T(KP_6), T(KP_ENTER), END - ); -case UC_GR_LC_UPSILON: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(C), T(KP_5), T(KP_ENTER), END - ); -case UC_GR_LC_IOTA: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(B), T(KP_9), T(KP_ENTER), END - ); -case UC_GR_LC_ALPHA: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(B), T(KP_1), T(KP_ENTER), END - ); -case UC_GR_LC_EPSILON: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(B), T(KP_5), T(KP_ENTER), END - ); -case UC_GR_LC_OMICRON: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(B), T(F), T(KP_ENTER), END - ); -case UC_GR_LC_SIGMA: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(C), T(KP_3), T(KP_ENTER), END - ); -case UC_GR_LC_NU: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(B), T(D), T(KP_ENTER), END - ); -case UC_GR_LC_RHO: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(C), T(KP_1), T(KP_ENTER), END - ); -case UC_GR_LC_TAU: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(C), T(KP_4), T(KP_ENTER), END - ); -case UC_GR_LC_DELTA: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(B), T(KP_4), T(KP_ENTER), END - ); -case UC_GR_LC_FINAL_SIGMA: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(C), T(KP_2), T(KP_ENTER), END - ); -case UC_GR_LC_THETA: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(B), T(KP_8), T(KP_ENTER), END - ); -case UC_GR_LC_BETA: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(B), T(KP_2), T(KP_ENTER), END - ); -case UC_GR_LC_MU: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(B), T(C), T(KP_ENTER), END - ); -case UC_GR_LC_PSI: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(C), T(KP_8), T(KP_ENTER), END - ); -case UC_GR_UC_CHI: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(A), T(KP_7), T(KP_ENTER), END - ); -case UC_GR_UC_PI: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(A), T(KP_0), T(KP_ENTER), END - ); -case UC_GR_UC_PHI: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(A), T(KP_6), T(KP_ENTER), END - ); -case UC_GR_UC_OMEGA: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(A), T(KP_9), T(KP_ENTER), END - ); -case UC_GR_UC_GAMMA: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(KP_9), T(KP_3), T(KP_ENTER), END - ); -case UC_GR_UC_ETA: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(KP_9), T(KP_7), T(KP_ENTER), END - ); -case UC_GR_UC_XI: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(KP_9), T(E), T(KP_ENTER), END - ); -case UC_GR_UC_KAPPA: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(KP_9), T(A), T(KP_ENTER), END - ); -case UC_GR_UC_LAMDA: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(KP_9), T(B), T(KP_ENTER), END - ); -case UC_GR_UC_ZETA: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(KP_9), T(KP_6), T(KP_ENTER), END - ); -case UC_GR_UC_UPSILON: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(A), T(KP_5), T(KP_ENTER), END - ); -case UC_GR_UC_IOTA: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(KP_9), T(KP_9), T(KP_ENTER), END - ); -case UC_GR_UC_ALPHA: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(KP_9), T(KP_1), T(KP_ENTER), END - ); -case UC_GR_UC_EPSILON: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(KP_9), T(KP_5), T(KP_ENTER), END - ); -case UC_GR_UC_OMICRON: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(KP_9), T(F), T(KP_ENTER), END - ); -case UC_GR_UC_SIGMA: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(A), T(KP_3), T(KP_ENTER), END - ); -case UC_GR_UC_NU: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(KP_9), T(D), T(KP_ENTER), END - ); -case UC_GR_UC_RHO: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(A), T(KP_1), T(KP_ENTER), END - ); -case UC_GR_UC_TAU: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(A), T(KP_4), T(KP_ENTER), END - ); -case UC_GR_UC_DELTA: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(KP_9), T(KP_4), T(KP_ENTER), END - ); -case UC_GR_UC_THETA: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(KP_9), T(KP_8), T(KP_ENTER), END - ); -case UC_GR_UC_BETA: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(KP_9), T(KP_2), T(KP_ENTER), END - ); -case UC_GR_UC_MU: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(KP_9), T(C), T(KP_ENTER), END - ); -case UC_GR_UC_PSI: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(A), T(KP_8), T(KP_ENTER), END - ); - default: - break; - } - } + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_2), T(KP_0), T(KP_9), T(KP_ENTER), END + ); +case UC_GREEK_SMALL_LETTER_UPSILON: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(C), T(KP_5), T(KP_ENTER), END + ); +case UC_NOT_EQUAL_TO: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_2), T(KP_6), T(KP_0), T(KP_ENTER), END + ); +case UC_GREEK_CAPITAL_LETTER_CHI: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(A), T(KP_7), T(KP_ENTER), END + ); +case UC_FOR_ALL: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_2), T(KP_0), T(KP_0), T(KP_ENTER), END + ); +case UC_GREEK_CAPITAL_LETTER_TAU: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(A), T(KP_4), T(KP_ENTER), END + ); +case UC_VULGAR_FRACTION_ONE_QUARTER: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_0), T(B), T(C), T(KP_ENTER), END + ); +case UC_GREEK_SMALL_LETTER_CHI: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(C), T(KP_7), T(KP_ENTER), END + ); +case UC_GREEK_CAPITAL_LETTER_THETA: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(KP_9), T(KP_8), T(KP_ENTER), END + ); +case UC_GREEK_SMALL_LETTER_IOTA: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(B), T(KP_9), T(KP_ENTER), END + ); +case UC_GREEK_CAPITAL_LETTER_LAMDA: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(KP_9), T(B), T(KP_ENTER), END + ); +case UC_SUPERSCRIPT_LATIN_SMALL_LETTER_N: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_0), T(KP_7), T(F), T(KP_ENTER), END + ); +case UC_GREEK_CAPITAL_LETTER_UPSILON: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(A), T(KP_5), T(KP_ENTER), END + ); +case UC_GREEK_CAPITAL_LETTER_MU: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(KP_9), T(C), T(KP_ENTER), END + ); +case UC_GREEK_CAPITAL_LETTER_EPSILON: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(KP_9), T(KP_5), T(KP_ENTER), END + ); +case UC_GREEK_CAPITAL_LETTER_GAMMA: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(KP_9), T(KP_3), T(KP_ENTER), END + ); +case UC_SUBSCRIPT_SIX: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_0), T(KP_8), T(KP_6), T(KP_ENTER), END + ); +case UC_GREEK_CAPITAL_LETTER_DELTA: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(KP_9), T(KP_4), T(KP_ENTER), END + ); +case UC_VULGAR_FRACTION_ONE_HALF: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_0), T(B), T(D), T(KP_ENTER), END + ); + default: + break; + } + } return MACRO_NONE; }; // Runs just one time when the keyboard initializes. -void * matrix_init_user(void) { +void matrix_init_user(void) { }; // Runs constantly in the background, in a loop. -void * matrix_scan_user(void) { +void matrix_scan_user(void) { uint8_t layer = biton32(layer_state); ergodox_board_led_off(); diff --git a/keyboard/ergodox_ez/keymaps/german-manuneo/keymap.md b/keyboard/ergodox_ez/keymaps/german-manuneo/keymap.md index 9c0c12528b..1dc019ab05 100644 --- a/keyboard/ergodox_ez/keymaps/german-manuneo/keymap.md +++ b/keyboard/ergodox_ez/keymaps/german-manuneo/keymap.md @@ -1,8 +1,14 @@ # ManuNeo Ergodox Keyboard Layout +Compile this file to a `keymap.c` file using `compile_keymap.py` + + compile_keymap.py keymaps/german-manuneo/keymap.md + + # Layout Config { + "layout": "ergodox_ez", "includes_dir": "quantum/", "keymaps_includes": [ "ergodox_ez.h", @@ -10,22 +16,14 @@ "keymap_common.h", "keymap_extras/keymap_german.h", ], - "keymap_indexes": [ - [ 0, 1, 2, 3, 4, 5, 6], [38, 39, 40, 41, 42, 43, 44], - [ 7, 8, 9, 10, 11, 12, 13], [45, 46, 47, 48, 49, 50, 51], - [14, 15, 16, 17, 18, 19 ], [ 52, 53, 54, 55, 56, 57], - [20, 21, 22, 23, 24, 25, 26], [58, 59, 60, 61, 62, 63, 64], - [27, 28, 29, 30, 31 ], [ 65, 66, 67, 68, 69], - [ 32, 33], [70, 71 ], - [ 34], [72 ], - [ 35, 36, 37], [73, 74, 75 ], - ], "key_prefixes": ["DE_", "KC_"], "filler": "-+.'!x", "separator": "|", "macros": { - "MUC": "", + // TODO: implement macros + // "MUC": "", }, + // TODO: implement default unicode mode } @@ -34,189 +32,201 @@ ## Layer 0 - .-------------------------------------. .-------------------------------------. - |MO(5)| 1 | 2 | 3 | 4 | 5 | ACUT | ! GRV | 6 | 7 | 8 | 9 | 0 |CIRC | - !-----+----+----+----+----+-----------! !------+----+----+----+----+----+-----! - |MO(4)| X | P | F | W | G | HOME | !TG(2) | H | J | K | L | Q | Z | - !-----+----+----+----x----x----! ! ! !----x----x----+----+----+-----! - |MO(1)| U | I | A | E | O |------! !------! S | N | R | T | D | SS | - !-----+----+----+----x----x----! ! ! !----x----x----+----+----+-----! - |MO(3)| UE | OE | AE | C | V | END | ! TAB | B | M |COMM| DOT| UP | Y | - '-----+----+----+----+----+-----------' '-----------+----+----+----+----+-----' - | | |LGUI|LALT|LCTL| !LALT| |LEFT|DOWN|RGHT| - '------------------------'.-------------. .-------------.'------------------------' - | INS |TG(2) | !M(UMS)| DELT | - .------+------+------! !------+------+------. - ! ! | APP | ! PGUP | ! ! - ! ! !------! !------! ! ! - | BSPC | LSFT | ESC | ! PGDN |ENTER |SPACE | - '--------------------' '--------------------' + .------------------------------------.------------------------------------. + |MO(5)| 1 | 2 | 3 | 4 | 5 |ACUT | GRV | 6 | 7 | 8 | 9 | 0 |CIRC | + !-----+----+----+----+----+----------!-----+----+----+----+----+----+-----! + |MO(4)| X | P | F | W | G |HOME |TG(2)| H | J | K | L | Q | Z | + !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + |MO(1)| U | I | A | E | O |-----!-----! S | N | R | T | D | SS | + !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + |MO(3)| UE | OE | AE | C | V |END | TAB | B | M |COMM| DOT| UP | Y | + '-----+----+----+----+----+----------'----------+----+----+----+----+-----' + | | |LGUI|LALT|LCTL| !LALT| |LEFT|DOWN|RGHT| + '------------------------' '------------------------' + .-----------. .-----------. + |INS |TG(2)| !M(UM)|DELT | + .-----+-----+-----! !-----+-----+-----. + ! ! | APP | ! PGUP| ! ! + ! ! !-----! !-----! ! ! + |BSPC |LSFT | ESC | ! PGDN|ENTER|SPACE| + '-----------------' '-----------------' ## Layer 1 - .-------------------------------------. .-------------------------------------. - | |EXLM|DQOT|PARA| | | | ! | | | | |RING| | - !-----+----+----+----+----+-----------! !------+----+----+----+----+----+-----! - | |ASTR|PIPE|SLSH|LCBR|RCBR| | ! |HASH|LESS|MORE| |DQOT| | - !-----+----+----+----x----x----! ! ! !----x----x----+----+----+-----! - | |UNDS|MINS|AMPR|LBRC|RBRC|------! !------!DLR |LPRN|RPRN|TILD|QUOT|QST | - !-----+----+----+----x----x----! ! ! !----x----x----+----+----+-----! - | | |PLUS| EQL| | | | ! |BSLS|PERC|SCLN|COLN| ↑ | | - '-----+----+----+----+----+-----------' '-----------+----+----+----+----+-----' - | | | | | | ! | | ← | ↓ | → | - '------------------------'.-------------. .-------------.'------------------------' - | | | ! | | - .------+------+------! !------+------+------. - ! ! | | ! | ! ! - ! ! !------! !------! ! ! - | | | | ! | | | - '--------------------' '--------------------' + .------------------------------------.------------------------------------. + | |EXLM|DQOT|PARA| | | | | | | | |RING| | + !-----+----+----+----+----+----------!-----+----+----+----+----+----+-----! + | |ASTR|PIPE|SLSH|LCBR|RCBR| | |HASH|LESS|MORE| |DQOT| | + !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + | |UNDS|MINS|AMPR|LBRC|RBRC|-----!-----!DLR |LPRN|RPRN|TILD|QUOT| QST | + !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + | | |PLUS|EQL | | | | |BSLS|PERC|SCLN|COLN| ↑ | | + '-----+----+----+----+----+----------'----------+----+----+----+----+-----' + | | | | | | ! | | ← | ↓ | → | + '------------------------' '------------------------' + .-----------. .-----------. + | | | ! | | + .-----+-----+-----! !-----+-----+-----. + ! ! | | ! | ! ! + ! ! !-----! !-----! ! ! + | | | | ! | | | + '-----------------' '-----------------' ## Layer 2 - .-------------------------------------. .-------------------------------------. - | | F1 | F2 | F3 | F4 | F5 | F11 | ! F12 | F6 | F7 | F8 | F9 |F10 |PEQL | - !-----+----+----+----+----+-----------! !------+----+----+----+----+----+-----! - | | | | | | | | ! | | P7 | P8 | P9 |PAST|PSLS | - !-----+----+----+----x----x----! ! ! !----x----x----+----+----+-----! - | | | | | | |------! !------! | P4 | P5 | P6 |PMNS|PMNS | - !-----+----+----+----x----x----! ! ! !----x----x----+----+----+-----! - | | | | | | | | ! NLCK | | P1 | P2 | P3 |PPLS|PPLS | - '-----+----+----+----+----+-----------' '-----------+----+----+----+----+-----' - | | | | | | ! P0 |PCMM|PDOT|PENT|PENT| - '------------------------'.-------------. .-------------.'------------------------' - | | | ! | | - .------+------+------! !------+------+------. - ! ! | | ! | ! ! - ! ! !------! !------! ! ! - | | | | ! | | | - '--------------------' '--------------------' + .------------------------------------.------------------------------------. + | | F1 | F2 | F3 | F4 | F5 | F11 | F12 | F6 | F7 | F8 | F9 |F10 |PEQL | + !-----+----+----+----+----+----------!-----+----+----+----+----+----+-----! + | | | | | | | | | | P7 | P8 | P9 |PAST|PSLS | + !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + | | | | | | |-----!-----! | P4 | P5 | P6 |PMNS|PMNS | + !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + | | | | | | | | NLCK| | P1 | P2 | P3 |PPLS|PPLS | + '-----+----+----+----+----+----------'----------+----+----+----+----+-----' + | | | | | | ! P0 |PCMM|PDOT|PENT|PENT| + '------------------------' '------------------------' + .-----------. .-----------. + | | | ! | | + .-----+-----+-----! !-----+-----+-----. + ! ! | | ! | ! ! + ! ! !-----! !-----! ! ! + | | | | ! | | | + '-----------------' '-----------------' + ## Layer 3 http://symbolcodes.tlt.psu.edu/bylanguage/mathchart.html - .-------------------------------------. .-------------------------------------. - | | ¹ | ² | ³ | ⁴ | ⁵ | ∀ | ! | ⁶ | ⁷ | ⁸ | ⁹ | ⁰ | | - !-----+----+----+----+----+-----------! !------+----+----+----+----+----+-----! - | | × | ½ | ÷ | ¼ | ⅕ | | ! | ⅙ | | ⅛ | | | | - !-----+----+----+----x----x----! ! ! !----x----x----+----+----+-----! - | | | ± | AT |EURO| ∅ |------! !------! ∞ | ⁿ | ∃ | ∈ | | | - !-----+----+----+----x----x----! ! ! !----x----x----+----+----+-----! - | | ⅓ | ≠ | ⅔ | ¾ | ≃ | | ! |EXLM| | ∄ | ∉ | | | - '-----+----+----+----+----+-----------' '-----------+----+----+----+----+-----' - | | | | | | ! | | | | | - '------------------------'.-------------. .-------------.'------------------------' - | | | ! | | - .------+------+------! !------+------+------. - ! ! | | ! | ! ! - ! ! !------! !------! ! ! - | | | | ! | | | - '--------------------' '--------------------' + .------------------------------------.------------------------------------. + | | ¹ | ² | ³ | ⁴ | ⁵ | ∀ | | ⁶ | ⁷ | ⁸ | ⁹ | ⁰ | | + !-----+----+----+----+----+----------!-----+----+----+----+----+----+-----! + | | × | ½ | ÷ | ¼ | ⅕ | | | ⅙ | | ⅛ | | | | + !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + | | | ± | AT |EURO| ∅ |-----!-----! ∞ | ⁿ | ∃ | ∈ | | | + !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + | | ⅓ | ≠ | ⅔ | ¾ | ≃ | | |EXLM| | ∄ | ∉ | | | + '-----+----+----+----+----+----------'----------+----+----+----+----+-----' + | | | | | | ! | | | | | + '------------------------' '------------------------' + .-----------. .-----------. + | | | ! | | + .-----+-----+-----! !-----+-----+-----. + ! ! | | ! | ! ! + ! ! !-----! !-----! ! ! + | | | | ! | | | + '-----------------' '-----------------' ## Layer 4 - .-------------------------------------. .-------------------------------------. - | | ₁ | ₂ | ₃ | ₄ | ₅ | | ! | ₆ | ₇ | ₈ | ₉ | ₀ | | - !-----+----+----+----+----+-----------! !------+----+----+----+----+----+-----! - | | χ | π | φ | ω | γ | | ! | η | ξ | κ | λ | | ζ | - !-----+----+----+----x----x----! ! ! !----x----x----+----+----+-----! - | | υ | ι | α | ε | ο |------! !------! σ | ν | ρ | τ | δ | ς | - !-----+----+----+----x----x----! ! ! !----x----x----+----+----+-----! - | | | θ | | | | | ! | β | μ | | | | ψ | - '-----+----+----+----+----+-----------' '-----------+----+----+----+----+-----' - | | | | | | ! | | | | | - '------------------------'.-------------. .-------------.'------------------------' - | | | ! | | - .------+------+------! !------+------+------. - ! ! | | ! | ! ! - ! ! !------! !------! ! ! - | | | | ! | | | - '--------------------' '--------------------' + + .------------------------------------.------------------------------------. + | | ₁ | ₂ | ₃ | ₄ | ₅ | | | ₆ | ₇ | ₈ | ₉ | ₀ | | + !-----+----+----+----+----+----------!-----+----+----+----+----+----+-----! + | | χ | π | φ | ω | γ | | | η | ξ | κ | λ | | ζ | + !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + | | υ | ι | α | ε | ο |-----!-----! σ | ν | ρ | τ | δ | ς | + !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + | | | θ | | | | | | β | μ | | | | ψ | + '-----+----+----+----+----+----------'----------+----+----+----+----+-----' + | | | | | | ! | | | | | + '------------------------' '------------------------' + .-----------. .-----------. + | | | ! | | + .-----+-----+-----! !-----+-----+-----. + ! ! | | ! | ! ! + ! ! !-----! !-----! ! ! + | | | | ! | | | + '-----------------' '-----------------' ## Layer 5 - .-------------------------------------. .-------------------------------------. - | | | | | | | | ! | | | | | | | - !-----+----+----+----+----+-----------! !------+----+----+----+----+----+-----! - | | Χ | Π | Φ | Ω | Γ | | ! | Η | Ξ | Κ | Λ | | Ζ | - !-----+----+----+----x----x----! ! ! !----x----x----+----+----+-----! - | | Υ | Ι | Α | Ε | Ο |------! !------! Σ | Ν | Ρ | Τ | Δ | | - !-----+----+----+----x----x----! ! ! !----x----x----+----+----+-----! - | | | Θ | | | | | ! | Β | Μ | | | | Ψ | - '-----+----+----+----+----+-----------' '-----------+----+----+----+----+-----' - | | | | | | ! | | | | | - '------------------------'.-------------. .-------------.'------------------------' - | | | ! | | - .------+------+------! !------+------+------. - ! ! | | ! | ! ! - ! ! !------! !------! ! ! - | | | | ! | | | - '--------------------' '--------------------' + .------------------------------------.------------------------------------. + | | | | | | | | | | | | | | | + !-----+----+----+----+----+----------!-----+----+----+----+----+----+-----! + | | Χ | Π | Φ | Ω | Γ | | | Η | Ξ | Κ | Λ | | Ζ | + !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + | | Υ | Ι | Α | Ε | Ο |-----!-----! Σ | Ν | Ρ | Τ | Δ | | + !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + | | | Θ | | | | | | Β | Μ | | | | Ψ | + '-----+----+----+----+----+----------'----------+----+----+----+----+-----' + | | | | | | ! | | | | | + '------------------------' '------------------------' + .-----------. .-----------. + | | | ! | | + .-----+-----+-----! !-----+-----+-----. + ! ! | | ! | ! ! + ! ! !-----! !-----! ! ! + | | | | ! | | | + '-----------------' '-----------------' ## Layer 6 - .-------------------------------------. .-------------------------------------. - | | | | | | | | ! | | | | | | | - !-----+----+----+----+----+-----------! !------+----+----+----+----+----+-----! - | | | | | | | | ! | | | | | | | - !-----+----+----+----x----x----! ! ! !----x----x----+----+----+-----! - | | | | | | |------! !------! | | | | | | - !-----+----+----+----x----x----! ! ! !----x----x----+----+----+-----! - | | | | | | | | ! | | | | | | | - '-----+----+----+----+----+-----------' '-----------+----+----+----+----+-----' - | | | | | | ! | | | | | - '------------------------'.-------------. .-------------.'------------------------' - | | | ! | | - .------+------+------! !------+------+------. - ! ! | | ! | ! ! - ! ! !------! !------! ! ! - | | | | ! | | | - '--------------------' '--------------------' + .------------------------------------.------------------------------------. + | | | | | | | | | | | | | | | + !-----+----+----+----+----+----------!-----+----+----+----+----+----+-----! + | | | | | | | | | | | | | | | + !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + | | | | | | |-----!-----! | | | | | | + !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + | | | | | | | | | | | | | | | + '-----+----+----+----+----+----------'----------+----+----+----+----+-----' + | | | | | | ! | | | | | + '------------------------' '------------------------' + .-----------. .-----------. + | | | ! | | + .-----+-----+-----! !-----+-----+-----. + ! ! | | ! | ! ! + ! ! !-----! !-----! ! ! + | | | | ! | | | + '-----------------' '-----------------' + ## Layer 7 - .-------------------------------------. .-------------------------------------. - | | | | | | | | ! | | | | | | | - !-----+----+----+----+----+-----------! !------+----+----+----+----+----+-----! - | | | | | | | | ! | | | | | | | - !-----+----+----+----x----x----! ! ! !----x----x----+----+----+-----! - | | | | | | |------! !------! | | | | | | - !-----+----+----+----x----x----! ! ! !----x----x----+----+----+-----! - | | | | | | | | ! | | | | | | | - '-----+----+----+----+----+-----------' '-----------+----+----+----+----+-----' - | | | | | | ! | | | | | - '------------------------'.-------------. .-------------.'------------------------' - | | | ! | | - .------+------+------! !------+------+------. - ! ! | | ! | ! ! - ! ! !------! !------! ! ! - | | | | ! | | | - '--------------------' '--------------------' + .------------------------------------.------------------------------------. + | | | | | | | | | | | | | | | + !-----+----+----+----+----+----------!-----+----+----+----+----+----+-----! + | | | | | | | | | | | | | | | + !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + | | | | | | |-----!-----! | | | | | | + !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + | | | | | | | | | | | | | | | + '-----+----+----+----+----+----------'----------+----+----+----+----+-----' + | | | | | | ! | | | | | + '------------------------' '------------------------' + .-----------. .-----------. + | | | ! | | + .-----+-----+-----! !-----+-----+-----. + ! ! | | ! | ! ! + ! ! !-----! !-----! ! ! + | | | | ! | | | + '-----------------' '-----------------' ## Layer 8 - .-------------------------------------. .-------------------------------------. - | | | | | | | | ! | | | | | | | - !-----+----+----+----+----+-----------! !------+----+----+----+----+----+-----! - | | | | | | | | ! | | | | | | | - !-----+----+----+----x----x----! ! ! !----x----x----+----+----+-----! - | | | | | | |------! !------! | | | | | | - !-----+----+----+----x----x----! ! ! !----x----x----+----+----+-----! - | | | | | | | | ! | | | | | | | - '-----+----+----+----+----+-----------' '-----------+----+----+----+----+-----' - | | | | | | ! | | | | | - '------------------------'.-------------. .-------------.'------------------------' - | | | ! | | - .------+------+------! !------+------+------. - ! ! | | ! | ! ! - ! ! !------! !------! ! ! - | | | | ! | | | - '--------------------' '--------------------' + .------------------------------------.------------------------------------. + | | | | | | | | | | | | | | | + !-----+----+----+----+----+----------!-----+----+----+----+----+----+-----! + | | | | | | | | | | | | | | | + !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + | | | | | | |-----!-----! | | | | | | + !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + | | | | | | | | | | | | | | | + '-----+----+----+----+----+----------'----------+----+----+----+----+-----' + | | | | | | ! | | | | | + '------------------------' '------------------------' + .-----------. .-----------. + | | | ! | | + .-----+-----+-----! !-----+-----+-----. + ! ! | | ! | ! ! + ! ! !-----! !-----! ! ! + | | | | ! | | | + '-----------------' '-----------------' From a2d3c0bd93bf97264bb94510c126d4fd21b7b135 Mon Sep 17 00:00:00 2001 From: Manuel Barkhau Date: Mon, 28 Mar 2016 23:42:55 +0200 Subject: [PATCH 19/45] add hex file --- .../keymaps/german-manuneo/german-manuneo.hex | Bin 0 -> 73024 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 keyboard/ergodox_ez/keymaps/german-manuneo/german-manuneo.hex diff --git a/keyboard/ergodox_ez/keymaps/german-manuneo/german-manuneo.hex b/keyboard/ergodox_ez/keymaps/german-manuneo/german-manuneo.hex new file mode 100644 index 0000000000000000000000000000000000000000..cb8b7fa8d4c84f892194da543aab7cbdb0dee60c GIT binary patch literal 73024 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

    A3n*N%w!9N=Y($G8_sd_KSy*eCh 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 Date: Mon, 28 Mar 2016 19:45:20 -0500 Subject: [PATCH 20/45] Minor Tweaks and Documentation Fixed compiler warning by including bootloader.h in keymap_common.c. Changed FORCE_NKRO to only be applied if NKRO_ENABLE is defined. Added extra documentation to the template config.h --- quantum/keymap_common.c | 1 + quantum/template/config.h | 53 ++++++++++++++++++++++++++++++-------- tmk_core/common/keyboard.c | 2 +- 3 files changed, 44 insertions(+), 12 deletions(-) diff --git a/quantum/keymap_common.c b/quantum/keymap_common.c index 7068ca4f31..2eef4f15a7 100644 --- a/quantum/keymap_common.c +++ b/quantum/keymap_common.c @@ -25,6 +25,7 @@ along with this program. If not, see . #include "debug.h" #include "backlight.h" #include "keymap_midi.h" +#include "bootloader.h" #include #include diff --git a/quantum/template/config.h b/quantum/template/config.h index dae4b63130..e6fb7866c6 100644 --- a/quantum/template/config.h +++ b/quantum/template/config.h @@ -32,36 +32,67 @@ along with this program. If not, see . #define MATRIX_ROWS 2 #define MATRIX_COLS 3 -// Planck PCB default pin-out -// Change this to how you wired your keyboard -// COLS: Left to right, ROWS: Top to bottom +/* + * Keyboard Matrix Assignments + * + * Change this to how you wired your keyboard + * COLS: AVR pins used for columns, left to right + * ROWS: AVR pins used for rows, top to bottom + * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) + * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) + * +*/ #define COLS (int []){ F1, F0, B0 } #define ROWS (int []){ D0, D5 } /* COL2ROW or ROW2COL */ #define DIODE_DIRECTION COL2ROW -/* define if matrix has ghost */ +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 + +/* define if matrix has ghost (lacks anti-ghosting diodes) */ //#define MATRIX_HAS_GHOST /* number of backlight levels */ #define BACKLIGHT_LEVELS 3 -/* Set 0 if debouncing isn't needed */ -#define DEBOUNCE 5 - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE -/* Force NKRO Mode - If forced on, must be disabled via magic key (default = LShift+RShift+N) */ +/* + * Force NKRO + * + * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved + * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the + * makefile for this to work.) + * + * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N) + * until the next keyboard reset. + * + * NKRO may prevent your keystrokes from being detected in the BIOS, but it is + * fully operational during normal computer usage. + * + * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N) + * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by + * bootmagic, NKRO mode will always be enabled until it is toggled again during a + * power-up. + * + */ //#define FORCE_NKRO /* - * Magic key options - * These options allow the magic key functionality to be changed. This is useful - * if your keyboard/keypad is missing keys and you want magic key support. + * Magic Key Options + * + * Magic keys are hotkey commands that allow control over firmware functions of + * the keyboard. They are best used in combination with the HID Listen program, + * found here: https://www.pjrc.com/teensy/hid_listen.html + * + * The options below allow the magic key functionality to be changed. This is + * useful if your keyboard/keypad is missing keys and you want magic key support. + * */ /* key combination for magic key command */ diff --git a/tmk_core/common/keyboard.c b/tmk_core/common/keyboard.c index e668084858..302b3ec87c 100644 --- a/tmk_core/common/keyboard.c +++ b/tmk_core/common/keyboard.c @@ -92,7 +92,7 @@ void keyboard_init(void) backlight_init(); #endif -#ifdef FORCE_NKRO +#if defined(NKRO_ENABLE) && defined(FORCE_NKRO) keyboard_nkro = true; #endif From 60570f3e37c27e7583ccab862bbd88f8f38f1d8c Mon Sep 17 00:00:00 2001 From: Noah Andrews Date: Mon, 28 Mar 2016 22:02:52 -0400 Subject: [PATCH 21/45] Added clarifying steps to Windows section of build guide --- BUILD_GUIDE.md | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/BUILD_GUIDE.md b/BUILD_GUIDE.md index e8b242e4e3..22df53c30d 100644 --- a/BUILD_GUIDE.md +++ b/BUILD_GUIDE.md @@ -3,11 +3,13 @@ ## Build Environment Setup ### Windows -1. Install [MHV AVR Tools](https://infernoembedded.com/sites/default/files/project/MHV_AVR_Tools_20131101.exe). Disable smatch, but **be sure to leave the option to add the tools to the PATH checked**. -2. Install [MinGW](https://sourceforge.net/projects/mingw/files/Installer/mingw-get-setup.exe/download). During installation, uncheck the option to install a graphical user interface. **DO NOT change the default installation folder.** The scripts depend on the default location. -3. Clone this repository. [This link will download it as a zip file, which you'll need to extract.](https://github.com/jackhumbert/qmk_firmware/archive/master.zip) Open the extracted folder in Windows Explorer. -4. Right-click on the 1-setup-path-win batch script, select "Run as administrator", and accept the User Account Control prompt. Press the spacebar to dismiss the success message in the command prompt that pops up. -5. Right-click on the 2-setup-environment-win batch script, select "Run as administrator", and accept the User Account Control prompt. This part may take a couple of minutes, and you'll need to approve a driver installation, but once it finishes, your environment is complete! +1. If you have ever installed WinAVR, uninstall it. +2. Install [MHV AVR Tools](https://infernoembedded.com/sites/default/files/project/MHV_AVR_Tools_20131101.exe). Disable smatch, but **be sure to leave the option to add the tools to the PATH checked**. +3. Install [MinGW](https://sourceforge.net/projects/mingw/files/Installer/mingw-get-setup.exe/download). During installation, uncheck the option to install a graphical user interface. **DO NOT change the default installation folder.** The scripts depend on the default location. +4. Clone this repository. [This link will download it as a zip file, which you'll need to extract.](https://github.com/jackhumbert/qmk_firmware/archive/master.zip) Open the extracted folder in Windows Explorer. +5. Right-click on the 1-setup-path-win batch script, select "Run as administrator", and accept the User Account Control prompt. Press the spacebar to dismiss the success message in the command prompt that pops up. +6. Right-click on the 2-setup-environment-win batch script, select "Run as administrator", and accept the User Account Control prompt. This part may take a couple of minutes, and you'll need to approve a driver installation, but once it finishes, your environment is complete! +7. Future build commands should be run from the standard Windows command prompt, which you can find by searching for "command prompt" from the start menu or start screen. Ignore the "MHV AVR Shell". ### Mac If you're using [homebrew,](http://brew.sh/) you can use the following commands: From ac22d1c185fe3caf3581650390309aa8232e55bb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stephan=20Bo=CC=88sebeck?= Date: Tue, 29 Mar 2016 13:02:14 +0200 Subject: [PATCH 22/45] added CTL_Shift / Hash macro --- keyboard/ergodox_ez/keymaps/osx_de/keymap.c | 35 ++++++++++++++------- 1 file changed, 24 insertions(+), 11 deletions(-) diff --git a/keyboard/ergodox_ez/keymaps/osx_de/keymap.c b/keyboard/ergodox_ez/keymaps/osx_de/keymap.c index 0349c749bb..df8d996508 100644 --- a/keyboard/ergodox_ez/keymaps/osx_de/keymap.c +++ b/keyboard/ergodox_ez/keymaps/osx_de/keymap.c @@ -16,6 +16,7 @@ #define M_DE_PLUS_CTRLALT 12 #define M_DE_CIRC_CTRLCMD 13 #define M_TOGGLE_5 14 +#define M_CTL_SFT_HASH 15 #define SM_SMILE 4 #define SM_SMIRK 5 @@ -30,15 +31,15 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Keymap 0: Basic layer * - * ,--------------------------------------------------. ,--------------------------------------------------. - * | ESC | 1 | 2 | 3 | 4 | 5 |CTL_SFT| | # | 6 | 7 | 8 | 9 | 0 | ß | - * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - * | TAB | Q | W | E | R | T | CMD | | CMD | Z | U | I | O | P | ü | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | LALT | A | S | D | F | G |------| |------| H | J | K | L | ö | ä/RALT| - * |--------+------+------+------+------+------| LALT | | RALT |------+------+------+------+------+--------| - * | LShift |Y/Ctrl| X | C | V | B | | | | N | M | , | . |-/Ctrl| RShift | - * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * ,-----------------------------------------------------. ,--------------------------------------------------. + * | ESC | 1 | 2 | 3 | 4 | 5 |CTL_SFT/#| |CTL_SFT/#| 6 | 7 | 8 | 9 | 0 | ß | + * |--------+------+------+------+------+----------------| |---------+------+------+------+------+------+--------| + * | TAB | Q | W | E | R | T | CMD | | CMD | Z | U | I | O | P | ü | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | LALT | A | S | D | F | G |---------| |---------| H | J | K | L | ö | ä/RALT| + * |--------+------+------+------+------+------| LALT | | RALT |------+------+------+------+------+--------| + * | LShift |Y/Ctrl| X | C | V | B | | | | N | M | , | . |-/Ctrl| RShift | + * `--------+------+------+------+------+----------------' `-------------+------+------+------+------+--------' * |event.pressed) { + start=timer_read(); + return MACRO(D(LCTRL),D(LSFT),END); + } else { + if (timer_elapsed(start) > 150){ + return MACRO(U(LCTRL),U(LSFT),END); + } else { + return MACRO(U(LCTRL),U(LSFT),T(BSLS),END); + } + } + break; case M_DE_CIRC_CTRLCMD: if (record->event.pressed) { start = timer_read(); From 2ae44470e01287c48f3852ac54a87d7fc4e747c2 Mon Sep 17 00:00:00 2001 From: Noah Andrews Date: Tue, 29 Mar 2016 12:06:32 -0400 Subject: [PATCH 23/45] Fix error in Planck makefile comment [This comment](https://www.reddit.com/r/olkb/comments/428umx/rgb_underglow/czaivbc) states that because both audio output and RGB support require the user of timer 3, they can't be enabled at the same time. That makes sense, I can see where audio.c uses timer 3. But this comment in the code states that the incompatibility is with MIDI support, which doesn't make sense based on what I see in the code. Please enlighten me if I'm mistaken. --- keyboard/planck/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/keyboard/planck/Makefile b/keyboard/planck/Makefile index 307b0c7f4f..03d2601761 100644 --- a/keyboard/planck/Makefile +++ b/keyboard/planck/Makefile @@ -143,7 +143,7 @@ BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality # AUDIO_ENABLE = YES # Audio output on port C6 # UNICODE_ENABLE = YES # Unicode # BLUETOOTH_ENABLE = yes # Enable Bluetooth with the Adafruit EZ-Key HID -# RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight. Do not enable this with MIDI at the same time. +# RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. ifdef BACKLIGHT_ENABLE SRC += backlight.c From 77fa2b0056f10c079af541a746fb12cb96fabe72 Mon Sep 17 00:00:00 2001 From: mbarkhau Date: Tue, 29 Mar 2016 18:35:47 +0200 Subject: [PATCH 24/45] Update compile_keymap.py --- .../keymaps/german-manuneo/compile_keymap.py | 24 +++++++++---------- 1 file changed, 11 insertions(+), 13 deletions(-) diff --git a/keyboard/ergodox_ez/keymaps/german-manuneo/compile_keymap.py b/keyboard/ergodox_ez/keymaps/german-manuneo/compile_keymap.py index 9767b1e074..af68672226 100644 --- a/keyboard/ergodox_ez/keymaps/german-manuneo/compile_keymap.py +++ b/keyboard/ergodox_ez/keymaps/german-manuneo/compile_keymap.py @@ -121,32 +121,30 @@ def loads(raw_data): // # start of the comment (.*) # the comment $ # until the end of line - """, re.MULTILINE | re.VERBOSE - ) - + """, re.MULTILINE | re.VERBOSE) + INLINE_COMMENT_RE = re.compile(r""" - (?:[\,\"\[\]\{\}\d]) # anythig that might end a expression + ([\,\"\[\]\{\}\d]) # anythig that might end a expression \s+ # comment must be preceded by whitespace // # start of the comment \s # and succeded by whitespace - ([^\"\]\}\{\[]*) # the comment (except things which might be json) + (?:[^\"\]\}\{\[]*) # the comment (except things which might be json) $ # until the end of line - """, re.MULTILINE | re.VERBOSE - ) - + """, re.MULTILINE | re.VERBOSE) + TRAILING_COMMA_RE = re.compile(r""" , # the comma - \s* # arbitrary whitespace (including newlines) + (?:\s*) # arbitrary whitespace + $ # only works if the trailing comma is followed by newline + (\s*) # arbitrary whitespace ([\]\}]) # end of an array or object - """, re.MULTILINE | re.VERBOSE - ) - + """, re.MULTILINE | re.VERBOSE) if isinstance(raw_data, bytes): raw_data = raw_data.decode('utf-8') raw_data = ONELINE_COMMENT_RE.sub(r"", raw_data) raw_data = INLINE_COMMENT_RE.sub(r"\1", raw_data) - raw_data = TRAILING_COMMA_RE.sub(r"\1", raw_data) + raw_data = TRAILING_COMMA_RE.sub(r"\1\2", raw_data) return json.loads(raw_data) From 8f1ea16ad5e34446bad63bf2357432f256c4298a Mon Sep 17 00:00:00 2001 From: Noah Andrews Date: Tue, 29 Mar 2016 16:35:06 -0400 Subject: [PATCH 25/45] Fix #198 --- 1-setup-path-win.bat | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/1-setup-path-win.bat b/1-setup-path-win.bat index 49fb00e149..6957dbc3f4 100644 --- a/1-setup-path-win.bat +++ b/1-setup-path-win.bat @@ -1,9 +1,14 @@ @echo off -setx /M path "%PATH%;C:\MinGW\bin;C:\MinGW\msys\1.0\bin" > nul 2>&1 + +reg add "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /f /v Path /t REG_SZ /d "%path%;C:\MinGW\bin;C:\MinGW\msys\1.0\bin" > nul +echo. + if NOT ["%errorlevel%"]==["0"] ( - echo FAILED. Rerun with administrator privileges. - pause + echo FAILED. You probably just need to run the script with administrator privileges. ) else ( echo Success! - pause + setx QMK QMK > nul ) + +echo. +pause From 95fba250ef2029ccdedb34500c5d1e96f6d065cf Mon Sep 17 00:00:00 2001 From: Noah Andrews Date: Tue, 29 Mar 2016 21:53:36 -0400 Subject: [PATCH 26/45] Updated several keyboard folders to use new keymap naming scheme --- BUILD_GUIDE.md | 5 ++++- keyboard/alps64/Makefile | 4 ++-- .../alps64/{keymap_plain.c => keymaps/default.c} | 0 keyboard/alps64/{keymap_hasu.c => keymaps/hasu.c} | 0 keyboard/atomic/Makefile | 4 ++-- keyboard/atomic/README.md | 4 ++-- .../atomic/keymaps/{keymap_abienz.c => abienz.c} | 0 .../atomic/keymaps/{keymap_default.c => default.c} | 0 .../keymaps/{keymap_michelle.c => michelle.c} | 0 keyboard/atreus/Makefile | 4 ++-- keyboard/atreus/README.md | 4 ++-- .../atreus/keymaps/{keymap_default.c => default.c} | 0 keyboard/atreus/keymaps/{keymap_gerb.c => gerb.c} | 0 keyboard/gh60/Makefile | 4 ++-- keyboard/gh60/Makefile.pjrc | 4 ++-- keyboard/gh60/README.md | 14 +++++++------- keyboard/gh60/{keymap_hasu.c => keymaps/hasu.c} | 0 keyboard/gh60/{keymap_hhkb.c => keymaps/hhkb.c} | 0 keyboard/gh60/{keymap_plain.c => keymaps/plain.c} | 0 keyboard/gh60/{keymap_poker.c => keymaps/poker.c} | 0 .../{keymap_poker_bit.c => keymaps/poker_bit.c} | 0 .../{keymap_poker_set.c => keymaps/poker_set.c} | 0 .../gh60/{keymap_spacefn.c => keymaps/spacefn.c} | 0 keyboard/hhkb/Makefile | 8 ++++---- keyboard/hhkb/Makefile.pjrc | 4 ++-- keyboard/hhkb/Makefile.rn42 | 8 ++++---- keyboard/hhkb/README.md | 2 +- keyboard/hhkb/{keymap_hasu.c => keymaps/hasu.c} | 0 keyboard/hhkb/{keymap_hhkb.c => keymaps/hhkb.c} | 0 keyboard/hhkb/{keymap_jp.c => keymaps/jp.c} | 0 .../hhkb/{keymap_spacefn.c => keymaps/spacefn.c} | 0 keyboard/hhkb_qmk/Makefile | 4 ++-- keyboard/hhkb_qmk/README.md | 4 ++-- .../keymaps/{keymap_default.c => default.c} | 0 .../hhkb_qmk/keymaps/{keymap_lxol.c => lxol.c} | 0 keyboard/jd45/Makefile | 4 ++-- .../jd45/keymaps/{keymap_default.c => default.c} | 0 .../jd45/keymaps/{keymap_justin.c => justin.c} | 0 keyboard/planck/README.md | 4 ++-- .../common_keymaps/keymap_mitch.c | 0 quantum/template/README.md | 2 +- 41 files changed, 45 insertions(+), 42 deletions(-) rename keyboard/alps64/{keymap_plain.c => keymaps/default.c} (100%) rename keyboard/alps64/{keymap_hasu.c => keymaps/hasu.c} (100%) rename keyboard/atomic/keymaps/{keymap_abienz.c => abienz.c} (100%) rename keyboard/atomic/keymaps/{keymap_default.c => default.c} (100%) rename keyboard/atomic/keymaps/{keymap_michelle.c => michelle.c} (100%) rename keyboard/atreus/keymaps/{keymap_default.c => default.c} (100%) rename keyboard/atreus/keymaps/{keymap_gerb.c => gerb.c} (100%) rename keyboard/gh60/{keymap_hasu.c => keymaps/hasu.c} (100%) rename keyboard/gh60/{keymap_hhkb.c => keymaps/hhkb.c} (100%) rename keyboard/gh60/{keymap_plain.c => keymaps/plain.c} (100%) rename keyboard/gh60/{keymap_poker.c => keymaps/poker.c} (100%) rename keyboard/gh60/{keymap_poker_bit.c => keymaps/poker_bit.c} (100%) rename keyboard/gh60/{keymap_poker_set.c => keymaps/poker_set.c} (100%) rename keyboard/gh60/{keymap_spacefn.c => keymaps/spacefn.c} (100%) rename keyboard/hhkb/{keymap_hasu.c => keymaps/hasu.c} (100%) rename keyboard/hhkb/{keymap_hhkb.c => keymaps/hhkb.c} (100%) rename keyboard/hhkb/{keymap_jp.c => keymaps/jp.c} (100%) rename keyboard/hhkb/{keymap_spacefn.c => keymaps/spacefn.c} (100%) rename keyboard/hhkb_qmk/keymaps/{keymap_default.c => default.c} (100%) rename keyboard/hhkb_qmk/keymaps/{keymap_lxol.c => lxol.c} (100%) rename keyboard/jd45/keymaps/{keymap_default.c => default.c} (100%) rename keyboard/jd45/keymaps/{keymap_justin.c => justin.c} (100%) rename keyboard/planck/{ => old_keymap_files}/common_keymaps/keymap_mitch.c (100%) diff --git a/BUILD_GUIDE.md b/BUILD_GUIDE.md index 22df53c30d..f7a57d2fc9 100644 --- a/BUILD_GUIDE.md +++ b/BUILD_GUIDE.md @@ -44,7 +44,10 @@ If you have any problems building the firmware, you can try using a tool called 4. Once you're in the correct keyboard-specific folder, run the `make` command. This should output a lot of information about the build process. ## Customizing, Building, and Deploying Your Firmware -1. Running the `make` command from your keyboard's folder will generate a .hex file based on the default keymap. All keymaps for a particular keyboard live in the `keymaps` folder in that keyboard's folder. To create your own keymap, copy `keymaps/default/keymap.c` to the `keymaps` folder, and rename it with your name, for example jack.c. Or, if you don't care about the ability to share your keymap with the community via GitHub, you can just modify the default keymap itself. Details on how to program keymap files can be found in other guides. + +Note: Some keyboard folders have non-standard organizations, and may not even support specifying alternate keymaps. Until these get reorganized, you will need to edit their default keymaps directly. + +1. Running the `make` command from your keyboard's folder will generate a .hex file based on the default keymap. All keymaps for a particular keyboard live in the `keymaps` folder in that keyboard's folder. To create your own keymap, copy `keymaps/default/keymap.c` to the `keymaps` folder, and rename it with your name, for example jack.c. Or, if you don't care about the ability to share your keymap with the community via GitHub, you can just modify the default keymap itself. Details on how to program keymap files can be found in other guides. 2. To build a keymap other than the default, type `KEYMAP=` after `make`. So if I've named my keymap jack.c, the full command would be `make KEYMAP=jack`. 3. How you deploy the firmware will depend on whether you are using a PCB or a Teensy. In both cases, you'll need to put the keyboard in bootloader mode, either by pressing a button on the PCB/Teensy or pressing the key with the `RESET` keycode. Then, if you're using a PCB, just run `make KEYMAP= dfu` to both build and deploy the firmware. If you're using a Teensy, you'll probably need to take the .hex file that make produces in the keyboard's folder, and deploy it using the [Teensy Loader.](https://www.pjrc.com/teensy/loader.html) diff --git a/keyboard/alps64/Makefile b/keyboard/alps64/Makefile index e90dcedb67..7634c4280e 100644 --- a/keyboard/alps64/Makefile +++ b/keyboard/alps64/Makefile @@ -53,9 +53,9 @@ SRC = keymap_common.c \ led.c ifdef KEYMAP - SRC := keymap_$(KEYMAP).c $(SRC) + SRC := keymaps/$(KEYMAP).c $(SRC) else - SRC := keymap_plain.c $(SRC) + SRC := keymaps/default.c $(SRC) endif CONFIG_H = config.h diff --git a/keyboard/alps64/keymap_plain.c b/keyboard/alps64/keymaps/default.c similarity index 100% rename from keyboard/alps64/keymap_plain.c rename to keyboard/alps64/keymaps/default.c diff --git a/keyboard/alps64/keymap_hasu.c b/keyboard/alps64/keymaps/hasu.c similarity index 100% rename from keyboard/alps64/keymap_hasu.c rename to keyboard/alps64/keymaps/hasu.c diff --git a/keyboard/atomic/Makefile b/keyboard/atomic/Makefile index e678b4efa8..da6d0ac60c 100644 --- a/keyboard/atomic/Makefile +++ b/keyboard/atomic/Makefile @@ -54,9 +54,9 @@ SRC = atomic.c \ backlight.c ifdef KEYMAP - SRC := keymaps/keymap_$(KEYMAP).c $(SRC) + SRC := keymaps/$(KEYMAP).c $(SRC) else - SRC := keymaps/keymap_default.c $(SRC) + SRC := keymaps/default.c $(SRC) endif CONFIG_H = config.h diff --git a/keyboard/atomic/README.md b/keyboard/atomic/README.md index c8e83cf55a..0e42370ba6 100644 --- a/keyboard/atomic/README.md +++ b/keyboard/atomic/README.md @@ -16,10 +16,10 @@ Depending on which keymap you would like to use, you will have to compile slight To build with the default keymap, simply run `make`. ### Other Keymaps -Several version of keymap are available in advance but you are recommended to define your favorite layout yourself. To define your own keymap create file named `keymap_.c` and see keymap document (you can find in top README.md) and existent keymap files. +Several version of keymap are available in advance but you are recommended to define your favorite layout yourself. To define your own keymap create a file in the keymaps folder named `.c` and see keymap document (you can find in top README.md) and existent keymap files. To build the firmware binary hex file with a keymap just do `make` with `KEYMAP` option like: ``` $ make KEYMAP=[default|jack|] ``` -Keymaps follow the format **__keymap\_\.c__** and are stored in the `keymaps` folder. +Keymaps follow the format **__\.c__** and are stored in the `keymaps` folder. diff --git a/keyboard/atomic/keymaps/keymap_abienz.c b/keyboard/atomic/keymaps/abienz.c similarity index 100% rename from keyboard/atomic/keymaps/keymap_abienz.c rename to keyboard/atomic/keymaps/abienz.c diff --git a/keyboard/atomic/keymaps/keymap_default.c b/keyboard/atomic/keymaps/default.c similarity index 100% rename from keyboard/atomic/keymaps/keymap_default.c rename to keyboard/atomic/keymaps/default.c diff --git a/keyboard/atomic/keymaps/keymap_michelle.c b/keyboard/atomic/keymaps/michelle.c similarity index 100% rename from keyboard/atomic/keymaps/keymap_michelle.c rename to keyboard/atomic/keymaps/michelle.c diff --git a/keyboard/atreus/Makefile b/keyboard/atreus/Makefile index 2e542d62ed..a6fddd70d2 100644 --- a/keyboard/atreus/Makefile +++ b/keyboard/atreus/Makefile @@ -53,9 +53,9 @@ TARGET_DIR = . SRC = atreus.c ifdef KEYMAP - SRC := keymaps/keymap_$(KEYMAP).c $(SRC) + SRC := keymaps/$(KEYMAP).c $(SRC) else - SRC := keymaps/keymap_default.c $(SRC) + SRC := keymaps/default.c $(SRC) endif ifdef TEENSY2 diff --git a/keyboard/atreus/README.md b/keyboard/atreus/README.md index 4db7ac1203..aacf2841f4 100644 --- a/keyboard/atreus/README.md +++ b/keyboard/atreus/README.md @@ -177,10 +177,10 @@ Depending on which keymap you would like to use, you will have to compile slight To build with the default keymap, simply run `make`. ### Other Keymaps -Several version of keymap are available in advance but you are recommended to define your favorite layout yourself. To define your own keymap create file named `keymap_.c` and see keymap document (you can find in top README.md) and existent keymap files. +Several version of keymap are available in advance but you are recommended to define your favorite layout yourself. To define your own keymap create file named `.c` and see keymap document (you can find in top README.md) and existent keymap files. To build the firmware binary hex file with a keymap just do `make` with `KEYMAP` option like: ``` $ make KEYMAP=[default|jack|] ``` -Keymaps follow the format **__keymap\_\.c__** and are stored in the `keymaps` folder. +Keymaps follow the format **__\.c__** and are stored in the `keymaps` folder. diff --git a/keyboard/atreus/keymaps/keymap_default.c b/keyboard/atreus/keymaps/default.c similarity index 100% rename from keyboard/atreus/keymaps/keymap_default.c rename to keyboard/atreus/keymaps/default.c diff --git a/keyboard/atreus/keymaps/keymap_gerb.c b/keyboard/atreus/keymaps/gerb.c similarity index 100% rename from keyboard/atreus/keymaps/keymap_gerb.c rename to keyboard/atreus/keymaps/gerb.c diff --git a/keyboard/gh60/Makefile b/keyboard/gh60/Makefile index daba0f6449..4c8f9dc8ab 100644 --- a/keyboard/gh60/Makefile +++ b/keyboard/gh60/Makefile @@ -53,9 +53,9 @@ SRC = keymap_common.c \ led.c ifdef KEYMAP - SRC := keymap_$(KEYMAP).c $(SRC) + SRC := keymaps/$(KEYMAP).c $(SRC) else - SRC := keymap_poker.c $(SRC) + SRC := keymaps/poker.c $(SRC) endif CONFIG_H = config.h diff --git a/keyboard/gh60/Makefile.pjrc b/keyboard/gh60/Makefile.pjrc index 11bd3b7840..8ed73a248d 100644 --- a/keyboard/gh60/Makefile.pjrc +++ b/keyboard/gh60/Makefile.pjrc @@ -53,9 +53,9 @@ SRC = keymap_common.c \ led.c ifdef KEYMAP - SRC := keymap_$(KEYMAP).c $(SRC) + SRC := keymaps/$(KEYMAP).c $(SRC) else - SRC := keymap_poker.c $(SRC) + SRC := keymaps/poker.c $(SRC) endif CONFIG_H = config.h diff --git a/keyboard/gh60/README.md b/keyboard/gh60/README.md index 510cb5c8b6..41a757ea3a 100644 --- a/keyboard/gh60/README.md +++ b/keyboard/gh60/README.md @@ -21,7 +21,7 @@ Use `make -f Makefile.pjrc` if you want to use PJRC stack but I find no reason t ## Keymap -Several version of keymap are available in advance but you are recommended to define your favorite layout yourself. To define your own keymap create file named `keymap_.c` and see keymap document(you can find in top README.md) and existent keymap files. +Several version of keymap are available in advance but you are recommended to define your favorite layout yourself. To define your own keymap create file named `.c` in the keymaps folder, and see keymap document(you can find in top README.md) and existent keymap files. To build firmware binary hex file with a certain keymap just do `make` with `KEYMAP` option like: @@ -29,8 +29,8 @@ To build firmware binary hex file with a certain keymap just do `make` with `KEY ### 1 Poker -[keymap_poker.c](keymap_poker.c) emulates original Poker layers -while both [keymap_poker_bit.c](keymap_poker_bit.c) and [keymap_poker_set.c](keymap_poker_set.c) implements same layout in different way and they fix a minor issue of original Poker and enhance arrow keys. +[poker.c](keymaps/poker.c) emulates original Poker layers +while both [poker_bit.c](keymaps/poker_bit.c) and [poker_set.c](keymaps/poker_set.c) implement the same layout in different ways and they fix a minor issue of original Poker and enhance arrow keys. Fn + Esc = ` Fn + {left, down, up, right} = {home, pgdown, pgup, end} @@ -63,7 +63,7 @@ while both [keymap_poker_bit.c](keymap_poker_bit.c) and [keymap_poker_set.c](key ### 2. Plain Without any Fn layer this will be useful if you want to use key remapping tool like AHK on host. -See [keymap_plain.c](keymap_plain.c) for detail. +See [plain.c](keymaps/plain.c) for detail. #### 1.0 Plain Default layer ,-----------------------------------------------------------. @@ -80,11 +80,11 @@ See [keymap_plain.c](keymap_plain.c) for detail. ### 3. Hasu -This is my favorite keymap with HHKB Fn, Vi cursor and Mousekey layer. See [keymap_hasu.c](keymap_hasu.c) for detail. +This is my favorite keymap with HHKB Fn, Vi cursor and Mousekey layer. See [hasu.c](keymaps/hasu.c) for detail. ### 4. SpaceFN -This layout proposed by spiceBar uses space bar to change layer with using Dual role key technique. See [keymap_spacefn.c](keymap_spacefn.c) and [SpaceFN discussion](http://geekhack.org/index.php?topic=51069.0). +This layout proposed by spiceBar uses space bar to change layer with using Dual role key technique. See [spacefn.c](keymaps/spacefn.c) and [SpaceFN discussion](http://geekhack.org/index.php?topic=51069.0). #### 4.0 Default layer ,-----------------------------------------------------------. @@ -113,7 +113,7 @@ This layout proposed by spiceBar uses space bar to change layer with using Dual ### 5. HHKB -[keymap_hhkb.c](keymap_hhkb.c) emulates original HHKB layers. +[hhkb.c](keymaps/hhkb.c) emulates original HHKB layers. #### 5.0: Default layer ,-----------------------------------------------------------. |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =| \| `| diff --git a/keyboard/gh60/keymap_hasu.c b/keyboard/gh60/keymaps/hasu.c similarity index 100% rename from keyboard/gh60/keymap_hasu.c rename to keyboard/gh60/keymaps/hasu.c diff --git a/keyboard/gh60/keymap_hhkb.c b/keyboard/gh60/keymaps/hhkb.c similarity index 100% rename from keyboard/gh60/keymap_hhkb.c rename to keyboard/gh60/keymaps/hhkb.c diff --git a/keyboard/gh60/keymap_plain.c b/keyboard/gh60/keymaps/plain.c similarity index 100% rename from keyboard/gh60/keymap_plain.c rename to keyboard/gh60/keymaps/plain.c diff --git a/keyboard/gh60/keymap_poker.c b/keyboard/gh60/keymaps/poker.c similarity index 100% rename from keyboard/gh60/keymap_poker.c rename to keyboard/gh60/keymaps/poker.c diff --git a/keyboard/gh60/keymap_poker_bit.c b/keyboard/gh60/keymaps/poker_bit.c similarity index 100% rename from keyboard/gh60/keymap_poker_bit.c rename to keyboard/gh60/keymaps/poker_bit.c diff --git a/keyboard/gh60/keymap_poker_set.c b/keyboard/gh60/keymaps/poker_set.c similarity index 100% rename from keyboard/gh60/keymap_poker_set.c rename to keyboard/gh60/keymaps/poker_set.c diff --git a/keyboard/gh60/keymap_spacefn.c b/keyboard/gh60/keymaps/spacefn.c similarity index 100% rename from keyboard/gh60/keymap_spacefn.c rename to keyboard/gh60/keymaps/spacefn.c diff --git a/keyboard/hhkb/Makefile b/keyboard/hhkb/Makefile index 5a179bd24d..d434246cef 100644 --- a/keyboard/hhkb/Makefile +++ b/keyboard/hhkb/Makefile @@ -129,17 +129,17 @@ NKRO_ENABLE = yes # USB Nkey Rollover # Keymap file # ifdef KEYMAP - SRC := keymap_$(KEYMAP).c $(SRC) + SRC := keymaps/$(KEYMAP).c $(SRC) else ifdef HHKB_JP - SRC := keymap_jp.c $(SRC) + SRC := keymaps/jp.c $(SRC) else - SRC := keymap_hhkb.c $(SRC) + SRC := keymaps/hhkb.c $(SRC) endif endif -ifneq (, $(or $(findstring keymap_jp.c, $(SRC)), $(findstring yes, $(HHKB_JP)))) +ifneq (, $(or $(findstring jp.c, $(SRC)), $(findstring yes, $(HHKB_JP)))) OPT_DEFS += -DHHKB_JP endif diff --git a/keyboard/hhkb/Makefile.pjrc b/keyboard/hhkb/Makefile.pjrc index 7d0f8c3a9c..403a8ec60a 100644 --- a/keyboard/hhkb/Makefile.pjrc +++ b/keyboard/hhkb/Makefile.pjrc @@ -18,9 +18,9 @@ SRC = keymap_common.c \ led.c ifdef KEYMAP - SRC := keymap_$(KEYMAP).c $(SRC) + SRC := keymaps/$(KEYMAP).c $(SRC) else - SRC := keymap_hasu.c $(SRC) + SRC := keymaps/hasu.c $(SRC) endif CONFIG_H = config.h diff --git a/keyboard/hhkb/Makefile.rn42 b/keyboard/hhkb/Makefile.rn42 index cbb2b744c9..a730442af0 100644 --- a/keyboard/hhkb/Makefile.rn42 +++ b/keyboard/hhkb/Makefile.rn42 @@ -122,17 +122,17 @@ COMMAND_ENABLE = yes # Commands for debug and configuration # Keymap file # ifdef KEYMAP - SRC := keymap_$(KEYMAP).c $(SRC) + SRC := keymaps/$(KEYMAP).c $(SRC) else ifdef HHKB_JP - SRC := keymap_jp.c $(SRC) + SRC := keymaps/jp.c $(SRC) else - SRC := keymap_hhkb.c $(SRC) + SRC := keymaps/hhkb.c $(SRC) endif endif -ifneq (, $(or $(findstring keymap_jp.c, $(SRC)), $(findstring yes, $(HHKB_JP)))) +ifneq (, $(or $(findstring jp.c, $(SRC)), $(findstring yes, $(HHKB_JP)))) OPT_DEFS += -DHHKB_JP endif diff --git a/keyboard/hhkb/README.md b/keyboard/hhkb/README.md index fcd72e1941..e20c23d823 100644 --- a/keyboard/hhkb/README.md +++ b/keyboard/hhkb/README.md @@ -76,7 +76,7 @@ Use [Teensy Loader] if your controller is Teensy/Teensy++. ##Keymap -To define your own keymap create file named `keymap_.c` and see [keymap document](../../doc/keymap.md) and existent keymap files. +To define your own keymap create a file in the keymaps folder named `.c` and see keymap document (you can find in top README.md) and existent keymap files. ##Hardware diff --git a/keyboard/hhkb/keymap_hasu.c b/keyboard/hhkb/keymaps/hasu.c similarity index 100% rename from keyboard/hhkb/keymap_hasu.c rename to keyboard/hhkb/keymaps/hasu.c diff --git a/keyboard/hhkb/keymap_hhkb.c b/keyboard/hhkb/keymaps/hhkb.c similarity index 100% rename from keyboard/hhkb/keymap_hhkb.c rename to keyboard/hhkb/keymaps/hhkb.c diff --git a/keyboard/hhkb/keymap_jp.c b/keyboard/hhkb/keymaps/jp.c similarity index 100% rename from keyboard/hhkb/keymap_jp.c rename to keyboard/hhkb/keymaps/jp.c diff --git a/keyboard/hhkb/keymap_spacefn.c b/keyboard/hhkb/keymaps/spacefn.c similarity index 100% rename from keyboard/hhkb/keymap_spacefn.c rename to keyboard/hhkb/keymaps/spacefn.c diff --git a/keyboard/hhkb_qmk/Makefile b/keyboard/hhkb_qmk/Makefile index 8bd44100b7..21ba261a23 100644 --- a/keyboard/hhkb_qmk/Makefile +++ b/keyboard/hhkb_qmk/Makefile @@ -54,9 +54,9 @@ SRC = hhkb_qmk.c \ matrix.c ifdef KEYMAP - SRC := keymaps/keymap_$(KEYMAP).c $(SRC) + SRC := keymaps/keymaps/$(KEYMAP).c $(SRC) else - SRC := keymaps/keymap_default.c $(SRC) + SRC := keymaps/keymaps/default.c $(SRC) endif CONFIG_H = config.h diff --git a/keyboard/hhkb_qmk/README.md b/keyboard/hhkb_qmk/README.md index 606025c411..389407b3aa 100644 --- a/keyboard/hhkb_qmk/README.md +++ b/keyboard/hhkb_qmk/README.md @@ -171,10 +171,10 @@ Depending on which keymap you would like to use, you will have to compile slight To build with the default keymap, simply run `make`. ### Other Keymaps -Several version of keymap are available in advance but you are recommended to define your favorite layout yourself. To define your own keymap create file named `keymap_.c` and see keymap document (you can find in top README.md) and existent keymap files. +Several version of keymap are available in advance but you are recommended to define your favorite layout yourself. To define your own keymap create a file in the keymaps folder named `.c` and see keymap document (you can find in top README.md) and existent keymap files. To build the firmware binary hex file with a keymap just do `make` with `KEYMAP` option like: ``` $ make KEYMAP=[default|jack|] ``` -Keymaps follow the format **__keymap\_\.c__** and are stored in the `keymaps` folder. +Keymaps follow the format **__\.c__** and are stored in the `keymaps` folder. diff --git a/keyboard/hhkb_qmk/keymaps/keymap_default.c b/keyboard/hhkb_qmk/keymaps/default.c similarity index 100% rename from keyboard/hhkb_qmk/keymaps/keymap_default.c rename to keyboard/hhkb_qmk/keymaps/default.c diff --git a/keyboard/hhkb_qmk/keymaps/keymap_lxol.c b/keyboard/hhkb_qmk/keymaps/lxol.c similarity index 100% rename from keyboard/hhkb_qmk/keymaps/keymap_lxol.c rename to keyboard/hhkb_qmk/keymaps/lxol.c diff --git a/keyboard/jd45/Makefile b/keyboard/jd45/Makefile index 076dced829..f6a8d10c58 100644 --- a/keyboard/jd45/Makefile +++ b/keyboard/jd45/Makefile @@ -54,9 +54,9 @@ SRC = jd45.c \ backlight.c ifdef KEYMAP - SRC := keymaps/keymap_$(KEYMAP).c $(SRC) + SRC := keymaps/keymaps/(KEYMAP).c $(SRC) else - SRC := keymaps/keymap_default.c $(SRC) + SRC := keymaps/keymaps/default.c $(SRC) endif CONFIG_H = config.h diff --git a/keyboard/jd45/keymaps/keymap_default.c b/keyboard/jd45/keymaps/default.c similarity index 100% rename from keyboard/jd45/keymaps/keymap_default.c rename to keyboard/jd45/keymaps/default.c diff --git a/keyboard/jd45/keymaps/keymap_justin.c b/keyboard/jd45/keymaps/justin.c similarity index 100% rename from keyboard/jd45/keymaps/keymap_justin.c rename to keyboard/jd45/keymaps/justin.c diff --git a/keyboard/planck/README.md b/keyboard/planck/README.md index 3ba0cc1527..d9a1e3beee 100644 --- a/keyboard/planck/README.md +++ b/keyboard/planck/README.md @@ -16,13 +16,13 @@ Depending on which keymap you would like to use, you will have to compile slight To build with the default keymap, simply run `make`. ### Other Keymaps -Several version of keymap are available in advance but you are recommended to define your favorite layout yourself. To define your own keymap create file named `.c` and see keymap document (you can find in top README.md) and existent keymap files. +Several version of keymap are available in advance but you are recommended to define your favorite layout yourself. To define your own keymap create file named `.c` in the keymaps folder, and see keymap document (you can find in top README.md) and existent keymap files. To build the firmware binary hex file with a keymap just do `make` with `KEYMAP` option like: ``` $ make KEYMAP=[default|jack|] ``` -Keymaps follow the format **__.c__** and are stored in the `keymaps` folder. +Keymaps follow the format **__\.c__** and are stored in the `keymaps` folder. ### Notable forks (which some of the keymap files are from) - [Shane's Fork](https://github.com/shanecelis/tmk_keyboard/tree/master/keyboard/planck) diff --git a/keyboard/planck/common_keymaps/keymap_mitch.c b/keyboard/planck/old_keymap_files/common_keymaps/keymap_mitch.c similarity index 100% rename from keyboard/planck/common_keymaps/keymap_mitch.c rename to keyboard/planck/old_keymap_files/common_keymaps/keymap_mitch.c diff --git a/quantum/template/README.md b/quantum/template/README.md index dc163a2f4b..39f9f59d10 100644 --- a/quantum/template/README.md +++ b/quantum/template/README.md @@ -15,7 +15,7 @@ Depending on which keymap you would like to use, you will have to compile slight To build with the default keymap, simply run `make`. ### Other Keymaps -Several version of keymap are available in advance but you are recommended to define your favorite layout yourself. To define your own keymap create file named `.c` and see keymap document (you can find in top README.md) and existent keymap files. +Several version of keymap are available in advance but you are recommended to define your favorite layout yourself. To define your own keymap create file named `.c` in the keymaps folder, and see keymap document (you can find in top README.md) and existent keymap files. To build the firmware binary hex file with a keymap just do `make` with `KEYMAP` option like: ``` From ac0729787ff0e8d1bd1202a28f5edf9125c00b0c Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Wed, 30 Mar 2016 00:43:07 -0400 Subject: [PATCH 27/45] preonic update --- keyboard/preonic/Makefile | 54 ++-- keyboard/preonic/Makefile.pjrc | 116 --------- keyboard/preonic/PCB_GUIDE.md | 116 --------- keyboard/preonic/README.md | 49 +--- keyboard/preonic/__avr_gdbinit | 6 - keyboard/preonic/analog.c | 53 ---- keyboard/preonic/analog.h | 36 --- keyboard/preonic/beeps.c | 246 ------------------ keyboard/preonic/beeps.h | 12 - keyboard/preonic/config.h | 18 +- keyboard/preonic/config_definitions.h | 50 ---- keyboard/preonic/extended_keymap_common.c | 216 --------------- keyboard/preonic/extended_keymap_common.h | 181 ------------- .../extended_keymap_default.c | 70 ----- .../extended_keymaps/extended_keymap_lock.c | 81 ------ keyboard/preonic/keymap_midi.c | 110 -------- keyboard/preonic/keymap_midi.h | 220 ---------------- keyboard/preonic/led.c | 38 --- keyboard/preonic/matrix.c | 234 ----------------- quantum/keymap_midi.c | 4 +- 20 files changed, 65 insertions(+), 1845 deletions(-) delete mode 100644 keyboard/preonic/Makefile.pjrc delete mode 100644 keyboard/preonic/PCB_GUIDE.md delete mode 100644 keyboard/preonic/__avr_gdbinit delete mode 100644 keyboard/preonic/analog.c delete mode 100644 keyboard/preonic/analog.h delete mode 100644 keyboard/preonic/beeps.c delete mode 100644 keyboard/preonic/beeps.h delete mode 100644 keyboard/preonic/config_definitions.h delete mode 100644 keyboard/preonic/extended_keymap_common.c delete mode 100644 keyboard/preonic/extended_keymap_common.h delete mode 100644 keyboard/preonic/extended_keymaps/extended_keymap_default.c delete mode 100644 keyboard/preonic/extended_keymaps/extended_keymap_lock.c delete mode 100644 keyboard/preonic/keymap_midi.c delete mode 100644 keyboard/preonic/keymap_midi.h delete mode 100644 keyboard/preonic/led.c delete mode 100644 keyboard/preonic/matrix.c diff --git a/keyboard/preonic/Makefile b/keyboard/preonic/Makefile index 0145e44bc6..664aff7321 100644 --- a/keyboard/preonic/Makefile +++ b/keyboard/preonic/Makefile @@ -27,7 +27,7 @@ # make flip-ee = Download the eeprom file to the device, using Atmel FLIP # (must have Atmel FLIP installed). # -# make debug = Start either simulavr or avarice as specified for debugging, +# make debug = Start either simulavr or avarice as specified for debugging, # with avr-gdb or avr-insight as the front end for debugging. # # make filename.s = Just compile filename.c into the assembler code only. @@ -39,25 +39,41 @@ #---------------------------------------------------------------------------- # Target file name (without extension). -TARGET = preonic_lufa +TARGET = preonic + # Directory common source filess exist TOP_DIR = ../.. +TMK_DIR = ../../tmk_core # Directory keyboard dependent files exist TARGET_DIR = . # # project specific files -SRC = extended_keymap_common.c \ - matrix.c \ - led.c \ - backlight.c +SRC = preonic.c + +ifdef keymap + KEYMAP = $(keymap) +endif ifdef KEYMAP - SRC := extended_keymaps/extended_keymap_$(KEYMAP).c $(SRC) +ifneq ("$(wildcard keymaps/$(KEYMAP).c)","") + KEYMAP_FILE = keymaps/$(KEYMAP).c else - SRC := extended_keymaps/extended_keymap_default.c $(SRC) +ifneq ("$(wildcard keymaps/$(KEYMAP)/keymap.c)","") + KEYMAP_FILE = keymaps/$(KEYMAP)/keymap.c +else +$(error Keymap file does not exist) endif +endif +else +ifneq ("$(wildcard keymaps/default.c)","") + KEYMAP_FILE = keymaps/default.c +else + KEYMAP_FILE = keymaps/default/keymap.c +endif +endif +SRC := $(KEYMAP_FILE) $(SRC) CONFIG_H = config.h @@ -120,24 +136,26 @@ EXTRAKEY_ENABLE = yes # Audio control and System control(+450) CONSOLE_ENABLE = yes # Console for debug(+400) COMMAND_ENABLE = yes # Commands for debug and configuration # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE -#SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend -NKRO_ENABLE = yes # USB Nkey Rollover - not yet supported in LUFA +# SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend +# NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality -MIDI_ENABLE = yes # MIDI controls -BACKLIGHT_ENABLE = yes +MIDI_ENABLE = YES # MIDI controls +AUDIO_ENABLE = YES # Audio output on port C6 +# UNICODE_ENABLE = YES # Unicode +# BLUETOOTH_ENABLE = yes # Enable Bluetooth with the Adafruit EZ-Key HID +# RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight. Do not enable this with MIDI at the same time. -ifdef MIDI_ENABLE - SRC += keymap_midi.c \ - beeps.c +ifdef BACKLIGHT_ENABLE + SRC += backlight.c endif + # Optimize size but this may cause error "relocation truncated to fit" #EXTRALDFLAGS = -Wl,--relax # Search Path VPATH += $(TARGET_DIR) VPATH += $(TOP_DIR) +VPATH += $(TMK_DIR) -include $(TOP_DIR)/protocol/lufa.mk -include $(TOP_DIR)/common.mk -include $(TOP_DIR)/rules.mk +include $(TOP_DIR)/quantum/quantum.mk diff --git a/keyboard/preonic/Makefile.pjrc b/keyboard/preonic/Makefile.pjrc deleted file mode 100644 index be83ba18b1..0000000000 --- a/keyboard/preonic/Makefile.pjrc +++ /dev/null @@ -1,116 +0,0 @@ -#---------------------------------------------------------------------------- -# On command line: -# -# make all = Make software. -# -# make clean = Clean out built project files. -# -# make coff = Convert ELF to AVR COFF. -# -# make extcoff = Convert ELF to AVR Extended COFF. -# -# make program = Download the hex file to the device. -# Please customize your programmer settings(PROGRAM_CMD) -# -# make teensy = Download the hex file to the device, using teensy_loader_cli. -# (must have teensy_loader_cli installed). -# -# make dfu = Download the hex file to the device, using dfu-programmer (must -# have dfu-programmer installed). -# -# make flip = Download the hex file to the device, using Atmel FLIP (must -# have Atmel FLIP installed). -# -# make dfu-ee = Download the eeprom file to the device, using dfu-programmer -# (must have dfu-programmer installed). -# -# make flip-ee = Download the eeprom file to the device, using Atmel FLIP -# (must have Atmel FLIP installed). -# -# make debug = Start either simulavr or avarice as specified for debugging, -# with avr-gdb or avr-insight as the front end for debugging. -# -# make filename.s = Just compile filename.c into the assembler code only. -# -# make filename.i = Create a preprocessed source file for use in submitting -# bug reports to the GCC project. -# -# To rebuild project do "make clean" then "make all". -#---------------------------------------------------------------------------- - -# Target file name (without extension). -TARGET = gh60_pjrc - -# Directory common source filess exist -TOP_DIR = ../.. - -# Directory keyboard dependent files exist -TARGET_DIR = . - -# project specific files -SRC = keymap_common.c \ - matrix.c \ - led.c - -ifdef KEYMAP - SRC := keymap_$(KEYMAP).c $(SRC) -else - SRC := keymap_jack.c $(SRC) -endif - -CONFIG_H = config.h - - -# MCU name, you MUST set this to match the board you are using -# type "make clean" after changing this, so all files will be rebuilt -MCU = atmega32u4 -#MCU = at90usb1286 - - -# Processor frequency. -# Normally the first thing your program should do is set the clock prescaler, -# so your program will run at the correct speed. You should also set this -# variable to same clock speed. The _delay_ms() macro uses this, and many -# examples use this variable to calculate timings. Do not add a "UL" here. -F_CPU = 16000000 - - -# Boot Section Size in *bytes* -# Teensy halfKay 512 -# Atmel DFU loader 4096 -# LUFA bootloader 4096 -OPT_DEFS += -DBOOTLOADER_SIZE=4096 - - -# Build Options -# comment out to disable the options. -# -BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000) -MOUSEKEY_ENABLE = yes # Mouse keys(+5000) -EXTRAKEY_ENABLE = yes # Audio control and System control(+600) -CONSOLE_ENABLE = yes # Console for debug -COMMAND_ENABLE = yes # Commands for debug and configuration -SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend -NKRO_ENABLE = yes # USB Nkey Rollover(+500) -#PS2_MOUSE_ENABLE = yes # PS/2 mouse(TrackPoint) support - - -# Search Path -VPATH += $(TARGET_DIR) -VPATH += $(TOP_DIR) - -include $(TOP_DIR)/protocol/pjrc.mk -include $(TOP_DIR)/common.mk -include $(TOP_DIR)/rules.mk - -plain: OPT_DEFS += -DKEYMAP_PLAIN -plain: all - -poker: OPT_DEFS += -DKEYMAP_POKER -poker: all - -poker_set: OPT_DEFS += -DKEYMAP_POKER_SET -poker_set: all - -poker_bit: OPT_DEFS += -DKEYMAP_POKER_BIT -poker_bit: all diff --git a/keyboard/preonic/PCB_GUIDE.md b/keyboard/preonic/PCB_GUIDE.md deleted file mode 100644 index c3004c75a4..0000000000 --- a/keyboard/preonic/PCB_GUIDE.md +++ /dev/null @@ -1,116 +0,0 @@ -# Planck Firmware Guide - -## Setting up the environment - -### Windows -1. Install [WinAVR Tools](http://sourceforge.net/projects/winavr/) for AVR GCC compiler. -2. Install [DFU-Programmer][dfu-prog] (the -win one). -3. Start DFU bootloader on the chip first time you will see 'Found New Hardware Wizard' to install driver. If you install device driver properly you can find chip name like 'ATmega32U4' under 'LibUSB-Win32 Devices' tree on 'Device Manager'. If not you will need to update its driver on 'Device Manager' to the `dfu-programmer` driver. - -### Mac -1. Install [CrossPack](http://www.obdev.at/products/crosspack/index.html) or install Xcode from the App Store and install the Command Line Tools from `Xcode->Preferences->Downloads`. -2. Install [DFU-Programmer][dfu-prog]. - -### Linux -1. Install AVR GCC with your favorite package manager. -2. Install [DFU-Programmer][dfu-prog]. - -##Verify Your Installation -1. Clone the following repository: https://github.com/jackhumbert/tmk_keyboard -2. Open a Terminal and `cd` into `tmk_keyboard/keyboard/planck` -3. Run `make`. This should output a lot of information about the build process. - -## Using the built-in functions - -Here is a list of some of the functions available from the command line: - -* `make clean`: clean the environment - may be required in-between builds -* `make`: compile the code -* `make COMMON=true`: compile with the common (non-extended) keymap -* `make MATRIX=`: compile with the referenced matrix file. Default if unspecified is `matrix_pcb.c`. For handwired boards, use `matrix_handwired.c`. -* `make KEYMAP=`: compile with the extended keymap file `extended_keymaps/extended_keymap_.c` -* `make COMMON=true KEYMAP=`: compile with the common keymap file `common_keymaps/keymap_.c` -* `make dfu`: build and flash the layout to the PCB -* `make dfu-force`: build and force-flash the layout to the PCB (may be require for first flash) - -Generally, the instructions to flash the PCB are as follows: - -1. Make changes to the appropriate keymap file -2. Save the file -3. `make clean` -4. Press the reset button on the PCB/press the key with the `RESET` keycode -5. `make dfu` - use the necessary `KEYMAP=` and/or `COMMON=true` arguments here. - -## Extended keymap - -### Keymap - -Unlike the common keymap, prefixing the keycodes with `KC_` is required. A full list of the keycodes is available [here](https://github.com/jackhumbert/tmk_keyboard/blob/master/doc/keycode.txt). For the keycodes available only in the extended keymap, see this [header file](https://github.com/jackhumbert/tmk_keyboard/blob/master/keyboard/planck/extended_keymap_common.h). - -You can use modifiers with keycodes like this: - - LCTL(KC_C) - -Which will generate Ctrl+c. These are daisy-chainable, meaning you can do things like: - - LCTL(LALT(KC_C)) - -That will generate Ctrl+Alt+c. The entire list of these functions is here: - -* `LCTL()`: Left control -* `LSFT()` / `S()`: Left shift -* `LALT()`: Left alt/opt -* `LGUI()`: Left win/cmd -* `RCTL()`: Right control -* `RSFT()`: Right shift -* `RALT()`: Right alt/opt -* `RGUI()`: Right win/cmd - -`S(KC_1)`-like entries are useful in writing keymaps for the Planck. - -### Other keycodes - -A number of other keycodes have been added that you may find useful: - -* `CM_`: the Colemak equivalent of a key (in place of `KC_`), when using Colemak in software (`CM_O` generates `KC_SCLN`) -* `RESET`: jump to bootloader for flashing (same as press the reset button) -* `BL_STEP`: step through the backlight brightnesses -* `BL_<0-15>`: set backlight brightness to 0-15 -* `BL_DEC`: lower the backlight brightness -* `BL_INC`: raise the backlight brightness -* `BL_TOGG`: toggle the backlight on/off - -### Function layers - -The extended keymap extends the number of function layers from 32 to the near-infinite value of 256. Rather than using `FN` notation (still available, but limited to `FN0`-`FN31`), you can use the `FUNC()` notation. `F()` is a shortcut for this. - -The function actions are unchanged, and you can see the full list of them [here](https://github.com/jackhumbert/tmk_keyboard/blob/master/common/action_code.h). They are explained in detail [here](https://github.com/jackhumbert/tmk_keyboard/blob/master/doc/keymap.md#2-action). - -### Macros - -Macros have been setup in the `extended_keymaps/extended_keymaps_default.c` file so that you can use `M()` to access a macro in the `action_get_macro` section on your keymap. The switch/case structure you see here is required, and is setup for `M(0)` - you'll need to copy and paste the code to look like this (e.g. to support `M(3)`): - - switch(id) { - case 0: - return MACRODOWN(TYPE(KC_A), END); - break; - case 1: - return MACRODOWN(TYPE(KC_B), END); - break; - case 2: - return MACRODOWN(TYPE(KC_C), END); - break; - case 3: - return MACRODOWN(TYPE(KC_D), END); - break; - } - return MACRO_NONE; - -`MACRODOWN()` is a shortcut for `(record->event.pressed ? MACRO(__VA_ARGS__) : MACRO_NONE)` which tells the macro to execute when the key is pressed. Without this, the macro will be executed on both the down and up stroke. - -[cygwin]: https://www.cygwin.com/ -[mingw]: http://www.mingw.org/ -[mhv]: https://infernoembedded.com/products/avr-tools -[winavr]: http://winavr.sourceforge.net/ -[crosspack]: http://www.obdev.at/products/crosspack/index.html -[dfu-prog]: http://dfu-programmer.sourceforge.net/ diff --git a/keyboard/preonic/README.md b/keyboard/preonic/README.md index ee824d26e0..3ba0cc1527 100644 --- a/keyboard/preonic/README.md +++ b/keyboard/preonic/README.md @@ -2,54 +2,29 @@ Planck keyboard firmware ====================== DIY/Assembled compact ortholinear 40% keyboard by [Ortholinear Keyboards](http://ortholinearkeyboards.com). -## Extended Keymap -If you include extended_keymap_common.h instead of keymap_common.h at the top of your file, you'll have access to a bunch of goodies: +## Quantum MK Firmware -- Use `LSFT()`, `LCTL()`, et. al. (listed in extended_keymap_common.h) as modifiers for keys (daisy-chain-able) -- Use `FUNC(1)` instead of `FN1` (etc.) to access the function layers beyond the 32 function layer limit -- Use `CM_F` instead of `KC_F` to get the ColeMak equivilent for shortcuts (maps backwards) -- Use `MACRODOWN()` instead of `MACRO()` to easily make a keydown macro (`CM_*` works here too) +For the full Quantum feature list, see [the parent README.md](/README.md). -### Some notes on usage: +## Building -- The `KEYMAP()` macro is unable to be used due to the bitwise modifications that take place - refer to extended_keymap_jack.c to see how to set things up with the `KC_` prefix -- Keep an eye on the Makefile - this needs to include the correct files to work -- Don't forget to use `const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {` instead of the 8bit equivilent - -## Build - -Follow [this guide](http://deskthority.net/workshop-f7/how-to-build-your-very-own-keyboard-firmware-t7177.html) to setup your development environment before anything else. Abbreviated instructions are provide at the [bottom of this document](https://github.com/rswiernik/tmk_keyboard/tree/rswiernik_dev/keyboard/planck#environment-setup) - -Download the whole firmware [here](https://github.com/jackhumbert/tmk_keyboard/archive/master.zip) and navigate to the keyboard/planck folder. Once your dev env is setup, you'll be able to type `make` to generate your .hex that you can load with the Teensy app onto your Planck (once you've hit reset/shorted GND & RST). +Download or clone the whole firmware and navigate to the keyboard/planck folder. Once your dev env is setup, you'll be able to type `make` to generate your .hex - you can then use `make dfu` to program your PCB once you hit the reset button. Depending on which keymap you would like to use, you will have to compile slightly differently. -####Default -To build with the default keymap, simply move to the tmk\_keyboard/keyboard/planck/ and run `make` as follows: -``` -$ make -``` +### Default +To build with the default keymap, simply run `make`. -## Keymap -Several version of keymap are available in advance but you are recommended to define your favorite layout yourself. To define your own keymap create file named `keymap_.c` and see keymap document (you can find in top README.md) and existent keymap files. - -####**Extended Keymaps** +### Other Keymaps +Several version of keymap are available in advance but you are recommended to define your favorite layout yourself. To define your own keymap create file named `.c` and see keymap document (you can find in top README.md) and existent keymap files. -To build the firmware binary hex file with an extended keymap just do `make` with `KEYMAP` option like: +To build the firmware binary hex file with a keymap just do `make` with `KEYMAP` option like: ``` -$ make KEYMAP=[common|jack|] +$ make KEYMAP=[default|jack|] ``` -_The only applicable keymaps will work with this option._ Extended keymaps follow the format **__extended\_keymap\_\.c__** +Keymaps follow the format **__.c__** and are stored in the `keymaps` folder. -####**Common Keymaps** - -Building with a common keymap is as simple as adding the COMMON option. Note that only -``` -$ make KEYMAP=[common|jack|] COMMON=true -``` -_The only applicable keymaps will work with this option._ Common keymaps follow the format **__keymap\_\.c__** - -## Notable TMK forks (which some of the keymap files are from) +### Notable forks (which some of the keymap files are from) - [Shane's Fork](https://github.com/shanecelis/tmk_keyboard/tree/master/keyboard/planck) - [Pierre's Fork](https://github.com/pcarrier/tmk_keyboard/blob/pcarrier/planck/keyboard/gh60/keymap_planck.c) - [Nathan's Fork](https://github.com/nathanrosspowell/tmk_keyboard/tree/planck-jack/keyboard/planck) diff --git a/keyboard/preonic/__avr_gdbinit b/keyboard/preonic/__avr_gdbinit deleted file mode 100644 index afc51e6d19..0000000000 --- a/keyboard/preonic/__avr_gdbinit +++ /dev/null @@ -1,6 +0,0 @@ -define reset -SIGNAL SIGHUP -end -file planck_lufa.elf -target remote localhost:4242 -break main diff --git a/keyboard/preonic/analog.c b/keyboard/preonic/analog.c deleted file mode 100644 index 49b84ee0e8..0000000000 --- a/keyboard/preonic/analog.c +++ /dev/null @@ -1,53 +0,0 @@ -// Simple analog to digitial conversion - -#include -#include -#include -#include "analog.h" - - -static uint8_t aref = (1<= 12) return 0; - return adc_read(pgm_read_byte(pin_to_mux + pin)); -#elif defined(__AVR_AT90USB646__) || defined(__AVR_AT90USB1286__) - if (pin >= 8) return 0; - return adc_read(pin); -#else - return 0; -#endif -} - -// Mux input -int16_t adc_read(uint8_t mux) -{ -#if defined(__AVR_AT90USB162__) - return 0; -#else - uint8_t low; - - ADCSRA = (1< - -void analogReference(uint8_t mode); -int16_t analogRead(uint8_t pin); -int16_t adc_read(uint8_t mux); - -#define ADC_REF_POWER (1< -#include -#include -#include - -#define PI 3.14159265 - -void delay_us(int count) { - while(count--) { - _delay_us(1); - } -} - -int voices = 0; -double frequency = 0; -int volume = 0; -int position = 0; - -double frequencies[8] = {0, 0, 0, 0, 0, 0, 0, 0}; -int volumes[8] = {0, 0, 0, 0, 0, 0, 0, 0}; -bool sliding = false; -#define RANGE 1000 -volatile int i=0; //elements of the wave - - -void beeps() { - play_notes(); -} - -void send_freq(double freq, int vol) { - int duty = (((double)F_CPU) / freq); - ICR3 = duty; // Set max to the period - OCR3A = duty >> (0x10 - vol); // Set compare to half the period -} - -void stop_all_notes() { - voices = 0; - TCCR3A = 0; - TCCR3B = 0; - frequency = 0; - volume = 0; - - for (int i = 0; i < 8; i++) { - frequencies[i] = 0; - volumes[i] = 0; - } -} - -void stop_note(double freq) { - for (int i = 7; i >= 0; i--) { - if (frequencies[i] == freq) { - frequencies[i] = 0; - volumes[i] = 0; - for (int j = i; (j < 7); j++) { - frequencies[j] = frequencies[j+1]; - frequencies[j+1] = 0; - volumes[j] = volumes[j+1]; - volumes[j+1] = 0; - } - } - } - voices--; - if (voices < 0) - voices = 0; - if (voices == 0) { - TCCR3A = 0; - TCCR3B = 0; - frequency = 0; - volume = 0; - } else { - double freq = frequencies[voices - 1]; - int vol = volumes[voices - 1]; - if (frequency < freq) { - sliding = true; - for (double f = frequency; f <= freq; f += ((freq - frequency) / 500.0)) { - send_freq(f, vol); - } - sliding = false; - } else if (frequency > freq) { - sliding = true; - for (double f = frequency; f >= freq; f -= ((frequency - freq) / 500.0)) { - send_freq(f, vol); - } - sliding = false; - } - send_freq(freq, vol); - frequency = freq; - volume = vol; - } -} - -void init_notes() { - // TCCR1A = (1 << COM1A1) | (0 << COM1A0) | (1 << WGM11) | (1 << WGM10); - // TCCR1B = (1 << COM1B1) | (0 << COM1A0) | (1 << WGM13) | (1 << WGM12) | (0 << CS12) | (0 << CS11) | (1 << CS10); - - // DDRC |= (1<<6); - - // TCCR3A = (1 << COM3A1) | (0 << COM3A0) | (1 << WGM31) | (0 << WGM30); - // TCCR3B = (1 << WGM33) | (1 << WGM32) | (0 << CS32) | (0 << CS31) | (1 << CS30); - - // ICR3 = 0xFFFF; - // OCR3A = (int)((float)wave[i]*ICR3/RANGE); //go to next array element - - - // cli(); - - // /* Enable interrupt on timer2 == 127, with clk/8 prescaler. At 16MHz, - // this gives a timer interrupt at 15625Hz. */ - // TIMSK3 = (1 << OCIE3A); - - // /* clear/reset timer on match */ - // // TCCR3A = 1<> 8) & 0x00FF) -// #define lowByte(c) (c & 0x00FF) - -ISR(TIMER3_COMPA_vect) { - - if (ICR3 > 0 && !sliding) { - switch (position) { - case 0: { - int duty = (((double)F_CPU) / (frequency)); - ICR3 = duty; // Set max to the period - OCR3A = duty >> 1; // Set compare to half the period - break; - } - case 1: { - int duty = (((double)F_CPU) / (frequency*2)); - ICR3 = duty; // Set max to the period - OCR3A = duty >> 1; // Set compare to half the period - break; - } - case 2: { - int duty = (((double)F_CPU) / (frequency*3)); - ICR3 = duty; // Set max to the period - OCR3A = duty >> 1; // Set compare to half the period - break; - } - } - position = (position + 1) % 3; - } -// /* OCR2A has been cleared, per TCCR2A above */ -// // OCR3A = 127; - -// // pos1 += incr1; -// // pos2 += incr2; -// // pos3 += incr3; - -// // sample = sinewave[highByte(pos1)] + sinewave[highByte(pos2)] + sinewave[highByte(pos3)]; - -// // OCR3A = sample; - - -// OCR3A=pgm_read_byte(&sinewave[pos1]); -// pos1++; -// // PORTC &= ~(1<<6); - -// /* buffered, 1x gain, active mode */ -// // SPDR = highByte(sample) | 0x70; -// // while (!(SPSR & (1< 0) { - DDRC |= (1<<6); - - TCCR3A = (1 << COM3A1) | (0 << COM3A0) | (1 << WGM31) | (0 << WGM30); - TCCR3B = (1 << WGM33) | (1 << WGM32) | (0 << CS32) | (1 << CS31) | (0 << CS30); - - if (frequency != 0) { - if (frequency < freq) { - for (double f = frequency; f <= freq; f += ((freq - frequency) / 500.0)) { - send_freq(f, vol); - } - } else if (frequency > freq) { - for (double f = frequency; f >= freq; f -= ((frequency - freq) / 500.0)) { - send_freq(f, vol); - } - } - } - send_freq(freq, vol); - frequency = freq; - volume = vol; - - frequencies[voices] = frequency; - volumes[voices] = volume; - voices++; - } - // ICR3 = 0xFFFF; - // for (int i = 0; i < 10000; i++) { - // OCR3A = round((sin(i*freq)*.5)+.5)*0xFFFF; - // // _delay_us(50); - // } - - // TCCR3A = 0; - // TCCR3B = 0; -} - -// void note(int x, float length) { -// DDRC |= (1<<6); -// int t = (int)(440*pow(2,-x/12.0)); // starting note -// for (int y = 0; y < length*1000/t; y++) { // note length -// PORTC |= (1<<6); -// delay_us(t); -// PORTC &= ~(1<<6); -// delay_us(t); -// } -// PORTC &= ~(1<<6); -// } - -// void true_note(float x, float y, float length) { -// for (uint32_t i = 0; i < length * 50; i++) { -// uint32_t v = (uint32_t) (round(sin(PI*2*i*640000*pow(2, x/12.0))*.5+1 + sin(PI*2*i*640000*pow(2, y/12.0))*.5+1) / 2 * pow(2, 8)); -// for (int u = 0; u < 8; u++) { -// if (v & (1 << u) && !(PORTC&(1<<6))) -// PORTC |= (1<<6); -// else if (PORTC&(1<<6)) -// PORTC &= ~(1<<6); -// } -// } -// PORTC &= ~(1<<6); -// } \ No newline at end of file diff --git a/keyboard/preonic/beeps.h b/keyboard/preonic/beeps.h deleted file mode 100644 index 378983c605..0000000000 --- a/keyboard/preonic/beeps.h +++ /dev/null @@ -1,12 +0,0 @@ -#include -#include -#include -#include - -void note(int x, float length); -void beeps(); -void true_note(float x, float y, float length); -void play_note(double freq, int vol); -void stop_note(double freq); -void stop_all_notes(); -void init_notes(); \ No newline at end of file diff --git a/keyboard/preonic/config.h b/keyboard/preonic/config.h index cad269c9d4..5528667fa7 100644 --- a/keyboard/preonic/config.h +++ b/keyboard/preonic/config.h @@ -18,11 +18,11 @@ along with this program. If not, see . #ifndef CONFIG_H #define CONFIG_H -#include "config_definitions.h" +#include "config_common.h" /* USB Device descriptor parameter */ #define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x6062 +#define PRODUCT_ID 0x6061 #define DEVICE_VER 0x0001 #define MANUFACTURER Ortholinear Keyboards #define PRODUCT The Preonic Keyboard @@ -34,7 +34,10 @@ along with this program. If not, see . /* Planck PCB default pin-out */ #define COLS (int []){ F1, F0, B0, C7, F4, F5, F6, F7, D4, D6, B4, D7 } -#define ROWS (int []){ D1, D0, D5, B5, B6 } +#define ROWS (int []){ D2, D5, B5, B6, D3 } + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW /* define if matrix has ghost */ //#define MATRIX_HAS_GHOST @@ -55,6 +58,15 @@ along with this program. If not, see . keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ ) +/* ws2812 RGB LED */ +#define ws2812_PORTREG PORTD +#define ws2812_DDRREG DDRD +#define ws2812_pin PD1 +#define RGBLED_NUM 28 // Number of LEDs +#define RGBLIGHT_HUE_STEP 10 +#define RGBLIGHT_SAT_STEP 17 +#define RGBLIGHT_VAL_STEP 17 + /* * Feature disable options * These options are also useful to firmware size reduction. diff --git a/keyboard/preonic/config_definitions.h b/keyboard/preonic/config_definitions.h deleted file mode 100644 index fd138b8841..0000000000 --- a/keyboard/preonic/config_definitions.h +++ /dev/null @@ -1,50 +0,0 @@ -#ifndef CONFIG_DEFINITIONS_H -#define CONFIG_DEFINITIONS_H - -#define B0 0x20 -#define B1 0x21 -#define B2 0x22 -#define B3 0x23 -#define B4 0x24 -#define B5 0x25 -#define B6 0x26 -#define B7 0x27 -#define C0 0x30 -#define C1 0x31 -#define C2 0x32 -#define C3 0x33 -#define C4 0x34 -#define C5 0x35 -#define C6 0x36 -#define C7 0x37 -#define D0 0x40 -#define D1 0x41 -#define D2 0x42 -#define D3 0x43 -#define D4 0x44 -#define D5 0x45 -#define D6 0x46 -#define D7 0x47 -#define E0 0x50 -#define E1 0x51 -#define E2 0x52 -#define E3 0x53 -#define E4 0x54 -#define E5 0x55 -#define E6 0x56 -#define E7 0x57 -#define F0 0x60 -#define F1 0x61 -#define F2 0x62 -#define F3 0x63 -#define F4 0x64 -#define F5 0x65 -#define F6 0x66 -#define F7 0x67 - - - - - -#endif - diff --git a/keyboard/preonic/extended_keymap_common.c b/keyboard/preonic/extended_keymap_common.c deleted file mode 100644 index 4fa80de7cf..0000000000 --- a/keyboard/preonic/extended_keymap_common.c +++ /dev/null @@ -1,216 +0,0 @@ -/* -Copyright 2012,2013 Jun Wako - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#include "extended_keymap_common.h" -#include "report.h" -#include "keycode.h" -#include "action_layer.h" -#include "action.h" -#include "action_macro.h" -#include "debug.h" -#include "backlight.h" -#include "keymap_midi.h" -#include - -static action_t keycode_to_action(uint16_t keycode); - -/* converts key to action */ -action_t action_for_key(uint8_t layer, keypos_t key) -{ - // 16bit keycodes - important - uint16_t keycode = keymap_key_to_keycode(layer, key); - - if (keycode >= 0x0100 && keycode < 0x2000) { - // Has a modifier - action_t action; - // Split it up - action.code = ACTION_MODS_KEY(keycode >> 8, keycode & 0xFF); - return action; - } else if (keycode >= 0x2000 && keycode < 0x3000) { - // Is a shortcut for function layer, pull last 12bits - return keymap_func_to_action(keycode & 0xFFF); - } else if (keycode >= 0x3000 && keycode < 0x4000) { - action_t action; - action.code = ACTION_MACRO(keycode & 0xFF); - return action; - } else if (keycode >= BL_0 & keycode <= BL_15) { - action_t action; - action.code = ACTION_BACKLIGHT_LEVEL(keycode & 0x000F); - return action; - } else if (keycode == BL_DEC) { - action_t action; - action.code = ACTION_BACKLIGHT_DECREASE(); - return action; - } else if (keycode == BL_INC) { - action_t action; - action.code = ACTION_BACKLIGHT_INCREASE(); - return action; - } else if (keycode == BL_TOGG) { - action_t action; - action.code = ACTION_BACKLIGHT_TOGGLE(); - return action; - } else if (keycode == BL_STEP) { - action_t action; - action.code = ACTION_BACKLIGHT_STEP(); - return action; - } else if (keycode == RESET) { - bootloader_jump(); - return; - } else if (keycode == DEBUG) { - print("\nDEBUG: enabled.\n"); - debug_enable = true; - return; - } else if (keycode >= 0x6000 && keycode < 0x7000) { - action_t action; - action.code = ACTION_FUNCTION_OPT(keycode & 0xFF, (keycode & 0x0F00) >> 8); - return action; - } - - switch (keycode) { - case KC_FN0 ... KC_FN31: - return keymap_fn_to_action(keycode); -#ifdef BOOTMAGIC_ENABLE - case KC_CAPSLOCK: - case KC_LOCKING_CAPS: - if (keymap_config.swap_control_capslock || keymap_config.capslock_to_control) { - return keycode_to_action(KC_LCTL); - } - return keycode_to_action(keycode); - case KC_LCTL: - if (keymap_config.swap_control_capslock) { - return keycode_to_action(KC_CAPSLOCK); - } - return keycode_to_action(KC_LCTL); - case KC_LALT: - if (keymap_config.swap_lalt_lgui) { - if (keymap_config.no_gui) { - return keycode_to_action(ACTION_NO); - } - return keycode_to_action(KC_LGUI); - } - return keycode_to_action(KC_LALT); - case KC_LGUI: - if (keymap_config.swap_lalt_lgui) { - return keycode_to_action(KC_LALT); - } - if (keymap_config.no_gui) { - return keycode_to_action(ACTION_NO); - } - return keycode_to_action(KC_LGUI); - case KC_RALT: - if (keymap_config.swap_ralt_rgui) { - if (keymap_config.no_gui) { - return keycode_to_action(ACTION_NO); - } - return keycode_to_action(KC_RGUI); - } - return keycode_to_action(KC_RALT); - case KC_RGUI: - if (keymap_config.swap_ralt_rgui) { - return keycode_to_action(KC_RALT); - } - if (keymap_config.no_gui) { - return keycode_to_action(ACTION_NO); - } - return keycode_to_action(KC_RGUI); - case KC_GRAVE: - if (keymap_config.swap_grave_esc) { - return keycode_to_action(KC_ESC); - } - return keycode_to_action(KC_GRAVE); - case KC_ESC: - if (keymap_config.swap_grave_esc) { - return keycode_to_action(KC_GRAVE); - } - return keycode_to_action(KC_ESC); - case KC_BSLASH: - if (keymap_config.swap_backslash_backspace) { - return keycode_to_action(KC_BSPACE); - } - return keycode_to_action(KC_BSLASH); - case KC_BSPACE: - if (keymap_config.swap_backslash_backspace) { - return keycode_to_action(KC_BSLASH); - } - return keycode_to_action(KC_BSPACE); -#endif - default: - return keycode_to_action(keycode); - } -} - - -/* Macro */ -__attribute__ ((weak)) -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) -{ - return MACRO_NONE; -} - -/* Function */ -__attribute__ ((weak)) -void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) -{ -} - -/* translates keycode to action */ -static action_t keycode_to_action(uint16_t keycode) -{ - action_t action; - switch (keycode) { - case KC_A ... KC_EXSEL: - case KC_LCTRL ... KC_RGUI: - action.code = ACTION_KEY(keycode); - break; - case KC_SYSTEM_POWER ... KC_SYSTEM_WAKE: - action.code = ACTION_USAGE_SYSTEM(KEYCODE2SYSTEM(keycode)); - break; - case KC_AUDIO_MUTE ... KC_WWW_FAVORITES: - action.code = ACTION_USAGE_CONSUMER(KEYCODE2CONSUMER(keycode)); - break; - case KC_MS_UP ... KC_MS_ACCEL2: - action.code = ACTION_MOUSEKEY(keycode); - break; - case KC_TRNS: - action.code = ACTION_TRANSPARENT; - break; - default: - action.code = ACTION_NO; - break; - } - return action; -} - - -/* translates key to keycode */ -uint16_t keymap_key_to_keycode(uint8_t layer, keypos_t key) -{ - // Read entire word (16bits) - return pgm_read_word(&keymaps[(layer)][(key.row)][(key.col)]); -} - -/* translates Fn keycode to action */ -action_t keymap_fn_to_action(uint16_t keycode) -{ - return (action_t){ .code = pgm_read_word(&fn_actions[FN_INDEX(keycode)]) }; -} - -action_t keymap_func_to_action(uint16_t keycode) -{ - // For FUNC without 8bit limit - return (action_t){ .code = pgm_read_word(&fn_actions[(int)keycode]) }; -} diff --git a/keyboard/preonic/extended_keymap_common.h b/keyboard/preonic/extended_keymap_common.h deleted file mode 100644 index 7ccfa1b039..0000000000 --- a/keyboard/preonic/extended_keymap_common.h +++ /dev/null @@ -1,181 +0,0 @@ -/* -Copyright 2012,2013 Jun Wako - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#ifndef KEYMAP_H -#define KEYMAP_H - -#include -#include -#include "action.h" -#include -#include "keycode.h" -#include "keymap.h" -#include "action_macro.h" -#include "report.h" -#include "host.h" -// #include "print.h" -#include "debug.h" - -#ifdef BOOTMAGIC_ENABLE -/* NOTE: Not portable. Bit field order depends on implementation */ -typedef union { - uint16_t raw; - struct { - bool swap_control_capslock:1; - bool capslock_to_control:1; - bool swap_lalt_lgui:1; - bool swap_ralt_rgui:1; - bool no_gui:1; - bool swap_grave_esc:1; - bool swap_backslash_backspace:1; - bool nkro:1; - }; -} keymap_config_t; -keymap_config_t keymap_config; -#endif - - -/* translates key to keycode */ -uint16_t keymap_key_to_keycode(uint8_t layer, keypos_t key); - -/* translates Fn keycode to action */ -action_t keymap_fn_to_action(uint16_t keycode); - -/* translates Fn keycode to action */ -action_t keymap_func_to_action(uint16_t keycode); - -extern const uint16_t keymaps[][MATRIX_ROWS][MATRIX_COLS]; -extern const uint16_t fn_actions[]; - -// Ability to use mods in layouts -#define LCTL(kc) kc | 0x0100 -#define LSFT(kc) kc | 0x0200 -#define LALT(kc) kc | 0x0400 -#define LGUI(kc) kc | 0x0800 -#define RCTL(kc) kc | 0x1100 -#define RSFT(kc) kc | 0x1200 -#define RALT(kc) kc | 0x1400 -#define RGUI(kc) kc | 0x1800 - -// Alias for function layers than expand past FN31 -#define FUNC(kc) kc | 0x2000 - -// Aliases -#define S(kc) LSFT(kc) -#define F(kc) FUNC(kc) - -// For software implementation of colemak -#define CM_Q KC_Q -#define CM_W KC_W -#define CM_F KC_E -#define CM_P KC_R -#define CM_G KC_T -#define CM_J KC_Y -#define CM_L KC_U -#define CM_U KC_I -#define CM_Y KC_O -#define CM_SCLN KC_P - -#define CM_A KC_A -#define CM_R KC_S -#define CM_S KC_D -#define CM_T KC_F -#define CM_D KC_G -#define CM_H KC_H -#define CM_N KC_J -#define CM_E KC_K -#define CM_I KC_L -#define CM_O KC_SCLN - -#define CM_Z KC_Z -#define CM_X KC_X -#define CM_C KC_C -#define CM_V KC_V -#define CM_B KC_B -#define CM_K KC_N -#define CM_M KC_M -#define CM_COMM KC_COMM -#define CM_DOT KC_DOT -#define CM_SLSH KC_SLSH - -// Make it easy to support these in macros -#define KC_CM_Q CM_Q -#define KC_CM_W CM_W -#define KC_CM_F CM_F -#define KC_CM_P CM_P -#define KC_CM_G CM_G -#define KC_CM_J CM_J -#define KC_CM_L CM_L -#define KC_CM_U CM_U -#define KC_CM_Y CM_Y -#define KC_CM_SCLN CM_SCLN - -#define KC_CM_A CM_A -#define KC_CM_R CM_R -#define KC_CM_S CM_S -#define KC_CM_T CM_T -#define KC_CM_D CM_D -#define KC_CM_H CM_H -#define KC_CM_N CM_N -#define KC_CM_E CM_E -#define KC_CM_I CM_I -#define KC_CM_O CM_O - -#define KC_CM_Z CM_Z -#define KC_CM_X CM_X -#define KC_CM_C CM_C -#define KC_CM_V CM_V -#define KC_CM_B CM_B -#define KC_CM_K CM_K -#define KC_CM_M CM_M -#define KC_CM_COMM CM_COMM -#define KC_CM_DOT CM_DOT -#define KC_CM_SLSH CM_SLSH - -#define M(kc) kc | 0x3000 - -#define MACRODOWN(...) (record->event.pressed ? MACRO(__VA_ARGS__) : MACRO_NONE) - -#define BL_ON 0x4009 -#define BL_OFF 0x4000 -#define BL_0 0x4000 -#define BL_1 0x4001 -#define BL_2 0x4002 -#define BL_3 0x4003 -#define BL_4 0x4004 -#define BL_5 0x4005 -#define BL_6 0x4006 -#define BL_7 0x4007 -#define BL_8 0x4008 -#define BL_9 0x4009 -#define BL_10 0x400A -#define BL_11 0x400B -#define BL_12 0x400C -#define BL_13 0x400D -#define BL_14 0x400E -#define BL_15 0x400F -#define BL_DEC 0x4010 -#define BL_INC 0x4011 -#define BL_TOGG 0x4012 -#define BL_STEP 0x4013 - -#define RESET 0x5000 -#define DEBUG 0x5001 - -#define MIDI(n) n | 0x6000 - -#endif diff --git a/keyboard/preonic/extended_keymaps/extended_keymap_default.c b/keyboard/preonic/extended_keymaps/extended_keymap_default.c deleted file mode 100644 index b52f60fd08..0000000000 --- a/keyboard/preonic/extended_keymaps/extended_keymap_default.c +++ /dev/null @@ -1,70 +0,0 @@ -#include "extended_keymap_common.h" -#include "backlight.h" -#include "lufa.h" -#include "debug.h" - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[0] = { /* Qwerty */ - {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL}, - {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, - {KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, - {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT}, - {M(0), KC_LCTL, KC_LALT, KC_LGUI, FUNC(2), KC_SPC, KC_SPC, FUNC(1), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} - // Space is repeated to accommadate for both spacebar wiring positions -}, -[1] = { /* Colemak */ - {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL}, - {KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC}, - {KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT}, - {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT}, - {KC_FN3, KC_LCTL, KC_LALT, KC_LGUI, FUNC(2), KC_SPC, KC_SPC, FUNC(1), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} -}, -[2] = { /* RAISE */ - {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL}, - {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, - {KC_TRNS, FUNC(3), FUNC(4), RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS}, - {KC_TRNS, KC_F11, KC_F12, 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, FUNC(1), KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} -}, -[3] = { /* LOWER */ - {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL}, - {S(KC_GRV), S(KC_1), S(KC_2), S(KC_3), S(KC_4), S(KC_5), S(KC_6), S(KC_7), S(KC_8), S(KC_9), S(KC_0), KC_BSPC}, - {KC_TRNS, FUNC(3), FUNC(4), RESET, KC_TRNS, KC_TRNS, KC_TRNS, S(KC_MINS), S(KC_EQL), S(KC_LBRC), S(KC_RBRC), S(KC_BSLS)}, - {KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_TRNS}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, FUNC(2), KC_TRNS, KC_TRNS, KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} -}, -[4] = { /* TENKEY */ - {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL}, - {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_KP_7, KC_KP_8, KC_KP_9, KC_P, KC_BSPC}, - {KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_KP_4, KC_KP_5, KC_KP_6, KC_SCLN, KC_QUOT}, - {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_KP_1, KC_KP_2, KC_KP_3, KC_SLSH, KC_ENT}, - {KC_TRNS, KC_LCTL, KC_LALT, KC_LGUI, KC_TRNS, KC_SPC, KC_SPC, KC_KP_0, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} -} -}; - -const uint16_t PROGMEM fn_actions[] = { - [1] = ACTION_LAYER_MOMENTARY(2), // to RAISE - [2] = ACTION_LAYER_MOMENTARY(3), // to LOWER - - [3] = ACTION_DEFAULT_LAYER_SET(0), - [4] = ACTION_DEFAULT_LAYER_SET(1), - -}; - -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) -{ - // MACRODOWN only works in this function - switch(id) { - case 0: - if (record->event.pressed) { - register_code(KC_RSFT); - midi_send_noteon(&midi_device, 1, 64, 127); - backlight_step(); - } else { - unregister_code(KC_RSFT); - midi_send_noteoff(&midi_device, 1, 64, 127); - } - break; - } - return MACRO_NONE; -}; diff --git a/keyboard/preonic/extended_keymaps/extended_keymap_lock.c b/keyboard/preonic/extended_keymaps/extended_keymap_lock.c deleted file mode 100644 index ec7bc776ac..0000000000 --- a/keyboard/preonic/extended_keymaps/extended_keymap_lock.c +++ /dev/null @@ -1,81 +0,0 @@ -#include "extended_keymap_common.h" -#include "backlight.h" -#include "action_layer.h" -#include "keymap_midi.h" -#include "beeps.h" - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[0] = { /* Qwerty */ - {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, - {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, - {KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, - {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT}, - {M(0), KC_LCTL, KC_LALT, KC_LGUI, FUNC(2), KC_SPC, KC_SPC, FUNC(1), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} - // Space is repeated to accommadate for both spacebar wiring positions -}, -[1] = { /* Colemak */ - {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, - {KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC}, - {KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT}, - {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT}, - {KC_FN3, KC_LCTL, KC_LALT, KC_LGUI, FUNC(2), KC_SPC, KC_SPC, FUNC(1), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} -}, -[2] = { /* RAISE */ - {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, - {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, - {KC_TRNS, FUNC(3), FUNC(4), RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS}, - {KC_TRNS, KC_F11, KC_F12, 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, FUNC(1), KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} -}, -[3] = { /* LOWER */ - {KC_GRV, S(KC_1), S(KC_2), S(KC_3), S(KC_4), S(KC_5), S(KC_6), S(KC_7), S(KC_8), S(KC_9), S(KC_0), KC_BSPC}, - {S(KC_GRV), S(KC_1), S(KC_2), S(KC_3), S(KC_4), S(KC_5), S(KC_6), S(KC_7), S(KC_8), S(KC_9), S(KC_0), KC_BSPC}, - {KC_TRNS, FUNC(3), FUNC(4), RESET, KC_TRNS, KC_TRNS, KC_TRNS, S(KC_MINS), S(KC_EQL), S(KC_LBRC), S(KC_RBRC), S(KC_BSLS)}, - {KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_TRNS}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, FUNC(2), KC_TRNS, KC_TRNS, KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} -}, -[4] = { /* TENKEY */ - {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, - {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_KP_7, KC_KP_8, KC_KP_9, KC_P, KC_BSPC}, - {KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_KP_4, KC_KP_5, KC_KP_6, KC_SCLN, KC_QUOT}, - {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_KP_1, KC_KP_2, KC_KP_3, KC_SLSH, KC_ENT}, - {KC_TRNS, KC_LCTL, KC_LALT, KC_LGUI, KC_TRNS, KC_SPC, KC_SPC, KC_KP_0, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} -}, -[5] = { - { MIDI12 }, - { MIDI12 }, - { MIDI12 }, - { MIDI12 }, - {M(0), KC_LCTL, KC_LALT, KC_LGUI, FUNC(2), KC_SPC, KC_SPC, FUNC(1), MIDI, MIDI, MIDI, MIDI} -} - -}; - -const uint16_t PROGMEM fn_actions[] = { - [1] = ACTION_LAYER_MOMENTARY(2), // to RAISE - [2] = ACTION_LAYER_MOMENTARY(3), // to LOWER - - [3] = ACTION_DEFAULT_LAYER_SET(0), - [4] = ACTION_DEFAULT_LAYER_SET(1), - -}; - -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) -{ - switch(id) { - case 0: - if (record->event.pressed) { - // register_code(KC_RSFT); - backlight_set(BACKLIGHT_LEVELS); - default_layer_and(0); - default_layer_or((1<<5)); - } else { - // unregister_code(KC_RSFT); - backlight_set(0); - default_layer_and(0); - default_layer_or(0); - } - break; - } - return MACRO_NONE; -}; diff --git a/keyboard/preonic/keymap_midi.c b/keyboard/preonic/keymap_midi.c deleted file mode 100644 index a0fa59990c..0000000000 --- a/keyboard/preonic/keymap_midi.c +++ /dev/null @@ -1,110 +0,0 @@ -/* -Copyright 2015 Jack Humbert - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#include "extended_keymap_common.h" -#include "keymap_midi.h" -#include - -uint8_t starting_note = 0x0C; -int offset = 7; - -void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) -{ - if (id != 0) { - if (record->event.pressed) { - midi_send_noteon(&midi_device, opt, (id & 0xFF), 127); - } else { - midi_send_noteoff(&midi_device, opt, (id & 0xFF), 127); - } - } - - if (record->event.key.col == (MATRIX_COLS - 1) && record->event.key.row == (MATRIX_ROWS - 1)) { - if (record->event.pressed) { - starting_note++; - play_note(((double)261.6)*pow(2.0, -1.0)*pow(2.0,(starting_note + SCALE[0 + offset])/12.0+(MATRIX_ROWS - 1)), 0xC); - midi_send_cc(&midi_device, 0, 0x7B, 0); - midi_send_cc(&midi_device, 1, 0x7B, 0); - midi_send_cc(&midi_device, 2, 0x7B, 0); - midi_send_cc(&midi_device, 3, 0x7B, 0); - midi_send_cc(&midi_device, 4, 0x7B, 0); - return; - } else { - stop_note(((double)261.6)*pow(2.0, -1.0)*pow(2.0,(starting_note + SCALE[0 + offset])/12.0+(MATRIX_ROWS - 1))); - stop_all_notes(); - return; - } - } - if (record->event.key.col == (MATRIX_COLS - 2) && record->event.key.row == (MATRIX_ROWS - 1)) { - if (record->event.pressed) { - starting_note--; - play_note(((double)261.6)*pow(2.0, -1.0)*pow(2.0,(starting_note + SCALE[0 + offset])/12.0+(MATRIX_ROWS - 1)), 0xC); - midi_send_cc(&midi_device, 0, 0x7B, 0); - midi_send_cc(&midi_device, 1, 0x7B, 0); - midi_send_cc(&midi_device, 2, 0x7B, 0); - midi_send_cc(&midi_device, 3, 0x7B, 0); - midi_send_cc(&midi_device, 4, 0x7B, 0); - return; - } else { - stop_note(((double)261.6)*pow(2.0, -1.0)*pow(2.0,(starting_note + SCALE[0 + offset])/12.0+(MATRIX_ROWS - 1))); - stop_all_notes(); - return; - } - } - - if (record->event.key.col == (MATRIX_COLS - 3) && record->event.key.row == (MATRIX_ROWS - 1) && record->event.pressed) { - offset++; - midi_send_cc(&midi_device, 0, 0x7B, 0); - midi_send_cc(&midi_device, 1, 0x7B, 0); - midi_send_cc(&midi_device, 2, 0x7B, 0); - midi_send_cc(&midi_device, 3, 0x7B, 0); - midi_send_cc(&midi_device, 4, 0x7B, 0); - stop_all_notes(); - for (int i = 0; i <= 7; i++) { - play_note(((double)261.6)*pow(2.0, -1.0)*pow(2.0,(starting_note + SCALE[i + offset])/12.0+(MATRIX_ROWS - 1)), 0xC); - _delay_us(80000); - stop_note(((double)261.6)*pow(2.0, -1.0)*pow(2.0,(starting_note + SCALE[i + offset])/12.0+(MATRIX_ROWS - 1))); - _delay_us(8000); - } - return; - } - if (record->event.key.col == (MATRIX_COLS - 4) && record->event.key.row == (MATRIX_ROWS - 1) && record->event.pressed) { - offset--; - midi_send_cc(&midi_device, 0, 0x7B, 0); - midi_send_cc(&midi_device, 1, 0x7B, 0); - midi_send_cc(&midi_device, 2, 0x7B, 0); - midi_send_cc(&midi_device, 3, 0x7B, 0); - midi_send_cc(&midi_device, 4, 0x7B, 0); - stop_all_notes(); - for (int i = 0; i <= 7; i++) { - play_note(((double)261.6)*pow(2.0, -1.0)*pow(2.0,(starting_note + SCALE[i + offset])/12.0+(MATRIX_ROWS - 1)), 0xC); - _delay_us(80000); - stop_note(((double)261.6)*pow(2.0, -1.0)*pow(2.0,(starting_note + SCALE[i + offset])/12.0+(MATRIX_ROWS - 1))); - _delay_us(8000); - } - return; - } - - if (record->event.pressed) { - // midi_send_noteon(&midi_device, record->event.key.row, starting_note + SCALE[record->event.key.col], 127); - midi_send_noteon(&midi_device, 0, (starting_note + SCALE[record->event.key.col + offset])+12*(MATRIX_ROWS - record->event.key.row), 127); - play_note(((double)261.6)*pow(2.0, -1.0)*pow(2.0,(starting_note + SCALE[record->event.key.col + offset])/12.0+(MATRIX_ROWS - record->event.key.row)), 0xF); - } else { - // midi_send_noteoff(&midi_device, record->event.key.row, starting_note + SCALE[record->event.key.col], 127); - midi_send_noteoff(&midi_device, 0, (starting_note + SCALE[record->event.key.col + offset])+12*(MATRIX_ROWS - record->event.key.row), 127); - stop_note(((double)261.6)*pow(2.0, -1.0)*pow(2.0,(starting_note + SCALE[record->event.key.col + offset])/12.0+(MATRIX_ROWS - record->event.key.row))); - } -} \ No newline at end of file diff --git a/keyboard/preonic/keymap_midi.h b/keyboard/preonic/keymap_midi.h deleted file mode 100644 index c5917f884e..0000000000 --- a/keyboard/preonic/keymap_midi.h +++ /dev/null @@ -1,220 +0,0 @@ -/* -Copyright 2015 Jack Humbert - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#ifndef KEYMAP_MIDI_H -#define KEYMAP_MIDI_H - -#define MIDI 0x6000 -#define MIDI12 0x6000, 0x6000, 0x6000, 0x6000, 0x6000, 0x6000, 0x6000, 0x6000, 0x6000, 0x6000, 0x6000, 0x6000 - -#define CHNL(note, channel) (note + (channel << 8)) - -#define SCALE (int []){ 0 + (12*0), 2 + (12*0), 4 + (12*0), 5 + (12*0), 7 + (12*0), 9 + (12*0), 11 + (12*0), \ - 0 + (12*1), 2 + (12*1), 4 + (12*1), 5 + (12*1), 7 + (12*1), 9 + (12*1), 11 + (12*1), \ - 0 + (12*2), 2 + (12*2), 4 + (12*2), 5 + (12*2), 7 + (12*2), 9 + (12*2), 11 + (12*2), \ - 0 + (12*3), 2 + (12*3), 4 + (12*3), 5 + (12*3), 7 + (12*3), 9 + (12*3), 11 + (12*3), \ - 0 + (12*4), 2 + (12*4), 4 + (12*4), 5 + (12*4), 7 + (12*4), 9 + (12*4), 11 + (12*4), } - -#define N_CN1 (0x600C + (12 * -1) + 0 ) -#define N_CN1S (0x600C + (12 * -1) + 1 ) -#define N_DN1F (0x600C + (12 * -1) + 1 ) -#define N_DN1 (0x600C + (12 * -1) + 2 ) -#define N_DN1S (0x600C + (12 * -1) + 3 ) -#define N_EN1F (0x600C + (12 * -1) + 3 ) -#define N_EN1 (0x600C + (12 * -1) + 4 ) -#define N_FN1 (0x600C + (12 * -1) + 5 ) -#define N_FN1S (0x600C + (12 * -1) + 6 ) -#define N_GN1F (0x600C + (12 * -1) + 6 ) -#define N_GN1 (0x600C + (12 * -1) + 7 ) -#define N_GN1S (0x600C + (12 * -1) + 8 ) -#define N_AN1F (0x600C + (12 * -1) + 8 ) -#define N_AN1 (0x600C + (12 * -1) + 9 ) -#define N_AN1S (0x600C + (12 * -1) + 10) -#define N_BN1F (0x600C + (12 * -1) + 10) -#define N_BN1 (0x600C + (12 * -1) + 11) -#define N_C0 (0x600C + (12 * 0) + 0 ) -#define N_C0S (0x600C + (12 * 0) + 1 ) -#define N_D0F (0x600C + (12 * 0) + 1 ) -#define N_D0 (0x600C + (12 * 0) + 2 ) -#define N_D0S (0x600C + (12 * 0) + 3 ) -#define N_E0F (0x600C + (12 * 0) + 3 ) -#define N_E0 (0x600C + (12 * 0) + 4 ) -#define N_F0 (0x600C + (12 * 0) + 5 ) -#define N_F0S (0x600C + (12 * 0) + 6 ) -#define N_G0F (0x600C + (12 * 0) + 6 ) -#define N_G0 (0x600C + (12 * 0) + 7 ) -#define N_G0S (0x600C + (12 * 0) + 8 ) -#define N_A0F (0x600C + (12 * 0) + 8 ) -#define N_A0 (0x600C + (12 * 0) + 9 ) -#define N_A0S (0x600C + (12 * 0) + 10) -#define N_B0F (0x600C + (12 * 0) + 10) -#define N_B0 (0x600C + (12 * 0) + 11) -#define N_C1 (0x600C + (12 * 1) + 0 ) -#define N_C1S (0x600C + (12 * 1) + 1 ) -#define N_D1F (0x600C + (12 * 1) + 1 ) -#define N_D1 (0x600C + (12 * 1) + 2 ) -#define N_D1S (0x600C + (12 * 1) + 3 ) -#define N_E1F (0x600C + (12 * 1) + 3 ) -#define N_E1 (0x600C + (12 * 1) + 4 ) -#define N_F1 (0x600C + (12 * 1) + 5 ) -#define N_F1S (0x600C + (12 * 1) + 6 ) -#define N_G1F (0x600C + (12 * 1) + 6 ) -#define N_G1 (0x600C + (12 * 1) + 7 ) -#define N_G1S (0x600C + (12 * 1) + 8 ) -#define N_A1F (0x600C + (12 * 1) + 8 ) -#define N_A1 (0x600C + (12 * 1) + 9 ) -#define N_A1S (0x600C + (12 * 1) + 10) -#define N_B1F (0x600C + (12 * 1) + 10) -#define N_B1 (0x600C + (12 * 1) + 11) -#define N_C2 (0x600C + (12 * 2) + 0 ) -#define N_C2S (0x600C + (12 * 2) + 1 ) -#define N_D2F (0x600C + (12 * 2) + 1 ) -#define N_D2 (0x600C + (12 * 2) + 2 ) -#define N_D2S (0x600C + (12 * 2) + 3 ) -#define N_E2F (0x600C + (12 * 2) + 3 ) -#define N_E2 (0x600C + (12 * 2) + 4 ) -#define N_F2 (0x600C + (12 * 2) + 5 ) -#define N_F2S (0x600C + (12 * 2) + 6 ) -#define N_G2F (0x600C + (12 * 2) + 6 ) -#define N_G2 (0x600C + (12 * 2) + 7 ) -#define N_G2S (0x600C + (12 * 2) + 8 ) -#define N_A2F (0x600C + (12 * 2) + 8 ) -#define N_A2 (0x600C + (12 * 2) + 9 ) -#define N_A2S (0x600C + (12 * 2) + 10) -#define N_B2F (0x600C + (12 * 2) + 10) -#define N_B2 (0x600C + (12 * 2) + 11) -#define N_C3 (0x600C + (12 * 3) + 0 ) -#define N_C3S (0x600C + (12 * 3) + 1 ) -#define N_D3F (0x600C + (12 * 3) + 1 ) -#define N_D3 (0x600C + (12 * 3) + 2 ) -#define N_D3S (0x600C + (12 * 3) + 3 ) -#define N_E3F (0x600C + (12 * 3) + 3 ) -#define N_E3 (0x600C + (12 * 3) + 4 ) -#define N_F3 (0x600C + (12 * 3) + 5 ) -#define N_F3S (0x600C + (12 * 3) + 6 ) -#define N_G3F (0x600C + (12 * 3) + 6 ) -#define N_G3 (0x600C + (12 * 3) + 7 ) -#define N_G3S (0x600C + (12 * 3) + 8 ) -#define N_A3F (0x600C + (12 * 3) + 8 ) -#define N_A3 (0x600C + (12 * 3) + 9 ) -#define N_A3S (0x600C + (12 * 3) + 10) -#define N_B3F (0x600C + (12 * 3) + 10) -#define N_B3 (0x600C + (12 * 3) + 11) -#define N_C4 (0x600C + (12 * 4) + 0 ) -#define N_C4S (0x600C + (12 * 4) + 1 ) -#define N_D4F (0x600C + (12 * 4) + 1 ) -#define N_D4 (0x600C + (12 * 4) + 2 ) -#define N_D4S (0x600C + (12 * 4) + 3 ) -#define N_E4F (0x600C + (12 * 4) + 3 ) -#define N_E4 (0x600C + (12 * 4) + 4 ) -#define N_F4 (0x600C + (12 * 4) + 5 ) -#define N_F4S (0x600C + (12 * 4) + 6 ) -#define N_G4F (0x600C + (12 * 4) + 6 ) -#define N_G4 (0x600C + (12 * 4) + 7 ) -#define N_G4S (0x600C + (12 * 4) + 8 ) -#define N_A4F (0x600C + (12 * 4) + 8 ) -#define N_A4 (0x600C + (12 * 4) + 9 ) -#define N_A4S (0x600C + (12 * 4) + 10) -#define N_B4F (0x600C + (12 * 4) + 10) -#define N_B4 (0x600C + (12 * 4) + 11) -#define N_C5 (0x600C + (12 * 5) + 0 ) -#define N_C5S (0x600C + (12 * 5) + 1 ) -#define N_D5F (0x600C + (12 * 5) + 1 ) -#define N_D5 (0x600C + (12 * 5) + 2 ) -#define N_D5S (0x600C + (12 * 5) + 3 ) -#define N_E5F (0x600C + (12 * 5) + 3 ) -#define N_E5 (0x600C + (12 * 5) + 4 ) -#define N_F5 (0x600C + (12 * 5) + 5 ) -#define N_F5S (0x600C + (12 * 5) + 6 ) -#define N_G5F (0x600C + (12 * 5) + 6 ) -#define N_G5 (0x600C + (12 * 5) + 7 ) -#define N_G5S (0x600C + (12 * 5) + 8 ) -#define N_A5F (0x600C + (12 * 5) + 8 ) -#define N_A5 (0x600C + (12 * 5) + 9 ) -#define N_A5S (0x600C + (12 * 5) + 10) -#define N_B5F (0x600C + (12 * 5) + 10) -#define N_B5 (0x600C + (12 * 5) + 11) -#define N_C6 (0x600C + (12 * 6) + 0 ) -#define N_C6S (0x600C + (12 * 6) + 1 ) -#define N_D6F (0x600C + (12 * 6) + 1 ) -#define N_D6 (0x600C + (12 * 6) + 2 ) -#define N_D6S (0x600C + (12 * 6) + 3 ) -#define N_E6F (0x600C + (12 * 6) + 3 ) -#define N_E6 (0x600C + (12 * 6) + 4 ) -#define N_F6 (0x600C + (12 * 6) + 5 ) -#define N_F6S (0x600C + (12 * 6) + 6 ) -#define N_G6F (0x600C + (12 * 6) + 6 ) -#define N_G6 (0x600C + (12 * 6) + 7 ) -#define N_G6S (0x600C + (12 * 6) + 8 ) -#define N_A6F (0x600C + (12 * 6) + 8 ) -#define N_A6 (0x600C + (12 * 6) + 9 ) -#define N_A6S (0x600C + (12 * 6) + 10) -#define N_B6F (0x600C + (12 * 6) + 10) -#define N_B6 (0x600C + (12 * 6) + 11) -#define N_C7 (0x600C + (12 * 7) + 0 ) -#define N_C7S (0x600C + (12 * 7) + 1 ) -#define N_D7F (0x600C + (12 * 7) + 1 ) -#define N_D7 (0x600C + (12 * 7) + 2 ) -#define N_D7S (0x600C + (12 * 7) + 3 ) -#define N_E7F (0x600C + (12 * 7) + 3 ) -#define N_E7 (0x600C + (12 * 7) + 4 ) -#define N_F7 (0x600C + (12 * 7) + 5 ) -#define N_F7S (0x600C + (12 * 7) + 6 ) -#define N_G7F (0x600C + (12 * 7) + 6 ) -#define N_G7 (0x600C + (12 * 7) + 7 ) -#define N_G7S (0x600C + (12 * 7) + 8 ) -#define N_A7F (0x600C + (12 * 7) + 8 ) -#define N_A7 (0x600C + (12 * 7) + 9 ) -#define N_A7S (0x600C + (12 * 7) + 10) -#define N_B7F (0x600C + (12 * 7) + 10) -#define N_B7 (0x600C + (12 * 7) + 11) -#define N_C8 (0x600C + (12 * 8) + 0 ) -#define N_C8S (0x600C + (12 * 8) + 1 ) -#define N_D8F (0x600C + (12 * 8) + 1 ) -#define N_D8 (0x600C + (12 * 8) + 2 ) -#define N_D8S (0x600C + (12 * 8) + 3 ) -#define N_E8F (0x600C + (12 * 8) + 3 ) -#define N_E8 (0x600C + (12 * 8) + 4 ) -#define N_F8 (0x600C + (12 * 8) + 5 ) -#define N_F8S (0x600C + (12 * 8) + 6 ) -#define N_G8F (0x600C + (12 * 8) + 6 ) -#define N_G8 (0x600C + (12 * 8) + 7 ) -#define N_G8S (0x600C + (12 * 8) + 8 ) -#define N_A8F (0x600C + (12 * 8) + 8 ) -#define N_A8 (0x600C + (12 * 8) + 9 ) -#define N_A8S (0x600C + (12 * 8) + 10) -#define N_B8F (0x600C + (12 * 8) + 10) -#define N_B8 (0x600C + (12 * 8) + 11) -#define N_C8 (0x600C + (12 * 8) + 0 ) -#define N_C8S (0x600C + (12 * 8) + 1 ) -#define N_D8F (0x600C + (12 * 8) + 1 ) -#define N_D8 (0x600C + (12 * 8) + 2 ) -#define N_D8S (0x600C + (12 * 8) + 3 ) -#define N_E8F (0x600C + (12 * 8) + 3 ) -#define N_E8 (0x600C + (12 * 8) + 4 ) -#define N_F8 (0x600C + (12 * 8) + 5 ) -#define N_F8S (0x600C + (12 * 8) + 6 ) -#define N_G8F (0x600C + (12 * 8) + 6 ) -#define N_G8 (0x600C + (12 * 8) + 7 ) -#define N_G8S (0x600C + (12 * 8) + 8 ) -#define N_A8F (0x600C + (12 * 8) + 8 ) -#define N_A8 (0x600C + (12 * 8) + 9 ) -#define N_A8S (0x600C + (12 * 8) + 10) -#define N_B8F (0x600C + (12 * 8) + 10) -#define N_B8 (0x600C + (12 * 8) + 11) - -#endif \ No newline at end of file diff --git a/keyboard/preonic/led.c b/keyboard/preonic/led.c deleted file mode 100644 index 2c05746607..0000000000 --- a/keyboard/preonic/led.c +++ /dev/null @@ -1,38 +0,0 @@ -/* -Copyright 2012 Jun Wako - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#include -#include "stdint.h" -#include "led.h" - - -void led_set(uint8_t usb_led) -{ - // // Using PE6 Caps Lock LED - // if (usb_led & (1<. -*/ - -/* - * scan matrix - */ -#include -#include -#include -#include -#include "print.h" -#include "debug.h" -#include "util.h" -#include "matrix.h" - -#ifndef DEBOUNCE -# define DEBOUNCE 10 -#endif -static uint8_t debouncing = DEBOUNCE; - -/* matrix state(1:on, 0:off) */ -static matrix_row_t matrix[MATRIX_ROWS]; -static matrix_row_t matrix_debouncing[MATRIX_ROWS]; - -static matrix_row_t read_cols(void); -static void init_cols(void); -static void unselect_rows(void); -static void select_row(uint8_t row); - -inline -uint8_t matrix_rows(void) -{ - return MATRIX_ROWS; -} - -inline -uint8_t matrix_cols(void) -{ - return MATRIX_COLS; -} - -void matrix_init(void) -{ - // To use PORTF disable JTAG with writing JTD bit twice within four cycles. - MCUCR |= (1<event.pressed) { // midi_send_noteon(&midi_device, record->event.key.row, starting_note + SCALE[record->event.key.col], 127); - midi_send_noteon(&midi_device, 0, (starting_note + SCALE[record->event.key.col + offset])+12*(MATRIX_ROWS - record->event.key.row), 127); + // midi_send_noteon(&midi_device, 0, (starting_note + SCALE[record->event.key.col + offset])+12*(MATRIX_ROWS - record->event.key.row), 127); play_note(((double)261.626)*pow(2.0, -1.0)*pow(2.0,(starting_note + SCALE[record->event.key.col + offset])/12.0+(MATRIX_ROWS - record->event.key.row)), 0xF); } else { // midi_send_noteoff(&midi_device, record->event.key.row, starting_note + SCALE[record->event.key.col], 127); - midi_send_noteoff(&midi_device, 0, (starting_note + SCALE[record->event.key.col + offset])+12*(MATRIX_ROWS - record->event.key.row), 127); + // midi_send_noteoff(&midi_device, 0, (starting_note + SCALE[record->event.key.col + offset])+12*(MATRIX_ROWS - record->event.key.row), 127); stop_note(((double)261.626)*pow(2.0, -1.0)*pow(2.0,(starting_note + SCALE[record->event.key.col + offset])/12.0+(MATRIX_ROWS - record->event.key.row))); } } \ No newline at end of file From b8ac5095708b5023f5e3e375b22534f8b395741f Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Wed, 30 Mar 2016 00:45:37 -0400 Subject: [PATCH 28/45] .hex files --- keyboard/preonic/Makefile | 4 ++-- keyboard/preonic/preonic_pcb.hex | Bin 0 -> 76538 bytes keyboard/preonic/preonic_pcb_silent.hex | Bin 0 -> 53449 bytes 3 files changed, 2 insertions(+), 2 deletions(-) create mode 100644 keyboard/preonic/preonic_pcb.hex create mode 100644 keyboard/preonic/preonic_pcb_silent.hex diff --git a/keyboard/preonic/Makefile b/keyboard/preonic/Makefile index 664aff7321..89c48e50a9 100644 --- a/keyboard/preonic/Makefile +++ b/keyboard/preonic/Makefile @@ -139,8 +139,8 @@ COMMAND_ENABLE = yes # Commands for debug and configuration # SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend # NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality -MIDI_ENABLE = YES # MIDI controls -AUDIO_ENABLE = YES # Audio output on port C6 +# MIDI_ENABLE = YES # MIDI controls +# AUDIO_ENABLE = YES # Audio output on port C6 # UNICODE_ENABLE = YES # Unicode # BLUETOOTH_ENABLE = yes # Enable Bluetooth with the Adafruit EZ-Key HID # RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight. Do not enable this with MIDI at the same time. diff --git a/keyboard/preonic/preonic_pcb.hex b/keyboard/preonic/preonic_pcb.hex new file mode 100644 index 0000000000000000000000000000000000000000..5bdc190e1de86190b370691f51b8b3faa38a7321 GIT binary patch literal 76538 zcma%^S#~Qs4rTvqt(uFaXe8C2+W8Nu_C5r{VOhQ}Z>FC*27?4aw1mbb=_%kMkfAJy~v)_C7z59``JpZl$^X`On4HyYngm)qlfJsqyoWj!zJ;e37GuGibLobQLnbbs}7 z-_!VhU+CrbSRc>F>v3A9=W9KjPRHqRd(m0<{BRijW5_T5lYh78<#?Ru%i%aZuiWBw zstG>%`FcHGZ_oSV&cFFS`4#`pU$->9UYBDv<}Nhu2Hesw_?J74w_lgyjb`cdd^nvS z)9p4-=hNeGn5M_!^7WkVcV_aao)5O3kLTm{alB2>_58e_kEiwad|b}2=iz#pp7Z_m z8pAlq&*!h_>-D-lzYh2L^*X(n>h^Df)1LQgEI%KZ(t!qEc;r?`-W>Vi2>%{we4DDV z{CtGCf!0N!B{K6|eAMDwSVV=iV^&Eb-C*R1g za+bZy2d)@HoQmu0^y`c9PV_W!(UUPBXmqeK9YDaZ$Dw-83NsdIC>bXjO!P4E!!bWj zUvpE#ySlzl#`%;q({emAZvVdKMPhud#T%LQLYE7TXNTim-bi`v<#uTAbbTk~SFfOV z+vv)eBw45-CAgF1y!J5sP8v&%rt6oabU0GO$#!EW7y7z#l0yn`u?y3ryfx{#(=WPy zNdhOyi=>=u%v|qn_}kI-7b$BG%4DJGp04ktyw&cOYQO0EPRiyw+4dKUI5ZIDzIKW$J2;LvQbZPYfn3$*=iY^t&@jB7VBCwwAKO@j+(uC%72>$)L)C$t*`^#}lZp)aj z(Ddr?yhE`l!wNP2DMec%P4dqhU4QZSwTIz2{}%#$HaywDi@bozrUUMBD9JA;<{#T=QkdJ|)Wh&1 z*!0p9l%I1;Z|yLuM{nPEoO{gj^Ix|=4K_m;)&%L0E?AQb|Gmin{9D6+U$1MvMc!0n zhULEl%@3jP<#<4-XD!)?{(NfV#Fd5b&o&Op)7MybFL&sd7GLfrw)S^lb0)#%$M4I} zMQ692WA??~$G@LLS&!Ygem~LI^xapc?DCDDi}~Hi{`=8a?&jrC$@izyuw%y`pw41% zX?DmYM=znvQnu(UKlAT`s2VhovkqJ;-C0qFa+qpS=J4|v*{LrGiB=^Ym(j(eCn#}Y zHGlAb;~r9YP}#d(Ud8;gccm#ZliS))er5m&%M6>LwA`5GXZ~r0jHVZ;fSB!u{x%nH z$c5T&Hk?rIZT;B68T0tLVj4_MI{7)b9(-_MFCAX5ught^+QH?tAVy2khZXGm^}1mB zoR+UMOm(Eus_GoyziOw<^7CkPp%M3SNSE`M{W^9=ahRKQgP)J<4T7Tsp#_FF@45Zg zg$udQ*SW-(Yoy__@Sh8*;V{A0C$z1avSV;L7)B zzrXh|oMAPxN2$DKx>sc8adgq7Tjb~Tw>7;F>M($>HLJKxwJ1yY`E^t zceChWgrB=tr*v*w^t3PhIwaB}KY!DJCHDgE=J%P3?MKi8k>RF)7N}P z-m<}OS0sBICyS!(#+SFti%orTCyrM-$Y(k@^_b=7d`WMI`Sv`|x6}D_dhz-?pRw{@ zxAjrmYLTB`=gZ6(qd>hdf`ab#oqJbgVcPzPg}_y+DL z!e^|YN|b$d38$`VfXDso#k!o2=fnAYoDd95sv6tsyf~N3yq+8|ugGSO{ctQER#7 zXV~C|wMe++>m@UEkJ9wAvM|L+kum2J zSbk=^hqk#bq7v$a?)j`l?FojTpS#BH>eucwOWwxzNq#;bc0Ea%mH=%HK82RA{*^bNe<^@Nna9qdxr6dw2GL0GN@l=iA zh2#Bs&jqaJ@j)Q5jBTtjhG9>vRM>QR&If4C-OiKmAzeo=6?0DFk{_VPajy4L<1nby zQ3wSkn=HMCd_*6;V7!+a2#9-e-C06QW0=?pjYd-ARPUk2tu*Xeeh%>&_Z<^Wp>nyi z5Esl1ZyIxAh_AE!%#YKVAK{b7>u@08%0O1k5Zr{_Sz6s>X<Q9FcwbuIL=ihSfkoK%LE?xl3Jywi*{5YQrKt zrE~RgK^y81e_w#3b~znt%vew~uG^it!^I2c_2C70cqk!qCKVu2ht)2aI z@z$^konPi`{# zTCitkMvzzTgnP7L)llW`gPP*OyYpiU?h9%=7oG-8J!Fe~Fa|xNN{5%`~Ir(ES{d*Fi6BOFOI?VKUNlLU~bjn49O^@^{8 zArdt=#(U#JSbDShui@vK%p-yG(U38Jtw{F+I=n@J^F#lQ2B!-{IDI$P7S&ql2o+x4 zpmRhO{;_n{{zn%e?p{RE>AC293qKRzajXc$r_NX`u+X{al3H!Rg zUT22V4JPiezo1MtLq?dBugCLB+yAby9~LS1sGj~*Cd6HSX2G2m%90`ScjxcH-<7``e{+%U9)8B>KEXvRM(Hvgu~vtCMk%p( zh^7=Z?(*}MaP)0CKF%lN>jtL?j+{%fqAw1|Qb70c^MT->|9g?$VHa^9GV55Q#F$^m zlWiFCvo=|qJcR2L^3<%-5IWRF`X#r*fkXBY27k9I=1 zfG#`5#|zH5A<@tMY8eR#cGuJl}u9R-o}UE?c_ zZ!~5P^Ln{FZt%?L`5`|Ov~~NBVLWL3q%jZ*Ua|Z1;Hz=?dEGVsy4{SrXgBeCW4jTb zug3E8r@hB!JwOY>Us$Ila)D0S7-J4DH;6@}FB$<%|m|vC|Hms>v_nMHmF!R+P(=ER*tyGdgk@z`*zYF@^k;7 zKzyFrl8BKXf~U6CLw-(t?oA5q1y6I`Bm9iid6z;g6IQQfM!DrrNNWW;FgFh4zA{Q`pb&^9L!k z7d&6JyPvT)K1d;i%qFG2nm1x^yh)+NfXPtjm0NU%7aw{Asqwe+BdOTY=vJ>+ltnMM zY-bO_miS6yCOu-Z<`p~qRwDN)Kc}(Yr;T-nc@-U!R})&*vu#J?8Y6b_xCo`3i&?XV z%)y=2xW))};E3h8B?s^mzdEh+lAjS%xVpbho)){;TEUm{SsDB1* zPq9mkKu6iTb|ml>e*VW0yz9M|`z1gBYY5(TZqmhmejmb{tTLw=L|m|cgNoQfGEVs`gK#W!B^Ga`7p^B?~I_255vjC%HD zcE8ZIhx@TCMg%Cb4vR4|`UIO`188c_2=jI3LascO&5!e>KZt`;rX*UF)b&rxu|0a@ ziiz$Zlt>2;0e-@AG;T*8oRkTcV~<%L#fObsit9fgv0Pf5;b#x)aSUS^#2q1N0f|XQ z{1Ougd2+$3c@Do@w~s|>TLUvk_l`TopUs^#d%AJ#jh3Q)+nv#>u~jifQ4DyROb9C9 zjz}hK9jutLYOs-vZkKs!UN#e)^^kL045;@B7VwxBH2!mfh_#Ex)nHMRy1NNtZRy@I z!DYJ>*4K3?O*6l;XsL-mCiom`f}k0Vw+SL3FEP_tVB^&uBqg|?AVwc7d^IwKBXJVeyW&b+hEsD$B=Lk_g&`A{ zy7LjwvO6AJP(~mLU3xwoF6)dJ)ZS0WmDomy8MZCs#66*9&dBtB;I?<~2m5j^fC?gx z#?OhJ28qzuab|4rTnSJR^XEInd(2DmD8nj9g9{CYzY^~v-{Is{9LW?Z|M1$|b1-iA zeBn^=O-C}zqbH(oW1O1Tf)`8%GLzGsFc5;n?!pu@#0;#B5g5AwBmoVw6EKY5afeIo z!GJf7`gIVp&B`NgWk-Q36-981j&FC|ejq6XzKCZ7`Zym>hLwd)l5hpCQq&myd`8H_ z%IcyrUSEt1ZhVrcxIc=YgMWTr4>PMp;2q`n7=Z;ZG)I4BdKEc2usLCV2E!($_t9YD zA`-VF4?^a2Bc1##hp`2C2VpAOqYgJktWH0c+z9^JtS-NRQsos5%PVP;YAn8|STxY= zG)BXwu^QIK=tVZ=S|j0cp&ZOJnYk#@w;u8{}=eF@#8C)-sK`LmG3(if6g+ZL`28$ zj@P@=FSH@CM~7iV=WM)VqCgZ}QpcZJJk2W1%C)>#vt#G56og02<%OV6M`j+HPH zvBh`XUVZ=yaPam@4FblDj19qetp@{4zL0suZnzmUQfeY`&o^k?g7T{*zb7BahK`g7 zBRv3N$esqBaOef90}FVKG*<895~3_fqrTsT(BM}opg=zNxBPUMI)flqNSMg?Ey=xN zVn{kjXfgtd6zGvPpz$63oJHA@>~ti+QB<017?F!jGJ2U$_SkYnQZk2vVT+Ss@%CgR z=Wrvh*<{NcMsV*CXr`H@zsPn39aYA*0>=P*#Pf@zF(k(bD`7u^X@TY>cnELb$|^wc zKn)~%g_6rabss}4WW|1l@EIe{<*i%kA@7RJ2?y|9pDB%=hpik>8%_3TPu1v z0oAr|Xr8b(?0sJ52Ro($We2hS5hU-jV=pMnqd(Axjekd|#7=ofxvoG6hX9;^a2+SZ z-np*Dm#h)X{7skQ? z|NLKEx0byT{Igu=vJwm6VB1)=y-#}>@r}d4KUYkDziRu1YIRJiIvIqhx2zfl3?Q3G zBF^kZ_&j?UkZ9d`1g%eAQy{Ifgb^7^*<-}OozlQ{(cta%!}!fwRR zezi(NkK$EV8l_I`LIz53mtdP@`O}va_T23v@3te&C;> zW$cU-+VjH#6^`++$j={@=5B$`BT!}{GT**HkfG2%E6+9|f`4vJ`j;51w9bLJ2Ge=a7P!ZJ7!U9qkGqc6k-ITUF2mw@w zEDpgx@5ELBu`RYXNmVQw{BvvncahLSrY)J^pVvRcR!gcnG^D-sTgY^eEvYJ>a`23k zLiM+0uv7RIe?A2N+=4K#JF&GWsR*LAaT5IVephS;_X8jbi=(8fW4Q+`X8u)*%XEV@xfAdD(|c*>%LF*(rOkjTo}4*()iAtEXYneU4KN}ly1^==+n)!o&{x9B`d(4|Z zNG<{H<6QJ_%e(^%!9QcN2W|70WnOt$AP-ECM&FjXUMBpoXMw_O6Ir3LQQ|!>yxSj3 znejw{DhjdVg)BcxXf{UYZyL*WdtP{7{;#rRf`9%M8`ueQWp`_`EqdsTnKb>`oHBokYw1pmDE{Whi|-e_tShDYR#J;)&?7|AaQ^p;J; z5tMPrNxkQHm6gW5r?G$JP!Q}FLgnLPyvihPaYaGkR?qTtdR86A{;JnXI3p`SFjeF5 zGmQ{>X-xEql-_eOz|L`s*;8``Z!lRG=H~>oM~~|dkeH|Fh!zupolYAg$;f^d+1=hlP4KZi^pv&qwdz?^dI zi|`s}e#s3Ar!3|V{@Gj74$|=l!44A!6DPy+neRLB8~ih3ZVQ;Um&u`vtC4LzqgNT* z!9P=g;YAwobv>e~3^LKcIGj_RXJYil{J}p{Cg`vt>R}}^H=JQ1;j$jdv54g*7+uiB zL-5a>r{yp*f1n778Jou9V?*;t`Wo7;UR;%z zh#u28hfZ-bK!cs`gxY0zH-qZgozi;H;u22ebU_ILj!Oo_25tl|Ff88QMDWkO*Lr&y z+OlDCOI+BVrUXJ-vZRDmynXiF+a4@5%OUvZPkWGwZ`lzIdGGGRKZmX`V-`YJ@Yp+MW%1jR3I3TA42F~+xOeQV+9{wwkIdmn;{q=o zf`29y^?v-L?D~8yoL{nModsNdVa1?O>ACDWI$;HG^vvpV zMEKnP!9RBo`-?cVJSYJ*s)QE_ZhD^oK?x^+EbA-y=YLVcJG9)m#oqV_ zC7eT*TOnuR1X&wEhjJ~yb20g7^6OV$Pd3?hcRst(Krs$I_rT|W;c+Ig$spTU_YSQ@iN zojriwWLDra-d7O`N{2CKPsqJ%EAn_`_b;qET-L+Teg=~Ow3nIl$C$}8bBvWg=8`01 z9jq4dJyaVgR8agLcLsEzSU>?K+k_6TGYE&^pWEO=q`Is1N8HsgUpDgLTK04B&$X+O z_c9u%w~9?orCS=J^WDKech79Vqt>InbDBK86LUUx`Yib8jFW`2!kex2qxajL^C@NJ z-sNW- zQf?>{EV+YD|QPn zig_wE@Y(h&_D;$+T!Vl9wPGw%3vxRttlA;?XO07g2i|*3CoE1O*gZ7Ng49aw7stgQ z9~kDpl`Z;+d`41=XcENa@)B|cLcnVPAUMLcyHSWtka5Xvlv*UcLyw4CgofxGM3=8c zXZe{_9>@j0L`JtLK)^r92WNj4P!mU$e=HWqV+J(9_wI5!;l!}fAS{*gCW3!z=Y8VM4g6VQ6pm*AJy#aDhm*{n9GA`+O!_Kdu|5*h-f77ZX<%Exjd#ZsnY3G?8eWlJijOnbJ>w!-~c zF}6Eo5&ZKBWBZJ;eZkn4&ITj1f-H_J+L@Z*pIxbJBNivOFYD1|cj9$A7_*u&%LAy0 z1FGWC3KV@pbsrDq;KP)sIq=VXf%5U(=K*CzPEG#M^MQ24J_-#^QjwnbM1^a z_#FJ{$u*s$ywOtaq3M*lg>xDTyo}~rm3p8uP%TQUGp@q2!S%SHj-ZU$ygGNRxphw$U0Oyx_u(AB2lh&}P;Gc1k z4!B78go4y`nOJ)GgWVJU=qT~PKl>&8;nIHMkJjD6Kg%rt;*TmVMNWn>r^kQrM=PM< zpEH@rh;nM+IZ4=og;w;zKWD#rYJ>*9A4{H7FgYsI*h}GW@<1@#e|hxHqLA^wJ^D_& z%VR%0dU)1-h&RfH5a#I4DRmtDv&^#b1r|c9ht>#f5(od>u12c|&7BK!4t{|u2*+Zi z;Gdy03!Z)W!wc#=%q0qfe~#7l!R1KIfN?iGIQVBlgXlbV__xixHW%MDPK#+nd&XL0WzQbFxif)V9Q4C>#Y>mUu@NT5fn-m zkTOunhq>9uP{)?LP+LWq8Z!v&Q-ewiKp-Jl_E-6^mI0)3osUife$hwRU3jJhg3}+bN1e~`8n~dPvqKDsC4%+!2(gT@8sH3s1B47lXik1$hD`?M(3Eh zAIP<*P({_msPnH#wkOw~Pb#55K*|;o2_=d*EQTU)V6j?sstqatk#=0XVS3WZYQnon zat?=#Iek31E?qlwZ<_{AmKe~+8)Ws$k}=acctcJ4&J#V!$}U-_n18H)FFB#FsAD&Q z)x{{Iwp39R3mVI}V_E-N$*aYKwE_8dcjCREQPk2xEVb?IBRiQMqCt!hcV*?o>m5}(;J%^=;xOI zz7v!vZH4=c=YQq9%}5p!)x(phV-_Lq|96k@(g3?zoTsw?p16c`G*Ze_iG@0yRjiMF zX<@JlR8!fap0s39p!Obgl><)nELvHgzs;WDpZ}Uz&!zCs92ubJ&gAZsx1DOuT$*(9 z^Nv*8#Cp6Av7iEkTWGu=uT)6#^NwqUq+-`oH?|f-169dJ#5#H+{wvYZ(ssE1q~5tSN7@Xs8t;-(y# zF=w@F^t_{=AZ1~wIDg2Pss4#d)q18Ut!Q^9?G%_Ki8!z~=*%c#q}#%dn_r~cUc_rd z0c@PBccQoy{%|#peEyHDbk)l}2LJ4~cUR-tZ{OVsP5+vJ? z*;>UHvckPKZ1B%iWB%t^=}OEUgMZ!&ZdVeW%@#zALSv5zRzZen+M`T(6ISLwvQ#pESN=pqG%Q&c;H5DbK3S`QK@NhFy@Xx7W zWHBY_%a8VIhPppj=8+19^nAwp=7$*E78ul()?Nx_ph$sgaM@|>0w}bBuO`kBM#8P_ z?^@9Z{~V#hQd13VYY>4`-&N4bv~0B1F}=!z-xp1MN8J!ii;=0JyraX|H-N@&r(k8c zQzlvV2G@mJAP5Z2k?(=F|atw!xKT`?ap4s|WNkzt`4rCz?cyDIebbJjX z0x9KV4J~rf#ocWX1DX@vVFQp!8vz{VRXt<6Zi|pI)J1nMs#DmotYgN$mYI0VEjhZ) zSkOX6kB%J)D?XW+k5XbF9jW$k#e-1y~zL$L4v}4SO+QFj1KRYpNt7TGe zL-Mx*r5{KAXH{Es9MCM@4==7dXyYXK=a}r3bXiqEeIa@P+yx$54MX{y+Ye@+^pLm4 z%wyr=I+Kpz>c+JIj&Z?$O$Rmp%J3cs{<-LD!&xoR!>I9BX;y07)AQI$-&=~TT(%fU zJ>%@Xxtr(G-cFh1joZMdOdbKfA=&7A$VqJ^5J4f*67RV;C4gk(>$x?t*vE zUPT~U^D^TvArt&_u_7*9iLJNZTbL_jvaPn>$!n!|LY>Vcl|DNfFu`UTOpbx_?aA-P zU8Px%!9QnQC5bk&8AN6Lim_He!9Q<}caq5oIy8q;(MyVAGK@XiUL@>Fr5r#J#0C+$ z`5TNB{Ik1a1{=gy0-E*RDBoX6QIrQ1{PU+;@fwDX+3jDD42~}HL1`J8Ku$tw&qhV+ zj)EgzPzOV(aYDQvO z^4Zz9kxF#;5gUnyX#1$?4rggD3C2rO&Y*(5Q4SOXxq|ChY!!_cqh!w`=0$~RSb;ck zEwdM5Ox_BjAGbTbp?@EVMxZaP=0Qn(GcZ)&@R;csGe$jfK!Xdl;E#xd*}B!nC+ah` zQme7@c}CV*%a99F4ur^qMJMx~0kR*faqMRV0&5I(3ci@BX~>wtIHb_7im10$@XyG% zWrY%vjl5@)Ow`04@{2q6q6GgewDCo6*0fFUe71KXew;G{@lwN(HGeeZM;j(xxjrcq zPA4UDiK9cg?vWqUkU6aJ23`xrvtF%$$j;ES)9ctihL8oA&1IUte1f5T6^jP{Y-1st z_GT$~d-JKObp4M{Naa6<(PuV{N@57Dx!b6aUIO*_;Vxy5tBbFJsQlZ`gMRr z?G5+He3d(cL-gy7!Mm*{6egiL3i=M-2>#imXM;Up>Kj~nL%_gX7&lv0lbs2F8QK}}-j@x{V-3;3F~ zz2o4YHQ7ThKy06)R9j|d~>FKh5TD=Pk)=@Q=0+}{eZ+7+Y z3ihk#f)yG(#TzWYnbnh#v;t}sO)iosSn%}+iw6JvuhnzG+7S!>`CqG-1*>3n@XsuO zS%j2TboB(KFaRPH8k|L zRII3ZO{2x`!&b+^KZgo>nPnDRKwdQ$Wkln`oQQjc$?A4z;t4*vVEar}7JF{%EBNQ_ zM?#wC$bxK!Ui;QWw#Z;;&a0eix#eg1A%3i{D9L;t;}4(I z`R);4-!si8K4~c${PUh^KJiH>=7N9Tm`0v(_4a&%De38*XhbLfq#BuoOfR7M04=ZZcvoYU>rQlUiKzol{~@$W3}HIr%BfrRSk9`In78r z#(C$JPQDl*{J}ULNc90A`T&MnP=%*Dr+FOsXC}z@Fj%bE4M<686pmzf7pR8HD|Adm zm+HEn*ub8{gb1XR=%5EJg0rhA#K1o@@CocOKTLwEY#;=RrzPaO_PaCW{9pqc;(PT) z49zE`fWjC%CHQB?=>r)wo>S=~<7Rx=?T;tvvkp21|158C{sIaRMMdnx(<3`wTdPBz z1OLp#LR%@I*I5THdh>S3V$^>&cEaFHTXh4-of8^sGehQaN8^~w+&8=VrEEDwiOTJLt^(H4E`C3 z#Pb@8)+PkrWL`abM$YYtjYb)NECdX5kRn!3uX7WW^6ClNfZg)oN0T|)bX5IIFt|OS z;GYQ>66e6NiE1!hZ*&;p>w^&a?p^_Qx{%H^AWdci0_6AW=?V4~or0r)SOBy#s1Yr} zm&7!30c+zE0(PNgtgw0_DljB^-kWFpu{yjvLzznf1^?^`F0I-O1;v;5V%O?@LC255 zKgT)X2gjQsAk6d14)e8Rxxqi{9p^{tiK4rJvf@wS)Mg$O)NU+9@Xt;vx0YnwAz@jE z#-DR&<`4eauq@{gzUd6P>;T6x-?chU{pZ}S79#HfeA###O67opf0pq6n4ut39m?L0 z?rjzP^OgguQ7C+=z$>UTpc_E`JTL zD&y$`j{wd-<>2k4`@jxk6xN0f{u$n|)c$q?!$TMQLl&1ZT!Vl9*C7jRQO>s&i^|XJ zoeJW?+d9S_l*CN)^SNwM){}oo(a1RX6|)_hBXs0lmKsTi*cv@=_-7}T6azxW3x|7( zQE2eG8ynxqk2Vge@MCi!7wF$G$ildqUE!aJ#D93mooF8TXC%DiRFXQ*6YizCiQWwL zfEelp(s4IB^AG`tF!Ysi*yL$Pt;?4P7G7Sw_E^wO18Xjicq<| zr09_0G>}w|(OiTVY(w*T2W1kg%QLQwlLuV&=j`lnDuBO@8-ivuih|%SMhe?C*Xcokl+@mc zX{;N<>ee$~h*S(}e3Ob8S?KQ2I7XC5omJ1VZ1SVy^~YXC8^1;4wI;^|(Net_EkXMZ z9l#0xx%v19Rd&45xi$^l?-f&Y6>t2Iq_tCmf0l=pq~10Yj$j-nkiRuRCHUtvo;W)^ z*mzZv`11ZgbmeM)|E=oaX}5hr3W5@uY9S9@yG)iO&) zBin6IA*}40057%sBa`U33qX%C3u840OD4CfEDGne3q@C6PcdJ6?*BQd0_{5uQ#!gpd~KPK+Uf z)@5&yk#&NgggG4ywg&F&ZN<{Ma|kAJm^O4KdQIcd7rWWjf|e5*lmr#dShyVfqabxP zHok$(5tssKlbq(rnv%r7gI$K0c=UCcg*P-dG=c3*)MxZaq}4Qn-y7&4Vo*KH&zGnP zklhNEq^f8{&l=hev1}v~vovOEW4uDKI02C`xEYqxTvhjyB!G?gsY%%qz$`rukAj}7 zo{a7Wd<5%}Aioi2p^?jplIMq5=k_)PBgh-y!;<_EQ{EnxJP|a!KJ>eX?uKMEHgFUF zRWuqDK-{}aC?A^%le#Zzgr8~f)bc0=58s+I&V^4TY@u1EfL?kbwBs@is3JgKvUy?g zv$!mVfkQ*sX8ibpGG$Pa2B)!8bQLMyl%AzT%y}kc>CO@bn4tXgfmi-06PZV0Vk7k@ zNx{a|Q?@yrY-460n(`x0Bq37-8SNDn;Xo@;=9#c`?O};Lbmw^m&}L&6Ad92zF??7~ z@YB{=XBBJf`@UDv-wH$Ja|T&%cf~F(>5egxNZr{`s@zf}IE}BwxtgYq9r<8=a2_j2 z&J**i;-dP(PKsf;U_mPM4cwslv+c*JZ&#Wu7 zCGI%`&m8ugzMGQeLF_Yy+x z^R5IkQOFuwQ%u$1XKu!BAaG`Vg`7tr83Z=a@?p$OM7X)mYOH(~(qe{54inKrS`Z8v zTb{6mua!Zt79JC%wznzOC&5~amfwM#8BB$}RE!1NUs&cFpf{(2UpzMv=fH(3 zHmH2c0Cn<1c6M^cvLtgrB*i5aJW+-#XXfeID(OPw=4Bxv1sYENVDvH+E*jaaF~I?? zW?T6TnawkX1H;n{gRRLusxhmI>3-!Ys6O=ooySv3xA7KCqk?;A0vbCJJrjdvDm&ceVSWUQbv=nZXO~xTU7!B=dt1r; z-lex!;rT5xK5m&I(7DOD3_;#5>#+`lTbZ0MwKwJ8H%Gx|zj|TWq7(t>VW9ImKG)0a zWPM)=P%wfujK~c{RT}UmYIy^@Rr+i~aLLca%doUm%X{C|pokE~0s?_Lte$lU+;Bm4 z%5hAlZKRFP^7DV$NL7alHm31ju4QrtuHh3+AuXI%n)1$OK0eVhTQE3)|DsAJO&Dl!Od_LdWX_C@Cq1vErAptB8fF-sCbuwD|Nqb%Ep{ zBCKQ`+lZZFk37L6*29OM3;fS>Cr8g(K7aOH@H4=V|3lAJy@6+OkDkx}>bcHMm=5|q zW^}m6MpI!&>J)g%Biu2v{PD#;2~VW)!e_HyG_KQ>p8M9&9tUs?x*i@^i~|0iS4|Lr zN(jpmGKmTcVJ7Eu2h+!@10jW%iMQPkWb7!`LyCGZlB@x8gD-I#;9`2@kH_5;Oj>CS zi06#5uEvqiBqC`{1fRbre;1+#XZ~*dU3mmcH6U0{#dj@kD2;s8H@jPlCT@(bRt)HmV4w;oMt9XPl+W79NKt@-o|i^M5(N|*EC~td-m9|o6#O$k_#C{)d1gxJ6!UHj zWjjXI1{IP$!^q)T#%qHlL!C#K-Krd=yMuow?iVcX`0>hCLod@9H!9DktOvncdm+5> z>v0DAz-j>}EYRRT9&oaw2v#t#1(=F`C=#F$IA*F4+#pkBegxKPu$NbY*US;RQQ3e8 zy%*`^=ib#kTF0cruy`RSVQ&@wsq$8!v}o*h&khe=L6FmED|v*nsJJL*5RIuzh;Rd~ z;Gsu==rc5*;kkZ_T@}fU^uoMhNtt7g$>a$@goDtqrl>T+FXc@H|17Z4Lo5C$G-}26 zt%iVHn0alh;Gc667BbZ#7Sqf$S8q=|gsJIXLegSeO}gNpO z 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�)cskPUS*{n@N<}LZ>iugt1$bk|#6dBRaAe{gY zl2hbT?H&e(q7gR)$1bl%HlA&FbR6&o+aT`eY;&MWgcZPT>?2$2!viFz`#c)ceULEo{Rz~G-9h&4g$R2IX%y>$xmNO+G}uS!{fq=1YU`-A1L z)g`o_IWIjJF5)rBGe_AM>(tN2BbKi{kI)UY`>B5NoSjN3uLJ+AuT}$ueQY{#D+Jr5 zf%zN5w9yRy8LXBEz2+bnZ|{By@T_1+DbFJ}b>xv28}C8-NQUrW8(exc5IuuL_q6>J ziKbKSidutzwr3up3*Y1|9*5z_iT_X;Ec;V!Gw0Y1xxuZH_EwNk>}X4S&$IFrgi~2tnLjqbo1ZiI>Or~@%OIz!9>c9W0rvBZ9u65o+d%&~Y(8EMkYx6z4L%3|Y#!G~ zCp~WLe88D>p94!vU}g@ps@?A7dLhFBvJ>BwI1xJ4X(bKMLIm)MrBa7va)LUIdH&t@ z?icB#?jAU zGI$oucO~P3xsu zca)RA=Lm?J!FX!-H%B9sHqxitYai*q4RHPur(8f*lc79AG(`&58;S*=J*MtPMu-zltOc_U#{e^`O@X8JTicsQ zZ!1s-sQM5_{y{S<V0h1zGe8E(9-nOU zsl&nWO6-_hYDduFJj4r!kUPQ-7j_p|Ibh2`~iN~!55sg zS=`W#5L~0*;$5hKm=)qFWdt})hVl&S9exI6c@odCw@o;fOt=ydg#^WBrKVxDM4{j?zxs(4eN&ovl F{||e2Y;gbp literal 0 HcmV?d00001 From 47b537c87fd1d2d7671eaf5c49f20bba40afad25 Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Wed, 30 Mar 2016 00:46:45 -0400 Subject: [PATCH 29/45] preonic readme --- keyboard/preonic/README.md | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/keyboard/preonic/README.md b/keyboard/preonic/README.md index 3ba0cc1527..0c09466559 100644 --- a/keyboard/preonic/README.md +++ b/keyboard/preonic/README.md @@ -1,6 +1,6 @@ -Planck keyboard firmware +Preonic keyboard firmware ====================== -DIY/Assembled compact ortholinear 40% keyboard by [Ortholinear Keyboards](http://ortholinearkeyboards.com). +DIY/Assembled compact ortholinear 50% keyboard by [Ortholinear Keyboards](http://ortholinearkeyboards.com). ## Quantum MK Firmware @@ -8,7 +8,7 @@ For the full Quantum feature list, see [the parent README.md](/README.md). ## Building -Download or clone the whole firmware and navigate to the keyboard/planck folder. Once your dev env is setup, you'll be able to type `make` to generate your .hex - you can then use `make dfu` to program your PCB once you hit the reset button. +Download or clone the whole firmware and navigate to the keyboard/preonic folder. Once your dev env is setup, you'll be able to type `make` to generate your .hex - you can then use `make dfu` to program your PCB once you hit the reset button. Depending on which keymap you would like to use, you will have to compile slightly differently. @@ -23,9 +23,3 @@ To build the firmware binary hex file with a keymap just do `make` with `KEYMAP` $ make KEYMAP=[default|jack|] ``` Keymaps follow the format **__.c__** and are stored in the `keymaps` folder. - -### Notable forks (which some of the keymap files are from) -- [Shane's Fork](https://github.com/shanecelis/tmk_keyboard/tree/master/keyboard/planck) -- [Pierre's Fork](https://github.com/pcarrier/tmk_keyboard/blob/pcarrier/planck/keyboard/gh60/keymap_planck.c) -- [Nathan's Fork](https://github.com/nathanrosspowell/tmk_keyboard/tree/planck-jack/keyboard/planck) -- [Matthew's Fork](https://github.com/pepers/tmk_keyboard/tree/master/keyboard/planck_grid) From 09d567045cb011b2fd7984cf3277b4875e677153 Mon Sep 17 00:00:00 2001 From: Noah Andrews Date: Wed, 30 Mar 2016 09:17:06 -0400 Subject: [PATCH 30/45] Fixed minor issues with Preonic readme --- keyboard/preonic/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/keyboard/preonic/README.md b/keyboard/preonic/README.md index 0c09466559..4a33a3e4e0 100644 --- a/keyboard/preonic/README.md +++ b/keyboard/preonic/README.md @@ -16,10 +16,10 @@ Depending on which keymap you would like to use, you will have to compile slight To build with the default keymap, simply run `make`. ### Other Keymaps -Several version of keymap are available in advance but you are recommended to define your favorite layout yourself. To define your own keymap create file named `.c` and see keymap document (you can find in top README.md) and existent keymap files. +Several version of keymap are available in advance but you are recommended to define your favorite layout yourself. To define your own keymap, create a file in the keymaps folder named `.c` and see keymap document (you can find in top README.md) and existent keymap files. To build the firmware binary hex file with a keymap just do `make` with `KEYMAP` option like: ``` $ make KEYMAP=[default|jack|] ``` -Keymaps follow the format **__.c__** and are stored in the `keymaps` folder. +Keymaps follow the format **__\.c__** and are stored in the `keymaps` folder. From 3b703eff33963a5756b3e3f16019d6ddae8a7874 Mon Sep 17 00:00:00 2001 From: Miha Rekar Date: Wed, 30 Mar 2016 17:03:03 +0200 Subject: [PATCH 31/45] Tiny fix of Planck diagrams --- keyboard/planck/keymaps/default/keymap.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/keyboard/planck/keymaps/default/keymap.c b/keyboard/planck/keymaps/default/keymap.c index d995eb9e58..988deee99d 100644 --- a/keyboard/planck/keymaps/default/keymap.c +++ b/keyboard/planck/keymaps/default/keymap.c @@ -76,7 +76,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * ,-----------------------------------------------------------------------------------. * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | * |------+------+------+------+------+-------------+------+------+------+------+------| - * | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ | + * | Esc | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ | * |------+------+------+------+------+------|------+------+------+------+------+------| * | Shift| F7 | F8 | F9 | F10 | F11 | F12 |Qwerty|Colemk|Dvorak| Reset|Enter | * |------+------+------+------+------+------+------+------+------+------+------+------| @@ -94,7 +94,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * ,-----------------------------------------------------------------------------------. * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp | * |------+------+------+------+------+-------------+------+------+------+------+------| - * | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | | + * | Esc | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | | * |------+------+------+------+------+------|------+------+------+------+------+------| * | Shift| F7 | F8 | F9 | F10 | F11 | F12 |Qwerty|Colemk|Dvorak| Reset|Enter | * |------+------+------+------+------+------+------+------+------+------+------+------| From ac3f3a85d571658fe2dcb98458cfd0c14e418150 Mon Sep 17 00:00:00 2001 From: Noah Andrews Date: Wed, 30 Mar 2016 11:36:35 -0400 Subject: [PATCH 32/45] Update README.md --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 6a6bbed40b..9857330679 100644 --- a/README.md +++ b/README.md @@ -269,7 +269,7 @@ For this mod, you need an unused pin wiring to DI of WS2812 strip. After wiring RGBLIGHT_ENABLE = yes -Please note that the underglow is not compatible with MIDI functions. So you cannot enable both of them at the same time. +Please note that the underglow is not compatible with audio output. So you cannot enable both of them at the same time. Please add the following options into your config.h, and set them up according your hardware configuration. @@ -309,4 +309,4 @@ what things are (and likely aren't) too risky. - EEPROM has around a 100000 write cycle. You shouldn't rewrite the firmware repeatedly and continually; that'll burn the EEPROM eventually. - \ No newline at end of file + From fe6c3e4f0fe1abb38d64ce3f4d48db7aea63aad0 Mon Sep 17 00:00:00 2001 From: David Mohr Date: Tue, 29 Mar 2016 23:49:34 -0600 Subject: [PATCH 33/45] Squisher's international dvorak variant for ergodox ez See README.md --- .../keymaps/dvorak_intl_squisher/README.md | 29 +++ .../dvorak_intl_squisher/keyboard-layout0.png | Bin 0 -> 73585 bytes .../dvorak_intl_squisher/keyboard-layout1.png | Bin 0 -> 59122 bytes .../dvorak_intl_squisher/keyboard-layout2.png | Bin 0 -> 53319 bytes .../keymaps/dvorak_intl_squisher/keymap.c | 185 ++++++++++++++++++ 5 files changed, 214 insertions(+) create mode 100644 keyboard/ergodox_ez/keymaps/dvorak_intl_squisher/README.md create mode 100644 keyboard/ergodox_ez/keymaps/dvorak_intl_squisher/keyboard-layout0.png create mode 100644 keyboard/ergodox_ez/keymaps/dvorak_intl_squisher/keyboard-layout1.png create mode 100644 keyboard/ergodox_ez/keymaps/dvorak_intl_squisher/keyboard-layout2.png create mode 100644 keyboard/ergodox_ez/keymaps/dvorak_intl_squisher/keymap.c diff --git a/keyboard/ergodox_ez/keymaps/dvorak_intl_squisher/README.md b/keyboard/ergodox_ez/keymaps/dvorak_intl_squisher/README.md new file mode 100644 index 0000000000..984106ff46 --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/dvorak_intl_squisher/README.md @@ -0,0 +1,29 @@ +# ErgoDox EZ Dvorak International Squisher + +Dvorak layout adjusted with several (linux) applications in mind: + +* Easier Escape for VIM +* Windows/Super key for awesome WM +* Alt+Shift for international characters +* PrintScreen for sys-rq +* Insert for the X11 clip-board + +Major layer changes: + +* Common multimedia keys are integrated into layer 0, less common into layer 1 +* No mouse keys +* Layer 2 is qwerty (for easier gaming & less fortunate keyboard users) + +Known issues: + +* Alt+Shift does not work reliably (depends on the X11 kb layout? Not + entirely clear...) + +![layer0](keyboard-layout0.png) +![layer1](keyboard-layout1.png) +![layer2](keyboard-layout2.png) + +## Changelog + +* 2016-03-29 + * Initial release diff --git a/keyboard/ergodox_ez/keymaps/dvorak_intl_squisher/keyboard-layout0.png b/keyboard/ergodox_ez/keymaps/dvorak_intl_squisher/keyboard-layout0.png new file mode 100644 index 0000000000000000000000000000000000000000..6a36f9bfa1259aa74b6a8e956596dbd86c5a89c5 GIT binary patch literal 73585 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 UzKyAZLDhB+yk#Aswkn7~| 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

  • >Xm640R0W= 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 A3IG5A literal 0 HcmV?d00001 diff --git a/keyboard/ergodox_ez/keymaps/msc/img/media_layer.png b/keyboard/ergodox_ez/keymaps/msc/img/media_layer.png new file mode 100644 index 0000000000000000000000000000000000000000..a69799b0734841a23c2878699d1edba963353a91 GIT binary patch literal 75750 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 literal 0 HcmV?d00001 diff --git a/keyboard/ergodox_ez/keymaps/msc/keymap.c b/keyboard/ergodox_ez/keymaps/msc/keymap.c new file mode 100644 index 0000000000..e567e513f9 --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/msc/keymap.c @@ -0,0 +1,184 @@ +#include "ergodox_ez.h" +#include "debug.h" +#include "action_layer.h" + +#define BASE 0 // default layer +#define SYMB 1 // symbols +#define MDIA 2 // media keys + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* Keymap 0: Basic layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | = | 1 | 2 | 3 | 4 | 5 | LEFT | | RIGHT| 6 | 7 | 8 | 9 | 0 | - | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | Del | Q | W | E | R | T | L1 | | L1 | Y | U | I | O | P | \ | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | BkSp | A | S | D | F | G |------| |------| H | J | K | L | ; |' / Cmd | + * |--------+------+------+------+------+------| Hyper| | Meh |------+------+------+------+------+--------| + * | LShift |Z/Ctrl| X | C | V | B | | | | N | M | , | . |//Ctrl| RShift | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | Cmd | Alt |AltShf| Left | Right| | Left | Down | Up |Right | L2 | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | App | LGui | | Alt |Ctrl/Esc| + * ,------|------|------| |------+--------+------. + * | | | Home | | PgUp | | | + * | Space|Backsp|------| |------| Tab |Enter | + * | |ace | End | | PgDn | | | + * `--------------------' `----------------------' + */ +// If it accepts an argument (i.e, is a function), it doesn't need KC_. +// Otherwise, it needs KC_* +[BASE] = KEYMAP( // layer 0 : default + // left hand + KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_LEFT, + KC_DELT, KC_Q, KC_W, KC_E, KC_R, KC_T, TG(SYMB), + KC_BSPC, KC_A, KC_S, KC_D, KC_F, KC_G, + KC_LSFT, CTL_T(KC_Z), KC_X, KC_C, KC_V, KC_B, ALL_T(KC_NO), + KC_LGUI,KC_LALT, LALT(KC_LSFT), KC_LEFT,KC_RGHT, + ALT_T(KC_APP), KC_LGUI, + KC_HOME, + KC_SPC,KC_BSPC,KC_END, + // right hand + KC_RGHT, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, + TG(SYMB), KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, + KC_H, KC_J, KC_K, KC_L, KC_SCLN,GUI_T(KC_QUOT), + MEH_T(KC_NO),KC_N, KC_M, KC_COMM,KC_DOT, CTL_T(KC_SLSH), KC_RSFT, + KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, TG(MDIA), + KC_LALT, CTL_T(KC_ESC), + KC_PGUP, + KC_PGDN,KC_TAB, KC_ENT + ), +/* Keymap 1: Symbol Layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | ! | @ | { | } | | | | | | Up | 7 | 8 | 9 | * | F12 | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | # | $ | ( | ) | ` |------| |------| Down | 4 | 5 | 6 | + | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | % | ^ | [ | ] | ~ | | | | & | 1 | 2 | 3 | \ | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | | | | | . | 0 | = | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | | | + * | | |------| |------| | | + * | | | | | | | | + * `--------------------' `--------------------' + */ +// SYMBOLS +[SYMB] = KEYMAP( + // left hand + KC_TRNS,KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS, + KC_TRNS,KC_EXLM,KC_AT, KC_LCBR,KC_RCBR,KC_PIPE,KC_TRNS, + KC_TRNS,KC_HASH,KC_DLR, KC_LPRN,KC_RPRN,KC_GRV, + KC_TRNS,KC_PERC,KC_CIRC,KC_LBRC,KC_RBRC,KC_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, + // right hand + KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, + KC_TRNS, KC_UP, KC_7, KC_8, KC_9, KC_ASTR, KC_F12, + KC_DOWN, KC_4, KC_5, KC_6, KC_PLUS, KC_TRNS, + KC_TRNS, KC_AMPR, KC_1, KC_2, KC_3, KC_BSLS, KC_TRNS, + KC_TRNS,KC_DOT, KC_0, KC_EQL, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS +), +/* Keymap 2: Media and mouse keys + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | | | | | | | | | | | | | | | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | | | MsUp | | | | | | | | | | | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | |MsLeft|MsDown|MsRght| |------| |------| | | | | | Play | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | | | | | | | | Mute | | | | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | | | | Prev |VolDn |VolUp | Next | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | |Brwser| + * | Lclk | Rclk |------| |------| |Back | + * | | | | | | | | + * `--------------------' `--------------------' + */ +// MEDIA AND MOUSE +[MDIA] = KEYMAP( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_U, KC_TRNS, KC_TRNS, 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_BTN1, KC_BTN2, KC_TRNS, + // right hand + 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_MPLY, + KC_TRNS, KC_TRNS, KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_MPRV, KC_VOLD, KC_VOLU, KC_MNXT, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_WBAK +), +}; + +const uint16_t PROGMEM fn_actions[] = { + [1] = ACTION_LAYER_TAP_TOGGLE(SYMB) // FN1 - Momentary Layer 1 (Symbols) +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + // MACRODOWN only works in this function + switch(id) { + case 0: + if (record->event.pressed) { + register_code(KC_RSFT); + } else { + unregister_code(KC_RSFT); + } + 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) { + // TODO: Make this relevant to the ErgoDox EZ. + case 1: + ergodox_right_led_1_on(); + break; + case 2: + ergodox_right_led_2_on(); + break; + default: + // none + break; + } + +}; diff --git a/keyboard/ergodox_ez/keymaps/msc/msc.hex b/keyboard/ergodox_ez/keymaps/msc/msc.hex new file mode 100644 index 0000000000000000000000000000000000000000..a466a37af7349c1d01dd1f43f45b09c21f389cc0 GIT binary patch literal 50246 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