From d1c35b12555cafcb0ca6107cfca9b0ef13c0276c Mon Sep 17 00:00:00 2001 From: xyverz Date: Fri, 16 Sep 2016 22:02:33 -0700 Subject: [PATCH 001/190] removed a couple of mod_tap keys since they had some unintended conseqeunces across various platforms. --- keyboards/planck/keymaps/xyverz/keymap.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/keyboards/planck/keymaps/xyverz/keymap.c b/keyboards/planck/keymaps/xyverz/keymap.c index 192933b181c..9998f2a3815 100644 --- a/keyboards/planck/keymaps/xyverz/keymap.c +++ b/keyboards/planck/keymaps/xyverz/keymap.c @@ -86,7 +86,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_DVORAK] = { {KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH}, {KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS}, - {KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, SFT_T(KC_ENT)}, + {KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_RSFT}, {KC_LCTL, KC_LALT, KC_LEFT, KC_RGHT, LOWER, KC_BSPC, KC_SPC, RAISE, KC_UP, KC_DOWN, KC_RGUI, KC_ENT } }, From 26d6b90dde303099405e5d61d8304af2e31f845b Mon Sep 17 00:00:00 2001 From: Xyverz Date: Sat, 17 Sep 2016 14:43:25 -0700 Subject: [PATCH 002/190] Update readme.md --- keyboards/ergodox/keymaps/xyverz/readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/keyboards/ergodox/keymaps/xyverz/readme.md b/keyboards/ergodox/keymaps/xyverz/readme.md index 6ecdabc9ed9..2d72fa6c29b 100644 --- a/keyboards/ergodox/keymaps/xyverz/readme.md +++ b/keyboards/ergodox/keymaps/xyverz/readme.md @@ -19,7 +19,7 @@ I've enabled persistent keymaps for Qwerty, Dvorak and Colemak layers, similar t ,--------------------------------------------------.,--------------------------------------------------. | ] | 1 | 2 | 3 | 4 | 5 | ESC || ESC | 6 | 7 | 8 | 9 | 0 | [ | |--------+------+------+------+------+-------------||------+------+------+------+------+------+--------| - | Tab | ' | , | . | Y | Y | || | F | G | C | R | L | \ | + | Tab | ' | , | . | P | Y | || | F | G | C | R | L | \ | |--------+------+------+------+------+------| || |------+------+------+------+------+--------| | CapsLk | A | O | E | U | I |------||------| D | H | T | N | S | - | |--------+------+------+------+------+------| _MD || _KP |------+------+------+------+------+--------| From a03d72f597f8595fa76b64825f1b7934646f422c Mon Sep 17 00:00:00 2001 From: Xyverz Date: Fri, 30 Sep 2016 13:05:21 -0700 Subject: [PATCH 003/190] Updates to my Planck keymap - standardizing the bottom row. --- keyboards/planck/keymaps/xyverz/keymap.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/keyboards/planck/keymaps/xyverz/keymap.c b/keyboards/planck/keymaps/xyverz/keymap.c index 9998f2a3815..bbb83faf1cf 100644 --- a/keyboards/planck/keymaps/xyverz/keymap.c +++ b/keyboards/planck/keymaps/xyverz/keymap.c @@ -50,8 +50,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_QWERTY] = { {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 }, - {BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} + {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT}, + {KC_LCTL, KC_LALT, KC_LEFT, KC_RGHT, LOWER, KC_BSPC, KC_SPC, RAISE, KC_UP, KC_DOWN, KC_RGUI, KC_ENT } }, /* Colemak @@ -68,8 +68,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_COLEMAK] = { {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 }, - {BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} + {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT}, + {KC_LCTL, KC_LALT, KC_LEFT, KC_RGHT, LOWER, KC_BSPC, KC_SPC, RAISE, KC_UP, KC_DOWN, KC_RGUI, KC_ENT } }, /* Dvorak From 8cd3a8402571bb9d0c28579060f59a4ac26c37e5 Mon Sep 17 00:00:00 2001 From: Xyverz Date: Fri, 30 Sep 2016 22:43:15 -0700 Subject: [PATCH 004/190] revisions to my keymap again. --- keyboards/tv44/keymaps/xyverz/keymap.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/keyboards/tv44/keymaps/xyverz/keymap.c b/keyboards/tv44/keymaps/xyverz/keymap.c index 8cbcf8d35a3..6026c1cab88 100644 --- a/keyboards/tv44/keymaps/xyverz/keymap.c +++ b/keyboards/tv44/keymaps/xyverz/keymap.c @@ -22,10 +22,10 @@ extern keymap_config_t keymap_config; const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_DV] = { /* 0: Dvorak */ - {KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC }, - {MO(_L1), KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_ENT }, + {KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH }, + {MO(_L1), KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, LT(_L2, KC_MINS)}, {KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_RSFT }, - {KC_LCTL, KC_LALT, KC_LGUI, KC_BSPC, XXXXXXX, XXXXXXX, XXXXXXX, KC_SPC, KC_SLSH, KC_MINS, XXXXXXX, MO(_L2) } + {KC_LCTL, KC_LALT, KC_LGUI, KC_BSPC, XXXXXXX, XXXXXXX, XXXXXXX, KC_SPC, KC_BSLS, KC_EQL, XXXXXXX, KC_ENT } }, [_QW] = { /* 1: Qwerty */ @@ -46,14 +46,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { {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_BSLS, KC_QUOT, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_DOWN, KC_UP, KC_LEFT, KC_RGHT, _______ }, {_______, _______, _______, KC_PSCR, _______, _______, _______, KC_MSTP, KC_MPLY, KC_MPRV, KC_MNXT, KC_RSFT }, - {KC_ESC, KC_LGUI, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX, _______, _______, KC_SLSH, _______, _______ } + {KC_ESC, KC_LGUI, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX, _______, _______, KC_EQL, _______, _______ } }, [_L2] = { /* 2: FN 2 */ - {KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_ESC }, - {_______, KC_F11, KC_F12, _______, _______, _______, _______, _______, KC_HOME, KC_PGUP, KC_VOLU, KC_ENT }, - {_______, _______, _______, _______, _______, _______, _______, _______, KC_END, KC_PGDN, KC_VOLD, _______ }, - {QWERTY, DVORAK, COLEMAK, _______, XXXXXXX, XXXXXXX, XXXXXXX, _______, _______, _______, _______, _______ } + {KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_ESC }, + {_______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, _______, KC_HOME, KC_PGUP, KC_VOLU, _______ }, + {_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, KC_END, KC_PGDN, KC_VOLD, _______ }, + {QWERTY, DVORAK, COLEMAK, _______, XXXXXXX, XXXXXXX, XXXXXXX, _______, _______, KC_PLUS, _______, _______ } } }; From e3c3170610561042df3d67f358c15553878a2012 Mon Sep 17 00:00:00 2001 From: xyverz Date: Fri, 30 Sep 2016 23:10:34 -0700 Subject: [PATCH 005/190] More standardization between the three layouts Swapped Number Row with Symbols between _L1 and _L2. --- keyboards/tv44/keymaps/xyverz/keymap.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/keyboards/tv44/keymaps/xyverz/keymap.c b/keyboards/tv44/keymaps/xyverz/keymap.c index 6026c1cab88..00347b01906 100644 --- a/keyboards/tv44/keymaps/xyverz/keymap.c +++ b/keyboards/tv44/keymaps/xyverz/keymap.c @@ -30,27 +30,27 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_QW] = { /* 1: Qwerty */ {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC }, - {MO(_L1), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT }, + {MO(_L1), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, LT(_L2, 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_RSFT }, - {KC_LCTL, KC_LALT, KC_LGUI, KC_BSPC, XXXXXXX, XXXXXXX, XXXXXXX, KC_SPC, KC_SLSH, KC_MINS, XXXXXXX, MO(_L2) } + {KC_LCTL, KC_LALT, KC_LGUI, KC_BSPC, XXXXXXX, XXXXXXX, XXXXXXX, KC_SPC, KC_SLSH, KC_MINS, XXXXXXX, KC_ENT } }, [_CM] = { /* 2: Colemak */ {KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC }, - {MO(_L1), KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_ENT }, + {MO(_L1), KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, LT(_L2, 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_RSFT }, - {KC_LCTL, KC_LALT, KC_LGUI, KC_BSPC, XXXXXXX, XXXXXXX, XXXXXXX, KC_SPC, KC_SLSH, KC_MINS, XXXXXXX, MO(_L2) } + {KC_LCTL, KC_LALT, KC_LGUI, KC_BSPC, XXXXXXX, XXXXXXX, XXXXXXX, KC_SPC, KC_SLSH, KC_MINS, XXXXXXX, KC_ENT } }, [_L1] = {/* 1: FN 1 */ - {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_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL }, {_______, KC_BSLS, KC_QUOT, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_DOWN, KC_UP, KC_LEFT, KC_RGHT, _______ }, {_______, _______, _______, KC_PSCR, _______, _______, _______, KC_MSTP, KC_MPLY, KC_MPRV, KC_MNXT, KC_RSFT }, {KC_ESC, KC_LGUI, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX, _______, _______, KC_EQL, _______, _______ } }, [_L2] = { /* 2: FN 2 */ - {KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_ESC }, + {KC_TILD, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_ESC }, {_______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, _______, KC_HOME, KC_PGUP, KC_VOLU, _______ }, {_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, KC_END, KC_PGDN, KC_VOLD, _______ }, {QWERTY, DVORAK, COLEMAK, _______, XXXXXXX, XXXXXXX, XXXXXXX, _______, _______, KC_PLUS, _______, _______ } From f41d540e81d21ad5697cf6e48ad1c09edd9a1cb9 Mon Sep 17 00:00:00 2001 From: Xyverz Date: Tue, 18 Oct 2016 16:28:44 -0700 Subject: [PATCH 006/190] Add files via upload Minor changes to my Dvorak keymap. Updated the readme.md to reflect these changes. --- keyboards/ergodox/keymaps/xyverz/keymap.c | 14 +++++++------- keyboards/ergodox/keymaps/xyverz/readme.md | 6 +++--- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/keyboards/ergodox/keymaps/xyverz/keymap.c b/keyboards/ergodox/keymaps/xyverz/keymap.c index 08ee5aeda5b..ec909ec53df 100644 --- a/keyboards/ergodox/keymaps/xyverz/keymap.c +++ b/keyboards/ergodox/keymaps/xyverz/keymap.c @@ -40,7 +40,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Layer 0 : Dvorak * ,--------------------------------------------------. ,--------------------------------------------------. - * | ] | 1 | 2 | 3 | 4 | 5 | ESC | | ESC | 6 | 7 | 8 | 9 | 0 | [ | + * | = | 1 | 2 | 3 | 4 | 5 | ESC | | ESC | 6 | 7 | 8 | 9 | 0 | / | * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| * | Tab | ' | , | . | P | Y | | | | F | G | C | R | L | \ | * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| @@ -48,7 +48,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |--------+------+------+------+------+------| _MD | | _KP |------+------+------+------+------+--------| * | LShift | ; | Q | J | K | X | | | | B | M | W | V | Z | RShift | * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * | LGUI | ` | INS | Left | Rght | | Up | Dn | / | = | RGUI | + * | LGUI | ` | INS | Left | Rght | | Up | Dn | [ | ] | RGUI | * `----------------------------------' `----------------------------------' * ,-------------. ,-------------. * | LCTL | LALT | | RALT | RCTL | @@ -61,7 +61,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [_DV] = KEYMAP( // left hand - KC_RBRC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_ESC, + KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_ESC, KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, XXXXXXX, KC_CAPS, KC_A, KC_O, KC_E, KC_U, KC_I, KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, MO(_MD), @@ -70,11 +70,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_HOME, KC_BSPC, KC_DEL, KC_END, // right hand - KC_ESC, KC_6, KC_7, KC_8, KC_9, KC_0, KC_LBRC, + KC_ESC, KC_6, KC_7, KC_8, KC_9, KC_0, KC_SLSH, XXXXXXX, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSLS, KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS, MO(_KP), KC_B, KC_M, KC_W, KC_V, KC_Z, KC_RSFT, - KC_UP, KC_DOWN, KC_SLSH, KC_EQL, KC_RGUI, + KC_UP, KC_DOWN, KC_LBRC, KC_RBRC, KC_RGUI, KC_RALT, KC_RCTL, KC_PGUP, KC_PGDN, KC_ENT, KC_SPC @@ -91,7 +91,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |--------+------+------+------+------+------| _MD | | _KP |------+------+------+------+------+--------| * | LShift | Z | X | C | V | B | | | | N | M | , | . | / | RShift | * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * | LGUI | ` | INS | Left | Rght | | Up | Dn | / | = | RGUI | + * | LGUI | ` | INS | Left | Rght | | Up | Dn | [ | ] | RGUI | * `----------------------------------' `----------------------------------' * ,-------------. ,-------------. * | LCTL | LALT | | RALT | RCTL | @@ -133,7 +133,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |--------+------+------+------+------+------| _MD | | _KP |------+------+------+------+------+--------| * | LShift | Z | X | C | V | B | | | | K | M | , | . | / | RShift | * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * | LGUI | ` | INS | Left | Rght | | Up | Dn | / | = | RGUI | + * | LGUI | ` | INS | Left | Rght | | Up | Dn | [ | ] | RGUI | * `----------------------------------' `----------------------------------' * ,-------------. ,-------------. * | LCTL | LALT | | RALT | RCTL | diff --git a/keyboards/ergodox/keymaps/xyverz/readme.md b/keyboards/ergodox/keymaps/xyverz/readme.md index 2d72fa6c29b..134fb50afdb 100644 --- a/keyboards/ergodox/keymaps/xyverz/readme.md +++ b/keyboards/ergodox/keymaps/xyverz/readme.md @@ -2,7 +2,7 @@ ## About this keymap: -The Dvorak layout shown herestems from my early Kinesis years, using the Contour PS/2 with a Dvorak software layout. Because of this, the RBRC and LBRC were on opposite sides of the board in the corner keys. I've decided to continue using this layout with my ErgoDox. +The Dvorak layout shown here stems from my early Kinesis years, using the Contour PS/2 with a Dvorak software layout. ~~Because of this, the RBRC and LBRC were on opposite sides of the board in the corner keys. I've decided to continue using this layout with my ErgoDox.~~ I've decided do give the normal placing of the SLSH, EQL, and xBRC keys a try, after using a different keyboard for a while... The QWERTY layout shown here is based entirely on the Kinesis Advantage layout, with the additional keys as shown in the diagrams. The Colemak layout is merely an adaptation of that. @@ -17,7 +17,7 @@ I've enabled persistent keymaps for Qwerty, Dvorak and Colemak layers, similar t ### Layer 0: Dvorak layer ,--------------------------------------------------.,--------------------------------------------------. - | ] | 1 | 2 | 3 | 4 | 5 | ESC || ESC | 6 | 7 | 8 | 9 | 0 | [ | + | = | 1 | 2 | 3 | 4 | 5 | ESC || ESC | 6 | 7 | 8 | 9 | 0 | / | |--------+------+------+------+------+-------------||------+------+------+------+------+------+--------| | Tab | ' | , | . | P | Y | || | F | G | C | R | L | \ | |--------+------+------+------+------+------| || |------+------+------+------+------+--------| @@ -25,7 +25,7 @@ I've enabled persistent keymaps for Qwerty, Dvorak and Colemak layers, similar t |--------+------+------+------+------+------| _MD || _KP |------+------+------+------+------+--------| | LShift | Z | X | C | V | X | || | B | M | W | V | Z | RShift | `--------+------+------+------+------+-------------'`-------------+------+------+------+------+--------' - | LGUI | ` | INS | Left | Rght | | Up | Dn | / | = | RGUI | + | LGUI | ` | INS | Left | Rght | | Up | Dn | [ | ] | RGUI | `----------------------------------' `----------------------------------' ,-------------.,-------------. | LCtr | LAlt || Ralt | RCtr | From 7920063035f45ce76541083e64ea66c77041a5c3 Mon Sep 17 00:00:00 2001 From: Xyverz Date: Tue, 18 Oct 2016 16:34:00 -0700 Subject: [PATCH 007/190] Add files via upload Minor layout changes. --- keyboards/atreus/keymaps/xyverz/keymap.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/keyboards/atreus/keymaps/xyverz/keymap.c b/keyboards/atreus/keymaps/xyverz/keymap.c index b418cc9b5ef..f976b053195 100644 --- a/keyboards/atreus/keymaps/xyverz/keymap.c +++ b/keyboards/atreus/keymaps/xyverz/keymap.c @@ -28,30 +28,30 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_DV] = { /* Dvorak */ {KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_NO, KC_F, KC_G, KC_C, KC_R, KC_L }, {KC_A, KC_O, KC_E, KC_U, KC_I, KC_NO, KC_D, KC_H, KC_T, KC_N, KC_S }, - {SFT_T(KC_SCLN), KC_Q, KC_J, KC_K, KC_X, CTL_T(KC_DEL), KC_B, KC_M, KC_W, KC_V, SFT_T(KC_Z) }, + {SFT_T(KC_SCLN), KC_Q, KC_J, KC_K, KC_X, CTL_T(KC_BSPC), KC_B, KC_M, KC_W, KC_V, SFT_T(KC_Z) }, {KC_ESC, KC_TAB, KC_LGUI, MO(_L2), KC_BSPC, ALT_T(KC_ENT), KC_SPC, MO(_L1), KC_MINS, KC_SLSH, KC_EQL} }, [_QW] = { /* Qwerty */ {KC_Q, KC_W, KC_E, KC_R, KC_T, KC_NO, KC_Y, KC_U, KC_I, KC_O, KC_P }, {KC_A, KC_S, KC_D, KC_F, KC_G, KC_NO, KC_H, KC_J, KC_K, KC_L, KC_SCLN}, - {SFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, CTL_T(KC_DEL), KC_N, KC_M, KC_COMM, KC_DOT, SFT_T(KC_SLSH) }, + {SFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, CTL_T(KC_BSPC), KC_N, KC_M, KC_COMM, KC_DOT, SFT_T(KC_SLSH) }, {KC_ESC, KC_TAB, KC_LGUI, MO(_L2), KC_BSPC, ALT_T(KC_ENT), KC_SPC, MO(_L1), KC_MINS, KC_QUOT, KC_ENT} }, [_CM] = { /* Colemak */ {KC_Q, KC_W, KC_F, KC_P, KC_G, KC_NO, KC_J, KC_L, KC_U, KC_Y, KC_SCLN}, {KC_A, KC_R, KC_S, KC_T, KC_D, KC_NO, KC_H, KC_N, KC_E, KC_I, KC_O }, - {SFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, CTL_T(KC_DEL), KC_K, KC_M, KC_COMM, KC_DOT, SFT_T(KC_SLSH) }, + {SFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, CTL_T(KC_BSPC), KC_K, KC_M, KC_COMM, KC_DOT, SFT_T(KC_SLSH) }, {KC_ESC, KC_TAB, KC_LGUI, MO(_L2), KC_BSPC, ALT_T(KC_ENT), KC_SPC, MO(_L1), KC_MINS, KC_QUOT, KC_ENT} }, [_L1] = { /* LAYER 1 */ {KC_1, KC_2, KC_3, KC_4, KC_5, KC_NO, KC_6, KC_7, KC_8, KC_9, KC_0 }, - {KC_TAB, KC_INS, KC_UP, KC_DEL, KC_HOME, KC_NO, KC_PGUP, KC_MUTE, KC_VOLD, KC_VOLU, KC_EQL }, - {KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_END, KC_LCTL, KC_PGDN, KC_MPRV, KC_MPLY, KC_MNXT, KC_BSLS}, + {KC_TAB, KC_INS, KC_UP, KC_DEL, KC_HOME, KC_NO, KC_PGUP, KC_MUTE, KC_VOLD, KC_VOLU, KC_BSLS}, + {KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_END, KC_LCTL, KC_PGDN, KC_MPRV, KC_MPLY, KC_MNXT, KC_TRNS}, {KC_TRNS, KC_GRV, KC_LGUI, KC_TRNS, KC_DEL, KC_LALT, KC_SPC, KC_TRNS, KC_LBRC, KC_RBRC, KC_ENT } }, [_L2] = { /* LAYER 2 */ {KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_NO, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN}, - {KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_NO, KC_TRNS, KC_F6, KC_F7, KC_F8, KC_PLUS}, + {KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_NO, KC_TRNS, KC_F6, KC_F7, KC_F8, KC_PIPE}, {KC_TRNS, KC_TRNS, DVORAK, QWERTY, COLEMAK, KC_LCTL, KC_TRNS, KC_F9, KC_F10, KC_F11, KC_F12 }, {KC_TRNS, KC_TRNS, KC_LGUI, KC_TRNS, KC_BSPC, KC_LALT, KC_SPC, KC_TRNS, LSFT(KC_LBRC), LSFT(KC_RBRC), RESET} } From 91b1aa0994ad2296d03148d9bec8c455ef105fcb Mon Sep 17 00:00:00 2001 From: Xyverz Date: Tue, 18 Oct 2016 16:34:42 -0700 Subject: [PATCH 008/190] Add files via upload Minor layout changes --- keyboards/preonic/keymaps/xyverz/keymap.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/keyboards/preonic/keymaps/xyverz/keymap.c b/keyboards/preonic/keymaps/xyverz/keymap.c index adc7392e5c8..bc4692f3ece 100644 --- a/keyboards/preonic/keymaps/xyverz/keymap.c +++ b/keyboards/preonic/keymaps/xyverz/keymap.c @@ -97,7 +97,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { {KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH}, {KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS}, {KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_RSFT}, - {KC_LCTL, KC_LALT, KC_LEFT, KC_RGHT, LOWER, KC_SPC, KC_SPC, RAISE, KC_UP, KC_DOWN, KC_RGUI, KC_ENT } + {KC_LCTL, KC_LALT, KC_LEFT, KC_RGHT, LOWER, KC_SPC, KC_SPC, RAISE, KC_UP, KC_DOWN, KC_LGUI, KC_ENT } }, /* Lower @@ -339,4 +339,4 @@ void play_goodbye_tone() _delay_ms(150); } -#endif \ No newline at end of file +#endif From 61eb35191a482aafde7e5eaa66c9b4a6fc455488 Mon Sep 17 00:00:00 2001 From: xyverz Date: Mon, 31 Oct 2016 17:58:22 -0700 Subject: [PATCH 009/190] Adding more keymaps. --- keyboards/clueboard/keymaps/xyverz/keymap.c | 108 ++++++++++++++++++++ keyboards/gh60/keymaps/xyverz/keymap | 61 +++++++++++ keyboards/gh60/keymaps/xyverz/keymap.c | 101 ++++++++++++++++++ keyboards/gh60/keymaps/xyverz/keymap_orig.c | 61 +++++++++++ 4 files changed, 331 insertions(+) create mode 100644 keyboards/clueboard/keymaps/xyverz/keymap.c create mode 100644 keyboards/gh60/keymaps/xyverz/keymap create mode 100644 keyboards/gh60/keymaps/xyverz/keymap.c create mode 100644 keyboards/gh60/keymaps/xyverz/keymap_orig.c diff --git a/keyboards/clueboard/keymaps/xyverz/keymap.c b/keyboards/clueboard/keymaps/xyverz/keymap.c new file mode 100644 index 00000000000..01f158bf0f8 --- /dev/null +++ b/keyboards/clueboard/keymaps/xyverz/keymap.c @@ -0,0 +1,108 @@ +#include "clueboard.h" + +// Used for SHIFT_ESC +#define MODS_CTRL_MASK (MOD_BIT(KC_LSHIFT)|MOD_BIT(KC_RSHIFT)) + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +// Layer names don't all need to be of the same length, obviously, and you can also skip them +// entirely and just use numbers. +#define _BL 0 +#define _FL 1 +#define _RS 2 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Keymap _BL: (Base Layer) Default Layer + * ,--------------------------------------------------------------------------. ,----. + * |Esc~| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =| \| BS| |PGUP| + * |--------------------------------------------------------------------------| |----| + * | Tab| Q| W| E| R| T| Y| U| I| O| P| [| ]| \| |PGDN| + * |--------------------------------------------------------------------------| `----' + * |Capslck| A| S| D| F| G| H| J| K| L| ;| '| # | Ent| + * |-----------------------------------------------------------------------------. + * |Shift| BS| Z| X| C| V| B| N| M| ,| .| /| BS|Shift| UP| + * |------------------------------------------------------------------------|----|----. + * | Ctrl| Gui| Alt| MHen| Space| Space| Hen| Alt| Ctrl| _FL|LEFT|DOWN|RGHT| + * `----------------------------------------------------------------------------------' + */ +[_BL] = KEYMAP( + F(0), KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_GRV, KC_BSPC, KC_PGUP, \ + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGDN, \ + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, \ + KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RO, KC_RSFT, KC_UP, \ + KC_LCTL, KC_LGUI, KC_LALT, KC_MHEN, KC_SPC,KC_SPC, KC_HENK, KC_RALT, KC_RCTL, MO(_FL), KC_LEFT, KC_DOWN, KC_RGHT), + + /* Keymap _FL: Function Layer + * ,--------------------------------------------------------------------------. ,----. + * | `| F1| F2| F3| F4| F5| F6| F7| F8| F9| F10| F11| F12| | Del| |BLIN| + * |--------------------------------------------------------------------------| |----| + * | | | | | | | | |PScr|SLck|Paus| | | | |BLDE| + * |--------------------------------------------------------------------------| `----' + * | | | _RS| | | | | | | | | | | | + * |-----------------------------------------------------------------------------. + * | | | | | | | | | | | | | | |PGUP| + * |------------------------------------------------------------------------|----|----. + * | | | | | | | | | | _FL|HOME|PGDN| END| + * `----------------------------------------------------------------------------------' + */ +[_FL] = KEYMAP( + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_DEL, BL_STEP, \ + KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_PSCR,KC_SLCK, KC_PAUS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ + KC_TRNS, KC_TRNS, MO(_RS),KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ + KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGUP, \ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MO(_FL), KC_HOME, KC_PGDN, KC_END), + + /* Keymap _RS: Reset layer + * ,--------------------------------------------------------------------------. ,----. + * | | | | | | | | | | | | | | | | | | + * |--------------------------------------------------------------------------| |----| + * | | | | |RESET| | | | | | | | | | | | + * |--------------------------------------------------------------------------| `----' + * | | | _RS| | | | | | | | | | | | + * |-----------------------------------------------------------------------------. + * | | | | | | | | | | | | | | | | + * |------------------------------------------------------------------------|----|----. + * | | | | | | | | | | _FL| | | | + * `----------------------------------------------------------------------------------' + */ +[_RS] = 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, RGB_TOG, RGB_VAI, \ + KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,RESET, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_VAD, \ + KC_TRNS, KC_TRNS, MO(_RS),KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ + MO(_FL), KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MO(_FL), RGB_SAI, \ + KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, RGB_MOD, RGB_MOD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_HUD, RGB_SAD, RGB_HUI), +}; + +enum function_id { + SHIFT_ESC, +}; + +const uint16_t PROGMEM fn_actions[] = { + [0] = ACTION_FUNCTION(SHIFT_ESC), +}; + +void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { + static uint8_t shift_esc_shift_mask; + switch (id) { + case SHIFT_ESC: + shift_esc_shift_mask = get_mods()&MODS_CTRL_MASK; + if (record->event.pressed) { + if (shift_esc_shift_mask) { + add_key(KC_GRV); + send_keyboard_report(); + } else { + add_key(KC_ESC); + send_keyboard_report(); + } + } else { + if (shift_esc_shift_mask) { + del_key(KC_GRV); + send_keyboard_report(); + } else { + del_key(KC_ESC); + send_keyboard_report(); + } + } + break; + } +} diff --git a/keyboards/gh60/keymaps/xyverz/keymap b/keyboards/gh60/keymaps/xyverz/keymap new file mode 100644 index 00000000000..85b998a467d --- /dev/null +++ b/keyboards/gh60/keymaps/xyverz/keymap @@ -0,0 +1,61 @@ +#include "gh60.h" +#include "action_layer.h" + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* 0: qwerty */ + KEYMAP( + ESC, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, LBRC,RBRC,BSPC, \ + TAB, QUOT,COMM,DOT, P, Y, F, G, C, R, L, SLSH,EQL, BSLS, \ + FN0, A, O, E, U, I, D, H, T, N, S, MINS,NO, ENT, \ + LSFT,NO, SCLN,Q, J, K, X, B, M, W, V, Z, NO, RSFT, \ + LCTL,LALT,LGUI, SPC, NO, RGUI,RALT,RCTL,FN0), + /* 1: fn */ + KEYMAP( + ESC, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, DEL, \ + TRNS,TRNS,UP, TRNS,TRNS,TRNS,TRNS,PGUP,UP, PGDN,PSCR,SLCK,PAUS,TRNS, \ + TRNS,LEFT,DOWN,RGHT,TRNS,TRNS,HOME,LEFT,DOWN,RGHT,INS, DEL, TRNS,TRNS, \ + CAPS,TRNS,TRNS,TRNS,TRNS,TRNS,END, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \ + TRNS,TRNS,TRNS, TRNS, TRNS,TRNS,TRNS,TRNS,TRNS), +}; + +const uint16_t PROGMEM fn_actions[] = { + [0] = ACTION_LAYER_MOMENTARY(1), // to Fn overlay +}; + +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; +}; + +void matrix_scan_user(void) { + +//Layer LED indicators + uint32_t layer = layer_state; + + if (layer & (1<<1)) { + gh60_wasd_leds_on(); + gh60_fn_led_on(); + } else { + gh60_wasd_leds_off(); + gh60_fn_led_off(); + } + + if (layer & (1<<2)) { + gh60_poker_leds_on(); + gh60_esc_led_on(); + } else { + gh60_poker_leds_off(); + gh60_esc_led_off(); + } + +}; diff --git a/keyboards/gh60/keymaps/xyverz/keymap.c b/keyboards/gh60/keymaps/xyverz/keymap.c new file mode 100644 index 00000000000..f0211a88b9b --- /dev/null +++ b/keyboards/gh60/keymaps/xyverz/keymap.c @@ -0,0 +1,101 @@ +#include "gh60.h" +#include "action_layer.h" +#include "eeconfig.h" + + +extern keymap_config_t keymap_config; + + +// Used for SHIFT_ESC +#define MODS_CTRL_MASK (MOD_BIT(KC_LSHIFT)|MOD_BIT(KC_RSHIFT)) + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +// Layer names don't all need to be of the same length, obviously, and you can also skip them +// entirely and just use numbers. +#define _QW 0 +#define _DV 1 +#define _CM 2 +#define _FL 3 + +// Macro name shortcuts +#define QWERTY M(_QW) +#define DVORAK M(_DV) +#define COLEMAK M(_CM) + +// Fillers to make layering more clear +#define _______ KC_TRNS +#define XXXXXXX KC_NO + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +[_QW] = { /* Layer 0: Qwerty */ + {KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, 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_LBRC, KC_RBRC, KC_BSLS}, + {MO(_FL), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, XXXXXXX, KC_ENT }, + {KC_LSFT, XXXXXXX, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, XXXXXXX, KC_RSFT}, + {KC_LCTL, KC_LALT, KC_LGUI, XXXXXXX, XXXXXXX, KC_SPC, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_RGUI, KC_RALT, KC_RCTL, MO(_FL)} + }, + +[_DV] = { /* Layer 1: Dvorak */ + {KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_LBRC, KC_RBRC, KC_BSPC}, + {KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH, KC_EQL, KC_BSLS}, + {MO(_FL), KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS, XXXXXXX, KC_ENT }, + {KC_LSFT, XXXXXXX, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, XXXXXXX, KC_RSFT}, + {KC_LCTL, KC_LALT, KC_LGUI, XXXXXXX, XXXXXXX, KC_SPC, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_RGUI, KC_RALT, KC_RCTL, MO(_FL)} + }, + +[_CM] = { /* Layer 2: Colemak */ + {KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, 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_LBRC, KC_RBRC, KC_BSLS}, + {MO(_FL), KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, XXXXXXX, KC_ENT }, + {KC_LSFT, XXXXXXX, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, XXXXXXX, KC_RSFT}, + {KC_LCTL, KC_LALT, KC_LGUI, XXXXXXX, XXXXXXX, KC_SPC, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_RGUI, KC_RALT, KC_RCTL, MO(_FL)} + }, + +[_FL] = { /* Layer 3: Functions */ + {_______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL }, + {_______, _______, _______, _______, _______, _______, _______, KC_PGUP, KC_UP, KC_PGDN, KC_PSCR, KC_SLCK, KC_PAUS, _______}, + {_______, _______, KC_MPRV, KC_MPLY, KC_MNXT, _______, KC_HOME, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, XXXXXXX, _______}, + {KC_CAPS, XXXXXXX, _______, KC_MUTE, KC_VOLD, KC_VOLU, KC_END, _______, _______, _______, _______, _______, XXXXXXX, _______}, + {QWERTY, DVORAK, COLEMAK, XXXXXXX, XXXXXXX, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, _______, _______, _______} + }, + + +}; + +enum function_id { + SHIFT_ESC, +}; + + +const uint16_t PROGMEM fn_actions[] = { + +}; + +void persistant_default_layer_set(uint16_t default_layer) { + eeconfig_update_default_layer(default_layer); + default_layer_set(default_layer); +} + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + switch(id) { + case _DV: + if (record->event.pressed) { + persistant_default_layer_set(1UL<<_DV); + } + break; + case _QW: + if (record->event.pressed) { + persistant_default_layer_set(1UL<<_QW); + } + break; + case _CM: + if (record->event.pressed) { + persistant_default_layer_set(1UL<<_CM); + } + break; + } + return MACRO_NONE; +}; diff --git a/keyboards/gh60/keymaps/xyverz/keymap_orig.c b/keyboards/gh60/keymaps/xyverz/keymap_orig.c new file mode 100644 index 00000000000..85b998a467d --- /dev/null +++ b/keyboards/gh60/keymaps/xyverz/keymap_orig.c @@ -0,0 +1,61 @@ +#include "gh60.h" +#include "action_layer.h" + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* 0: qwerty */ + KEYMAP( + ESC, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, LBRC,RBRC,BSPC, \ + TAB, QUOT,COMM,DOT, P, Y, F, G, C, R, L, SLSH,EQL, BSLS, \ + FN0, A, O, E, U, I, D, H, T, N, S, MINS,NO, ENT, \ + LSFT,NO, SCLN,Q, J, K, X, B, M, W, V, Z, NO, RSFT, \ + LCTL,LALT,LGUI, SPC, NO, RGUI,RALT,RCTL,FN0), + /* 1: fn */ + KEYMAP( + ESC, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, DEL, \ + TRNS,TRNS,UP, TRNS,TRNS,TRNS,TRNS,PGUP,UP, PGDN,PSCR,SLCK,PAUS,TRNS, \ + TRNS,LEFT,DOWN,RGHT,TRNS,TRNS,HOME,LEFT,DOWN,RGHT,INS, DEL, TRNS,TRNS, \ + CAPS,TRNS,TRNS,TRNS,TRNS,TRNS,END, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \ + TRNS,TRNS,TRNS, TRNS, TRNS,TRNS,TRNS,TRNS,TRNS), +}; + +const uint16_t PROGMEM fn_actions[] = { + [0] = ACTION_LAYER_MOMENTARY(1), // to Fn overlay +}; + +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; +}; + +void matrix_scan_user(void) { + +//Layer LED indicators + uint32_t layer = layer_state; + + if (layer & (1<<1)) { + gh60_wasd_leds_on(); + gh60_fn_led_on(); + } else { + gh60_wasd_leds_off(); + gh60_fn_led_off(); + } + + if (layer & (1<<2)) { + gh60_poker_leds_on(); + gh60_esc_led_on(); + } else { + gh60_poker_leds_off(); + gh60_esc_led_off(); + } + +}; From 063328344ada87757595d6b6b11023a6848da2e4 Mon Sep 17 00:00:00 2001 From: xyverz Date: Mon, 31 Oct 2016 18:04:01 -0700 Subject: [PATCH 010/190] Removed files that weren't supposed to be uploaded from gh60 keymap folder --- keyboards/gh60/keymaps/xyverz/keymap | 61 --------------------- keyboards/gh60/keymaps/xyverz/keymap_orig.c | 61 --------------------- 2 files changed, 122 deletions(-) delete mode 100644 keyboards/gh60/keymaps/xyverz/keymap delete mode 100644 keyboards/gh60/keymaps/xyverz/keymap_orig.c diff --git a/keyboards/gh60/keymaps/xyverz/keymap b/keyboards/gh60/keymaps/xyverz/keymap deleted file mode 100644 index 85b998a467d..00000000000 --- a/keyboards/gh60/keymaps/xyverz/keymap +++ /dev/null @@ -1,61 +0,0 @@ -#include "gh60.h" -#include "action_layer.h" - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - /* 0: qwerty */ - KEYMAP( - ESC, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, LBRC,RBRC,BSPC, \ - TAB, QUOT,COMM,DOT, P, Y, F, G, C, R, L, SLSH,EQL, BSLS, \ - FN0, A, O, E, U, I, D, H, T, N, S, MINS,NO, ENT, \ - LSFT,NO, SCLN,Q, J, K, X, B, M, W, V, Z, NO, RSFT, \ - LCTL,LALT,LGUI, SPC, NO, RGUI,RALT,RCTL,FN0), - /* 1: fn */ - KEYMAP( - ESC, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, DEL, \ - TRNS,TRNS,UP, TRNS,TRNS,TRNS,TRNS,PGUP,UP, PGDN,PSCR,SLCK,PAUS,TRNS, \ - TRNS,LEFT,DOWN,RGHT,TRNS,TRNS,HOME,LEFT,DOWN,RGHT,INS, DEL, TRNS,TRNS, \ - CAPS,TRNS,TRNS,TRNS,TRNS,TRNS,END, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \ - TRNS,TRNS,TRNS, TRNS, TRNS,TRNS,TRNS,TRNS,TRNS), -}; - -const uint16_t PROGMEM fn_actions[] = { - [0] = ACTION_LAYER_MOMENTARY(1), // to Fn overlay -}; - -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; -}; - -void matrix_scan_user(void) { - -//Layer LED indicators - uint32_t layer = layer_state; - - if (layer & (1<<1)) { - gh60_wasd_leds_on(); - gh60_fn_led_on(); - } else { - gh60_wasd_leds_off(); - gh60_fn_led_off(); - } - - if (layer & (1<<2)) { - gh60_poker_leds_on(); - gh60_esc_led_on(); - } else { - gh60_poker_leds_off(); - gh60_esc_led_off(); - } - -}; diff --git a/keyboards/gh60/keymaps/xyverz/keymap_orig.c b/keyboards/gh60/keymaps/xyverz/keymap_orig.c deleted file mode 100644 index 85b998a467d..00000000000 --- a/keyboards/gh60/keymaps/xyverz/keymap_orig.c +++ /dev/null @@ -1,61 +0,0 @@ -#include "gh60.h" -#include "action_layer.h" - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - /* 0: qwerty */ - KEYMAP( - ESC, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, LBRC,RBRC,BSPC, \ - TAB, QUOT,COMM,DOT, P, Y, F, G, C, R, L, SLSH,EQL, BSLS, \ - FN0, A, O, E, U, I, D, H, T, N, S, MINS,NO, ENT, \ - LSFT,NO, SCLN,Q, J, K, X, B, M, W, V, Z, NO, RSFT, \ - LCTL,LALT,LGUI, SPC, NO, RGUI,RALT,RCTL,FN0), - /* 1: fn */ - KEYMAP( - ESC, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, DEL, \ - TRNS,TRNS,UP, TRNS,TRNS,TRNS,TRNS,PGUP,UP, PGDN,PSCR,SLCK,PAUS,TRNS, \ - TRNS,LEFT,DOWN,RGHT,TRNS,TRNS,HOME,LEFT,DOWN,RGHT,INS, DEL, TRNS,TRNS, \ - CAPS,TRNS,TRNS,TRNS,TRNS,TRNS,END, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \ - TRNS,TRNS,TRNS, TRNS, TRNS,TRNS,TRNS,TRNS,TRNS), -}; - -const uint16_t PROGMEM fn_actions[] = { - [0] = ACTION_LAYER_MOMENTARY(1), // to Fn overlay -}; - -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; -}; - -void matrix_scan_user(void) { - -//Layer LED indicators - uint32_t layer = layer_state; - - if (layer & (1<<1)) { - gh60_wasd_leds_on(); - gh60_fn_led_on(); - } else { - gh60_wasd_leds_off(); - gh60_fn_led_off(); - } - - if (layer & (1<<2)) { - gh60_poker_leds_on(); - gh60_esc_led_on(); - } else { - gh60_poker_leds_off(); - gh60_esc_led_off(); - } - -}; From 8dd422ffe1a84416dd4a8d38878979f5b7bbd51b Mon Sep 17 00:00:00 2001 From: xyverz Date: Mon, 31 Oct 2016 18:27:05 -0700 Subject: [PATCH 011/190] Updates to keymap file. --- keyboards/gh60/keymaps/xyverz/keymap.c | 66 ++++++++++++++++++++++---- 1 file changed, 57 insertions(+), 9 deletions(-) diff --git a/keyboards/gh60/keymaps/xyverz/keymap.c b/keyboards/gh60/keymaps/xyverz/keymap.c index f0211a88b9b..e83a7f5a32b 100644 --- a/keyboards/gh60/keymaps/xyverz/keymap.c +++ b/keyboards/gh60/keymaps/xyverz/keymap.c @@ -6,9 +6,6 @@ extern keymap_config_t keymap_config; -// Used for SHIFT_ESC -#define MODS_CTRL_MASK (MOD_BIT(KC_LSHIFT)|MOD_BIT(KC_RSHIFT)) - // Each layer gets a name for readability, which is then used in the keymap matrix below. // The underscores don't mean anything - you can have a layer called STUFF or any other name. // Layer names don't all need to be of the same length, obviously, and you can also skip them @@ -29,6 +26,20 @@ extern keymap_config_t keymap_config; const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* + * _QW: Qwerty Layer + * ,-----------------------------------------------------------. + * |ESC | 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =| Backsp| + * |-----------------------------------------------------------| + * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \| + * |-----------------------------------------------------------| + * |Fn | A| S| D| F| G| H| J| K| L| ;| '| Return| + * |-----------------------------------------------------------| + * |Shift | Z| X| C| V| B| N| M| ,| .| /| Shift| + * |-----------------------------------------------------------| + * |Ctrl|Alt |Gui | Space |Gui |Alt |Ctrl| Fn| + * `-----------------------------------------------------------' + */ [_QW] = { /* Layer 0: Qwerty */ {KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, 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_LBRC, KC_RBRC, KC_BSLS}, @@ -37,6 +48,20 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { {KC_LCTL, KC_LALT, KC_LGUI, XXXXXXX, XXXXXXX, KC_SPC, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_RGUI, KC_RALT, KC_RCTL, MO(_FL)} }, + /* + * _DV: Dvorak Layer + * ,-----------------------------------------------------------. + * |ESC | 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| [| ]| Backsp| + * |-----------------------------------------------------------| + * |Tab | '| ,| .| P| Y| F| G| C| R| L| /| =| \| + * |-----------------------------------------------------------| + * |Fn | A| O| E| U| I| D| H| T| N| S| -| Return| + * |-----------------------------------------------------------| + * |Shift | ;| Q| J| K| X| B| M| W| V| Z| Shift| + * |-----------------------------------------------------------| + * |Ctrl|Alt |Gui | Space |Gui |Alt |Ctrl| Fn| + * `-----------------------------------------------------------' + */ [_DV] = { /* Layer 1: Dvorak */ {KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_LBRC, KC_RBRC, KC_BSPC}, {KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH, KC_EQL, KC_BSLS}, @@ -45,6 +70,20 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { {KC_LCTL, KC_LALT, KC_LGUI, XXXXXXX, XXXXXXX, KC_SPC, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_RGUI, KC_RALT, KC_RCTL, MO(_FL)} }, + /* + * _CM: Colemak Layer + * ,-----------------------------------------------------------. + * |ESC | 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =| Backsp| + * |-----------------------------------------------------------| + * |Tab | Q| W| F| P| G| J| L| U| Y| ;| [| ]| \| + * |-----------------------------------------------------------| + * |Fn | A| R| S| T| D| H| N| E| I| O| '| Return| + * |-----------------------------------------------------------| + * |Shift | Z| X| C| V| B| K| M| ,| .| /| Shift| + * |-----------------------------------------------------------| + * |Ctrl|Alt |Gui | Space |Gui |Alt |Ctrl| Fn| + * `-----------------------------------------------------------' + */ [_CM] = { /* Layer 2: Colemak */ {KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, 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_LBRC, KC_RBRC, KC_BSLS}, @@ -53,22 +92,31 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { {KC_LCTL, KC_LALT, KC_LGUI, XXXXXXX, XXXXXXX, KC_SPC, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_RGUI, KC_RALT, KC_RCTL, MO(_FL)} }, + /* + * _FL: Function Layer + * ,-----------------------------------------------------------. + * | |F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12| Del| + * |-----------------------------------------------------------| + * | | | | | | | |PgU| Up|PgD|PSc|SLk|Pau| | + * |-----------------------------------------------------------| + * | | |MPr|MPl|MNx| |Hom| Lt| Dn| Rt| | | | + * |-----------------------------------------------------------| + * |CAPS | |Mut|VlD|VlU| |End| | | | | | + * |-----------------------------------------------------------| + * |_QW |_DV |_CM | | | | | | + * `-----------------------------------------------------------' + */ [_FL] = { /* Layer 3: Functions */ {_______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL }, {_______, _______, _______, _______, _______, _______, _______, KC_PGUP, KC_UP, KC_PGDN, KC_PSCR, KC_SLCK, KC_PAUS, _______}, {_______, _______, KC_MPRV, KC_MPLY, KC_MNXT, _______, KC_HOME, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, XXXXXXX, _______}, - {KC_CAPS, XXXXXXX, _______, KC_MUTE, KC_VOLD, KC_VOLU, KC_END, _______, _______, _______, _______, _______, XXXXXXX, _______}, + {KC_CAPS, XXXXXXX, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, KC_END, _______, _______, _______, _______, XXXXXXX, _______}, {QWERTY, DVORAK, COLEMAK, XXXXXXX, XXXXXXX, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, _______, _______, _______} }, }; -enum function_id { - SHIFT_ESC, -}; - - const uint16_t PROGMEM fn_actions[] = { }; From 592b90dd221d3847d359b9a4dbd258b9ceb2b3ce Mon Sep 17 00:00:00 2001 From: xyverz Date: Tue, 13 Dec 2016 18:05:45 -0800 Subject: [PATCH 012/190] Changes --- keyboards/planck/keymaps/xyverz/keymap.c | 10 +- keyboards/preonic/keymaps/xyverz/keymap.c | 196 +++++++------------ keyboards/preonic/keymaps/xyverz/makefile.mk | 1 - 3 files changed, 72 insertions(+), 135 deletions(-) delete mode 100644 keyboards/preonic/keymaps/xyverz/makefile.mk diff --git a/keyboards/planck/keymaps/xyverz/keymap.c b/keyboards/planck/keymaps/xyverz/keymap.c index bbb83faf1cf..94ace2af565 100644 --- a/keyboards/planck/keymaps/xyverz/keymap.c +++ b/keyboards/planck/keymaps/xyverz/keymap.c @@ -44,14 +44,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |------+------+------+------+------+------|------+------+------+------+------+------| * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter | * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | + * | Brite| Ctrl | Alt | GUI |Lower | Bksp |Space |Raise | Left | Down | Up |Right | * `-----------------------------------------------------------------------------------' */ [_QWERTY] = { {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_RSFT}, - {KC_LCTL, KC_LALT, KC_LEFT, KC_RGHT, LOWER, KC_BSPC, KC_SPC, RAISE, KC_UP, KC_DOWN, KC_RGUI, KC_ENT } + {KC_LCTL, KC_LALT, KC_LEFT, KC_RGHT, LOWER, GUI_T(KC_BSPC), KC_SPC, RAISE, KC_UP, KC_DOWN, KC_RGUI, KC_ENT } }, /* Colemak @@ -62,14 +62,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |------+------+------+------+------+------|------+------+------+------+------+------| * | Shift| Z | X | C | V | B | K | M | , | . | / |Enter | * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | + * | Brite| Ctrl | Alt | GUI |Lower | Bksp |Space |Raise | Left | Down | Up |Right | * `-----------------------------------------------------------------------------------' */ [_COLEMAK] = { {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_RSFT}, - {KC_LCTL, KC_LALT, KC_LEFT, KC_RGHT, LOWER, KC_BSPC, KC_SPC, RAISE, KC_UP, KC_DOWN, KC_RGUI, KC_ENT } + {KC_LCTL, KC_LALT, KC_LEFT, KC_RGHT, LOWER, GUI_T(KC_BSPC), KC_SPC, RAISE, KC_UP, KC_DOWN, KC_RGUI, KC_ENT } }, /* Dvorak @@ -87,7 +87,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { {KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH}, {KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS}, {KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_RSFT}, - {KC_LCTL, KC_LALT, KC_LEFT, KC_RGHT, LOWER, KC_BSPC, KC_SPC, RAISE, KC_UP, KC_DOWN, KC_RGUI, KC_ENT } + {KC_LCTL, KC_LALT, KC_LEFT, KC_RGHT, LOWER, GUI_T(KC_BSPC), KC_SPC, RAISE, KC_UP, KC_DOWN, KC_RGUI, KC_ENT } }, /* Lower diff --git a/keyboards/preonic/keymaps/xyverz/keymap.c b/keyboards/preonic/keymaps/xyverz/keymap.c index bc4692f3ece..b2240146065 100644 --- a/keyboards/preonic/keymaps/xyverz/keymap.c +++ b/keyboards/preonic/keymaps/xyverz/keymap.c @@ -14,22 +14,16 @@ #define _DVORAK 2 #define _LOWER 3 #define _RAISE 4 -#define _MUSIC 5 #define _ADJUST 16 -// Macro name shortcuts -#define QWERTY M(_QWERTY) -#define COLEMAK M(_COLEMAK) -#define DVORAK M(_DVORAK) -#define LOWER M(_LOWER) -#define RAISE M(_RAISE) -#define M_BL 5 -#define AUD_OFF M(6) -#define AUD_ON M(7) -#define MUS_OFF M(8) -#define MUS_ON M(9) -#define VC_IN M(10) -#define VC_DE M(11) +enum preonic_keycodes { + QWERTY = SAFE_RANGE, + COLEMAK, + DVORAK, + LOWER, + RAISE, + BACKLIT +}; // Fillers to make layering more clear #define _______ KC_TRNS @@ -47,7 +41,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |------+------+------+------+------+------|------+------+------+------+------+------| * | Shift| Z | X | C | V | B | N | M | , | . | / | Shift| * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Ctrl | Alt | Left |Right |Lower | Space |Raise | Up | Down | GUI |Enter | + * | Ctrl | Alt | Left |Right |Lower | Bksp |Space |Raise | Up | Down | GUI |Enter | * `-----------------------------------------------------------------------------------' */ [_QWERTY] = { @@ -55,7 +49,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL}, {KC_MINS, 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_RSFT}, - {KC_LCTL, KC_LALT, KC_LEFT, KC_RGHT, LOWER, KC_SPC, KC_SPC, RAISE, KC_UP, KC_DOWN, KC_RGUI, KC_ENT } + {KC_LCTL, KC_LALT, KC_LEFT, KC_RGHT, LOWER, GUI_T(KC_BSPC), KC_SPC, RAISE, KC_UP, KC_DOWN, KC_RGUI, KC_ENT } }, /* Colemak @@ -66,17 +60,17 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |------+------+------+------+------+-------------+------+------+------+------+------| * | Esc | A | R | S | T | D | H | N | E | I | O | " | * |------+------+------+------+------+------|------+------+------+------+------+------| - * | Shift| Z | X | C | V | B | K | M | , | . | / |Enter | + * | Shift| Z | X | C | V | B | K | M | , | . | / | Shift| * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | + * | Ctrl | Alt | Left |Right |Lower | Bksp |Space |Raise | Up | Down | GUI |Enter | * `-----------------------------------------------------------------------------------' */ [_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_DEL}, {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 }, - {M(M_BL), KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} + {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT}, + {KC_LCTL, KC_LALT, KC_LEFT, KC_RGHT, LOWER, GUI_T(KC_BSPC), KC_SPC, RAISE, KC_UP, KC_DOWN, KC_RGUI, KC_ENT } }, /* Dvorak @@ -89,7 +83,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |------+------+------+------+------+------|------+------+------+------+------+------| * | Shift| ; | Q | J | K | X | B | M | W | V | Z | Shift| * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Ctrl | Alt | Left |Right |Lower | Space |Raise | Up | Down | GUI |Enter | + * | Ctrl | Alt | Left |Right |Lower | Bksp |Space |Raise | Up | Down | GUI |Enter | * `-----------------------------------------------------------------------------------' */ [_DVORAK] = { @@ -97,7 +91,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { {KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH}, {KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS}, {KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_RSFT}, - {KC_LCTL, KC_LALT, KC_LEFT, KC_RGHT, LOWER, KC_SPC, KC_SPC, RAISE, KC_UP, KC_DOWN, KC_LGUI, KC_ENT } + {KC_LCTL, KC_LALT, KC_LEFT, KC_RGHT, LOWER, GUI_T(KC_BSPC), KC_SPC, RAISE, KC_UP, KC_DOWN, KC_RGUI, KC_ENT } }, /* Lower @@ -110,7 +104,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |------+------+------+------+------+------|------+------+------+------+------+------| * | | F7 | F8 | F9 | F10 | F11 | F12 | | Mute | Vol- | Vol+ | | * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Brite| | Home | End | | Ins | | PgUp | PgDN | |Enter | + * | Brite| | Home | End | | Del | Ins | | PgUp | PgDN | |Enter | * `-----------------------------------------------------------------------------------' */ [_LOWER] = { @@ -118,7 +112,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { {KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL}, {KC_CAPS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE}, {_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______}, - {M(M_BL), _______, KC_HOME, KC_END, _______, KC_INS, KC_INS, _______, KC_PGUP, KC_PGDN, _______, _______} + {BACKLIT, _______, KC_HOME, KC_END, _______, KC_DEL, KC_INS, _______, KC_PGUP, KC_PGDN, _______, _______} }, /* Raise @@ -131,7 +125,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |------+------+------+------+------+------|------+------+------+------+------+------| * | | F7 | F8 | F9 | F10 | F11 | F12 | | Prev | Play | Next | | * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Brite| | Home | End | | Ins | | PgUp | PgDN | |Enter | + * | Brite| | Home | End | | Del | Ins | | PgUp | PgDN | |Enter | * `-----------------------------------------------------------------------------------' */ [_RAISE] = { @@ -139,18 +133,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { {KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL}, {KC_CAPS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS}, {_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_MPRV, KC_MPLY, KC_MNXT, _______, _______}, - {M(M_BL), _______, KC_HOME, KC_END, _______, KC_INS, KC_INS, _______, KC_PGUP, KC_PGDN, _______, _______} -}, - -/* Music (reserved for process_action_user) - * - */ -[_MUSIC] = { - {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX}, - {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX}, - {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX}, - {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX}, - {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, LOWER, XXXXXXX, XXXXXXX, RAISE, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX} + {BACKLIT, _______, KC_HOME, KC_END, _______, KC_DEL, KC_INS, _______, KC_PGUP, KC_PGDN, _______, _______} }, /* Adjust (Lower + Raise) @@ -169,32 +152,29 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_ADJUST] = { {KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12}, {_______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL}, - {_______, _______, _______, AUD_ON, AUD_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, _______, _______}, - {_______, VC_DE, VC_IN, MUS_ON, MUS_OFF, _______, _______, _______, _______, _______, _______, _______}, + {_______, _______, _______, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, _______, _______}, + {_______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, _______, _______, _______, _______, _______}, {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} } -}; - -const uint16_t PROGMEM fn_actions[] = { - }; #ifdef AUDIO_ENABLE -float start_up[][2] = { - {440.0*pow(2.0,(14)/12.0), 20}, - {440.0*pow(2.0,(26)/12.0), 8}, - {440.0*pow(2.0,(18)/12.0), 20}, - {440.0*pow(2.0,(26)/12.0), 8} +float tone_startup[][2] = { + {NOTE_B5, 20}, + {NOTE_B6, 8}, + {NOTE_DS6, 20}, + {NOTE_B6, 8} }; float tone_qwerty[][2] = SONG(QWERTY_SOUND); float tone_dvorak[][2] = SONG(DVORAK_SOUND); float tone_colemak[][2] = SONG(COLEMAK_SOUND); -float music_scale[][2] = SONG(MUSIC_SCALE_SOUND); -float goodbye[][2] = SONG(GOODBYE_SOUND); +float tone_goodbye[][2] = SONG(GOODBYE_SOUND); + +float music_scale[][2] = SONG(MUSIC_SCALE_SOUND); #endif void persistant_default_layer_set(uint16_t default_layer) { @@ -202,34 +182,36 @@ void persistant_default_layer_set(uint16_t default_layer) { default_layer_set(default_layer); } -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) -{ - switch(id) { - case _QWERTY: +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case QWERTY: if (record->event.pressed) { #ifdef AUDIO_ENABLE PLAY_NOTE_ARRAY(tone_qwerty, false, 0); #endif persistant_default_layer_set(1UL<<_QWERTY); } + return false; break; - case _COLEMAK: + case COLEMAK: if (record->event.pressed) { #ifdef AUDIO_ENABLE PLAY_NOTE_ARRAY(tone_colemak, false, 0); #endif persistant_default_layer_set(1UL<<_COLEMAK); } + return false; break; - case _DVORAK: + case DVORAK: if (record->event.pressed) { #ifdef AUDIO_ENABLE PLAY_NOTE_ARRAY(tone_dvorak, false, 0); #endif persistant_default_layer_set(1UL<<_DVORAK); } + return false; break; - case _LOWER: + case LOWER: if (record->event.pressed) { layer_on(_LOWER); update_tri_layer(_LOWER, _RAISE, _ADJUST); @@ -237,8 +219,9 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) layer_off(_LOWER); update_tri_layer(_LOWER, _RAISE, _ADJUST); } + return false; break; - case _RAISE: + case RAISE: if (record->event.pressed) { layer_on(_RAISE); update_tri_layer(_LOWER, _RAISE, _ADJUST); @@ -246,8 +229,9 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) layer_off(_RAISE); update_tri_layer(_LOWER, _RAISE, _ADJUST); } + return false; break; - case M_BL: + case BACKLIT: if (record->event.pressed) { register_code(KC_RSFT); #ifdef BACKLIGHT_ENABLE @@ -256,87 +240,41 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) } else { unregister_code(KC_RSFT); } - break; - case 6: - if (record->event.pressed) { - #ifdef AUDIO_ENABLE - audio_off(); - #endif - } - break; - case 7: - if (record->event.pressed) { - #ifdef AUDIO_ENABLE - audio_on(); - PLAY_NOTE_ARRAY(start_up, false, 0); - #endif - } - break; - case 8: - if (record->event.pressed) { - #ifdef AUDIO_ENABLE - layer_off(_MUSIC); - stop_all_notes(); - #endif - } - break; - case 9: - if (record->event.pressed) { - #ifdef AUDIO_ENABLE - PLAY_NOTE_ARRAY(music_scale, false, 0); - layer_on(_MUSIC); - #endif - } - break; - case 10: - if (record->event.pressed) { - #ifdef AUDIO_ENABLE - voice_iterate(); - PLAY_NOTE_ARRAY(music_scale, false, 0); - #endif - } - break; - case 11: - if (record->event.pressed) { - #ifdef AUDIO_ENABLE - voice_deiterate(); - PLAY_NOTE_ARRAY(music_scale, false, 0); - #endif - } - break; + return false; + break; } - return MACRO_NONE; + return true; }; - void matrix_init_user(void) { - #ifdef AUDIO_ENABLE - _delay_ms(20); // gets rid of tick - PLAY_NOTE_ARRAY(start_up, false, 0); - #endif + #ifdef AUDIO_ENABLE + startup_user(); + #endif } #ifdef AUDIO_ENABLE -uint8_t starting_note = 0x0C; -int offset = 7; - -void process_action_user(keyrecord_t *record) { - - if (IS_LAYER_ON(_MUSIC)) { - if (record->event.pressed) { - play_note(((double)220.0)*pow(2.0, -4.0)*pow(2.0,(starting_note + SCALE[record->event.key.col + offset])/12.0+(MATRIX_ROWS - record->event.key.row)), 0xF); - } else { - stop_note(((double)220.0)*pow(2.0, -4.0)*pow(2.0,(starting_note + SCALE[record->event.key.col + offset])/12.0+(MATRIX_ROWS - record->event.key.row))); - } - } - +void startup_user() +{ + _delay_ms(20); // gets rid of tick + PLAY_NOTE_ARRAY(tone_startup, false, 0); } -void play_goodbye_tone() +void shutdown_user() { - PLAY_NOTE_ARRAY(goodbye, false, 0); - _delay_ms(150); + PLAY_NOTE_ARRAY(tone_goodbye, false, 0); + _delay_ms(150); + stop_all_notes(); +} + +void music_on_user(void) +{ + music_scale_user(); +} + +void music_scale_user(void) +{ + PLAY_NOTE_ARRAY(music_scale, false, 0); } #endif diff --git a/keyboards/preonic/keymaps/xyverz/makefile.mk b/keyboards/preonic/keymaps/xyverz/makefile.mk deleted file mode 100644 index 628167ff668..00000000000 --- a/keyboards/preonic/keymaps/xyverz/makefile.mk +++ /dev/null @@ -1 +0,0 @@ -AUDIO_ENABLE = yes \ No newline at end of file From 79343f1c6cde28c454eac0a577d0d7dbf3aa2f17 Mon Sep 17 00:00:00 2001 From: xyverz Date: Sun, 8 Jan 2017 21:44:31 -0800 Subject: [PATCH 013/190] Usaility changes to keymap, tidying up a bit. --- keyboards/preonic/keymaps/xyverz/keymap.c | 24 +++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/keyboards/preonic/keymaps/xyverz/keymap.c b/keyboards/preonic/keymaps/xyverz/keymap.c index b2240146065..b4d18f9a225 100644 --- a/keyboards/preonic/keymaps/xyverz/keymap.c +++ b/keyboards/preonic/keymaps/xyverz/keymap.c @@ -54,11 +54,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Colemak * ,-----------------------------------------------------------------------------------. - * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | + * | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | * |------+------+------+------+------+------+------+------+------+------+------+------| * | Tab | Q | W | F | P | G | J | L | U | Y | ; | Del | * |------+------+------+------+------+-------------+------+------+------+------+------| - * | Esc | A | R | S | T | D | H | N | E | I | O | " | + * | Bksp | A | R | S | T | D | H | N | E | I | O | " | * |------+------+------+------+------+------|------+------+------+------+------+------| * | Shift| Z | X | C | V | B | K | M | , | . | / | Shift| * |------+------+------+------+------+------+------+------+------+------+------+------| @@ -66,9 +66,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `-----------------------------------------------------------------------------------' */ [_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_ESC, 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_DEL}, - {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_BSPC, 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_RSFT}, {KC_LCTL, KC_LALT, KC_LEFT, KC_RGHT, LOWER, GUI_T(KC_BSPC), KC_SPC, RAISE, KC_UP, KC_DOWN, KC_RGUI, KC_ENT } }, @@ -98,9 +98,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * ,-----------------------------------------------------------------------------------. * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | * |------+------+------+------+------+-------------+------+------+------+------+------| - * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Del | + * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | | | * |------+------+------+------+------+-------------+------+------+------+------+------| - * | Caps | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | | + * | Caps | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | * |------+------+------+------+------+------|------+------+------+------+------+------| * | | F7 | F8 | F9 | F10 | F11 | F12 | | Mute | Vol- | Vol+ | | * |------+------+------+------+------+------+------+------+------+------+------+------| @@ -109,8 +109,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [_LOWER] = { {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_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL}, - {KC_CAPS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE}, + {KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_PIPE}, + {KC_CAPS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, _______}, {_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______}, {BACKLIT, _______, KC_HOME, KC_END, _______, KC_DEL, KC_INS, _______, KC_PGUP, KC_PGDN, _______, _______} }, @@ -119,9 +119,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * ,-----------------------------------------------------------------------------------. * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | * |------+------+------+------+------+------+------+------+------+------+------+------| - * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Del | + * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | \ | * |------+------+------+------+------+-------------+------+------+------+------+------| - * | Caps | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ | + * | Caps | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | | * |------+------+------+------+------+------|------+------+------+------+------+------| * | | F7 | F8 | F9 | F10 | F11 | F12 | | Prev | Play | Next | | * |------+------+------+------+------+------+------+------+------+------+------+------| @@ -130,8 +130,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [_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_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL}, - {KC_CAPS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS}, + {KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSLS}, + {KC_CAPS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, _______}, {_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_MPRV, KC_MPLY, KC_MNXT, _______, _______}, {BACKLIT, _______, KC_HOME, KC_END, _______, KC_DEL, KC_INS, _______, KC_PGUP, KC_PGDN, _______, _______} }, From 7a9a5d0e626aaaff96b99f251d048d24e07289f9 Mon Sep 17 00:00:00 2001 From: Xyverz Date: Mon, 9 Jan 2017 19:08:46 -0800 Subject: [PATCH 014/190] Add files via upload tidying up the keymap --- keyboards/atreus/keymaps/xyverz/keymap.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/keyboards/atreus/keymaps/xyverz/keymap.c b/keyboards/atreus/keymaps/xyverz/keymap.c index f976b053195..66fdebb50b9 100644 --- a/keyboards/atreus/keymaps/xyverz/keymap.c +++ b/keyboards/atreus/keymaps/xyverz/keymap.c @@ -28,25 +28,25 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_DV] = { /* Dvorak */ {KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_NO, KC_F, KC_G, KC_C, KC_R, KC_L }, {KC_A, KC_O, KC_E, KC_U, KC_I, KC_NO, KC_D, KC_H, KC_T, KC_N, KC_S }, - {SFT_T(KC_SCLN), KC_Q, KC_J, KC_K, KC_X, CTL_T(KC_BSPC), KC_B, KC_M, KC_W, KC_V, SFT_T(KC_Z) }, + {SFT_T(KC_SCLN), KC_Q, KC_J, KC_K, KC_X, CTL_T(KC_DEL), KC_B, KC_M, KC_W, KC_V, SFT_T(KC_Z) }, {KC_ESC, KC_TAB, KC_LGUI, MO(_L2), KC_BSPC, ALT_T(KC_ENT), KC_SPC, MO(_L1), KC_MINS, KC_SLSH, KC_EQL} }, [_QW] = { /* Qwerty */ {KC_Q, KC_W, KC_E, KC_R, KC_T, KC_NO, KC_Y, KC_U, KC_I, KC_O, KC_P }, {KC_A, KC_S, KC_D, KC_F, KC_G, KC_NO, KC_H, KC_J, KC_K, KC_L, KC_SCLN}, - {SFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, CTL_T(KC_BSPC), KC_N, KC_M, KC_COMM, KC_DOT, SFT_T(KC_SLSH) }, - {KC_ESC, KC_TAB, KC_LGUI, MO(_L2), KC_BSPC, ALT_T(KC_ENT), KC_SPC, MO(_L1), KC_MINS, KC_QUOT, KC_ENT} + {SFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, CTL_T(KC_DEL), KC_N, KC_M, KC_COMM, KC_DOT, SFT_T(KC_SLSH) }, + {KC_ESC, KC_TAB, KC_LGUI, MO(_L2), KC_BSPC, ALT_T(KC_ENT), KC_SPC, MO(_L1), KC_MINS, KC_QUOT, KC_EQL} }, [_CM] = { /* Colemak */ {KC_Q, KC_W, KC_F, KC_P, KC_G, KC_NO, KC_J, KC_L, KC_U, KC_Y, KC_SCLN}, {KC_A, KC_R, KC_S, KC_T, KC_D, KC_NO, KC_H, KC_N, KC_E, KC_I, KC_O }, - {SFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, CTL_T(KC_BSPC), KC_K, KC_M, KC_COMM, KC_DOT, SFT_T(KC_SLSH) }, - {KC_ESC, KC_TAB, KC_LGUI, MO(_L2), KC_BSPC, ALT_T(KC_ENT), KC_SPC, MO(_L1), KC_MINS, KC_QUOT, KC_ENT} + {SFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, CTL_T(KC_DEL), KC_K, KC_M, KC_COMM, KC_DOT, SFT_T(KC_SLSH) }, + {KC_ESC, KC_TAB, KC_LGUI, MO(_L2), KC_BSPC, ALT_T(KC_ENT), KC_SPC, MO(_L1), KC_MINS, KC_QUOT, KC_EQL} }, [_L1] = { /* LAYER 1 */ {KC_1, KC_2, KC_3, KC_4, KC_5, KC_NO, KC_6, KC_7, KC_8, KC_9, KC_0 }, {KC_TAB, KC_INS, KC_UP, KC_DEL, KC_HOME, KC_NO, KC_PGUP, KC_MUTE, KC_VOLD, KC_VOLU, KC_BSLS}, - {KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_END, KC_LCTL, KC_PGDN, KC_MPRV, KC_MPLY, KC_MNXT, KC_TRNS}, + {KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_END, KC_LCTL, KC_PGDN, KC_MPRV, KC_MPLY, KC_MNXT, KC_BSLS}, {KC_TRNS, KC_GRV, KC_LGUI, KC_TRNS, KC_DEL, KC_LALT, KC_SPC, KC_TRNS, KC_LBRC, KC_RBRC, KC_ENT } }, [_L2] = { /* LAYER 2 */ From 1074642c3685816852f0fe58ccdf59a83fca9f47 Mon Sep 17 00:00:00 2001 From: Xyverz Date: Fri, 13 Jan 2017 01:51:52 -0800 Subject: [PATCH 015/190] initial commit of my Atreus62 keymap --- keyboards/atreus62/keymaps/xyverz/keymap.c | 93 ++++++++++++++++++++++ 1 file changed, 93 insertions(+) create mode 100644 keyboards/atreus62/keymaps/xyverz/keymap.c diff --git a/keyboards/atreus62/keymaps/xyverz/keymap.c b/keyboards/atreus62/keymaps/xyverz/keymap.c new file mode 100644 index 00000000000..cf59cd60928 --- /dev/null +++ b/keyboards/atreus62/keymaps/xyverz/keymap.c @@ -0,0 +1,93 @@ +// this is the style you want to emulate. +// This is the canonical layout file for the Quantum project. If you want to add another keyboard, + +#include "atreus62.h" +#include "action_layer.h" +#include "eeconfig.h" + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +// Layer names don't all need to be of the same length, obviously, and you can also skip them +// entirely and just use numbers. +#define _DV 0 +#define _QW 1 +#define _CM 2 +#define _L1 3 +#define _L2 4 + +// Macro name shortcuts +#define DVORAK M(_DV) +#define QWERTY M(_QW) +#define COLEMAK M(_CM) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_DV] = { /* dvorak */ + { KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_TRNS, KC_6, KC_7, KC_8, KC_9, KC_0, KC_EQL }, + { KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_TRNS, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH }, + { KC_CAPS, KC_A, KC_O, KC_E, KC_U, KC_I, KC_TRNS, KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS }, + { KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_LGUI, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_RSFT }, + { KC_LCTL, KC_LALT, KC_LEFT, KC_RGHT, MO(_L1), KC_BSPC, KC_ENT, KC_SPC, MO(_L2), KC_UP, KC_DOWN, KC_RGUI, KC_RCTL } + }, + + [_QW] = { /* qwerty */ + { KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_TRNS, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS }, + { KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_TRNS, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL }, + { KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_TRNS, 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_LGUI, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT }, + { KC_LCTL, KC_LALT, KC_LEFT, KC_RGHT, MO(_L1), KC_BSPC, KC_ENT, KC_SPC, MO(_L2), KC_UP, KC_DOWN, KC_RGUI, KC_RCTL } + }, + + [_CM] = { /* colemak */ + { KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_TRNS, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS }, + { KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_TRNS, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_DEL }, + { KC_BSPC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_TRNS, 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_LGUI, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT }, + { KC_LCTL, KC_LALT, KC_LEFT, KC_RGHT, MO(_L1), KC_BSPC, KC_ENT, KC_SPC, MO(_L2), KC_UP, KC_DOWN, KC_RGUI, KC_RCTL } + }, + [_L1] = { + { KC_TILD, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_BSPC }, + { KC_TRNS, KC_F11, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_F12, KC_BSLS }, + { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LCBR, KC_RCBR, KC_TRNS }, + { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MUTE, KC_VOLD, KC_VOLU, KC_TRNS, KC_TRNS }, + { KC_TRNS, KC_TRNS, KC_HOME, KC_END, KC_TRNS, KC_DEL, KC_TRNS, KC_INS, KC_TRNS, KC_PGUP, KC_PGDN, KC_TRNS, KC_TRNS } + }, + [_L2] = { + { KC_TILD, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_BSPC }, + { KC_TRNS, KC_F11, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_F12, KC_PIPE }, + { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LBRC, KC_RBRC, KC_TRNS }, + { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_MPLY, KC_MNXT, KC_TRNS, KC_TRNS }, + { KC_TRNS, KC_TRNS, KC_HOME, KC_END, KC_TRNS, KC_DEL, KC_TRNS, KC_INS, KC_TRNS, KC_PGUP, KC_PGDN, KC_TRNS, KC_TRNS } + }, + +}; + +const uint16_t PROGMEM fn_actions[] = { + +}; + +void persistant_default_layer_set(uint16_t default_layer) { + eeconfig_update_default_layer(default_layer); + default_layer_set(default_layer); +} + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + switch(id) { + case _DV: + if (record->event.pressed) { + persistant_default_layer_set(1UL<<_DV); + } + break; + case _QW: + if (record->event.pressed) { + persistant_default_layer_set(1UL<<_QW); + } + break; + case _CM: + if (record->event.pressed) { + persistant_default_layer_set(1UL<<_CM); + } + break; + } + return MACRO_NONE; +}; From c8a0ab18676ff0f4ca92eaafba84e481406b7912 Mon Sep 17 00:00:00 2001 From: Xyverz Date: Thu, 19 Jan 2017 06:49:59 -0800 Subject: [PATCH 016/190] Changes to Atreus62 keymap, adding Let's Split keymap. --- keyboards/atreus62/keymaps/xyverz/keymap.c | 159 +++++++++++++++------ 1 file changed, 112 insertions(+), 47 deletions(-) diff --git a/keyboards/atreus62/keymaps/xyverz/keymap.c b/keyboards/atreus62/keymaps/xyverz/keymap.c index cf59cd60928..e2d8126f41c 100644 --- a/keyboards/atreus62/keymaps/xyverz/keymap.c +++ b/keyboards/atreus62/keymaps/xyverz/keymap.c @@ -1,6 +1,34 @@ +/* This is the Atreus62 keyboard layout by Xyverz aka u/Zrevyx on r/mk + I've blatantly stolen what works for me from the Planck and Preonic + layouts and modified this file to fit me. Initial credet goes to + u/profet23 for the doing all the work and adding this keyboard to + QMK in the first place. + + I've got Dvorak, Qwerty, and Colemak layouts at this time, with the + possibility of adding more in the future. + + The bottom row is fairly Kinesis-ish since the Contour and Advantage + keyboards have been my daily drivers for the last 17 years. I hope + You can get some enjoyment out of this layout should you chose it! + +CHANGELOG: + + 0.1 - Initial commit. Based off of Profet's default keymap. + 0.2 - Converted to a more Planck/Preonic keymap style file with + persistent layers enabled. Renamed layers to reflect OLKB maps. + Added a TODO list. + +TODO: + + * Make the layout more efficient, even if it means changing the RAISE + and LOWER functionality. + * Add legends in comments for each layer. Maybe. + * Add a gaming layer. + +*/ + // this is the style you want to emulate. // This is the canonical layout file for the Quantum project. If you want to add another keyboard, - #include "atreus62.h" #include "action_layer.h" #include "eeconfig.h" @@ -9,54 +37,69 @@ // The underscores don't mean anything - you can have a layer called STUFF or any other name. // Layer names don't all need to be of the same length, obviously, and you can also skip them // entirely and just use numbers. -#define _DV 0 -#define _QW 1 -#define _CM 2 -#define _L1 3 -#define _L2 4 +#define _DVORAK 0 +#define _QWERTY 1 +#define _COLEMAK 2 +#define _LOWER 3 +#define _RAISE 4 +#define _ADJUST 16 -// Macro name shortcuts -#define DVORAK M(_DV) -#define QWERTY M(_QW) -#define COLEMAK M(_CM) +enum atreus52_keycodes { + DVORAK = SAFE_RANGE, + QWERTY, + COLEMAK, + LOWER, + RAISE +}; + +// Fillers to make layering more clear +#define _______ KC_TRNS +#define XXXXXXX KC_NO const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_DV] = { /* dvorak */ - { KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_TRNS, KC_6, KC_7, KC_8, KC_9, KC_0, KC_EQL }, - { KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_TRNS, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH }, - { KC_CAPS, KC_A, KC_O, KC_E, KC_U, KC_I, KC_TRNS, KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS }, + [_DVORAK] = { /* dvorak */ + { KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, _______, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSLS }, + { KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, _______, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH }, + { KC_CAPS, KC_A, KC_O, KC_E, KC_U, KC_I, _______, KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS }, { KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_LGUI, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_RSFT }, - { KC_LCTL, KC_LALT, KC_LEFT, KC_RGHT, MO(_L1), KC_BSPC, KC_ENT, KC_SPC, MO(_L2), KC_UP, KC_DOWN, KC_RGUI, KC_RCTL } + { KC_LCTL, KC_LALT, KC_LEFT, KC_RGHT, LOWER, KC_BSPC, KC_ENT, KC_SPC, RAISE, KC_UP, KC_DOWN, KC_RGUI, KC_RCTL } }, - [_QW] = { /* qwerty */ - { KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_TRNS, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS }, - { KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_TRNS, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL }, - { KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_TRNS, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT }, + [_QWERTY] = { /* qwerty */ + { KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, _______, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS }, + { KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, _______, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL }, + { KC_CAPS, 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_LGUI, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT }, - { KC_LCTL, KC_LALT, KC_LEFT, KC_RGHT, MO(_L1), KC_BSPC, KC_ENT, KC_SPC, MO(_L2), KC_UP, KC_DOWN, KC_RGUI, KC_RCTL } + { KC_LCTL, KC_LALT, KC_LEFT, KC_RGHT, LOWER, KC_BSPC, KC_ENT, KC_SPC, RAISE, KC_UP, KC_DOWN, KC_RGUI, KC_RCTL } }, - [_CM] = { /* colemak */ - { KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_TRNS, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS }, - { KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_TRNS, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_DEL }, - { KC_BSPC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_TRNS, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT }, + [_COLEMAK] = { /* colemak */ + { KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, _______, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS }, + { KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, _______, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_DEL }, + { KC_BSPC, 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_LGUI, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT }, - { KC_LCTL, KC_LALT, KC_LEFT, KC_RGHT, MO(_L1), KC_BSPC, KC_ENT, KC_SPC, MO(_L2), KC_UP, KC_DOWN, KC_RGUI, KC_RCTL } + { KC_LCTL, KC_LALT, KC_LEFT, KC_RGHT, LOWER, KC_BSPC, KC_ENT, KC_SPC, RAISE, KC_UP, KC_DOWN, KC_RGUI, KC_RCTL} }, - [_L1] = { - { KC_TILD, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_BSPC }, - { KC_TRNS, KC_F11, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_F12, KC_BSLS }, - { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LCBR, KC_RCBR, KC_TRNS }, - { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MUTE, KC_VOLD, KC_VOLU, KC_TRNS, KC_TRNS }, - { KC_TRNS, KC_TRNS, KC_HOME, KC_END, KC_TRNS, KC_DEL, KC_TRNS, KC_INS, KC_TRNS, KC_PGUP, KC_PGDN, KC_TRNS, KC_TRNS } + [_LOWER] = { + { KC_F11, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, _______, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F12 }, + { KC_TILD, KC_GRV, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PIPE }, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PLUS, KC_LCBR, KC_RCBR, _______ }, + { _______, _______, _______, _______, _______, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______ }, + { _______, _______, KC_HOME, KC_END, _______, KC_DEL, _______, KC_INS, _______, KC_PGUP, KC_PGDN, _______, _______ } }, - [_L2] = { - { KC_TILD, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_BSPC }, - { KC_TRNS, KC_F11, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_F12, KC_PIPE }, - { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LBRC, KC_RBRC, KC_TRNS }, - { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_MPLY, KC_MNXT, KC_TRNS, KC_TRNS }, - { KC_TRNS, KC_TRNS, KC_HOME, KC_END, KC_TRNS, KC_DEL, KC_TRNS, KC_INS, KC_TRNS, KC_PGUP, KC_PGDN, KC_TRNS, KC_TRNS } + [_RAISE] = { + { KC_F11, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, _______, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F12 }, + { KC_TILD, KC_GRV, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_BSLS }, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_EQL, KC_LBRC, KC_RBRC, _______ }, + { _______, _______, _______, _______, _______, _______, _______, _______, KC_MPRV, KC_MPLY, KC_MNXT, _______, _______ }, + { _______, _______, KC_HOME, KC_END, _______, KC_DEL, _______, KC_INS, _______, KC_PGUP, KC_PGDN, _______, _______ } + }, + [_ADJUST] = { + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, + { _______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, + { _______, _______, _______, _______, _______, _______, _______, _______, QWERTY, COLEMAK, DVORAK, _______, _______ }, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ } }, }; @@ -70,24 +113,46 @@ void persistant_default_layer_set(uint16_t default_layer) { default_layer_set(default_layer); } -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) -{ - switch(id) { - case _DV: +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case QWERTY: if (record->event.pressed) { - persistant_default_layer_set(1UL<<_DV); + persistant_default_layer_set(1UL<<_QWERTY); } + return false; break; - case _QW: + case COLEMAK: if (record->event.pressed) { - persistant_default_layer_set(1UL<<_QW); + persistant_default_layer_set(1UL<<_COLEMAK); } + return false; break; - case _CM: + case DVORAK: if (record->event.pressed) { - persistant_default_layer_set(1UL<<_CM); + persistant_default_layer_set(1UL<<_DVORAK); } + return false; + break; + case LOWER: + if (record->event.pressed) { + layer_on(_LOWER); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } else { + layer_off(_LOWER); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } + return false; + break; + case RAISE: + if (record->event.pressed) { + layer_on(_RAISE); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } else { + layer_off(_RAISE); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } + return false; break; } - return MACRO_NONE; + return true; }; From 80bc59858539383713c9d9f771ae293b1153674f Mon Sep 17 00:00:00 2001 From: Xyverz Date: Thu, 19 Jan 2017 06:51:24 -0800 Subject: [PATCH 017/190] Added Let's Split --- keyboards/lets_split/keymaps/xyverz/keymap.c | 191 +++++++++++++++++++ 1 file changed, 191 insertions(+) create mode 100644 keyboards/lets_split/keymaps/xyverz/keymap.c diff --git a/keyboards/lets_split/keymaps/xyverz/keymap.c b/keyboards/lets_split/keymaps/xyverz/keymap.c new file mode 100644 index 00000000000..62ee4b41d31 --- /dev/null +++ b/keyboards/lets_split/keymaps/xyverz/keymap.c @@ -0,0 +1,191 @@ +#include "lets_split.h" +#include "action_layer.h" +#include "eeconfig.h" + +extern keymap_config_t keymap_config; + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +// Layer names don't all need to be of the same length, obviously, and you can also skip them +// entirely and just use numbers. +#define _QWERTY 0 +#define _COLEMAK 1 +#define _DVORAK 2 +#define _LOWER 3 +#define _RAISE 4 +#define _ADJUST 16 + +enum planck_keycodes { + QWERTY = SAFE_RANGE, + COLEMAK, + DVORAK, + LOWER, + RAISE, + ADJUST +}; + +// Fillers to make layering more clear +#define _______ KC_TRNS +#define XXXXXXX KC_NO + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +/* Qwerty + * ,-----------------------------------------------------------------------------------. + * | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | A | S | D | F | G | H | J | K | L | ; | " | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Brite| Ctrl | Alt | GUI |Lower | Bksp |Space |Raise | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ +[_QWERTY] = KEYMAP ( \ + 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_RSFT,\ + KC_LCTL, KC_LALT, KC_LEFT, KC_RGHT, LOWER, GUI_T(KC_BSPC), KC_SPC, RAISE, KC_UP, KC_DOWN, KC_RGUI, KC_ENT \ +), + +/* Colemak + * ,-----------------------------------------------------------------------------------. + * | Tab | Q | W | F | P | G | J | L | U | Y | ; | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | A | R | S | T | D | H | N | E | I | O | " | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | K | M | , | . | / |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Brite| Ctrl | Alt | GUI |Lower | Bksp |Space |Raise | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ +[_COLEMAK] = KEYMAP ( \ + 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_RSFT, \ + KC_LCTL, KC_LALT, KC_LEFT, KC_RGHT, LOWER, GUI_T(KC_BSPC), KC_SPC, RAISE, KC_UP, KC_DOWN, KC_RGUI, KC_ENT \ +), + +/* Dvorak + * ,-----------------------------------------------------------------------------------. + * | Tab | " | , | . | P | Y | F | G | C | R | L | / | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | A | O | E | U | I | D | H | T | N | S | - | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| ; | Q | J | K | X | B | M | W | V | Z | Shift| + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Ctrl | Alt | Left |Right |Lower | Bksp |Space |Raise | Up | Down | GUI |Enter | + * `-----------------------------------------------------------------------------------' + */ +[_DVORAK] = KEYMAP ( \ + KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH, \ + KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS, \ + KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_RSFT, \ + KC_LCTL, KC_LALT, KC_LEFT, KC_RGHT, LOWER, GUI_T(KC_BSPC), KC_SPC, RAISE, KC_UP, KC_DOWN, KC_RGUI, KC_ENT \ +), + +/* Lower + * ,-----------------------------------------------------------------------------------. + * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Caps | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | F7 | F8 | F9 | F10 | F11 | F12 | | Mute | Vol- | Vol+ | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Brite| | Home | End | | Del | Ins | | PgUp | PgDN | |Enter | + * `-----------------------------------------------------------------------------------' + */ +[_LOWER] = KEYMAP ( \ + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______, \ + KC_CAPS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, \ + _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, \ + _______, _______, KC_HOME, KC_END, _______, KC_DEL, KC_INS, _______, KC_PGUP, KC_PGDN, _______, _______ \ +), + +/* Raise + * ,-----------------------------------------------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Caps | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | F7 | F8 | F9 | F10 | F11 | F12 | | Prev | Play | Next | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Brite| | Home | End | | Del | Ins | | PgUp | PgDN | |Enter | + * `-----------------------------------------------------------------------------------' + */ +[_RAISE] = KEYMAP ( \ + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______, \ + KC_CAPS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, \ + _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_MPRV, KC_MPLY, KC_MNXT, _______, _______, \ + _______, _______, KC_HOME, KC_END, _______, KC_DEL, KC_INS, _______, KC_PGUP, KC_PGDN, _______, _______ \ +), + +/* Adjust (Lower + Raise) + * ,-----------------------------------------------------------------------------------. + * | | Reset| | | | | | | | | | Del | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | | | |Aud on|Audoff|AGnorm|AGswap|Qwerty|Colemk|Dvorak| | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | |Voice-|Voice+|Mus on|Musoff|MIDIon|MIDIof| | | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | | | + * `-----------------------------------------------------------------------------------' + */ +[_ADJUST] = KEYMAP ( \ + _______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL , \ + _______, _______, _______, _______, _______, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \ +) + + +}; + +void persistant_default_layer_set(uint16_t default_layer) { + eeconfig_update_default_layer(default_layer); + default_layer_set(default_layer); +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case QWERTY: + if (record->event.pressed) { + persistant_default_layer_set(1UL<<_QWERTY); + } + return false; + break; + case COLEMAK: + if (record->event.pressed) { + persistant_default_layer_set(1UL<<_COLEMAK); + } + return false; + break; + case DVORAK: + if (record->event.pressed) { + persistant_default_layer_set(1UL<<_DVORAK); + } + return false; + break; + case LOWER: + if (record->event.pressed) { + layer_on(_LOWER); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } else { + layer_off(_LOWER); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } + return false; + break; + case RAISE: + if (record->event.pressed) { + layer_on(_RAISE); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } else { + layer_off(_RAISE); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } + return false; + break; + } + return true; +} \ No newline at end of file From 4f163b006e95852e374a71449c121c8aa47ab5a5 Mon Sep 17 00:00:00 2001 From: Xyverz Date: Mon, 30 Jan 2017 00:00:09 -0800 Subject: [PATCH 018/190] First revision of the XK-66 keyboard. --- keyboards/handwired/xk66/Makefile | 3 + keyboards/handwired/xk66/config.h | 162 ++++++++++++++++++ .../handwired/xk66/keymaps/default/Makefile | 21 +++ .../handwired/xk66/keymaps/default/config.h | 8 + .../handwired/xk66/keymaps/default/keymap.c | 90 ++++++++++ .../handwired/xk66/keymaps/default/readme.md | 1 + keyboards/handwired/xk66/readme.md | 28 +++ keyboards/handwired/xk66/rules.mk | 67 ++++++++ keyboards/handwired/xk66/xk66.c | 8 + keyboards/handwired/xk66/xk66.h | 25 +++ 10 files changed, 413 insertions(+) create mode 100644 keyboards/handwired/xk66/Makefile create mode 100644 keyboards/handwired/xk66/config.h create mode 100644 keyboards/handwired/xk66/keymaps/default/Makefile create mode 100644 keyboards/handwired/xk66/keymaps/default/config.h create mode 100644 keyboards/handwired/xk66/keymaps/default/keymap.c create mode 100644 keyboards/handwired/xk66/keymaps/default/readme.md create mode 100644 keyboards/handwired/xk66/readme.md create mode 100644 keyboards/handwired/xk66/rules.mk create mode 100644 keyboards/handwired/xk66/xk66.c create mode 100644 keyboards/handwired/xk66/xk66.h diff --git a/keyboards/handwired/xk66/Makefile b/keyboards/handwired/xk66/Makefile new file mode 100644 index 00000000000..bd09e5885d0 --- /dev/null +++ b/keyboards/handwired/xk66/Makefile @@ -0,0 +1,3 @@ +ifndef MAKEFILE_INCLUDED + include ../../../Makefile +endif diff --git a/keyboards/handwired/xk66/config.h b/keyboards/handwired/xk66/config.h new file mode 100644 index 00000000000..02ff2a6bf7b --- /dev/null +++ b/keyboards/handwired/xk66/config.h @@ -0,0 +1,162 @@ +/* +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 . +*/ + +#ifndef CONFIG_H +#define CONFIG_H + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x6060 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Xyverz +#define PRODUCT XK-66 +#define DESCRIPTION A hand-wired 66-key keyboard by Xyverz + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 14 + +/* + * 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 MATRIX_ROW_PINS { B5, B4, D7, D6, D4 } +#define MATRIX_COL_PINS { B6, F7, F6, F5, F4, F1, F0, D1, D0, B7, B3, B2, B1, B0 } +#define UNUSED_PINS + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +// #define BACKLIGHT_PIN B7 +// #define BACKLIGHT_BREATHING +// #define BACKLIGHT_LEVELS 3 + + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCING_DELAY 5 + +/* define if matrix has ghost (lacks anti-ghosting diodes) */ +//#define MATRIX_HAS_GHOST + +/* number of backlight levels */ + +/* 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 + * + * 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 + * + * 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 */ +#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. + */ + +/* disable debug print */ +//#define NO_DEBUG + +/* disable print */ +//#define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT +//#define NO_ACTION_MACRO +//#define NO_ACTION_FUNCTION + +#endif diff --git a/keyboards/handwired/xk66/keymaps/default/Makefile b/keyboards/handwired/xk66/keymaps/default/Makefile new file mode 100644 index 00000000000..f4671a9d113 --- /dev/null +++ b/keyboards/handwired/xk66/keymaps/default/Makefile @@ -0,0 +1,21 @@ +# Build Options +# change to "no" to disable the options, or define them in the Makefile in +# the appropriate keymap folder that will get included automatically +# +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE = yes # Mouse keys(+4700) +EXTRAKEY_ENABLE = yes # Audio control and System control(+450) +CONSOLE_ENABLE = no # Console for debug(+400) +COMMAND_ENABLE = yes # Commands for debug and configuration +NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +MIDI_ENABLE = no # MIDI controls +AUDIO_ENABLE = no # Audio output on port C6 +UNICODE_ENABLE = no # Unicode +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend + +ifndef QUANTUM_DIR + include ../../../../Makefile +endif \ No newline at end of file diff --git a/keyboards/handwired/xk66/keymaps/default/config.h b/keyboards/handwired/xk66/keymaps/default/config.h new file mode 100644 index 00000000000..df06a262062 --- /dev/null +++ b/keyboards/handwired/xk66/keymaps/default/config.h @@ -0,0 +1,8 @@ +#ifndef CONFIG_USER_H +#define CONFIG_USER_H + +#include "../../config.h" + +// place overrides here + +#endif \ No newline at end of file diff --git a/keyboards/handwired/xk66/keymaps/default/keymap.c b/keyboards/handwired/xk66/keymaps/default/keymap.c new file mode 100644 index 00000000000..61b3bd97fb4 --- /dev/null +++ b/keyboards/handwired/xk66/keymaps/default/keymap.c @@ -0,0 +1,90 @@ +#include "xk66.h" +#include "action_layer.h" +#include "eeconfig.h" + +extern keymap_config_t keymap_config; + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +// Layer names don't all need to be of the same length, obviously, and you can also skip them +// entirely and just use numbers. +#define _DV 0 +#define _QW 1 +#define _CM 2 +#define _FL 3 + +// Macro name shortcuts +#define QWERTY M(_QW) +#define DVORAK M(_DV) +#define COLEMAK M(_CM) + +// Fillers to make layering more clear +#define _______ KC_TRNS +#define XXXXXXX KC_NO + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[_DV] = KEYMAP ( /* Dvorak */ + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_LBRC, KC_RBRC, KC_BSPC, \ + KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH, KC_EQL, KC_BSLS, \ + MO(_FL), KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS, KC_ENT, \ + KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_RSFT, \ + KC_LCTL, KC_LALT, KC_LGUI, KC_LEFT, KC_RGHT, KC_BSPC, KC_SPC, KC_UP, KC_DOWN, KC_RGUI, KC_RALT, KC_RCTL, MO(_FL) + ), + +[_QW] = KEYMAP ( /* Qwerty */ + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, 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_LBRC, KC_RBRC, KC_BSLS, \ + MO(_FL), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, \ + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, \ + KC_LCTL, KC_LALT, KC_LGUI, KC_LEFT, KC_RGHT, KC_BSPC, KC_SPC, KC_UP, KC_DOWN, KC_RGUI, KC_RALT, KC_RCTL, MO(_FL) + ), + +[_CM] = KEYMAP ( /* Colemak */ + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, 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_LBRC, KC_RBRC, KC_BSLS, \ + MO(_FL), KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, KC_ENT, \ + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, \ + KC_LCTL, KC_LALT, KC_LGUI, KC_LEFT, KC_RGHT, KC_BSPC, KC_SPC, KC_UP, KC_DOWN, KC_RGUI, KC_RALT, KC_RCTL, MO(_FL) + ), + +[_FL] = KEYMAP ( /* Function Layer 1 */ + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ + _______, _______, KC_MPRV, KC_MPLY, KC_MNXT, _______, _______, QWERTY, DVORAK, COLEMAK, _______, _______, _______, \ + KC_CAPS, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, _______, _______, _______, _______, \ + RESET, _______, _______, KC_HOME, KC_END, KC_DEL, KC_INS, KC_PGUP, KC_PGDN, _______, _______, _______, _______ + ), + +}; + + +const uint16_t PROGMEM fn_actions[] = { + +}; + +void persistant_default_layer_set(uint16_t default_layer) { + eeconfig_update_default_layer(default_layer); + default_layer_set(default_layer); +} + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + switch(id) { + case _DV: + if (record->event.pressed) { + persistant_default_layer_set(1UL<<_DV); + } + break; + case _QW: + if (record->event.pressed) { + persistant_default_layer_set(1UL<<_QW); + } + break; + case _CM: + if (record->event.pressed) { + persistant_default_layer_set(1UL<<_CM); + } + break; + } + return MACRO_NONE; +}; diff --git a/keyboards/handwired/xk66/keymaps/default/readme.md b/keyboards/handwired/xk66/keymaps/default/readme.md new file mode 100644 index 00000000000..6940fdd7c60 --- /dev/null +++ b/keyboards/handwired/xk66/keymaps/default/readme.md @@ -0,0 +1 @@ +# The default keymap for handwired/xk66 \ No newline at end of file diff --git a/keyboards/handwired/xk66/readme.md b/keyboards/handwired/xk66/readme.md new file mode 100644 index 00000000000..2aac6bde33c --- /dev/null +++ b/keyboards/handwired/xk66/readme.md @@ -0,0 +1,28 @@ +handwired/xk66 keyboard firmware +====================== + +## Quantum MK Firmware + +For the full Quantum feature list, see [the parent readme](/). + +## Building + +Download or clone the whole firmware and navigate to the keyboards/handwired/xk66 folder. Once your dev env is setup, you'll be able to type `make` to generate your .hex - you can then use the Teensy Loader to program your .hex file. + +Depending on which keymap you would like to use, you will have to compile slightly differently. + +### Default + +To build with the default keymap, simply run `make default`. + +### 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 a folder with the name of your keymap in the keymaps folder, and see keymap documentation (you can find in top readme.md) and existant keymap files. + +To build the firmware binary hex file with a keymap just do `make` with a keymap like this: + +``` +$ make [default|jack|] +``` + +Keymaps follow the format **__\.c__** and are stored in the `keymaps` folder. diff --git a/keyboards/handwired/xk66/rules.mk b/keyboards/handwired/xk66/rules.mk new file mode 100644 index 00000000000..707a5385bec --- /dev/null +++ b/keyboards/handwired/xk66/rules.mk @@ -0,0 +1,67 @@ +# MCU name +#MCU = at90usb1287 +MCU = atmega32u4 + +# Processor frequency. +# This will define a symbol, F_CPU, in all source code files equal to the +# processor frequency in Hz. You can then use this symbol in your source code to +# calculate timings. Do NOT tack on a 'UL' at the end, this will be done +# automatically to create a 32-bit value in your source code. +# +# This will be an integer division of F_USB below, as it is sourced by +# F_USB after it has run through any CPU prescalers. Note that this value +# does not *change* the processor frequency - it should merely be updated to +# reflect the processor speed set externally so that the code can use accurate +# software delays. +F_CPU = 16000000 + + +# +# LUFA specific +# +# Target architecture (see library "Board Types" documentation). +ARCH = AVR8 + +# Input clock frequency. +# This will define a symbol, F_USB, in all source code files equal to the +# input clock frequency (before any prescaling is performed) in Hz. This value may +# differ from F_CPU if prescaling is used on the latter, and is required as the +# raw input clock is fed directly to the PLL sections of the AVR for high speed +# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL' +# at the end, this will be done automatically to create a 32-bit value in your +# source code. +# +# If no clock division is performed on the input clock inside the AVR (via the +# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU. +F_USB = $(F_CPU) + +# Interrupt driven control endpoint task(+60) +OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT + + +# Boot Section Size in *bytes* +# Teensy halfKay 512 +# Teensy++ halfKay 1024 +# Atmel DFU loader 4096 +# LUFA bootloader 4096 +# USBaspLoader 2048 +OPT_DEFS += -DBOOTLOADER_SIZE=512 + + +# Build Options +# change yes to no to disable +# +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 +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE ?= no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE ?= no # USB Nkey Rollover +BACKLIGHT_ENABLE ?= no # Enable keyboard backlight functionality on B7 by default +MIDI_ENABLE ?= no # MIDI controls +UNICODE_ENABLE ?= no # Unicode +BLUETOOTH_ENABLE ?= no # Enable Bluetooth with the Adafruit EZ-Key HID +AUDIO_ENABLE ?= no # Audio output on port C6 diff --git a/keyboards/handwired/xk66/xk66.c b/keyboards/handwired/xk66/xk66.c new file mode 100644 index 00000000000..3c3e31949e1 --- /dev/null +++ b/keyboards/handwired/xk66/xk66.c @@ -0,0 +1,8 @@ +#include "xk66.h" + +void matrix_init_kb(void) { + // put your keyboard start-up code here + // runs once when the firmware starts up + + matrix_init_user(); +} diff --git a/keyboards/handwired/xk66/xk66.h b/keyboards/handwired/xk66/xk66.h new file mode 100644 index 00000000000..38fe129e449 --- /dev/null +++ b/keyboards/handwired/xk66/xk66.h @@ -0,0 +1,25 @@ +#ifndef XK66_H +#define XK66_H + +#include "quantum.h" +#include "led.h" + + +// This a shortcut to help you visually see your layout. +// The first section contains all of the arguements +// The second converts the arguments into a two-dimensional array +#define KEYMAP( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0a, K0b, K0c, K0d, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1a, K1b, K1c, K1d, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2a, K2b, K2d, \ + K30, K32, K33, K34, K35, K36, K37, K38, K39, K3a, K3b, K3c, \ + K40, K41, K42, K43, K44, K45, K46, K48, K49, K4a, K4b, K4c, K4d \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0a, K0b, K0c, K0d }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1a, K1b, K1c, K1d }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2a, K2b, KC_NO, K2d }, \ + { K30, KC_NO, K32, K33, K34, K35, K36, K37, K38, K39, K3a, K3b, K3c, KC_NO }, \ + { K40, K41, K42, K43, K44, K45, K46, KC_NO, K48, K49, K4a, K4b, K4c, K4d } \ +} + +#endif \ No newline at end of file From 060f075fd1961b9835eece4bb6882b238fa68610 Mon Sep 17 00:00:00 2001 From: Xyverz Date: Tue, 7 Feb 2017 22:14:56 -0800 Subject: [PATCH 019/190] Added another handwired board, the Atreus50. Added a layer for WOW to my Atreus62. --- keyboards/atreus62/keymaps/xyverz/keymap.c | 23 +++- keyboards/handwired/atreus50/Makefile | 3 + keyboards/handwired/atreus50/atreus50.c | 1 + keyboards/handwired/atreus50/atreus50.h | 18 +++ keyboards/handwired/atreus50/config.h | 58 ++++++++ .../atreus50/keymaps/default/Makefile | 21 +++ .../atreus50/keymaps/default/keymap.c | 128 ++++++++++++++++++ keyboards/handwired/atreus50/rules.mk | 56 ++++++++ 8 files changed, 305 insertions(+), 3 deletions(-) create mode 100644 keyboards/handwired/atreus50/Makefile create mode 100644 keyboards/handwired/atreus50/atreus50.c create mode 100644 keyboards/handwired/atreus50/atreus50.h create mode 100644 keyboards/handwired/atreus50/config.h create mode 100644 keyboards/handwired/atreus50/keymaps/default/Makefile create mode 100644 keyboards/handwired/atreus50/keymaps/default/keymap.c create mode 100644 keyboards/handwired/atreus50/rules.mk diff --git a/keyboards/atreus62/keymaps/xyverz/keymap.c b/keyboards/atreus62/keymaps/xyverz/keymap.c index e2d8126f41c..7b7c69f57ae 100644 --- a/keyboards/atreus62/keymaps/xyverz/keymap.c +++ b/keyboards/atreus62/keymaps/xyverz/keymap.c @@ -40,14 +40,16 @@ TODO: #define _DVORAK 0 #define _QWERTY 1 #define _COLEMAK 2 -#define _LOWER 3 -#define _RAISE 4 +#define _WOW 3 +#define _LOWER 4 +#define _RAISE 5 #define _ADJUST 16 enum atreus52_keycodes { DVORAK = SAFE_RANGE, QWERTY, COLEMAK, + WOW, LOWER, RAISE }; @@ -80,6 +82,15 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { { KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_LGUI, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT }, { KC_LCTL, KC_LALT, KC_LEFT, KC_RGHT, LOWER, KC_BSPC, KC_ENT, KC_SPC, RAISE, KC_UP, KC_DOWN, KC_RGUI, KC_RCTL} }, + + [_WOW] = { /* Dvorak with minor modifications for playing World of Warcraft */ + { KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, _______, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSLS }, + { KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, _______, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH }, + { KC_CAPS, KC_A, KC_O, KC_E, KC_U, KC_I, _______, KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS }, + { KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_LALT, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_RSFT }, + { KC_LCTL, KC_LALT, KC_LEFT, KC_RGHT, LOWER, KC_BSPC, CTL_T(KC_ENT), KC_SPC, RAISE, KC_UP, KC_DOWN, KC_RGUI, KC_ENT } + }, + [_LOWER] = { { KC_F11, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, _______, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F12 }, { KC_TILD, KC_GRV, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PIPE }, @@ -97,7 +108,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_ADJUST] = { { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, { _______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, - { _______, _______, _______, _______, _______, _______, _______, _______, QWERTY, COLEMAK, DVORAK, _______, _______ }, + { _______, _______, _______, _______, _______, _______, _______, _______, QWERTY, COLEMAK, DVORAK, _______, WOW }, { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ } }, @@ -133,6 +144,12 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { } return false; break; + case WOW: + if (record->event.pressed) { + persistant_default_layer_set(1UL<<_WOW); + } + return false; + break; case LOWER: if (record->event.pressed) { layer_on(_LOWER); diff --git a/keyboards/handwired/atreus50/Makefile b/keyboards/handwired/atreus50/Makefile new file mode 100644 index 00000000000..bd09e5885d0 --- /dev/null +++ b/keyboards/handwired/atreus50/Makefile @@ -0,0 +1,3 @@ +ifndef MAKEFILE_INCLUDED + include ../../../Makefile +endif diff --git a/keyboards/handwired/atreus50/atreus50.c b/keyboards/handwired/atreus50/atreus50.c new file mode 100644 index 00000000000..dd0dbdaac9f --- /dev/null +++ b/keyboards/handwired/atreus50/atreus50.c @@ -0,0 +1 @@ +#include "atreus50.h" diff --git a/keyboards/handwired/atreus50/atreus50.h b/keyboards/handwired/atreus50/atreus50.h new file mode 100644 index 00000000000..5d27109cca6 --- /dev/null +++ b/keyboards/handwired/atreus50/atreus50.h @@ -0,0 +1,18 @@ +#ifndef ATREUS50_H +#define ATREUS50_H + +#include "quantum.h" + +#define KEYMAP( \ + K000, K001, K002, K003, K004, K005, K007, K008, K009, K010, K011, K012, \ + K100, K101, K102, K103, K104, K105, K107, K108, K109, K110, K111, K112, \ + K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, \ + K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312 \ +) { \ + { K000, K001, K002, K003, K004, K005, KC_NO, K007, K008, K009, K010, K011, K012 }, \ + { K100, K101, K102, K103, K104, K105, KC_NO, K107, K108, K109, K110, K111, K112 }, \ + { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212 }, \ + { K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312 } \ +} + +#endif \ No newline at end of file diff --git a/keyboards/handwired/atreus50/config.h b/keyboards/handwired/atreus50/config.h new file mode 100644 index 00000000000..0248032a014 --- /dev/null +++ b/keyboards/handwired/atreus50/config.h @@ -0,0 +1,58 @@ +#ifndef CONFIG_H +#define CONFIG_H + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x6060 +#define DEVICE_VER 0x0001 +#define MANUFACTURER qmkbuilder +#define PRODUCT Atreus50 +#define DESCRIPTION Keyboard + +/* key matrix size */ +#define MATRIX_ROWS 4 +#define MATRIX_COLS 13 + +/* key matrix pins */ +#define MATRIX_ROW_PINS { F4, F5, F6, F7 } +#define MATRIX_COL_PINS { D3, D2, D1, D0, D4, C6, D7, E6, B4, B5, B6, B2, B3 } +#define UNUSED_PINS + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* number of backlight levels */ + +#ifdef BACKLIGHT_PIN +#define BACKLIGHT_LEVELS 3 +#endif + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCING_DELAY 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 + +/* key combination for command */ +#define IS_COMMAND() ( \ + keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ +) + +/* prevent stuck modifiers */ +#define PREVENT_STUCK_MODIFIERS + + +#ifdef RGB_DI_PIN +#define RGBLIGHT_ANIMATIONS +#define RGBLED_NUM 0 +#define RGBLIGHT_HUE_STEP 8 +#define RGBLIGHT_SAT_STEP 8 +#define RGBLIGHT_VAL_STEP 8 +#endif + +#endif \ No newline at end of file diff --git a/keyboards/handwired/atreus50/keymaps/default/Makefile b/keyboards/handwired/atreus50/keymaps/default/Makefile new file mode 100644 index 00000000000..43fee266866 --- /dev/null +++ b/keyboards/handwired/atreus50/keymaps/default/Makefile @@ -0,0 +1,21 @@ +# Build Options +# change to "no" to disable the options, or define them in the Makefile in +# the appropriate keymap folder that will get included automatically +# +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 = no # Console for debug(+400) +COMMAND_ENABLE = yes # Commands for debug and configuration +NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +MIDI_ENABLE = no # MIDI controls +AUDIO_ENABLE = no # Audio output on port C6 +UNICODE_ENABLE = no # Unicode +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend + +ifndef QUANTUM_DIR + include ../../../../Makefile +endif \ No newline at end of file diff --git a/keyboards/handwired/atreus50/keymaps/default/keymap.c b/keyboards/handwired/atreus50/keymaps/default/keymap.c new file mode 100644 index 00000000000..b3dc17cb1a6 --- /dev/null +++ b/keyboards/handwired/atreus50/keymaps/default/keymap.c @@ -0,0 +1,128 @@ +// This is the canonical layout file for the Quantum project. If you want to add another keyboard, +// this is the style you want to emulate. + +#include "atreus50.h" +#include "action_layer.h" +#include "eeconfig.h" + +extern keymap_config_t keymap_config; + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +// Layer names don't all need to be of the same length, obviously, and you can also skip them +// entirely and just use numbers. +#define _DVORAK 0 +#define _QWERTY 1 +#define _COLEMAK 2 +#define _LOWER 3 +#define _RAISE 4 +#define _ADJUST 16 + +enum planck_keycodes { + DVORAK = SAFE_RANGE, + QWERTY, + COLEMAK, + LOWER, + RAISE, + BACKLIT +}; + +// Fillers to make layering more clear +#define _______ KC_TRNS +#define XXXXXXX KC_NO + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_DVORAK] = { /* dvorak */ + { KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, _______, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH }, + { KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, _______, KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS }, + { KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_ENT, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_RSFT }, + { KC_LCTL, KC_LALT, KC_LEFT, KC_RGHT, LOWER, KC_BSPC, KC_LGUI, KC_SPC, RAISE, KC_UP, KC_DOWN, KC_RGUI, KC_RCTL } + }, + + [_QWERTY] = { /* qwerty */ + { KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, _______, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL }, + { 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_ENT, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT }, + { KC_LCTL, KC_LALT, KC_LEFT, KC_RGHT, LOWER, KC_BSPC, KC_LGUI, KC_SPC, RAISE, KC_UP, KC_DOWN, KC_RGUI, KC_RCTL } + }, + + [_COLEMAK] = { /* colemak */ + { KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, _______, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_DEL }, + { 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_ENT, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT }, + { KC_LCTL, KC_LALT, KC_LEFT, KC_RGHT, LOWER, KC_BSPC, KC_LGUI, KC_SPC, RAISE, KC_UP, KC_DOWN, KC_RGUI, KC_RCTL} + }, + + [_LOWER] = { + { KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, _______, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______ }, + { KC_CAPS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, _______, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE }, + { _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, _______, KC_F12, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______ }, + { _______, _______, KC_HOME, KC_END, _______, KC_DEL, _______, KC_INS, _______, KC_PGUP, KC_PGDN, _______, _______ } + }, + [_RAISE] = { + { KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, _______, KC_6, KC_7, KC_8, KC_9, KC_0, _______ }, + { KC_CAPS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, _______, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS }, + { _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, _______, KC_F12, KC_MPRV, KC_MPLY, KC_MNXT, _______, _______ }, + { _______, _______, KC_HOME, KC_END, _______, KC_DEL, _______, KC_INS, _______, KC_PGUP, KC_PGDN, _______, _______ } + }, + [_ADJUST] = { + { KC_F11, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, _______, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F12 }, + { _______, RESET, _______, _______, _______, _______, _______, _______, QWERTY, COLEMAK, DVORAK, _______, _______ }, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ } + }, + +}; + +const uint16_t PROGMEM fn_actions[] = { + +}; + +void persistant_default_layer_set(uint16_t default_layer) { + eeconfig_update_default_layer(default_layer); + default_layer_set(default_layer); +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case QWERTY: + if (record->event.pressed) { + persistant_default_layer_set(1UL<<_QWERTY); + } + return false; + break; + case COLEMAK: + if (record->event.pressed) { + persistant_default_layer_set(1UL<<_COLEMAK); + } + return false; + break; + case DVORAK: + if (record->event.pressed) { + persistant_default_layer_set(1UL<<_DVORAK); + } + return false; + break; + case LOWER: + if (record->event.pressed) { + layer_on(_LOWER); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } else { + layer_off(_LOWER); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } + return false; + break; + case RAISE: + if (record->event.pressed) { + layer_on(_RAISE); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } else { + layer_off(_RAISE); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } + return false; + break; + } + return true; +}; \ No newline at end of file diff --git a/keyboards/handwired/atreus50/rules.mk b/keyboards/handwired/atreus50/rules.mk new file mode 100644 index 00000000000..1f8e943be7f --- /dev/null +++ b/keyboards/handwired/atreus50/rules.mk @@ -0,0 +1,56 @@ +# MCU name +MCU = atmega32u4 + +# Processor frequency. +# This will define a symbol, F_CPU, in all source code files equal to the +# processor frequency in Hz. You can then use this symbol in your source code to +# calculate timings. Do NOT tack on a 'UL' at the end, this will be done +# automatically to create a 32-bit value in your source code. +# +# This will be an integer division of F_USB below, as it is sourced by +# F_USB after it has run through any CPU prescalers. Note that this value +# does not *change* the processor frequency - it should merely be updated to +# reflect the processor speed set externally so that the code can use accurate +# software delays. +F_CPU = 16000000 + +# +# LUFA specific +# +# Target architecture (see library "Board Types" documentation). +ARCH = AVR8 + +# Input clock frequency. +# This will define a symbol, F_USB, in all source code files equal to the +# input clock frequency (before any prescaling is performed) in Hz. This value may +# differ from F_CPU if prescaling is used on the latter, and is required as the +# raw input clock is fed directly to the PLL sections of the AVR for high speed +# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL' +# at the end, this will be done automatically to create a 32-bit value in your +# source code. +# +# If no clock division is performed on the input clock inside the AVR (via the +# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU. +F_USB = $(F_CPU) + +# Interrupt driven control endpoint task(+60) +OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT + + +# Boot Section Size in *bytes* +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(+4700) +EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450) +CONSOLE_ENABLE ?= no # Console for debug(+400) +COMMAND_ENABLE ?= no # Commands for debug and configuration +SLEEP_LED_ENABLE ?= no # 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 ?= no # Enable keyboard backlight functionality +AUDIO_ENABLE ?= no +RGBLIGHT_ENABLE ?= no \ No newline at end of file From 4d7105c2cf47c7604b54cdf488b4eb9d08c1f1cf Mon Sep 17 00:00:00 2001 From: Xyverz Date: Fri, 10 Feb 2017 23:30:08 -0800 Subject: [PATCH 020/190] Added RGB Underglow to my Preonic --- keyboards/preonic/keymaps/xyverz/Makefile | 23 +++++++++++++++++ keyboards/preonic/keymaps/xyverz/config.h | 21 ++++++++++++++++ keyboards/preonic/keymaps/xyverz/keymap.c | 30 +++++++++++------------ 3 files changed, 59 insertions(+), 15 deletions(-) create mode 100644 keyboards/preonic/keymaps/xyverz/Makefile create mode 100644 keyboards/preonic/keymaps/xyverz/config.h diff --git a/keyboards/preonic/keymaps/xyverz/Makefile b/keyboards/preonic/keymaps/xyverz/Makefile new file mode 100644 index 00000000000..ea5f6c164e0 --- /dev/null +++ b/keyboards/preonic/keymaps/xyverz/Makefile @@ -0,0 +1,23 @@ +# Build Options +# change to "no" to disable the options, or define them in the Makefile in +# the appropriate keymap folder that will get included automatically +# +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE = no # Mouse keys(+4700) +EXTRAKEY_ENABLE = yes # Audio control and System control(+450) +CONSOLE_ENABLE = no # Console for debug(+400) +COMMAND_ENABLE = no # Commands for debug and configuration +NKRO_ENABLE = yes # 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 = no # MIDI controls +AUDIO_ENABLE = no # Audio output on port C6 +UNICODE_ENABLE = no # Unicode +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. + +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend + +ifndef QUANTUM_DIR + include ../../../../Makefile +endif \ No newline at end of file diff --git a/keyboards/preonic/keymaps/xyverz/config.h b/keyboards/preonic/keymaps/xyverz/config.h new file mode 100644 index 00000000000..4e12921fef3 --- /dev/null +++ b/keyboards/preonic/keymaps/xyverz/config.h @@ -0,0 +1,21 @@ +#ifndef CONFIG_USER_H +#define CONFIG_USER_H + +#include "../../config.h" + +// Number of backlight levels +#undef BACKLIGHT_LEVELS +#define BACKLIGHT_LEVELS 3 + +/* ws2812 RGB LED */ +#undef RGB_DI_PIN +#define RGB_DI_PIN B3 +#undef RGBLED_NUM +#define RGBLIGHT_ANIMATIONS +#define RGBLED_NUM 11 // Number of LEDs +#define RGBLIGHT_HUE_STEP 10 +#define RGBLIGHT_SAT_STEP 17 +#define RGBLIGHT_VAL_STEP 17 + + +#endif \ No newline at end of file diff --git a/keyboards/preonic/keymaps/xyverz/keymap.c b/keyboards/preonic/keymaps/xyverz/keymap.c index b4d18f9a225..c8457cda1f2 100644 --- a/keyboards/preonic/keymaps/xyverz/keymap.c +++ b/keyboards/preonic/keymaps/xyverz/keymap.c @@ -46,7 +46,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [_QWERTY] = { {KC_ESC, 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_DEL}, + {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL }, {KC_MINS, 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_RSFT}, {KC_LCTL, KC_LALT, KC_LEFT, KC_RGHT, LOWER, GUI_T(KC_BSPC), KC_SPC, RAISE, KC_UP, KC_DOWN, KC_RGUI, KC_ENT } @@ -67,7 +67,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [_COLEMAK] = { {KC_ESC, 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_DEL}, + {KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_DEL }, {KC_BSPC, 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_RSFT}, {KC_LCTL, KC_LALT, KC_LEFT, KC_RGHT, LOWER, GUI_T(KC_BSPC), KC_SPC, RAISE, KC_UP, KC_DOWN, KC_RGUI, KC_ENT } @@ -75,7 +75,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Dvorak * ,-----------------------------------------------------------------------------------. - * | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | + * | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | \ | * |------+------+------+------+------+------+------+------+------+------+------+------| * | Tab | " | , | . | P | Y | F | G | C | R | L | / | * |------+------+------+------+------+-------------+------+------+------+------+------| @@ -87,7 +87,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `-----------------------------------------------------------------------------------' */ [_DVORAK] = { - {KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, + {KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSLS}, {KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH}, {KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS}, {KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_RSFT}, @@ -96,7 +96,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Lower * ,-----------------------------------------------------------------------------------. - * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | | * |------+------+------+------+------+-------------+------+------+------+------+------| * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | | | * |------+------+------+------+------+-------------+------+------+------+------+------| @@ -108,7 +108,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `-----------------------------------------------------------------------------------' */ [_LOWER] = { - {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_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_PIPE}, {KC_CAPS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, _______}, {_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______}, @@ -117,7 +117,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Raise * ,-----------------------------------------------------------------------------------. - * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | | * |------+------+------+------+------+------+------+------+------+------+------+------| * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | \ | * |------+------+------+------+------+-------------+------+------+------+------+------| @@ -129,7 +129,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `-----------------------------------------------------------------------------------' */ [_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_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSLS}, {KC_CAPS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, _______}, {_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_MPRV, KC_MPLY, KC_MNXT, _______, _______}, @@ -140,20 +140,20 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * ,-----------------------------------------------------------------------------------. * | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | * |------+------+------+------+------+------+------+------+------+------+------+------| - * | | Reset| | | | | | | | | | Del | + * | | Reset| | | | | | | | | | | * |------+------+------+------+------+-------------+------+------+------+------+------| - * | | | |Audoff|Aud on|AGnorm|AGswap|Qwerty|Colemk|Dvorak| | | + * | | | | | |AGnorm|AGswap|Qwerty|Colemk|Dvorak| | | * |------+------+------+------+------+------|------+------+------+------+------+------| - * | |Voice-|Voice+|Musoff|Mus on| | | | | | | | + * | |RGB ON| MODE | HUE+ | HUE- | SAT+ | SAT- | VAL+ | VAL- | | | | * |------+------+------+------+------+------+------+------+------+------+------+------| * | | | | | | | | | | | | * `-----------------------------------------------------------------------------------' */ [_ADJUST] = { - {KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12}, - {_______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL}, - {_______, _______, _______, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, _______, _______}, - {_______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, _______, _______, _______, _______, _______}, + {KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12 }, + {_______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, + {_______, _______, _______, _______, _______, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, _______, _______}, + {_______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______}, {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} } From 134c354fc502b43798add95b7b154b2bc520e4e6 Mon Sep 17 00:00:00 2001 From: Xyverz Date: Sat, 11 Feb 2017 21:54:05 -0800 Subject: [PATCH 021/190] Adding a config file so that I can get RGB underglow for my Let's Split --- keyboards/lets_split/keymaps/xyverz/config.h | 37 ++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 keyboards/lets_split/keymaps/xyverz/config.h diff --git a/keyboards/lets_split/keymaps/xyverz/config.h b/keyboards/lets_split/keymaps/xyverz/config.h new file mode 100644 index 00000000000..87808a97a8e --- /dev/null +++ b/keyboards/lets_split/keymaps/xyverz/config.h @@ -0,0 +1,37 @@ +/* +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 . +*/ + + +#define USE_SERIAL + +#define MASTER_LEFT +// #define _MASTER_RIGHT +// #define EE_HANDS + +#ifdef SUBPROJECT_rev1 + #include "../../rev1/config.h" +#endif +#ifdef SUBPROJECT_rev2 + #include "../../rev2/config.h" + /* RGB Underglow */ + #undef RGBLED_NUM + #define RGBLIGHT_ANIMATIONS + #define RGBLED_NUM 8 +#endif +#ifdef SUBPROJECT_rev2fliphalf + #include "../../rev2fliphalf/config.h" +#endif From 489415009491847ac1855ef5586e2fdcf303aa19 Mon Sep 17 00:00:00 2001 From: Xyverz Date: Sat, 11 Feb 2017 21:54:58 -0800 Subject: [PATCH 022/190] Changes to the keymap to accommodate the RGB Underglow lighting. --- keyboards/lets_split/keymaps/xyverz/keymap.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/keyboards/lets_split/keymaps/xyverz/keymap.c b/keyboards/lets_split/keymaps/xyverz/keymap.c index 62ee4b41d31..d52eb40aeaf 100644 --- a/keyboards/lets_split/keymaps/xyverz/keymap.c +++ b/keyboards/lets_split/keymaps/xyverz/keymap.c @@ -126,15 +126,15 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |------+------+------+------+------+-------------+------+------+------+------+------| * | | | |Aud on|Audoff|AGnorm|AGswap|Qwerty|Colemk|Dvorak| | | * |------+------+------+------+------+------|------+------+------+------+------+------| - * | |Voice-|Voice+|Mus on|Musoff|MIDIon|MIDIof| | | | | | + * | |RGB ON| MODE | HUE+ | HUE- | SAT+ | SAT- | VAL+ | VAL- | | | | * |------+------+------+------+------+------+------+------+------+------+------+------| * | | | | | | | | | | | | * `-----------------------------------------------------------------------------------' */ [_ADJUST] = KEYMAP ( \ - _______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL , \ - _______, _______, _______, _______, _______, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, _______, _______, \ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ + KC_F11, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F12 , \ + _______, RESET, _______, _______, _______, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, _______, _______, \ + _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, \ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \ ) @@ -188,4 +188,4 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { break; } return true; -} \ No newline at end of file +} From ea20a064b98b962a723a1ae03ebc27e3f8897321 Mon Sep 17 00:00:00 2001 From: Xyverz Date: Wed, 15 Feb 2017 20:14:32 -0800 Subject: [PATCH 023/190] Added my keymap to the Kinesis project. --- keyboards/kinesis/keymaps/xyverz/Makefile | 21 ++ keyboards/kinesis/keymaps/xyverz/config.h | 8 + keyboards/kinesis/keymaps/xyverz/keymap.c | 226 +++++++++++++++++++++ keyboards/kinesis/keymaps/xyverz/readme.md | 1 + 4 files changed, 256 insertions(+) create mode 100644 keyboards/kinesis/keymaps/xyverz/Makefile create mode 100644 keyboards/kinesis/keymaps/xyverz/config.h create mode 100644 keyboards/kinesis/keymaps/xyverz/keymap.c create mode 100644 keyboards/kinesis/keymaps/xyverz/readme.md diff --git a/keyboards/kinesis/keymaps/xyverz/Makefile b/keyboards/kinesis/keymaps/xyverz/Makefile new file mode 100644 index 00000000000..1da780b8417 --- /dev/null +++ b/keyboards/kinesis/keymaps/xyverz/Makefile @@ -0,0 +1,21 @@ +# Build Options +# change to "no" to disable the options, or define them in the Makefile in +# the appropriate keymap folder that will get included automatically +# +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 = no # Console for debug(+400) +COMMAND_ENABLE = yes # Commands for debug and configuration +NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +MIDI_ENABLE = no # MIDI controls +AUDIO_ENABLE = no # Audio output on port C6 +UNICODE_ENABLE = no # Unicode +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend + +ifndef QUANTUM_DIR + include ../../../../Makefile +endif diff --git a/keyboards/kinesis/keymaps/xyverz/config.h b/keyboards/kinesis/keymaps/xyverz/config.h new file mode 100644 index 00000000000..8893d122e04 --- /dev/null +++ b/keyboards/kinesis/keymaps/xyverz/config.h @@ -0,0 +1,8 @@ +#ifndef CONFIG_USER_H +#define CONFIG_USER_H + +#include "../../config.h" + +// place overrides here + +#endif diff --git a/keyboards/kinesis/keymaps/xyverz/keymap.c b/keyboards/kinesis/keymaps/xyverz/keymap.c new file mode 100644 index 00000000000..7c5148ac20a --- /dev/null +++ b/keyboards/kinesis/keymaps/xyverz/keymap.c @@ -0,0 +1,226 @@ +#include "kinesis.h" +#include "action_layer.h" +#include "eeconfig.h" + +extern keymap_config_t keymap_config; + +#define _DV 0 // Dvorak layer +#define _QW 1 // Qwerty layer +#define _CM 2 // Colemak layer +#define _LO 3 // Media Layer +#define _RA 4 // Keypad Layer + +// Macro name shortcuts +#define DVORAK M(_DV) +#define QWERTY M(_QW) +#define COLEMAK M(_CM) + +// Fillers to make layering more clear +#define _______ KC_TRNS +#define XXXXXXX KC_NO + +// Fillers to make layering more clear +#define _______ KC_TRNS +#define XXXXXXX KC_NO + +/**************************************************************************************************** +* +* Keymap: Default Layer in Qwerty +* +* ,-------------------------------------------------------------------------------------------------------------------. +* | Esc | F1 | F2 | F3 | F4 | F5 | F6 | F8 | F9 | F10 | F12 | PSCR | SLCK | PAUS | FN0 | BOOT | +* |--------+------+------+------+------+------+---------------------------+------+------+------+------+------+--------| +* | =+ | 1! | 2@ | 3# | 4$ | 5% | | 6^ | 7& | 8* | 9( | 0) | -_ | +* |--------+------+------+------+------+------| +------+------+------+------+------+--------| +* | Tab | Q | W | E | R | T | | Y | U | I | O | P | \| | +* |--------+------+------+------+------+------| |------+------+------+------+------+--------| +* | Caps | A | S | D | F | G | | H | J | K | L | ;: | '" | +* |--------+------+------+------+------+------| |------+------+------+------+------+--------| +* | Shift | Z | X | C | V | B | | N | M | ,. | .> | /? | Shift | +* `--------+------+------+------+------+------- `------+------+------+------+------+--------' +* | `~ | INS | Left | Right| | Up | Down | [{ | ]} | +* `---------------------------' `---------------------------' +* ,-------------. ,-------------. +* | Ctrl | Alt | | Gui | Ctrl | +* ,------|------|------| |------+------+------. +* | | | Home | | PgUp | | | +* | BkSp | Del |------| |------|Return| Space| +* | | | End | | PgDn | | | +* `--------------------' `--------------------' +*/ + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +[_DV] = KEYMAP( + // Left Hand + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, + KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, + KC_CAPS, KC_A, KC_O, KC_E, KC_U, KC_I, + KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, + KC_GRV, KC_INS, KC_LEFT, KC_RGHT, + // Left Thumb + KC_LCTL, KC_LALT, + KC_HOME, + KC_BSPC, LT(_LO, KC_DEL), KC_END, + + // Right Hand + KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS, MO(_LO), MO(_RA), + KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSLS, + KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH, + KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS, + KC_B, KC_M, KC_W, KC_V, KC_Z, KC_RSFT, + KC_UP, KC_DOWN, KC_LBRC, KC_RBRC, + // Right Thumb + KC_RGUI, KC_RCTL, + KC_PGUP, + KC_PGDN, LT(_RA, KC_ENT), KC_SPC + ), + +[_QW] = KEYMAP( + // Left Hand + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, + KC_GRV, KC_INS, KC_LEFT, KC_RGHT, + // Left Thumb + KC_LCTL, KC_LALT, + KC_HOME, + KC_BSPC, LT(_LO, KC_DEL), KC_END, + + // Right Hand + KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS, MO(_LO), MO(_RA), + KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSLS, + KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL , + KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, + KC_UP, KC_DOWN, KC_LBRC, KC_RBRC, + // Right Thumb + KC_RGUI, KC_RCTL, + KC_PGUP, + KC_PGDN, LT(_RA, KC_ENT), KC_SPC + ), + +[_CM] = KEYMAP( + // Left Hand + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, + KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, + KC_BSPC, KC_A, KC_R, KC_S, KC_T, KC_D, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, + KC_GRV, KC_INS, KC_LEFT, KC_RGHT, + // Left Thumb + KC_LCTL, KC_LALT, + KC_HOME, + KC_BSPC, LT(_LO, KC_DEL), KC_END, + + // Right Hand + KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS, MO(_LO), MO(_RA), + KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, + KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_DEL, + KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, + KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, + KC_UP, KC_DOWN, KC_LBRC, KC_RBRC, + // Right Thumb + KC_RGUI, KC_RCTL, + KC_PGUP, + KC_PGDN, LT(_RA, KC_ENT), KC_SPC + ), + +[_LO] = KEYMAP( + // Left Hand + _______, _______, _______, _______, _______, _______, _______, _______, _______, + KC_F11, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, + _______, _______, KC_PSCR, KC_SLCK, KC_PAUS, _______, + _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, + _______, KC_MSTP, KC_MPRV, KC_MPLY, KC_MNXT, KC_MSEL, + _______, _______, _______, _______, + // Left Thumb + _______, _______, + _______, + _______, _______, _______, + + // Right Hand + _______, _______, _______, _______, _______, _______, _______, _______, _______, + KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F12, + _______, _______, _______, _______, _______, _______, + _______, _______, KC_PLUS, KC_LCBR, KC_RCBR, _______, + _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, + _______, _______, _______, _______, + // Right Thumb + _______, _______, + _______, + _______, _______, _______ + ), + +[_RA] = KEYMAP( + // Left Hand + _______, _______, _______, _______, _______, _______, _______, _______, _______, + KC_F11, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, + _______, _______, _______, _______, _______, _______, + _______, _______, QWERTY, COLEMAK, DVORAK, _______, + _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, + // Left Thumb + _______, _______, + _______, + _______, _______, _______, + + // Right Hand */ + _______, _______, _______, RESET, _______, _______, _______, _______, _______, + KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F12, + _______, _______, _______, _______, _______, _______, + _______, _______, KC_EQL, KC_LBRC, KC_RBRC, _______, + _______, KC_MPRV, KC_MPLY, KC_MNXT, _______, _______, + _______, _______, _______, _______, + // Right Thumb + _______, _______, + _______, + _______, _______, _______ + ) + +}; + + +const uint16_t PROGMEM fn_actions[] = { + +}; + +void persistant_default_layer_set(uint16_t default_layer) { + eeconfig_update_default_layer(default_layer); + default_layer_set(default_layer); +} + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + switch(id) { + case _DV: + if (record->event.pressed) { + persistant_default_layer_set(1UL<<_DV); + } + break; + case _QW: + if (record->event.pressed) { + persistant_default_layer_set(1UL<<_QW); + } + break; + case _CM: + if (record->event.pressed) { + persistant_default_layer_set(1UL<<_CM); + } + 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) { + +}; diff --git a/keyboards/kinesis/keymaps/xyverz/readme.md b/keyboards/kinesis/keymaps/xyverz/readme.md new file mode 100644 index 00000000000..da033be1e95 --- /dev/null +++ b/keyboards/kinesis/keymaps/xyverz/readme.md @@ -0,0 +1 @@ +# The default keymap for kinesis-advantage From 1dabceb19782f5856afe66a499020699604b2319 Mon Sep 17 00:00:00 2001 From: Xyverz Date: Wed, 15 Feb 2017 21:56:48 -0800 Subject: [PATCH 024/190] minor adjustments. --- keyboards/kinesis/keymaps/xyverz/keymap.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/keyboards/kinesis/keymaps/xyverz/keymap.c b/keyboards/kinesis/keymaps/xyverz/keymap.c index 7c5148ac20a..fb2d3bc06cb 100644 --- a/keyboards/kinesis/keymaps/xyverz/keymap.c +++ b/keyboards/kinesis/keymaps/xyverz/keymap.c @@ -54,25 +54,25 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_DV] = KEYMAP( // Left Hand KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, - KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, + KC_RBRC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_CAPS, KC_A, KC_O, KC_E, KC_U, KC_I, KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_GRV, KC_INS, KC_LEFT, KC_RGHT, // Left Thumb - KC_LCTL, KC_LALT, + CTL_T(KC_ESC), KC_LALT, KC_HOME, KC_BSPC, LT(_LO, KC_DEL), KC_END, // Right Hand KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS, MO(_LO), MO(_RA), - KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSLS, - KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH, + KC_6, KC_7, KC_8, KC_9, KC_0, KC_LBRC, + KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSLS, KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_RSFT, - KC_UP, KC_DOWN, KC_LBRC, KC_RBRC, + KC_UP, KC_DOWN, KC_SLSH, KC_EQL, // Right Thumb - KC_RGUI, KC_RCTL, + KC_RGUI, CTL_T(KC_ESC), KC_PGUP, KC_PGDN, LT(_RA, KC_ENT), KC_SPC ), From 80d5649f25f7cdd7596eb453576dca9eb680a5cd Mon Sep 17 00:00:00 2001 From: Xyverz Date: Wed, 15 Feb 2017 22:54:52 -0800 Subject: [PATCH 025/190] More refinements to my Kinesis keymap. Added a readme.md file. --- keyboards/kinesis/keymaps/xyverz/keymap.c | 195 +++++++++++++++------ keyboards/kinesis/keymaps/xyverz/readme.md | 131 +++++++++++++- 2 files changed, 270 insertions(+), 56 deletions(-) diff --git a/keyboards/kinesis/keymaps/xyverz/keymap.c b/keyboards/kinesis/keymaps/xyverz/keymap.c index fb2d3bc06cb..b8e06fe305e 100644 --- a/keyboards/kinesis/keymaps/xyverz/keymap.c +++ b/keyboards/kinesis/keymaps/xyverz/keymap.c @@ -7,8 +7,8 @@ extern keymap_config_t keymap_config; #define _DV 0 // Dvorak layer #define _QW 1 // Qwerty layer #define _CM 2 // Colemak layer -#define _LO 3 // Media Layer -#define _RA 4 // Keypad Layer +#define _MD 3 // Media Layer +#define _KP 4 // Keypad Layer // Macro name shortcuts #define DVORAK M(_DV) @@ -23,30 +23,115 @@ extern keymap_config_t keymap_config; #define _______ KC_TRNS #define XXXXXXX KC_NO -/**************************************************************************************************** -* -* Keymap: Default Layer in Qwerty -* -* ,-------------------------------------------------------------------------------------------------------------------. -* | Esc | F1 | F2 | F3 | F4 | F5 | F6 | F8 | F9 | F10 | F12 | PSCR | SLCK | PAUS | FN0 | BOOT | -* |--------+------+------+------+------+------+---------------------------+------+------+------+------+------+--------| -* | =+ | 1! | 2@ | 3# | 4$ | 5% | | 6^ | 7& | 8* | 9( | 0) | -_ | -* |--------+------+------+------+------+------| +------+------+------+------+------+--------| -* | Tab | Q | W | E | R | T | | Y | U | I | O | P | \| | -* |--------+------+------+------+------+------| |------+------+------+------+------+--------| -* | Caps | A | S | D | F | G | | H | J | K | L | ;: | '" | -* |--------+------+------+------+------+------| |------+------+------+------+------+--------| -* | Shift | Z | X | C | V | B | | N | M | ,. | .> | /? | Shift | -* `--------+------+------+------+------+------- `------+------+------+------+------+--------' -* | `~ | INS | Left | Right| | Up | Down | [{ | ]} | -* `---------------------------' `---------------------------' -* ,-------------. ,-------------. -* | Ctrl | Alt | | Gui | Ctrl | -* ,------|------|------| |------+------+------. -* | | | Home | | PgUp | | | -* | BkSp | Del |------| |------|Return| Space| -* | | | End | | PgDn | | | -* `--------------------' `--------------------' +/* + + Function Keys on All Layers (Keypad toggles): + ,-----------------------------------------------------------------. + | ESC | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | + `-----------------------------------------------------------------' + ,-----------------------------------------------------------------. + | F9 | F10 | F11 | F12 | PScr | SLck | Paus | Keypad | RESET | + `-----------------------------------------------------------------' + + Dvorak layer: + ,-------------------------------------------.,-------------------------------------------. + | ] | 1 | 2 | 3 | 4 | 5 || 6 | 7 | 8 | 9 | 0 | [ | + |--------+------+------+------+------+------||------+------+------+------+------+--------| + | Tab | ' | , | . | P | Y || F | G | C | R | L | \ | + |--------+------+------+------+------+------||------+------+------+------+------+--------| + | CapsLk | A | O | E | U | I || D | H | T | N | S | - | + |--------+------+------+------+------+------||------+------+------+------+------+--------| + | LShift | Z | X | C | V | X || B | M | W | V | Z | RShift | + `--------+------+------+------+------+------'`------+------+------+------+------+--------' + | ` | INS | Left | Rght | | Up | Dn | / | = | + `---------------------------' `---------------------------' + ,--------------.,--------------. + |Ctr/ESC| LAlt || RGUI |Ctr/ESC| + ,------|-------|------||------+-------+-------. + | | Del | Home || PgUp | Enter | | + | BkSp | / |------||------| / | Space | + | | Media | End || PgDn | KeyPd | | + `---------------------'`----------------------' + + QWERTY layer: + ,-------------------------------------------.,-------------------------------------------. + | = | 1 | 2 | 3 | 4 | 5 || 6 | 7 | 8 | 9 | 0 | - | + |--------+------+------+------+------+------||------+------+------+------+------+--------| + | Tab | Q | W | E | R | T || Y | U | I | O | P | \ | + |--------+------+------+------+------+------||------+------+------+------+------+--------| + | CapsLk | A | S | D | F | G || H | J | K | L | ; | ' | + |--------+------+------+------+------+------||------+------+------+------+------+--------| + | LShift | Z | X | C | V | B || N | M | , | . | / | RShift | + `--------+------+------+------+------+------'`------+------+------+------+------+--------' + | ` | INS | Left | Rght | | Up | Dn | [ | ] | + `---------------------------' `---------------------------' + ,--------------.,--------------. + |Ctr/ESC| LAlt || RGUI |Ctr/ESC| + ,------|-------|------||------+-------+-------. + | | Del | Home || PgUp | Enter | | + | BkSp | / |------||------| / | Space | + | | Media | End || PgDn | KeyPd | | + `---------------------'`----------------------' + + Colemak layer: + ,-------------------------------------------.,-------------------------------------------. + | = | 1 | 2 | 3 | 4 | 5 || 6 | 7 | 8 | 9 | 0 | - | + |--------+------+------+------+------+------||------+------+------+------+------+--------| + | Tab | Q | W | F | P | G || J | L | U | Y | ; | \ | + |--------+------+------+------+------+------||------+------+------+------+------+--------| + | BkSpc | A | R | S | T | D || H | N | E | I | O | ' | + |--------+------+------+------+------+------||------+------+------+------+------+--------| + | LShift | Z | X | C | V | B || K | M | , | . | / | RShift | + `--------+------+------+------+------+------'`------+------+------+------+------+--------' + | ` | INS | Left | Rght | | Up | Dn | [ | ] | + `---------------------------' `---------------------------' + ,--------------.,--------------. + |Ctr/ESC| LAlt || RGUI |Ctr/ESC| + ,------|-------|------||------+-------+-------. + | | Del | Home || PgUp | Enter | | + | BkSp | / |------||------| / | Space | + | | Media | End || PgDn | KeyPd | | + `---------------------'`----------------------' + + Media layer: + ,-------------------------------------------.,-------------------------------------------. + | F11 | F1 | F2 | F3 | F4 | F5 || F6 | F7 | F8 | F9 | F10 | F12 | + |--------+------+------+------+------+------||------+------+------+------+------+--------| + | | | | | | || | | | | | | + |--------+------+------+------+------+------||------+------+------+------+------+--------| + | | | | | | || | Mute | Vol- | Vol+ | | | + |--------+------+------+------+------+------||------+------+------+------+------+--------| + | | | | | | || Stop | Prev | Play | Next | Sel | | + `--------+------+------+------+------+------'`------+------+------+------+------+--------' + | | | | | | | | | | + `---------------------------' `---------------------------' + ,-------------.,-------------. + | | || | | + ,------|------|------||------+------+------. + | | | || | | | + | | |------||------| | | + | | | || | | | + `--------------------'`--------------------' + + Keypad layer: + ,-------------------------------------------.,-------------------------------------------. + | Power | | | | | || | NmLk | KP = | KP / | KP * | | + |--------+------+------+------+------+------||------+------+------+------+------+--------| + | Sleep | | | | | || | KP 7 | KP 8 | KP 9 | KP - | | + |--------+------+------+------+------+------||------+------+------+------+------+--------| + | Wake | | | | | || | KP 4 | KP 5 | KP 6 | KP + | | + |--------+------+------+------+------+------||------+------+------+------+------+--------| + | | |QWERTY|Colemk|Dvorak| || | KP 1 | KP 2 | KP 3 |KP Ent| | + `--------+------+------+------+------+------'`------+------+------+------+------+--------' + | | | | | | | | KP . |KP Ent| | + `---------------------------' `----------------------------------' + ,-------------.,-------------. + | | || | | + ,------|------|------||------+------+------. + | | | || | | | + | | |------||------| | KP 0 | + | | | || | | | + `--------------------'`--------------------' */ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { @@ -62,10 +147,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // Left Thumb CTL_T(KC_ESC), KC_LALT, KC_HOME, - KC_BSPC, LT(_LO, KC_DEL), KC_END, + KC_BSPC, LT(_MD, KC_DEL), KC_END, // Right Hand - KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS, MO(_LO), MO(_RA), + KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS, TG(_KP), RESET, KC_6, KC_7, KC_8, KC_9, KC_0, KC_LBRC, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSLS, KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS, @@ -74,7 +159,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // Right Thumb KC_RGUI, CTL_T(KC_ESC), KC_PGUP, - KC_PGDN, LT(_RA, KC_ENT), KC_SPC + KC_PGDN, LT(_KP, KC_ENT), KC_SPC ), [_QW] = KEYMAP( @@ -86,21 +171,21 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_GRV, KC_INS, KC_LEFT, KC_RGHT, // Left Thumb - KC_LCTL, KC_LALT, + CTL_T(KC_ESC), KC_LALT, KC_HOME, - KC_BSPC, LT(_LO, KC_DEL), KC_END, + KC_BSPC, LT(_MD, KC_DEL), KC_END, // Right Hand - KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS, MO(_LO), MO(_RA), + KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS, TG(_KP), RESET, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSLS, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL , KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_DOWN, KC_LBRC, KC_RBRC, // Right Thumb - KC_RGUI, KC_RCTL, + KC_RGUI, CTL_T(KC_ESC), KC_PGUP, - KC_PGDN, LT(_RA, KC_ENT), KC_SPC + KC_PGDN, LT(_KP, KC_ENT), KC_SPC ), [_CM] = KEYMAP( @@ -112,30 +197,30 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_GRV, KC_INS, KC_LEFT, KC_RGHT, // Left Thumb - KC_LCTL, KC_LALT, + CTL_T(KC_ESC), KC_LALT, KC_HOME, - KC_BSPC, LT(_LO, KC_DEL), KC_END, + KC_BSPC, LT(_MD, KC_DEL), KC_END, // Right Hand - KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS, MO(_LO), MO(_RA), + KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS, TG(_KP), RESET, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_DEL, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_DOWN, KC_LBRC, KC_RBRC, // Right Thumb - KC_RGUI, KC_RCTL, + KC_RGUI, CTL_T(KC_ESC), KC_PGUP, - KC_PGDN, LT(_RA, KC_ENT), KC_SPC + KC_PGDN, LT(_KP, KC_ENT), KC_SPC ), -[_LO] = KEYMAP( +[_MD] = KEYMAP( // Left Hand _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_F11, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, - _______, _______, KC_PSCR, KC_SLCK, KC_PAUS, _______, - _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, - _______, KC_MSTP, KC_MPRV, KC_MPLY, KC_MNXT, KC_MSEL, + _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, // Left Thumb _______, _______, @@ -146,8 +231,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F12, _______, _______, _______, _______, _______, _______, - _______, _______, KC_PLUS, KC_LCBR, KC_RCBR, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, + KC_MSTP, KC_MPRV, KC_MPLY, KC_MNXT, KC_MSEL, _______, _______, _______, _______, _______, // Right Thumb _______, _______, @@ -155,12 +240,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______ ), -[_RA] = KEYMAP( +[_KP] = KEYMAP( // Left Hand _______, _______, _______, _______, _______, _______, _______, _______, _______, - KC_F11, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, - _______, _______, _______, _______, _______, _______, - _______, _______, QWERTY, COLEMAK, DVORAK, _______, + KC_PWR, _______, _______, _______, _______, _______, + KC_SLEP, _______, _______, _______, _______, _______, + KC_WAKE, _______, QWERTY, COLEMAK, DVORAK, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, // Left Thumb @@ -169,16 +254,16 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, // Right Hand */ - _______, _______, _______, RESET, _______, _______, _______, _______, _______, - KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F12, - _______, _______, _______, _______, _______, _______, - _______, _______, KC_EQL, KC_LBRC, KC_RBRC, _______, - _______, KC_MPRV, KC_MPLY, KC_MNXT, _______, _______, - _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, KC_NLCK, KC_PEQL, KC_PSLS, KC_PAST, _______, + _______, KC_P7, KC_P8, KC_P9, KC_PMNS, _______, + _______, KC_P4, KC_P5, KC_P6, KC_PPLS, _______, + _______, KC_P1, KC_P2, KC_P3, KC_PENT, _______, + _______, _______, KC_PDOT, KC_PENT, // Right Thumb _______, _______, _______, - _______, _______, _______ + _______, _______, KC_P0 ) }; diff --git a/keyboards/kinesis/keymaps/xyverz/readme.md b/keyboards/kinesis/keymaps/xyverz/readme.md index da033be1e95..3433a94c54e 100644 --- a/keyboards/kinesis/keymaps/xyverz/readme.md +++ b/keyboards/kinesis/keymaps/xyverz/readme.md @@ -1 +1,130 @@ -# The default keymap for kinesis-advantage +# Xyverz's Kinesis Keymap + +## About this keymap: + +The Dvorak layout shown here stems from my early Kinesis years, using the Contour PS/2 with a Dvorak software layout. Because of this, the RBRC and LBRC were on opposite sides of the board in the corner keys. I've decided to continue using this layout with my QMK Kinesis. + +The QWERTY layout shown here is based entirely on the Kinesis Advantage layout. The Colemak layout is merely an adaptation of that. + +I've enabled persistent keymaps for Qwerty, Dvorak and Colemak layers, similar to the default Planck layouts. + +## Still to do: + + * Need to figure out a better position for the ESC key. + * Come up with a function for the empty keys shown in the alpha layers below. + * Fix the CapsLock, NumLock, and ScrLck LEDs. + +### Function Keys on All Layers (keypad toggles): + ,-----------------------------------------------------------------. + | ESC | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | + `-----------------------------------------------------------------' + ,-----------------------------------------------------------------. + | F9 | F10 | F11 | F12 | PScr | SLck | Paus | Keypad | RESET | + `-----------------------------------------------------------------' + +### Layer 0: Dvorak layer + + ,-------------------------------------------.,-------------------------------------------. + | ] | 1 | 2 | 3 | 4 | 5 || 6 | 7 | 8 | 9 | 0 | [ | + |--------+------+------+------+------+------||------+------+------+------+------+--------| + | Tab | ' | , | . | P | Y || F | G | C | R | L | \ | + |--------+------+------+------+------+------||------+------+------+------+------+--------| + | CapsLk | A | O | E | U | I || D | H | T | N | S | - | + |--------+------+------+------+------+------||------+------+------+------+------+--------| + | LShift | Z | X | C | V | X || B | M | W | V | Z | RShift | + `--------+------+------+------+------+------'`------+------+------+------+------+--------' + | ` | INS | Left | Rght | | Up | Dn | / | = | + `---------------------------' `---------------------------' + ,--------------.,--------------. + |Ctr/ESC| LAlt || RGUI |Ctr/ESC| + ,------|-------|------||------+-------+-------. + | | Del | Home || PgUp | Enter | | + | BkSp | / |------||------| / | Space | + | | Media | End || PgDn | KeyPd | | + `---------------------'`----------------------' + +### Layer 1: QWERTY layer + + ,-------------------------------------------.,-------------------------------------------. + | = | 1 | 2 | 3 | 4 | 5 || 6 | 7 | 8 | 9 | 0 | - | + |--------+------+------+------+------+------||------+------+------+------+------+--------| + | Tab | Q | W | E | R | T || Y | U | I | O | P | \ | + |--------+------+------+------+------+------||------+------+------+------+------+--------| + | CapsLk | A | S | D | F | G || H | J | K | L | ; | ' | + |--------+------+------+------+------+------||------+------+------+------+------+--------| + | LShift | Z | X | C | V | B || N | M | , | . | / | RShift | + `--------+------+------+------+------+------'`------+------+------+------+------+--------' + | ` | INS | Left | Rght | | Up | Dn | [ | ] | + `---------------------------' `---------------------------' + ,--------------.,--------------. + |Ctr/ESC| LAlt || RGUI |Ctr/ESC| + ,------|-------|------||------+-------+-------. + | | Del | Home || PgUp | Enter | | + | BkSp | / |------||------| / | Space | + | | Media | End || PgDn | KeyPd | | + `---------------------'`----------------------' + +### Keymap 2: Colemak layer + + ,-------------------------------------------.,-------------------------------------------. + | = | 1 | 2 | 3 | 4 | 5 || 6 | 7 | 8 | 9 | 0 | - | + |--------+------+------+------+------+------||------+------+------+------+------+--------| + | Tab | Q | W | F | P | G || J | L | U | Y | ; | \ | + |--------+------+------+------+------+------||------+------+------+------+------+--------| + | BkSpc | A | R | S | T | D || H | N | E | I | O | ' | + |--------+------+------+------+------+------||------+------+------+------+------+--------| + | LShift | Z | X | C | V | B || K | M | , | . | / | RShift | + `--------+------+------+------+------+------'`------+------+------+------+------+--------' + | ` | INS | Left | Rght | | Up | Dn | [ | ] | + `---------------------------' `---------------------------' + ,--------------.,--------------. + |Ctr/ESC| LAlt || RGUI |Ctr/ESC| + ,------|-------|------||------+-------+-------. + | | Del | Home || PgUp | Enter | | + | BkSp | / |------||------| / | Space | + | | Media | End || PgDn | KeyPd | | + `---------------------'`----------------------' + +### layer 3 : Media layer + + ,-------------------------------------------.,-------------------------------------------. + | F11 | F1 | F2 | F3 | F4 | F5 || F6 | F7 | F8 | F9 | F10 | F12 | + |--------+------+------+------+------+------||------+------+------+------+------+--------| + | | | | | | || | | | | | | + |--------+------+------+------+------+------||------+------+------+------+------+--------| + | | | | | | || | Mute | Vol- | Vol+ | | | + |--------+------+------+------+------+------||------+------+------+------+------+--------| + | | | | | | || Stop | Prev | Play | Next | Sel | | + `--------+------+------+------+------+------'`------+------+------+------+------+--------' + | | | | | | | | | | + `---------------------------' `---------------------------' + ,-------------.,-------------. + | | || | | + ,------|------|------||------+------+------. + | | | || | | | + | | |------||------| | | + | | | || | | | + `--------------------'`--------------------' + + + +### Keymap 4: Keypad layer + + ,-------------------------------------------.,-------------------------------------------. + | Power | | | | | || | NmLk | KP = | KP / | KP * | | + |--------+------+------+------+------+------||------+------+------+------+------+--------| + | Sleep | | | | | || | KP 7 | KP 8 | KP 9 | KP - | | + |--------+------+------+------+------+------||------+------+------+------+------+--------| + | Wake | | | | | || | KP 4 | KP 5 | KP 6 | KP + | | + |--------+------+------+------+------+------||------+------+------+------+------+--------| + | | |QWERTY|Colemk|Dvorak| || | KP 1 | KP 2 | KP 3 |KP Ent| | + `--------+------+------+------+------+------'`------+------+------+------+------+--------' + | | | | | | | | KP . |KP Ent| | + `---------------------------' `----------------------------------' + ,-------------.,-------------. + | | || | | + ,------|------|------||------+------+------. + | | | || | | | + | | |------||------| | KP 0 | + | | | || | | | + `--------------------'`--------------------' From 6fa6e6c4c6d772de6898bdd2ad303c5667339555 Mon Sep 17 00:00:00 2001 From: Xyverz Date: Wed, 15 Feb 2017 23:01:27 -0800 Subject: [PATCH 026/190] Fixed inaccuracies in keymap comments and the readme. --- keyboards/kinesis/keymaps/xyverz/keymap.c | 4 ++-- keyboards/kinesis/keymaps/xyverz/readme.md | 10 +++++----- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/keyboards/kinesis/keymaps/xyverz/keymap.c b/keyboards/kinesis/keymaps/xyverz/keymap.c index b8e06fe305e..f3184c140dc 100644 --- a/keyboards/kinesis/keymaps/xyverz/keymap.c +++ b/keyboards/kinesis/keymaps/xyverz/keymap.c @@ -119,9 +119,9 @@ extern keymap_config_t keymap_config; |--------+------+------+------+------+------||------+------+------+------+------+--------| | Sleep | | | | | || | KP 7 | KP 8 | KP 9 | KP - | | |--------+------+------+------+------+------||------+------+------+------+------+--------| - | Wake | | | | | || | KP 4 | KP 5 | KP 6 | KP + | | + | Wake | |QWERTY|Colemk|Dvorak| || | KP 4 | KP 5 | KP 6 | KP + | | |--------+------+------+------+------+------||------+------+------+------+------+--------| - | | |QWERTY|Colemk|Dvorak| || | KP 1 | KP 2 | KP 3 |KP Ent| | + | | | | | | || | KP 1 | KP 2 | KP 3 |KP Ent| | `--------+------+------+------+------+------'`------+------+------+------+------+--------' | | | | | | | | KP . |KP Ent| | `---------------------------' `----------------------------------' diff --git a/keyboards/kinesis/keymaps/xyverz/readme.md b/keyboards/kinesis/keymaps/xyverz/readme.md index 3433a94c54e..06cd6747795 100644 --- a/keyboards/kinesis/keymaps/xyverz/readme.md +++ b/keyboards/kinesis/keymaps/xyverz/readme.md @@ -18,9 +18,9 @@ I've enabled persistent keymaps for Qwerty, Dvorak and Colemak layers, similar t ,-----------------------------------------------------------------. | ESC | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | `-----------------------------------------------------------------' - ,-----------------------------------------------------------------. - | F9 | F10 | F11 | F12 | PScr | SLck | Paus | Keypad | RESET | - `-----------------------------------------------------------------' + ,-----------------------------------------------------------------. + | F9 | F10 | F11 | F12 | PScr | SLck | Paus | Keypad | RESET | + `-----------------------------------------------------------------' ### Layer 0: Dvorak layer @@ -115,9 +115,9 @@ I've enabled persistent keymaps for Qwerty, Dvorak and Colemak layers, similar t |--------+------+------+------+------+------||------+------+------+------+------+--------| | Sleep | | | | | || | KP 7 | KP 8 | KP 9 | KP - | | |--------+------+------+------+------+------||------+------+------+------+------+--------| - | Wake | | | | | || | KP 4 | KP 5 | KP 6 | KP + | | + | Wake | |QWERTY|Colemk|Dvorak| || | KP 4 | KP 5 | KP 6 | KP + | | |--------+------+------+------+------+------||------+------+------+------+------+--------| - | | |QWERTY|Colemk|Dvorak| || | KP 1 | KP 2 | KP 3 |KP Ent| | + | | | | | | || | KP 1 | KP 2 | KP 3 |KP Ent| | `--------+------+------+------+------+------'`------+------+------+------+------+--------' | | | | | | | | KP . |KP Ent| | `---------------------------' `----------------------------------' From ca1ec7b121c973fae614e69093f40ee9ba25e629 Mon Sep 17 00:00:00 2001 From: Xyverz Date: Thu, 16 Feb 2017 13:48:54 -0800 Subject: [PATCH 027/190] Fixed the TODO list. --- keyboards/kinesis/keymaps/xyverz/readme.md | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/keyboards/kinesis/keymaps/xyverz/readme.md b/keyboards/kinesis/keymaps/xyverz/readme.md index 06cd6747795..11aedec54bb 100644 --- a/keyboards/kinesis/keymaps/xyverz/readme.md +++ b/keyboards/kinesis/keymaps/xyverz/readme.md @@ -10,9 +10,7 @@ I've enabled persistent keymaps for Qwerty, Dvorak and Colemak layers, similar t ## Still to do: - * Need to figure out a better position for the ESC key. - * Come up with a function for the empty keys shown in the alpha layers below. - * Fix the CapsLock, NumLock, and ScrLck LEDs. + * Implement the CapsLock, NumLock, and ScrLck LEDs on the off-chance that I decide to actually solder some to the keyboard. ### Function Keys on All Layers (keypad toggles): ,-----------------------------------------------------------------. From 62aacd06edf6f6377b406eaf5dd392b1b9565a77 Mon Sep 17 00:00:00 2001 From: Kenichi Sasaki Date: Sat, 18 Feb 2017 00:40:15 +0900 Subject: [PATCH 028/190] copied and Meta(ESC) --- .../ergodox/keymaps/siroken3/default.png | Bin 0 -> 193672 bytes .../siroken3/default_firmware_v1.2-2.png | Bin 0 -> 257921 bytes .../keymaps/siroken3/default_highres.png | Bin 0 -> 1459389 bytes keyboards/ergodox/keymaps/siroken3/keymap.c | 223 ++++++++++++++++++ keyboards/ergodox/keymaps/siroken3/readme.md | 15 ++ 5 files changed, 238 insertions(+) create mode 100644 keyboards/ergodox/keymaps/siroken3/default.png create mode 100644 keyboards/ergodox/keymaps/siroken3/default_firmware_v1.2-2.png create mode 100644 keyboards/ergodox/keymaps/siroken3/default_highres.png create mode 100644 keyboards/ergodox/keymaps/siroken3/keymap.c create mode 100644 keyboards/ergodox/keymaps/siroken3/readme.md diff --git a/keyboards/ergodox/keymaps/siroken3/default.png b/keyboards/ergodox/keymaps/siroken3/default.png new file mode 100644 index 0000000000000000000000000000000000000000..6575f7b5e378d7bce55f6a23e3e9327f9894526f GIT binary patch literal 193672 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 EADQ!4(f|Me literal 0 HcmV?d00001 diff --git a/keyboards/ergodox/keymaps/siroken3/default_firmware_v1.2-2.png b/keyboards/ergodox/keymaps/siroken3/default_firmware_v1.2-2.png new file mode 100644 index 0000000000000000000000000000000000000000..e3c321cc09f709c55d50829301e76efef8a69ce3 GIT binary patch literal 257921 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 sg!+U5@?cqhKrv+_3mAPA9aN#B|Rv*atxLk zwL72YE@IBnXk{7b@Ol7kXrG~5=5{=%_gYZUc!?#|#_G;y+)m^voxJ)+J)O2@+ee`F z{WBqkf#`6;+ouO%-`3?olVPZ1UOGqb(K#HTKh*CYqSw=7z_ja-4K}ZBzg@aV#BqkB zxTr#B0TIB*AK!CAG03Xi_*KDmsqORk*Cr<^uBD$m+MY0Y_U*#03fJ+CwyWO;+rm2T zo{e~lF9eYtCf@d;Z?3Kt*0=_pxROXZW_{!bd@nt-#bunn~ez2XaUGy)5JjN;w9o(LS-R^YSSd3P?B{!K@1jL&5ni0cG>rfL zH$0g56A(`5xLiyWEH+BMf4{4vW9+Hb2=(AYEOK-nN&ato&K;_oUEi?q6i8>@=)KtF zV`^VjwRx{QRsLUBC$uT{gC*k3MFp_o96uh2_S&(>?;vZWffBi<#p~j_-0*Q>;m6oa zH#X|BpEoo62r3(-WIcBs92`-rv#20S^>IrY$L^0G8OQ zG088~pd5=i@(hnEq_yE{KdxKWNopaE22fr#A)H<0c-P8xKf9VG%7A;ABtkGuOvB9a z?p@|vDz%dDeu`s#jD$|uO~l2KNSkh`S$7~(gDqDIfk7YV!q;_0^V6=?57+(sCOu~^ zQ^#I;y8mhW6NMX|KkG+;Tax*zhz#p_C2}mgY8HkPuRL(!*)lxOELq+aeLy`3#keAM-nC`CSb^hJUi49uQ16QT6=%ug{92==g*%Dc_y{LM&^W;%XHxzRGh;*>7Q!W0V0z0w!3-x67QsKitjTsr=QW0E zp_jEW9PM@}-nxJPb?Z9~O--y^u=yuxdVK3ZhDh=m&+ngw4VF(tOc}XFZd0)@c!Xc| z7)oxuhhnsI_p(AuKKC|ze(}q`1s%T~&%JNqVFd+dfE90(0yuo80|Lx-*bG@xAzp7p+TR-&1 zUB;k6=}{jd17?3XVO;roL)C z*F*Qs=Kdv~jg60wgXeoYFU=9f4cCiMN+Ok!QccmGQsvRTdqs#Cj@>iQ5fkZH_HKDj zoSACex}F2#$KMbhR(&-@5G(?cjCK)cg!xBUKiMDl3%ix|8dBvzsL3%?*w)6^x*Zwv zSUi(mhsQj$uv$J5t!uZ4Hk^g@J)TW`D8&Tc-0QyWDV_@@|NgqwB(`0Gm~GO?+B*GA zrnSz=UkC9v_Vbfh`39j<;xW(M-qd-@8)61(!6tiwuBZ#p*inD@$Pvrqb5Xyq5rWjy z-?)xbI(`Nrcz;VyW^5RB2*?5bAni~PcGM&CO>)Pc(9s4zlqrx-zD7>r8jcQli^vvZEtUb5)W;FaN>Z9ge_ZpZAL z+8s4cS$7|h>i}>yAO#@p+ehQXo(opB@A3!0yuguw6m%=a=SNmo*SUf=CL}xH#x`AP zkd-g0d z8{3`-r{3&8?-yj;5l2OUbr#?zJXWiA`ud$1&gHQ1GAMebOtzwd}`qxA0-u zkbsV|tT0@0N$!BC=>IJLu%KcggmD?&$0FuOWytT+)B7B69?){zaAC^cO7C;xl?v&V z$qSH0&DWT$zPI@d#lZH!v_Y5h*{sYIA5=|INzWq9XzC^L0U zCv**rZ2%42^+}UO;T%Y&U~93uU39eLurojN_%^DkAXYx+I^ZX6ezHHri&N!&xFvUv z!D)BK?;qa18+-H1@fKfAB>ytDh4=LiFM;h>w06I0eocjol)1UdM_8CCYM=Ncy_KZ; zF6Wxdhzi0VvEf>KFPdjxY@}P4WZo#glb9Vt=uNal)}t?eZK6FU;W znkOc9JBFMEV&c`sBC~)s+uIEjwM}si{Cn?ZRpri&ujORl+SLl8~` z4IN~h+uS~np+md?2DpXY9GY4dQmo~SEbAunT}gMf&K)#szz~#zfXc;=I|IX9`9IeK zAIBPIz}+zlV(JD#lNhP z)N)(A#UqvCKU>_p`mB{Tg9H+-gz4ME5)v`lyn~Jh#C!Ber@;5f=J%Z`&{15oK~06` z=dr@Nu!~#oM<11oU;24f9zA&QXTUM zQ%(6?s3kD-)Qg4F-}qduFD^<~w;PVCUERn~$Bhk02yCHL1k7`hG>Xy_>Sc=yq)(qG zODUoMTM1n-Ouy`Qo4fU0bB)&i2-d^7mlLG9qmWU7)3&NA03VEecV%5O-A1$1)qAb5 z8)`vpfEHnRQb^4+-Vu9ROUp0tI}N_Y*ZIJW|7_lMpkyM*>W3ED{j!`jJypSt9U3`9 zJ{5LJ_~A_t)2Tj+yM`GE6!Bktx{xQ)Hl>uPLJSUzj=sfA7R-|KYQDyvB;Z|x|GJ2V z!H0_|_}~Lv%n{JIR~&Vz?$Jn~-OAPuGx-gf<%&jg(QV@-s0&hhcV zBBLB6&ouqcOgVMt6syrgTXB&SCq-Qj0>CA6_%IFw5YvEkM)4lWB?0*6on7vf+8?R- z1wu%gg{?7(P)%Ux1I5)6>Ip91ggu9esRChK=6*=C!Wa!UzDkIoM*Z%sOhgtLi+xM0 z{a{s)glP7L@Gp-aUqrSFGp__noGK7(KUC)Co_V&$EBNfJh-=|{oNb#`zAJd*X$8^5 z$kH1rQ3yh*p8+%C0gm?P@%dG76fa1pnB}#9cz=q`>h=NyFCSmb&ZBXU9=(%9%ydJF zD3$=w{Cu2=PWb{NmF)7V11vKluxXLEO=m?!A~vyrhQ592^J({0u4Zr9g(EVj^&^>o z)PFq+{|TfK)kf7L(b}4JjwU*r=eiuq}DiIP&*0^_XE?A77Q_508En zTe!qjuB?L*G(<}b=&PDePJH{bU6EShS~9uQ#SKazOn;n&bfYclsQy{Ekh`Zi=m-#5 zLA>LqWj;5a8W$J(7qXw{di%@k4NXlItQx`yCL=rLuf21UMunduO5ypCo=O=FPe;%P z-^duMT9y=9Z7D*~(-$KDSubMoH9SH;@!LLnu%0%`X$<8GEAYoe3X6`1gQ*nd!kCnec zHlDygQAu}{;>0KXq^89`stG}G4-g1(YWlK<5K_F&$hZU;0hu?8{)vy5*FkdO^M@JB zVxtobK4B42&o1+t%UtRG9I)f3d$eS6LR)zg&76qljp~HvY@xaKnhhfYVW$a*Z-PWi zSf4{OvP&=T4+QXjf=%^Sq5Dm)NV2=V1F|Nu*H5a&G+(7?$H6tg8WYKwwO6{szR5B zrzo{CZ$QNXI3ZbeiXZ|XAGxgwX}*z-lj#7}w@zX^F$cc(Sr3=$^N+Ps?lODA;FCt( zze-GdC1Fx_*2DxihJuy#myko$Nh?`;S&X~o*;yB;qqMhg2dcP^?qm%15m0%No2w`-9a>DXJXK)5N1o;5b6eZN(k%!xiQ@yGidO`> z_R*@WLIQhz{!?Y)Q;bX?^!;`CL(SApWv2r*G;+y|goU~C`KIP(*zS%&z);Y=6}p{8^I2!7-_yA;16r{xK~M2-gnj zy-&Dbc?UbpnhW2I$GMb)_N&2deH}xldwc)2 zCKi7MmlHfpR6hS}30H;*1jJA!zUnarr~C7pq9;PkZ>uLm2$Y1Vo!;{`H*WU4THC;D z0J)YE-yLUskK8gnKFZD;CqN#YpS?i*+MoG9aPXx|m!N4Z0mT5iCC=APzickyM!@gm zi#iY)ieHyiLnu`|RRV`gNEC#Wz_~RPZXJhbL)nBq`;P4(edXyo5LU>MlTQ(X>M-I{ zzY}X%{_!>0R?oKC!g`mVsJ7&nK16Z07Pjub&EY|jbaxj)(s#LdtPoJ}rCVH=iXG!? zmuR`GH1`BE*GonfExj|{b4ZAlaJO5Lk8t;K|K``0YCK<*N4c8XtW;U)JnuhK3SbFH z^$n>?0x=I30l=18F!o*Y6^O|)SfwWpOU9Oe+sfUtb)U_@FsQ+*sNRW|7eo+i)#1xOYfAFo5$Z@=r!B=%&L*pyfb!m4d^dyM?AZ>S$w zRAf_&`L4UB-#3%r6pv_Q4$c`R<`s}(M9r)Z?<?)`~de-G(g5~bu}4gdPyHj}S&`DF}W za@$k}PJzc>%qsG2xtOvQ>BgZIY|nf$hykwmLapZN-(J(|P4~qK|CQ)sPtI%6d^dwn zBz;Vyp&9bPm<^tl`D$!suk#8X27^PIL79Lt<`Z^vJQLm{U+_9d6ha5uAzXh9goq0H z2H(^e1^tkQ1?NyDUJUzE{q(*GeNZjG69a?8b^`a&tIvEJ{d)`_w!%b59%I1j!LikF z+Sx9(uj!ec>i4(on^!Jg%!;{p=(UhV?4w6zkQ~EvN0mBjv90}B;y?HveoA;y)a&1A zY-%dGG77uc(yARIHT}Ffznc2b|40}-pTqf3^Yiwn2Z07pkv*;Or%N9kd8D&qTkYm% zHMzD#XLvfUT6Ds{ES*IC>(xxjZHY+0n#syNd~P^0$s@?K!Y$G9>1RbC7J4VC^?JeP zjPziQRUj|ZO)j(>nE1_y3Wr}mvQ*F}CMH&aXgeGRe&5D#cON)n@VV@|GI88-CqF?j zyG7Z9{)_sGPlF&~hFWE;E9)NW*^M7R8LFHtL@7Cu|IjQ^{Q<-a6z$j(OkX2qCeJoe z{CHX97EVDxIfhsyvb*d@cdFH#yfAGDIot&R+8Xz-3M)hPMc2*xZ5bIDCcV|O6#VvJ z24|8=N)ymLgcWqR)N#`2>-!{4Cuw@ctsBO5aScnp7jq0kE#UzaOdQCzA&cCSZT%f?O&$Z!JQ8i<_#y^ z6=q!frXDYOXP|?8CC;?pOsM>_=r88lfAf&ZUBM8@?)SXpkE-ri`FISBU!>}8l_TF? z{vf%tc#Q-Rm=SDY$W1KuUpsRZyLW|3XSc;hyk6hV8ti-*+{&iprTV(L?Wvp?KqYu3 zVX#Bk5|UN0uGxF{Hx=%}{uPyqOB4Fi5)$)xu@QpML{)F4P!m?sevH7Nu;6OOHxj@@ zP?XN~dYW;Ugoc@N<^A8*IDnZ^o|4Uj`%=7w;8+q=ilb8LEjpbq>KiOTP}*^`cP_}X zZ=G3Uh?bI)ka&WYYRso&XGqY~Z*VWkgT#g75qZ-4p6dr~lgPU0X|c28&Jn?$zqOk- zT5_Qukne$qpICa+yRUy?ym+Yef`NfFQZ!(L+#$Gq#bNVgtr8KF zHfdO&Ay*DtIZ#3W%5pu3MWuvh=>bd2efT z1?&iD){oh~XJ3g+`n$t~330LjSi@4NQ4yuS$Bw=wb0J>1#j3y$2y=eFg&W#k+dV_K z?~MJr>`zdFy_SqynfYKR<6qw5DgImhY>`gXKhJ9(qy4H4Sr&v^3(2ADy`})nSub%8 zR0!o=Q(5-;?VpZIpOTammAgw+(4qv1z}8Je``$%;4L=#OPpOUe_o7a?n$>fWG@9mL zw?Ekwe$T$~ssknUPDMX%0+zc_K|%9MDTsJukM=Lu-P}I-xpUA1fk^dibdB35cAf@B_DrgxskymC6O9#j#?z;D=84KPy}uXx zP-dEvUCcdqcWl3@vG3kp5^{2AgWt8a4Oe&lodb6I~LPn1fw6?anp0F@!JM-T}Q`R_@Cli;1~$g{;pI;GlxL5N;8=PWo9)5 z7;gHnLs8Z6O=J5_<@8Tszg;)SM&TZ4gFTCm@I>V0+qXWL#2~#8n&@_teI6fmTc1-g z2}wU@BhWdqr~u^n^fGT<0w}$ei%op;rGp!kE}^Qy0t;4WNR|oE;^YZa9vktKUx4y@ zQO+#=6N$98yc`XExo5PY+`W?!|t@R*Q)-DUBvz#MMRfFaa$XN zeYpoGTj|z!8)P3TS3OAxYP3R-87SC7;sNBB=_?mlO0v5LHu(A1j;seoN?Dl73koVf zOF)R_b3Jdi?{t@)2mG-8A_QSegW}*!vK$9dH{Mz7zOt0cO?{#A6>p#A8E>f65JHn% zI$UzS^&!3-Jd6=OUWL;Z+}n-gf-_Fag`jACa#8(}_|&TpTCrbug&-??#7TNoh?jLN zL|rEP)YwF$)$(2UgbY4DzW&l2y(|pUfaBvYzfoO7ZfLMFaB# zIr)x;8FDlC9Q{})*PAo6ej=uK*M4@cx5i!DrD4+ZZXdnp@w&~){@=o&K@=GFrS^U2 zCI~z@HHggj@K9eD3H-SL}VMux45uJUOP^lPW|9xh3A2G zS~8(6z#G@o->%a7(<(tQq}MNCr9;Uf=%7BJ_Zxn0I_ zZBMo8jHIw{KT+^-V%vlpn#M7sLJ@&jjhBuNu2GSW)M3V&D+fWzPD!nw zZMvND%||cS;@)FG5*ANF^(mV7fri`wK=bIL5;>?AtD(_?cgzX8J7mGcR0}S0aIjyc z*_HI}qb8)INfuPPygNeq1BX5yY=nRub6&NpgIK3wAL=y65Xh5z)9J%HZLZS|=3s0l zE#29)b)n*UbVy80Uhcq4==pt>{C`d_Q1~Uu@dzSa5NSy`clI}BNU6Md`*!c4UjrYN zTwLY`jyOIPyI98>MiMW0_cAA^?ZbN^fgt8nB-T(%^vW2J$~(ldb;%rF6&B)?rctCB zUDzQl+>*BUXY1n!3|H?&M5qwMU)$IGWjADnml2CIs+zQshbMIxnVEtJ$K3v@H!yqInf$ndx+jZ!WHzt%IjBa|4vpsC4!{ zI5oQ^y!}{;!NLCwx7`u7lngH%drca45IG=s98+EVPh4=&PkjHyegfXG3Vc=UcotfH z8UM!kM(V7YY*RP%@&ZE9+xw_uG*zFl;s4R}-hov2{r~tes$*o&l-03ELdd4b2-!1x zmMt?PGoxg0E_-EX?~t7lAtNJuWRHaJ^W4AR=lbuyy6$ki->=v6`Irqd5#g8q4s%6x zr2GyLoDT6001a9K(cs|^73cpNUTQx<}?*-{gCBSv%`C4I{w!@85ms=j)6}S7|zIo}z2aenlAEi;6bV;M_dXqqB?>bKig6iwSk)T;Or z#yjKwxN!g7S{xl?>g=zyMx3j{%-M*8~X7+ zn2L~`u2Dqe{Ph(7jrLv_mOb^!_i{=y8E^xX))qqhP0ApChvU&39~TOyCp5TOS!Vj+N6 z0e>`r5M~avH~dF3|6vP0W&g$sMjYslH(%gINLpL3h0t-QJlKRr9Bwob+@Lufurm3^ z&r%^~>TtUB7f^xl+UY#|Na&4u>^D76la3ybu^7yMr9C#ohEM{)yVAX0{EbmhCwov< z3_~nO{3nqwISW_{;(B5E4jfN9zZA& z5ka&!T>JB91FQ`9->rL|Z=Vu$@C2UH%uRB<%PK&l48V&$|Lox;?Vajz+g11i&bbWF zm37DgdPZg;@sIwGI{6(n;oCzVpUvD#)GHm@jEeUE&6GG|k;$l%frxL?iQ$#x!$3YW zl9pe?!#t3^4zt(=WM;?pThI!AVN+1xhIEU_l*#AbY3B{Dea1ZE2LpW0LEfPKXODX~ zC%wE(4#Ekrae(O*G4U0T%(W$tE$nD#vDIen-Z1{){po6aL3KodMke?qAOuAkiGw-B z3U$=?@gd4gJ~>NAgC7bVgj$4tLTeic%c%Tv1?>X&-;zT53b$%s|Ak~0( z3+Rv=jD*+y=^>{Q#_1367OWo$hh;%VOuZWMXA%3m+{DuG9-CgE^cEQC195|-QLW$p z8~EnGpvXle4daF5?)+O2W7SP|xxHSS`UTdSO(;=?ZTA4Uj)jYR^KvszWwReMwp`uZ zLO}oE{x!nN>##1(>X9h+W;PbWW2gQKBI^!I8+S03A2)<2<0UIqR*Aq6z7{|z4hqi9 zk64JY7v$+>7>KzvM-0R}6UaBArlAS2KNN~p$OWE7vv?f-L~IO-$>PZ4Kp^n1wM7J; zJR;tt2vjee|B_WKCX|*bDG;}iw_auS?Oi)S{=f>?xNw4e6CHtCJtjEzooq1g1H#RV z(7p1B;9o=q_Ld5Fu0bhi5^f+sp@w&_<zRz2qvdR!UJNdN)!L;a*n(B&*P!nrG?Cj>6 z_S`@s(0aqp6F3Zr&>1YzATjDVNb|tlDFz0TB(?|G}v9^od*sCzIHw)O^tEdyMW(lQ4#xX6H+07B_JJnxUz3>TcByx zU+lao3v)U`I6am?oBjAis;amwd{F=^g@tKawuV$tKw!}qSh17!?@w}O?cd9~0Bh3O z`B-2!%SWsWF?|fytbgLgMMVw2S7hHUAuTF&(Ajj!$+!rfltJkIF#^&Nq-}V(`?@z2 z@Mr8(9D3?0WU0x?#q53_f)=iM_sfCd3k43n1p@CTD~5!ALU?A5ryYRJ8S-kL)5q#d z2k{H!@dM+G1)mBCTy6D$1_u8ZMK8CGp{lB;F7>TjMOwu&M-=ZnmQo5Q~kUuStoWI&p>PH_- zc&hFHqomvY^w3w~HE&HBs3n)M$h!R03Oi}}+UV@51;W2{24Y81vBfDAYJ}aaLLkDj zT22@7z<4zzc7pt=K@s*hIQS-wV1%!6lLx2XNSGuR?HDwS{DK%b0LdPUVGfv9r%L!< z!g-bU(1khPm?9jm9@(Zb@oiq-Qp5T$J}rbO7J_86aq&PPQNSLu$V9Em9tRck2!wHd z_&ec+pMTy9na?sdBF5+f+2qv<$5#Hcq~m;*%I3rM20u;#I?OtTzUJ5ADTMezwB`gQ zD>lPl0zl!= z-CNcl!IfAXD{O_aX9Db*Loek1J&CD0|JL(KYZG)?SGBJNt!YuQqJ9XsUJ zY?C~<{ppd}s*YDmpD@ku-cxOUZMU80}E~hng+aIRFWO;;w>{t9cI3 z4Mo`!>!6#v!*k^(OOU|qluVd9M0z!mxq)RsAV}#8MZNvYYK5-==R=39Ja`csN%MMe zNoU^i5z>bLR**D9chUkT6_Nq%_}^L?)Q9@=&I{ohbLB9++)iJRvrhtc0)C&RHetc^ z^{3tY3QYCxU?11ijCdLmICfS)5BiSWC5=T2`K-|75AwZXyc8cdG(bPa=U=LD$yzq zBKkme-}HA+l(&LOhH7i7^>v&q_v2Cr-N%hp6;*CMeBG3;{`m+t;t@J*vgC>$I1R*?Kpiaief(SY0r z?aOI`1R-}=#%5-y3~!*3jLT`Il%1{bR+&9#!?woXSpvgS;On%4$W$;KBcM7eFEeNu6S;TX3dcG7XpDX!O?E_90mK4eBX;Kl z2x%cy0-jfZ4eIObxhTxdR%Qzetl9<*06qdUAt0G7FZzrSa8CRKLKnn?gbb4qwp!=3 zL~vV($h!T{d(|_s|I-4%3Io(MI>&e})pYm)Hix`rmFM0f#2r+kiPOY&c_<}-V*0r^ zt9NpxGe@ie32=uY9uh2NHS%B_&}p6PXI*G*%97ew) z@UwtLmg@3Bq%QLc3wuFU9jJHan(saVuNnf}D;1&r z2aJvm@SJ!0U&EW(43J&As&b!QP$m20Yw2E=@H@KkP}%RAX|1`eCy_-|l2=n}Gan zc@y1}(me(0gb^qSC0V6m)&9=S$Bove0SpKYIZ)KP`qXpgnGBMd9ani-2K@kqb3#>cepygwiJf`<|9{oA_+h?p$Hv>HLBzx`C*hqP`;_<`) zOI@w}?+^&2DOj1Fk^;gP2nB)K33yBeVb9&lGZ9F+@1VUdiJWat$x~y)@!vf;X?5F9 z#uGdP-;PSE&CbD3Be6`B_W>u@7A{46rwWI9pm$ z5|D)d{%eCmoCcd2o%m+os}{9F6!J^&C-r5sXdXp820(Vf!dViWRDv1c4{;ZiZ|-Xq zlhZ}uUw>p^ka|8BKV{1e?Yg0lOI0bdN5Fh5^Hvhg8#&*X{}7FG&t}|`*3cM(99*=h zQTn-ZaG=Pun<^}E{u^$;J%SQ$Os6}pwp}s&=&AN zfCf*fHEw?9ZfVITjQjxo{DZnA4sUPY3kY>TKfZZKc&xV}wI?G>4k4LYQx1B6h~f;g z7s7%RaUiTIbBSa?@F3AFg=G~NogQddCYUt97&YAcaDGvtfW7uBuhh>T0r}|P;s>+T zQNn|39zntGpcKC=Mx6$y)|DFVC+C?jkYQPUOy3-R zx{EG7l>g$WtKSoNF(w2J;nUOSpfz`EVU{9t!*!@7sKVd_Q#ry%-{gI>zcMK3 zC+=Jy7HikZzcZO5P0?1A_0P}iV-PqI7KVx7w;BDN&8D9E`=ex(PLO^nQT%H|dq4oU ze?C|)Qe!HQL3#Q;e{G_5${{+jJ1N@fCO1>xFaM_oEVrOQm?%_thjcRVd%@%5Zbes& zKdIYEp}g-;Zbc0bDB6@45*!TB4c|S9UqK=op(90B1)r_v!%*wvm#Rw7h@$``zRhb6 zfo_a!wPKB{RuWbrJ?$NLJc6`6D&7)(S;*YeW*N7W;UEqQ1i%$$tu)&Y7E=nkUE@=2 zsR1vs4^Dq|f8WUi<`N%4PZFvdKfdYOA}$^`E8@NolsS5@vf<{^wK=srvzKXf?2+9s z;Yah-|5WrOG^~==RLJJte?P3@H@1@f48)J&S**!FJS|sqJx1#8_Kb-!+u48k{^XE|s9qjDY~J5Dqfj%Lc3i5sMwK~uB4gfiN{+4^a8 z|2;6&sJC8S>dVQkfgr{4^Du0{j3`uRukDauj9cB0rsCalQVf<6r%dh+o@G~dwwmY2 zOg@doymhzjX}B{CT3)R~8wMQK?78=9E{bYAnB={#iFiay)mBfqS-z(vBZK|h07kVW zUJC$QjC`9pYD_v@R)=7ot$W(h7Z%z7>(><|F1cl9v1o(IkDHDY9bKBQ@=M%@eKKVK zgFDO@fGq=~?{jUsWX18aqAqK=YIUy}60tNq!1bG{|RN zE}2t5cLWjC;fusIHR_l3T$CBq^V*D}CT7HJGq{|&xkAgz99mm^G!-mhlmnwoJ-~Rq z>f-DwWOeL`zwiBixJ90hH<|SJVU;p;U8qF=_QSvevnUMr|9xM-6nA3e;TiUvh+z-3 zsx%a*WL9?rwT zWDy(^68@Mmp#8s*f}7U^`0}F?OlmrCe}@*c!&A(`#FSg~dcmzuJ6a=c;pZ11f>H7- zE8yj^IQ#4I^7GGgLRxf=rGa1}L3GXrKAioqp28_v0FQR*?AsVr{ihliT1{&Ro+_L7 zoU{o_%`^k2E)4%r_6@ocgK}dGC4I;M$Hg7HK@i*ArNyw|FR(s6Gka4%q9=uCfu)V-t_U~Q`eg1{cDvwb<8k!4ifyh0s`XjE>O0A%ORWu+WL~h2L2DsoL4^|op!>=I> z_`H9fF^vS+(vTyuVFYcxBdignbIOE?5haI;=`AupcHu>d8d}*#vlG+4t{Oi(-NU^n zV65t||8HFW3^o%K`k%l?l3TYn%w;Hrb)6=i-h${H@M(B(AKULL1|xvx9m-KHGI%`k z$@O5RB#cLXobFzkQuN)_SKRY83s^VQVAp1uKY&+A2>Q_lqe~pA ziWd4gPh+}iDtM7u#Q)YSln%GliJd>Lk1=kAOU1>J0kNyvIg4XoeEYV1d#H1Gt}VB^ zVrilotH{uQ{#-xag^9jebEjk%ci;Mt&m)R-ror#<@K7Hzap}ZwgIeITBt48W6ydo= z=bECs3qyOR6&ZJ06#e#tl`54X=`x%m6SFjKhSoj zkK5(Gf9=z54|kbpcIyWydBO1d7e zfgj7MxhVcxM`87g3jqNEGjbnrD{jHRqLsl+3tif^4+*RFZZc5uzM{Gm2H^5P}&EVO(aJXe_CKvh;&)ekd32QxGT0)+39XPQft3J_^q8w|2C zs@DT(LUeU>ddf>Xv#L4(uGN;hN~8>a)@mAk8Bkk$@{ahAqY(rgD+8o9-%CtHw0jat zYOkP<$X;|qCZ?CLL=i)2>JDRTLcu?L5)Uw-G^R2z)l_i`GsB_ zf`tFqGZlS(`FC6Yk#|^ir&pmPC{bZA2TRN&B%~AfS7N@U7Z-1Vi5n*7X`peT@@xY# zsK#f#3oBrHhrt4!R0KIiIt=!_Nf2tnT7(|x&QDrB_80}IOPR~Z(;p#cUu`WI*ACpj z1`WMJOtE}HX{{x9y}i95jG6z%SR?KL%xRPpxPi|ycY#1IG~iy{^Qg&o z@f4bQxApk3+qJFhJMzyZAD|uqF$hI!LV?f9CUggNNem6$w1P*hV|&dZd?g(yQV89K zHo3H#N4_^iN6T(_G%qq?AfSp6Ov-JTeC}fA*z|$z?Qbh8Zay5>lt-1mx}{SZ zZBN~=7(uBttM!F!4?DA6J$}gjzS;FxA5|zs;!P(GK$7?ev~<=ZjLMyAx>m%E(fA!` znsM}ZZ)%Aq8!w7Q#Z@`}^KuM0);>-T)G9HP1_s(C5J{ut8-@;X5yt#fc4yzz%HcD; z^?(t=kl@XwaTe+7M<85Z`ngOv?>oyl-*bQ&3^r9T(w#v=8x>$Tfaz|FpDl7sGTys~ zCe{JpfREWgP7W#EV_IQ7c7`GTm-)1Q#m{1AI*jeZT&E`TOom!T}hiUVyNVWW~1xG0gv>sU3 z;c~3m1|^DOnITCkC$yAN;ltfU655$NGvxU~*GnaRoutU0o?wVLd_~miUsmCCQMm(= zG{V^2JT@)n-7IE#n(T*{*|8}ixDZML7oGFHG6+ZK*87Y!GS~UamQHk%CCcQqy9W`3 zpq7Lh2nzU*+^Cb;c~eIfotbxuq@z)QT3!CRx}=w{?U906rM0znHt8vMLWZd4=-I!z zWz0ELr>RpCD%fHQfQC}ts_Ten1><977oR0WaXSU03tYF7`c*tI@6{U^w!YZ{91Y^W zrr~@5k3G61k7+`+ft)!860$AeREMKveY*CZxUzNiEt0i{PDSM6dZ;uv!wVUl%6&Y@ zV{58Epn$4#I3Y%jgr(&eqh{c*0?KA5aW~Nj2Z?M;y)i*;Wb_LRVvROmQl2vJd?We- zt8~K7){3a6d*1JW8_-<7{)QdGFECkozyAHRx=;F*#5d$4Ju*t}GoWbjd&9=Yrg|^? z4Y%*X3*A0@(-1JMfb!&7^T{TA;K9EcMMn93Z1|Y}gD%gfU_61R!h-gTkc?UdUfYL+ z%5!pGaHj&k2Adsa_~TPkOG{?yo;#}&spO*c^a$z1*jO?;x+@?>p!+(sihl1_{&U#$al2RUC;rt!G% z-?j`REA$;}+@LRNL2i_a&u>xYlCA5W4zF`RoW(~lZ z%gXN2Y6Dx+@^8QRzL~6xUA^o-MgNjdv)26fljTlOX|TS|EiA50G;Wmh+fZK3RaR3m zS`r?23T}f*I9wr|2%1;zYHOTr2__x-2~sT(+-*KJT#vr<%c!D3cb}D~e*?von7iLS6tWRT-*`L}a~|mdg?wZ( zN~uDSwgSC@3<3hjV4QPQ*9l7?dQsf~k`WV=1yCk;=3fi%g7}c}0t)Im9fMDrgi?N; zTKg`7xN!2rJt+i_{XX+(sewjGB1X95k1`_(*kuIgJnr)IkHzZ=M`J$8!cZumt;l6J zkcaG`sCNKq?1JU0!q?u-%?(_?GdYp6NXW>#CdfsG3p1|MZfyXBCW7yhvmZC;i>b|j zO9hIzKA7EqMpmU!HUVLylgq>U=HCww zY$wZM2ldZlg?~@o`3{?DUl@g9y4jO`H<9DY+vNokH%;P z#z5H2#vvgNnkIxUH<%sM?xzd_hkvo#K?uKTT{XG5ut?%1u<7;oIt--s)&gI76D?KAL^~hC8XJOokg$NeEYPB)&3j=R?uYt7b}vX>i)e3`>C&tB*ari zQNQK6U6z!E8Gl1h3e>c~{0K*YKFlppNCu&EtGo{TxNgQ&mVhV#JPS<&I?m3#A7)ci zQaDK0e)7llJr3l<2o|o{7xos`&c$7uYd(jd*{>h&^k1W0YFj-3r+a#AEcOiF)NMS- znSu-!*vep#>c-sBvEWyN{qsD<0YZ=}-&|ZbGCFsA&U~wj0&IccU-X5Q?@)(Z*`L0? zWC2D78i7x+m(dDrtoCW_P(h?uzhOfxNObujXU+iNoPhTEr6u*Kidg@DO`;++g!=Z= zO79!+)0DfL$*ktHU~Y?=YjEWd6T1^{{6uR@*eNq-yR7ElTQl;3CA*wB&NU|{ zv)?1}h}D>_PXEpi{TWW5=#dNHWQA942uC~hm6m&YaW(npABF0x*^znh{LBG6w)RRo zI?T`P{LQJ!5W0uPSo9lyRg>B8WIRH`jE62?VY1K4%7Wi)PzkYJO$fSXM>`NzQ9mj_=&2wwaYY#-{}jOi*Xqskg0&Ci*h&3 zXXLHI=r3)rtEh#IJI(Nj>u~OXMigdO^dJZ~9w=!5s_W?0Z~lUYT%oTBj6?9MVT9iR zUF!HJ8!Dx1XT9MirnwkHZ~N3x&pdVC%Vz6v((*XA-T2d5YjZ%+$O~%}KqWNb88P5? z?>5I8;wF7Bdk*9osHN?uDm^#GY)(xpUe!%*EN>Hjg|82KCLZW|1J7oU$(C!XM@;}S|hCdg$8#} zgB0}?b}2DE6fvEC@+dmT$SJRd+~KGFSNcFuO+T=o5kdm%2rZAIw7)*s&-=^J?JC`- zVJkre4ueM{NV-DjHmN!b$7VRV!PJC}Lg&A}Io*wd^+gH^nK2*=R_E06j;PBSf59ZL z26kqRH?W*Rkg(bCe{a!vPDBK{OG=&drOs&atIL6s@9S@1O#-7dblIRw96{mUwVif z7lN5t^f#Bc!4?BXqALg^fn(rgZNv;Fh#e7&7AiSKMg2;1c}vR`@M6Q1j{)eRd|5x< z9?OPo9P{{+5Gwv!&DZw94aGMinH0D|O1A{3YTX^&lxs3Js9Ag~bi6_10ecI4{)5xg z)2f`$L-}|B!bvb90Bqg@)*yI@`b7lewvl2AhNeYUaAf5C9{a4UW}2pg-*@ z`UhL_mUQ?d-3D2Ha0_4~F*jZbgHkUVmBMe+1bMlTC2D`ii8sfB6|=BfBOEd zhpa>JUSngtXU^7O1iS^Bx?lzV`V@3O;IQwTb-X{J`H2!md21{N-!F!#pGnCvK}l`d zx%*oJX98{WqLPT=>gSKL*&{y8(2a8h8bl9VivE>GoSBQ8*Rc=?252V(yWT9R$~DGL z2>g>|k6X-L`}61I{7(q*Qcg!3^kqrI3MA2}ChP=5-8(P9Z0Lbv^&_`q4ThgTxT49TKACq=|5B7Vn_nuxZxFQ;L4KcsxfyTQ= zvVxY>SvffkDomGyZ*CGxgHP8kW%ssN`$K|Ing4QF{fPW6k4`B#grojGE=%ZLHiTF9 z<&RGf-H#7nmNnOS?6Ev=WPXS{U?^2K;R`9Humq*>St&n$jE!h}QC)<$FXL@ynmXWF z=KbWPFwybVN$3xtP67zOx<1`XOiq50Utg-4{S~?(AhkN-^$D#c5`OsT*zp$&d#AYr zZC2Wy->FZx!pbw=DkbwT9Il{=J#cz7x|emCR_JAXQwgN@IPjNSAU6u>2 zUbl}j*$pc)>Im@Bnxc$nrcJJ$fSgKu(JA+FEzWV_@GcRS1}}6?gp`Tbm#l zh^_QJT@{NM`@?{|U)HCFN$f^AWp-X3!U%@>){kEPrIUc&&SbLK_b@B3op+Rjj?)yh z^HgCz)Iusb`gR5NZ2^-Z6h@!Ls_Sq*EOjMO%#7WN|2WNFgM(RPbD)Jibu}xDeyhR#UYzh*1r2YSA!j{zc+x6gUqel zbhe?{kgbF58gq=zQSyT)1a!1u|AnDBRspRURd=gaxYl3UwSp?-L}Fud=S5A+#f#mR zapLT6m~I{$5iM{|3Rau12o??9zZL=j14#az)V0|uy#mA`ffY}52D=+aHQJ)$+?WPu z(2T-4eTZnsvm6PTK!ve=Fq))`xI_Nj1{^`@e`Mjj0cCU$*Qcr~KK%!kzY^awYZpXE zMy&miCAp(<3fYUran})`|FZ@{FNRrp3t-q;&&G7ToZQ)B{o0)&i3<;KX@QOc3jvEn z_LGy8iE6i(ce&&ZYK@mi+VlcqiG41z&)M&uk2xGk^|kZWT(eCeknx`sUQA8Bjc9|X z0A^znnfFfmrT7>#`80ay@=j=My#f=%Xp|1?9W8a(%&Qi3|iOK;c)0Nc42B?sCD^yLexh94zME-o%&Q}59lm95G9LRZ?4ky5J1Lq;fX zFN=kJIu|_78P`Tii<(IleA;VRni>-VB=;p&VL;AQ9DqHm2V4~Wu%P?<;2Jt`#3;TqrEK5eV)0>|(>v@flDZJ_Y4n-P z%#hHnFt7a5{bx|>V55f0b!AcA%2p&dr7tB`o>K^;2cR3cXBRH_EB-5X!}%Zdf~2v4{G`4gAPBP};(ZllI`H8@SzP>JONoCW7*KKGC(<`P>Em zTfm!3^jlwyFqTfH)Zys#+MSQj4!%wB(;VGA0uXl&ilaDjD;JlSq4l%i^Xn792DI-A z|E*f?uQ)2zciR7r6C|x#Wyuw65%IUF=DmXYe7dO5cGZJlzCwAcGd5Uve7SmQlu>>a z53XgtIeh=wpd{$e_VyiO;tHpwujpvzwP6z=^l4qVt@$Vs_(6|wYRq~ zpqnjtsKUu^sF=k!j1}y=KfUmsMq7z?`20b|TA^Nz>usw0bw|~{mE9_{ABXK`j+LtZ zwu}svatHn=A2Gj{v;{j5D7ik|da!Xc(Fp8jgKGrB4=}^0i9Av$5}&{8Byk%yLJko3 z*arIzFu&&zJmKU{XS-k${e>sO%7fDOpW&yn$Qv*b!AmX-qa2KsKnl9s*4>7gADu!2 z7FrN2qLqdqQ!Q&gzGY>my=?II`CE7=Kpo%#a8%b^JHfKnAV@V%0O5wX5ux4!yIO@x z`js&9f^q%Uzu?1ZboK8uuhgxwf_0bMjqO%t!jWpCh%16DsZt4K0(0A`(_yKK#C>xs%Gz#98jc_dX zY=?Z!1n%cB&yJD(c<*Id$je#IN6pNZu2(X5I_|*7LU?+d9~1DmlN8&WYX0dYE#18$ z%|{=jUe?DQ%du*ObuGeY34(P9FmQx3HcmKi;{&`qW%{)QA;v$f`LWf9Kc`O)HNs-h zTUB%Ey4ZJhXJ%I~+|++|qHNpU{7?7YZr?ajFQ<;bM&lnUhw$%GkUV%aCE6^{N(N80 z36xs`m0HwEJk@T_%Vkiv3#2K4t3Y*OOcFdVp}^ym#amv=4*O6F;=+5+73{_eD$W~J zHQUJW54dTq2~uocr`tMnfpo6au*z#Iu>uxMdpmAXQE$j8lLjo+?a+x^Ob7f#pi%;!HYUb0uXM63w99nBKNgRWR&;H=cmhi8llg5HrL(_1 zDjt6Ws$_T=QpH{#!}|c`dX_`Uxf=BxAp&3FLcM2>+~3vfY{Nq~Cq&LL1CN zGdM8tv%>5g7$st9_`dEeos!&7N-}G9y~3eyh6pOyAq-z{gQl#;4MHdYr?z+2n1Y9( z%+LW0iIA0g_jBgkp?6WY(~6qRMgQk!#1VS+``?jKjX|}!dH7d`8ViL`GRbKAu?)&j zix+Qr^-;Jt5ZKqRQ;?BC|Jvq6Y0-n9Fkgd)Md7ybQ9JzRVA*?uTmZRVnFc!(366A+ zIj{U_a$T^+;~0tKiMT<1-=EE{Z@EG`E8C3uA4T6|Qwz4g^gazZ3^5b`cc{~6+MO~6 z=D)uO@^aQ_TPSeqLun!t5J0MMn?AV9bgESXgpu{|85>rbLq-&S#~N-mg1p9oodP#- zoqENW&Zeok`Nqv#W6=8pmux&4%Q1Os2upM1ojphdEP>7i5bwZjWpB6Ee$fb3zJU7L zLEX`u=PFcE9xo>t?cIJ9s7X6u`F$k28>~JMqp|km#^%F6H84DJJ#Qd;^3riLeRXpa z&44^~S%G%%br9qMj^}Ko4~jsv%o6}5C?>{Ex40|Xv|&svI#m!-aT+6&{p9`ssw#UV zWf_?<5E$%+eqkpL4VOCsm<|~T@eDu*du6ko7QO_bo$A#uG_9>IisW!z8=y`NPg;hiINJa&%E|SBjUYNE1`hBGMvGpbf2Vs9Nqm*ORe35I_5vyTpRF0laG|dPVsZK_ zopq-Uyl3;U(nR>z$4d&gyId&ktG5Mm-OH341tXWZzok4BZRrqkrz?0FI4vPbdyVD? zvDm<NDI}jZvn#8(xNM(5nb}}zbjpT_jM^>Pha0(_(V^(rj{@q#33S7DJ2;o z$V#vmfcF&m=`SKd`WXihOaxXwk(b9?GI*2?W#okS8D`WmMZoVf)#8?4tUrBTvl?2Fy!PG)}mGh(ErWaN|?aJjeJMQ-7bR1hD zN{VQ1ZVn{3na{AVpU&31LgYrN?Csq3q|pg34S>J*s^hAd?2TJTOKBqSzK!25G8ajQ@p@vPRd<i9T8MF5mz=u^vp*~LmvX70co5%N-?wpzfoJ+U_d9rA ztA7|dd_804FwXzkq~mY)S1yUlGAe&s^3Fz278O=9HnKT%;|QS5`VP&SYW(?1sz7d2H82}*0U-v7 zG9aCvX<8}C2rV0Qk~?*I`}Jq$`4jE3tAIj60nFX~{l3A$t`Bw6nU0H3!jJzwJNdm3 zXCdITWaJ|$iIgIO%NB|Z0LLhQ-}yXWc@~rsfRZ}`Zvg)cl_{No-W0T9XeAihc3AUS zlR1u@j11i00Kw)0u3(6Jg{NJW{D4(;$!)#wdGUDi*j^#k`q%9**SY?(`H)B2Z_|qX zJ914qc_OIL;_iB*)>ODQeClMAt+XNSxXKQ$VU8EMY7gO!hk(&mwZt5F9kwAE2dGA! z(O#aXV2}SOvGzktV{1msi+BMe9y0(g^_|IzrK+L$p^VnuF8w_NzbEckA=XYMT)`$Q z-l9*ke?X_!Z6TiH<_cHSjo1?c_Bav*WQS8xQJtd0-E8tf$bCIe0@|ods5ryE_4UEV zO1kp)@H*BBk*%Otun8vxp5Mnzo9HZ_a|``8+X^0hEFynw6a55>DHvW0H5B~m%ZEGf zEPdJiNJSK40!~#wDE9=a55kFc;=5O|5S@%sIw;0)Nk05Rp3|iLQ*UIZ4vGX9y9O9( z(DY(UsmAu?mBR1k@GRd(n1}V1tdwqH_i6Q zc&Yc7qe--HMBWhLrxYwyvJ!16`@T*e2oEpBzWf0uVFbW*02vd`{fMYwK7`aX479NI z=F2Fihk5roJzRG4-#&P4)UY2b-8@oqv>c=V$}3wo8|v)?t*_5VUwMR-v65?WFYM3doXYX~OGs_?q;*r^j{6u7Qj zw@H_HDpiJm08=AP!1h_zN(*y@ ztW1Nd*ut$ea~%N=kw$~|UE6?*cyt>2c)Er){2`PP>w7ziCs3c$JsRO+x8 zGBdlr$}S$9;rHv=Bs0n*8Dvx$Gd~swA&hn6>E->1jOgjXvlV!oMUn`6kVok2O{r*6 z+Myb5c=f|G!ca4JVtO7uCFy?T$SK-i>CqoV(Ef%hxP4hZ+MN2jG;)Ct6Ti62pF{jk zfYS5nAx*RUt5aqPA-WX$swE-QN0J<1Rs%#{1R+^G&R@*InpP);jKyUye9u3lk`f1R zc8Uz+2%NN_j{XElY|GIPeW6F{o=&^-WsFfh{rz~-Jv#f3{wW@|(&LoB{C*nA%p8MC z8gAJ(3i)9-E#$K~@#F=+R|4Kj4%=sA=3ZOw^beDLxutWNK0ZG5f$+tN!n?ravwUy{ znB4TV$o+~(@Y{dJ+V}07B^B6hR{?2yPjx@*rP?R}>@&A2t1Cao#i1!7nQ#h-sH<}S zBQBi@(5#iE<@HnGcn?H6H&5CB+!zf-$-9O8&LAd_wA>Qv@V`kxOj!-@(Bg!92w z_@k=x;z$g{L4vK7O-H;dpHBSt$e+7a%WN6B<7BaOyc{*m)}@3EGj8le`kjIqT_paeU>_&nnv3`f$8e#Iu;5UNMx!T`uIz; zOjVaD&n*mTp{g7Gl^^Ll8HrEgkFE#I8Pk`0+>{R0;q?B2i>-23C$<-9bU2WAsgb|= zHr{r=K-%r4%e`_c8-SmoISGVofC@A7vihX%6D&vZ@IIa_WMW!cU0z<+EBWE)=LZwH zJ4ArO$_By~aN?bbLuCSdQ19s^Xb~S{V!nS)540i`8{L>!<{&;;Re61|*D66bEqD;Q zH1VR7;LLlr7Jy2GUt;1lJ zbD`f8>N&V>g|wuP{V?Vk&~0iQqT#xJtaN&jUypgIzLDUytZZy-V_!ptBmGY&P5FuH z7?6j+G`90BdlW&|!_rqD9(Z9!vghsy*e1%M^%qmR)GcbR-9k?PjZQTQzh&>s8G3?* z<vIC2(n0)D7gYgfp-?V0qt!RY_TX3oGV>-pMVjaPUHI5 z=IN%SQ&B2XCTlIq#KR=L5()+~ z8XE8(CBvu!Y)Wp)si{KldX1DjWn>7%&(HQ$w-yNz z1=M${|5n)~Tp2RO>@(g%<>%(YDY=rADmHk=sH}?LhE2zIDZbSQ zAGf<6C_Z`DwfKGYDo*~Ikwemt{|r$rmqJy$Z4NBg54W|vGB#zxIW2EWv-0ypA^_`h)>Iulo@bsPdljwQ%P6@xd%v|zo^)l;zf@v^&;(>=h1oBC z*gWt^-`r7G)Zav|GLVFV7w9;zY}y=kP?h^)CYhk+F|y7nA0^41pk*fYqR=taWY{JXXB3v{1YTxG8Lu zSP0-MY$r6HjrMaMd!3&a^!t_xyV!ONR&6GCU%&q2)}(t+YD5G+!taazk7~u&(_d1v zX;%Iz8;ypd#EHHD)ssB90!YUB-@m3N9`6fSyKAJSrNO%i(g%nl;?chEb!ffyOAy3w zI@)j2a?F24`RrFTip$WwsI^? zOyKGuABrJR^zBg0)*>HO)0O?uFM^B)mwS`Qv!=rh>-|MEisTy5gBjXK&m*+2MZvWEDb1Bxu( z`1{xQw>r3;-fKLi*K(-V>oQd}FbIchCe}G7tfK?frRucA>^NsWL%#Y1mM@+vMA(2m zO07^tc%7LCzh9oeZZO$GH+#goLT~TUTOt?=F)|{9o+hp&Dlv1|F|pwy+E({$msL3X zp=>QYU+uk#$2)mxq)CUJeFFLJnL(3cbGvbk4uXJ9Dta>ZIXyH0p)I!G(u8Rsy}4_E z7yr?BG8vpxZ;_o*bAh{ob!Jg7WA;4*(}r>ylX584IH6UL3$~?atO$gxkJN?rYr!{- zQZ$3Pg9XOEmz#E-hSB~J-I2R*U10(Eo~N`4I3pa#Y+B54=R-XP^34|*+m0H31SL&p z*^mWxe!XM$S??x7vTe2bYA5B4@QqHbtw+T&4(1yEr*CMt6u*+gOx+$3$pCC$M*t8y z1~X$$Fnu8Kk-&QtgLqsIx}eM8E;<5?2aX;P(7k$DK06AYvnN2nS`YsR+%&o&2*gUy zWWSmbOSJ0K$m=-Ta2Jd)a9TQo-H(r#cMjUY<1Ln*bvL-aMx|gNnxe)Ew1+09Tg9hr z&s2md?<_lLZxzqx|FHXO^EcMKTVyiHp^CGw$0wN;dTIc8r2}nH&fLn%3dm9GzzIe7 z<}?$ALC{uArS6@Yyeil`a&zV`%it?NAoL?bRmW5OUS)(g$IIoxy^UxZo#z)Xm1a~ zU@QbCU8Kd;xkeEw_W=+YR!td(=FK+g6u;%%V1d1o0 zU!0RtC})Ts&N7rJI$V77xww>g<((J{|rocS}uHmu`+PItg z>B02KOvyGo73QibbKd*>N_!rYIf;z&(-*fCh0EjLqmb=Y)ES^MO&TOZH1T&bj^Gv8 zcVI@Ec13!awSE2hpU#e0I@HJ2F|5(pwM*7oi2Ksw)3ND8=6 zKf9?*^;`Rcf$gip{KsMbCAa#ai|LkYuwKbm@p1URI9OS&M{_FfV4nrK3s8@K&l}V#HDF8VCzgih1B&NfAwqAOtxec= zE|#lH9Q0K3?hQZ^i1jcLVi)q`_Q%UgcM}t<7`?dvekq_Vy5n&>u0ucDpa^Lw&cjN<5^A*O?w{Mu8f8o^P5csjO zh&Q!90Z=M_w>sqNM#Bkjs+@E4ZMdEu(>&!p4$^NNh*NJz#pbZ2#^G>7$A<# zuhD9_u0`nR1u7LC7z}c*=^BTG{`9ZxuLeFm zjn0wIEZ0Fj8TwsJ_9`G*TKU0}`N~hzc3p$}oWif9X-G(5ECX6XiU>~dYly^wJV?*b zcXCLgM>4{q3a=Fx*Y@SbIed?dQ3Q8*KR=QVfn@>i>r%sJJ(RO{!MLx(uk^noPZVMGmtiO^mlZS(26MhOn-5`X96&D%${HIiu?gt1@P{_TW9W}jbJG&r;MK~Cj zuf|9-%s*Jk`6Ft9y7R95bPRt7&qsQl;J4SKZ(9GK7C^vDxKy~Kl5;f^!H_X@&*tju zvB?f~yxF7l;E?9&|3}kVM^&}1U3?Sb1`#$&H;8mehmwMHiAa}}NH<7HDk&{e(r^Ij z5>QfFq#L9K1Zio$hdahM#{KV%dycNX*84s&=WqVEthSgZOMrge(GTat_!+2WiWbkh z6d)+WuFf`BQofrK8$IaeE%b}QNYN8jCzrW791u6d=pMidM_a>dpoT#ppgu}U%GYEK zKRueKW+yk4A7LheFOOyeV8<1JKul?HbNXFa^SBkd)iF8315<^*Fod=jWh@J%C9*NEM$v zejJc5ytR)WU*?LT&Z5e~*4bAUk)aV$f0J_3)`2K3-e_JzQK|XjiHX zOZ`9_%@P&>af+Yh?(8eU?zSJ|7p}eTFO&&`c3zTEco;v~L&dcRTdc`KF{iHn5PUTZ zNIhyKomuYs6(v6b_}eVoE{C<)+A2^|eXNe+L=BlScVRZt>-n*bRz~x0~8OX)I~j;!Q9m!5{J)@;+b~cP-$9 zojDwMuqc^<5cP&Q5zAZ{-czp<&b%(R(|G=8Qzr38RRVVQyCz5c;Gnm(LA^JoFn}wSNZ5MGBLc*}f_5`t=U|KjC7lNpWKd2@!?V7Yio$yqrpoX!?;Fe?fzj>_ z+JSOK+TIHCNLjgcy-u9vp*tt&%9-Y~V^?~WcD0jcLUrz*`b&VdrYAIf=tmRRVgq_K zDEEMkat2^4V0y_x*vy4p=1?dTv+y%+nSc+vCgw+1k|Bo{A7$7NpPk4ne$s{65HLK? zVNU@^@g>+wL0Jw8fdx>*UsH(Q|JeR1wGkmSOn`f<%W_Rso-2q!vY(sva2_3W3g7&$ zz^O7@=P1p{_TX9XKKelFzn$$LCBLmX0|y{4uFA7=izt9LPdUvx|B8e7{taSF8(b+w z(21uftgm~zy52@bU0Y|A7;CjTo^u+3N@x^D1rJ0!NZv)rF8zSmGVt>t5TR^sg(@Bc zL-&K;->lIe$i2Ui9uG*rk4gwSf7IC1unyB{7Y?sLG$y;YuX;$ja&4Q#ScH>l&Q2B#Juq3!S!kQbLi|2F{owF;GRU^- z)-OxT*JizR!e2LrjK2Eg2VO9z3O~sneCT^F1gi6E=z#qk5K6%-ba4}S#GuYmLnnC7 zOsMef?Y?01d=jo~jnZ;uH#^Sg8&TV(7o;!q>TLh)u6C|qXBBWSCc&8h~@sh??nAw&}^EI zD5;%Jr{vGyPR=pg%O6{QcH$?NXPFtqDyij>dEtI0x2IY! z9*Ycw5uS&;yU|_q){`-y$0IVgGG2{PJBJD_-%He>4`Pmm2wM4uv%fHqP)$8PgT90~ zoDA{vlSx~vl!2jPx&&>rt}nDvqt-B9On1XYgfSR6Zx;zYgz-<9l%r1#<2BMp2%7{iCkUHzl?Hi%!;L63e+uxRYE0gE`ckWrCCKpzy%jzGp+)`CDv)dsi2VWXLd>_#M{9a|6 zT39TChelO4>RIM82Ey&{oB@p6z6u}aXJ7o=i$FF|t9hHZ}U<{jloM6UN|M$vD z_4V6$i^R9w@gg?2x7~ENDfGqzg17AAY3163Cq+}}O+vJ^t=mj0dT&a~@|BXaGzuZO zRj)Sc3JT8Mtm&rLwWXzh!FaYY@-C*^>`IL9_#|-*MihB*Lr*&2jN+|bIdXyrJ_p)Q zP-g-cQS`^nf2jetxYm}kgdavg1Y_g*sx-uO;T=*ENV?)@MR_HU zu9qNnjx?~sBqf|3ah%^J-CU<*e3v3mimUAWB5`UW6#9Qmcr7O0Qsv(uo}PI9vCkqT zPf~r1;K{T`=bswDaHQrjvkD1)P_(la9W4J6ch(~x*u#z$X2B%YH9!BYM^z>vcraVG z6bN|JO*M9Z>M?rKI;-T!B~b0NRaGEqyH=slnLy;^8OF`qr)Im0AlQNr9-sPPOb-Lg z`MX=qf6v0QAS76s@oCSM`DhgJ_n=+>NCUzsJtLe3w+ou43?od0F-VYLaQ=6!Bt?Rj zJ6UO>s?jMFmo6eQ5++I8g-`SQEGnUv>dt{#j?eLqiG#xqtR(^hw>ZWWTS2e{La_#L z^}%ulf#|J(Gl7++CMWfX6q!klAtvm%J61YB@Xl7dEwO&`s=s*WRC<16c1+z52Z7X7 zPrB*`o;La$3C^VX#*<^Xqkw_%N%KbP*MkDryPoywZS|WWefk9&!KaEW+D^2qa16i% zqHuI$VqyaDGH*LfKQF_bdY#<|8y^~Br^mFYg3)tI{_H(BA$bu8;rnELj##s#7Hq8Y zk<3Y`+pl8R>qQD5e*vSI=l+^sy?MCv(&sUd_JSbbgGFLEcWc(80+%o3goFo;4sr&8ckzyJ4 zOx}?Cij_Tx@q*=UdQ$bo)X8FUXeIN~)wPFj*Kc~WrlSu17_Vl$K9(!u)ijBb4JFJw zAYx3nvY(go!k~a8Uqi)AO4+7*TN(aws?A;2q{TuYfoImL?O*s$TJjPEK76q z5~FX_&T`PwSX{-lF{;46VVIc2q< z5ty7=Sijk6sUF*snigM9D9whDC=*Xei3=CJoJmauF`_8%k@YP*s!0M7Z}Nq=)L&K9 z2H~iz#nvB(TktW>~6Gcq!&fN%$Zs zn&y!dd*nEO^N|4KUDmKTn@&0i*iJJX@NDx$q$@gvKWVQ&*|i<2)-Kkf%%}A0*dNg9 zv8>Uy`nY<|0^4bycH1~?G=G~T{D0AfaJaqHLkqn3Cr_QFvgah${Bi?NbMYyEvQmam zP1ds_$hj=Z`}C6POgc7=Kvn)l^`?5Vi3bXO+#W(r0EQc+IcY zvy->s>EgOE(MVy%2Bu4J?t)lb zeiG&hATt$p9_wU~AHog1At$7AXKuyz%)VULacug^dwTZom+gAY+8TSD&i-YySJwqh zwG&sMj4BQ1KbJBt3f3OdKIa__Gi_ofUX~iy0h&nWRaFVNSQJ8a~Hj~`0K2nOvyn+fX4JK-HI zEp$T8StW}DJ^)Cir*Adpo``Bq4ub{<;%?iP%yksyB;K(iO47F;I86Tdd#V5LWJGn9 z@yu%<4e_exyx#IE_~l)%r;V0|WvzN5_NSk)dB0W=lNh0-P$X=<0|PQhSE#Wv)nIw> z!$v?Fi573RqN_M1>4LR7#L-5xM)rf zzBaPOKx)t^hFJF#A&c54wNG_KT-$aWxmJ3OYLw)S+V3%8izD@R%_%AMY`f8qT|c@~ zE>3N3z~`!KtwIpcz=HdI_vSmFgFCnry4yH``!k$5RCgXj#<*6Ap{<`&<%fQI8|5n@ zI?c16)?G~9zRWHnvw0G)AgP3ZhC!KlfV>dg+!pFLVrH3)}^AM znNK@-z+>83kOm85D6G9{?gh}wX2)o{G&Hn@(Zh5M zilVlV+kq%+{;oWWUt9u4c;$y;$G8o zgg(pR!gNpQ4K?ZW!e|Yb3i<>I=GEQ0yNpU8!_fQYD{W{vcYW1$kQf2BDA@b*NEJ&; zE`QkP{v}TW=cb+f(ihG0pASy4JKreD>>rxzu_uCK;ipyAwW`6b_Ik9gJvIPn@mK z_c*UxYib)s5?kE-nY$`Kk!swe{FuwYK~}_#QU>auUjGlExz~pGr%bP{P`1r0I}&b5aUwB z5s4e5p7|H^?g&oiw=YjyP0QO&A0+iED<~)_DcOKsJd{nrLwAHd^ zvpj{3>UWcMDFW1Z>gx;jLb+v8<7R&yUQ2M@kybV5pf zNJ{E7t?1(C;NjVWUjy!Gwt>h5%W9XOq{4*5>n`*$_$R&(aCuYup?hT@vGNRgn)wDm zJLFBKEvQkrxHaG76zkj8y4@f$9p$P*sHIXDLS3`#>Vq?f4DQL}e zxus*&T$HDNQpv%C)S_A!MsTo;8LzZdMM%7SDW7igMkq`K z4ACD(-G!R%2`b2?0vqW-N27Vufl^go9^@&Ql6|1(g-PH_v0Sbi*6q_h7|_CJbr&fk zNZoi^7udY=>eMI+YhJ~0x9xn;bU|D^v{~XR$Fh`M0J*k5K~s%4w(jCRCyo~*Zks&S z^!FfuB($sZ_pkMtMzpg<+Z%x`R*+CjTvWMkfEZrb+JJZ8PQ$Gj~a8Ut<3^A;nL1KV5<9(Qm#WWkCvDEUdr>#=l6w z)iViL1aopH^Z;6zCg)Jqh)ATfq9Lw9u_`(`rM}|cb^A|fJdf&G)>?n-|Ew7TN;uHx zI*po654#AK$AEHQQ~U;BBFR`rl*K|)b+nv%?6 zB7Y7Up1m(Y=Gg!;Xp{r~NArMi3?hp3ZT(~j+Wq29~+|WZ?w2Apn~e0V=?fNy!e^y}$=us(o8 z8PdS$mF7nU8*wGTG=E6tN-WvIAaD7@r0{iQubJK>qL(yN) z-3E+Rf)b4CV0 z+#_9Q*QbUbDJ?no965v-c^f@M!#n@2IMqW*36rBvc;&CV$JhVt0wrr5mn@RrFfIE^ zqq3&o@lflHGbTo6N#xSe_Q19sG7KPXT(`sxgeH({nw15=`?FJZO+wJP=2$lYBn-qa z>gq&gyUHK9#ekGsp{G)d;XQCn_)yeAS*IP*!6}DSK(;YEJHHH;O16YS` zPWvlt0+f$@InB36#16B(yVr@QX>)u+@t&y8k^U^b=diM_&qQcOYz-nMn9_v;rwtSw z&<{YWWZy$&4_dRI1d&m77jltn z$P!d*O)C42H;F@rsLp)DC0O|H>D};uFO|vnYV4Y<0)pvN;LCeI{<>yob{KXy@k;(n zP&aOG+`?zu7pL_pI9T_}fI0wt2!Rw1KHbr}3Ocv?yArutcap;Y+p6^W*b76x`9@D? z(3C0U4w>=9kiSZL^{L-$rA%{buA*%ytntQ68|&FGhv6ja3=bl=j%=Ki5~2x&>TizX zQvSfeV-t}76>9Q?{sZIE%;$dN(jj#_;d*Ek! zMrBYJRN0xZ_TVywN$vif*imbPDyuXN^-su7b9f}1M$Aw4Dd4S z*NbK^1fof6FxQnVxx-2`=lK&~mCRMg|6myctMqGVG1QzOcklx*1lavS56la34zI1T zUT127lDA~6QV@rXujt2HOso(DLcn$^DC;+fh!F^(DA2T#-%}GHkGv6l(7MSgh4#t#-Oh)ZezQ>mVIyYlUw z>i)MRNQ*oc%``q!wd{;um-lUepiKWM3{iJ$x;tOETSKra42i60mrqYmqsR|k4GqO! zZryqJn8bdK#|jmy6eARGHe60-^v4}9P34-3!kVCf@-Q}ThNE20lrT*tU!7%&&*EgK zH$ARDYtnCa04hzOj+eqO?hG3eSnYs+m(}2t+9JKE2;z4PMk_VeT?VoQeFZtrY3##L zo`jIjC1nVrH18#bLfb34*FJYV6rAJpb&lEA_IX1)55xANcOO~b^e-9~D_lpo9o^z- zpvR`{+SaYy(lT2X5N?zlHo~+S~*A z6+BEIC(-xKNRxW$kftDd0zn{P5+9==`{xN3UHUr^og&fI2!pVGirWq3&~^YQS*s|a z!xSEb572)o@kC)c33?0gjnozeOmIB|p@TT>TP9pQTwF<14j2VLeexez1KKy1)CbV1 zao5C7cCfwaR82=7qa&JOP-X!XkW9)i42vRexVLWI>n_dp^&K#($BX`?QFebnq+hpg z{L(Z$&-EkUXZM}j;pHV^uf@gfz+J8Lel|jEomYtwhE*Fmy;ua8?PGZ{bQV6R-cGPq z0=?y?iwJ81If|4O6)czIi)Z6-B;pVML9oZ@F~(sBx55|2`P8T=bA$=lxF< zCIN`+si@LoV>QxK+_3}v8I)rT##an5sKSJs4dl;gGd~7(aPl>K-mZFb()nAh*O0{g zL5dvz{uxn<8g82-W%=x!9zVqiN6`Cb$2~Se83Lvy+TA1hn5(ZOI*lQ#IC}z;RETCX zo+j*}H)`y}fZK$26KHi=R@&Oyz(-O6+Hrr*F13t0#WUyt@8E#W{(ovI6k!K9dyRT= zlbP=98;o=`I>1W%Sy<$4&F?)g){lPvS$}w^B$n$vKlmHEh#H1hDSsc zySM{|4@d}bG~PrI5)tveY_7g46rK-nDvh-jb|tx3Mzgr(eXc*Sf=z&V0)DrPiwkg_ zEiWxeqc9n&7Fsy@h_@@={w$E&KaIfaF9>2$%~XSjMNC{{J-VTuEsKpAAb$1m5r|)* zcAUJuL6z3n|FO*G#3@%pe(KCc#K6UcuR4z>3yh)JEfU#-kUIqO$Wt)1YGn~%N?vCm z0O0z19?&E^0UrHIHWNF!hbFVj7v(WOUi2{wgaLcU;Af{hQL`FKbp z!0C1!wL~8?VOmZ|LNXk)$XSx?D*ckW#-{SAgRc#tvY|dE!U|l)!0puMN7v;j&@uh1o=!PG zN$Iz!>;P;lrX-K-l<2es($(t`*@mhFSi7|Ueq69tIxZ6Kv<;P`9I}AYKUbsS@g$Uk z+9-tFEP1bdZQk&vd@njnveU#L-M`yuKO}Sb8DGazDW{24!_XW`n|pWvi!1viH-joUicA^`m0WQ(|MCHb%NHZsI*VwSyo~F{_`n0GIaidHiWUM3FYP{y1(zK^vCks|MH^J`{Lj-F2?(XX{%Pg z2~ETBpUPnE-#l*8%h!HQ=d&N|mJgTtCR=kGXoD>A{p^djA3m_Y@znkiWUk~wzW|Dc zCoo@zO~PykF{B?{obPY9w$f8akHdcmW+$YQD9X-JYa*N~TZ#vsHnlAY0#9t77skh& z639jAcP==D;88)+Ya_gxf2OL#JD1E?3Z*aT+PbYR^t>KDW_|DQq4~$Z7t&=k)nya@ zOG1&d6g+0&fP4~q`>e-#iStd?Z@>zyLWANm!R_aF)x$|1_3HPu`TSP~Zc^M%)l@5( zqqYlj^qtliH+3IGz(q(;G{-n4LoEczFi;1OAc5&}XOqRIJLIXJ2K+b=N76}5N{Ck4K30-zv7;Ws_Y;Ck0XOH)VPU%9fINmd`4>` zS9L;&`#JcSX95uYXDX!)IvVl_I!#A2unMDaiGiYHtOn1Th6=m|F!<4{DN$lL+t}Si2 zRuS`LFyLHb>Xm^-lrC*NOeJ6u;CK3RzIt;kF+N@?nI{*(3E+AzcL%HMFCj5NIS_~Q zyKeAJ_c2r|C)6(ay@4$Vu;&S7z-PL*zYo3Gsl6@*uZ7a%$L&zsue*3TK4_{N*d z5ay-si*fdEs$zen>RrYZr`uV(9zt#P2<&Mn9uT=Bq{_ealvc-Mz_Fi1)=s3J$f<^=Zda5-l@ zdR?O{3htR}`*F4PAtb03jz#rg5K1BgK23Eb{j!f6#z3m~-Ov#u+gJIl4t0g(9a>?6 zt)LF;q}Vy>06mRc$`+(G(ftpS`x&CqS>EuZCVIr$#`PtJ3f~Zk{oKBc;hd;aOssg= zaa+XYNv_7&X9GQDpNo9%Yl8IC{I7o-m@%$B)HN>Hi0jMcmh(B>I=LdLmAw%MyN%f0 ziX|>s8B&>W(u2AEc3T;APLjy*Fr0=ex0!oX3^{uqvt!t~GB*NK@b}{tYJgiM(QH)X zvJSEjVs`EKX=#tZ`U4LesMk|YtN;M!@0i#1h?iGFjG-bKr2r{z4x1pRe}D-e zQ=;FHXfkeaw#e>sa=!%yiNt7hI}r>_-?_YGcvMqSSqXUBNZEVCEOCj7B`QyT387_< znxfg$e1VJRyP1F3Zx22aVFixgjxmG zy71F?M2l@a9t%bdSye%ayw=^F#API)X*t)nY&if*GXw&%Y9gYdE(N#E1=>40s2+J0 zmz4qk*nf}5S^umZc@pvBY}J?d!u>29g)UPlPtLzHE*{GhcXYLLk@SOTEA35{m&fWC z**s!+sU{ng!HgcQl3!}jFlJf~9bI2vAAFJk=nbF+2tx>T8Ohyd^hgbTeH;E|H`|W4 z@0?y4RkqCLI2qsH*>Cy47YTxreZZcH|0^mDftA*61TFD9np{$Y8sos0<(J>8bRDw? z^%(>S*&-0Sj^`PzC=p#jxan@)x(qOCj#gdhl)zgb zCl{CO(}fJ66)8!S&E+A*t$^u0XsCsvq+{s`I;jM_0tX8Qt#)eVS-bg?j&8WXrT{w! zs--Qg=jtQx8N02k>5&Rw=%F=vk9-6K3kafCjDtNZt>sr`!Z2$uC+ z_Rm}?{ZWyTO|UPAq9{E!_BuZjR$?G#I|d0N*k+uLZ)7sF65>EGCsf`*Ivuv?FZ&Pg ze9*cY{w|>3L-@mkHu&b-q)?@W3;-9NAB=}!l%u`ayPg@QTzg4dDNVSl{syY5-j z?7-_3z5mvlSCUJeGG?ZT@31@mQ|Ye#G}uOgEy5T_LrJ-+AEJ`4m^%c5VMtVg;ZKg= z6&h(swaqA0V1>)&WmQ!pW@rqY0fjDf%C0kl0qE4#LpDMTz}HDZyVAn4|iKgN-T%jj|Fbvk7W(pcxd z8L~htO_INnlG0OxCV6I?+U#SHo3#2P#eE}M{9*J+IC-G*%{J4D2rTKtE&rMcme)QB znykuRA2HK-1QRT2xSo>2L~zAy#<)O(m#urP!S`ro8kJ7Kv?}Wzw z@RGrlwBq~N^m2eVTh%kH{!dr<6`>ZG$Gr~8d1})>*qie75Xat$GyI`{e%7(%{BJ82 z4RO5OyCUu_P8zRQjRBAef;4JXKl9sod1wfMVxwr236R1e5I`*Oxf{|H+2(o6#jQkU zCf++A7hURt8O>D1B5F^jre}OSsl^y-%Phc4KtD?MLY!oa|gC(r+{734{B&l5muX?uD=_N=S>+PGlM4aUNu0`+?WPh12G>z+wR z?LU=5Ih-7Xl*f%L0{qQQu>`?(2 zj)9H~P8Q&guK~xX3vJ`jEAmT@iLLdgpugK4lX^dA5_Wfnba45)#f9zZujXDT_ zTMXXeG)U52pA_z?zfq1Fe#n+Nybjh|Rn|wo=f}W2SUt*XDvfrBJ)1AqZwq76qmn!(wr-06x;!^d8;W&Ql0=?_7c!!_Nh4so1}!y=8Tk_w9^;W=%y~O>bN#Bw zX%M}MP-BrxbC4a^(wx!A8MHzM?CkGTz-{=?6kO|Z;GBf%CDak8XJ_}2JYW-p57@aL6wbgo=TT^= zHNlcMc&!lQuzFa7=I&JM@D&|Va947;KoNle*#JCjm{UR04RhE~ve>{-uetdB`#H)D zoM^4@lS|Tt?VY1JmDluAF zPse+`l3-Li;EcQ?n0UP(@26VaTGGE#v;BEl+)l~Ocd}++d%Et1+15$L+m!koY~{=&F4q&k zcKdG^76K_S(7T0DD^g79sB@iio#UF_`d9OLwx1u1%69mDA$tM_xc;#M-?S~99}KHP zJN?CXNmfB&qd1utbZJ&b9Y+*^C}>+i1_QTr1gdD^vh!zzLQx>j1t}l`0nzalp8JWc z@*&pvuov8({Q}fea>TEtdtWcqR#awYs=OUe+iZE6{C+HXXk=KfrPzs$ki?g@f0e|O z>}BZUUx0NuuSH)MfK236L436gRX=2QvG_pn2jz=wkq8CMunA(BHMJ*6EzvHlLv@_b zay2B8uponT7~n}rgmL9$=`DgJ#p3;a`F=ICMphA*Ox%3m;mn&{S*;*+qJCtotl@L)$Knm(mpz&(#)UUaQ}R z!pLG@d_;%y-;AI0;7QmDhfhtf&*c4?t&-+nv0p#y<+;51|X1#2MfTQ%k!HD*|-D5|KqsYpIm0c+HIwA=6j3q^rF zv%qP~<2%fnJ{x@l0VE4y7{S_qRd&CHdIJ;`XS@m&d}S7J(B=IQNexnv5eq{kc+4-k zNyRp1JfTB{v5Bb1jxmV;0Q%g$Ls(s78Y3w1X2P?uGfj5Mp+i-PpDZ3FMIB8-P9B?) zK||vQ>(dxHr?bo+&jc4#XNeFc@5@*IK_`DaPj^~o^9Lp;KD+)oI*eNssi6=kYg5(B zbM`#neLBu*BqVYfY$$FLRXn3XeT>b1mXlC=kA&DxuGUL!yQOg zCizn;^tW<*Be62)0ycGBP*;EtHX$()YwnqnN5MAxd>y-uAO2AW5sr+FjZL*i!8qxX zzz3NA!@KJ$k`}mZa`uO|P6&TGt$7)Er=Spn?^n>`;5Wo`L%8jXXRf1lWgndfC(t0_ z*-n?g&`;j-P@gT+W(V7cHYD*NK)om!Y04KOj0lblzzKdr5u;N zWPN}eC&wU?#tEz>=nAsXYPE{^MMYEE79@})T!z;)S!#X-6*@UgyS5fzk^CO?xT}ywpnyh=^{`c^~|adDQ9j%+?bRE|FNhG>g2$hZrZLYq5e!ussyfWH@~IGq|;psA6i4cspny6B{f7W4hb_{~cgMx~KZ z@I07f%!Z!P-f6r^xf_7S2@2KP>@FfrLu=0iTTmnaf>eOLO{@aexT ziCp6!l9oUGQK?Ot`}jzxKtJ+9-VP9*Wf<jijvDB#E2J53sz1Opy0W3VGM9Z&|e~vNaib4 zV*#E7l1VlF98_Cc^|{lTBtRH=IlNl_;u{(`robLNQ4Z@IcpQ4d^(CTz4s#H{DkLk2 z$v_GGG`s_@rmL^cPjvfD?D$zBG_F{SO`b?5{guI`&)Vf&)AmlwiO99y|K>+$SWH*z z_7-pMeTh7sc76Z_O0L2wS2N(Zfx-<8Qs%H8v*5IkPd~Vf^91w0q9K!XyON(9cpYu8 zzpJbeQX?Nxpt6tMc{C7RxE7!=LAUtl@@X0YN#$g5PEHQQ83cudz?z3bs(|^&_SkA# z0o$4yf9OM|n)W|-q3g2f&5jO7d7Rwbm{N6s!-Xpz-dj)*{;;mL=KBb~U`7T838V}? z=#OdN!k7fGq4zjHKQ%R71i}@l-w_C8fDlsN%p_OioryNM4N?ocC_jx_|DFBDv`3Jv zv=sK;aMKMM4~zSvBXfc~Ql`FO~+Tz zIemw;MG#KcSX4p)ye?m{15aGq>r&qlI$3&CtZ|yGZqekl{P?%pxUys)<>JT;m79Hh z03-%9CHpGfS-^tBt*g&zk21lFPo#UMiCrwz#a7YSXSsLc4I)Vp(Q_s>7`LEfN>4(=RQb z_zCw~mS#HV`cogqCblt+LEFxQF zq=>^ZZFL3SA&K@qaTSskuo0i<#`kV$;I>`cpFyb(>j}_Z=#^+;CdxkHdBy1YX%3Ty zF-67{fRrHefDAWy{3JNRaGTQ7`j5E17X#xd9o(l(OrcV_++=;%Ku^F#-n+L1(~y6E zXZ7DYe#*p!#M0}5>?qS5+tVCa;=+k;SnmX@ULddx zB=a)y@Z4$R1|!p;)y7x}#ofCvDvipti#2jV*_l-!LEG0Q$HmEM2O{nS1;u{mC}f^! zqYvA*)*YvGrtN~qX^LUT+EZ+|seoVRDnvE>)+uEwq0ZxK5t}ie}ny zlGj4VP0Z5w%NZ1=<=QxZy$Iyq^s zzklm{hM2qMeh+~@-d%*hNr5PKwN}U=s4r#lGd;`O|_&I?Q11)meYYO!FUi$xwY}JnU&IJHwKWI9_!yx|C~!n+*oY zt8gQk@j$9;nux2%LlTQ8*D41T?ZGZkeIZ?ij~w8brGU3bwL%0mR9KJXJW$ls+e=GJ zJlv7pW-xJvi{ZafYq1Q~(`9qB#&+&_h1{3h)(n@7~H-++R z>pW3~C#8bjSK{0<_@F{eYy>D|27$>CA;re3apUZ18a}ou-P-0~w_q&nQ|}p*lg0sg z?7}PuHFs>!iKR6K=%hel01{!C=?LeC?X`yE-!RNz;JOrVwh=fxJIfGqOl@1}S=p0y z#V#yc)b~x0a(i>X(!YNN{BzFFOLRL{9kf1cOQIgT9c_xG)oCh3YEL2RE+w9rE3CVm z!axmnS7Ts722d2wt~Ff$J;mv1X`ud~C&XEI5n1P|2gl*eOe2Wx#!99^vfHlHS5eQV z!%keUPfbA30vgi0ce_92LH!8e%`h|SQhBHrAkxjXHRv6xbusG?<6*K+y-09~OsqwW zp-%I=Pq}4f4p0_>{kTL6k`J08mj;25yPs-UY7ae|BFiwfP?S-f11NtGGK0|Df~x~q z+;k5g&KPsco#ZaOsZwxI)I!H0+Wkd#kRYeT_yWS_0XGYv$mRtHs1SOwgff;E8Dodz z53@X;Z6Z?AU$L+*@RCNrtC9|l0-Q_FChABGM;IEVVo9!OcEJB)T|LF9{81ZJ!G&FP zNw&#oqbP)0jM_blDy+pGsuvIx2MVAuvy~oA=7kskuLVc|Nhko<=|@IxyHf0Ery~yc z?iDqk@+5JBeV=s{8WQjtL%GV08`o_HY8_6$FI8Y%gMG!PPqZ5T+~koU#RT0K3_(5! z+S`FN_>lt@D3d8Wkw{lQN4aJ{TOq*jG26tF@Ohl4o&o`1w!JJ}`Y zp7&A*vR$T{Z{*TaO*B)yVN2`f^&ME!K~fnoH3iV?v@mbEb`piwjuV551c7IYUuA$$d~8fI-z@9pB26OrhK7MlPL2{8d(EIe@# zr-K!Pp+p@SKXVtnaXOL9uIUS#o6}IIK=>RY-$sgoHmISya`pQe6BCB!lh7;3pE9-P)`{*vqh1Z0dQV}{T>!#O@?sc1Le2z)i~$7 z$HiJjpi=|iy{sOO;%jo*1O-4f&1K0rNB2J$g+=?$S~4%^J^>LC5y0&ofO!mc;o_CIx|n+OmB!IT$XC2@}(Ac#%QKIs>Q zXJNE*aHfJrV8wN7XHh!nx!m3&2G;-NNg2GBcnGMG_zRTtn>LxZIL#9phRb{~lh=qV z_WHECU{nI5A~3==NM%~hf5iZESfXI@5`9^ezwvBMrK_HI{@~Z{+NU51qhPx#*xej3 zY*fxXf04-+O^hM6!`wleaC#4Uhvq6tDiev1e-|ehQ&O8f(I0VDk>Y@lDG7u_fVmDV z?S_Si%d-u+&nu_HpD4Ver>`%S@8u9!9H3SAPN}1is&iTigS!2jd%C$;hPctaH1?w!w2S?LXUB(0jdDKk z^aVNt{G{O1J!LbVR6z1XQwaWGWAfZ>X}PYn(3YUqK!4NR*?AN3X`EH+oO0IR=CgRv zS;yoGELlDDMeqqQyIB3b#b~7JUX34tUFZ_X>2S;C51)j8`ei_3P~k&}c6&n(V0Sm8 zrmT6OkA5dO{%3NJL+88MNU;vj7vC+X`*anB4I{exneAPKa^J3eKXjW#(1@c+qJpKs zmw2m~b+OP2E*E|n^~NjQmqbDN3sN*1Ze#xrQ(=(*z=;6&ysLRLjH18 zLm!9xSs-OLPx%!jHJ%^CNFyV|sP(Bquo+R(N2axKPV=uHrr6VJ2&F*5>H|77AO({I zH|{Ko&D`JrJ1N0bf zPAIQHNT)Q?Bnh8zK%;OT5+d;wheT#Zk$UqJpFG( zw^)Myk}08B5l1orvHOn?U7ZIbyqI5$e||#%a|RApkTQQIwTlRLn%B9%C~El zUWwLS%xiP00>$_YL{I}CH%2bVWCAXK@H&45qBL+pVRk^yY(2O`_1w!nbqcSGOLOb$ zVyg5Br?U_{P0X_EnBqG=tDcGNt?Bk1Py2}fgm$AQ%(z=#Vb?vTzkz`AtHnkDlHwyr zd<4QOj!)It{^N1(;?`Da?BQ=>HQV=im^}!vy+z1O)O>fm9ZbTHQOXE68xf!<;QhWC zmIdc@n00Ubd;d-k$^nu$X?ED?@1IAMPud_Cpn-tpIZP?k2{|}8Y_)HB;puHoh`9}{ z#)PUc$kU6{9E{Ewh;LJ0%zppnWn?qy8TQ9(tkuX{N<7?_cj|Iy(TSIh^MQ2yO@u#c z?%S1ri}AsqNl@%1^%hA>!RU!0meb(N@yW@`+FINR55Neo6`-xHS+Fey^2)LJeL6G* z94m%jz3ct1E{WK*)CxyHO!d8^19ap9DV3F#*PI^s%~+ElfR{N86nBsrfWn0MsXI-E zSMa;V4F=pN|I&8goKzhUZ-ZM$F5?un5%dM+_ z7ipae6*+;X@8q9&dt!kFn2r*7wJpXlgJucKGA%#8d@7xMCwA`lu{3jjkQsN=(+3aV z;uQlx88V2R>fui3c+O_%u{-a7eKH3IwHVideFn%k2t@AviXSC&-Gu5YTLp^lIQU}3 z44=i-Ku3*e1_B3d5ZwIt;SfUx{lt{h7gfNgtakmEc_w=o6Jgdk7I|)A*HBZkZ$zoJ zcA@^>w+gJcu`+1d{fCzE&(pgoLX9?@=%L(qdCosD9R$6vFK~dtm0_sr zB&G2uZlVpqK#7*4iKXXGq{i zXq?j{O`HAEkO7oX*CA+8VFR;2y|m^@n`;VPCn&#np3~a9=J!Kss@8Aq zASkFaayt4pwsCG#*Tiw$tM2TV7@xK7V<14d_YgV;8v%Ip1867o2gBL#>3o;WE1w)> zRi0{h!Qm<)k!R!NWJH?6)EI06d=Q7s2D1u3)c>0UzXo`pe~&Oik%{6; zaeFMI!`Y$rz!`q*BJ-YoG6W|AY6(cdfI|X`R(MZJ+&o?&rR*`x;IKvM9&sq^x;)WTx%n zo%pkvJA8!UMADVzrLOT!A@VM&&6|B%lE-nzL`7l2fT8oj$wz#obZ>d5?grD2VnUK` zY;3F>C(i|GZvL?A*RN|rFFNd;PbTo|#}5J4cYBlGeEJXAIJvL!i7XQlevIv;aEYs+ z;Zc)gnQ=~<6WwEMWAD_PSw$t!iDv?v<65ycA4H#yL~DK#QV#rF{qO$ej@Fym6?$zH zb=6%#KZ?Ek7V@+VR^Cd~mJAZ?8qH$0LiyWBir252Yk0Y}sfykm2{Sv@@4)RsXtf<)`Z@3zyMT=ud&wgDUB>@CTPazaXpOHRE;AAB;{c%dsVfJ^m%hvDqT$nV6Pp?wWMQ8#zZkBv<`Fub-tjiJNz~)=gDo1a|aB zM;GspWF!*U)C9s>T4X9L%w)67$*Ds`*}QOu1Iu#c_7gl6G8^vkC$@+2w_$8T^chU^ z2n6yMqljqSClWedhAQhUj5)AFC!h@TyKe=gF`9c=p0e3$#xZT&*?q8 zBG<{+UzW!;RMN`ypAJOuEEc}70M;)Sc)s-YB_jz;qoRyy`SAQSDb^uz=wQ{+FQ*2q z_mBHOTW~+;S8K;6_RzH~6?9K_cBP=L%&zZ=BP#Ia*q6IgHdK*`sV{07F&{)iaE^s# zK~qjSr263*KTqD>sQL5t_u;fxgNH8_xa)RGQ-{4E1RwTWj0g{>=ade15Ajn!_8iN_h$u+i1YjUB!R6sB<@@(Se&`H3AgDMe za|-4o(Yg9hkGo%|A=pZFE0%ah1l2XVnuzO~Rqejob*84uwo~4Z&r$xtuKjl2@{%bO zr2`bQFD#yZYiQ;fd|I}1u;A2<(%jJcUg>BPOG{b;C$b{d)tib>i2Eq+Ol&uEF5g4azgilHOaqhge{g#c3}{*0MLg zG}I%JJ(7{Nl0bmPZH>>Yx&5-r9_LdP%UheRO3!>6jFwtg&nG&%Ee>5$k6Mm>dm~id zJ?c&I{_-jBXIgpv_0A+0Q%X8cf`A0rtf#BXW=}t&bU1eo{2fBW+jl8Qo+g2W6=mYr zfdpVAsCe?^j#l27d5QX%=zVimX}SwA8qvv+19u>y6*Yd$^X^OanhuTiFFrR4n z1ga@0-e+I`LIebY9+(LYldD6=FCR;D2-VXW?6>X;{XB8?4fXO_q^lFv(hs_&XQ!lO zX3mwB0hae0WlyO88;3k)=o8;#${@vuVhgbKVr0^BytDPeJC7{JUlWE)Vts;a(Z+1Z zyh68F5z7r-(rtd~DiaR&&aFKw9VeRquzZ-6TYnnRS|L*Td*V8mVEpm*1=fE@{J!^I z=$~Jg;(2oSo*7Sa*DhMZ=PLIbWuqT$3Qw+5TNVDUNpav`O#`++0^~2?=l32bIb55w zv!~AzH6e=Fy*sqsL7n=1SGp3s^wX#Re6ht0AhdemcI%a;QMK6LJlx#y55WscLo*F) zG;M8dU0ul21mi_FtNQzETMq`^5!;-L`e%AUU;UysVB&D{PZB$WzN;zf4a|;=4^`Ow zVW5wfJS{!cRc&>D=C@$lvOQN=`O(N*P~XFi>UKf`3wA2fXQF1Z&XNUen|z|1y!T*y zsTx7|z~5Nn0WMZrfsM-_AJDLh+$mv{s`r2N-%-{64EZ0bkn1gBUWUlGe_ndGX5K0G zjWay*Q{Yh0Ebo%*w%BOVj~bU5Mm-gnnt;d^78C?3Enkq?e(d=JKRP!_zmz%}xR`!j z-X%UIM@!(B|9ui(mFK&2Z$um&^w~7eF}klZvcptmlzv`_R`F?!+Lzvo@$na(4{>lD z!wT-4Oh3RZ6Vo2cDpwt>voBr*XnW*lwaX8XV-OjT>!jX93LvJSqUy8gOVR>JY2u=<;e#J99R2U*9#w?Vjq|LUhzIv^qrF&IRP!>4rXSx%f~O(4wd{l zu%dPTJI$O#dw^|%H&X@^F?HXPdB}{RARYD1C&m?2f7j*R21riz?A+nN{*L?y6VPF` z2E5Cqugoooxw#y<1y%ivU9*0}K!kyL=SIz+GV> zdgGwry}5apjR&{4_b~e2x}d+Mm(Snd{&J#VYenXwN9RwQ-Ni!Mj09pKx3`-BOy#3$T=Do369zI+Art^H_@FE)!>l-OCqMuQcev10kq+{@13^O z(ryTCOg&Qr3s~ZOVP}uBs`_3@NlF5dNQ46?oWhVYL)VOf<8I-FBXW~-1@jNxe0E6u zl^FJ1EsJWROVAb)GL4uoxvQkIwNMu|$r-)lO#N~Ha3LvWPDH^aaNXEQ`DG;X56I)z zR$~;`uM3R7@{9cr@^wXoE)!*Uv>RBmW&j9~OUL6=4p_dA&YOTPrnknu_U2AD+Sm7b z+PXrIl`<293gjD9gLYLg+L&9Z7v>Ox$+Dlm^!)LNrl*os0g zXeJg8RzdQo`;vS1?K2Q%6QuS6mEiB+m)be=p{m#vrIZbS9Us>j2*Kt0$)XRM(W^(7 zhU+zPSKteu@H!M>M=2{V-Z%A_HoJ9b>Fkm0*3soK1lFpLw?+3(PRC?^=INAunT5}_d6>*3<6O>MV&O69lOqq2=~W^zhu=tI&}n29q18{Ff$$3o!v z<6lqvWC}gcw*Pt_N^m3|Tb5$${gk3lIbpk|G2iXhv2_*g#s#67ENfls%MNvPj!#b> z8&mL4cW0*!Cj`UF4BFqT5bZgbo9+M7_WfCGwcp;rw0%nxX{WcT{L2nLMnT{`l=Zpd zyK4*u6@hLw_w8fNMDBw(y!z91W4^PSqSXuYgg*is?K#kWCYE*!3c5(-xH>wDgfTUj z!;cdL0|bkG(tmj({KuDDNE%WgwQQKh5iTdYnc&bvAkZ~Kw#&=QTMtK00wKHWc$e?K z%hVLEdGF=cN{;((dHwk45hHSInuFI!az&3Zb5W42*TrO1L6Rj3aftSE+)_3#Zt~xN zTsBdzb=Acuy`i({tJPM)M@7M{7h5No`;PIpIaca4wuuPzDOnw)Kv zp%?MVn~yOpey+gd53Y6*;?e#Yrahr|@5RZ5bQ775mE45qu?^uF;lu3fMl~NLc85#8 zl15*35?m-z(KevG$^_L?6S=b42O1S$WUUrX$ca66>MTF^lPdmS1W{%m$MzrQAJ+rl zw4ROd^DEO-jr-L!vAB4fzin4grUuh}u-0)XhDi4L?S#b{N-{ggZ{m_EdX8>~uTFT< zKV~>VAEw^;E=?9Yb}B-gwh%zO-B#bumAbI8u{l*KE?=V{5{*Rf!1?)mSE4ane&tmb zn;LVG;UjfU?`|yYxb@CyxIVeg>M1*UbjVW!f3b5|I^&pY8UF&ahN#x~X}ajD`B;GyWlNP8&V~3QPtWq1x3jM=iSk@*Yj(!pIO~6RMx1W` zo?F?Vxi-RM8w{u1x(!M?%A+$oER33-ts14+xL))%^BQv;Gs)Koo>SM3*d$plHa0d6 zRxhGi&Nu0$xzspd!T0oQTB34d^p|p*2;%BfXZDz6VV5>G$LCQxjz#M~yJW#{!2355 z2m+$US5go?$){&u^;+DW)V8s5oh#W!qSV{zOFk_W(||wn0#U#Hu3Aj5T=yr^MfOsa zny>%KdWl8m!uW0?A?}fDZ}AEHiYY8=h-z4552=SdaX3WnY9{tgYO=DwY@GKkP2^8P zMwGO(R%QP?Tj{kwi$L%LF)k2-H3S0^ijNJsQZvLVWbZd3-giuUq%6%z6K^KwQ#269 zG~@m3`OA%Z6e4!<c=&1~K2y&Wp z6z2N%W@3p|&xWG-=PrJ)NbmZi$uzMte;VeySCzB%+s+-_dvu%AQ+vLe2&FuCGuw@6 zVYA{r{j_@;dUlA!YeQK0GH@8qFjsy}spXrrdwhAL!;<&jA8yzWA4=?aF?)inq*qKl zc|Ru|Z!3wgap`;6%v3%lu-2f>`D&Po?4}lEqwe|ep;#x)p~3$@LSQ zg<<+?S^DD-V~zJTO9;QR;B*I-*wn~o?S|*mphMYI0|)Gi?!crRK>2>Ux=Y`0HQqaB z%$6H6cQx^?DpjP`+&^Jz7zUg#E7{IA7aYta6Wq|a32ttcCBjD(uoZZ*sr>Tlsuws4 z;_|9^WOn~u17`Xe2lv6q9lmD{D{^d_^Na~{9n zD8lx>hl~J^Mi6s>4MCyI&R%uX?z4DoCf8p21sV#m=((%A!xy#@aPHI69_8lo;1}Po zWohNDuCF6~AX6piOi8c#iN%Ac6){&efEFlS{#Dtfd{%lZ>GJrdpp0Nhha;Az;2{?F zBxb8TT9(AC3#yq1HWV8hR>hDcpMuc@o~J+e&1Xs zXApLu=c_D1^D$%!!+t*5y&}bpH;{Yj-{-@NOMrlayB5wY`t7~XM4cnV6jv6k-AXPh zYND(h&2OS{M@)1kQkz+gf=4hnSnz=;b#AViuy=l>5EJ>{``;z|1{bad(Va@E)AQ1C zmvRd{!q|0gaX2gO`QF8P7$$aK>d9=O{PV9!#V_`z`#{L=rU<6of>uLI*!!dVbCk)D zm6d&8Kt)&ZA~;D%UnxSU9qq*8K-Fx1%9*v%P{twNR>1|0Wd0j%ZQ2!bE?mz~E1)3Q?1#9U; zp{mVbi(MiG@Y$;VQ`!2PcO)Q9p99b;C=Ev=8L5^Y`e0s8xUb6ZS!;!?E`aZb_wHJq zCK1se)i2W;^w5S2sz^x%kCC#&;kBl5q-LILUr@u>kJE9xttxQTT0tH^PHJpz0CM# zl)=zaPpsamH^w=&`i{vk)xrV6hb5^3;)8NHb~O zs&IS3`9oW^-#E0J4sh?&Nl@PWBY+5tjUQ4kHyle20Q~&vE z$4XMB3!DsQQ85+acy$*!OAzCVJQjJ%=F;nzbtO}>jdJ_b!((Hn$s+L`WCY}2Tbi4H zn(MDbfT?5kAce-*w)v8wVOf2jA%p1HceUdBP8O^g9S3ou_Md$Xmj}{j0Z137HDl3< zA3xmC(!G|HdF+<9^9dGey)Gn73>>qhM5%Gml7W`%<}Y_o`F^}y6SEq6! zlcj?6a*SqvuK^Bz&>J{k@#potFXXVW%0G_9e~Ue153}gH^Z&3OI!X`|-9JfSL4j(* zz$tBua3O@r2!xgMOI05COB-U8J%8Ib@BeZE96EY0rc-_|8=y88(lmxPW__r(5;O;> zD;weK=KOYk(BR^6vgx|*0e;K#?efESv=QI)ri4=T+YH=~uscT`bBfoVFr^DE+F>h9 z)67JNf^&m($++18Vgw!Je%TUc95xm=X0nXId zmPU7B9g*Yw?EZZR?9)$NBX5?*iG(GaOq!KsN`QtU#krT^!|wmEe~0sc2uI8bv0go? z=WHAtl!S82QozF7>FIYKa52Mp1M-@odBW#s>5VBqvD2 z`9H^~2ASDtOifHaDlxmT{rTt`6T7;n#qN?elumtb-{iF+UiHO>mmXF;#tIcP?8MNb z!=wi(UF$ja6^=2K47`6opS>NBx^~I{2zX3OuGHR{RQ_m&9l2^PE@v6;`f6!vG86YZ zzT-?UAbGH(ROP+@oEx?OY0)CtO~)iwSfCRJ_3M$5Xz&;0OSjusXy<>pa|cLS{zHq3 zrhivvDF9BUt_^)`yP=)f{t@^&*eHL49s$?~r;TWo_sL)CP)=+lA-M8;XW+9jm?v6W zS}LCJjDcrQ>+rNM3Txk))An-d_*#XTr~$oS_7gOt-9>9i@%zm}SOP7hxWw(B?HoKk z8WJ2}DSU(L?Ty%25^n^tXtk%B*Tjs{cnwqUPHNZD@7{gwaL#T}0I;)ihxp^)#!s>5 zT66`Hq1O_m=@W0n*V)4`^kkq_m*gO`1G>ThJ#}U5M!&x z^H5eNa5$`lO$&Q;giRJ@$@rDZ2UK zhdq*-?k_nBK^nes4MF3m5w?Q7nlozJC1v*psNeVrkP~W#lta$#mJ=JBGz&E;Ld4B9 zR;bVtgB9@5q)1y=ltVF$Tu`>_+REczgE0Q@2hIO|j`F7ec?}T`gE*c7z{_>of2Tr(7=$aiI9hH$r z#u6nYEIbLzWh{dqev|iD;ElJ)Oh{PE{>B zlLQSxW@;jq?bE|`e|F#gdxLU>U{T{~7s)U`Sf!_tF)ZezcT7qJoYlSbOzLH?qlyy; z=dl{~fful|^E6mfSXhR?@KNA}SG3ZV6*@*nFmp()CtLxC-FL}3#hHn1qNsqoa^}%- zr?Ic*2eZwpD3g!HUpIUqoYL+9|1eN$?uojPa6KIk4vs_fl(m8yrSF5U^m%ec*j43c zW*&xc2Ij1-xTx8K!7THkdnjbbO>qcJjb9)1921=<-y}6$*c*M}jC%8k{9yIuP&?M) zs;DjVzI9A&!(SSuj>pf?TMtnvl*B4~4{)&$vk|1vzV-$+0zvXPyd}LTn_N6RF|Xzr zjxG0=K!P=9(4-UMz)6|40up238%NM;&iy=fn2LLZGXjYQ2Qx|m2#FpkkncZq zsIRAN)_VX45$!6;o9j(}@g8_M{9aVCMfoHI15`u6U-J3w?X`)QCYRaaAixn*`&4n| zcdj@jxbrvwA)V`|A3NwcIf+IuSX&rz^6(5IYsB~c3@%^-Azm9Qg`x~DE{@98+V6MI za%$Olua8lc1pF1Rrd+Eme=9v&xVvC#3S4vLze}Nm)$ZUg6r8T6Qtdw_IJ7T!C?;G} zGv-X->ic86tn2@>mztXzbE7Yy5Z6h4O>WQw1qS$5?f@Y$cf4gV<8$vM1mhh>t4K~D zwUG%95Q$_%W!`^r{g>u;HZ9u!Jgsm7qguYArTQS3m6GxYbkxh7`*ij6 zU}t{2DTb9e=2Z*R8|C%6N;FA3*xAvgyoIgc=$S=J-v^iKhQY}&DZ)EnHZto35f1Vo z1ay|O{6+%M%Ap|JRM~$-Ncy1f_}Xva>ovpf=>-tD2Qrd9KNB?lL6{J1QsnSw<%-81 z+_L>wOe*`YZv4GCp{Rro2tJ_*r^X>n(=VWo z6%gobU6wTXa_On<0kPCS`?M<8^&e{^U%R6KWf(0WjAQ-TVh8o-eAllmKL74pNBZKR zIx7~w-S||JLEB*M;FEJ!QOLgj8O=0@Ic#>Tn4hv&P5E7 zp|cO}WM=C3Jkb^cL(K&aFgR7>d(SHs8q9wB`MoRXYt$amX!szYJYVaDuP??#yc9@v z7fHOBM7i)CFQSL!m7fsI${BzL30&9)<%*mD+sMM6{uf6hLDcs5h}aROAz3}>Acs?d z<_$w5_z;jV1_G0p|MIywt^05ZpYEa4jYHm=Yl_t`0{V0+Zs@-iO%i{io&ySeNC*tA zZ!mbRm?!w6eRmuD^gTQK_u8ySSa^7Hh7e^BzZ3NjLut-`IifBw{ey_8t*y=C@kAAt zTTHNif^O!xp7JSzw7Pe02;=gye&$_dS=#>Q9X2~-aP50F zqs6z?!V-n}L11$e*sh|XA`t3^?1&^LHWQ+%rOejs&P0w%VvE_dLdeVWBsAWgJgBW0-FMj zE+tHnzQ!Np15X>&N6o5R?2eoeiONC@-0f0D#jv3axn09+gBIHv5&v5H9{<{l<7+p$ zWMLekY}e$UZ$d$^<#a>}4Ba*oCCB_8b%GFOG4>)h(J$ufhB_=1Uy0$K_u*O_qd>w=S**!>ohKVmYHu~Dyf4{~^fo?GV z)e^?_iH8N%sdq9QyJ)P|WthNpApGM^RW~VhRcZ#IQ|is2DxreQPKtQq&u zo-73c2^BfRZJ`CE0DzZZ776KG_P#liQz%m@V{>gX3C7726Bm&7Ha%1;tCP^y5tI9X ziqF5{pC=7dlTFa(0U4PD{u_YeF~(M-5rai1llsw%uN(MgmY?u0-iY6-6YZbVH@_=B z$#Ek(`d1kxZc-F%+%5B1+~B4ItrADQ47aO_URa|XXL&+cBY}Dh|L@;D$FCF^UUSET z!^{_R>z4gX@^f3AZN>w((!c6#_;MMROn#^7IUZ&eOL>dn7xeenK;G#+X%jDW%E$=O zXu&R-FO##fu0g$DUM?+XDN9#*`S;;dr_#(zNR8%H+`#f3AwmOsbH1RBsQqWPs0#dl zhoKW*xK714g`apmCU4eCII3V8|4tHlPAG*i5a!x%Ph9(CUp1xo3m*(U%L#+N1yA08 zvv})7!pd-B@?@K!(To{=hTGMDzq0a( zttjTiB{+b6{rdGPUw1^KoImLy3^k)sOH6!Zn5oddeuL5ITNH*H4&!fBbq|h6=xlY3 zD+$dT`v1xlmyk%XOU057gtL{w5@4d}T=6cID24jfT7ee&l0^9tF^E$(Gc)^ziT^O~ zEu3f=9MbPn&K%rUp1qTy6{6`NFn+lCZk=8P@^fwN2#n}1-ww%h8TG9rb)~5MJaiFI zphBv?vv%ch7U)(@I4@FSV#Na3pQ|CcD9E!C)mjlR6{`P@BbGf1QL}F7zcbZA}$U^8(ZR-ovsd4 z8p!T_a8HyrjlDmPYVPenm@bj#Mwq$7qzpX(d}+)C<7vcUe~7H5 z`Bd1I#~Jbzm)GpMi+aM-^$UdclJUV9mH(>pGhrl$9(Mo3jacIoV#Z)xdwI!d(%jLd z&`Ds3y!LO)Ch*^;Uy&JxUQ%KVGxK%I7L*~6coEv|<-?uAas%D8NAjVjz$pj1hErha{P`kXK|CN(y4UhdOo~cQalcK@%Y!S6&Ab<$B>N;$%1X7GU(+4X*D?HS%!TT zXhGOZ-PV1R~!sD#8-{`mLB;>)8eH~y8$KkKrtU?#7!EOpEaOG#RA zrzmhv^^nr@5F7E|72<5m&k^TTy$@43Ig+1un6}_h#j-6tHV>XHpKhr&C zHg)*iZ(LLP_po@a^C9KCN%51(&sV>RKdNtnG@XQCiY2Yg^v3jQBqk)F7^w1puA039 zU$<8lDk?g@O_r*-9M<@k zD6YeK(?*s0L(ii@0ieBf2Zj#zr^J_wa6CP zyi+h<8x8IjAlJ!n-^wg1LhMp8HVGV!AlePVm2wlT)3f&WP__8ZafZFySl#~D@ChF& zzXk3qrf|yDhu0x!V}Hx%1B@&!F9YpHU~GgPU%*8C($dnOktT?tDClQ7{0v zTz-2`Oo)_TyXS^Rn@CSXxMyCHmzOv1dzfI0o>l4c3MoiZ zAWSSt>`=#>=zv|<5>2)LU47>*Zqtu=_Z*|Coh+;*2K8|)ozWmdBi+c<S3+LZ`{L zI2e|HN-n>^h%q%O+h-yD62gBa-V|}Ig!?c^57)}Bdz1Oh>0;frBQtO4&ueRohIvAI zgxhHbcEM(5h|pt*+&#L`Fi8fQmZTbOKUl9QL_0FQXSbv1;X)QwWAdtf2vwKU^iy1? z<>hhwHz1C-s=azhO6m`$8<==`GpCqHXh+mt`>+rebXV5qEmN3$l(AUSNZ|)T6I0VY z`kcF1Sud^qa?WO!ghvJyTISFq5qNc2Rk=iJ|CQ`8uzM0*@clqUj&IcxU_8`?BF1M zaNK)<)iG<9niNSu9gLsY-{0Re;f2q-udn%2-TZpAE3ad-pII$nUZx_2avZLSq|SN^ z@bt`2YCz8x&LJL>8>ht@z`VJ}x`qknLyj=glRkf5MF-1>=R zXRgfqB;?}0>pvi~z$DB@J4u@~LhW&mM_Bzq+;&dNOg&$hCu2l4xLBX3p`p30qWloD zM~29w5**bo{W1!xehR$UTfk?65DdfwlAi-eh)~e!+d(96Jc=m>otzKi03u^-cGnj zN+Rx%%HPhIC9_M}jYZE}NC&XtEHLMn8;}28r@Aan2kjmdrlHBJ5CBe1IVA|eGr0uU z;>C+`oaE5AtaA|2#>Ldv16ciRx?Xix|z5HjvO(u;$43T*C@0~UvumZ5I%3pry zeo$5=ul8dYSE@H>>}B%`;jh0vc9v5FBLYxNd~xe&Me2N~xid4*O4HNS4@EQ*DGT2o zSWx*_G3fU5yOiyw-E+nuTh0g}od`SrFmzQe@N0$4a@Fs*JQ~BC}OVyc|f!3wwvUFz;W?cC-$Ms|g<%QWQ#e8jxjg1yWJXG3KzF&v3P0jtaG6&7rnSM85z7Upsg1T+WZAf@%C0zh?)f6sAAf07cCMoWzGfxH+Q=ChJQCNdzhd=vnoLquaz9PPuH2}X!MUb z;7akDXuH&<)Q2@2FaRpI_Z*?lOIW0Yj!_huDf)E|K{dAmiifzl1Uy*n-k{h3vD|wg zy}&Rl`n4s@)?j1|Vp;kMEi-onI6BK`&$K}e?)jGA}TJwQ1T;qlNyOY1dSj(3hfq2vZavzx_k8y<~x z`S?M~=EHjoGohStM*ny0CMTJ|Re*a{mTvg5BIvk6==2_NrFS?2O+wFk;|BFzFMB_Q zgj>77?z~uQg-JyPH>i9KLxDZGy^nq8xhER4va?le8whvjg5(SkT$q3VKEzR2y7E3D zncg4;q8JW#T6q^Szd{&>NNrh8I-Y~BqmMdmrDM5(BTF|D)N6n;p}S^M|NH5*$0jse zXJ6k$VH>*@sEBME7#OLbEv7menn%wok*Uf+fvG-%`Yp9n=cd4Bs2)X0QJ6Htqgh@c)bI(DLc~9 zG2Jc!!YQ13F&cqLQ#V35cH+(3xA4P9miIM+8@os%CUqccq<}$2)qcT5c^99riZVrkc8PU3^G)OqZ@6-2AntYbnZd$KVh_v`R&t2 zMQj|<@K>*2ziw?koCU8J65TcU$O|pj+CKfSur;oZU0h| z{?vI=7A_iMgN&6SeA@mPCvT1S&y2erupO?l#G=Kjd3QBTb|FF|?Mp8$!t%-uAL)Rk z+HM>|#OuP-^`ux52Rl2-=N3t_B8>Guvm65+q8u@&Vwh|Gc=ANpk(TCj{g+;D`tnQA z?RtTlN>g8lOM2%5^p1E=G{mMN(`=F`yR~}G7I8!B>gr`ywO(Ie(bNr}dHy8R@H^(z z(9U@hO=INh&kkRYm$az z{nxbL@`TPq0h}=6Y0Lta-!MF(;vC56AWcC2{tAzU0%EYv!cl>)3Xk%nkKO>*Z|EAd zh1S-yU&^{W;sA@O26)sXuIwDv=0Lm9ze_?3BT}GSefr_23+?S%dB#BUGtVBiFcl;a z)crRv&lG06&;7Pt3;+i?Je;D2j+3rHhSZ#Yq#?aGaE1jo6U%!j;ewg!QIW%*c;zxW zICky2-C6Madpq1R_U@%|V@7X30JF0JeEWBG-}{p^V}Q{}dd&2K7(HEVXtme;?(rD( zOixc^`H1EI+#2`x5bBTBW0;qeJ z&r4RY{$DNtHYzv}SMU!gMkljA!2PG!4MJ#x_+*f8vPg>=eLgnI`) zs%gEKnzcGlzfCzjw}S0Qx15_C_xhj3MbkOZiShgp{xr3r{A>4Riv*|iz?J^J&#$Qb zYNXmVnx`q9sz^?nMHOkomgZ_Nb#-O#_Z+aA?o{`vn{v zY*-D0aSAA9kFfCSG%|=;>xM^g#Q>)z{%7s7xwT%!O~1Y`Od0}Wl(v#yK^0l|ptoW= zk|`I!l5?zFO+2pbJp8Qcc=a_pN>g#tl~mLN185il;L+LPd1JI54{W(rAgWzWvVhLT z!voWvFzQvig;N6K4eGHFitQM!PZw=tE#O8_^g7D-Y54akKC3}-aH_U+KQmG_;ecv? zi}l+;Y>mp$?Yf{NSEsr&JS2IJ_)DAH?N5D1N&49@t3nK0e4+$zxD2fE(9|tfaBNQd z*3naj8WvtaALixt7|c&?A>2gIP@LdeZ<9gcR0G&$tT{VXCFnXj*nRs@q41=EF?cKR zx>Ti~xXm=QMXGvO_3Xmfiq!TSeSOlY&uISpLyv;fg#C==6Q})N6Q*KG14nhp&$%Qv zkAd|B3oF5R992wQyOg~&+PVUMa}rctTxNm*0Fy$22(||^oYRxrPUKB{CdzXz$h z(3j|x^x{m2$;dqZw2ZM`Y#XVhDxJmBjwAwxjW~Yw{PxS=3M;du6%ur)I3S^SJ6^Zo zpWwud0go;FHd88eO5)SzdXO@*GSPU9kF%ElVWu=~ZPXjZ|86{L&s_y<&Iq=cMe$y+ zYXggbQKLQmUh0RZs~3>O@aG13gY|_x=QU8m##{eYAJ2XPG|f+){8JnrH-Yr?uTiN5 zQ*7q|EzK9P^`yRdc)|AN*MSIhAkSU7lneH8in2w6*}3cRN@15rOmsBDNwTxE{Q%hE znjs$YK;0U!m8SrGF4s&9+aQbz9p~=`h$z440IK@=9)S=Hxjp=8S7v_Ox}C4AkaipR z1@l!Wq#IGaYR4*0HHnT5j9T)C95u zI9|ZeHj#T&l~t!j3Pm8{)%cPCzg7>TS+PN@K3`frG6PI+WCUBkW2C|=#{_g9;F%W| ziv(3|?Y4i(l5WgArw7wqykWfO4=l{Q=9AvNj zVd%nk@rMxzzZ%CC|8y;vRaS36BzXzqVw3NDCeAZmx88BkTF7SJ#~rX5cVJD0Vuez0GLiCp{h+%3=( zNpTsda;=x%UVdZUvBUHcmLIQ3RLIm+>IE?^!kzxWZYsIc_KygiSKD}em5BmEItg~1 zAL|9en3|r5`_q`vUG}EF~V9m*^yDC=FW2-ry%m5Q=CqiQ9|p0ei-W42SspoTNI%e7?nHiF--l~p71wW zh?*a4Y;v`$8Gj|M6*Kfj@=drJOz#X$ja&}d=fti$1#dVyRhz(N@*W*=O!&9|M<*t@^QR2jRsLiNy%E2jfIFb2Qq?V z{2mrN?ETtg2)5L9U)jW)aRF-S~YOb z^DC#zq%TUXuCBsjY2=w3PwR*6n(6{Unt7tp!*w8OpfNiTuq=D=;=ZFtk3Nqvz1XM} zZK~Ed@4JpBAN>m4;@IX^f%hKCH0%RMFclUIhy(vrxG}d)Ev-2&Qu^}4>IvB1Jv5(1 zQ`dk0RHWWraK0EKx19?vAg#aApPa|%J6Y1J{MO=3=jPts#!uT9@OwcAMSnTDjqyl> z&3kS}3msZ%9UUEv1RE=ZS)*tAoPS+Ee0?-<#q`6V&QjX>yQ_;qtpO^Ldp>8Tc6;AwqKNY6AmycEWPrfRV;-@j;XS$&wNN6ZTsLEojJU}MOH}%^C z!n0UP0VaX()VA6Vf)dGVtoURmd_VAzoUA>7rhp;x3dO&t;hyu_@}wSaJqm&<)MtA- zx(`gt)jVes*I^3N5EP(R7fdDzWieCof$$Wk_Y8dz80Nbx<9ep+2kqA4FEyNq5KDwW zov0QkbO@~vBEw1cG;J-e{abL# z`p^j8xbltlYJ>7Wfc`8|M3|qHbu;%h4Q-P32fTbfB*MWEr&KY-E05IbHY};R7FMLE< zRs4(gc8!x(k|&|Y^SAs4zN&$N!Q>h}iQ$e(AikA*m!A@!=cl<-jACUsRTAV3s@(=x zNL7ToY1&)TqI}fy%>gpuQQgZ94dc#yhTD{7+mke+UVuh@{KyaDE)N#dUDui5gYpf9 z4z*B-tKkjhg4+&oey6$xFjD4;ih&K#7(#)bxUDfQSCmce20wN6U~EJ{gq>(~t~2*! z^m7K3QI=r}g6N{}9s1~85E?$^9HkPP^HhLsTep_AG8mc=>6~pN?2@Z_q4ALGj7TDY zq??6oc;pb4(-DG|zp~jDZ!=H$tKL?~c%VeC{JEXylBYD0P`*ZcynN&es@_>GE-6sDLUtcS?#n^-au_z`}Chz5KB9`2u?X>AhUeA@>*==ATvK2d*wbZ}YplcFL-{y0~%cQ1z%a=`I_>!(K_X!`t{(iXGhwl zZ}v>n(bEg-EEg4Okxm#WQ$o~DlV0pQc3|nNe2}hg*gb^*zfE5Ew72s4?9|s0XCCcR zwpW;ac+|Mw%%81o4~bMAmzw$)&UYlBl`!i4OjnN{?y;kLb9e4Tst(+` zkcU;tqpAtSFs7&+>pw_N03Vd<%@T$Wyu>0P7TYruUMY2j&?$c18Yv9mi0s&QG6827 zB714NO00R1KGpk%`lS4+$;oD!6b#9h7bAd>T{ga8Dkh? ztR(%OWjf6&Twyu*kR|aSGI(%%US^9u4P&jk(UrOrwMWnFs`fhfCH` z&TW8=#>}>2dwOw$ZtkuuxD;682PLJ^bfy2kn*Y+U_s)I9T($CDVSAne?gygVXG=;Y zoT6U29t6{@!s3WS+gXsuIaLCWgvAv&hc-6!(7a;;UHf6rG#XKF@1EJdQ0|v8RYDj4 zF{*o2>1F+nED@kTvD*CcT6YssV(_)iVE-7i+yg4vLr=Tt24Xb#a_mUKqoNA065qSm zxY+FKuVK1o&e+!=E`{(z_bg>qL)w8;=k&VdJ9D@2mhJAAGw6BJVh;owf*(MBTXg47 zm?jLl%WKjQNM^QR&0_vfPn(1dFe%m!`U587n5Tl#S=i@;ZTW4HEd!B+NNI$)FPir0 zo2mUO)JthH$Zws7py>Wtpd%9>d4i49f15H)Q^p&{49AQirI%uXvv=*OigO z9d(?AJJhB6zLV&LN4*F&++ZI|{&UT(s_C@YkBLfmH}&24K9BB=M{}2&B^0WS+7dqU z$3!*yvpy;Av`py!KFZS)N^@mISfsq1bs*xSp8P~|H|MDP{>eJSPq{A-uGijD(6p1L zr~8;#zCw7xb7j6P_2={cwD3h%?HO*@??Z9PrX{APvw>r?fehOyXw6@5wO?qwpm+Gk zQ=tQQzwGE~qp>`3?8o&}!{Lj=Zn0s{x@~&H1MAL!-2a=0@vSbC<=G{-LqlgM^GA$! zR_{+8AU`1P`?}?i*Xh!(OCgD55kIVaT%?PS=6_r}&MV42U^{M25z2Law*t*Ynq|5C zr;eHrn-y|%6y4=h-6>2LRXd_ZLl;HN>sFHZ`8-eWxpjtyobT2keN;q&P|}VivA>6C z82FeKxMxJSA3Bzv=buxRwfl@y13SBE>ksOlH-0C6NmEkcwqj^e8}y&F^Ydt+uO~bG zhbR5GN$H&Ncb1L$A46=bhFMuo%jvoS<;ERUo= zRqeJ|Df{_+cTJ9>(dFQfogee~ZrbRXl!^LUB6z)6ZPHyg!5do(4%oLm%Z{E&A*vgsEL@2HuBHOarXz;Z{(Yh zJ?tW`=rqZ(gg6U*Q*@_ltg8r72{1^Ry)4WYJ;y*5)Skqxw|d1tD|dwJ-NvIadN-{z zhV7yIS3W*#f;j&1B{T`=&^R_Apb3cLh zh@n@Xe_wWwG`|=$b-rfz;v<*mFKG=6=d*M}r}J?>SegcDO->&g zXGZUp6lHSBc4pmZG}G_q=Km8sNO?TTH_)u=@bA4}M(ZRPFIdfMnK4Sxo9Zm{x9wJ% zalfgxyZQ7!%)E2w!_{;8W^2E!*&G&6`n5MM<4WY_oNwLgrMw6xMP7z7j?Zxee3Yhs zs&%rZ}b)$1(q?yh5kguxd zQ8>@dCzAT*+thuoCd_P!o~S#dF>jOi9%x%CfDZ!MeeDEC&IF;cVWUdO)cL8?9pldN zl%~ZC>GaTP#?v*IAGozU;w}|`vxbJoy##m)gFg`1vD}@n zyT@fXhb)waq0#&IB<1h1_2AQ<9`E_X>?=OoN`p!{^<{w}>+0)i_QmNl)FF19%Vo}7 zs#EWu-`ffgW>TljlQRK+%+L4GfBk6L5tyE@RlF>${b_gzw>KaLeizKQ1|!RE)B z98WPZDqwr%$(jVFCcyd*pB{ck&R#E;J?06sC1LIpmZ3`ZR~w%Dq$iCz64Wis%{{rhdUce^^9uNNHIKlSBJO4p~a*Dhj#OIpKkm#Xi6 z=5t{&^6$%6--bUQsllEB9JXc9!ygwGo^aV;EH|yY@3<>ft7XE&gM8O^IHj+2(&;4l zMjjR9_<85S+sT!l<=f7#MrZ-j=|F$h~ay+FeODFvAm;Qrt z+4rM6q&JSDB(0`B`Hnx2DMSR}(B>(FbC)eaT-;5Xc z;c6^G@5L8UM8l+BYjrpCD$>W}*-l*SE!LtZ5}{l84eG$xvP)gVlqDu5n2L6=u+Rz| z^}O4DO(8grf1#5`pk`g){N214%^UN_+6hD^RYH7;y>n3`5QKF1GWb1 z;!U%!HpAl9?(?({~y2hm356GBkS6d?7hjg zSN1G~WbeHqWOS`El8|IZR(4WkRg%3|$gVF+{9pHX&cE~hp7T4u(^tAapZEJUp3lb< z>}pVyf(Pg&J@^y<(6o<)-c5xm2!N8J?SD>qQz=YrLD;-)qx+K)>zf3-30@SMuyxRa zn@3;&#yE)W3iQg-HX4RLM5z6J($boHzRfFrOU*(@+H|n&HVlTKY@C^uobjNa-5I4@ zxw(&5_QAHMTbkty~`m=ZfpoP5s|N|*lVR3` zQRsfyz`f~8kifq)Gx#7mx#Gh>IgRG+zZ+%pFgv(A-y#1g45Vr)qwIvJq~|Issw*Nb znrMDrUJyHfgy0mMgX>dpsd)Eo4hr^}-~XCGUv#U=FD%xYZPSqFLk(BCka4T25GX%W znS+1zb<;z40a5`vbs9o8#ME0NHnmoUod}S(&W_zb3&yA*qY_qT@7pP%qKY=IHHC?T z!5qF|8q41dT&z{mm`mvIpT9jl+I${lQnH@>rz)}?lB?{Qj&qObRGEUDXc?69AqV|D zrAF7gEk@fU*WE8Hcnm*6@9&1%bFs%AWxm$IX*0Gy7xh3_2~L&mbI<5M9y|61s-jjz zlCXdZ?+DBmeyqh;lVsXT{D-dMnWbr)$EtU)>O|px{-7@br6_BJ`t>}J)m0*|^B>6SK|2KVBNrhPYipc}Dn-LMBlR`2a+mNR$k9`5AHkbe z@4P*5?V6m=3QpQMU`w|6Bc*v+~|^VZ;4lo8$U#T!hp?8aHWA}^J^N-^NI7LFVSOAk&T?$^8O(*U|rE$^?d z)E)?xysSlrb7OFa^8X~Uhp9u(%gYV*@qfV7Um1Qh3;x=q)w?3nhvypS#@z}U3<@uU zDFjCZS6=J$FFX;vrU+8#CIXVDSELW%vU-Vmo<+mR_!io3&@IDa6f&0C{bUNjSXP$8 zMyC#81r=jSwv|ds;c%~k@4^DqX=fpz12-xMq1q7Nh(h4;o&!p-w^y~l`mYV^ZZ7ZKW;`0BvAL5K z0*`9jpvC(zI)G51@3$Fu?|d|mj=GU>`O+njdko;TmhcW%SvC+Nc(Xo%9u&knt;5S5 z8V_Smu8QZB;d~#fj-MrD**3w$SOo)k+@dXKB))B4< z2RTORk%BQFPf-$@Jqqp9BzTutY^bEH3?SAx@dEsXk))(}2mp$=&KfGSnr;havLT5@ zEK{=4{Q&+A|Mlg@h}@x0OFtpyj=f`pC5(N^5by?bXS8TtANqGqN_W(;j?|-e{1X>gP!eg(})0U@QaFWVy(*w&`sRM(n^U2gau>>P)WG+}tEH7YoiF zG!2G`@@F)Wbm_CW3EpY$4A;-kl;uiY>L>N`<)|5H_-T?KS>zTdCJ(%8BMR&KeZu`n zT?Y5%DoG>qn(SQfvTev87l+O#70D{#1t%IR(@d)08o zdTL{j4l&pjj4D3DfDUje7NK=R&Rg@Hk#HMAa#PUNjiHBD89a)I@Den@dIlcC{OjR= z02(!2X+a*z2d@uU!f;k)@RD!N_WMzmi7v0{I`${P@=WEsc)9~av{KY5`)3j?S{1fO zpY*=GVuz!E#EHGeVAGu+NC=yB>U?w;-psal057Z6Z$kvcwtU9ihxATYRDw3Xu7Zik z4%pt{z=b9YHfB#CvuR4e(j4*HvPw2E;xCkOxQvz`7i9b%cGC5zsMh>B7+7rJ+4mUm zXtLsXbdUqJLTO*ps|&0ILfWMvcX~%E1GxX?{EGCBEp^iZOry#uS>*TFw%@Hv7}Gyj zLjV%HKWAt9v}5BiI$|v$>&-OF#d#X@HVHbDdmfHrjJqpq-0wgBjnoc)b;s*5EQ7#O zH3bmeI`{4T@N@UJOWy|*>plsE#@5Xz7nt4j3LUSWy}~N-^YzCovS7*t8#iDlhZuD$ z3Jgkb!Sf>nuN+(`9e*|}p0$6?yOe~X~}y1jg-kmz?qNOy&N|D7X-xSm)%Xw#FPKP=_4%^^@+fajsm9fq~H zoU;RK3NeST6puFsZN<6xBqRdB{{-tA{@sf~clpl@qLpi=uwZA2SWc0IaP`?zZTiRq zgi=f>W7i%dBK{=oTx0!tY=>k;Vc z$|rdEi(Tq<{N$CBx%+)ddJhhdFBIqqKGFndb%WR9I~<9cqTj8d&UWl#$vfMX4^sd2 zm3?eh!Ipq(4*49c)bP*h;_ALSOiV*U-YU{k?fAz#z(QmitS%WPKrFPJT2tt3C7tOj%GNs;PRCeOCl z?voFvpZ^rB6k>2BKnp^AH1SA9eTR|5vPlU>G#9XoWk38g@2Q@+X4}IedMs>1sc@& zl@^D?(2|PWn-Z%swTgbV;$0e#UHu)dzy+Wdcrkizz#B+_0Cq9tFhJ+5@ckXQ-yrUx=iNKr zq$STpi3QNZ&=Ig0MpJIvXzOwtC)(Cj?BHN#K$JurF$(ink!yan7Y4}(uG+mM9uW!m zDo8ZBVCCy0LOu!(YX#Gp8IQn_5E*qtGzNf!xI_K49rjnC$0#z`+s_s>z3Zl>1w0c2 zUPo1TLKx&di#sOcUdO{2T`47Vt^(a!uCT*9&>ZH;om_sC*+2T3oc-IDHn8gdp8eeg zrM53fzWT(Ue~lrLQ#{jDL5hlaz<0CVel&M@LP+(>+Ds$u3N1CYG%P9r67p(}i5b?J zxF3V>nhv51KGnBy9fOKx>vtH-_h`6i{z0aFHn=nI@?Y`#7|-7zAMb$Uu)OfQJ6;*= zb>z`e*GGVQ2mhD4nCrXILoOPO(N|LGk6$jR{P28Ow-bt8`pUZ1US}{0OgLYyZW<v|jdbP;>l=e*&vVW@a)%!3v9vnSedB-V;TaJ^LCd zt<85wT{-79mRB9J^%ho|;}tdXIB+;lu)*$5q$=-lY^M9OoNZ9yaDll91ST;2`U|V4(o5eImca@M&a2NiSi@Hi zO7!sBXi*?s03|MTO&8bcknT4E6F}`aA2M*Y<*yGbEC^xZ0aEDUnI)l!cay?DF0Mi? z25hi^k1TS---C$HQO?C>vg`2 zzX%V{4T<$+s`N7Ly(}|p4*vvC$wo7yzH+jqtJw#&w9i^vg5fZ-3)?5Mv)CV~T-TBC z-~0wr6xrQ;@7?wz77$);Pn{DVvS;C(e_&pK?zaP)iGalRzd_JhbuPwl@g=?Mu7{o4 zgl(K{jTtW;xY~{*S>^wmr~|Pv(-D=m6O35hsY5BrX~+g^Lx?SLK% z>ixoriHYXs2{;pRH!9fV8H6}Q_-bEJN@rc%?~aO4+q1&LkG<&f-0@8wB-5ockg5gqR&g^d;`lzCfysMUV~=CTBXPy8xtBW#`3UC?}SY1 zRzYiaDs_)A-mfA^k)H?SkCgJWS&tl-ju&($B??$JWV>yR>0Lnltb+W3DQ_+>FE4f* ziPz?eKzs&Xz`f}XI^X0#E$pQG&R4EPHe~DUa2-xlAFEZ#83*4am;+NZiiK3n%*~~M z{`>KW0>OrX1@tZnCf|tlB ztGp(+Nn?J%99X&epBF$Jo;_3Ys+siwb660VoiYo|^<$Kdb@}*T7B`$CF(fwj#pD3d z(9n>CZ}FBX|4o{qalwHrgR(AS40s4o?*fky#%YKsU^0RXQ$sUbeMGWWFci4A|1sl3}^JL$lYmgl5BL0W$P120x$w{_UYU zfSpvTG0Vmr#|8P;U*>VVq`Ld}HM+ZnHlgr!tevXXC#PEoyZZ^!JuJLQj0#~BpsyFo zPS3RE(VC~qOyn|{BsrdOQu_QV3i6V9UMy7z0+}2Nob75l>Cjf+&jchH{qM(9qL{eK zXQ>RWjF%^0l$!9@*Vh5E)y~+s=V(ZpITgI?&}aokbeyJ_?RJ|YV?Ll)c{dJYOYmb7 zMc4>tf+c>*N(D;KQwg!OQpQ9+d&L`)xJk|HMg8F3vYCqLX7;Ydx>i_FYF{o%?f9YM z-32#xX?z9WpeXx4-?n~(81vF?ZTkG+^}3WLrkxf7(7n9*ONd1SCdAlylu#%3YMYVX zGgGf!waxp5?)&$Jx`iLg%@8z1P(It{XA9#}f60eoXioN;)Qb(;+(6Z0GK|@xnqL=< zZftHb9dk+K>6VQ)g>t$(@gHg~d_)eMUsY{9I=+B(073vrkJNT1yYVi>@OX`H=L$`2 zyIaq9C736d(;(P{gc_minvh)odU2vWYLwHv>>pbkgN9|+7hg)3ji}50*{lPTU+4Qn zr%I7_nI(I7C~076-=pOOJvNx8W;7I`Km0k#DPm=$q|n}KQ|{156~hKLzxQbR#m`XW zw*4DD;mNTZ4PJgtBA<1hVN^c&=@X6J^`z(To5={sg8lsDat^~)yD#f{_bV^FCpTe{ zxoFqPDRx7pFYL;Qy+wAXk+P;q4-o5RciU)LS?vrByP_~XF|Qz#c~w6cv-3FG!|t;ys>ogbX+6g`y>O==@U7?_y_LNgEN z71+VFat8kx;bGE)dV3G0TNTTwZVi)dxFunWx z``g&eg7#!s@!@AtnKZ8Q3_tekT{b!uW87sWbeHHBbe@9mZSN7MX`b#3?X$Q#RJx=Ht(_m7&sMmtae%>R3%|H;^&VqC2*sn zxf}lyCOrpzq_&n;Zt(Q3O$bLmXSUoA9TfB}G&D3I2ksSn@93rgY(Uss)_b_SznOH$ zNhhANiLMxa-}fOqFv`d%S=m}gRI575Eo38)_4W|X?xaZgxda{V|0QF0{Es$<_4T4d zWP@6m6T!TXz~{2qWM#gt3WR&BO_My{QEfW7bo?)ee*O$8Hme> zi*0L0-5Qo;OEii-r0+AT{JinrlHtdUq143P5j#K3y$$Nh9hHd`p#=upH5(sfIP8nq z(jsln=62#t&j8DEiAsmP~WK!A@^NO%F0YDh5d^<`<+mh8!k-;jEegvO+w_rMdwjU)M7Si);smgdRM0KfPYMc(a9JkL3@| z--5A9N>1WAa`({~Ooj63o5$e=SdJ*y4po98R}78PupUPzS7Pf6-p#_uv&&%JS7Uke ztkxi`PJxeYx{K`F*;rJ?vB)4rdI? zXZmqc7QH~Xr;Pf`Yd{ZXuKT+hhuvuh1LwJ*|i%hjC{wcDm8@O0kzA~qzf1C?KJuyo;LhsVnw zQ@tHes~?=Fq^4%egmBlUm-Wad>y{s)iAI!g=DUWe!_SAhmVeTjZ(bl2P7)LQ%qNKP z;b3_8Ql83ny`bq9Z!BK)*AbPV$huPyP131@L%UN>*D<6-ST1%{w&e=1>eCWLOrgZ6 zXjn$}4zW*HS($K{5^owIIg-em(nwhtfgWo3L@J)`#Fqp}OkX2~$cwl3?nsr-ZlBIv zW%tBvl1HH!$%)rhax%9s#j7^{!^gLkTey_dhtlArvoPoon?Ylyrnr-HR4fme`bPGz z`ZIbwS~te@$PhMk8Pua&;!atJRVHR;tW8b1AE5x>2b0^hxW|uw0E8D|#$wVoZK$*{ zsnig-YuiTI6Z0F4y%1nw*OjK+&2>QauGVrb5MH*;O}DVCUOLEy6SEjLK%k2G|FpI@ z)E2?$>0{qclM#!kXqKAXG%7cdf@=ff0W(Y5 zgj-?0_z%pS+hY~tPVSOetB)0;eTTC=KFA(DCo| zDCFnyUBSz=IW=Pu;SdwcDjBxlde@F>;J9|J1{U<-gv`iv_4eL}i4dTge&h@HPufyU zX-MoHg&=uPs3-A**WC$n?)>zR7oy|+pJX2zu{B@v3n~!cS}J-xwX%^gfqh@KqvS>C zL1ubmSf%H%efa(<4^-GJGJY=5=3!q=iRl8AAID~aZ!0rZdoSwRimFCjyyb`OsMz`+ zNzv=uH25M5Z<3bCuL8B>$SKE00?gR!`kX<{3`Z>_BH2z<%oB>>{wUB}x4yS7MR2_> zKXS=8@MI7KQjm*~_{SkUyd9!opHN@PHz+s3)oSHD(quCrpoYb$wrQ&#i96;NL%itT z0?UIlnOc2B?h6QTx_!&?4Q<8Pr+?qPi@xmisUye6$My52_QBu*?55uP97n~8nT26m z2|cd?GeV^hR9JXZIqaVLFm>3cOZTx(YIVpSQI%2bdy)}Nb`oL=M#uWesUe-KK6lFP zbq@IUe?ylIJP)wLO9HlAE@zJ`H4@HEwm8@<$ie*V0W~LJN<-gp%LY`pX=kLhN;GO) z*x9iHJB!Bzi{?w3Y7cEv!-QJA*SK7~61e9t0sdGhf1b+te^Q-!I&cP~cL=0K2mh0y zZJxbno%#`A6!3W6N`^BOaj6?N%?3;lNzOAvk!EGZL`%#0GOe}oK|W_b-}OnbxxkAxy{HjK z?W2Wd(zQzsrmT+uXNyP6YBr<^?z~ChneV{Ex zDu7LH%B&S%j#>}>m#SBqKDiwLLpk^n$Hd_0zK{rq}bxCDu|gKiJkkf zm5hrc4BI|3YWA<0$>;JDj^|C6-~o$Fvy0NN$3FyAIr#-dA2K-DDFG*aBDXV*v8>EGpgW)@={->Wnc>!E4yLaS?UMdOs0V z9Uu{bAJE?AB>3aNnG-agN5{*@2jjR(+ZrCEN|h<-Ja!>P(bvM_G6suM$*)MPv0adU zNaoiywpM*|@4aJly8c6^3e$@D;5+Tz_VCUhdH0&HP5Y<#)`>IFWv0_z-vM)2J{V<2 zH{LoqLS_5lLoSPQqy9Cx+L3S9+!eB=cpt_(BU(RyW)g1zTcgaAbKQQ9Li0gri zC+_BVE9d=8gz*5{r5%_fhyVRgTusB- z(ebIY@sDoGXw=uO-;jKX0MwM$*4CD6A{I?`d{;aA$&C_x^wVTf^Xw|<*DEU@rlgee zCZRDpd>@SZ66vX26QnA9jg5^l{lOkqT(($@TUrV4C+GTxI;G$Kzk!hopLM?AZ{6ci z4VbjS@5<<>>ryupt~qMEX%qGaT`ulsoWWObUpn*uS^x>|?@iOCs<&?!AG%i=@bU`? zlxDnwp`119D~!JZlJy&2(7lgOm3ELq*45R=1%oVH19h2yE>n@&U;;;mrKO=Eb?Q_$KJMlm`1DE2kgwspN7FQ45>D14&Nu{b0axGt zcj}_<^Q=hin>WWGln8JuKaLu~rGT1ItNopP?Z2JLLqHSVs?YYF4Rc97bjL^7TYPtG z(0eL(0&B>RT+s0s6)C?B4|6Ill?u}}V5Q4UL~H^Y)vX~Ygf$CYrD0`a0$f*Dp&#JG zTsV;pp}zHcF(~zD-51 zi~BnLhC%8IruZjK=k_uBmb6IcCICDELs_bqJiz-4A@>IoPYg*!6TS= z@HDS==yHz|Pzkod?2c=dL#eC|y?7GqGzp(PY*eRR#Bg5o+FI24C%$fQs!)(Vy~bDm zs*(`lwJ73nOpPppRez=R$>yt@o?aRGCE-4>Vz3KuxOa9+1iRsP%of>MD$ciDNf8gy z(pVuq7)CO1P;UeZ37zQ+Pz(v-sUa(?(t9|OxLNYck zZ>Y3~<{?L5Zn0)vsxe2|LqUUX5*5{&bIF13KX=egSF~kefcYF;hl9 zX?+i*7a;&~f!|&dco9Y#f&+kT1Rn14Cjp*cyYq$5dE*QK%jBb#q*ea&!Dp8OB1@P3 zbMv^Q;Q}D`KsJr2=;6S%&bX?@G$YB3dL}M3dV%n|xVSj0B3wdR<3=%TF1Z~5|E{llyG%35{YuXXgO7OM+iPZG z!WIYl3c&4z$MyE@+bm)>rj|*eIhIw!{r&8u&)c3qudAa0?CyWj0TK_HrF~#`1O$~vz;EK#!_qKBzZ=str_wM*z4CU+JT!Q#Yg& z4;Y+~-DzH4VC~d@?3G3L6OPZJ7bg7s9Oc#3!;qO$(xHT0US1}Rc?_%p5Wtq$QxlWG z4>~i`#K;H&b2*!Uz$hRfAT50vH$zNQZSii*15U@vN+x35+_ta0SQQE7L@hHcY~k89 z;%c}v2?t-5DH96|#0!iAER?UAkRUw|iIPS*z?K>A3UGgk6{ghKV*Y}c77j|-&)~eP zxbT{vi+WEjIOBjOlaZdzyJk4YhkQ*Ozqo*>`YKb{`m7WX_VJ#hpLQI5kMx`q~sH&>M5ki-j zmVo`Rtwb7|1~qg2q&2*7oiF+wWkPqXn|^t~TXSca?tl-NC081^FnCzDMAHR^O&F$u z8rm@P-KsF&)t&^!9WUv3%hW2vb79^;fMt(TdeE!=NlDDaqtCg{hZGWd3=AGWc`^yh zs)rBBHyGIAVv!|gpMeHPqxkxhT#!rp%=#Pi@oT0%I|B)Fb@NgZD7F&W|C^G2HRgs( zJHVl#uU#AY`?epi!4k(xTh`%+p#v!DaD;q6o?HjNfxaLRpR6eI;5AJC;MLj(Az0Il zkLbL{0hlD!8)pB}n|OK91wK@&P=4%>85Zz7B(G*>Ck#sL^^zX`Z|mcqgfBu6T|4M3 zdZk2g;QRM)Qa}G&TXR;R_^*TLWei@doXsPL%RlLs(T|6md64*N$ebQRml6E@T?N9u%}Y{uSOK- zIehKog8-dla~ihYfPDkzMwonq7&Am+H~u^$A(cZxMn|r+|66`epcg28aT6B6+C0?g z0sl4-7fUO^Nt~5+5oBnC0FsoSry*ypu>MEzzUni1nRm0@vK?%1YeF4=SAwCXeRs*{jTLTLN&x z04XONUgDPVZR@L#_$XxbHV#shkSQ8HuzUwT^xlvp)FYvPw*%QEnPyIJvSQI08OA_5 z__hBrrzI?=Bf*(V z;t~=7(w*}ql95_mDg=Q5yV4E5uG@^kMM!|fo&au$adP= z+ywqV+jjfnw|Y0G>3=Udw1>~X?T*no%H}Wa{^9fb9x$vMHfGRPEOndYAe%f>y6cn zsS?uP|IMXxR`T={#CE5rr^C^gla*Ea#RYyB99Oxyxn6I#mBxiKyE!hgzi-@`Cq@J* z&a}s_+h~g@UD-jsolChU?zIK&$ogJy4WDmo*Ct2PAvm(D!fO;xg=8@@t|MO^Eh0tt+Tih+~z@M!C4PP|e$3 zQeJtwLoYy^l$rT#+SLfYxtyGYVh>$z+V6`x+{Pe7PD6hx`^ZUuqpFJdgS|0zkHzjG1Z%kp52p9e7~_}@8r^QF9R z!6GHDuuH9Z!Up1!X(e=G}ri6G-m|>!q3g=L^Q6mI( z{rk^;10D9JsK7MD*-n)rHDPxh{g7yLvJ%oFo?47wLL#+Z+k1@*Rf(@#GakCCo6Q$d zCEC?Q=?y9BVQc@b4HdFT`>a5<1GO|71H+)o#>RLw*NGCLavMxP+_yAQk;P5L;bTmm z2n5`AAR#Or-MDJHwQ(AjZ@&#Iyem>(&&>46`qJ-OI1;>r3ZRMWqjLkT+Jou-cY73Q z%u>k;O;JnB6Lg&RX4j5Q4lP#eVxR1S#KJSzDUYTMI(1p*OciQs>h6E<>nevl?zrTZ z@Mb$8v4lw2aHMv*zeXUCF5F^w22Vb!K+zN0JQWmwXth zdlxusVG#j>63D*F`Ee4EAb*|Ru$G-OlUq7x!JQP_nCWDg?xGox(4#zxWbdk@mSH*P zNglhvUc!=^O^GPdDqjgCuAd~Yjejo;!|yj2jbRVsT)%jC#9=CjH_Q+l6MRZo>tRiG zSJH0{>d*){-T?(N*a^WL)i85k$&h9axNeg&qU|^yhr;3Ecz6;V9)nOWx#j-yYSs%5 z7iz?_H*Y{JlU-kq%L#=$!zN(T32LTOIGf&^Se>Q#AA|Fn8;$;~lZ?51FzX4XC~BoP z6Om`D`n)A85o^XOh=OH~9wfn=)E~#k$Cu7?@`TVG^$llzRsZlLI2XN#Qmze;a8To4 zvE$7_E8{)HxRoncoF_XmAYj;vww%@zCD$FjI^Yu%1=3%l;ADr^+0}h=V!Y%4dK$hgg6cYG}pwif$mwDg`($q~DVWgsDZ@ovJ ze=oAx6L?ZkAP*S^U=m1dF^tfr3266qs4}tIEo)+Onl2?TT{UAk!{51x#>fPwrTR%I zaP6#|DrI~g&OlqK(Z#8yn*)a{oeec`;H!3>yr)i(Fv}8sh8;omi&LCoHN^{ zzsO_Q8r>&hG`c*-|Ix~da_-mqDGH&ar#B4O_73bZ0%%*kbyl0u`}Yon%6OHFT5H&z ziaZpS+PlN{h>>Qm!ODjZ;Z;N)jKyz8r|Wum->L1JH=<`|H{qqb@U*tUyh?B&#+2xR z6N8Y}2Am|&6@K|*h(IvE*k(?3t)F&fCKwhV$Gl$Cwrg3jRr9JI;Y(`U?XXCoV#O7| zuszAI(t>G0!WWlcn@?<0KEUP_HZMtK>u;_JMMR!AAm!p{CUh5+_Kb{-&F|LM)}S))oQ-1dxXYR-yYT%^&|mln5^5}e z10Z}+3)rlXB)S81T;e&wwPRxR6Ru$ZMu2xOsYkga1D{ZNLE@=wpxz5d0tZ5Q$k{mn zJ=bAEnp)Rwm>%NFatL)geJ3n~j5zqv1*QS7zj{!X&JDz`lZR#E&zt@_rqxfqB1&w> zi6C@FXR8M!#5yrVp_EZt_l>H)Bd2&f$LwU{a$C1)h%hKHc!k5mORF!}5ws76R0)Xk zf*8N^Lw-Ex+TR$6xY-Vzhf1w|?_JX0J0rm!CkJqEz|l20y}s8#`(#`oBz#4D+`1l= z$&djNa(9fDN)w>aJDx2tyZZC*ND;k6^P!ZeKrawJMd)igARf2@HTzs~j4gvv(1&WF|x-S4W0WUmzC#?7A{`vb$5jo0nr#@$e_qJcq4?xN`C^4Me z;va%L^8B!-^Ge8GH{c#I^k_o%!T$aem>@!ElQ*f#gXbj$+4xL*0)|3VcQgw!MgtRc_*C|YNXa+=p@$v`WB0!8eN9>4q#yUKP0sCFZ+Qls-ry45!9^w-*(?1+N@cGg$ zRfl&#xkj7Wq)i;NKqtI`3vYpnShrBYX7EcAi!$hEU=ZErHpb6PL&8peLWej&NQ%~8 zz2{v9_PADxEu|pnZ?xWXd~+A^zVLbD)cE!F*QcTwVE(oR#yc?(Mpah{`%%vPY8k7k zw(b`hgpTHb^2+IWRg=#ujMvKaRx{Aj_6vwo6>oT`R#qIrr`li%6@JKnKlut8_D}im4`+t2VbM%XOt;apQKc;{ldB4j<=rh!t7$Rr?ru{#d4Ind>$i{#2l5ex4U>I_ z3DDr+AZVJye~+1Ud_SVm2-@HRpv~LOR~5M69!{0h=}E#&)H^U$$^o1cYQ(BcEZI<$ z`2!*gD!L0?x}x_+Z~UbNfS#s|#4QU=l)1c7!@b(r7yFka+A65=KNsK7@7Vv~;n_ct zU~anltB$!!fVJ}*Eq+&BB^zDM%a<-gxnuGnE16kY;O1z88SXC_j1*)Q{I0P&&jQUa zEJQj%&l$0}LsL|P#zQzV>~$luw6Y2d?aa(bri7aD^xM5G=7cWy2&3Np`ST}AO1xP; z@w8%ur4w=s)^x(80*sA;^_u=1e}V*{i1qdLv7Z!n&6+9N6Hu>A_#@mq#@uf5(ph8q zPlrJWIOijHr%t{8XOi7HPZ;-M>h8a{! z5U~b@41ivE)@TGL!%OgTezM8PY#z;@-w|U}Ptpop73z1%m3X4_waQYytKqQJ4oI9*D zNMkg0bXNF#(pI|2kY|N6n*S+%u(7|&-sqoo`DKn^Cl_e~1wO8#Y(@L`Z$9NBqR({* z*qwqA69!u(BkjHM*$iphPkhzj75J3`_iRkq6Ak}Bq@>zv+EMy-G2%=Ewl7V zcv~TlgFIfMr~)=j=l^yiVarTQV;LXX+%&1f7UbNOm#E044DeEHq0U!F5eK3NQ79Th)zMQnbi4y7aPbkIca}+n9Tpt1 z$4ZiI7l*Gkz{JTv!o=3r*2Lr+2t`5bK?)E;pnJpW+he-%D)=L+zSma95g!{^H4@KY z>Bv#%G*hMI{P(38#1>EsG;i#K5mkRc5YRU`SXotd&%=Y#kBER^a`Km*#Cj-r+U`aj2RXusZO`c1oaN5-N`; zR2iAQBzO3-M5I7A3xz;YQ-7J5h#NSOK#!m>8`#RXZ+o|*^^F(ZIEV--cM&0fRN}SM zl^kz_OX)+MySMl2Z@)=nsmfcQ*RS0`#f`aTrE(4lTN_+bH-tGONAZ0b4wIHG7&qnr zqEzAa&*skYPT?=b`o4K`^%9bOt~E^nqXdExsU^_JB9x5iR7Zht7Wod4&g27FLOeDo z2>tFRA6wzIRs9E5cH~flF_CdU)USL=F{lnm8WYpKE0$~J*-n%Y3A+klo?! z?8fjM>0GI(Yda|JWsGj~cuXgrh)SSIoP*`KaUr|wUv^|~B zWFejAcc+Nm_9aIgOankA7}0mp%=$ItDZ+Mq^h6`)r*)kdX^!GeGc&L{vQ|V*ls?VN zOU~P{@|81y{N-ppPPY2VZP~z|kk(cUNs+a+wQt^lAs8It_f@Wg*t>0%qEX{qmUR-g z`mdiqzm*$6&LAbMAf&h0`M@=-E%90UfJ?6v`NwlO+nJ!cXxaaeho+eP@V|!P(#_)E z`t7zO`UUHDE@Jn-b}4q=>MhpJwuVc_<}Df@ar~B|?8h5^&wFAVSDf;4-xdpAtC_%! zUBo?w%s>0sCIO_mVvMFVo;IJEPDvXphrD<3vnUjiu+>IHF^OxHid?>~kT5g!)s? zo2asnIAA@@O*?lceWyDu>(0Q#wDVK6Q&m`8D)xn|P`9~;vvbqKhpdsu4lrvpKe2bo zb+SOP-va5PW|;vx?(<7SPW{z&vzw*?8(;5VFko0EppshBh(DAC;~5 zuVQjUgovBo)>*{7c)_jg5&+{CuBqayOCuJ;M{4jsw) z$w*tZO$KY&p7L4ZlL!)J6f_lQ(2{?vnj(g|RM#&vrs%)dA<3hb@{{@tftIWPQ1}Qz zQ-K_2<#H4Lix&`Gu%|XQGJ+W)vlz^v;J6mNq}_jV2wx}Qd%9!Bh>y@?RXYs!@-VBu zz07~xqi=ovZ^L?%6=o^BFmHu(_UbGpU$#>kt75=;rG;l_`}dZR;a@@t@<%lZYt6pr z-KLsNGk(=N3^d*KZz0|X7H=T8Y$mg!ysI6NU{H#nxzac&On&}Nm@2}2AH^yix7+HY z`2Sh}R0z0%#;dH3j+Y0p*tc5aj{t28S}m}`?L*PvU6Wy@9@v($ba!}3oM%8Krfa}5 zf`I@L;a6B%}t$Q!pv`uGs)AcX%-xU%%ye z4OvZ;8Iz!jgsKeK;c9a~-n~;G*Tvpt!W55+5)D=y zDFouRdws78A046y@U9(q4`2#T@FBHfa$B$mg}NfOrefyZd&!ok9iiL{w>&9=v0sOeVr$GPYg4LP;nvsb}%ZPynkDU&Lwhfm1 zFH}0yL;&Ttw6rIV!NTy8Pe34Jy-x+X2&W>1Og94!aS8kOZAfyjpva|Z0jN1l;Ota~ zJh4sCzyMbVf?k-!Tu^bJEr<_nP^Xd`f+p%lX9okRV4Zwhx!y2tJ77agc-{5Dv2|9D zj}FP+pv8s!wJ}zaGkHr{P&*xcYZA6Vb%GoZlKoxQg8OB6L`hZRve1gR!Gs8Wjg!NX zPFSNV8Pbj1h+DULPtX<3$cz`bp_V8`c9o=J>@5`HP>u^!H=j1m`zUXb%EFvn8QD;x zbU!^R-I*Z?O|2rRf>st5)V43Xc~@E@9I)s243F`xtffH~sQ*;X^|iS;qd(-3hBSGg zG4f!uJ3l+x=FfW7Ag>^ipwGufjDQ@Q_P1~U!06_~e|L7e^Rf4X3X&-1kvj4L>LLAV+35BICmbzn z)<~uRESUbd2O8|N;J*Zo&#YvE$m2UEW^Bl% zeJZAFC3xwy=yEQ|X7DNcots3(QcxV4H2BY!W|KVwKZ_}R&QJ_0=sf01F&JoO@dB|R zj2VL$V}fBo&ZhV=Z60d(>+qOxX{b){`>`2xR$PYtFQhy(F$ls1%~B`nfQ z4Up%Aq-jrbbO=98?OL^enq3?&6rK>w6hN7AQXc3(A>)^J@5Y5VwYw$M!~=CN z{n76l6&-}dC`j?IlMe`M@o>`8C&lIC6RKk3{~TXwLy&0;fp?)m1<%qVGW|n}kB?}PCwkUE@&$vExo&a>G9b#ugH2jh`IiCtw}DVYdz3>um_lC;m`V-X7gpXxVfdJtt|}L zYcNK@nL>k~Ba}70s8H-ymTL0!euGV#i%cL~g;cQKuV0NiF8ru*e(Sodj(1Ds$qpzS zVSkci8$$ZgIG{v2=u(&1F{A!<6n=8=ALtl>{0rLM?9eeWT>-iaXN27?5EVX=_n}65 zNLV6|f{hR_im=GvGIaW9z|>+CVYGQRYx7Y5;KDalRGwqrm4#w#$@mtaVyaB<*7jF| zwJ!fCX8tcMEZ|9oEHQ4P8`)0qVS2Yos6eiT0wXT0&U-n^7|r6sLMoJ!fsY?3c`!gi z!T1Ky8Fmqq(PJx4Oj{B1`-G`#IDJ?J7{$eD?~$;BQ&yh{0*NBI(Z%D)blc z!{G;7j|P}J-qT*V?JFng3xFt)T1a~>D4Ar!M0<4W0@($I+%?ag*OS`_b|iZ;4Bk+P z{AtGXPaJW}l7O;dUuV}4C7;gS-T>LD)Q7^dE^4=ix8N?^&UEFgwYM-0tMexZSsNA& z0y-F&x7XDt`kDXvPf4fTs2nH<3zzb@YhS+XyY`UKkx&^dPCkU7FM|L@0+k02kHNtlek(50qM1NaWIl9vmgi{@4LJHFWSD7w_9sL|2}88@ z^OsQd%Y$q)4Xmc{yuwa0v3lDfKY|43Fl2UlSpy5l?94|9_Int7nku7rd-VUKal?ML zVV^W{w)M_I6N_w3zCW(?@3ts)|WB3vEtz=frNkKcL<^jCZ6zp zv_sD^Hex+<;PFHO^v0gm;*#{H0Z zNE!JfWRo(ItYk#?3YD!=5<)T~A+w0AY}rc6sAMFgLP%DTRmc`m$jtkB&ilSy=Q`K9 z&iNmCp5O0#fA9Nqe}*pxn*xJFLLn|Sp_u}0JFa{>z?6(Ik~F*{LpLv{=R;~{VC0LQ=3^(VBh{wVQ}8gD~sSq^>=d@OUq(*F765N)bB$f61ZQl8?QES z(?iPip07!9O2>{JGqLjcPhVVUrv@#uCkEZxZ^7-{^5S)G`nL(W;$qZ~zoY;)mET;* zMsu%yNR&FT0#FXtj`S)ZDUiWs5T+Lhn>oPH1kMLm{VSG341uhglAK7;CFeO;QD!-O#4o1qE~5&;T#VZrs%=^ z1wBQ}a1E6r>peU#`+h#$@j+HQG3F@eQ&lnR7kw3~E#JPezg*DQ($?1}CEtPh&g_@< zeJE^y)|g^D6_;YidqTgwu^vl?n#{s>4k^1C~6ODs3N5om`&YW z`8IoRy^Vu&Iosgda;t@dKm=5>?nFhAQYuKsCC6%Q?LNediy3kUzjE4ez?b?}?P8hv z&eG7D-9nQY#MsXck~AR~`(OH>cWaZvJn&|-bw^*L2f+!^oYY7j=tLZH$>^x%?i%MY z=WQAd>cMKse{skclY(gqv>3yx-#-0JGph)8kLQSNxOfacJybq>z)(UC8%c-(QY_%o zD21n=B51ulJSsWt6F*XEzaIMcj!r2};ie~8TllBuU@ms;&9d>QmKi4jH6w&FAgRd@ z0#DGyT?7;Md`dSp@+42!)tBYi!x4Rl9u$Js=H{3w)7a;`SXc|sJ~RG1^Q9I3s!U>x zJdRq}X#&!~pi2kF`Ms6 z;0^7`3DVV#h79E}skMn_cv5tytKbSRexhSN&z<*s;&%tI8%4LAB4VSp^jo6!`c~@}7gs4zjh*m&{r2 z=A+$LH~t(L3MR}1%~vOgAcCCW4yK-%8cEW5Jp?mxGXmk;`)|l9iLyI(yDPeat{j{o zI;BmQm7m8z*z0=ZM6?Fu3EPRYzF%7>Gp?Dz#R5VD_-pWweq|V5^MU=sjThFh7tFPu zfU^UX8w4*(I?j84V%+{nPTo;|MtJr@_EGTfgKO_=41arAYzmVoL=U*IiE}E~Yi*u3 zG%#I-y#hD``19wi$@?7{>DSs|LIl3$239%ih<}^g_{mN2>9E#+g7YK4Bc$tj)w`-? zdG_fttFt~NBL()v-4GETVQpG@F#Iw#MK>SoNd#jNvzl#Y2FicobP^U8oy4Cd2a|_@ zTMSPZtX*8}FK!+maqXUmk9$w?c^T|3P-I&VEB!+E4T38e0!F$O`#($Cr6~Gsu7W4$ z-*-9jt{LskNBq!#qabaf@pu~+;5zQR6|}(^c>Ybc`!TMFELEa15qbq6Mt+btraD){ zu~X)rdQj^X&yv_dsc*t?D}Z5OH|+vu4tPf z^2Ek_7SNCB#K6?Osj(41$_)k-d-^*E2cLeigB1P#iz22BrE8L`E{tvZ~`C&$Lnys?;0z6<%6?y}ZPim|)$Z8>9m^9r)MfZbg8j;?fnQDP#c zL7YPqg!y|5OCRN%s5)}^)DT^inTt+9X(Tq$6(HI#J^Js5L-STI^PItNt`CN8HXKr? z4k{B0&N>8gOR}|rH<)p2r4I%hmv%!F1lxrY+Fyz+Lfn?Xicz}WQ%BkQO`@%(wXI| ze8JQA)6%v-rf>AOJRmL2;TlL6+J(A)NvxAt8v}0_mgJW#%Ca zqW{D8=5#E;dswBAvYsSUQ*TZzWeb&m8VVRj!-dTts73tzusgPc^#XzLqEENm9ri1^ z!-#OCLk-xw_hhV%yE{{~*O?RF3WDjiou{eer@RV)I-7(zGeVuLNNYt1^{iZyusKLqDz2#_=fr-+^M6iZe`g~BVu-MqSVcb_Vd_g^FZL7Hi(p+HwF~cf zG|$PGvHM+8tX~3I}-Yb z1W%>#W?Y|4_hO@MyhC(ybQF200mI#V10f*4pyH#x^8|y+6+#cO#xWV0zaaP>Ad+l4 z>fMNes&h^*mrPei!Z=$#d@!wW;UNrT($?4g>Dp`M^~$2TF+aa8Oj@(`W<2` z(cl~zwTw;873t*eV964sBfqLO`cYH)W{o>OOLo9BjkZfMyvy{v;<;KbYepW$N9vJ;wY-4M-1IRD~!?5j9x5uwplkzOR3cr?iE)N;<*C zjL}!CiRI(9`ePkd(l5my^bQHW$Q-%$B0l->uvskm>~!KD<<~1Td}BOcWe)vOG)oqE z6{dGZJ!k~N$dN=Lp>SbCAtuNTmbR3v@+H&f?aiubj?20BoR$@dk3DiV9YOxW~+yuy>uXB@z|Y^W8s|oa7QV!Zj$kUHJO3`Hudcm*d?qE^Z zsTDsY9!O8F#p_{08|rPvd8e1175Nzf8>>nIST?)o7aw<)QVq|=%e`KlbEV8zO5%~L=W=v zjzahcdJlcTfb(l7Y(h|mGq`XQFYufU)lgGI!m@qGurj|E$yU1H(LApI#Cf;>#iF~w2>ZY42z7Ul)#k2x>>I|6`$(#!;XSiuBV#Nf4 zzj?V*`8mLQ#LU%cZn<5}(H$u%xSMaR-J_d+l|BrIL~83)C@d>J0c zf5-LQj~l9XG&bH!JeLqaudb$s{FS1T5`*wbz5rgnWh41M;SYSGJM(i4V!N_DMYOI2 zWgZ5T9)Qi(^k&|mhhlXL^(OIQG zD5~(`oxyK8Z%US(JZ^T?w8Uz;!&2PA&#!$c8OKJLwE6Hdve#%oAeo4O20|!BgdE>=A{$)EFT(v&(@SxFki|$=uWPmHU6Ya)Q3r zZr6d!a*_xMoGrvD%8&05U#V*Dzy7m}Q)FNa`*pqZ@jMU9IF58Zx6-cp5L=Z@)@kVS z*;6xR?PS}KV99Fp-2{fNejT(CkbHt^%T%o^xK}GywgZbGQpix|r3jv4q3!kA!}=U2 zh{A^sfkLmQ*ddHT27z0ewPf#_VhIMPPanmG0vN|~)bV*CVd0Ixwc84pTjDVeip$BF zcd>}RCRw^gi?g4);)X%_K#Jmgo_WmM5DIAh%V8S;X= zk{^EmcGY)=9Rp~egGg1o=)4qRS!Vt$>9|%b+KI|av+T!Du`a&-LzOc!?RbK!e*SOn z&w{B0KlXZ}mbSLsjfG5AX}Ub4D%5?W+jtWffmeAc?0X=q$py2DsNKx42 z1%Kg7^Rn=pkLCRwpG)xLncTN0V~n=HC;VE_^?wg)BU{&)6XOX1yV<1y!@LtVuCBY^ z&-_{MW2${`j$`>i@$302_%QC~lur_V@4Yne%tnLl)AnAK4|Bu2kKFnB#@pN97)#{Y z-ur*#jhMb1Jur#60-gR9b@fJEXV4f36gjd!glOUW$MoZW(dvAw@(^CJfh^r|EB(fo zvm}`q_AV7WgaYZw7;+CiIK;!FoJ;F|&_e#S>-D1y=5sKq$FjiE(2(bG(CTBh7?m#< zOYuR4yYsi$g|!HT@N8^!faTS!a3IQ$Oo${~83vk&#X^WaY2#{Pb*Q4J{}vgoMdRi0R@ewfyQY1<9t9?~ds(DzR7! zDcek%Rj-aTL?jXjApPG{&w>B&t#x-`Oy#lckkS%#>4jPx42jKef4SEM?Bg5a4aI0 z>Epb*{^{#7R61~%XVT8gBqyK$@JKIfJ|%#w?8f57P-~L+^Xqg!x#x>$l2QiT2p{^;aOpX`=!2xoXK5-XB?Y@S6_vM8_>%^Kn3zhRzN6Rmp^;|4rN-`*I}Y6eHQ*}8eo%r38ky4{^F^CGA&$`^9a`7^iaZ)}zI!Vou- z9v{96yJeS3^Sl`lvs_(&<0P=Lr`}UP3AQiE9S}#)%B?MaV?Nabc837)GO2Jl zzhIz?ywDdIa2QPexc_*p&dN7hlozf@YUER;m4@e4W z!|?YPUGBZ>{KP>1W+(u`Y}JQxwVk9i7SZ;}vYMUhL~9r&Ktb$VSV>n$HAuPga^GG0 zb?w-Xp0)TUS8h{rnwDM+2^;(TDe4%Vpz-jx3*E4VyRkTm0J?+7lqa-42eblirixXr z$3VJ{C+|T96`)dI(`B50enq!8gx8kTrZX4&*+(7Me$lttrE_=)$>C7EiHe;}x1Rm~ zT!6b#Q7adG=ZDwZ`=%muGG$*>hh6c(`dX;Ls}l>oWQCir^dG(GbM$$0j@t#^5;(HZ z>PK-Y6_GCeIqbYOBH7B2Mu^H-z0?%}Z^bN5B}KV!J1R>X=SD;64?SoBSl8aZ z)V4(KZAQhQLZPgi?lS~qkn7!gGL_wNX;){XbY8zZgosS+1xWmFSr_i$XxpjKb;@VP zHy73YHFb0W4me4(C$RrdE)QwXaTw5gJY?G(P!I0FS_WG2IG`_y2?-T9tS7z@AjV_-*(1-`)WOCP;@wrg<{UgmEx=NQGD4LSA7@g@wS-W{r#Wy<1>ex z8!nX(pv>a{;@a1U%`JBtD?Vl!yLb>xX*l(yaeWhepPGMrL-B|F?uyg{6mh{fw99qA zy!x`*TkC95>!+Z+sdTe(!_(^I@>eBHAxX z*Z=r>OwZkG{B}v?Na-aOWi^U3C)8qiZ?Pm;eU&)+ol9o^bzh!H$?^5|@wImuAHP*z zp7^9N`S9i^Hv?oO{2a|zcwg{Ld>%64A3xl-|J|BOL8y`!4y3X1#AL5G(oP{XShwV( zXjb;{X!~679klt2I5{1AZd;pLTW3W?MAX*$Z~axVC^mnF>(JU-p$E+Y9JbAMdM-b) z@27pb%e+BTrrzn9cr(>yM2eD=lmGjZv0d%6OtUt;Qdlm*T6DXt=-Bd8Bo)!VgQ_6^ zwdSa-vtpN2Ah#@sKKycC-G@60_$4(r{}vS~TI;rN*L<&tm5ss_h9u(;85(TvbJiUt zs)f_RssPJ$aryPh0kf{u8LpZTjidGW! zyDYrXT(qc6ERZ!6q&YaTcp^Jt_}Arz_@F0L3xB{-SjOE27RL^gWZOND9;zW7?jCkq z*g~M9O|VCeJOI-UdIoc`#MCDbeEhz+Dj#GDH{XT+k(=wcF03J5x_Zgvch=RNsI>gY zy+{_GiPeC#v^0pj8$rQ0A3l5t&E6I=sMwUEwtsOGFZLFtA2~9MA1QIEkro1pBQmLN zQFrb<)^Pix2F*Hh1=M&Av9p6e4cb!1lZ8hk)%{aq85uZ>ZWEk(c9GbOHWF8d)KhHkLDkX(k`o>ye7{EiV~aFCefm=NkuT&0swz31 z?vdmMBhr3?(bSp^j=pR8LRzv>Zk28!z~;7u0tb` zK*0?l#adQmQ~4kzfm=4}Dj$DVvxx;QH(^a&!6og4Aq6*a)g@```$Yoxhwp^}211|r zYRYpS77*CEDH={t9$q*XA2`Z&=dvM<_GWr_%n1V~GQ!0BMsW@`hBWRAZy9KII=`YP z5WjLn?WLu(dVQRGLmmv_yqFVFQWIgwP ztm2=%cuD4K-`3yZ#)V5A1G-b9Jw894e7Ue=8`v}c`N)WYx$$u*RxfUnU)k&yA1uWq zSJlu^@?CYQ3n0U@4SCyM^0w+*)X2@xuXU~|2fsbc!$YR7Hm#gzqz6Zphtr_Im)UnW zuI7ck8wm~xeE=4LfB<@x>#}Li$~;a39JzGkmPl-wBpH=@P>={3#=hnAi41h{}>y)0rP$QA7*VYIDIbf zeq8(%+t~BCiuu%k04cPAB9_k?@UgrD?|Bz%3e9qvIOD02&i^WK4!+xMZt;o!hk^gOcq z++3=%`t+I#MyzB)4)IL?!b;Q)DAqJeYcuw62u9^>OZD@Vw8Dzhkbzq7B|i_5{1)}{ z)0*X{L*^D~o>jeW&oeD(CC4JaX4c`WDWmL|xpiaribiqL$Q=R!Ab9YBL8AhMKpaWd zjaTWM30l9Rzx`7_kei@X|nRD2>pPd|V>xAJFo&zQ_ z4SH2E5Q!Z)?`vck=pI+6AXHiw85M|#iXtBE%%LGbgYgIBiY+TgCnoaUX8kR?i$tn) zbaS-dp1&*sF914F_j#EkOrDub;Yp$1xXE%jk-cGGcJ8%kSn8L!A@6UpiX3_bs(|?0F4!CxI~^`xF1y^C za4Pxh!s)sQmczgz4>QrgpUA6w(cqInDex17e&Q@P~q5TvjjUX$MJUWop01jR1F*jQS1NsNrQcWh5 z{$K1QvA+EF?b~-u?U;+P_)?}vYk=}+aI?dL=3lAZrkjC_78ymBD7Cv^&&m@}k^B2o zRI*mr*U!Prp!8Sav4E|>B@P0i;7rTK(wCi2KZI?)c{O?BR|8q*-?t9?`5bi)JwQSs zbHw<}#0q@0aa;*dH-Lv6p-_t*3bahUvarNKq(797ud=b;0=gPNzVoNzg2IvKk zM@el;)B5kESHch{n+G+0-aTHEagVd%?6hrT*pq@to?U!P5) zV2hk6uKgFdDYJX#j$p8-h&Ua!GCk%O(0s%PDix7<$mOfZ#dZ)r0kF_Zj&|7|dTsgQ zNf0wL^O4!!KNXgQ6CmkfbBVPXUtIIYUfu`V`@qG{IL~sjs}g7#2CH#MOx5Xg(OAgx z=h|OO)6Vm`aYI&CmJ}dUT|F3hZDefh<;4bAy9HxRxW{^A6viMSV`1AWEDt35TK*FT zp#qEE;h7m40&D;o@2Wap`!zY)Ytt(R&y9(Rm6bV*+b6`me~-a?I4?JM>XycyJ$rBv zs{OWn?ClHIJ|flNH9U9h#9-E5fSPeiQ`6wk16v0M!ik(t>_KLK{D9e7vaX;qJ?ugo z8}l*G*gBMAWpm_+Avb+=b4b=}-Fj~C8*jfNV(nXJSu}S5c>wwH71TGh?f(fItE#VTE>#m1_h8`D&rrnT;Rzzw zB3X}+Ys)6?8t4yK#nS-kO3EvT-kc%AIw{#MnLG1Pez}#5%<#N^?+(fo(~tcZ70ffK zcRE`M=ovj~mfC%iwf2i+ntt1e%Y`%6LEP>ae#iRs?$*0Pp?t>J7(`n*>`30Y8Mko> z%pq-UCkCh7ta?u%&4~Acsslb-C7@wqO7cTKIGR4#wu7v4G~aJXuki{k?K|+7u?k4T z>x@Ij!@~nbu;gj|7N6+!^ey1>u#ySnzEC3_cLtm~=>5~v(!SOD(<#VlM6oikvu{8L z^mmFO0n5Eo!G#0lwD0huZ*Fbhsd<*@H4@KM^e}%gsHE3`ih$bDWH>^Ml7?H%=&~ysDNVV+~c_!AR}2FR=cCjg8He zm19lavqv@<_~V)%3$MRlm21mVVpTb?P@*WQuZ54d4ubrdLth?=2vP@jz$d0D3h(d` zD0giRl09lr0O;xMUUPkE73T|T+}MIVQaW>-X! zWo35j)Je8`+n;8;9%Bb9_(1#WR&&yT(or1e&YW7g>!Z0Vbxg|9clQeVVn)nV4pQaq zL}7O5$sxM~qb3NxpXWtHsOMlqCnhE~VVCFj=+pnjAmN7_qOvE<4eU}_a{%vvn11_O zv#v|pRDanldZ7LL_m8Z+gi52np6Ae^7Tu;6^ypZ4;Z&x}c_3;=1=Oyr$v87ZBO}tK zxM#my8VuU62_oR_D$L~JL@VvZrN~TsfB(JOzp$hLUt|Z-^o3945&kM7`K5BDPa5w> zTqKUZ=zryO6uHJ0F_Fm>Vw>%_yt(9WxS+3NXHTu(3`F)LihH2`$vbpqw}i~X9HmtJ zJG4h8X6eA3)8UV8O+3v0hn0P+Z=k;)0=PFf7U3Y^@F;ObDfHX9s@fKt=YU_(zkl?7 z4o?lmj9Sm3s;K>P1Omd37yh(c07^4EbH*m0nFonfnAQ#X+~QN18#gxDu`~QitFWHY zg!UgVHRUY>RD)z)oC%21B11ydbag)>i{s`J5wv-d?L%ADCSbT-p_a2MXY6Y{m6SzH#r+YNVsH|9TxSkR2?>1=|DHgNv^!jJ zI2^|~KH*Uy&1DTCAxM?GcHPqh84{UDNUr<$7M;m4`KsEHwZu@*;f`nbi1v)x9z8tZX=Q0;dO)&vF z{g*BP1R^{}0_Oq=+d4v#+?7{1GCl1StNI zKX;x7JD_6R2uKGrd-YR;5OBoUjBn_j-X4hz2lx`8YtHoijat-EBEBcp3PHii$p!V2 z3FNJa#e&ZQoRo#Jzkf0LasIEGlAHS_oOD2!NH>JOu;F6zaaArjJhG>DbacSVYV``H z#@0kL4D9%pKDD>g?b@|rx$gnV-rmT__tq^K?D&F9fe%kkz)glz@sY(bZ`XkXk5J4? zO+~1}nDKg{9pf#yqlMI*+mmpP~O}Bw$Nqb z$Ka%kgKi9KVz)*cUyjdJk;PnI^WWZh|DhxhZ~wr~nu$muq)iftQ|@++9iQue-*d5ke!DUPw?&9sw`tW(-Y-M(Inao{N^L^HR$WQkpq+1STbEoJQTC%g+E(~j*WV9LOowKJy~c_6_m*82MT#>UKvt!PcK!`eeL zgRH`l9UFhqG&dsfCHU6kr%wkVx`sH(ny3<#ET+2?N#T#WN8)j0kaC8naPHi>o}M1) z4!yjtmDzRjmahKM+Db@EtM;5TM^860aviV*7G+nj&f|T^*Wq z9i7&K)3saEk20#femTFjKSe)`X@T7@d~vqR19ZNHt+$y8NI$f*FMogWy0deU`Ll^X zYnU!&5!wU#y6%^-Q&i%ypH`bT#1CGdj?E(k{F!XGFgJ&;fc}QEa(xV6Snaxl`_^B^ z_f6L6p}aqDjcni%aw__=N_0+Xe_L-zUU}rR8oV^mc-IkclKkbCazjG}bW?bGr%gu8 zx1T=JSza=L5;o*57HwB68`{WX z6+=`2_^v#^th9$slJz0YyZ@9;zB{T2m#r|r6Gv3xhzkX|&hg`&s8#GYnDcj7*B$&a zd?)3{TEvv3gFG0RxMJhd)6q4_D=2I%O}}v(XkR#>`FmjOU(ybcM`4JGPtho@d*}hA zerg+g1L2!X`U5W%(Srv^{;bJAY=F!O)e#LhD`X{rY~pfjc!(F#&y|+4L#=Bm#uCvG zO&>vV=8Q2S8%s@f>E8pwopL9UT1Fae!ONPSE`aSHM)kL_kX18J{1_bD6|2WCgJDTc zL*w1)0~E?AD5!+5;cNBzZAipdM^8V$ny|1iv+grjt(~0o=!4-~Lln8?>x=Or5hH$T zE=f>yw$K=8gvj|)#wsqrTPA1EmO1uywYBLLm%zdgcF%Z0(bU3iXR!Pii?p;#oO_O+ zr03b@4_uy+ax4q}LM-n|O9E zuI&ju>8QP)o}QS57FJfA&p3HkdjFa9r)%HHY_(TlG&ohY?{JC~8#Zm`rl#nqMn`?; z2m7`*=;|&F0-T%E&sifk`Fjd}XydNa?p2sXN#Y+uRAXU=)_lR|3`f&t2{Rj; z+~iQW7@~;;3Kf)X=Uqur!vjPU-eWcI0)gOw1`d7EJ>d*$vMc^M4{eSH{c`_Lf-fd| z;lhXL`sjPxC)E?Tvmt&xwsl057-;(3hWe#r^SG;$Qmr{lH{`U?yThKv`0QCT(}fU~ z5!^$kA1dzNv&X#D^-I9Nt<>r6t)FH-xc}kaLkx^=w!t!`t)T4&J;kDk!qBHrQQUXX z!T-K7`1qmWLK2-^#`^lJA+T97Q}5&8sJ=9*zg=Xt%`#MV)xqJ@_F_|Yr5lRYaZo)M ztlbd5$FYAuH97iN5Iiej)`95}l`waFjfR%C8bD}S*)r-NTJ@vOgB7-nGwAW1zg4dR z%tlWTwxU#KzWekGL?C^UEBBUv7!-68I=j@iZ$P$@;)lV1b-IGSZhRIC4}4h}GS|+5 z>=yL{PObn*b86O~V2}u1@@EPrPYDF#~I3!`e3OY`8)DMqRTW)ckKcCEA&Vgfe(`r7vzc}|#yp3mvb z6p};FjCmIQ8$c(ST*DYCD#p7A=-`)@hF3!lu#A(2=)K@u^vd01j+CvWcx!m$?e)R- zb_9PSXbDMDOf=VqYV^!=Rq$)@#F^oK1idyz@FI3PfOARrCE5r`)Od+TKz`uPfPMwR zJeO7s(H6#Q3lj(y($~zYZS421UvM3kt-&vdkF|+)6a;^Pd(Yyp9~;w6k(}P-VgZ1d z813@?L;t-4a$x1N$_m*I&7f?P2Bq=BL<2fxHQzqcsiSw43btXkIB7?1eamg<`Vsgv z_}Yu^+%|MNzrM?O-t*yZ<9Lj>%AGd4jY3PC(VaGMJGOgtn`#(ONHse20qdz#?W?P^ zp}mkW-?MJM`nLM-%5P2?XG=g5_ybyb!5$op_ZK%BjqL)zM)PNeM155AkhFiv!r?$fnA& z&ce4X@F+u%piGYjmmU6ic-?C^oSDI7w37rAL7uZ1y-}2?`3e0o?42eiCwCCkqd1y> zETT4v)8-fzB&nY^c^cGwJNq%-OI^W}^kbmQlMYM{GbuC!EjC<|{P3Jn$sTpuY3KdM ze~5~TLU%3x`pJ=!va%4`!y?SBjg1pHjG#$O*V{ZtY_%BOnAdl;^P98e8SPgjl2I9@ zoU1`%med$}xDHKhE^!BoKW}`_$ycvCZyfyjcd1J0(@# z1g)C3v}o`vii>_Y?z~|-zbm7yP=ew&S-WrT{*a>Cvc^mX>1lLi5o7;>!IP zH*rD1e1zUevgze?!my?5c|*aOC!2x3fUi64V3BENU?7eiD(Fu}1yBRbC$^5b;0Jcq z+MC%^Y`!Hg$2_}*Sr@mj)qzTdVu^G zj}QoOm9Z1-vY8_uXbXg>>{HytM!p4u(c8K&*k^R@8M3spLOms_h%j%guEK8RebQ?e z4pJ`Z9fo(fhdKA}-@TuJctkT1ZSYWDv=-p{r>5#W!{9LSAx0hb)l zyDzq>`xBD2?sCi75EbWK*>~4-M(vjf3S*hgG>w6Ff3DtY>7uO( zX+Jd_n_E#Q@87S~>>K{!`_I%dN!3Gl=)`N5(VO4AdDCmQNAKnLI6ApB$7WaEVuwGiBvzC(+T)! zcPkKh3Mwi@6TFVp40kcs=qtB|#k57`oce zan!pA;6X%j9P0w4%Xz=tb50JE5bZlmentgLfBzyaUNoY?K}AMHL9JMW@6>&OU0 z^zoU~I|2jHdZ-77nHU>CIrBt4T~Eg8EJD#S{;rLLHK_Mz3&rP)YawA_qWb0)d;5KC zY&700c)BRH1K};&Gz~&AdNtyKVvqFh{InO;vO0-&IA|BqgPN=z*N=$D~R(ED{^_(_~9IzYRci9m%;RGe;BA?DKEa zJ4gON3T=oAPhxAbZoZ`$q&fZw5JEeM-r?}!u%fmya| z1=A9XvMMm=OH2>2Fa4` zESuOqqSf9_P2GngWxXE^R&Nr#3sJH>)AkKx^%c(HZw_yT|-sbYkcdAp1>HvMqp>+sCJvwue6NHo`Q>|&>3^YyPi)JGd4DE{Ji7xF|$|9 zw`$H`>cF*0MHPkuP$&Kl;->*(h$u(;=R=nv`e3U$Urfbc<#_TYqkUv-Hw{__UF#g3 z6#M*8#VU<0jp-A6*#w*pf5F9yU$W=P8zwqX}o}ntYgSP(6{FdKzF5MqNuD4a1i&&i4X&=NA<8xp@-^UUI>o zDsJNFx2+9)>V$+qTyk>9jxkW6kpY3FhfiLfo4fADqcq?eCnnxxy$i)s2&k2Lo>8eO z7T>&fb>dX~jLo13okccCw%RVu`?(60tf->+E?@CS{Xj6!RrDh05b-03f7CFAf!&32 z+$~W{%IvACO5rA6yLN4rLf6zgj$!!McRV^Szg04y>mq2|K0h{u@G-L5>YAv;YQ;~aqHb&`_975 ze6GefL|-QH%ffi82@nR1G2R$9l8p17XrD7P>qNAjuyA3c7_7#nEyYaoj23THqu+%& zb7Rx_Uy%6#Ml?51Y5uN)^oR7uiQd*kj>>Lv28yiEl^YC>YQ&1QRzPg@TevPMj=Ec$(0PVo>Mn|(d?a=dF zUG80d=h!RZ4xt~Y&3Z#5A?=X^9o<@Pt7XBK5(TT8};QV>eY%Mm#Q z0W8MPq_Cvz0sTBam>Q5;?>pm2*s+hx53Re=&YqrE_|8^VR`BUq39 zc;CcL`*EDd^rix}^RO@r4GB4GZ0sP3%pOwZp6cLPy=rP|YHK?&-Ce89S2&V-S)BFN zt5 zPpTGlBAKVp;FThI>#$voKSodzeshBN#ppJ*6!)3?nw%oa^!&j^ zaW?huu3P>+DL6E&9Gak7GyfDB&DnO~(8YX<&-Arn>sxBPvM@-JzQND)eLU(;&Z{3ET=x+h@iD)LO-&?{5a#Lceikq7V!$Qrc4!nQaWa8BVhM!dVZXcX?X+FUP!wpZSaN_!(emjNh=fr_1@L8&jB5_QjB#~vaPY(3oAAL4UW%oqyaZ<7_3PVa6(t9` zejgwgwdYzImY$`KF)G*;qPWea#%eEf!{(Ka%2ob@T3m~)Q*O^Urj@Tohxtpe-UGX- zb=>u+!d!K=eA4dWqc?I{4xe)eChF-455PkY!gaS7@jt<&l|s4b{Qa=tX$YOk2=o+i zfv*P=caph9EAGI+tp(l#|B|WLV_5+J_o3*PJ2W`T7oOJAx~s|y)h0M7*uuNZ-Rj6x z#(w{dF~zD(+Wm$bvR?-x=6*t&0Rr2quVPR=Hc{1Q4q3f&G}AHZ9dAvLk}kLih99;^ zc9QFmM3ccO`@{I}loU2#!`(Hia*-2rb6YdZ!Zkbn;e!ja3t9ImYznTLiWqyYTs7%U z&@(Wwk?6yA2Q%n{2WJ(ij=;KuQ+&<;%t9lXiFS@sjS4=TlKBhAB*%9xCH#xB}3Y5+cT87@PDA#hXMdYDblbD85m{;WuZF;bZRS&wJ&;3>2VgSYNtylKwrGf`}0Whq%#3;y;>@o$YVO{5XZe zeK1#fdqZfAj)sPU{Pu|w5T5`3+I8H0$_1e&CMGg`g>pAn22-R8WgNfOjk}T&P%wF8 z?lg>o{LsC!50kHw|GzYD;+`E!LdgJlDuhmJ5D|_w%rNX_olX~)7zk`;ev;3gg}7K z9Xp(T55VWe+87P_L8cbOkArry0=I~&9y2724-bP$atnF^r_n&lMevhWGXO>5{If7s zhdErld^zvPvE!-t0s;cS!oXZzUliWpNlI8tI&z-<{7J{3q3BK*Z-BH1p!q)0$}CoJNt~A2=&!pT$n)daMyV3uNjv8H*oDy z4cHv07}OzeF$<`yz-YkAfb=KehipWHdAYL{IzmjDz(O88`10pUyRO{mdI$Q)Bv%a~ zrk3&F2nC4gdD)z$(;c2I1Y6DSlr@GXO^KJfu~pK)?hhU84v-fpupi9X&gPsFsMum@ zM7;O=hOI|vX-G^r?fiWQ1;+2@CcNFxxv#_mPV=M}x*5f7=J8IwgMo_k-6v;d<6!3#UlJ37EbS z0|O{E@mj_&mDDQ)S&G%Vj>82eDktZXLZ$OV#asOV)PReFZE&IfEvf)bNT9W;pPyp7 z{x1ej(iUrU6fVf}^75$N?r=vzWe`d@S1Wjs8q@SNCmYS1SHSdkFK=ucPH{f)<7BTr zMdnX+*x&PjbFO);=GEEL0m)HsxZTrtW4GpP!Ecu>er*Q;s3V05w!c4fV7og|?R^wJ z(XHboPNTVPpGup-H=yfZh%qkcF$ zH*(&TqCzi$S40df=}29Th6^21Y`a&Z|HU2SxH;0KWZcJk`*&&u?7UA!s1v`}Y_qTPBw4!j?+My29|PEo0V`b8);9W1z z6zt9h63pIbbLmoCN(xPP%#3Gd(Xa0=ob0EKEYu6m{9A1De%5^Z-3Y*Tmo~oA&uqI> z+oZF6wgB3Wj$XWZlZtQxEIoANx@XQb73!b$<*SMr?Y1v8?y+{_<-tIapO+_UT9Sze1ni;fN5k!F;p#a!tME_3TnRlW zDeU2wmGA?=m88O9T!=?jXdncb`VO}y?$F}m!}bG7uvC>DLkj_fY2QBG$+@{dV_Ls) zFK|2E(-q_kvx!j2l0AN0ho4b8Rl#pl20t1(1@i!OR(<_!ZSytxyZ#I}ii;dQ`XV#4 z4vVYk79-(F5<+A7mWJI!L?vy}*Ju{kSZEE*A1Nv5Y^ z9^Juf&wZafAWh(_i%N9GL8g)hT8^B84(sdXZ805%fW@2?_q-{K!TLpKa-% zckE#$BR8OsGE|iz5Mag#AnlpeYuG*CRRwWD*?gh`Nlmm(nGssrEvNT{u`}!=BcRxc z=dQteV}5=fBnV)oII!}Zr$m?!o0f1R6b5Gj$3sucTf${Hv!q1)O~K9socw*DQ{WH! zpTJPwJ5+b+fJM?%knliddQg#+4bK4ft{7}oPnLrG5HnmNE-Be4h@~dMVpR9b5(>xK zC>WUYsT4`DJAgze!7MKAY(s0Su%hC_hKpFzt*?QhI|%>+w4S77j`n+A(&^y^rQ)Acbki>%hD?ZOTpy(TCJpqBxN+bw{b0i-fS^On7Obq>yZ z@U#FXiT&b-i>2DyIxyzdwY}(!@X*^Qz$Y;k>4E1820k<_wJEu_6v}|Kp=dM8vHz59 zXrg6hYv{infCrCrajUbKYrUOyr2m)mW;TruBVlZEeE!>3D->h3YZJf5ynvSgnpZcw zq}xt?fJH|Na~b@P1bF_mP5TsK*}|4--)=WM^H9uP z>e+gP{mB7hAgjDxG+5$|U%%pX$KA^o``XtBvP4gBuNSs#{SQx+Yw+FN!=|KuX-1L~ zoiXe(1=97y!X5}}kvq@=VX(Cow9H8qF?$Mw`%@YE$_HI5Rrndd2p~h&9F#c$MlI}+ zaS%#M78V!R+Wr5z;i|*Hu^*rY^lNA~T|GQP#+L<;WwbY4-vqoxe!H%t>n@5ix5CuIz=umD^a zPkxF|)a8Dhj_y8Yb{dL62oxct;E|JCA8X$0D1H2}OgSbf4(ZoGk))*lYodPKGuw7< z)$@NWOq||wfXLc;X>uN<&ym#+=(UeSA600!(<4}gC$9PZb&MjEJ9h%3n8tetQ0pa= zDG0N*=%mL)+~m(1wkWo{UyiH&;tk|RYlUA<(PcQm zY>Sr|xB$Yg-|t}koZECSvWu*xJ@17!yqw_p{ouc)ldOW%w)`(-G-6|O6W=!a7BA#v z-0c}Ju^szt|CzR1bg=4dA-Lv0emM!!dMz~mt!}>LxM$3D4TE&%0S%A>E?ki5%Gbu@ zlH9;49F-k`zvlF`7QL!RS++$v<;7l6QPH5FAn1ZX-vpKv*9^_%FhDBlYyGRgzZBxV z^P2f=545x2je_`$KR{O#46KR88<@t?cM(VuI?(u?2SIg(=_B|9-S!1MW3K;)rtgl& zvhUx&lyp^;Bw1NWl9jB4kVMH!l1-AGnL;T<*&`t#E6EDkD}<1&BuNsoQfAqH$9X@$ zZ?F50=k9esT-SMi#`}G|k8ulL@ygsx=N6*GhGgltki9yWlIZv3O1y~gZ{ZB>?Mps> z72nKXrUJ}9F7z)w@eZ?;3-8xL{4QPHut&$#FiIXBg<8a$17wi6r%xg9bRo%swlw*v zAz!?&uMb%HHcD?aos0WhV^0W)-#DOs8^&c`OS4zA({%o%f%=@M`+md;rxFm0pf|Gl`{tj7X|PEOw_NFWdyUAq=n5$Rgf z*T+INvM|-RfmAEK0(YAC`exUKicokxRGf~fb9k&!)s9_*)L}s11dAHZdz8d|fDZ>2 z#e->w1LGMO9934z%&)F3Pv(Le0}3Dw=~Z4{soS4~ZA~didxmMi(ammJNC{ocROX)j z^JU@kTny66&ow>DU_Y`gvvjR+;h9dx`{<4~T8CM$#|e$-)0u;*JUidFptLxs-#z zl>X0q>cB6=qo<|ZO-uWIc$ks|hYp}c9JE-u64&mQ-GrnFI-aBpOVDW1?6~RSQTMDG zA4W-0Q8YFb9WlsA(5Z=MmN!t`*|AT^kXVS@TE}Z@y*Da~4q5SljIc48+Zgug>8A)q zy};Ca(uv&t^-s(bx#{k~Awoh}*a71r%=O(<#07+@Phg?mxw8(WsP&_w%-AOZOH}SS zHtVWZBh=Dk#|;?ecaz?8Jheos*2)>?$l=QP&Tn4(>|lw$y94&Ci)751spoKp5*(R<62=Vp@pht&|5=G3tAEd z1%)R!nja>=2n_{we`jc8984#`cw^tcpUC)y74h7RSmPazaAnAF!Nerk8>r-jfEfLF ztD>I3%_4FGpY&eZK|fPKL4&oYfl53Pxq5bwo+2%`?0N&<=5zJLZ(mXhFUzQ!=f9ll z^9l)iFx@^=c!&mTVrpO`aD8nnB^4DHuflf=J<)slO1FM}J_@3B5Yya`dS|Ds6ME+& z!oL-7oZ@IZ^zbQVapBg(VgIVgJ9Y#%HZ}S0+7Cn{>qY}(!m)`~&dM0A1Lvr=;&DmG zh=%9x*uDi5j<46Ns0tzo=RPkc;#uaHgI=Y+EMwp)+rAE!Xoh*FS zK7V;;dhpa(g9naq1_3>4HfctA+BB`hbPu0I`hRY2=HunXC`0JjvA{Z06wK4p(;?M6 zg2n%j3lJ|AFL_7$@L?+yAGlQT#M;Y9HtI}fpBg*I=i#1hbsvN@o@?vo7FR(X+I~L* zv7cEPGm~FSj~50ri{)R;{DeV*Do+9E&%RZ43n@y6jK=|$0SO?QFUWny_IhB~Vb(>z z{dm;bsgD`X=!Z=f-9WAj8Ny<-vB(z&Y5LbMTk1Lx!lA9qFDOWS&RuNPm(aG)ywbDx zZ=#@LFi-_3>^?!@aVg8dbue@;k43`nTSci3+a4@M8EFutk1zzDQt$>aMdUO!FrVQ> zm)r)xpOBMO$5Z_@P{9uXrK^ehLi>FUOT7I=@J|;J80?ZOaZA#5FO(%^LfLokgcWJs>DJT2>!yrnz-uDTA9CpdSqnENNZ+yQDy*582k|MdNv!~h*_wXwPR z=Ld=}j^DqhmEpOz?24h`bhovh z#y)~W<%tvJ<#9YhS-H8_QFzL6Fp8MJ10OdkCT6jbeKb~8$5Au=A)8vIYKVU|n z5~z^=FfHe{DDU35S(Y`3={_>D>Uz(3kTDz>E|M z3Pq0-!AeNaYH7L^7deOe{!+AZgD)npsJMY_^9I2Ar)ywfptrYlse5_FE&k{gcTmWI zUu`*UTiNys%aB#nGAu1^1m$7y`^9slFaj45 zhH)b!bpwQ;2o(r6jfso|A~FxR`h#>2eSGTRW1)YE23;kJ=OR#<=I5m$u>y(8>P+HB zvb^QVYvOV7k&#zq_eG;;u_-pvE8=Djer&AqMs!zvzE(z7PL7{B*H0>yvk`x5c2k;O zzn&N#ZpBmoxZbR`IL#xxZV(?F_?Po*GU-)*{xbjmPwPD(iC{K}hHwW7ybE)|f!Nqs zvplrb^YioglHtn3!^6HqHzAWx%qXuh7lF(W3@LbF9%tPd*ZOzz>kS*dCXcyr*} z0@TdKa<3V2f1jNip7Ny|2F z#;9{R^X*Y-Ny*Qw?^i(E0|_N0IQTpm%lNrB@Ft=ED`9`v)+W)=m-RZ;eCkOdN_*U~ z79z1o3j-EBvV)S*@1bHcifOTTR%&TlYpbgmR0#0%TeKw*x=Fl4ulcc9FN&m*PM_g* zi-^0t0n<071=J({mVxaY_sh2M3;)sE+RWX`&+qJceOm1pqSW4c6>`ZA)J}6Sd~|%L z*A|}rd&4IC%nne$?OKKXEvR}%+C=7Oy!N+53xos)UJ;4?k25OXo0*XZ$~H)QRvpP( zr4%O?oS@70WhxtdfFvT<95YI51NvAE5Ca#l7o-Tc_((c`j*)Ysdna6_&S)u!Rr{w`^x zsW~_@a$2to%iU+x9W{2|>(|t~c3o>{vMxl88>6p@4f(6PT*8|JSTx!DfucA+1B-=y zx&|*)f}hJ=GY1VFHeJZj25|+L9%0terdTr!cty|d7ml2@m4#y}g?g;`xVViSa`_{h zM0t|msGK_o?3y{UDQkdTT1tvJA$b!C0Ahh<2LiT3ILO14AQwcJst>}Y`e0-eiDa;| zxTIup97aVSwJGH>oPbI;yBPll=jqB88RwtBaCL$&#j8C*Oi2@@0hd#dbc+R_YqBzt zy?yWBSK-$3=1>Y@%)_(25cJD9hFUUY(wYx87rZay4#?{(#kpP1O*OSEe7w5);|qtf zRs@9gM%0f4=ij?5NMAj0u2zRJ$SWpfLg*{U>qCBihMf!=HnKa<_g1%WmZ!zWK`E=K zsm&7!(CNwHu2-CpM$&KJVsIHpVme_5wE_eCsI%TaJ}P6R;ImWhNt++Vlf7T*W_f#i zqcB}^o#}gR6{*b^FKYDz7llpbK6zTHctM810^{ncTXWA9`Rvrxg{fQKzq_080lyEu zKF_E*1_MA=38FjcO>^_?&tR5TgOq_v54VLc7eP(9b}jwf&J2BlkRjpwtkEs;&_fnK zvqxonKJ)p!V;eC;l?RAt zf-h^*OlM=IeXTGdg3+&1h*vm2bE7t^#B+%*vg!NW5~Vy8|DBz$2Ql=U*%Wd1`sY_Q zwY6r5JrHF^dO`yX3Pewz2Qh8Yi?tE6Z@3q|GZ&F)u!r>=%`XP!Bn_B3h@c0-Xl=Zo zT+Km$8ak!umfI0eS26D5@lUb1dNr@tc5D$SitY3ES}4X*H9?vKm`(Zcx7Y5eTH}~I zp>(|eNg?}M<+o)y+P7=IzF7LkWiAg}ErJ=3o8fV{+%b3@5drph^)FD{NTdZP>H`mr zn7)*ey}vt^R#jDvj9kTsBay%bmbp1Cmn(cACgEZ-nLoH0Y+cw%W zv7|=(7EL00s%&v(0la?lWtp|LHO#usGS`h(zu3wZKKA}k^<*=DElKVSy?8aZs#)aY z$9kF1M3dfhTW`UvdVSrnwTv@~-?-|lXQ9nKjt3Y;p=yM}$kp%+P2=^7%JiHF(D@D? z+>hN0GBjG2M=g5=^ou_Bv2`zhjdRvadI33+2RQZBHT&83gO&&8H-vhJ1CsHOu!au_ zNb~}W$2N#;;^z}wMqojy!EbyO3~A4%VF-Azu^iK2G&s=OC-b@^t>|5$BytF(;?+_* zr1d;}{ryKrMsPhDqIkzNH6g)Bm1lE@Y3tptIDn14w!unsu-XV#x&kU5um4vZL8$(> zQEm!Wf?n|{?y0!L=Vk6IfWC_3ioA2DMIIjTWgOSR?jP}ap#}#9_s7glEY5%23jgwO zx7+rY3CONX1=bVRoiHeiOxY847HU9j4k98mO)CRZuEIjG|C}URxlf7EL6fAff6cdt#|5FEz?$ONQfIHkC6f&5h|>aDOX z1hn{hiC`Oso?Hj3k>X!K*;VT6S%pPZLe@5TzJ?g)!a_)OuaLo!3D(l%4rshUXKNpK zA(83RIM_wx>Db97gVpUneUo|Tqd%_iaJfmpF}y`W-@E2!X85Pvyjk+8J?%vI;2Ay4h%X-e)1GuY zTi&Sf2Vf|&w+Q1rY8=>k2u_T!{v^8$E0QtE5w|BavXBB=KWFO2PT79~v{4ydnaMv!1XD{rvndQQ&*||dYVAP`f+-5MSQ@}v|sLXc@ z4xgU=wbhFysLa5Jf;66mL=1MMrJuh3Y7TRfx57biBygX%1Za!hHutmj09k=AN<2}f zQ`u7Z*F@Bju-hge?*L+m5wm$*U0n@sTZT5uRTUsPYR5F*U%OWQFk$~xN0}=a_q$H= zqbov3>>-jl0Bok;>d?Lh+G7 zkM`r{z}C49C>)jri06TB?Q9xC_eB1@a&=gm-N(n1Mji z<;X*(t#RzIjsW6@WM^omfJhA#*~LY2Cl*K_gJmIZA)HC}#W1&-LDP|Y^&}~Ed(YZT zuBKmf)u`;Ga1X`&zRcH?Qu+2NK@-_MnLRrFTkC{b8(&Ii&tKfw`+D7YSa+yEbLsmi ztIn2w%l`Gu{$uw(riIEbTS9I`BE_|0>i3m_^K!OMyjtU+gK`AM*>1S5@~^g#z?x}@ zzgjgnH#@e)MJKb{R$Ri4S)u2bW@b0wCi=j7015BP?(pHa61JUmL=uni+TTo4N-RsDVf?pBRKO!492D*qyl zUM%pdrOyGY#87&6em?aag{hdpux3WHQiTMUtZa=%!TDGb!UlvE-o%D^=65a-ryj;$k&Z?*^zZ$;A!yU zgz`6}ecJ~eNFi)h?ev4p0K~ys^eWnxtt9E{yZ15BuB6xz+4NM>u@+s) z``W#rwe_;_>VA%<%9$T0B_>I0^dSdxIK#NjYR=) z%UW|0XyZx^FxZAOI@56{b9;Mx3`$WzMl@31A+Gkm^&>hplEA-PRAao3o4d>{f{YPJkpHm*BMKePhgWwZiYs zMY0V_XEA6)%|USgckP0qBZ=fwqk(mjX48XXjq7P8Bq)Y&xf`ZgB_SR z;D_b7gf0I}(vVhBA9auf`~w>D(rQ>3Ej}czZ--^-itz#ex|yc*M95W8q=NI$5VxO> zE+06eeZM=xbAI8sGy2gm&HmmIvh8904>S=;8lM68Y}xS>dn036okE_OR{Ie1E$1Mp z1%atD`Y};c72oF}k%Dzv%<{#Po z1@YchiHV6_<6x=)X^RSd>sWzlB#!eRJ18+#;#L7I8z0K9zw9(O-9a86EaA0K=ju!B z2h*z+E@2X)4JjMu60;O)>BkNqe%LZ%##jW#7fO%re;3OiC?haQ8#O-l6<2@4!Ktw?X=CYwtmJMb(5wAvFhjAco ztq&48_B&^9$RAL7$MOTa6#lP3#&)LH*%u%u{e#RDoB&ufHRl_yVMjtxg{$KNUlfiH z%*PrH%j>NQzXS!TLV{eVckO+Q{H_Bi&$D&x^#i#+#`=Z(lZ3sbH|{yqSZqGk@N3J zZmNn#d&I$Wcmjg-+s88m%bs3=y)Lu^AX+JMnTo`EC8lgtr*_~+qv8eCpk;(`a={(= z)Mz?MClix#94gYov&=oMyD4${U^AgHv$X6&rqJ8QMjB?(2OJNAf~dW`yd*xVZX%KI zD@gGS&D<1;ebi(Q7cTdYV7ty=zAp?dOzFvW*q&I-{WOIgg%rrRM4r&kXk)*f`J4W(H<5~sz_?#qJS$8%L40vIFgq4f|CD_xbZ6Vvqv8&)yuN#zv(F1P)G=(CJ z)Kc+P&z{{?3(!M(Up(;JQGaI3r2+SUzY8!z1gKf?{|WT}W65&UZIk(PVTjdCPj3R% z3~UYREeh~#k<#W5;#y9(nx;0^40y|6SMtz31SGfQS*6Nz?)>>~>lPL<>*1-XR)R3y zp=-^cm`hKww zX;pAX)wR7*s&kH3(b96vZD5K;#@%H~aEH7R3-O@6;|G4RN?X1{UDIz5ZxVa`>(}#i z*<{=m(^s(Z8qD%Mk(UMrgrz89epKa_<^a>EXaA-B+`i2HLUAreVEplTxrq2FG^{=NPEqp#7q* z1{afx1W*5z4n{hwiUvrgES;59 zc_FFWdc;8zYex{Ws+N{XKpkg z;gleyL?CMNRZVM2yeMu#P{ggq+*!{7Y#17PGg4nf0&hENunp;yw? z{)DpPhSw!FL>`uwUd8(VefW6*hwF|?>u{<+b8U41G8BZ)S|dOZr2}djtqfg$2H)w-+$vDA zk}f#7NcCqPbgp=UyDv{SXy~S%-WR+f5OBfn9Q$2a+vi5*L*SnvSy+E$t~A=kIsfjTkn4v~~?1I46{fe2HAB@z=_@xJh?4cmZns1MX(y`6xsi_Xv{P zo<4bEUC_$_Y1NfRwPgk)>{$m%_|;Eu-%Uq)hV=yt6a_*~095_Y-`|D0{E{JYsytOegq(%1f zPpQwY18L`^VKEO9dH3I1>ucRFyMZQUR~*XBjARaWM={~G>ZryQ4kGCsjuMybdfY#_ zj&Q#9SZroO9=8TBoOFC@bjxqp;jRU&DxX_~Lo0jDwep#gtgK7eTZ@7;t;_QArU;Jp zGj-Z^3!dM7WgUh367GeD=>5Hx$5Z>hoDP%n_2y2cNa3A8wjOzx@itPsb>V*N-3%33 zPoJ{7hh$V#tYQx7URi}x3>M1T+AhC7cgWnnOWW}FEie6cGLf(VNC|xG_=H~$k{HL^ zIHN{}`U(6X%;q7>M+p$x5)YXSQP9z;T(;_MMBER6ovt{#cHRJJZ5H5iVZ8EoyMLWg z#myO@pYmz9bCC%{c(~hs20IPCCZ>7_9FYIRo2-?A;(eTTR8K7cfrQPr;-|=P=~ALq z#LASHr>JC{UOFf^NxQib%{!{Eqtwuz>`rXkK!yc}uc|k4XHhqLl+~CPfZ^Y3iy20u z=WG)i=dWFY-XA$}7}I>lJH&DIVRQ%FYE?SzY#uyS16spV8H8nM=v2B2ROb*Gj@Y(e zOB`jUhV|l6eKAraRz+bE=ANMag9Len@wrweNLD(B!ne!Q;x@y!0Lv3H5pETXLNVZm z{Dwp#G*@2ht1y^I@49SYPyt{U?f1oRpJ&A&VtK8|b=-aaMUy!&(v$G;4cL1GSKAha z8ayQ^m=DvE5z+!zk0x^rhwQY^)HBDZT9}wTGsDGKau-laCY0it-QcG<>$Ab?osLLN08XW-s0g`<*V?2pt%6St`lYS^f>Oe`Z=L)J zFQct~rqDzl78G1Zw&K{;4N9LEef5gCTKoF+xx#T7V0$9Zt|ysWB_B8Hix*?~im2&P z7{*CDn#o9ref>W!!2TkA7ReA$5x_KB#0^B)o_+Y>M~nX6bvCt$D?H{~c`!k*`<7y6$lPC~52Bri0 zkYJtziEVD`u2fV$@Qz*)c%MMcfOsvbc`_w=OQ)`bsds;jv-|a)DwKhL7eUJ-PYN23^s2ebUB;WZC&r^ zIq@jNqJW6oAdyN{i5c>7(@dkKrIk~N(KQe(R)IFiJk^6ZH16Thkk_&y{C}~i@6kSv zjxKi=yX@lfT9+TBX)dl>`{I9N9h)Iqr;lv%)X^N0LLY|eYTWJ%y4^j%TG6VL?m}Uf zGwB%4hue6$x+}45H2TpaIWiMxwrYZ)jq7rEh@@& zks$S#osWb3C?FaCWgo-S3-o)LnBdmP;R~3dUf8oE`MwJ~F0L`NE_;(aU2JZMOS;BE zYn{L~4+@0Jq23DH@poTd>19*mK7FBW4MT|HsiBp8Vd@K+-Sazh@k)N=^a`?t_Pn;b z5Z6itzPS0rZfnDhg&qh)rp$HC>NfSj(t}f$6Z7&^B1@N>z(?$xOlTn zw(GG#9D2dQgd4_?Mx&Syc~G*Qgev}_eGv5%6mvS6oW5w72*^9?t=_+GoFJJ1WJ9`!i+VX(>m0AL z0&@%~&EQ*TbJLkJqJ--&`ZZu(`26|v&hbIqb1=hDyFh&~aP*m>Zpxkd8`F4~Al_F{O;+odHLwJy%=f$9(f+LRVcRH&ut zhOCX4&7W(#aXwKN8U;j};I-`ZhZ3T!$uQ$M&@8wZSKC%CPqaKgf9eClU!dK7dj3U( z2Y{=~b~@B`W0vE%we4+~<&BuOM}+yMzJBe3+1;OtE_MYnCv0y)Q+5%wzTNWf9heV{ ze%KZr<^I6sBDlev?2jB$2n-E{WdLn$*R?xVovBT@4>7^)n>w4;X}2YSn(EXYBeu9! zKUz?5M-VvVs9v5+UH7JFst+Iw1t;ty0h`#{5L)0t^amfnfvjBlT`m&Kj}dU4FcKHI zW%}*<$uuPYnm7eawBPHgAS}Ysl3@1rNSXUac{~RhbtAig&ZvtNs^DAFY$T$ZhLj$g z1l^tLbMz52UkkIZtv6YjO&Exzt{R6AX6WAFgfWPRyUZMp4M%nZ3q|f zp}8eE&2i9X888vf+KKA%-n7useSAb;oDIi2>eORl_)-|rgKh+1#iu5$WdyB4b|?cv z7H3a1@1F~1%m`ybd(V+b2a@@f7T zG1l$x+Um`L>sU`ylY-L#NkfTkeT6pre8Vu_xV`-P!#M*6dU}HrhZ;*!=t_4}%6o+; z^Ip=hEa=5Um?+Yu%y1@73uIn*#ok~lC8 zl$EVg(FpVSl6?dQr;O;g>izdmlM7gHO|7j9b90&b7c@q~Qz7!t)~hVbVLlz^ z?v0wE=8dqh`LqePE%G-RgBvF1=o$S6B?Td%u!R>u@sB-p)+eLG(cGKmfw%CVm|M`W zoK68HjDCqt?@457${J;8n=zv0IU0}**A_*g>PBJyLx;``J^siLk?iE`e18+CFF_q4 zI8lwCl-wC)6N%ctvq1W68f5?BPA#^V5U$u{o_vV~mL?h6PY_4J&K_#Y7~1IEM|X_6 zZu#%z8TGPYrel6}gHQ1d6&?(g)R?qe78XiZ*IQQt*~Cl}X9DFW`Gx4MG7*pBqe>kH zYY$&|e)HW(q3v$@2^Qk8^ldV?hhD668_(3&*`jCxL+YTO*1G zQTXfXLe0S8i!F_j5jGKSf0x@l?lPq;^boDsinBJxtBvAhI?dGq>2HnkWq@%;Fek_P zyHMG8%D^^DnR^onRo@|)qO`PR8pUNE0*VYhJm59Skj5{#eNFtj4T9SY|8yuRk z6K-P{WNa+E%tZiAFVxnbL;Ha0+gc!Jv;0>|6d;?CHq(>S4;u9VS~rYmLC#KDrkLL< z&DK*_cR)f&0&<(~20a4d>glM$*itWhr*)@q+vq7Wx~aau3XU+iSgL~Qw>zv9Q9a1s(?DqO#O= zvqrM!seu_r)pratyK&*V-z^YX{?{?+KnNVbaD`^@8&K0z3JMd$dbFuk#Ch}rwCp?M zooV0)189N>Q2Wk1*XkN!Rerj;rPa^>{fTC_!M#r9bFbbEB?%@kdnofA!VXjb()5Xg0Pbw8BCKAsTxoU)ep(DA{ z7-S{4^raiAUSjrNW7Me33VO#~4Rha(yI5FUMc;w&MwndpoV%Z3pK=m&6CyGlI~Y)c z;dp@Hp6^uid|S&{-{5C1xUb=kKyow#^Vw|Pu{vP)Orm<4C~4xAdPe3F_ea?B{uswTg{C53J} zf_v#?o2tC>^)4!s%aTwrGXL}Snx%I*bLe-BG9pFfgm(Dfl54khEp@s;PA znP7&-Q$0#Z_+U{m&T$xwU>v3P=X65?gZBoWCf$YV1jX|7k|(*Q^D2tBIG`BTzoxQhbni@T0`e3~!+_j?nLb1PL<)hYEc z2dP}c^2aeTV^dS7cV)I4=gw+rXLdtaw=_PiLVANU2Ng|+SW%hC0bG3qPmst!I3W5U)eeqC1_>?S1^N*M%=iXSC{m2|0*0 ztWX*Kun}Mt&X@UQGPKEDg!w!M2xfU;H=g39cYzdbX;$59b#SZHNh@@-k|CFjbZGec zBV=S`ws}7&VaENU6=x6EuO+u9XRJ@(;P zpm5eN;_xmxgRT)J_yMjQRFfee+^EFP-$Eh$AFcQ!UOeCAN3@_QMH1VD`1!xW1yYq~ z1y-bo1E57^LGnzWAh(DJGE%WJ(0|ZJKO!%#g6-dK#g3i}vyk)ZUVzd)7AA0JluS%M zG^qY!QP7Jt9?Om&dq1UsjfzpXhr9bG(sMX0Vu3#M(_tAuo?}$G3>2&_{zP;#FW5Vl z?awYrs=&es)NqVM*krnLrN~Kj#0+5 zU;?0lM9cie_)8#4(-Lr+FmLd6fcY}~T5wI`j?V2tQ%9J}@#kMQ%amnvV$o!_5vY`e8to{aVg>spDIzBNH6uq9h>wqrq}-@1^Q zn##*-1GvC)TO|TGZ?A~o9)(>Amr6vro7d#XNOsq__Y=w`@f#QH;M4R2qqcBm7*glM z*6%+ICA>M_pFlu~iM*vKY@p#g=Za%v`4)#Sqn{@I>D=>>Ie29FzJx+?n0BqKtW+=l!vGeQ=a3|(hKBN+vz;`Eamj-RHv<*I|j+GQcuhcdqvJ^gxq)m0N|N zQZb46R&6iuPk8(o;$R+zz;XT~mqw2mTOqw3Wg-S(b#-+tmbb{186kOa9_Z=cN||wm zk?PS|A`|l{^~!8ZE=MY0n#|Bb^zyWnp^aUZqL+Iw8wf^oJV;IDMl=?!B5(^}8dxrX zv-a=w?;o`6Dl7C@R*x74Q((OR2M)ns+Ps-LiGKnO2t(!^tzek6BW7vvZCDqvs~5AK@!$+h9445ebL zj{K3I=i`vaaOTg4-SqVHTq7+Avc_Z+?*W9Zh5L7MYNFo0eG5bxXD2P?75LwRu@TWS z;)1+Py;ci=W6wt`6coHK@?BI`CI{AI`#AR{Ah1I6`0>l!bO`;M>^T7CIZP+ybKim7 zu<0Jh$&-oSs=*D{zGJ~x{U%Fi5&|}C(;_&G0{{l8@Sh8t{8th%!s}HKAObnHg4zpb z(q^xEnw&F+iTKs!{dnJ)I^y~}?!+C}DhtM@;cu+k8!nF{Sg;@_7u?~j`uOo*G=NB; z#)Z9!1lzBzG;HrJ@ZRFFUB_7`X3)L+N}z%qOK^edp(P-ZcNBY9g#BGiwJ$AyUu z-on3`nOkad7zPI6-m8MS@V!_ZD-| zw3itC2E&jyvWcLw0jM9IGBn<|>W0GykgTVyF>r~Q`h6%E(3ySDHQrivSBNg)%|MHF zNkbS=cQid%polR7r7<|7AY5V>O6y{8ynaBRH70}|tupt^_5Acdra8BKF@f)7QpWcz z24*GiGS*%rV<;Ba3XNBKBON-|#(iYjb+14ciNE;UbqWgEVCD}0aBe1c_FUvcW2{x~ zdinDB?8p(w_j3LtQU3(Cs>3Gu^63eM>zS}Tb^kkY(6eEMNa`XcBvr%~b2U;OOFWg^ zgWG-$vkh}$M!*jsETx`$&&M0UCwTZ_U@(jx=O5@rS;paT#Tsyi`8S|l#HoOw_;CHO zBg z3h6FRH+WMzNIpdnFHPMm{41i*FA5zrQ2#wpjndkYwHp1jmKkegJuxXziQpF$WRr5S zjIuuw{{eLzByFKi^5kO$BG*(Ck7CFV0xi4b&9I#>Uw)k!)1@VWDac8QAz`xfdA@Q? zShX^IY40p_U&7nAnZM-lS7{lht}ySEfJ`SK`MrfRPJm2S6OmYaq0^xvWmUQ|%7hsk zG~sZAk3it`pDU+w9bqQ@cY6ATku*9*2(WK?c$^}mvJi|^LCPMOD#vhQL^feiG&vQp z(O@eMrw3!6$m8)Jw(MYl90pI|-Ze@U7sDWsB*7T~>%7ja)XJHS@|J+cVra$bipol~ z@@GPsKQD8_kC?=xTPhbn-1CxC8hO+`yGmcGtZM`yPhb5zNtPDf6zZ`~~FMp`Ypf#QF>ze;z8b0tVW*@6xR% zcla{KUq*uG8QQmT`#C8{e!JN3AP1}L^Xqyu@VK00hPj*YdFnBKi)v<;u-ig1Vbsym z0-yUch)e;B$)K(#BCd#^;R5|dBcq(Iad+GzxSu8lAQq1E^8laN<5KM1JxUsw-RJQtZ==M z|JC`2Dn|gy7{tCC%PrsZ0IvW87Hxip@>z8;z4KEN%3ktKhvEFdTK5WOz2YxaB0+EJ z=nJQ#oXOg&&gh517D%jcg@#5NI^F~6QPNtX$ zPP}7#NJyiE7I?g58rKsn_+L~{uK5GRM#ll;9I54|)Z#Y>R7Ai8n_YH=HFeb4M6s0A zo=Gf@g;t3ZN2zzv&=65W#7L1Kgh60v_f0wr8(8eaK*#FZ>KN}Q+=%ETSVMr}ekULb zNW6%}#Dha$UU-Z#2MCp|_zEg{oy@|s+WT&genP8(W$h-$m5kT>LY8}0T&~ORUEh%d z2d+T<4A~NTl6gDT6irz5pe8`)92G(*Ozj+@W>|`GFDkBNBmYN$_EBR3Xi-bo$LZE@ zKTz%_6xaI6x^Vv6?u|KWJOs$tv$DV@I?9ObHV~H(?1nV}WD)qN7BLsvzGDqY+XH}nDAAQDa4ZaO%g3~irAVvi%9U$EW#C>z)(#hI|)KYOf z8Ej_UHOdhH=m3Hw`1`YxosWB$amcYEvjX7L`v8;jgAaUwXAg2L@f| z&Uws_HH}^pFwykKXbVM2*El=^=6?b&!tq?aWU()>iLhj>6yZQ~Nf@>xmy2_51gUj(MJB&MWhzG|Jn%;65OEIS zPyZ(iZWWR0XB;vD=lK~R>~6jiKq4*cp_zd3s;*2tyZkqC-b35u*HPh$qbN{I?-EPqlO7PS!>gdAO>LI2AULkn=_) zscU860{uMh@Yp18Ia)Nh}=9{e9w6XsQ(i+y`>#Nt~Jb5Z{~ zc`v;YF%$7Px7!74fa{9%vVlo{tKJy+Q~8h0@O)lLNeSj}fTBDKvzwu{(BRG2%a#m5 zrG=4xSxKoXPhfDcYlL~c!G6*k6Hz1V-dE4w;JGBc$zGQd5)^#S`?A?chCF*iVQ=y7 z;p=2?I3N=NM_buFHLh^7vNnQa8(0s&HEec3?uFOqq0TbPdr)IyP;nClKYGe8A10hP z_*#X>3;g}h$jQkeN&&jrnVZy9L;Y?8b|8}g(AVWB_75VDE~F{*_?ZG>I_WYNrj_xc z`=XetLeez0+kBVWnO*Z6Ab%R>ncY|9O6i(F7kGb2QY8X7$=S4gj0xMCKHS-j{sc8M znQ{|g2uuN%7Z+b!cL$(kW~4^_9&MaUQ{Ku z4mH|}2KjPWmeI&tKZ=coA3Qt8TBrz1n&m=lQg)F@hLutXby0DcKGIeR&o^{TF!mB< zK8b;KX1CK=`#(lMgcuOTQt!3-ZaMOKo}N>QW&g(oxS*;^jr@sAO<0b2Kd6B5I>m*A zu7h|rf5Vk9pZN?35Px44-x56*aT?bN^pTr!Z8Gd*ueKUeg2QtmNGPonVc%(48^>uv z(Jz3{HNh8u5->aB1S!1%W?am?H0er^QIGyd8o(`I<b>dMnFWGcu=l%&{wR^M-d-r0z21SBwVyG!Neair~ z336qcR@3MlSlST2FwipIoPKk!_>ggVnYTAV9M+;A85)X=iFr3V2PzH@(UZ_h!F+-< z>&1(^v_+O3-Z?!Qm!=fRxRMY+17$VXT#KFwiC%I8vbV>qO2Db8tUV5S5>&;Do>exk z=E1qcf2vm0vOBVjD$7#J`C1Mr``q>Bro6=#Sf7s@6cr$jxzbsB)u=3^2<`=Unb1a? zj^z4tcGIzuar)Z2_$>Hgf2Rhn7wEyTibd+lILfoz+N?;dfZZtIOS*?hr<5np&CNlf z+@60m5MbBx%2rXEpU)NAHq7U9gwXV&*7)gEN?@mf2VLZBMVU`2Jb~F-cVlt^2!oFv z(U%%Pta=o6B}Sgu&Y*$+kM$cJP%FlK9&Rsi)}VRMEWwz>JAuxTnD>C|1W2UOyz1;< z7VnB0V3`~n`tbd4o{rl4pVM8`*|ug6&(5vwiBhZ~Xkd*`R`bZq3+0QvgZfobvAyp# zh=KHtGobes+4qCB`OZ8a2ivECy`WPgtS_>OJ6w4zZVfD?ZBOrL5O^Xl(*w_65m zHMEy;S>R1As|_H@%!dH zT_VC^WqBD^_y9lf=j5mdXpQ#vzwsXTZiiU=;&VU4T%}+oXAF2Mjl5u6^CjK)z&jS| zD3V;*zHWX|(Z8Cukl+AHLJfN$f?Gaq@5h`Iw4sgY%^?SD04+f@(AvGsCpoRGN zjpZl|Fw(SCBDf7VJ!2DkMn_K4OM8Cghe4^+RU`xawkl4F!L)Yaoid4(*p^!{X?J^v zeP?P`7QjV%`bUpqUUXTFAD4u=87{<$#uHCJ0Efk_SIqk3gT|q5-OYRIUO}3Q9py6q z<-qadr7%YMUCKad)lRH-p&LRE`gA|kV>tlb*?iNUjAoXL@a?{C7`W{S6 z16&gj7%Ife%Lr?tW;unheZB!IT6fB z;#{JmLt9@dBd`{H(JvenBEa%{_RygnJ9g)5iFm3R=(c%K)uf!Py zMpaU^?(y`v4>tE`Cl=g^(chuUG$czmV8{SCVAsjjHzvYx*b7aNIc|SggOW4o*7V(b zLl}Hv*Z`9>jC}1ai#gp#Va+LN&&@Wkl5gWUeV94VS6Mkt04_%63WP;*=Qz;FB$nrJ#EN zOpj|o3hLE{ItSKhq{8Is3P!`REWK;#kJpBNlE$wug@H9DjKNA!EBsT$qJ@yNXFNs~ zLu43|q+TjLAht}H{~_c%f@{krd3ecQb~}+FlPJf5CU2+zDGpjfk5XrP{Y%MiBD@P) z1p~oc+1WGxL-ePid?t7{BC)@Iq@AntPa)%&+s(J%kHZzC066WOICKb^uvT#D$L?cz z_%>?S3u)^>Q(b}`v8b&!zSLn0A-60e~BG0?d}h`S>O-r|g6wG&Fb;aRL}p?F|_M(-y^m{kink*48xM z?TwC^-A|r8f$8qaf3N!-rr=B#ZTvxl9`j5v`1h84Kwc((fp^eCZ z*!4%;D*xz}Hj%>U7v`<}6uFXkt)Wjwm3aGvME>o=aMMgYxiPS@E`x0C1k=Yp=WN;&>02WEpDCwx;{3vm`SN+dS=UKNtq2X?H}GRUQh>V(&UFj@ zKjKVr+yg|MH!AR?0FK!07D!tQG8m2;cNJz|2jCX)c-ghF>WqkDDSinFH{2MWRg&;< za?AZ@A6T?|*zT@QF{g4R%67wY`~906Pqg<0@6WbHHo0=7H>j`(TKiOSIdYk~=pJI3_Hj!t&P}(it$I$T93sy?MicB^vRNep z>_KF8Vn}ued-*5Mj~l;mvX@TYZN9omm>N~p>D#tUjw^rni^pL}2pW{YF9N0jx})bS zYB+q^Z_jst!vVV)4DZk^+_qJC8l9LpGk-X+{$-x+MX(^`IL6QkVg-Y91ndItW0yy7 zLnG%$6m&FIi$8W`Xnz5GH?a$|cTI2;FnGb~h`0;1WICDWRaHS7a<9CD;~Z;EsYzKV z6aIIo0%1;4E1ZR}4iE!e7dP`k4x^@)*Egk=kvf|doB5G}^c_kwu-kj=3ZKvp3;0{) z?j9D4!DI?p6<~wlP&3Bo+I;BkQN$!zm`k#Td?_Y#20eV3ESYXk{ChA}kRlhOMyXm%%XzY8v>>@aRh{R@zx3q%*2ujJ4=N(hi!5IXRo2WP(gNx?CB=RyY6q z&@7=zPO35CP|3Hl>{9x+ky0e$JN>P4#a0|w7AsUbIQH)>t^eS z$MxfdjIyh1YGW{hTnr6f7$VPy7COcT;g*)y5w`~jX|f%WfAgn!*w0YwK8u+gsl zUgtpSo;$g*6xub886Sp#^E++YpoRc-GBz>s4?;4AX83yiDbd*~Mc*m8BjW_x1Q5I` zJPHXM|L-RKlp<({6W>`Bhq6l`$PSup@Zh!Cv|dX8C2{f}J`BhQ6k8ZxTvSug{D?yN zt=Uo1cj$q>z{hf}d-l!=e1w9M5=#JV+$v96e}cTDZG6vCJPxG}1Vjp&r(899)Q{n$ z#d-yK{d0-q6`8%WO0>gQi3Vi76qq`40mRMUh2bd_=<>5R9u9Eo*D*}ljV>661r|AQ zk0@sk*snroEyn>uWpZ`XvCxSz&0*kCNcR`}l4=NKZ7|8kQ*Tr0=>`5CxNmmf)EFlW&l^JduO$m7a|;cE|Ca+fv151 zBCufMrDWj;cgYcQMgW?u^YKzxD><+ptE#HvRlpbJ5RLHVpix3r*7AaJruGE1<0{;p z%}v!&{?VX>cUxa|{>;wxE`7AX~PJMRo3&fbs-UJjk&0YVdZJs;Vr~sVP+!_ zVwOR;?ch-XhUnPwE_162tT#ZCBZfxC#_9tMXn!Ro7XiG(+iX=PJAshKfzk>b7?M@( z2M}p*e-w$Qu*;D7I{-0A%@N@C|El{Ae=h&<>pQ6=l}d=@V-rQPvI!a4H0&9oWh*O% zqU=&6SxG{6MkJXHWo8p4E1M9W^ZEXs-~aGDy?VX!%KqHe0Dpj-pvq(-#hwrb%j1&9bLdpSC zv(FduHxaJ;{nNFN<8~~DV_HXVRk12w0jSQoVn3R4sL_YoLb9^Hz7C{9#liA_R0#@9 z(o~jKR^;kT&RKRIRwd-UN-lqS5{^cK6#LN}KNCApkd2j&N?=}fKb_U0dN6Urvs}=$ zwC6>nxKVi!Y3Cli?87^;3F#|$!+oi^A4lG%&3()B`9G<{nbf5@77okE_+WJgjs_R; zwEho!rdLwV6F}Oz1D{K&fWH_0`+gwg4S!n+lt}U$BvE;^9^^Mvcal#G@_*`W#vuFO zd;j10usa>SH%pV+?R{4lPJ5MPFQ)%+F2UgBfFo*B`=_th@-l;<$=C6PLb(U30>0@R zQfzEhg>w7#ZX9@gfZGN9iyNOwKDS{U)^oNg|*z>R9b|P=}0--A026*KV{n zZf=T{UZRY*r`?v4&R|&$48GRo%i(`|OH3}`ual>Ozv;T){cRvav6Tpzu-|V37=D{w z|9BKuDdhYrvQ1hFjd#;)C{3cm!4?L2} z-lXs}scM@Vp3%P$C!!y?GbBMgt2M7@%9&X{g`p3|bU^uXwWN&0cO8_7h>H{UnvH2R z_YT~VZVI|`^cy?fJL*(1BXwX%8wsYY6%sNa}B4WP|+)72fC@iB8ll_0uPBFV` za%4sGR50kO1z4^lZ&;iq%MP!&N&bbMw0qGWA1Hcd z{l`w=>D^B4pm5QUk-dP)%f6UC6=-pUKM}H|@S(Xq4M-SsGQ#3PQbNAcKJ8iFs7-Nu z`fJiHru$H)Hkpq)J2qrZz4ZG#SchYi996QL>~GHMJzX_dxrUCd2~e78)6+AVy+v;0 zr(Ax4x-7TYhJfuVi#vBqSa#({)e0;uhzHaYbo3R+aw(z92e{+5ikZt6>^*Ik{HkpA+l$Y8J7zL8VFXWeq zWg1ci#Yc%_&9X#p{gKdmr8en5aeP?ih2-Gf%qqIAfuRh1A$p$m{Wq?B2$kM0D$H~r z8~wGxa4!N}rfXaHbyBLhDM1F~UFnGQ{awME>t?1FC*#FEvK^niDc$Jr^Qu$6=Do?= zeTnJR2}vGmy)AGu`Nq5Mq&8tSvBil|cTWsANjc&ZAcHRv{z?MixSioGX_Y(V z{)dv#5psfvD4u6I&^V6qtNHTdwu1AxifFMwc|fESZCgTQ@?q;B>wnaOH($S+_%>Xr2eJ%4sLS~ zynFlKm;4FoVn7&j-hT%`*iEh%ri|zP!>yGkhmq{pr-aO`thFj;H4Lec*71Y%y4b~~ zizgWZki5{x8l6C7_XQ7)jWz1&!7syyVQMdRAhb}9OWN)2C%FNCUVE=(!tS*`ah~Tf zWE?Zr8mqa`0)fCz;pfwxH*DHXMfLm3KDm^e{LQ1(Sy@?=;*WO)k?Iru)+^wqtl;%FJe^I*WO**oXrS>ZBuFTqXR) zxO(u{h}bFN@Iwh3H~aQQH(&uiP9it(W7Z4asg;%u>v<Y(1 z&sS%EKuQI}sM?{KqD!GLyf!q{H#E>Ofs=!^^$>JoqJ;%Yii7Z) zfikH(GqwnBxX#YA&|x*)h>we7=it~+Hw^QC$fd{;LsR`rv$o{D^|FfB9NNw5S1)>u z_uFFK6((^@lfB1%R$NDGpf*JkuBoZ@C7Itfq3_{42#n&!($t3YFB*ATNB&GG2GPAp zO@4Ag_Z%hhEj>I8HuOqLln+z}3kxvyl{|Y!-pzs~9$=w} zL)KV<#O`KHe7rH78qhCdVGxq%aptidJE-kG$3ZhOKTx$9!Q#X_Y*sTd#W4oWcxK^@ z`g~#h_wR_{YZo0I#V>Ukn44GjTq|j_$ebJT+h(DD`47wC{XTz%a`KXUs$Fim=3*0h z@F6`Uy)!6xC*V3D{Sn;8L7)HjFh!ZuP;J!NSD%p(`&df;dp@i(=nu|*r^2bza zMPX89<5ce5Dcsouk8Ajg`pMk*g+m?Bl%ApCPO51PuDzwAQ6DeWUQ9xMt?(4ck5p0#h(Lf1XP~;Ix85(#w~JNhEpq=mgRo zpiWS7KCByp4$53h>&w@A``lZ%;>)@hFLfWI0Sp59S;TXm{YRLXn9%ge@V(>W;el38 zkwhyYc@*Y+=ExI=72(N~LvTVtjE0`RexkGwI~`Sx)pi0Kg)}5yEcorB<~D}sC;A=y zf#-Tg@D^B3e~!O}UH>M`4W-y{Us*vpDJ(1uynP#GqX`Moh#toKd}r7zGaeUTSh#3y zZM}Q9Hq(7*|K`_)m?A`6c}*C$R_8-i$@W(;iTWNivWV`3UUPIw%l5qAJhUo7{VF;^N}-f zA@R#LzkZU<*-oE$5fVMj$#)wA2LG!CK=w3E013);P<3#TF*f%4^2M>R zpa82{M8KO@ZlnGE^Xs>^)zol-xnT?n3=W1K#i1qLZ)vg^t7`xcV^u$dh4Eu0qMl|C zXPXkw2OIz=)@pJrQCrGR??cW)=t)~(}}Ym42T z`6JTg{O51*v~BzF!3MIgzP>*E_RGsnFEcYi^Jy%ad3i1SuHCbBOnv^GY~~pfG7Ip- zuXX&d;J2Yb&ch2D^^}z4q|LB1)9B?N$@;`WJ%Jtt$Vk0Ie0MW|W0ardloSxRfMM|l zJlx?JU~{FizU%s(=;(c52eYys!~!%hFnp^^GBk)GXAA(+h8Q2WlVVatog+T;A7z;` z-Lg~nr38+Ls^Ij1AnXlYfE&HDGzB3ILq?4BXf1#ag9Mv`CkGV0Vc#G9{R@M#8d1kH z+6j`MYiuVmIU`y#zWaIr37&Qk61?BCqwDX#uDFZ4f?WpRZ-HhFCpx(?I#E($Kpm)+ z4m&2pE)se$y!M?~oHaCTgDcv;efzdhRDm;xVb5+(ZfIrsA375D{$n3#CZ zie_oQ+?nV0Z7sN#B1jA@&)E&@PD0>ML3oxwL}iZaGAbKwN$Wm6 zY;;~(Iq-A4vr!>zxIPcJ!VZawK+wWfS66b763)v_L^pB?=?_5kyZex&h;NU?ro^1g zOc$&a6p5`v9{_v}T?t+hF{f#$xBfx;0XPPxeE5c1vKqW}PzE98EFJSAoG`FygQ)L6 zf5u}4%t-}f*xA2@&vf;q^M z;9mmt1Q!f1IKH`@-?}s#n;D7L;A{uHBw=N|J&+>fKK^Y(k%1c(d#_s3w-*?0JpS0k zK6rrLQka^x*cY_7p8*Yxrx!c-C*?BqS+k|6Uxrf0udATnb}$PKu$x$ z!rEFD3?&`rew|%m2p!0TpFi0~lcN~!AP-|7LpSNPx0~0=j)@I^;}$zZ{B=M`(Xq@_}f>89@6}H>{xRV z({~v5yNjJP)pWR*wI%3gb-HuV?mxCRU&DN7ZmqxT8~pi^9hL_Hq!%I=?Nwh)B*I1% zM^CDpzP>(UT)VouaCgEZnVe_|(5a*(i&e_q2}KraJvce!T2uufdlxpLfQwsOKiD+# zaC1vaNPskh36|&e>qXO^Q?Y;iHda{)i>?9(RAVHRpt5%3+Tdv;dw4#6toAZi;D`W1 zg5XsFI%pKd$U+E}J*e|LObVso`A52g01OZTPoC&gQ7EZgPWr|O>%v1$g%(x#xPK4} zV23on)5x)1f>mAC;OyDh*x0i=I<)XeHZ_Ipm|^c;_6KJn((t0-1Nw@i(9qBg)SGuw z+g%c*5V5$%F(Ba!*=u?EDb&O=C3YB+;0B~SO6(9s78ZNJvUb`+ zqm#zA&44Bdl7BfIr$}ei6Tfiz@_Gi3R9~rv`zrwD&38>Ob8iCy(Qrj?@yE6k?(@8{ zAKg4WAYO*Farl_q>|NAtG})<0z*F8*w;k3kMNwg4myL~?!-kxloneHksrk0|BFrPe zZVxoHr2CTqJ--MExxTWJXIOS^XzP8IY9S;+WG5xv?2(F&jfHo;&+6FEU%#+4rY<*u z`_$Rpdv^HlT%70^$954Bkyj=q!lI%NYOHjHP6t>H&%Eo%S=StY+m=TK-W_VF+@d@R z0_O=T2L%ED#I^(b8NzNvTkOS$mzIjv7A31Tp+i z*X)c+Mc(qNpX@JPihkZ zk@NCpdvh~90Xv-z^89vP!Qpo+AmF#F(bcO|e4H4H!5Ws7W^+i%HM|cDJtWgOG`9s7 zq9_`0A5frG($v({3d{H}64|r-Or$Cu6BB}JyU)PtHNes;Afn5Jo$3*ub-XM{CUOPy zi$^Q(_N}ZS7^ghTsdW6YU}?sOWD}gFn6(TJr}=HHV{|(ioJ^Gr2h|&;Ps{JN?(r37 zar^4{cuDMU&3+karK)#tu5q}!eWxVCpFTWleBf_OpHN1`?IHQnhQ-_zb90%ulil4N z?zlbb4_jji9h=GD>>)&vygERPwsyaJ2h0ZuDI9u)cb>@C;f2mw*!%BQI%O|uGu-KW zDDg~ZynLl3$!m>v8T)Q~D8IFcLve3o3VD)<=rS8YfUbrU?zM8a@>uiY>~}X9NMe^}6Y=Z9FEHM?yWv4bMS-dywQ24SnAj!NxDhNt0otbBv!}|YF;cNPy)$VaC0n7|^|z!s@2TLC z%Fsw`TX=k^ZU)QrDv(E=I)yDv(5L2SjC`7&`qSS103{%@Z?t5JSfgZ$SP= z{=;42))qE4A{O!+pR3|A{j{~VHYhgkQiJf2jFEmxxCU=_lrR95C}$VP#t47xoWZ2s zus!b$PP~PM1;T#^gCK0ep{7jId6AlW$Li6m4av?6Wb!O6Bjaw}P$UNnLC_Kkw2qGB z=nk+$hjpLkxDc%ky`XD(uCkY69@0Nq{rUUN-QxwFZ_A<|D6vBddN(W#f4e}}Aisl8 z7NTTt1$0RehN*swsIm|d7iWl#xhkPa_+z3KWoNf)JIq7plVAEB@*)hF;{Dzy&62*2 z8nziiafkU9{=g3ouSOnVX2xk7eFM^@q9U;*9e^JO2IYt}i2aBjl&gkL@7{wuHF*m< zhK7i=n_gPF;^YK_yT3C=ei}Ao>o)Cny!TczP<5O(WfFZHnl^)sO4o-@f?zEcP zxBjLpAYdSJVX+N*T44r3Q0zw^-DySkJsoXr*GfKvh=wou1-pLk7G%DM7ZkR&|1mT+ z?*6KyZ8m|%daO+jj|mLV(GUpxl=hAnPan49;!@5%HvvyQ#Jt)FOLf^Js2Sb0$gyLv zLG@Xf2e*!46^Avei0A9lxQlLXJA+%!nXO+4Q=(19u=e-v5QoY=a%jl&=k$Eerj<{T zZv!X6=jeswd$tqAJ0a@Wk6ealSQa9VvOB(fEn{;xKw6WNyX)^>?GcCSU`9*c`Vw)?GLiS2g(L<4gbla5+bJ%Xc-4f`=5q|z~ZPkcg>-~3?aFf7E z+tt;z72e*w0``|Le`)f&XyZgfyyK;tzD_BxTToH4tNhRj_#|M~1}Z>iZ*y|AE98X5 zI|CjsPWcVh?u1!veDukq@%Gnyh-9! zpoPftG*EV&I|aKY(z1NeFXG5R35M7FW^jMHxZTlqfrmy99F2JdBXY`896*K0jwX(dv_Bhk6FMFj<+I(TyI)sn}Q0?TH-e-8X)8`|0<>(PB7>N5|s*N(vCDW20h@KC`c`Dn8bf2D;b*jkMl-V2wM`!*+C7HleT;TiA6d%#SsFu{9E@>hDu&>F`l=(q21dF#M9!_ z<^E0I5`o{W?+vu%;4_@2XVq2j?B2BtYZg~L|I$+jMM^F4hD3D-2C1k}Dn$I^!*~Hp zc+8(zK*hYKmO_*DOO z?+tp2cTT}>uC?j*^(8&O;QYqRU+KIi1RF4@(=d7LAtGX83a&qhz9tvFr=MmUf$dhv zY3wjvwx0|lQ9Xh+1;S+!GACqH56iLdO~YAY$3!Qg7k?`)gU)YtNjzS{0iF}u+TkWc zQLNTrb07;rZXbNyuqW(w9(t^>FfG=tw+8?G$-O$Lh-5%)<{k>SYo2QJR`I=Nvk$%{ z&v=>k?Q_BDfLlV&Z-b#Jadr8vWH26>zMRDE1jfzH&7l}UP(N@o)z;Qx_NEGe!4#qn zU!fYqREIGLQB0Bjk=fZ#lLL}*mnJKR*4|@rw6IUj&ekGq019AsND!ZDqesOVFU<5a zDO=e_$SW&z9X=dae%ZJ3 zQs5H_=C~^e1oEhzJuj^zAw3IZ4@ne*Yc%QL{_nVN}+n>S!sNBAk%D zZEbGQf5L(>Ke|O-@3ydrhzU3YbUAn>(;hQ3B5Vsq1m4hU7+yLISD^<6D3`ppDvHKX}P zCebE8d-0;cx^5Q~kL#2Ku4BW8RPzhJ7CwC%H<~c(V-~Bw7=@K=6B847xkGjvsCdoY z3f(z9!qEs z2?7M?IhxcKdpx|R;Kl%M!0}Iqx1hlLBjE@a76AKLGO+1@;{X=V5k`fE^@ETAJb5Ht zF<{I{4b}WOOW|nJqh)Q)p||sdTO*yHpPz=t4(dRw=A6Wolp(-vs6Tv?z*h2TACmK;$Tn{x zi28sXAbPJU(BU(!w0?*A$^o;bZ?CiubUjg8c2&l0eDVwUm7>3A09K=P(U-d0# zs`4f`zaadrrNS5U86_+{E2D4t6(9WC?fpda)B$zQsEN67+-E>PJHCFMwsoqMmGhR} zXnZjL>Qy`tq`VFo&L9;{)^Zzi7AgblIF>rr_o$kW0e@}zFnOiTa<|`ky|3+EitDTj z5x%vXCG}K7J_L*`WdlvY(1;P(H&SuqWBtdE-Q`{`sJW-ieZmKTRpT=B${A=db$LXQ zSpwjjQ^~@{0`!@gnTc|KPgPP1MPkE>d^zIeu7AmAI+mFBq1>C>#7v>D^*VXpPZn<) znB&s_73j>wtij5YQ0dxT_2n${&c;B2n?cXrEi4A0vR-cxU1P?hT>-%f z?){A~!H|dGFnFgKPqCQ-cI{RRP4~6TH_Mnsx7IjlpFC;(rKg0iflrQg^}L1#?2bln zdHKHjX>sb_0htw`$LM8Gq39~^jS`@04r|p=SEW=qZ7#hqD|ldS>)7@h#UaZpF_X=W zdnIl@lllJf$bA+4GiN#h3`%vJl|0eb-tPPUSLu9eL#6+h_T$$}gIFVVo6HXQh)5s0 zf{>wb^1RO&1Ozu{b=mu?T#HA)&yvH5%Hw8n%pd#T<}PXd(ckPdxrN{T_xO@#mF+lp>vbbDKjTNTXpTCCRl$J&vR;!Oq zsoSAuD$;{h6p_P_b3I3%3m4Z3e*W=WRcTVfJ?rQ2JUh_*6_=-_WIz6(f@6k6_1=b$ zLS9)%K1t6(*rk>^<$W<1XEO7qf%QE)bY$_(YKN#Tjl+$@iF1bYuRFRl@oX+?GYlS| zF1eVL)jOU)+_L}E>4MLv3pNoR&aA;(*6)yTh^mLo!^zI9Y(0JTGGcRHD7J^O{Jx!!C~ucqM44Dq9G*+KXl^R%OJnW3z0hW6{@ZK z>dfl>A`a!Kjs4)GLFbBWP?&8VtlLI&P&JOx<5T9zZ8BdhLP=Cl{`$9m*XdZCuX5>3 zv64A+@L$(or?;A@IHK^eB4Ny%SJZlTNo?;mYYj?)m>5eJ-$zB?M7=46DbhpL zvGFl87UlKWnM;C8w-LA&DcgC~aix1HnjzjM_N=a z*z~3Q4x6-gb*=oX*`I-FGstY^{v_~}CG(T&aHjP<>r5O(yR7H(#U0CLM4apoPI!4NR?7XVkP+|oo}o7xW#*+eYMX>^ZSnwbFyz$s(UY8NUo zvwkr&CW0#9>JEvw?wwb)8ty)Px#RxN5&lG$htbjDy&F7_o#tP7WQj?2{2=>hjYgGr z8Ex4T2zlE7SgDwoEpqFa`mW~#5c<@423MKLKlx&>VoaQ2?AE9PsFDPh%oE`fU+Bp1n?@pBR$UY~4`5q5>s0{4d=%6lPUe>iK0&u$4R%8yhZ*lQwS#g{KCTClpvtf!BFB0+w>Bc3xtw*&_` z5;E=G_xI`cuL z9yysgLF{eq3jMsqfW$C~RU zbE^F*OD6 zmEAD-#sUT8w%B2SCfRtZ&j-EuX5!8Dg}AnXD)Sc>2`61GroUHQY3N9qtP9bhRQN7v z1RN6{EpKjkP~2jJ|GkNypPZfD2&?a-Ym;NFFvpNVxcx~V7UEgy^M~qb&r?$mo^bwv z>)hWjXW4NyNj@SW!DryzCXnS2ZAEmpi;MJN6#_0{8>{^{j1^GvmMaX*UjLr z2b4H%?&!B~X>unG73}4{1B9WXxE&OP--Hu;90dh2r*-u8k0adVESE~e#@du0W)m?n za*t+K&ie?&hKP~~;a~Nv#o-)U7u@mL>oeOD1xYpIuxG#;59Hh6`mSKeAa7+r$Z26= z;pr(6K*IEkh7Y>%nVhqt7cQ)U#HS*FGdcp}2VQm#f@}y|ce6;>4_>7X4XL+57t}nH zl$$gNjS_C{rq7>YPk?y_RCfKZ2&@t#Ozxn}brDD;lJlJV``&^Y$EF6-UB3a}tiaCL zEjVU~h^S{?1?UJg0-=_cP(e|K0S$PC*cVyZ_31%q+aAJF4Ht}T@WGTxNqoipX>IL- z#vZd9AXi%2fsv_7$Bv_Rc6I?Ih`&RU2Q4k}`pe4p<>kD>8JCgafV-`zhy$3LPqR4O{BqCfV{;Z`F{xjABK0OSwUhTgBZY`BBR&EKcadvYV(hzKfM(%1!Pf*YbbXNzZJ->of`!9H4j^;!OuH|0Bq|CjrtT51< z#amfS&2+?#F=g>m6hVNB#p(cLIqZ?DBw9{ZbwwTOn;I_+#_+h}BK`Q`{!c%2|MvC4 zt&v6-KL+hvd6TZni6}lSrzq-DR_p9a{|2fwJbVi4zmP`&T7b^d4-5WdV@w1QLPGKp zOhs^-e`{+?`)2=HQs$Qfmy50VLP( z5gVl~V3!E_9J4E@E$`jG2V!eK9i1n9cyWfld*$Z`;zV4$xUo?kSvlZ2ZG=rt+L;a< zh+Hp&lR?UQF;-Xh?|;zMB}utSODhvLML6MydMSwEN1w*V#C4UR;DmF(o)Iz zEUx_|A)4btLiL}?mb?E@$U;IjXm;+z3jfWU3YL~^6tn>Z6@|{k=K+7q@2*l(k_oa_ zAE<=KzCBYo1NsP03C&g(Wg>`e=fVQG+3C5t>TBLV8z11*gmvQj!h~S|JBPGNHSlaBYc-nmDp z>izCL%~GQ<=YDr&IoBgu4VG9jp_${g_kFRui1Vmp;n1O{)j@un2?R<22p&tE(U84Qe>PpYe2!`;}43T=Mbw(%;`7tyy&Da>te3 z5gW15(U5lGpvua;u`ll;$OZm0uMm%g$S#5q6)glM6F@?TOb`-b;v!;Uj3nn*qY32&x4IA?w9;c4oBi+H1j?K`I{c;2HKYWFaaa@#^Ue}x86%fFRmx2zRa&8!1 zBA#s2!{WR=CTY)U*nokac-OsWJ4zjxSRbFw*qf>iWA4}GI1R%FxXqUOEMVFSt-)c+ z?$Zf{MzBiy-0~%fu;Q!6siW5d{*E`vk=e%*8+kV5KauL8I(aB)K3Mk6?*o=GZk3HLKfTc$w_PRp>3d<@H4ZV zqe|U(y_`E^eADH!FoWpUY$1gzAppY~J9ePUKnDxU7aZu+f$Ce8p-&jTD$$#3Fu98= zp#1m)^^UUC#osKwj|`04BN>R)TXzpAe`Aqy$H92G{`fYU0{fx4aMq0zM~`MB^c}(r z1f1}Mv1(U(dky$+0vm%T*JheymTvEV3AdC4@+NFvkk2Sg9l(l#x-s4VQ~WJfkQV0F zn~0Z=FDqAlf7sc_ZBVdWzMHpNPMy!yWDw(bgz?y;SK6Li0~OEPTw!Hk;Gw0uN3#=L z`HdxCw}{5CUumJjO*h1KfYl{E{S|h-`}i>tIxax(2vdN)2X_Nl-Lbw2Oej*|bn^S-*N(M^x}+6qfIWHyDmqtsY>;b;#> zz`!)wG#)W3pi+hupPhAg9QWUl&s^%jbo@au&ud4k-I*#|8{*2OznBx9uK@T(#a_x7KUrzw)A zn`=TPB_$JS%kG<8mOPOK8P(a&h4FskK-tc^8TjEDOF7;PaBo?Se5UES)Yu}(P?nXP zH;c~#i#*AR^~Uk`lFNMuXSFkauJ4S2 z&c-2>b$7$BTCN=GEnlI@_>Il7O z({t;>rOxk{o~%S&s~#>h_dK{Qc73m-z5Uv%b+N+w+`Ok|lLAN8rmH!>aMm`l!XtGFxg1tK9cfj|6-tqao zH;Rri_{w*UE*Esr7RD?=F+9^yW{h2@Z!V$Ss%-#!e~JHThON!az2%dI@Q$M$4Bn4%)Mmg zWVFrCo&gCvF%XdwF~4CG=OKBi>}2$OUuEGut?CT`I1OMJR!;cnR4l*Ptqs@O8(QD5 zf*f{e6QWst@wP}yuc)w4mp4Yx^6!>W_SB81;=cqbHxcjrRj-dFr+D=KaU13N+T5(j z6rw=tRdP3ZAnHBwVw*cxQ-`ds)d?CRLyI&nd|J? zvt10+g42QM{1>78Bp+cPU;5D=NM+c5KvGSOR>`Pq6rLS|3|$nn3XmMT!mwa^CF^bC zK*D-YiSagvUD$L6`}+5jZJ@W01tW|_($?i}ewuFn{AAgCogpNa;-+iDp`2z;Dytg? zt$}kRn7a=HE6;9zF;^(MJ!}ZYEv01?w@Kc*>iW+Ci3$v(h?#)Scxk^}qQ!?Jut1ge zva+$k7LHx05wT1O!Ch=@2lzEP`}b`NG-Uo9@n$%)o1)l;`FZ5z{ICKlR_*l2IiW^< zym6Xe6Dl8g`4nI3-YVY1wjm&6rpi7zw|xG*xKeVH#f6*6_3v)dPu&1Fbdr`b_TyU@ zo>RR4q-Q3eUo|i^l+!p9aaj+0cR@wJW$CDGv11_6o-RSEFFb5eJbj zlsn7YM)h)E{FGD!k&x~VX;4DCy97a6TIoiVP5}uO5TrXLl};%E2~m)i5)t8B=y|^% z$8*U8>^(Cp?pR~2mc|`iEGjGn1O!|aWknqX1e|RI1X2zRB>2kO4Js)F1T0ZU1qCfn zojdY3RFo7%_{Bv;xCMCl5fJ=xa?^eFbmz&U$J#~PwUP;*q>ei|=pZTMwks#`aPVUi zsCFhIFp4PZxhrZX6=4Xlt%ST(NUCOh5{al?y^TVt_|e0iggRa2UODA*oB#eu_A>p? zAg8?cv8DU_fio=#i5KCh-FJ;JLvRX=NLDxcVxGm_w?aq6IY2;mMp$vLt(7M`yN#5E z6fpPHIg9v=yuAhQ#;@NTQ!-Dx5U%o4n~fRy5wtR&ZXBM?n^BSvh)Egd+-%ew$ZQZ& zALUaWWi$>GFi7z{(!J28X^d6$%{PSJaz9mbK54f350Qf@kdxu9}TCIPgN33`e zp44=B;{|%qwFFq`^saH;=PX-XG*d&&b7JS++&|C53s$fU7}M!k+W%_pca$QQ?8UEO zA?j-Xs7SH5e{{|L7tXi5=relsOK&D|8afG^5b#%!k>uE7P&};o zSHegV5fyKclZ4dgQ>2EKTd|g)dFK-fg^RdTc!k=o2#KNdgbrDuEF$Xg;k^i9KfoH6 zC5VXZCm_{{_PU|aPg4_Vlt{gfjH*DWMU#qgQ$b!CiBxtwU#EnoG-|8Be$#Z5&5No9 z0au|hU)zD`ob(Yo6CY+#mq`_&Git4srWi(i1bNrMfq)o2PgrATnmcj;!Cr)BPsR$N z5tdA7F<}S+p+sREA0b)yZTTcWW=ukcvP7a+NRG0f66s#iH$PEMD(*KWK~qxV*SedE zJxEU)xmK87U{E0PvQ!&gE4M`Yqy9&>2UsVB>bIQ=MJd+ zW)b#KW(F6AUDjO2CC2s}DFe6f;Xk}(eD|}wD@z{3GV43-d=4WH6t)8r1I~|ZUL0oH zenl~cLVCw~W^XeqjSBn}J(PdEA+i`yjxF!iHhHc0(o64q)MTB2{`_rmJ#hv9+J|w6 zs9*1paP`HkDXeNgVf)Q?pUqY;qEypPxA~*@$J<-RTVl8hf<>s~I*zaF+#JH|*h!x} z$yKdWeWChn(1Vnnwt#v9dGq_Rz`6Cg_qn7#x4x!+#}>=9$TVkZ<@C1_|B@fmsvkd1 z-~Radjo`js)NidL(cI%?8f5ZuXmQkciKbGrdYtXzO(wa+xv{xhx$=xDjrvSo zYPTBC9bDXUU6&jJKSbFOJLo!0*&daZXK~Lqyg&V9c4)TTT(;pe7U+84^+V%=t?$%} z2lO`Yx;kbr!^2;O_ZN&nktmFJA5=@$GnKzRP$gVD1+= zd6C+4wYZ^|{_l^@j;J=CHE%UPG}|_R?TXW=*x2r><7@64|2X_NGJYWbi#sVFB8uPK zFWrzEyKgaL!B~k`IqQ7?RP~hIt#@IpwfFIO^cwM3-CfUR!!gnM#%bTdvCnRi%k05* z!HHKQSJa3mh>IcLLf*)J=u8U@lzWwrDmN{MA2t%E)Fs8>u58tRn%H`TyMevo8yPkp zGQL~zv-@dJdSoDdJSIMNC1x;%HL*6q#Ji9dtAVg|)Jn#7#v#Ui#VkdY!bdMjUlJE) zzqI_|_aXIzvTeDI;d_fGQ!&K7-XCngy!?{AR!n}*wb<-_t4q2-Z1tS+i;{mF57&%Q zPRH39QQys+n|FvNV)s}(mn@A2#rzd(0GcT3(M|;o;VvU8s^DpVTDMu`#5-EOqx&C#|3N+m$>fQXTKzMndZ&>K&be z+3I+>cmtYw?9DZk3?`lzR-XiIo5qnoQR)*FX>u-Ei21}eC)VV+S5&G_ujY4?T&-M< zQ+3(xn`_5e+K6GAW#FgeI=iaj0_QPmFr=iGMX z?q#pM53RbphL-(;r)p1bUCc`i5 zzKBu9Bc_ErA6Noed1Wll{4P{xQnHHsWH_(Peh;tD`@ZwL5a1(~6uvY&zL=`awk&x! zcQv_Zx9>G~{Kt^8(%vGYO*`0gg?roOsx{M>Sg?7&dY@A!GidV{#qp25;-{Kbg(eJg44+6ps1QkU&J-?itC4V#A{oi7jB1%}sLmg_T zH%aDomQK$^>1ot>8+rv%g8_Hf?ZQ?y&t3FZJknbH4U|o^+r|{ezo>SWN%_^YAj~B2f4SU*6`&(Z<+xnPFTjnOSJrn{Py6~f=rR6F8w?Cy^|8}O;XP1MAhs>9|sm8ho4Zb$rz0m09yE6xixuCyP_|#D4o|IdU}@W+43;oym_;Q(m5KB_R+~!+KNC?QBh`B6oI_5AG~`Q zMP5y2U7eTykQFC4cYQ;Hbif(k60Z8)ySL+M27)60hNISW6s7ZZgq3;^vf4EJ>{4C1 zt*@^O2?@P_N@?rhP*POH@_7qBC(5d+slmVXRo8R+jqd$}m99^pKBcf~?kzM{`jtgr zregK3&)LBvaonjSXkKP6ng!bUh((eo$T%H<>cf91fUgNA4TsZ{I3R z8#NZE<*tAKnt`$Le0L-^KHV*4-yU(#Z)d-Lbs6QxnOtuLMnNgQ;N0Ky;Lz67^Ex|N z&CkE#>3MXrJ?pzUF1IKQ3t^^%!!Fjy#lpno7ZURF_5Co+O8EQF@5ZDg!np5F`GLPr z;oI+fL}UC>Q&k-dL&aXv^e{xZ{{6}%XWyNm;uN>8LOMYvJ^Su-{ZjJvl=fABU*M0f zqvQ7^raRr;-LS>BZf?AA3VT%W8Bqe9`@z9MNeP>zq~!hk_aRq3W=k68>Kt|D<&j!{ z_uf=Y!dQpJnz#B~UH*ZW{BPqE*<{D-?hPcvi%l%K|5)pj^xaEMO%}u*MMg%Bj*ePeTi;2b)7RA{_VtD@$EtgH{P;GK4e1iN-cM)-b@FpZV5`TM+cUm# zY7tBtX=!Pw=;#Xz3&H2dDvREKx0#5L0*TwQBjD%Wl9y;*ef`PdVfV4{-={?Ui*tEJ z9bMh&>FGaz{-~>~_nDK!hik{j-*w?{^z?bZjyB?2d4zMKqd!2x8835>c11NEZBD#Y ziX$^`f26-i`tLdHrlt$IlD?BmgI!(LN8d)wKBE8KNPWq_35daTxwv=%Ne{vE z!B>G$zC?tRgTtiC3h@|2T3Q-{X01YFBPEi|~iY)#9~UTE>&{{J^B`rjLg z$jH2-mkB~aMO|%^#9+`Hf*ykPDB|G2{jQCzxtSS_|LSP2q}yCoSARc7Fa|Tv{^xdL zU($c;9hsPzn3_u2GsqTo^Ko}yDU|*fFz4OZ0dr0-EL?y2=Qs44x`BQx!T1MM=H^Qf zDA={pIxmuwlOcw~!ouL`0l!bVMMZx?KiH|*^g7u*3w;#IoL0T{Cmf z?fm#V*Gz=uxJ6`Cl)Uck4wY~;+@`Vwqo)-7h3eTN-8%(scg~==LqGISNK8r5)zj-W zkm_po+!!7n)_8F%)>hDGsUtAE>QzC(D&)}m*RSH``0_D`xVX!Y z4~&imL2AX3^S+P?4uY*RZFIG>x5ug-3keA!<2G?#Y)UFuWn_LdRis{~zb}Q3jvm*F z^%3eGH#fKA>&lTV!TY^2gp2wrT4A7+HZ{NQC=+Ptp1cWQjVdUFUQrf7U}Lqn*j#HrLgdSR{o1|KS{`Pze#l(FCXU7^V6 zA3uJC#f<6*J3%XW3f(;=_4xR>7qUGuX5avW2N^NOfg>DVGxh~UDRgH?7o^ZR=oH_^ z^2YwR?cUMji0RJ!VpLuwA;G7Bq82jA*_~-6I#t9W;#DfCJ)hX3G zx&{V#*w{VCw5!mS{KYkObS5GEUKSQo?A(J?9jARtBc8kq%pUTNx$je>Tjk4_J>GWE z^1|+qy@+kaf>=nL1N751J)Jhg0)+r-b7Mopx1!ts0-fc5l`(eW7W{;Hi`RFES4WrM z+q1m7x>KpCB&evU@ukrOr8kj~kj%`?`iF)F2cse*>mN)%Y2}!ffByV=Qc}{7A3q>u zf-cVZ%Uz%)aB*|%>gr|-Id*HGJV@BtaZa`YjF<)$xkcdbb1@h?07OC4il1SboSeM8 zycDz_UMW%i_fq!%y;Q-~as(zZ)Q=9R?a-!7sHGpD4v&tyLWI)j<1pw^n>D$I?mgsy zat~*;ULsw;Sfc$BR!KucnB5RJ;2wu z=B?>7EC7N-Lqnk^(dc9T{cxJ%zv6lvOeN$%KtUm9)rlY}*?N8WZhkABh|n?#nQprq zibiPRrayoFz}Xo#=WfS9oBxrsvvX4!QK@0&XDB>S|2IZ+ueb9Mw+HG)PtUWbPn*h2 zU1ZO4eZNmeZa=^AuV;i57Z<;L$yBbs_3@1-bRlA5;{S#C1ET++L#e~}$=AD|>IM1v z**Q2E7hk=7>-@RR9|9Z#K4%7(LGLI4QfRF=_Sdgp>)8$u9!%y^u$n5N3fn+id$on--@z2@E;LGtiH(0!G%z?l`|;(>^L%F3uHv^ytqNU$9qKv5bR8X~@8V_`Ko&xggeKU6m{F|A> zPrg18&s6ry$%l{pOdgOlyCJb6Uy`;}uC=HhHf^M?srKETstjM(tao&h{kPWqD zER#QcCMCqWC+gSPnY-alMHMJf%ga|Y<)&AEe$uP_f{+Ka*4*0aY0m#I&Ktt4xt~(Jl*9@p2*DK!QWM%y@K7IfY z1|sdjGzT*?gll@M2?G&ut;eT3SrDVvzn}v{iNOmN`}bfiVWiMuK&8;8gq`R3BqU4} z6vE+Wu0Jh!j{6@hE*Z%YKk83ng2QEDzgX*wYierZw|(z!&KaTQt*4`7V{d<$3Q6}yw>T;)Dw*UGAfBRPZ=K^*Qw8b2W5lRl8!u205fK6YyPnO) z&feGCTT)i$X~_Ba)%3pni?66BadFU$p%?suE&_(eSvLH?(Rsecb7K_J3U;BjpC$kN z@axdaI|pHLF`8oQ5VQRHMX7N=lcglNIKYO;!taj^Qcq8JMX6 zXIEEO*NH%d7+dKI7ca%Pu>#Zp0Uk=0_KNQq!)DAXd~_R@HO}7Ij~GP&oqxF_@b}3! zdGI=df*1t{8z*O@+cI4gE?;^|QrBbDyZ7wuUKba?d;AlxWeG6z#*faQIK^0AH3#K~ zzb#QwBU#j+*EviewXDR`N_L+aFOuHDn3f$sl<_;b!O#DrFOGbiQBHxGmltULWPw67 zJnVFD$+Yb#Tps7~)n#A_bp*$_pL~uE5CHu!RY0sHEw2Dqoor2Ghmq`UCFbP?|J*aj zC@a7N?nWRbM|i#LNN&4WA z%tq*WXWBI+EMW+^3jW*_vQP5~MOavvLOQnTQN6B~RwCqk`LQs?qI}}QyWrrx2Ys|> zuLy1ejNXAt4&^o^O z=mJB*>FndX;HxMPrX0O-(Jp+fKO{I+0K$3p1{ou?>J44al^`>?!tx9A^JQfbF*ry_ zNv}>S`E;%$Z76U0e%t`7M`A%SY=cU?H7bT&cn0!son`vh+$sQ*x3JL zi8g2lGqbbNvfA#eu;Frg>`gcUN{sOxbW)E1Pnbm77Bsme{Hy&D8_xRe6-0KvAj zvSjlgj(>E9 zBG=c|fubSkFn$ACQTzi8{ws*${-K`f!KK|-GC%0E3CX_6n1890E-Avo#|Il&uv{IW zwPME;exhdp8ODI^jlGa!j;gRkb-q}LWjJ+G(q~?nJy#8 zna(GV>M9M96Eg+)4u_#(jPpohg1M>F4cFGK%g#y`+cFh{gNY)?xsEL4k~-(~A|n{Z zX*?g%H=Ms0t0{(!epir=KiTY+yVAw>A7Y0%XrRbQNGOVfSXfx&E3%!^j+4xTn`b}w zmjR9-VG&pqjPuK7cmWHVo10_Re395j^|4f+)5T>smY7u|lP|Pfh%D^H>jSE09z=7=*{rA`+p zpo=YxjEsl}2BQU?1CX_7@q(lK4#m}7fWWn+un@^oOb8ngjF$f11EXxv0u;_vwhJ8~ zp)a08`~Fs8@HQMD!`5#z!HN%Gj@Zsq5AV|kbUAr?tZJfS-!ZFU6{2q#9b3(}CzI6( z7Uy5?q+uWv$BaU8@xHw9Kl4yQ+a+L-PeJ2A zO|57UO5=(+3sB#4L+y>;KRVrA7`F{NI|%L4u)-)VEyY?IgeFt)fn=l=F;$91W?th! zV}%Q-_?k?_;NT#mxNEkE%k8HW1utJB+wPPSbV8>( zzr(_i$jLJx5_P`$gVx2Kh~E7U6`PF9tf@*a98F&TIeOtdoFY_Er8{?0Hl7~HUH@o76$ez!F7(b^#Fm4wRgS7N>D*47!Lq63eL5?ean@*0bLe27cx4Ykf>;5 zU7hpfE6i>E@*mK?lrp=}2rq&67HQ-TdZ(S;D2&=Z2Py|VV_h`(Dm5jAc<9T{&fCI5 z8ygz|&u_y}6>2Q>#V`S=&=L~L8GY{WXXD~}dh$RoF*kRq%#gRcSL+Pp`cs*pTeJ1@ z!uZGK?skM4U;9M^&fMMH-1bT%C~9kK!zYjiUgoZ?**JUv7_X?s*#SI~PQq)mH zuWgk-Xh)1=@1Id;3p+uBsDpQ`xl|kkLc6qNe)b2z$djsdI2k~a3>So55FGLf3I)7? zqh5L|8E%29i+Rh!!UFI*R2V+J@V$iAEc4Irf;9zt20?1r7|H&iO?wI00_9!&iU40o zaT?+nA;l6UL_;mQCf%S7REDxJ&8qP{Kn6dzra8Op?y9RZT->Yj#6V!zL}+5X#H%h) z3hThEU`OQ5{_%BVi!s=Nm+^7 z0i6>150Gf)K7FDp^m{MJ2NG-7STzv0k013+s3Fi+G4KQKQuK41x76ttYYcB8tmw)* zXc`YMFXy$AQ-Dxh5X_26y{ZQUo$1bWh=n~UabZI^6nr;s-i$0~y2hi!S%Ryps}Kxi z0<@GM(cStI>WO^WsFuOQcQ33gw$%-%sig&LPx0xqXPi=9H$Fyc6X4*nf8cgc+FK8; zUaqkl0&Zy>@DgXV1qACJz7r5S!(y~Xy9|wnfZh$eTb(GpUS+jQ^x!( zISdRN{E3wcgPpLX09jcCoNt1Hf|MZBZj#c0tPrDUwTOo+N#4@{(kgHtEi$L2mJ>Ls zzLRe~(2{508Z$LLef5eNCky2c{npl2nA@YCEJu5LmVDW}cb_ICXgWJ{mDiFpE)U&0 zJv}9e6qk^Qr{E6@IKo=__^H8#I>#iHcjMwse*OvvK20EWB(-!dK&Z)ch6DZm{UPZh zjEs!@{7DCq{D>>q&0}9SHqhyDP2A3e3r@Zr3(K5I7w{5mS@kC}h`KJG&A#gvMOYR0 zGGeX_`h#iXa@j=K{R^laWF|q7LG@KWXkhJDf9Z-20E`!69&3Q$99>SJvVzp6AlnKK z#n+*X*>cm2`3W^OHO*X!dN>+Y-ED`^PFtYX==gMXb#>PqE#h2$FHv%~!aTfk4}dd{ z1xAG)h|4Z7gq>#Y=1DJgbrnEQdb`t{9ztQNpr9Zd@Vgk)Tf%!)ffr{J3k$!Y8#42r zChbo}-=C|p<}|E`z|LDzrsnB{-R$sjT+*D^J|3G6xA|D4iQBHi>lk6JANlg^c^4 zmGe1|Pfy#~HBOV5y^F@DkCGPU=6?240Wd`FSI19v-wT!EK>zvF$=c@%X0yN;q>4^P5pf3Dn{B*mC9 zx+NqYgjH$9bo=Rwm;V|RrZi4N78Vw)+7u9Oux~+A9M=K15jpb>R9tr?Sze~Q6nG1V zQ{SU-D3NRh&r*I=P=xQVLgJ5`S+;n^mPZqkc7C|K8alNwJd9)F2AqQjuXhgeH-A5T zO17UL*_rPBRHK_E^aOwfHTnwR82$LC_7cYQ-dMROqFaZu?<0uvkN{m?YsAVk<^kwz z!2qP~?^Noks0={cW_SWyX<2hmMgK7=n)FVoe%acWFXEqq!43t%Z^Cv*s+MnR`2Zw?`?zl2VoER#1`%kXZ`>#c&NTLQ;wZW@+J0m zB8F^&Ec7;7iCHx@(2|yCW=?_3(d_003kE{qf>;m1wZ6%wKLe<#fD<%Yy9Nz5WS|v3 zo}LTMo~$?pP(0(a-eNFxfm-lBo>q;b_@ca|!~wb!K&s*Xeyi%nu=C+u$)Df{IPdbw z$OMl(7v__d@K{4xZ8ZX53=%C~+#jX@Ls0rLaB-y`u49A~ID#|;=s6Yh-UaIin!e;J z&+cTtkWjaTIEib~Xx%6JfYKTG90c~jz<~T-G{MD#i@RQdfq#Hz7)H(utv(jv7@#QV1PKEBZ|4-hl{#=>UBn?K!ZByeRg0?p)SXZoR`|#+ELdzH$6ECN0h;}2SkJP zy&x3R=&pw6&#B@b-v-$L>#uB}4dOL%@9@*9*}-R2!cX>CfDk*)R-Bxk7M)<-Xl`q3 zvl~i>>VUWQnuExcaMALAvjFU0!OpU1|1>t1@X|2%^7!{px0oZS$f$^0P;mQ%Hv&$O z_=^E84KOyqBEg4Wb$B!1+1aUIW?*;!zGw9j7Ra68vO2oDf)9_^z>@;K08XEL)HAvJ zfFCO3-KHQ;bI8qW5h`-~;~Qj`$hNjyCUka(JJi)4mIunnk7Tf}i=UvdBot+(!y(l%`nzlm@(MovrPfTbF1-haF z!K!a;#K*&n`W$@{X+|h7j27XoTXfetr^CP%I+*k8N;$sPpg)hGo|+60MBL~PD+QT8 z>fv)v3~z?b{MHNNSkTx(aM@XYm$!G<5oF?-k00B7cAu}@>rObiSwr}zhmj7&_nwzj#sxz-3{s%sO#_MpzMY#g1Od_DGlqndQLlZBUeY~qjv zas^anFGE&VM3*8k2|>02-obMA>?c0GbY^BIhWH=T*H$!NzkkPc@dFPW<_)%gR|0W# zgeC$dVB=giINW{%>We$x{!(kk_K7Il?qW0XBbQY}^>UJ@0I9Y&0Ftb%gd|vj{mS=O zCRIedz5D+C`)>3IKA}8uPnL3ZIAKw{K>%DN4EXBoA|eLn=29FSpix_x(W_N8HHn?2 zL-s5BkMA$P<29*c14P2crVLS>8eI_&KL!S;iYr5CnPFwki;(2BG~xTBG~LF*MqYsR z0KB21q1B{?R)gFGpdW6}c*}3bK0*dtbu29k@Y!@X3MdD&p#>xqX*}baQMMYpRfa?GBMCuB=F2}UNSv>gi zR^70^OFRC|HOLqod=gMW6%PmM=-@yj;ibIu^O#UxKP5Mp)?XtT!I|3>6OrXuJ%W%} z@H%`fNb&f=4pGIvF8$)-0N`U=Q&Bew%FD~+o;-m*qUoeSaZAg-O69;+*FCB06hZ`Y zh=AC{Z)Q!4D$>CN(paW2~ z;twF3KKLh_YQt<#N6?>^gWnS~GuJue{|iDb2Kjna=%PTSE%3Jw&&j)V?W0rPR{GI!%Jli6S3NR%6W`*i{gnr_7`Ve3v8O4aJZVI9bnRhVIZPIzp`mr}v%;XpVv`5#G-;4w z7!WT7PF$Ch<)PT_CMR%dK!rD(MJzl6d;d*I$@pM>*uMXCseWo7;KSUUoQM+hubV8A z?>~H~ebI%sya37%dmR6eRk+8*TjN@d9I-AdQy#_Jw?Wz@3sNT>TgSB&cuEO#3Y-@e zTwGk674~=;#c65!ii!~jckXx2&i(``$^96FrI^=9(?hWMV)g9XPNM}p<}JN_ef5r0 zQLQG`-7wSuksS9%mVF7}aAyc&K|uiyS@xwa?D6XCe4`t^ol4A*VosOO_sN^d>)br) z1n`Ya#|ey?dTu}#U@OhRrd_^5$w0u7@3)MxlqaD`(%D_iyJ8%!2$nEXzjjvy; zA3Df`oC;VI)C15oo7fUKyG*aJ<>1m#)upMiaTd6_J=-j?X-_(75 zeY?9sIDx1Dkn2oKJ52;OD6}!CPYlbiV9g8+3|@Ie3?2;ogwTKCTS1zhmpBIJNW^)r zbLKNe|JazQkkBIJEilwRBi#5LNncm6_G||5E;8Vkf^N{@H0ufo@_L4)q%;Hr&jiiD z$IjZCA%GRtmJS#|Qn~!e*CBFZ;uJvLGESpz+@P*0>Y|G+LcdvIN_kfW9Ig>|Ogi|| z%$@(t406bAJU?{Y`yzNe*GNcOI;blQb!X-p@}}xC3IlnxB;LV9SkCO|kS4Fh#bDy+ zpO~Bkn@%q^VI8dJJIO4{VS77I$9VuQKMEDlR5{81)H}$a6X{8g@=bn<|z7q8_r^;bO!Hlob|~=1J>l9O#tD< z?T0CR5@5LIJ?u?Qt0rPjZY~Jgcj9S&ZCJ{W0bT8dB%An%STP0mY}KXeE>zOn33MZU z0&lx9aB!TLJKD?2%GmH*07fRguKdyN_X7z{+@0~wn>VqCO~8K5|He{5FifE20MzA7 zQRZZ4SBLrHDt9oaz|&MZpqg3+vl@|M6NrzJ|2W_wu}$DL(EozLSgon50{_q$igeSq zj`s@VmIwG!|YqhDWQFH{FGVrVES*)JZiLs^3LMx+SQNcs%- z_9|vh-y7`eb9Ho7xfI|DxB|J4=(4G#AxqSat~^@w+E~EHk0y(1s zN5B*j1@%qaVFaZ_e+@Qmix7Bq%x3h>?>Dx{jnAo;L68F33WZARv6F#S8TN_1ZMDRIPUghESEPoiwmiD4=bR} zS^Dm?rrSH0g!>rTsD6a4x}Kd#^OrDg1osjECtttK{r3wC+1q^zoYw58hraqG@pn>kvJSX4DJkGy+_APU;Pcn0+6CL!I$HRlDyf08swy6pP|SKm zE6V;%6i_YTW=7REk%^LshqnNRxxc_@ws3)?$Z3HcV{NOudJWn!3=x8Q8gZ2V>H>!F zK(wI}b>$kC3oS3_{$=hBf=tVPE)xoP)SIJJO>hc`$Y}0*^u0+?5K`^|#Ce2bATVc8 zVa9&%oa!khBqwHYcOqsKBMjbAQc~90Tb5|iZ(>6WVZNJI8V?Vqrl!Wu>tJDGLJs5! zHo39sUyyBkfqV5GNRiXb+xb@C%7a#U41Hhd^v>Lq#T6BwL3(BIt%3OsDCV^~^d>L} zyD^+~?Z2P7$;il5bM?^?6CK)bQyk96$+vof@zfE3?}2 zL>7*YZw|J>)0rc%c?}?2K@y>Q5`3H+1~xwUxDC&x9*gvv#=zDxiRAt5gnQx`U?VY$h_8P=8VXbpq2 zV_|R{n(jiS2PkWuC*vPcNoUpvdC6x(*fog)5+*Zt>rq$a+k%1#AZ^gw6*v*;X+}{n z#-=7GSJop8!uBQ#rXr@kgErm0{1vz<7202Js=o)uCrHlDyU+N3h0CB)ElHLVwW&A( zq=!a!GE~4^)Jc6dMdD~n^M*t@H?7uq^ z2;)Kv2C?EG3A7v2`Um=#2FE}fEZZNU=23OC#`NxeZdVg6z#Zf@u6YIJ2bc)XmI3wg z-cmMS_%6iWHCm$C200%}=y1a>cu{6lz~3TMUcnK5-45#3%z^x4ReA8>K|sI-aBs?2 z&$^=^#qlvQA&+bfq@D8BOj6JQ$G-ow}Rm2TX0D(Q%MKXg zu?J1p%N^Xtm-R*D9SA-JAjk=fK>h zI)vV&(;u4<{cA}pH~!bq!D4^eO-n3n?1Ei8C%5i*<%s-4uyrb`@(UR1cF=4=YMN>D z_k@skczkqt2m}wE_U5r7Gk)Kdo|e|i_wRr(Mz1|FTNRN|2PzY133-M(?GON20CYE~3#-Q=Zpcw= zUii#irmG)&dK6HI+dE}>1O$@P%m;>svY$UEB8%djg~lUy{u~ApE*4?jd%VYI|MQ=H zIs!EN1Ujjfpg$4;Ldg}Ung_OBk(j2d7xlqUVq*)kJ7y{^WgL=LkXFHfbNBLMHeNb( zgJ}Xx99D*a$#-L9XB8`pQ4MilBT5`Con; zp^j0^q>W668P-9819f?n!5P8=T6cH%8#w|5h2{=(1sQHIy#RdMdIb@e1jXinsaq>l z?i*R}3SVbP$H3fNW)=44r+UubrSaP9A%sslkkFS}8(``Xpb0dgL!ixrJY047o+%&& zKJsb|dvC0!hTUOALDcDpCdKmf9>;JxR$kndltKa~{Sgor5L4{5dSLJZGRDNzRB$ex z21j{ijZsBI-_S5xTU3bf%4C67q6lW+U^*^1IM@U;9>9YrKY!?qe!uB9V4JSym4f;=TI!u?QfjtJ=EN444D*pqgYuIUMI12>^+=8D#(^GjT zk}J8{p29}SU#R$UUQdV=4v&ls5ub2`Y*usPU&$Q;RDfA?4Emgzsm;kroihVi<{}(S zi|||A{{0mNE{@?)*X0f=kPKQhwO~}`t^Z~HXLK_vZa)yNngf0vUR+#2`~b*_n|T;b z)Yhj3uFJ;Wo`zG|J20DsI5?iTD`msUVC=Kr&FtJUf}mfwWDn3rL_};XPe{YIjf*vC^IJ0_#w)=EVqJ__*2H96`TA8U8SN3+SkM88=~9!6i&-A4tV`oSI<$rgRPQwr33U4*KJoj{UY6%!dw!P} zzudp+Y6R$jPIGz-^r~-H>M-OF)5bS6UPy58!fKj|oC8UH?T7%_R$h5dO|D6S5Bg2u7yr zid4g9Bw1LBw(cWBZ0P7aDe<9Yov-wIF(w z2Vr(ljQzR{q)-V7iBu>39y>pn^t;rv&N&B+3E#*bS1pNnJ&+5W9W}!dL<^K!NaAoo zgU+>Cf;~AwA`%kCpbspdZ;FXgoKp>ENyFtJNq{mi%LT)Fhn99LTc8Vth46@rXH_8u zfIctZG0xdFCj;5W>gLbw3HU>@{!&fnkb7KGb9m==pz3NcXl0H`MKy(Hu1@h<#6x_`ZSjzn=D1w|Epzdv|wt zfZp`*WjyRmSJd$50b6Y^uR4g`a&dmyZ358z3G8va&fnfk1#;fUum!%5o>d&fPCC1glwAbk5Wb(}6Cd`OLROIb-t3X7D zcfkxYYTYnj(2al~{2m!w+b`GJreOvd(^(Wq`~5?j&xJ72(%t_ENanze1Jp4Xs0Qam zgVS>lcmcp6uA)7Lh*DaIU=;F@CM)P;fTV$2N(qsJzI}f7gDK({bm$U3RWKrL_$n@^ zcKqG?$9~&KwcSrniaS4VE$lW8_Z_}%Nu5Pr1otuQF=aI>jozESV3MCZ-`v` z-d)|U!Lxk^RyaB$QhB{cG&pw~q}DtyDPUZ2!o-HiBn0H6o>)Y3q;ljg3Oc-dE-vjb zH2`VTeQyx377Rn5o%z|je1}fLE;z^R#~+3vFc(iRqmdP32G#bgjf+mt{oDlngo3!n z>S~7A1ZYFSFiC1^YKqa@KlK%m1IiaRL{yj!LM~5SQfEj^vbq%P(nJq%o!ryqd!WYXe|p7P%Uk0(ShW#+I0W+Yl4ejSAT%%nB( z8&{OIL>4Zd*6fP;w6H*}!A)VG$l46!7u{8f7fZ_5_Tm90CWx7;7#+VCn?3IXo~MX0 zJlAoCn+YiE1cK2K5injkI541|C!Kp312T(cn;*YFF3c1?f`VhOdmn10gqYae__#aV zT1Xx8abJg~2(nnAaCJJ6k;+QmFOA+HlmPnyyBpwXKWoe5lP%HT&M;w8tll5gQW#K#*aht!lqwJ{R-4v;hOG*L3hVddOM-OI<~8F^77IX5{Byj(YNH_;J6?iXHx^U_W2KF ztINfb^)KmYxKuj}jreHzIPrbxxky6${{4-ug@>?RME1{m62J*n zYPuA@33n}Evd3kyiI79~OpJk-cOQ1{qInT+dZmP%V%gk=D_jmez@x7&4Jq28i{Tf3 z@9dPlRM1_`ARv|1)`sx_YCJhkQw%I#qpEzU_Mq-X#67`MwzT#6iNNRpq< zAqtbkW&oz-In1KWywQz*I0kw*=pc;q46h?1P)vC5r2U48+y@VU?PdJA`~#ijwmT(7 zCG-2xR0D8$sGrESaSLXJqbbQo4p|5WKt^29vCrf@{MWUgoAKrk+^ zthD@|EeML=wR9zrBNI#)^%j&HDt;T30Xg747_B!eU%`a8S#tMV?>Qg~Kwi2;Wq=8G z`*MTZZe?UTbc76!^Y@}kTv`c|(dg1E3(j7f^z`&~dfdW&Xbwlku{LN_?w6%u1nynR zFYcv4saJ@GaW7T0Xt+0_13(7mX;8@@gZT=01e09e`ssSE`{tL3HWg(&o5Jf6gzURc zoS>YYDXl!Yk)?@u@7}$O?YxzH;Cx3HkS{4O!`P0lu4i`yCh!gBud6uG6k3`7o&~KD z8Yyj$06L`}RU~bW7a-Go>h4CW&^`24g67O#fztpDlV0jks;hLMIEBDcvuE_XTWl)+ z6tpn##mvI8W>x_AasJ(AaY#%`GH!o#0<#CGZ<`RUvw0H0{mIBMG%z4j!D)t$hFD;Q z3hR{#Jg-Zfnx&?s1UbzX7F8z@F;@f2J^b!(6rd{MzS0Td1gVn5`U3?W{iybNgv=xL z$;9Y&DYqsR&{sD*jJUcU3xmg;*meQbk)eV7vV9H$7d#&aFcv|eWXUFQOJTIAoL*mmf%WQsi&5COG&94g#?lamk9Id9VlX8K~U!5q=oU1K~{Ttd0}kmv_m5U5eC()fCes#F2a4t71H?| zXSv-+KpjOzMVlU~5NWOs!DS*A&G;Nqw--?4IE(8*$H~!#RAz2Gv7)hnGyr$|ft8h( zmX>TsEL>LsV{2N|GG(P6dEH+;@cdZZcaLTuH76Cgso(X$NiaB%%7d*chWgFGM^2!w|&j!5hq`6Xy8PGDAz$=&~v#;=S7#qtGSCB?_ zLIs^ZlFkPxZ))7?ft=x}SU3P5X8?c^k=$HdNXW?ZE_?+O9UfoMa3oR3><#gdEXWcx zDge(yIf|rL>d)<@pomI}@NI^n`~+G_G|N^#bR`g0kpBuRNy!-*__(+?Eww7a(;>K> zd{^*vIrs|f*%bFisFxsuA?a-P15f7$KNoJnL})Xbx-PXSy~twbC z|7HO$VWP(!)JzcBfXj8Or*jz>mY0tV`dXyaInC}}tN48@ME%3V0E4;9bKx=smubV( zfOKh$STF{R%)$sp6G7XhprpinkyO11+AR1hobYcM0HTA59rAn7zkL36jhXPeo`i5|w{T#lrW7J(?}Bp6U&cL!5LhLVgid578d#oFUHt>xP7GH2rbj0n z<>3n*EEKQb;76%oO=u-M&wePcrY zwu%-a#TUX+J}PqZJ9LUr(!rYrb^u{as1bQ{4x}wgH*A@kwf^B8R)LrkaNn!Dj}xwy zKp4%bTYhl@`yzmcA_R;>ZL(`?PgyzhmcPLEGywun47n~p^1Z5DF%Kj(WaskV7oy3& zLGX_pC^~Vd+gly4?eEKYe!FY!gLEG$pv)Hj(W3_OV=e%#2KxG>MR@7}XtA;XkE-vE z=ephhkC2tUDSPi3B{H+gURfb4Ndu+qt+Gdnh840(Na16Jq(M@t$f%@3b%(_7`M&S- z{o{8Y=kYj?b58et^S-X@b-iBCb@3{AY%!Knn40;N8|&GLQ(;5^$JFgEa?57{37tX% zh5efu{|<;;6wE@XOip!)TNE@eT(~gy^eNLh2Q=X!4 ztH*JK>*uGog2LnBVPp{`*Elzsp!5IvFyYy8Z|_n-_;0rxe@i4JM2oWf%*`J|zsF&7 z6XXxs(&fCoF%UK5uf;{TZQIu65(AE_Ysg8~qZww_#Vf3}O=MFaFr{*LjM&>`%CG(g z3QOb(F!GDtza>CAQ`;R3b^?8lWs$mPP>`8A_YnABL>I(IZW#kJxgvw+QMlC*Duv0b z@gwAL6lK46_;^CQsCmbOaHLMXp@e2sAWFAy3w<*< zS3{+Xbm<47l6RB!?cLWjft_tMH_ycFCy33~bCAv==){NjJp|O%##EJwDW~d zOE**$^_ScGwrNYJpA(E1k6<1KoH;sr=k9}&!h(W+fwSl3)zuv_kz=0v<=oK!>Q$iv zJuWTzw$Fi)pfRyhPlvK)35WZPi7sJpnYOj5LtPw2lv=ZKb zgXnu=_5f+1lVj85vRkv=aH=i8+ktlIsPxJUuwR zD2bB$DQf3(avO&}`0k!864f!vxSy&lkaa+oBOv(-FD* zV5&&2b+UAyzN{IsjIBFWAudVS{c+RtLXI6_1v5Ab|LWRW7TZ6+e}l$KG^gN1sX$bS zKut8HJgz$?9yB<=n3!V5X+p8C8T743gZgH4^yhyj$)oQ#W(KnP4&FEFY5Bq|5^j7H zFrlF2Ku6MWP_DJfdYLi?3Npws#F)&S!azWjA5td_)Qye`%^EP0v#}RXWfa`);SuEKEvK# zDreHXzrlNeCCkATN47tV&iw#tp~QPvAgqEHeKthpoQH(K7r zcnr05Kw$ne%B4HE+Rs9hkYCJ zy5;zDW$92?^KoeJsSeV7!LDU`iSAt&dJV9!v8H*sxg>QFbWNlKzC#5%&sle9gvQ^X zzYF0px??L2Ruao~l#$~nPIw0%1?7JzgG60<`-N{Y7^G{Q<7&ezd7Z%SpClpF;Ey%Nw)@m-9~<;feXuT!5s85J-M ziT^toJ_Ba~|AT%C(g*(e%KP@pnKNftEu`wt{0_EvBirQU(g2%HctCS()X@m?)>2R9 z=W%d%l|_P=myKmq1*_%9XOy)Ag)N%6LulTy=>wf(3zOZrD9D($=T3e7)yt&0>FE(v za*i(^0RbjiyE2N4-E3|3cV5-GY*{#Z68cpb#g}Q^r75R!qoZ(tx?u>Ss1VY5BIixT z`-QcBFZg8OhB>`3&|`mDw!8RZbD`8vOiW0aW|_@B!*f_;7S3JM%mU*3HKLzeMrxjS3I zDb)BN^+#JFc@sJe9DE6sDMN_k3JNZ+MMhxLw)^)w{4s}r|$i!VB_O6b1Dbz z0?k?t|C%KPx{G8^L(ANIP7z%vXc4n^8j3{h72j&|tJvyH{(U_?R(bKBTjLVs=R-A22asqUTnIzKfN zf9}x$Oi;6*W-sCx!}*$(bEmN}b}}Pvch2`s6dCmLAHOlN+*dt8%}Cb3Hx)146}`yi zb*`&|4mbwx@B^}~kN1;bKi!pe;s-lqZ~GmeKYUmL?(5E};ZE?4(;q$<<;}F9odro0 zUlM%K%}om$K^vQFk+1Y}(zx}>UZz2Iw;K2@M5F!;EA0y^af>1WSF#w!d$v(gn>gU1 zxQD%F_L9FXnuErpD>DmC3ANiP2p#?cwuA^u!c_OR>p`V)*p;r|xM6IPIvLzfA#W2h zRG_FJS0*#yVWJ&xb^Z>1-sR%tK>VULb$4s3tLfTA-Hq;mE&2v<<>C#(@tK(Xq1BD(}JddHneC<-N*d*uUr}SayCvcinXux&yas zhypux?3keB{iw}z$eF;zy7|`<6=rY9M{h|41_nA`u5oQ;8Fsud zAJ-FmV<%Y=?qlF3IlU211^fu@Oz`VFH~j)c(;?N#9@_t=;n4of zy$gIw-qZslEg%?~ZK(upd%?g#0la^rX+;|h1k@ad!b%po5wrvlXlvIpHm0kl*7uin z`~y6h=&wZJRi^6rPX-j52KP2~Ht8QIv;j)eNLgFesn$Ie2McI?tFL#{m+p+xzW{@jF=|9xggf7vjp zqa*746Ax2k+Jxx83{yH zF3oap|6=~l78#)V=gDa*-kz`=n#`xGxQ!amOweM$I)o^gwO|lRCdDMRfKds#;#{WT zTJwV4>lL^%vV5$kK3<0Y=UU4W`8yZz zbGrXFQOrn_>VSJLD@or57=FT5Xe*N2^q9`Q!_}X%EC`|G{u3uu^l#^g#>K`e#NBcQ zoJMW>+$1eNJAS4)WAbmvOdER^6kHV*hk@hy44|I}FJf;m?FbYVOg1q#J2fI=4EQSG zmAa5WgxTly>r0D&fRNHtQ!|mOrz*u@o3BPYG@F_l^&AeMvtBGBr}%zRv)n(-DAH?Y zW~P2n`==%DZYXLi7UCwebuS7u9`5UE0l{pnh;}gZvHqJI`x&#m?(p!(TbcU+a{)+% z47L)YF===Mn26Q49((86rH5&Jp1y9txmLA+k^^Go=i-uRAqG;xO3$J^@o<_0H17iZ za^ecH7qAcP*T$GqAhaILxd4TJMpzTN9>@tX(nmfW84;eS$bf{f?Zju@R+*aqdq*w4 z&jDA1$Ty{QhR8jtHl$Q=c6o4Gb(X>a=LB8k8H5Mv+ekly2|`Z)3gnS8-&ijRsNeYZ zzT^FM13Hc{X^}2Re|#?#Q&)#XMh2C$YbO9Kka{OyLPUKZ-|6jNy=^Zc{TSr`jlxpX zVSWO^BZErVEQB~_>1vd+f`Zk71DYv`h##0%h-9nxWc9)?D`VnRaHv=?i!I~ zP&WFBd|%hGq9Q*G5FAtM*bsYTx2*^E=s_y1#6=^qw7kh%X9a|X?`hq`JwX)Zk$M9| zLk>>PZ0(A=SNLc&rdcuxPI9nOl@f#Dl* zp0}srDnuUCHC@AAG_oKg^}}0WZB1TyMODQOD>Sqs11~FcCm&CpK#L6U^jko}zjeo1 zq033b;PySAR#<2tjLcNh<~n^RAd@r(l@ofVmb`1yG1{BIBG1CIB~)!)ZGX!sm7Rkl z^dM`z)r*G*?s6!@iZlHww*uEGYn}>-B~8l$4~QlNB@LU80o%MfgC;7sKxzp#3bVF|Kja&!nvgY;@NZZ$muaks!)6IWCb8KHZV zdk(Gn^S7HFSdPr0zkR`c{HMfi(fwr64RJWvSGD(nOUxPpWB8hv@)R1Ky6lzB65 zuuFx7B)g%__mI|O24vl71YAb#u%oH13r=6AW~#IUMplfVxRQ^f(~+Br_;_c|BaSuQ zdua*V3_+0>Bb&RvOtdP~GXvS6;3OKaCdW-L5ys69I59!%K97K{jP%4G_xj)SqT4|Em$Tg_A6Make_n)_-m<6FK{a-rqLQP?HbNeK5usw^;ul}H?oFEgs8mG zr(Q=zDtvVqK}Cy)-r%HyaHf%<`GXJdX_bU(Kgi2~9yMem<2x%ASCkgj28N7|KZ)&^ zH#2r(B~w;JMYFOg?j7~?9TkQ%Slxn=?0~khqQ%FUYQo%sv0Ws5r2a)e{arLeT_^Pe z%bdApvntwfKZZv{+;VP8J@D1hFq|bIFpzbQ|F(gi-VKcWu`h$E2xdh~`IE|2qmWbg zZ!oelz6357yZp`G{<5ho$!iWG+QJcn4Nox_r3~Osvx8AEdab$8FKA%VmQ21-II@e2|;Rb4X$<4?c#X7vMAKBHy=8SdF0(MRRU>psYAEnR(Xb z*lhn%KElE{vv&?C!||V8C0m#@^hzHbd80O%6`!wm4VwM^DC_(8+vLSB65?yZIx9~o z*npslYf?nsnVg)IYFcBdTARFsTt#vDC+_8WOGDh1slo%w(>I#vMU6+qNiOm!ktIRT zUcRgV&g0Ad+WVXDk6H5deMcfNZynsoe>(kfW+plGZVGLh*CyRt1Ao}8h=`RhFRBr# zx?VyAQ{6edT=uku&VlBO6^5+9W( zKg4_#x$H5Ko^K1VtwKT!&dG3pKa(rH#YyHF=G2`7GEPzGY+rx~nd}lQ`2=M(&9I!s z;T2(9pF^VRbx3yTIQm|T)O$7N9_r9low!fm+_6zG%%B})bzQ(|Lgwl`JmqiyI;48j zJTuM~JN9>(#dQ*)8+>2+P7|_G3zwImMqt>n*Rk0NWKw%mNm@Fs&52&h;Q68Fm%59& zTQ2F3U4@K^;q@DgrqptI`T5(fETA>T9g49XT?rBnGX(H4W`jS*em|cF)JG}oP}f zq6~OqW-soeg}&9GDC4|-O4`nAH8l(9&P7BuPH#V04@nO61qV3dE?PZM8kfS)XHcv` zqV0-s^GABrHJ+PQdnZ18V-}dwI|k7kVFYPr5UCTf+j3Ua=iLCNS|n0&%^U*!ZX7~} zNPvwf+wg+F%^0Kbx5~{If4IhSJ-)^C#0qEEPFD)}O%_coZ_ro>k0}ywnP2 zWkYudAofG%5+WS^0_;@bhv|dNFLqbS-qrI@fr3FD0JIdubEwlE+NV3SN)L3c3e-BL zC_xOtDXrM=u@#+#>x0uxlS)syckDeq3S5%3AswAIizzgx7au2HJI|x&U7PU2tj3kX zwgWc|b9}hym5q|yTg5&r4!mdg9(wvT@CAbytj{O9708`Ef8`VU)!my`$+ z(*J68i-2F?Z3>r4qs3l+7^M~+ASHJ?p6KGD79N~*wR^+5Xr9cH8dF(WkUV~inwH#4 zP|E8%wb!oGU%TXNWfr!O0_oHQJ=_~Q`}*vAIP@taK86kdSzJv1w)fA1Iw^9qg}-jt zEpS-lOkJVVnXw@pY$u}I#a2n;v)MBySu#1jElMeP*C=!<)!|gNzDv8w zSx<-K$>Ja4O(9iGz7JK)faleV7bihj4Jknej>(m(F6+zWQ19fU97&tozUHeX7RQCb9i(s+G(#&xb*#Xn8>v^~7&bf+PT0%KAMsNz%)mv`ACl^FH@23Ws~T~S zpFEMTsGh{RyTGRrE8|b48NRqhjubiY;n>m#12bwW?PISReMFyr+~vp`J1fB_{p;(S zFrZ>J4bfKIK?U!5YG|M|O%)87NxQQgFz;U}z?CMc(^(yTxOba(6ZLB&L298AJ?7~}ibh1v&JOyjurfRYrYF%-4T#UBC6!>;z zL|H^6-VVV$FLA>AJ*SS*F)$eJ%n_%SedX_fyjK*oDfx!_`V~m5KdX%dQ8ZIKH#RGA zDc1KF?aro6K*Ir{U<<{N7sSDn&JqTCO;oRV5|zfOW0{(ms2!vnYGvMCcJL-iky$>Q zp)5%p&ZT9S8m)G?cydGlnCF)>V~{QrqCOquIV)CVdOf>t5cs0%Bs|SjtDqPxXt!X( zs*(3XM6rlmm=sID&2}%BkcNx9JgOA^CFOfLT0Ku9-wP8@L+$}{m?5=c;w;+Cb!e}{ zT&a1hpBVz;XXWO+Gy%bXx6hcbxE%HzfKBn?ow%MHuQg#*Il{&rxHOFO-gS2P$BBFQ z^LVQrfnoQ^$=(zVT#$ON?}M+3hjRf{H8jYNZBGvu4*0 z^>m&R-o{ph3$DSpp0w)+@M&j%jbrHEp$(IEp^Igr-@!dN_F?n7_26R9)2H=by{W{1 z6$*GPE&@X?^U;t4(l?NK(nvL3Ge8>=vn5rdZ~fNQOR#YKc-MI z&Wg^-CiE+sM0Rne!|?TQbFhF{w_HwLUn#N>^=E+wf{6P#8ij0gU*fKDUD558U%a8Tl6cpg73iZw;P5QtlPVg_uRoYT`$vhTEsi5Y|5?o>#W zuhFa7LpC1 z16dYtP*707|2KDWa~>Aj*;#fzzI48?gvSKB&F>wXIa$YVtTkApq&q5)L%l-!arAj< z3i&j`M$7!3U9Z`bjmcs8_wSF{CldSxoh=i)Yy@I>9VPdA9v7~d&`lIutAfsNBv}U}*w?x3I27%HZ0OtB`}lE4+2j8`q{$sZ0S|V0$EH~an5Sf_ zp`91@F+abp@LrO}nSB1vW`}({3s0{s3L2WFP>$bux@!O%6)qXU6|HhO1?%d*V;inA z;`7{vf^=h=X*CIV4wCsU+dM46T88ZIwWyR2PeTq{Y>s}pYIi^)pH)akA?=LXdM3Ui zz`HL*LIaGgAyZvQS?JMnw_u8&yJn4lntp9mVh_S%UP(z9f%=)Ei~PH$dfU;~b`+z#aAeQQ8GQI$PNz&AvR9R7Z(TP#y@Xjvfsr8qudLmr+8#!I<#9_ zSQuW204<*!kuU2a7Jbe&TKqt^muRojIGBpl|11pLtE2Q4g%lcd60I2-X!;#C@otyS zHHw<#NZ3|pP_QaqZ4XZTiRtWZM-;z34Rtul)vYy@@|B;9NlxR#3qgr=?|1stGgD+9 z#s0<`eW*+3`KS%B#ty%01$fX8pBHzfvP=7Vd4bg2L-tVru9j_ZC`;%mv)u3NTfUt0 zW9X+>Yico`%v4cR^W7VIB{%mMJ}(XeO>HLt17wAUpOSnrHukR3hmQS__##l)mbSL( zlG8*mJlGF*OHti2rU{`=snk1naT@68==6r=WVqZJE?XE$UGl>li=_d~EM-d4tTOPJY}!?@)lJF2@V}M9;P2ykMgLxh=xEG4$;7 z6YT54H3L_j8)Yi7&7{KO43s<)h`j6!LA`=rV6`}G-;k#eW&>4?b93MM=xHxVUH)6lswoaX>fL zso;S7F1;WnWo3X4Q+J;<6kv+CzVf^@N>5U3ORLN9LOL^rj-Of%$&iUcXFb=t%p_%( zdLLcVQ(IJE%^h44NZSIb1{kU!uGJuw?Z8-HDxY_|fUmTI_TqAwG{&nDs3SLF` z`jU0fJSm#%O-?6glAuxHXJL6>#@z${c9>1v({FBh#O`#?J0O3^W=IEd#UiAJ-kEjg}H%Lf^v${hVFs!8Z;2dqFO^~c4i4N;;Y5%TZVlnj3 z{o8s8pt!lI*_}SU2FlT?HzPvZYl{tF8JEgu;CC{zX;p7{39vKW-F@W}`EP~gGYSd{ z`|O4H`PQdga!$QwR;W~PyY$0badd?x&}^cAW^0=OAp8EkyJIf(V_(!Ru*cnxI3=w` zG&Nn>PdU&Gbbgl=Y8w#PyR9kOW=Z!Kc~K0OH}+vTqDSk~A?_xKduQiMjlYDbg*vWI zOj|}ANbrq>YiiJ5=NLBZc9QUMQWl08e8E;w76oL5BNJ0?Ylo5rB zaz6f9jB4C1q|2tBd}>nw_O<>cCfpVrVIpf51|Z-vpke*3Yg;SRwuVmY%03mz|8w-y z{JgHhqnkV5LGg=Xz{1L!xxA=)IwHbAU*G6dtZDW+_2LrB_EjKyN{>)(f1z2%M-w#BBe}!vpC6-1+bv3w~Z#`O%RPIvSb-3C)4=_ZHtrZ9=|*-Yx=>HMLH+%fqFZ zs|-y{XdAV*g>&{F2{RvD(>;B5o_u`*6V4t44dPzE$tt14G-z-?`k-R}!#SGB7%;(1 za|&rdemqg9Tz!T;(9C?}mp(arMD|iXFn=>DUj4^7_g;C&PM*va5EM{W{sFJzRW-*& zNE4EIs;kJa2baTfpSr812MOK>UP&dJ#*kAYta@1WH7nd%coklsM+U5|HSlA8YLp#RULdAu&TOONOI$OtJ)9b(w= z$0)heFUgv^jS_$U5PHAcf83B(hlxU5BJR8Z8a3$zT6PwHZ|_LCV)7br&~)lNO0#sY z67@7`2R+^vub@8k&;026Tw}L(ywbTz%9^G1eC=)-8O`Q`(t;1#pm;R?2(q9UIZ!L7b{5hyn`)%KO_%wZoKY?*MhKj z8M>Pw53iy1yJ<-G3{*RsU}6KVR^_EszEQoDvsu9%JpVpgH3H&DG*GmzE-3w2)y*GI zv{y_$4#H>U2Lh3NXur9-8#6^xt-*Hb=(ETJqoTo7IHNZIZSy^54rChbL8K8HZER%VZ*x^Hji` zmVl6X71!0RVh+$kjQmBlQS)HCj0$hvo6P zhsI3tyRQe-h4#ML*RPEr2fx5TWrsf(E?(S3iq)4^u{nIt^rkVmdJ2`tgQ51jbZKyH zJ|DHhC{rlPv~=1SPj?s@_2U}Ru~Y1G@R>AbYpS^-)_RktsO&(!2MLvKaexU;QNn(% z!rCfPx)Q>smXYBR6jZZVYNYa6Y=&PNCUatD%A)?=4Ncfmw-%H!XfJBKvYMD)SnqA# ze<)ggmx4kFC=*Pg4tM3Ugo6H(YxX-x6)}vk;LhaoUZ#m9>hrr|PNgP;ls%JO<%iL^ zdG+KJ7nX|By;InuGpa0&I1)*JAD@IAeJxIt4$BN$qmXPBzo+~5@89N5SAm3ppKj+n zl~MQb?LN$c{DE(Ns+jG+uNV*ZML<;5|F-o)yzf#tR6z)1Q45|();x_vBdEyo(`|+# zLT6nPSO6?qb*`;l0ub>@leK%cKieQJ4T0Q*w0 zAKefzc}3}0h|X5*dV{iy?5|%KN@6e8a3nua^2@rMI#FY@XR-m4ggZ*mDm}UBX-q(< zmrF8tHqNWSp#uN{+@AXVX)Scc4^TQH;1A z5PXp;1MccMXctyNWDbrQ&`1Qv?a-(blRW{@#Pz>wt4kxGY>~6lZZ&>HX2!4T=}F4g z9s54MD{z;ZDF^doWNbFbxxNpd({@H|^`EboVJ@q%55^HcdHncv>v_`|R@AO`gdW|G z%oH-fs|UI7X7a6Qy&NgbPhTl7-@6O1cqoEVC<~g+mpIV%_U&1aNzX0K(E~}qf$CuY zQV4n&jelduaa;Q`5s5=Bby0s_B6Z~R{Jhe`3a}VM+(GbB)!6k>9u-`J#s$E)$Gv=7 zhWG*GaH3c6q^DmPsbJj5LaxxuSFhlXy}Y?V zU-_M;@cyFqI!#A7&XnV!q?MHwgki!8BaqbVErc3mZC|)XKHLYa9les&-%-$p3!^t# z3ry=@KYvmj*Qhj}QJ%C@E>>V!dG+rvWo(gaY#BFYO*8|Af|mJ~e^hmG&@abH?@cjj zg>*^t^iOJGMB3rA9h|8zSoXkA5>g`Z`_F!@0xxL|_!Uu1k3R^&na91XfcQB*QQbpO zQ_rKIEiD7E!nLrn>>Mw)gk~330>K1c6~E{l@4eq^4J!{WJwhRlZ5V%Wrn%=wo|Ih` z>H{K|kjw57AW2kvp{Nh@^ScAbWPG{D5|5$ySelw1V)F14q-8^`fQ)#k(6Q#%3&)Xu z0gnY3MQ+oJ|MUI5Hi*PAUHvZWtNX~Hx7x+cE^SZ2sXMJat}q15fd2(xZbkElW*5PS z3hE{DsfX+f$)!F&1;-7p26TDd?n-d=km!t<=0T8iW>kCOu?q+X)A;PO7iv!XJm|p1 zhN)+zM!%R%(z*wFZ#)VHi4=q~LlNgM6&K5$C&#IZuX+Z9;UYH%{b2!sMAPW69IEZV z9wmoF%A>gV*|SW$Xbo1vGLl|iSon&6ll{XimP^sn^YCGZ`{BoYxiujeD$qK6Pvz(h zz&RLMUzjA~g&@emLN|=F=d=HAHxIQ@mDl!wn1{T)ZUE*GSa&`aaF$J=2W!GWgaziT zYiE8N-|-B=0k|HJrq@>l7;f-+eI9i@^g#eb!MDAzyYwgh zU38UZi&XsLC7g{HQc`qGUXPDYCiT7-$Jgv*lvb~K;4uTkLP}{TMm7YMu$|LjMj#{` zo5(2#I$iUD!NGYfMrf$gMi!(bc$&dRH5hJE8*WVOD>uB))lVAjVsDrBQT6M#!4>XPEui4Vrj7K% z6=-^1@^-kUH5sVs63XLuY!w1gSi_tTS;Rt;VT*KCDU z64BKucP#$dE-hURQP1NqT6&Xc#i^~W>C+~^eQSpWY`vahD~dId=vH3GE@g|hG615o zx?fSz+J{mNCC=`0_ga4Q5nYr=AD%H%jgys<3IID1wJx6gg}8A;Ku5?11{?rSw=Z#Z zHrUm5;=R(ig5Yf{)%2-07R|G_Fo#WkM2<6SP}mXf{)08^9?vp@1CZ_jR<6fBF(VOy z11R~IY$nLMP#?Qa(GHWfKHBZ~^eTp!)N9eSA3lH9KqVM6e~ZMiG5WiBS7mH_1kMDU zw;?u}R%DYp9BOCHfv{i?w#tgFldZ-}z4Z#6e;^tfX`zIK*VA2rnzVK$BbKwfRBVHOKGEr-muCm8_N>jnJ@mK8cco11KvlQZI3Ux z2_$C4lX6=`Npj9-EdU0DPEgHC{_WXO=(lkW;yVAJ;m^yEpDmQuV8x} zojM{c+6A_yBIi-z^iRLyINM6AYaq@%+OfQHn{{2JpmX(pGv#xZNUP%7u>+O#NNMD$ zQ+FZ8?lFn_qB^u~=B{`9JsOM*o<|Pvz1WOC5=ftNNhQtp?LJp(A#GV*55K(|K7K+J zswIqi|L99~%&mAo&JCAa&Z^$~Gw(~h^%7DZpxCxLX59MlC0fQDIszcW3`eH>1!bo( z6)*bS2OPrkDf=?mMjUTC^{Y2;N*bDdJ|k^Jxg0@(5+YaX4g3(v-6{O7=*77dPY#@5 zo33$0ZQA_J8j9+~&cw6`bb?xm=NcJC&5Eeajg>wLoJri`&4_Halh*AeON+jLxU zQ0K+;pL{vN%qofKmOb2F%uuEugkT6SS0M=-s99Q&f6pKqUrO#I@gW)}@~+c03AnP| zuK_PzSm4{a6Bh|kh0TpWPu{)L`mRl=Cn6$eG^Cjh4SSpcn~9C}<1U>geDoJD9^UDi zK_29x1^+R-!X->;C=H<}P6S~>L|M$pRHrKIxR}2s)aHjc0vOO$fE(Fdn%=gY1u(3O zm4}^Obmf`OjJ?abHX39Z0p$evv9BEK6~(#&Ul{b8P9MQ~^B?|8UABz-4IHgxh~SC{ z0*pKqrj4u!MGW)4{tSM?4Nm*!=(Cr)r-~w78fhWVteX<=c+ds>*bQ>&~Rtd3U1YT>&J;73M?th4 z$*8OcLolHZdu+wC1RDjUJ}Vw`Q+vU7YRQp!t52!_MrE#R!I=V=A{eBMu#K2Z0=OH|yEq$(&htSWS`1+dt6?=}f zQJN&gg^~!p%L})j`ICQNoC2NHGUI{ zLRbL=KsKbq`(pucii$yo>BlvC=lV0TDlY#zyYt#o5e@|Ev5{vj2We=?%+m5= zQ+YpzGhi6(!Ebc>of^GqDrmO@=y$stR9LxRMqP9?HOX6b9M34oKi0>=o{vpSOGAjj zaj|1&WW=Mdw*E(+m7ywAheubua)5(~k^ z-o--1c=$G8MU~<+3ffs=jv6{^L}Mq6%KSp*W4Z6+OBezdXHv_bZFV}EH9VfhM=E>b zq1PT>1+H!U5+l2vg{6ilBiGUak}}Nw?sYf?iLml)ajgy!-K@=DSc%nD9>$Ru_?bZULAx8jer=A zhM^oHIAQK@1;oOLyd85Q3gPHQD;BT|-E@#{B4H`@tl2lT<>*9eyu7yE2f%}8Aet&| z){j}IJK}ci`Ttrc4dO9V;Zu0Lr9m~*_c>q!KF#n9J2Oe{Ga4|-d-b5`^o;4N8XFlw zO=(E``}0WBmzDnXX5L-F`?l28EO3`ih+x9_@}~JawDbyH#65BM$W}^=60OIt?>U&- zzkb}?TZXCq{tJ=OET{@`c0SCeu}h;p{^!kQT_JuV1RWJvFac-t*1jf2$A@72q7lR~ z=rP?5=}hL|o1|r`ZQIU-hbP}+Aq=YN1zo&r{quWjWaHyM0P}iorjP1t2>My+a6NQ% zKM==`UU=wlJ~3Q(<45{%G9)zAYuLjyFLO`X=Z?*dLytdvc(1Fnckhl^tRVRq9mR2C{FS>7=n;z#&QKPZ@xG+m>WT7B4aw}2TOwch-B;h3bvd1~51S$qK z!LZQ>mzt`!FQ&UF$la*(o4)9xE0b8al}BjQ<9Xg01%v~@a$-{du_!C+I&Hbtn#p+& zZnXDLq<}+##}bOs!fC0Z`QNR64G=-W*5lxph!Nnx^>`I$|AA918ZWx{$7=2p4$9WI zxDO%+fw5f1wPn33iT7olHw*!{uKn}%(aCi*0_-x58LF0qwg9`J8r}KJB}%f0G}<%S zD7t_<-WYj8oxW|`wiUvj25O~Gsw6iT4!M(fT*Wan+~2rTu>R98EP3l*n_&3qk--9B z$>2q*6{a}HX#blvqNZn-|M|z>gLaWm;fhwLKlknvmE_Z`p&NgHyO)ZLbNWAj84Zlj zqi6Ba%cBB+Hh>gKt7(ZN>UDjpdmD|I5V&=DWUwRDw@-$Zm-mkg74PxwccEGgO&wME z9E=47n)GDV-Tr$Sf+T^5gzwk@&bB{;<`ZJkp?9rQ`5Xvk1`%~*Xzhu$>vyllk-Olu zfI$(5@WZAHt5ovEi%)R5Yp^RJIW!Cz3X{6mPDDG>WRs{GtlI}Y;>K@dw8E`=m;x52yNXYr|VjN#br$ZmJ`zhH*2m_t21YWW@&`a3o+Dtk#?L2!~jxesm~ zTaN$D?{US&#VA05VJSe&z{vw6Grp0VSJP={0xM9rP~b4EoS0_qBnwr*|Meyl^$qx} zm-LNTBBrBb?@PEnP)=%X*kl~*@s}6uZ9$Ee5RKdJwSbe6F4AbOkccieGHO>r7!a^! zZGun%Y)d?p^~DY|01qPI1FI=@yN&Q9Jo4Ns3}MP9o{(V%B6yGp*0Hi;vTnh_OwBC| z8m(kDl#!FONJ-FmaRt2+WP8lQG`>4Z`iJ?48iHhZ@~%nQ#hI_gea8+B(80zA4%4%q z`n&nmQ8agmz#)s%tRN2x-GK_%dtZ-uXv~5;Xve2Vue$$F3$XhH36b<~3$)-dLw~NxaN-mCxTT2L;(+R6#6bI;h;-$tJ8>~Y@6soz} zf9CW(#qEtcq9jiUyXx(U_k(`BqjEMDJ0%F{##~^H57lut!-HHzR0|ak&2ukb$bhT* zaK}s?dx}S%Pv%Vs?Ah!Lki08K969>`j+{w1BzvlH+ttGtuR?%V#K8Qa;m#cyoc=En z6YyYRDT&_d+E!%%E?f;ryqN2LIm4uIkw=wQUfZjOx>qa!Z)u6eZQoghSF@zlDESfH z5hwGIoL@hK8{-lF9p&x0ihB#`05c1FzzyTEwFY#V1^?VY2bK777?WZCy?AFum;^EJ zPt5|=-+gl4cIl_!Xflra^e*dFM~d`uNDrVBpcr#%a9YVIC;*@F5i61->tY|HcC)Gz z{=&?<48$Oc&ysEReiEGUJ}R!aCs~kgU~vXy2Fno9u3p#|-W6G}|J)XNalN$GEtm6Z zq$R{D1^x+xuk_pB{5?8o@x%#kVrO;~-2vGX{)><9fN zit2(#+qUzZfFl~+#;`L>KtDbMRB18!NoOS0)z$guzOzKUg1GtUFAFY6(~#ut5Of`X zrqSLlb8B&&wbD4Ab0LyOR^r;*&*g6F;iJz+Rl2q|s_bZ6i8f=~DnE>;FN1tS(KB?T z$5hCoMLw4A^n>HLeVr0IXfRtqPeC(0UdF#o5E|X@Q`8k^7RBzCs;@75Th~~Jy z#RX6le&&aEN$P!9(1PIvP5-*^K6du1T%AKW`Uyu7zhu_hX@ zc$Gn~itWI(HYIMlvuOgon2zB_(;?mVg>u8+xp`OtyJ3d=8yqYCK1V@O#DY@A1^^ z)?!IBsZN}CD#o4ZL(hdrc^u~zS4T7eSMvqam;DSAvptVXGaXf2p2*=Pr(|Qi2W$gb zHoo=^(B30`F8Md@%tdr)gCj5Rcpvc#e$+3!rTi(16nyJro+|>@^NC5VFPs^W>5O}l z!=;c9R*K9$ziNC~HWJ|>2E-hgZB=@_KRa^#ZHfRjdCG$adjnGq&CKYP;s_9hFs+>I zRN0x3%U4L6o1ENIl3dNuu>@|rv^3`pCoum0E-7bCnU>To&vx}?ZXsTg3t#f0u^oJj z&w6~LNNT#db_uv;u9RJ@xECm=tfrw6BiMPUE=adW$&9j&}BfpiWPmrU516opNT{f5{Y6=;!(82-;fSS8o@5G8qi@&tl z=osqmDu`u!CQ?dqRIw~*js8)nt}eNuHTiLxM31Si1g|Gq%ADnv)G}F-|77B(R@vfA z0RV;C=Q%18Hree|S)}Cx=wRW?bVU^jk3(_~)M<%!3$WM$-sjQ`uMfX8LmA=se0*HJ z!>)mN92ZR$tS%YLz$!alOnr<8K!#UL=LBBku!|0RKraO6BgqI>$C%9%KmkZ$!Lrb` zhJ-BgUwnxd0iYIO|K?(L?Gl7G@LfvsK4yB3RH7fi;wHmLlkKspPHTf?@wDW3x5$u> zQMJd_$A!iP7wkQ&BJi0 zA7=%U%bO==rc@hU-)AzZ*p&)t8lB@I$`YWKL>_TX%nUlf(6Je)fyb^8)VT3`Iw0WB zy)Gd|;1$1`j10Y#xhq!x*(Y3#=pTBDjZA%66}@OVm!al-%JrX0z)B3C5IK~GwmYLo zhqfcQ!ToXZp0EqQdKCDp@JYdr;Sz2zk%M9f4y~+{ZG>+eB}yR+yM4fcHt8CTxb92Ql`Cm% zlAv)o?FTS1qT1Lro-zXAweQryIyt?dvutx1VYnJtL`{-!88aa5hUBny7Q3LzR&uNt zEZi?J5@L7(?MWAHMdEOkB_;>QD7J(%9V`@?+Jr&@_?yfPj6Ys?m>#!gXt3&PorKxw zc<>#BD+zE18U45=dW(1|X|J2(+rWAXdq z1BhC)Jb$9#Z%BY()rCrr&guj$qdL*tR%i`#JmUVw(%UzH*7{LrZH%tw+y6i~GsOEM ztOl-gCsA?4jb(jMJrlt7%}_?-pH0WiXHthjEMx^haK`1H0J50X=$cFA0sT9LG%H}6-@B- z;ZhF~xJ|${5Obv)8?LXf-fnIVgJ!@xMIb&0ReiUX)=v5N(AlBCN~>VJCg*+lFuc>D zu%)b+V&Hbn7qiFjhMTt<1t(5oq7HkOC)@XWl}lN;;Yx>ejR=AjX{TrWoue}ZLQq# zeI_`~K7Pbazz#maXwW`fr2*hLQSKUd2rKFO!p3ZrMpI|Ce)k2}46k1nKe- zlnCFKph*~dh~DDxZcPOC^!u3Hzx=eXuN*aNsO$pnhly4pDJt$|!6H*J-T1_zrHBMKbS91Ad*87kHHWCRLYMU=92~la#{VDkafZ4HN2P60~M1%0y3u* zc<0Tn*W{4VUzpA8k5`Ssp{;0-#^1}%%p^L0FiaK> z=sjqyn?@f#+=eL?%ugAJ)a!YVvW|mYFgt1^`>L9R%9(bHksp?J1+SH0AI(-&C#Z-Q zmseby?*j}Z6F!A-(xr(G@VL+}nUs=p$>(l<{80^EEu$m=NOW%yem@e38}I;?v6H^6 zfB}&K9wUYCVNgb!HK`{*t$FNN>Ee=bq z;yZw1iajb5V-IM+$lScw2uY&0wXRM3=R9@X;>GRA=ZQnuf9LIA}eo!X^*B1k==4M6=_)B{(XocO|75;`*UyK zzpk42tcL7khybu3fSAGwVG{=m7tkpay5Gq0`*{8r$y|q0TkhkHH@p$x`ab_S7ET^b zu3_;*9u+?;!e8`azk!jN+0VsALa$X(jd!DYRRctl$sv>8m)L~Zm)M6DC=0Pee|8C^ z6Em`5BXqIY`H^#j{r!tSfA*9#;Guir<>@!$<7hX0!OC-auJl7ReG5Z|^>*D~gjAQ1 z6)oek+|I~Y5qGf%Wt$`fpIPpR9cHqcnrz(=aml2GTmpnJP*c1DL;H*I~V1W3NwZGS7P8G(lLRhUzge{Csd*K(793QCaq=C(DMy2 zVJOv0WsaHA)7uT#F_CvMRG;Yd^vxy97Ks6b;>UuK0u-DVQ*?q4K<%M8bq$TBXC&f2 z(eiox4^o-~Kvu1O%Gla|VhmX8+ldK^!kyN;m23nOQzI=V*(9tyis;i9F`-|=lfG?X zM-wUz^*(vRcsp18Fam8p_+J;TZlO2*4a$SdTVM@TAM0)UEsDM%=>Od@>s7qW%%sob z734s_L!do(t-}HBeCakD2jCDV3#FWrpL?AG3={5bI;}m}D!X<6w^bUNn-K*zjh56= z6rdduh|I%-=($}wOt8K?J*U>wF)XC&Si%%A2077kIrZm30UZ<%l0t< zat8b^zr5~;`k}+BH3AOR3(iHODe&LNA2Y|e2cRFXpH$%2%{`7)z}6;$r$^W@S|r{8 z09j+M7#h8eX=f#*CCOFn*9P%+3;J7se29XP^^OBq_r*Y9)(rfWe17Y$MKrpImR0ET zm;h`k@%+(i%t+H=w#1v9@2+qKP*ZQ1(@(IhLw)(8oB@sk(w$E{Du4l!}c zI6ei6;F*1TbM<2h94%zqY?)Iz<%gYPshwWtff`Q2a1O1SLfy_G^Gc`=@wEo_Zv*a1 zxnLU{521)Cou*)8chEEn)=;s0q+imJ-mvNMe}6knyW=Hjqh?CZ4>-i7)*^va)zVq#{lIeP%>CSK_lf5Oq(SxA&< zW&sH<@uUz?W~|8!!|~uwuT*dKbJLhf@DEH9*X`VKPS#1~e2s%Mrls10ZM5pD*jQ`- z+gK({_}7jd=Or_?DuGJ`GQ0uMB%*ww2CX)tq?l@daO;ynazH5Q&0aL)py1`LuMpM6 zIyC(Af|o6)QX=Pzp3+RF-blm)F70`O;S3*+M9~?bJITxfUbOh@*Dc3}>s$fRrfPVafKqPe z$3~le3Jb2ahbQ_I9+E)ADk)jRXfpK~8~F&bqBTbV$D2u4Lieb7=AR+Fg-m{y82pF} zjrC^XNGl3O-);Uo4<4Mw+_Mr?d;;k&7s*>=JeahY`?|NW-o?cWStPaU$zZ@?pB5I@ zG4WH@&SuBeT2DT?K@Q`cKQK1{6_XEzaf#u+xyT0evnc!l!?FfI%tgJBy`l74Y7|!e zRKFvTzJCd8i0ee53z#)-0BS}?002#1BY)2W(MRncnqtyGC)_2qxF4PWZoKaZWL>#` z=<=?M5eASGF@4Rbl*d0(+Nn`QtnMcYGHzd%n?_SO&+1qLNY{| z;#*hueShEcM|_U=INs-ZD*UeNJojFEt+n@lXpjtM831Qoeh_ad*hw-OvOdedOeiN7 z<6;ie#+IygJVSJIKVneQrLnzM3|Z-Hppq^*lVA z*w#wfbOFC8jJR}(q3V)AcO%+Iaf9t~d1zHwWJXDe2{ADMTp6h5{LYYm`!!kOC*5dQ zz|U`mi4a5xN8%h&kAYl-yO>4HK1p4|3}qLpe3mlhYORL1Z_z_(%PMf@_V*v11N?Kg?xuy>ex#Ve^*lPzu3yd2Q4% zA8@-ATl?|j#!gRIs%gKS-VyM=;$G!@>ZaYPe!$MK;UL33=o&?^p*vd5Dz$BdF&12% z+eBL}r1*;NLbJH1U^|kmRYn7|D9`Z>d<=v2(Cz5Ut3NZJJeh*R02%vW%!VBU!#~Mi znDK0ou}j=>)yduc_uSkT8k+Y;*wxYjgoopGb8_GHYbBr$M|P?w(CD^-@7(e-cGJ@X zVM`zo(xr0uNlik3JP!`!2g0IB#PzJGt2-7g8TQ1ht6;;{;AOB`Rhw6qmwURqsm@LSXF!Kzt{L7y8Elv<9kM&qoMB3Z4)ZD?o&jT$Leh*z_%X>SuFs5X&}f3>kiRwy@R zUQ5r=KpTPVWOLT788L0Ye8u_>SV$jTe6x%Y3*Exv^5wwS6JW8BV)SrsoSR;MOca|2 zasQ#U6lZPb*RL{<+0^p#6HPPYz!Nx@7?WOU)B+5ER6Bb&W*6SEsG#7$kqxqe`of^n z<8Xqn6Vf;+cP#l@K>C1S@iungWDb?hE=W5a;Wc7)}6L4hE=yb%!* zxNAS}?)gy+-t}a{ZJu4+az;kJ$f;g5A?Q6bMGluA!~=n;;oM-!!2S((EX>S;-Piw- z;l2a((cf2Hz>uJu%LWzDWrf@+hhBJH=V1g34IJh%nW4NFV^M{&j+#`DU3FQzyc6ys zxaWx#gpR8)+tO?oSAIBicEX|J@iSEOrvjHbaAJws%+9}eOA|(=^_A%pFQGeVN@YP4 zohF(>^Udbx=PR0rB(g;+s#-8Ibu3;|0xMH1qn?>mZG5=zDZa(^8<@NKXlApc5+3-W zB<)U24J%lbH@RvjvzWhuQhgMgS}}xBL_$LUX?^yvjn;pMEpNKrprl2(1wt z_|y^v$;$sMFcrKe|K#a)4%tBBIAgI><7O@Z7PlXtyRn~amA3_jIer%`oh0^( zA!%Q6bzMDw#2?V$Bng#yB?eEA+zEWdz{FI=ziG>`*zx^Q!FTS&v9jqJpIywuXkUP{ z+v}c%X48X+FzMenWS;F~PD)A|xI^#8u_lIDC=|bm^-Pg-XdomiWVFH)VN{EHW^kB>-!@W6wWAB4HH@;Ujsj)!E$$B#6ZWx4b~zGg&IOCNbGoMX;? zek-K}e2#FxGf+fSlSV)t)M2}Bv8Lii>1S_)I(4>HFCRK|6Z)rrIQnEx&1OE*&Zf;Z z`10k;q7vdgE4Bb(OdxixS1+Hy)@xfN1)6qI zf@DFnl(hKe)oa}tcy;J=2rPsKxc%$s1do`*+sHeY{{=UUAdIY1;s3%rhwkRssnK}y z*GA0w{9mhHBkhL&1#j(?SQ}y;OmueEq&ePJvmbDFHO*^%> zIQC$OJ|>h~rF)^+LQ01%0(c#;HN7hxg&GR^2Ed}3c)!Y6j~l$c8)%dr9Sd&UAkX4c za}2}IQ~EC+*+%7SUY#YLDvf_jA_A|lIg{;G|tfE zt9KrdpsZrqJekxJydJ~OAe=<7LEjOp7L{P)VAH;T9B29RzpTg>vQrDh!XNkPJA4Iv zUs1fSm{+90m1t^iPPraiJ_nFJ3E~C25iyQxtE#D@AIvj^O;j~Gq}sYfXvOj5wqTIhd@5jXY%tqwqiEDI%v6wkQ;AgMeU213PA9MU&RB2AM7>war_Frf-K@0 z#%Y70qpqobWR9-%AB|h1u8fYgO^c$JQ~KqbH-8X|upHvU_t4DrbX1vw+}wZL#5i2+ z#53+`V~eJMmti2bp=RB7o0G6ag`H~1zkx^I21_aL`GR1B6-S)7ns)2 z7lWV08uu znym)}EJ3-xytpFAHb8I2oaco*2+n2ZRE3M*!973ODrhOjsAP;)cb(G1(0j`>?FaC> zmH*Xx_^~kT&+01pjf}3*eDfKNimon(p%=IgPZj3`%0$t*0GE$rU*MWrU~sSkOl*KJ z$RHeBw}$pxUk4{Pi&xIJ8+!(rm=Yr+ANmo?XF}d2w|l_silK(@o>MbKAqWHn2I9!Z zwvM+0I>H9Waz72C=UWv}z!v7_I#?q6Sr{4*sPr|Yk^!3FurMz`gAEgvi&C$~AVjXh zcOef6cYXEe_LOmFL1E#ZXXc@4X&jmHmRMnjfD@tfo67&gIgB2+$B32^CGOxlL@=~E zqbiY5J%^c=?>al(5p@f`Rmxy$-PZS`#krqhMnW6(_4CfqilCnJcBmGE;f85Q>t%Mv zGm=Yf?I77?H;7Uw@`&Q)m@=H3-;I`kV77hq^jAZs^w*fxWh zj|hOWbCeJ#Ps)?zB)4BdUV^RgC9Y_ROTkIxCkHH=+9@si{)2Vxv%!^x$t*HPTXZoE zdQwSw`sVVY3-tm4581^AoI&e3HO7%Dmba$*VF}Ai0u~N9g6Gvui(21Xff&us!6CuvjSB=r z#jf3q)kWt=vm61E@$*zv_i%A?R!#}wwBhaEiZym3AglwEa}q)aMiL@%50x%j z);^Y~czdS$6yUed=|;CW{Qq04q<8Ije)`4s$@5xF3=HtAO!d7wcaQq$Ej2(4SdUp5 z8EY2|Hb<<*KIH7pL|-Dh)a60S1Cj!`&%w2KzZ8`DZ5k39g@mtOPPoLskuD9_2)75F zXKbC4{vbr0gh$qGY;6rO_XUs%F&Uta-d^f{V?AmXcZd?wH@~5qiKhRcCc}Kt*E1Ck z$WA^Oq7PRw!yp84&|3?r93OR4`F|o+s6&BOt_$GTb2b^Y!?w>2*V4d-gvIP%??=q8 zzr7(hXFv+Ah{QgSaC;bg9wefBHRV){3{jQ1Pt*Kh&C1EEV*oxt1r4SOJxm$G=5=(y zuV_m*wix84Jhp;E1Yp<)M*jHm}K3juabz)vXmPRmmk-m>x6tCua~+0MohfKm06l>O~l-;UNg&Dw+o7Kd{ifPEWR1gs#L?W zp}ObU{ut^8@Us|p(vi||2xSd1YEV-18oGEPAP*G>`;dP|kiG-CmGj_1mp8lTrT9*- zl}j*L7QFRqMVvTKY5)Cm#RYH7Zl<(8IY;yeVWj|mSwn$b%$RxW?L!s2!M+@&^L7@= zm{uK#(Fq5u+S=&&GBFa2Vr9nAuezbG&VTbBzA>bzic2yT^@W`W!>(dsm0%6t)TKCW z%21*;u~7Jh*~-3wsOym%QU=qgZwB$}JZ?joH^@t`ss-c5w(I|Bd^!{x7$EWnizNU# z>~}*i$mi!4kZ622CdS#S9h8##j5VcAE9FqB-^5lLu}YvEz7IZ3JyQHrT8;n)p^Rn@FsZ{NXxh0c!L8CPF3Xud!S zL_u=4tFyBh$HIT|BsgIVI(mwzK6LFI)h%QZ?4OQ~-qn=+IbS%S1(fnPsM$bYbk-+> ziG5>8uKK*0tC2y%6xx}{2Ln{Nk|^SCLiff~kjlb{A|?sv1774(82^ADzfaOt{=V1) zvXic#V1Dc96#VOCxb+&=XXi#^^5TauV#)A4I4PV28P8*n;$0k*iP$G&9{hCOOS{g)sYNN= z^@xQszyXbEK0%9IUpeOH0H7xdQYy-vjZ8SHWP{jK~9;$hM_6{2eBiL~REIOq;N@vIS z2&OSCG!1Y7YgS{#=g&6iP>lCmG5vyvcV;KWLw^v3JlNh==$`K3Cj@I|Ois=uII7r; z)Akio*AJRHION-&p(AuZ+!z-}$AO=3V^1I=0jST-&PJ~1$Hunfx+MsZk*zT;W5ynV zrNYC%9=Wvvsv|~111#tcT|HwCZG*6@1<3o2f4#RA#0D?fjdJe=;uS8l{iBM4y(YrF#rRMHh3q~)25j-H=RH>@kIlBCt&wM#d-rW=3t-3I__@o0c6PKdS0)fr62E^a2L79eSNG4ZAGP zd|zK5ZvPWL7KB{5%*Vcdt@(LI-q!Xzu2aNYl;>X%?^DJZ;LBpbtjlM1vmh`r)#@m= zfkeja-z-xNVVg!T0GN*F{LUw^(?H+H^dZA9_6otct3>|@L?`XMy{o_vNX+=>+naXx zZXsVgi{0vXjy>i)mbee_(2M>h1^!qnrytFs-+;7@cVyT$6X6^)+i;|nj;4vAujes5 zs0b~?5+Ctm@%YkXbhU_H8uUwmE+UlXHCnRsx2$XZPw9< zs3s^9P{{t}6b+laZle)LK0G*>ih^gyJde$}ZY+C)dIbSY!k3&(VC*ffb!bdwCa29) zPk4MC4;)asbYtK+Y+G+ltTHiZPhIX`)NX~7<4z1bs|vbdA@F_?G8h8H&)>g;jHSN{ zM2dESVhLzB!%%IQl2HAHh&~+(hKLXlxua3>L}4Al2O@8{fBSSQ-C%T!F_i3tgw0|K z*aJ5I{2b7UxOjrEa6hu_0LMVI=-@}}oF0|nA&0*jv-ZTF)x3i)-}AQ?xBw6KW*JJW zj@)k84JvdWtJ0rE=PVu-IMLhax^2DcNjCnu1gb^iD7~DBA2=hwU0v899?bick%0mG zwEti@OL_ZmXlp!Ub7&iyneN|mVhD=jAPwC4)J+csF@_MkEKl#%_2v&kfP5?PwudY( z78CvSu2N{grg^)vyJd^wmZ{|2w;oUmE6AXkw z+Fc=9qN!K`dc+v!2g75JAhGk8o*kkDX7(kEv25zj(CDH*DuLc+_zxJw>&=FQk!pCi(mEe%&2w3dJf&5|=~>t~?{z;IJWOku#pWy$w-n=lXn$Q#ytt%zQq zcei#zXOY{oomm_uaqN0JH9jF>jG37?*(a&TiWV#2818%zHLxUF7)t_z=Ej+mW3&q4 z#l^*dRFHNTJH3WvF~R_LK9k@$XH6>7rizA!T#)y`+L4#v1D)Mq(uI@i^?DorI$W&J z;@D}nZA*p*vu=BB#+R@LW3oCTS+D`E2O>XcZ=z4ZVauo{?j1rxp zE%*S?4cKm?5W`X=p4<%sR|alkFJyXlAr;qmRFLEwsk@$Agj2Ly)o!V+*bWGja-ydn z$g$vZ0ZiaW;coL$ccRml9ykN?xEv)1%qwm9b{R<+hdqY+xAnDT{zPa{Pz^3$Ns&HC z6IUrpGrr))dWp|Mhkez zK_4ueJ9hll57^pnfSoF`Y8?ZR!r_DR7p`1415aBwW4|A4)MJw@krBgJPQ)P6sD3MYvH zId(ktt0s%H9d_E>=6Umr35JIm(YF?K z*(66A1TqNf7LRPVa54O-K%f4Y6Lw+vVgm+BiJ5a$t0{Q#$g$?2axc9w&C$+oL6Ag| zEwK3E@mX*rxapMr2cEs1WR1*?+=hOg05l_UmFV9YpzQJkLE)Depe!HtfOMV)I0R5o z?A_chF6A8y56%VCa-xF#IyqVI_%a8FZinDA8ZaB_vkuRI&bO$FdhEf$jCgRlprnN8 zVp)sRm*?I&Ljt=OdZKPK+8|Iq9g~*6|Mlr6wBO^rRxJx+10+<~8OAN-mRl#u-W9$M4C-c9DR;-=KeK;AnX%Fv!wQh1 zC^v0dSz4lcGO&Icc@v9f;l%63@!Z;LNgqc!!)&ZiGCEUXLI_R_{~nl)n~RRsd7#FD z>Wx$23Uw3RxT~8HB+%YDj$OAfzE}C|=DN`cJ8_%zCD6_%pp%=Kjlf5@fd%q|G}l*TD{ib1 zLL*i#YwDdlw?{hOtoR$QKNw7!y_W(2Gd9|2fU&Ob2w~f7#jXC}B-9lbK7VWudL}xg zjAKizjor7e4D)vJG(&|b`94TXOB?SYT1?(AK0b{ymWEk;2R%L3%()M~r8L>JX%nqa zF2qF%aq)sJ&{c8W!Bdg>n-$aopMc4mBV3bBDZZdDPQ8yQpWdW>f>WEDD9b^1;)KEq zeL+a=K2czO*cu>j{NuEYjNsd(iH!ZtuvnQ06;XX_%Z?t{BFG^y@CKt;QO_73braXX zRFKV=v2*=x&#oPYijG|R@w2!}ATi{J`wls>VF&i`ic z=se;1zjH*YYI#a=k-#y61+H>&(<9~twL=R7xpg|1!0PwO*CO#aw!t(5XCBJsU8Y`Z z739Jg0HplHJR;^Kt4uIhq{=$#$}v>*`+w|uy+JHM2FDODTR{08UpMSg1y5ikY`A1B zjT-ns<(BEOv5iiWUi^T#qbXlDRT2Ukm)iZ@XZ0J9nymk=J(e{P;}wKKgE-?9VbLaN zC{)UD!4Dyx;IqVTV%Tv2Bhy;2%I)pjRD2FxX6zm?7N3tMw`oh~RN6;75M9u$dlqvC zV8p=Xi>&^_D2SDdAJ7~J`>jSBwN!={MiOnd*;)ril<)4=mz*d%;rClWTz$5&<*^z@ z+v%?Re(!TPq&v5==v}e#(w=JqdeaQoIv*J;&|S-~+%59UQahE_H0=F`r#9brZar$- z)y!bi#<1(!9@BgcZ94V)lVAQwul~BPAJ_dp)#r=v;-#jK_a%;v(tYi5x!k}2Apyq$ z0z?^VQixT0(GLw7oSzd*ix7N4n?2K!NOmp1`*UHTeeK3#e)*b#;-#t$30&?qXkS1Y zNgwsq9%XZf83li)I6qEF3X0x+s-OAggjsFWnSN$79C>6$grCE@xd~ZWU#}I2V3@hf z)?^?|wEAM-#V=gG4hvrIET}%jdTCVHV5y6wtK83!W47}z>;dxt^JTCclo^ZRx`6#a z3Bsk9A8E8~kMVJkl?@ng#OEd!+2g($=)d)7VYGzFKWQF$t1Yg3P00G_kofiTRP-4m9Xp%|;^`Mt#sqwcN>uSXV8^TKY-k(MYcc0@=? z6(nh4al9vW^_lAdKAR^aU3EKN0^2}?E4)fYHtvz?qGy8lU^wIzhCJ5 z-ZX#Xr&!K8-*$Cz=Aq#M&~XHp3!X$&RrA}>kS3ZJO609O^Y{<);wk;&PXEpcl4qYp zuOfa!+qGAxbnuw@&s`UAg` zYw?+__sqGU92o5kn#J$Q&BuqG)^^VP08_lp+p(jy6ybKR5_y~G%&adPVe8GmY?*JG z)v!wku+9kQ1?EEMd2BZI0IeXAh0ErJ)>(o!`XQc$gMvM(cx6$c=`i25EUhmNhet1& zMZnSXr-IjI($~<;Uz??NVy0(-ru`8-;xq!MQ6sZl+}Mmpo|@fN=W4D~eqx6+0%qjp zu|x;7@svP@v8sf&pqA|+>LUe+-4fBBtKV8*pMyxtqjm2O^(Zfk%Zb=WtXFLB+eInB zeXqsBn8_mUXpBM-MT4}{P=Nl{a>Y=dCuT^68P-u3JFd;VlI2h582rZGRiP$%=Ww;J zg#sP8T=)imBj3!Maz0P(h5`ctfj{;}SgiEYNHkGd<-aK69DXOu(FIv3X@2&>p2LRn zL&qO0$n`a!af~86*D{T!vLUEG_XSP-wd-39>*(3ZTyT-riSuuPsh0_nbFWTnpZOlthYo zv09v&EaRoT68;g&%E&Z6AVSM5&LnW8&-}MY>QwlPu{F}HAO>^~5FRqw5wJo~HSyyk z-m`8QK0Yuw_;6h#JNietIHIN(G8Qyakm*K;Z51FaL{6e?69wEr)c62?O(+?+S+evy ziNwU4-HHlv>6oza93mckgb3S3F;PYenVub&l7EFUx+t}_?&~P45jOkq zNwY?w^EIBUZvQ4oV_$$5IY)7coDXC$ad{U2y4IQSq16m{E^0}cdT*`R#N*-gm8BI> z88~;&SOPKbU$+Mk;I`K+O!go}FG!}~RKdqLe@!s^pQ!m&Ir*_zVcIMX%&?^V5jOddpHRpK8_xLPYu@q&>V`#5;cQ-TFQq)!VLz z4&#ZS({*VWg*d=aEKT6riI?+z+TLFeAqhCUrI!zW8yY^Yan=GA;asud73ZCGdgG{~ z;obYRE|4>*r|@`l$!3?)I!@CJ_A?=`L)V)R^?d}*dhg5G$I@{-{s<~)>B-e76#odI z{*B_&RqiVyMvLLuGiMYE`8eWn&=iyT5c9SY$oWHlUsM>i^RY>Jhf}3Hme)7E#PUY) z0opq?kAN(zfA}F@AcZ*uCTm}|Q|%;Uht+ry5=jx~UfGq2@$P|B3d*1I{d6(fv}QMX z?Op2h1Khc}ZdW?Qn<@>3itnz7hK;pg&x*4iY=5P3em_tn*$P`mCNrX+doK$-D# zQoNK+JxVM3d`&ZDvt$hd1LwxzP-qYPosc?2a zCw{Zs9tx85X4wKV(##1QkQWV=@7J$wApP?dRRTHvKxyOG6kq#wfBbI=G89ZC(mDq_ zyG;FM^k5XYEByOcNd-g)IkKFJLo})!a9f-zSMg`G|NM(#P-_N9c`v?x`9|r#@9tNP zzfP>B^h^Xpc^NgTRUJ8r6tRQ7i$uE9hGU2db2qPULu>1Epu#yc!Uma!5`GieVvHRi zx=m>5Hvaqbm7iO?{^tcC)nlbJU$dQ_3>}GdU=#7-m_ehsY@%TnRIW{uAZ8VrD4&Ne zj*JnVD-T*C*k0?U;~?%3*C~_#`-v)WA~B~1zaJ!_PS~&i{(iUe8i|;vt4lZ!QmrN+8psnyO@MpVj8IzO5 zHBrLR_7U@s6x3oC=S|D15lHsbu?;U3aCWMtHz&a<6F^0WH;(TEYN z!S*hAF8J2j7B#i5g=P|wF;Wd_$IPDDmRiG z(~+IIN>woaAITqy&}#ba;>t>W89oV44o>+C_y6}`lrd;EwbyI5dJleK{Eqzpd<@{Y z7q&;?&bcO6Foow0o&;8F@aPx*=beLKB-}8bi2zX;js5Q_IfHXm5eZLf1cna4Kh>Ie zbF#}poMq?EX3$}vp=FC*ot)qu$Vv_&`}e8%i9$$)`bpbIv{Hh>QBWtI>A$}WDr}tk zQs7P5Vql!FtiG#}oJzYB;|GzkL4-km&5OHDEDtvy)%x!_N9m!u2dqMXvGsh8aq2{Q zU=>0^B0Zoa-ufntmyC_uTm;0lvbYGT6PrqE1Fw~1SRZ;7KBk<=H#bEKGHRY4$LasR zY1cboP&hR(aW3v#910INcXu^^c6j_?A_<5bCCuzu&kH?+T)WJ8~wTkGngou$eq99Zt>3W5gYz85Dc=m~bX=LFtIT#C7vUy@2S5oUpLq1idzK66_T=MJ-uP2^OsqKKSu2_r6IOWs`-FVMV`D{% za_hu2BLEltI=3MNg@xg_zYIvD&xoioIGJBwbXozAGna@p6|+PK>y90QuoF+QMw%>H zCqtYCG5Zvc6e<92Qf%|9oE#ghqJ;WwPQ8xGkVw(sBT#Dqg}!kb4m9V)tk08RANf}J z{`+Niqnh>`tPhgxFk5UC>o;q<-&ZPwAKSGLpV!aK1T-tK8fcT064tOgccjxz!!^fI z#q$XYe)3sDWc&N|AoG^-b4^?gjB7BfqQ<|sy$RTG@>v8D5wP1i&{<$#?i{XPw`_aV z3`=W<2ayc^`5LGqrpw}pK|Y#%u6S2?6h(q&ma3h%F8;z%;ARqA$%p&LSHLMkC9#<` zNIBYxf(I@BB33QP690Z5zwLJt6LHPEK?FH?>!O@TIaDakia)-_=D&>;5r(1iiwJAr z1^|^@Z50d+4T+`Zr#)dysENak`1>_e3Hsu}!cJS1OAEh$7b_4k|NC{~1IE3ehVG9evUHSlClJJ5amN98&XFTiVpeeO{(hZ&a`O6y4llw*g*O2Pu~_H- z{Yt{4SlkSd2iNWDOx1Rvfr8&Z@Y6uYGws-+o+?XqZF=j!--yJY8%+43Mg_`OWfu36 zNb+k$lsjOA>BEd@*Fzx}CtxIv5jb!vbejsmqxT(n3tdJSg=iJNiWmF$t02sLr!Awf zS%SDzYD!89^w-8vJUwFK&UhZN1?e0?3fFrIg~2Z02KF5$MNZ7{N~(KRiI7O)00C(Q52k; z{{0*k!cevlG=CshyG?%~*1|zf+S|v6CxDwiGdoM%&ei01Hz}fm9|Evbk}7D4&-mpy zBw+iTG+#zIex|=1XRJB_24~G@VFJAlu8J&h^8#K%ASQ;x0J+@Z2Z;XXYiw?2X3(##KboRyi6XiwvPH2lr~zi(kIhja{t z`YcTeZ^YP?_>KPei}?nD+5hLu&y>iA|NG@gO$5{b{kn4skMw`PDujr$@xNc<8;KzJ zzh5=Pz53s;0fzto%lv&F|NqJSb1eS?mrT#iz^u!gA-yFNW6FDxd6fN=i4Q$gWm=1=LUx!2Bl*#7F0m21s#P>UVaB- zFt`1tOzZ`aK=hsWg^phYFm#6>uo`8A#NWF*a9RYx4UT1AT8tO$cxJA2ZQ2ubI`Fo} z0j##pN0RBVfU3KQ#c$u%^Pro!_j_A--&bIhlq^N#Hw4G!craI1*qdP*YIYsNp;0d% zqSZ>57qaaV42t>sC$o$Y+%VvjTrPH#hr@?t&foFuL@N)g_k3jXFAO2-!Jji_A~Tv7ndo=`k0=W$hUMGMW3BN&^w~gx&fCA)K?fi><_4P`sTG%2P^)iVR<_W|P3<;hl z+xIRWBckW|lqvMB0;+Jm`GZ9-e-L-6>@b~27jY6UC6Js2Kzu}v?$hZB`6p!hY0hY4 z;&Ja4EWseYDtm~S0CiWP4ndH1p7=1rz`oskr7{1hnICeXojFZRYzhJuTsm@iFh^ z7o}D<4^5+o0IYJ5B||K~d%y=YaibsTANdc<4`tS!QDB1_C5F1G)S2$iwrJZ_ql%u~ zXmyIjQfh!0&cFGoA}El^h<@8OpuDy3w1o?UaL0s)hyVHY3T-}D7U2eH&-FFj$->fy zri8_rLiZ1Nm*szcotKN>Kni;Wkpi4I0smoglZ&UEevbMLj~_d^#{k9SM%ldmrX*2q ztp0d4jc;~lr1h8`t}mR~!MASVPTx$c-$1MZvOojI8x@&Ft8uih*)t1lXyJn7dQiHonK zuKwv@idU*H!irLfJnqS*DypAxx3d9Qi6g66$X&sb{d_G*8NWXUBXrUeiCsmGqH2C1}9H#kV0nr1Uvs<@sFIKRJ zvB?Ig4CNY{mf7C0B#s29A7E+214Fso+Dv(!6BTWS1G-)IqzL06*Jqx=T>DwrH*i{P zy|Xbk0RmqUxB-0kZLHFteM~f=WE9F#U|GSf#-A^O5f?yI{03EUwjWK~smxOW(!7O) zYi}rC>^NvvTYxXiS9BmofSC^e8|Fq}FIp={?}KZ|A`BE1-}JK2>M{0-{)&W zO{g+JK3kh}DNN&u;t}6AI=+b%6%H;Gzdc%QzJPdI5fB%D2|n)V_OZ38;{Lig{$r?q zT0j#H~+`|UW@Dpo`7`KW;v3oC=OAw61M$3zfZFv`ZKPzLxXFq;sP0i8n5W{mg zT5+?g_*ltYroE_Oz%GI9wM+O4)e;cazKYt8=xl*Q=WJD{S%CzeJT_G%d^7>Xb(X}F zS`aA53~->;xWgBEewqI*5MFQni_;cQVjk%gXni5(VxSTkF=@}C+cX@3_FVoPR?fUa z*{>fx1?9TGx^N2DeIqqP0d}?!WZ9Y=P%9`^q9*?4Kkx@Fb-lpSs`o^An)$Ud6m>Ak z9a%*&rLwwu6pkpAy^u(sjf)=~Z(m$q##LnJ=Dron9bJx3h)G_95XMm7@f|$q1Ux<~ zFj|JOFR3MWL8=nt;0$CQ!SVfleEcrR3-p#DMj~R1v9k|>&I~+K!N_k0+Sr_eI1n!N zaopK%MfQC?;Od#iO2Abk8FmYvPJ9VtCiK3r`&`Hp2ynkKjHp=|P4ZtrO#q%x7%6U- z4ZK3QC$?D z7CsDC1|yewwB}NbYkN=7r&hCG0{ zVh`&jt`sQi{4WE@WoXFkM_8lYbzj=sS|l13y+ZXfWYmq@_9o~^@x$3=+Pk^P>}9|= zq<&ZipyOou)K^!VqZTsqn!Wix7bCUIA{G%I{wPVfqnw*vSSZxj=Z`{#4wj@xsux98 zx0D+3pgdA$Qiw{HH4ld|hocMM!v%p8xv|I12%QGv2+r(J;p#)~crMI z?h*Jf&^BDcpg~=8RNw_UQ5C#yN}iqP1_)3 zixhN=<_0RsB~(E0>y&f0KcoKCVDL)+Y%-xd0iz6SoxQ`{4QHuDU&o&IODKw^5XUrs zXf*HIA$x%+krqipJ3ufkIzj-2YCDBU9!T^_pmz%>>cv!YY(F@XPNWO`BYWLIq@Au37Yj?vN2s=&Es6eT zf(1T%XNUD4vrf_hP@Rcm@$BukQ#)S-Y=hiJp*Ha{tV*)-N zS6k!aNVFOPmHDh}0s0b%{UIQQ;IT~iamSqlH-&6jWPX=i&;-J6U}YNM7kcFr^d-WW zC5R^A3D;U{@MOEgRfI1$EW&Gug~&t=?~`5U0r>*EkE(EQ+b8L40Is>PY|qH|PrINK zZevl1u@>L{d%WikOMJX@&)*_NEgN3Hy^U z5GO94p14&rG(0vjTtB&}a=aCt{oC z*SLo2ckjGFz{3mb`?W&~1VkX9F-8)pU11K6&NC$jMDp&@XvA^BWd%|NPfJsMzJ&r^ z=!g|PSf+9B0!cmM{#AAL2opt+d6+!)=y(vU7;1?}Rg%%$HvyWgmc`DT3cxlV#8{K` z3LgeV%yyuyR2nG=nZO{a#7qAS#d%B|(bkSx(1A6;9XTSa3-*)exeXn{KvbA;y#|Y1 zyF;zj7Ah(s_aDlq!IYtU?d+NcRjBc+unLp5cZIy44E;j?1$(Oiw7*YFDxWby#{Qy3Z$ zSr5^|ng-Mw0T|NzgBPdbMLls8kF~;hiE{4^S%-0E&X(hOT<(U_{aW;s?=%IsA46Nq^XV2hE0y+MrPJey4eOcT2$P^*ky?o0?a z+!sZ3V2zAL3B&>wL#F(22DV=bCe`Wm-vHnxaU-kfQaFA1;MH*qIUF3+fDIXsX{h<@(b(ORm6HRGTQcpy+YO0T$n zrzP=}uogCL=AIhHKlA}VlU+AbP%p}t5?gh#&|1f8`n$nezz53g1V4Vn^ob7|#L`B4 z*L|aS3_Y(0-CDMtHgnt`bm6IGwpS$Hj&ibO`!ic}!FCugs#x>nYmA|&5#{>JM-%!< zz{d_w_HmI+uYo6gS7(Ek`Ab?c1^^1Nd5*Wjx#u|Su*=?3iwyOG*9Nox3fd1#bGL|m z|6HQw`Pi8@Lu+b$9Fy_vY&^4;m*w7XZJGZdf9jCXc)5byg;Gt;M5_i_&y{86bnO@#U2h4k(4wraAEX^Qm67>z*#T7_;OZd=13n5$4Vyv8x`diM}&}yiV7f>N9ST% zd2!UCzmzQwZN*B=+nm#|kD7Rx!@>&d0o}TZxWM`UyZ~4i}f>?SF)F3D+ck2VhDV%K1Xhf2`EA(wE z27oDG&wLR4s=vnuB5<^!P%9Buis3f-aTxV>P6FFwBCwzt)|Zimh2K14`Wl9M1aNuA zSQnw_M!nLZsiw&52)oUne#DT8ZI?eLS$SNYd}367ad`M_N$JQfSmG58DAJaWjqke< zk7c`ce483|XMF*%;+2%#ywMk&#ssfG8i)hUYx1I(qK_M}p^Xjp_dp(J=JYZ}%WEYw z)T}dGORA|mA4k`pKBSXvfPbCxsX2}#w_FPC3r~2<7}G~4mesAxF-W1yA*fMz;2!Jcxi7> z0Re%ML+M|l`>guw@oLcDZkNC=R%Sv+%xgLVH$k>9rsP|TY#J9s7g`!f&=y&)p8M!f zgY_wLR^av+&q6tSfI;&u@o~>Y=RLgA;@~IoobMg>Lz{bj`g=iTg-G^lFagS5vSr_a zfrgFn*z_Z-@Z!*-Jo1_GxYOJePEQM3=#f$nwlUrc4aKYLg_G&`_ioeq%s7`e49Z5H ztiLLzp?xhPRA1=nC4lcngN$=M!dEWAIEpxIZ#PIgGh4%2Y~8NtWGXrSvF!60j!qGq z+Bi>bYzd0+D%tLvqC0I{EccehWS&yAce3B@u{@tWuMH1jo{v(g4uSV14-$0${=)9uHjT)sf zEh6tak7{Nx{1QyoPTt}D2Ym)%7z>lO5U#!A+^O{E=Xh2Mm$reo1JMA`;w0MB8~^Yr zGnv&@c+ZU4ca^x%N54|4x%fVq%3D_D*WtVJ7GDH4ei$u;|4?RvQw(eYwbsbx`0Hk= ztOP+;CK`XN{++mt0O-3fU%qG#;2tIFh$<{6R z{!P>jZ0pwDH%06;E%3I4d?+4ry@^C+rohXivUF`VbSDB$*Y3X>+TwItCXx%zf1}_m zzA1rrfsRBa1kl1Qbkz?hH%RpAWn{yabOrn^m1T3+TvXf{NJr;qq!#|T;Z6c}GG$Vu zS!rDkoqDKN5MwNst%zo;GSEaY@%>r-*@XY5`UF|OgqdE4tZfU?amjPi*w`363S8*6o}OX-2tz2GxsHnGq{)kTtBqr`#3h0|8ycZY z_@cRYYxf!O=%@il4eM3x8sC~Y57+yktHrwX7e=4nXJ*bmj)j&SqT#3S=YeUIaVk|| zlu`5cQ~ zHr(5f>X@emY^goF{}faS9cD8jv`=r{^1yz$A$esAlm}5On_ZgEF4q7}&*YlkpgF8? zEq!(q6>zUkZXQEF65d1iWQmNH^%p;`kjycYcC(7Zag5dneI@w|^+FAt0WU zqI5R$(H*PSAz;6dT-xM~%97-P+agS6;#|qouSO~MzN^WYIF`!65{rs2+aiG2ggBo> zpQCW-g925n6--UXJ4QrJpnQP!zws-){>^2PlLcT`bm@78P|NAc6(~4Z0L7t{E8=TH zEIGv9HPVK)xQZ)k9Ml)ey!3^B>eH%KWNtUoqR^XE2$!)}&Ni?sYh7RcdICI7?DW1A zXP6u%crfMl*-}{)eYRD5Y=X&f9@o^pOM?d9`QL#sT1t6_EEm#?mQ>`HGc>=x3wp)l z_6LZ5u{^_+nAC<~m&hIb-926v{-pG*CqFdg7dY=G>~oTLutQ4K+~fljSBtyoGC9@w z8#y^SUPazbroLR)IhYu29v)tZdA=r4yXeAORM4SA%v^yl4^A7p6c1Dt zxbwW1V}u4#B7--^-xHo(%E3B7-xKIjnA(02BAGspIMTuz>>;`zJs*L12*W;Vxt9C2@ti4{!z&gPh>Kunen>7%lZ}vTQHLY3I|~_U$wdPYv(R>XmJ*vlKGjJ4a&|L9f+WEw^C6( zHFmEJNSXwBXH(9Sem~ZwhB4G3}cl%H!XD9=xl@jk9)qM$aAjz<#bT{bU z4k^d!+Yn+=LcVv*({1$u9|Jo)G2Q9J`jVPg>I*h!hF!^72QMPjz0k!X?2aV+DQH%( z^&GCEW7NVZF3Tnpgw7D|9S8fub-uGa#Vn&jTvH|AlaXamph7vi(kB<8$LtOCnAk&G zXgiQ*A08#_KZSS?16#IX^hB{4_rZgG{!~1oQIiL`xjzV=>B;^r?cW$!hN3)e&?eA~ z`w3@(Fysm_cp>9;$_V31xM%4TM{<4B&(AG%8Y!`!RHA9=0()}~7n3n;V}>Z!a&6oI zD0BTg2Ao_gOxt|q_QAW53eK2vIdA1YboftO7L}bqnn5;mx^!nkc@L@?C|De)wQJu! zE0j)l4Jw8v47Gx~I_On)ZMC4;haD1fV{S_6>uhf}GxlH*0vjsH%iaXz!MgXa6g6W6 zd(RTE0R6)Q7!8eo-~LiQsRzRcu_u!*7(bzC;8Z5uY~Y;HfXnjoQ=&QQA5loSsBQI* zl2vV*1j~qrt7`eDF#yB*wlNB)Lt|U6VStPssZ5=v(8>9UoNx!bYlISUzXcTz5TUGRw= zQA&^b2ugUM4-Etmyq90oC+RpE9WUwu} zvf&9S<0r?q7oYi-k8r940u1~r`8^LWsKA~gk@(<``z+pI`hIn?PNp*B)K3Np#zfO5 z1+ghhTDmd-{fW&*c!>r{55Zl0whVDN@T3TSv5@80kQfv?{FTUiFfb~u)gHEm(>u+q zT%3Q=@3eImLpm~CIdGm;SVGqzt}VvoN@_3On<)k=jcq(c2+9+zjAzGvzp>wNuYOiw zfJS~J&lOxMt#Z!OV1|}?6gi8Z{Mvl<%qKgk@#EH@qMDd_rmo0vh%+|Ty+R7_Oemp3 z3~6=m8uD#0-OX5OrTjYY%lT&tzF~tT!l?Y^+P?vO?rYQZ z)YKCX+g*%|B~Tb(VbG8JikF?LD&kJn4B^3Tyk)drpj^Z-c05@fqpNv}=+>%|Jm2jl zx}z|Ev1HK36Ao|8t_4YT4HXOEb>lXpP=S*WmC&-X-6iEE_~16nMZ%>3vM*Y~gJ}n5s+cJNAQpfMZ($rvpZ3q|aUV+z0WFkqi)s z;wYa|Qc~*gD9hZlcW)_711Kh`_epj6&xpRk$EbZs*vR5;BVu5Gyv45To57qoe;QHs z{q_AW^NWD7yL#yMA~ZzMOx;UUn4Msb&jC_<9J9PZG}xEt)JG&4wJIGZyzaPt_}!P0 zd`6{3J>@=3@rlJ4hCprWcu6esfGV1xC!zi8(e`auR~Mgp(rcF#KyA)&GO7*vOcQrA zfBd-jvi9L{uzI}?dp|&~&EAFPrx*$?Cro6}&ehX6e)p3@`JXsjjxJQY2i^!*aaOdY zm&TR$pm795fW2eukj{&afQ$ z*Pw2}(psK!qyEHS-~w8%ZS{l}+=H_Xon$Iok@SowYg;km_HsU{!1 zqZ|K81mzLO+Ebxwk@hF`^b)GcTeb&@jG_=$bv-ifS9{ailPTL5zqeWUe2V6}yx92@ za?dCSZDuJWCNl8)L*{XhykQ&&VT`=J@$FvDKUD!8W!ikT*695SxjG;#(?@LZRj^sZ zg6f11pK?14tpoFsB_IcN==FHCq%lZ1o24ewLq5Sdo^WLx_^{X`tNkWSz)a-8xp=Qo z!fQXT6ovQRnXM&f?c+~)1^?+`AkFw3y9A|i#t3RE1iY!OZD$iHcKPL<$&gCqnv z$kTgOfE5r#C<_(DS;N144Gs;kA3b8|uavmLNVI5y@&T=GE#L+L=@Lphi?2lUGG>m< zzL-Xaxr?KYqGMZ1)3_aG@!ps8(O}6YgFFVYvKcTIh4p(iuQ|+alAv*p z0N`H#*33~YH}V8^A6Ut%&%v5&Yby@bM;uCOpfq$MJ|H2PqaWzbd0E+aXx}`v^2X)s z9mya>@xwTXPZKf``?PhV!qJxD#o}G?;5)a7h&Bru8xIb5d|I-l73kt(aE%PxWFxlL zHZ`e*TtL?z&vR*wkK+(r(2WmQM5c5(D)2b9yP|&*FTysk9GPg?fGeJ_{!j+$9cDTK ziSz>!18eA%6*hmWf*0YmqPc7H*%G#4R#B8csbDQawh?fThDY8qP}NEt5B&1{6M_l0 zLv0xi^7Gxny4t8=6uz2PqHRr6&`4m&zK-L}*!U^JuovzOk-cSH@c~{uB{Cy>Tbs7B z2Yo{k<$N}sHX@(7JmXhvX!Ldo`xf0pw4)c}LbWD<*XC;PM%AC5kj!Qn1MIfG|p z0LkFbhQ+o?56SU7lVek=#O~IK%|}Z}QJ1H8NA$k4T)g)p5Onl1>e3U--#8?m&x(eN z+-w=CbvFb;1u|>rPm8v<@+c7^W^L*!n7N1OIl>Q}eHD|8GOPfo6ScE6HR_ixlsKEq z1Zm$RHiqYX4U3e1=yhmq6sLvSXhOl8c3pHKT}E({_kd9Lc_>eh9t98`cfqKNh=;3v zir|%^(e+4s#zD>jh_!`T>4KdeD@J2v0xU0UrHI<-S{aROi9BXte?IN{22B^B*iU)S zODD>2vOmSkxIF5JGUrMuGk1<+rV1Erl+QW#!s$<5i2JKp_W{N*{9+`e{0<5Y&yZVY zC6psk1-bH) zdlg$^Bp@Rlw`7y^xw=gmT9F7n7|Ve^xXxg0-Lt3f5pCOcjf5{Dfm_9Ige_TtvC$kX zQ7L;1f8-HfyJ$}yll|oES11yr?e`u%Ly;JB%5)$*M&cpsSNRJd-p%<R=-+tvh}`k1-zc!n*o)=uRkBOa3F#XweBC|KoRSiPAN(V$!a^VU$X&>*aXgvdP1t1d zq!{RJut|%{llk;&Wq7fDxZz;A(A@GUr2`E>OwwCt=jW3E0>NEU7xQ2R5R43*K|qGS zKO4m+*s`E~C(>7PNiaxnihV`wn?d)!w!>Y-I)oxDRWHOzK~=B&`WSqYNUFe3sw;Vg z0BN_Gh0@4OfPSzypaI8`{lej4;Jz(^P?oXkpn4+$^PgY64jC1fV`YV&$m4s#>c0kl zjfo383SQ#u;Mow<4N*!+ZmOcRM<67a8(1cIHauSYnX>-Ep??kFd9J$M=C>{GeO?mL zU&1|s0v+;knok~Ae8zW;JHe9TgqI}c+lMopq8G7q@zM>f&s(Y+`?#9E*(gUN?LB;J z^vx&Gz7SE>h4PT_@F5PBJ&Ad^JRegN~ zD@E8!JZWE|R`AXwye|r~blbU-UDf(f8pVBkTZVB-7_<~8`352=sOoddBRpU8GVd4y zy8ouxy0vv~D(c{w#d~eG&Z(of7`Y|{wo3#%S7D`|1w!W?~PfUBUnF4Mm+ zn2W5_wLhD^O!wRY3FHN$4$=>XPv6j%o;a)T`G44Z>#!>GuxpeV#Y7YZbpr+{UDARH zf;7@dhkziZq#%kdV9~J&gUzNxN&x{CK^o~43_`YqQVNKC>%lqich3Lk&zEbi8E16% zex6_4vF>%RI}~R`|J@VSO-`quK}R+Pso1}#$T9nzhb-cMMWJjHC8b%s?Y8JYAZH-q z&1K(`%96A}XAo&{D+1XHsuJV%z68WzqJ0_Yh$CVIRC$Le>Ahrx5w*?MfrjYUnN@Sc|Rv7B}Gz|_PX9TfR{)DKC99>X7wMnw1Ot4URH*=`8}QL{qn0 z8S}MSR9J!^1WCH9fq3)r$jOzag+C9GEuuWd@=z)qiGp8JfcC z<1N)i0MFttKC|NdKxc&J?#M|{HN~uv{sTv(qzpEk@u)oFsQ&1v*-~^zcehc?w)hYH zfT)q$W@cTq`cM?f=89)(uVQjEh-z z%EF<@L-aRfN1xPuFpZ!FZQo8$FM>*h>6>N6dTxqb#ahNFt9g%gH3Qy9_{!T)1E;~X z9Zfk0;!ntrMe@Z5vFPWK;l`E2e3d7kGj(O>HnN4*AsF9Hli3YY5JZmV6n-wk z072S01-2(>^v9qLWdEn(;ko}cLZ_3x2T7yoCD`P4pUgOE61 z*;&d`=$VA~lH6zA(Xr!}(Z<77c0bG+VSBq-_(iM+G>Fn69S*t%i!1WzhAbv0n&MBi zWLb7RG{4vQRTshQ{*8K}WVsKL#i+4L`qYXVD&(l#739%7wv@ab95*d?(tW1Ej`w%6 zxg<6^;6{WB`ZcKRkjPf{`Tp_Rj5%|;*HwAH9cF7jfW#@q@HPWh1;|`dYZ+)LdBX>t zAbdP#+3BJ7On#av@R*jAyI~=04DocR=h=50ob3UKN%K>WG;ZNFSaW<1UGK|Hg3O# z(d3f@o)<2J=(=+HX=I}&3)tToAS}x$PPHV{Yl6q_sh~$xPF?y^ezXA^k}tEwaAN4o zTP?shBMy`TV^}DL_a0O>fH4HRa4XrtAfkUb#PRfx4qUmh9k02QPwd(h3=UYg1G3uu z!H?+MguO-l3>shd?NK5FZ*4{`?B>ywgy0kT7>$IKB5=)8^{3DVBDkAj`fy0W{AX2<4AsD?25t65gGYS>QCQZp)6& z*3>W_K@`K5W$RQ8nxMija>9%(+~Gc!66-0o*{zQXlM*uO`g%^37RTvsHQ1`u{? zD9%asLIfOjAe5x`NA9D%-R@(u^@O=ur`o@Mnk-y7^5x4h`CI@mAurc(ZfIKPdp z8si8Pnak5d#_ylZsj;I)6rk4p0~te1wS`>OE?iZ99ZG=pk5(Yp%8LnK*BNRUyN_C` ziMF|_xX{vYvZX=()pZptFvVr5idW4xUzo#*(ErV-%6d>{bh1Mt9r35~zki{hWxnLZ zfG@;YU&IFTr~L05W9sJbVvZkM&2m>CAPPYD?+PO;Z?In-o0m6@4aomJQs%^0qH8*@ zS*-jodOZNq8$$Q#KHCoHsKI^E6xq&#_*Ah@sz!rp{|IH{UbUH`7uTI2VU-nq>A1P^ zflNarVR+JHuDywHelTe-(b~O`iC$+1zXa{fC+H*DOQ)hBr-wcUCBBzW&2{RpB<~&3 zUXpM@8QLy>$NcpvNfhWVLc^tE=JDgl2=KTik`?8ll5`lHuKR4L3HZW#qPD0{>Gd2^ zNc^NrAhA2ks61RzCl!uPVUknD3@+S$=GR2A5%-3FD;n}e{r~vgmphi*4a|!GA&15e zG3r6=3Al{GmnvKoRw!SftiU|#ReTr^U@2ktEI)lo`PLU2E$t%R7{z2%&|$;l_~z8r z0CyWQg;CD#c&fP3Q)?LeDi~lHE8!42w|*KmM8iBg4aJLLdgbU?Ni{DmE-Ja=t_XuJsOW7QD|5MAQst z>Flep?|C8Tw$aOAR-GzMYBs(Mq@pMJOj{lH0c9`d6J~rj@`typ+bn*0c#L(Eg<3WG z2?*A=vY=sBA1W2~J=uC!#kOo@V31G`k0T7e{ndRq*GDD(o@;*)_xV3xL;{8uDPm65 zcuY#v79peD!L_qpTMgX2yykxX?0j)S{-FSpYhuKUXc+ozQns-OwAp_GYt`j+be{*X zeeJ^(a3}9(Mn1o^IG5=wSpybIwB*|3FVT<1zq`MB05`Jb&k4U$1pbb{y+Bjbxs-v_ zEk3K%oZ#ogu~y0f*YuL_9e|4V)PGvLYjKtAnEn zmtqPEjj<3mmnv_roocV|N%g{^lU-q^BZ=Ccu?Gt^K~##l84m+yLb)hiKb_it^x(nM zyIfX!-D|^D7B!)k0er-@A;Tv_E;xf5slV@xOFF8D7Xkm2|;^TaJ z&)iKbcw&j5+J|L8t0MJCn+m^ZB9l{(l6wnR@HtGz9lss8zJL`7af`oJhAP+(nytX+ zxfGHd!V2{lf^G-8iR@>6O;uL0-=*&9m>_;uvraaqg`Dn>bly>z{%e0}iP4^Ukn-CD zQ8ba3W^7XF)Ih@wArNErltDX?XdJ$}qA5c6YYz||3~uTIr*YFZWX)MebOsSy5^S3N zV*jw!L)({r{Fp!!>xc0ce2SFoXZlu8%2M4k0t^<}=t*q76 z>tP)mHnAQ!2ggslRXnIEEo*iBsVWjc7>!C!Z{TJ~!6m*up&Fe{25|y430M?1vt-2wzT>jhb16QUVZH%0=GYNV+=Ys!;_(ivliDA1fTKjygXzy6x?4 zN|F{25XQdTKCrx(fV~O4nH*FVXMJ6W8lIvmloFY>Zx}*u{eK!t1gil)3d8iL8 z!#enzZ8^2G&5xJ}-FJ3TGK=S3bsuZw(4-(s3knAlZfCqQ(K~^YBc>&$-UqB4NQA~< z_KP;IwVrQ#(YCmTkv&?A5ux0M&6^GPvzp1bsYq+*&%Bz|DDn_Q7Qk;}?DbD?nq*Y% z+l+s!KN=r7l*leYT2C%<+(LBRygm? zAeXCy6Fsy1uK)5KL+zWJ_GsSlShwF}UFq832Ull=<@Am-$pxu0$!UdiD;`(WO6A-e z#H=X$FQ+mSMb-7>xvz>_jsJDH>DP3radB97U}AW1Mq~bi|M?J^lDx1F-7(!`?sjN$ z(FSW$%}wjnt4N&xSyivABmmO6=N1u@p(iH8cpR$8T^~M}iQdOxz^D3^P@pr&u00!w zvUTat{!2lY@c>Q_?!T@f`si9nL7sn%@26WkP$_Vm0;KI=we6GL>Hg-a`}cd(w`H2y z>MyA_)tj7~Rhgce%C!;}-M44YBiwpkb2S2henT?4H~6#QQ)!ee3ck|j+jSmE6p0F% z4(k(o0qE>o0P|jB8?vN~{waV*w9`TOJM@Z;FKNN)6x}+uG^6Y2-DZX=sPnq)aN3gq zOLv`Ft#>yz@Cdm?Z*SOQ(r|rLjR};x3A5SX*SEL4q|X@dR6r!3`9U!)QuYT(10BO* zK1P!FnoVP#p=@9vX-&2gkTP}I2%$lP_!P$DqNk?Uc-RJnhLLXpX-cIF`c432RJPaL zUtU3TDVnNmVb^Z+)S#JtPcf%wFlP_yTR|r1*ErE~hFaj|4kRAorn>In zjtqzd-K)^(t$`098~GXCo(OuN&RUv3>;xn9X!N0uRP2Zd!@6}^JU#DUnwT6J)Ykj3 z4ixf+o-fo;C1u6cy{K6MHRRs>Mrs6gz^fT|RumO@QMyxOdOd6xZTc=WAPidYv+~M# z3gk8Jr{{w=L5RH}ZM@yTn;`wdRSn4u9?*KpkR#>t7@4x0X}Xsvu$6RE*Q^lSDJ3PKd*nKt?e5N)$=mO$+q!;Y(sM> zWy!l4cOLy1u!Hcjg8rLKVfEM^q%+<--$K!aktN3daXy0!np5DbQPEY%!5lCJC8f1% z*T!-a=-FjH=PQA|$aCsv$?bk2ydt9$H|E(m8uqSF3m8T=!6*5flz#zmJ;NonFv(Ly#kS2A})hJI1C`6;!R_X~wE5zTc zd@Iz1#{{qb{rmR_ccQs5O=S#*bNc)D1Lc!=Y!J1X0|hxYI2z5;IyJs|o`KG3#uBvz zSJK!ZGa^wdS#uYT4&JA}p3CwH=0$Ad(d6Aq1f@lf6K=hE^M=Bw_4XwDu`7L3>|^C+ zZ_?IP=8HAYpp2R}@YsY+KlSlE>nTn05R(&VOnIMP&;kYGBu3j{W!nP15+oX;m1P{@ z_0@j9$9EKtKL$#ur(PYxXY-x*WZu|VGdCtilU-9>uM!!bq>{I&!y}?CDq&k^!$L3> zW~=uAefTg-(^c_)85OK-CRw?@@^ajX6rQs7IF-i34Zcq=t&TlGzJ=ZSg;MPwVU$mS zX~fRAzhW8K8yc#7bZ$qL8?bQH(#`<68(hW-dL;??Zb?@_PiEMhligC z{He8R-$#h+-)2}?zhMv8n;my?>whP*y zWdwHh%xgz%r$>c0Ulmp96EWj54&+H|L@;N37z^ViW*MZ(tzzA$nEV~~mlqu2(Qw!1PjvuJ zJL?ec=saH6sRsojqzVY2{GEEuL`W}v?S(gS<9tbE=T>lWaUJpdr4{dT;#7!e5`_X$ zTYZ-b5JmPtTN3@Hph+>-bpLuVU<~Ca+VQhI?O6=fg<;f>FON2IAoNXAer8o{TX~a= zNtkaAJ{)%b9ISr`vViSK5Rj+FaA%=%tG+r`LYE+mX{_J8+1obU83ihW0@_xSk7ysB z-V}#j*B2#?CWxJY=Z)dScP``?cbbzP)(8N(IN% z!C{?x<#^dpkaa#0A?QLgioSUEtj0m4{IEVTr!T927V#(uwQLmlZOgZX6J26rd_AaeGn;Fq%{3vIaQ~GY< zjXo;h%znWwnQeQ`-F{Nsua+a^q%e1RK-)aHK%;wch|V{EM7^S&p*io7v)Y-GqQj5* zPdxKy_(E-k=|qLmkkYkfbDGbpVz&gLhKYXdzlM{^Y3d6Y2C*Fqy106}3X?@{>zjcs zf^lRZDtZ=$D%(ME=xof+O}?DgL;)-AIW>9sr*vBZBXz?L;jxqq;+Cc05&?e})c}&J z3YA~qmJ%eE@7}(RrcyL>I#IPyd^w9~ZR^&pZDIQ9%e5TzIV0KZ5SVX?Rom<`_8!G~ zk;@CfWX66+Y8z){?na^60+XjXf1pIq=zsGiz5qTlgZzT%x;J7waRUFa=LNV94-Ej$ zicAbPL$New{>%(Pllet11Nw_bn0S3v8*QC;V-J1XhCUP>5#Mg#s9?QZQVaq`Pt1*5 z%(}TTkeWEN%oOh(Xy(;|l;F&K)tumO+P|_15}rZvuI6Ujbcask&R~iQ6g+TlN`hw4 znRGV6r;46lOZ}JCerIKvX4CT?i$FJslZ}iAo!wn%dP*;vc@k#xJuN~swR5CE?j++s z>Iby;_q@*|x(ebiLK&}D)pk|oJ=K#Pje6mc;Fzbbr+Pbjc+B7!gQ=BSRBF9m+d-;9 zM22=8#k;WN!wmulJ-)sNC6<3Udn@`E@STK8OW4zJ36tGCm7{hfMh2nUkE=ZQk&Y?z zWc^~TKnUK3e5DRug^$r01->Tz*#f?rOsbv!{+`*8z8ZIF&Ge|F-72_R6c3Q*C8`hj!pY5^!K zyu={zM&8}IIrWR+?-!lxYq|Jo2_%O@LDR?LW{zBuOy}em`^D85&C>wD(TD5Vqb1LF zd0H4X+VDhI(U`HFsgc+X!_9=WH;9nDTM@#}f4(bH{P8OuQJ074Ms8|qqE~uugxPyU z`V8$EdA^=$-=hy?hRsI*e~TBM4poTcC2Yy=(Ul)x4Z*(k^!K0{hUo77`J>UR;rBLJBs zan&S}+)(ZLNA=YlR%cJfJY{nC_6Cl#guGInh>X!jYFQbHJ(OH}h6_a%?<7WWN?dPf z$O%s2ye=dw>x*2H$|u$ax_iPyLM= z3eo(7ChluM+74*^MiW9ykmVxiPZ*Q&SQ+CTALiBG$q)!D6Tz_Q+~h&>-Q>6L-t}s8 zz8kcBf&n=gt-CSVr21o2mo1NwK*ki5 zHxRD&CByvRQ*G$OOnq1I4k#4S9y@->tY{Mwq2Bt(aD4DP_FXwo!c+ss)WwJYfS%Ve z{AGOH482mG(Zk3YOt-w|Zn*9{$laigr+5P-mgi) zQs)7jkqvb}0T2QOeF+V~ETeA!qSELC5EtzsGKEg$_L|VAoF*Z?`}gjBVMv`P|;|-M&SAv|*GtNl0wTpay8y{!=wFlC}tSf=-m<%0z~rN23_(ZCS&*38a?T zCQa#mOKe6TxR7qXYjo+Paw;x`wYG6U2y3;7REovn}IfJKrMsMCMqeFTbQ3 zlwj3&y`IBqK7|h6$WWs%U?=GFU^vc)YnMy=o?u%{0Q@+7#y7CM=EcD@N3qdC6^OX$ zmP~!n2kRb+0dj_+1MSEx7|(yl%aH+>?X};CmY^l&zeX* zEw5LVj+EknM#$MDP=%4S?~_zaBeY*2?04q3_5!^_xVm=;TQVHy=yn)ng8!K}ct{gn z%)oe~An^=}Gl(9j2;(<(kF_VAY4N-1_vOB{;Cy8!mvczPG`8vZ@LxOMqKBu2QWGf3 zG2B2P^>)366a(YzH>=1kieBzGB1F7jIEfUjEl_GCQdN9S7ARkU;&R1D1l6Z0XzR3S zjQzGT%qZoQF}4UUQnKQoT>=LWLL;P($_IdP&L-vbQ8q@*u6~Ws5u0NXQU*@cS*08Z zFU!aCwx3)hV=#24f?3z4Bm2H5n$iK|Qav-!nM({d1x5e}KO34aa2oaXp`i_DM4d~_ zjT|nV9r-agH#aqHH07)Qh&M|b)4S&>u+y&4X_RF@i<1pnN+sy8yDlDVpbbt=PQE&^ z*Ab)dP~LUMusRR@_n^pC%(MdROSwY@8|1)!q=bU|$-wZCc~^3li@Av2-_hxT9!1V(gj21{eEocV` zm!Mt56iv(xNRHZEtvuL~L)@95y|W&=9WB3gE+NN=@3wO$07;%&m3`M67#hOBBThmW z<-x`GfC&zPG44={O~iB{XT}8NMuq!o>5~AP0D^)#Nfh`<_GP@D0Vo55zatm_r$tS~ z=#V?bnMu3j_AJIhTZn%psz$&v&tZv%+_@cw&x~B}j0xD3H?UrDFOx)3NeSXxB_yCdt-CrxP3VkZa{Fb|J>*$y^pW9&(x{b&E}D`P7W~=psag1C8CiEdft){RM=wL&S`M=A#zQ62ryMOO+inp3 zH7+Z)j8`vl!3ptBs>N>&O-*x1Xh5W1M;9F7d~~l?K2U#k+vzLJJfT0hM%W(cbHj9dHW@2R#c`un^H~q3uP`wo5kB zZ>nOt_4(EW0yS6(l(v=AbBoV^dIRV7DclCkug^Q%PRoUqOe?BIxS-1sRZh&QLhU;jkBaieK zqETWLwuepB`ewnvhG;2gV<#sk`0lo)>wHBUi2*E{*^ttyD8KS$a#G~R+Di3cWOl0e zE$;>fb|cvtP1d>cE~|RWr6IMoXg9&lPtZlYaUXuzXqt7jw%pT8?@`2qg}PnDaf)HOsYOcnukLN zdWY=CH(ddS==n77l6%ny=H}-vfA0y`fA<7X83E;R9v?^YD|O$}B+u@?b?pX!|7C_3 zzc+n!LJ9tv&)fq9ye1(;Wni&W4G_X3VTgYMwaVwFHs{a`C+nx31rYAuOM&6(BGK$|)%90eT};-Vdh(lk{`N zViU4C|EyXQjtro*8(}!=L60?oVEYmb{lRP*@u1=TyrV5~7UDv*urGGeKfi+KpZ}z? zQ4F$%uJ)Ud7-ng-{ptQbHb?RjJJbj8+5`FM~qfAv|s5ggOgEW(nKD$lP&421j` zeDXZnx@KfN*dkz5^&D$kGBkC*v4_g!Mk8TS{QeVRh{V1w@C%4yh$o|)xD-?yaJN(W z5PTs>Lv)d-=cHIoJP`F~p?L>2Ip)I%`P?VZMTo8o>!Gfi2rml63_M{47k5ch`9kdMBxU-tg{V2DwN$F4?SVV7qq#as83 zFuexNM|$Wc((SGs&hy}D4P5+k9}yd03zy==w~>TPjc@!gI@}-Ut8Mu%crN$ZWpZ&W zsTZ7(r-Vn!m0kjP%-%?x2V|2i{xMg2M}X%eFcf8+W`6Aq=6n0SoSK7_lBgHKLJ(#D z%LS-1aR03CPz7PB(O{n!&GYY+zk z=aaU+Yrp6RPMiY(dg|Uv8syTVjh~x`m~@z4N5;jy#0Y^)Pn}S)6WT0Sb?q_;ed1$& zVX(jNnO3@)m6f0>4)h`8;@X#pGEi$RA(`(^{&W9eg!6?}$L*fu1QqEHUU}xFRJo|O zPbt%gkkdj5Jl5*pt+D&MP=R(>n3LYS_c3-K-flN^zQ&X4l_8FYmq`ss_Q8aa-=C3I zKNo63$PMKpq1ksRGRQcz1hFOuRR4=O5Hj{j(W>8Z-C>(L?j6W`3(L8JY3(88#3+~H zE`vTc0^P-iqY~94fnB~2hKU1xX$;9G&bC7ku;)uLY5Oc7;wV`(gxPSCrz3jKmx4TQ+1r!Y9Xu=+@8;SgH9rK>B{UMP zEA?z}EO2qZA)(sH!f&I(oq8=Zb?`QApnMq}vFKE=K($V~;xdQNxhyT2E59!`Xend% z+dPI;nv2SGqvV;?3^y>3Ql&<#c;)^Mv322^2JS9B_&{m<_pkoYzil7*_I+kXeQA!_ zl8~B2i%QEM3RQV2WKU8fFTW1RS1q*)rNt?t8yaqNDI_v52Le+oa1OC{*l8>HMAKW& zwI3G^87AM>A*Pn$b%hA$Vl+KRkrV-GbyyF99m`96P^bT%K6ckXNR7ow=I z0Uw(rdfgd`zlw?qbq}F52yjqXh%;CeH9im6eQZ+RIgz3pWf0?3v_`QK&W&9s4Inkq z`Yt-zh&z1%l$P|!aq&<;=Dc&2RaH>6N<;K8w_ReN52|i$;_@0XVoAvTrRukzM{o?A zOQ!af`!C~&fOnCTc(3uP%%NLc;zz1gbVY6-0$H<{v#T-TNcu&`olxtAM{CFlM4S!6 zScimS8lg}RcDqx%93gp%onlknSa%s6>g9hH(yf175Vffe#zj!M6yd^%$8CvI7Cd_N z3Yca{T~8zI02vJqrY*K+=@4K#k7NmS{ASB)KeKzvm0_%PicIfmjZ5YndlmX?o@6Uo zl8n4SW|fk=wxKT3Wv+16BHKwABL?D$hy+g>v|VTcszex=XC8vS4bM>{#6Y1FPd(l8 z)aoA3hcIX-T$+#>-3Q5W94K<@5E=nb?e=owExHA6X-10K6dhM0pF=j~lbA*mQKM8- zwJ<`C4t7E%NOebOID+stetv#qGB?|}6v0ii9jo7FbQ-*Jj|nOt0ac1{W-#ii>BDC` z1gP^YL&0?h-ijsf1^Rs;B0?M97-rz=f+7q!)Kf4KG>;uK!`OE)RP_3Wp&|1Q7tCpK zclc)}F%Ay7i5YmY9(`3<85^0EFmLZ=cug|y-)QVdBnvn>T%~f7D8$2N{tf(RN=@M1UM%jp*zLGfup& zp380qm{!`3tsv_T0yYwi)qrHrydW5Oe~`Xe!o{C^-CnY;k!u!tVWMcIA_d zFu8t{r9YWRaRFfa(5mTByp5v5h@~M6#qjF=2w1(b8KCM&2xR6rLEP`u^I#okfF{6p zY{&>R?f59eo1Ut$dZqu%DfuN|!s2GK00)N^I78$;wu9@W8r%iS)rvpfm$A)1|*VvtEbLgI96y=MtOFR6iUjNtjjba+eTX=i8;`S|!+ zTzIRtj%vOd9)92d8v#|2t3Aa{&UIpBjX8%?PL655(|kTMx868rGcjozVth)*Y; z;Ar;#e~%BUYK|yNfLk3w4h;>>MX>}a!p_c4<%oSsjLD5wbT;P!kxh1H4}h^F7$?cY z$!QHWv>*jglpRMNh`FN2k*1=AMvblvBk}ae%9n_C*6#6ptVt9iK!O|Nw_fw*%a>MI z7IZ!EwV;bB@$93^9ch7UL8Lx-Y0k-W;n3vEGreu9jRdWLFWP#Ff7VU;98y3`^T}Hn z*MoIJxH1XrVPt+At|K;U54qN3oI@80iq3i#M_pCV%V-@#CB@~F524eINb{TzhgBZT zCNf-NaGfrNhnu_B69Lu?`e!AQzlhPS&!d6Z;VmR$_?ESuf(<;86c$^{cjqg|uiv=w z(D{#79jpOzL(A6wlPqx(#n@Gqm2+&)B!aR@Qs5gdz}=(aKC3~o)aR(nZK-8!A$gC{ z*86EY8tlc3LWGPMU!V(+TA?R>!kbWmMo4|y?JEc<)w4Po*6YO)9|&%m1S3Fw8$p0@ zzwI`gw3vdi>UgP@NobhDHxBEqov-K}L8Q8Tjqk+zb<8Kbi2?W64C2L=f)d}2t7K`Ogn>R}z zQJe#+DDI%tCpS-uzN+s?sRtLQh$5sTPc~!<{cLyfr>hnFy>C7kOVJo_B5HWE*s7U8YVfW6R|eo6 z3ouLx5DMYn_lLp6&VcR^Z;l86x!TdpQgnz2+%fP_2^B+i56A=(C9 zA3*%NE!$!l>9xLJcxb2?M2k@rL4w@++s1()D@S_a`ryJ4;2svMevjTsK}e@)*H>Gg zL=4>KJgl_mavQ7!?o#Z4A-@ikMpzQ59x5iR+qZk6_@TIf65^0|{(&%LC0D+`UQ0f+ zbKmSjCh5+wY6zAIM#iRiv36GH(fQF>sG2@0n#oB8GD4sONLeFyuzZGwjJ`rnYO;NS zD!>5$U!T?%dADgZy6tt?0z_yAZ4j|BM!G$bC)c!)R2CnTOq0H&TMI^EAi>%s1rLv$ zhp1}J8R`5|myXYrAZklt=H?;7hFZIiP&x~91`OY4DC-P3@p0zf!6AmF^#zcV%C}64 zc4>vxn2wQf?Kfreq1xY_8g5wZb8kvA*-3H;7qKuGeG}4ebUQJ~R-yqA>y@7$ywU6u z-LWQXv;nwnABJ_!-poaPEmYVfAwsZ5;mQt&Eo~KS92&)|R99Fk#Lyi&I*9TlYa+Q3 zGy7wQB?Q1?;1nsznY8<;A4c6D@Fbo`{Nn0fxGLyhrzs19#M$veIHnq_i?WO~!Y+`H z@(a6h(2>&-MN{R?jEr8t6tvJC4kRKSc^GGz(iLdAP2-p<-Diz}Efbe91^*4fv;I5x z09^j+%uikao?Q)pHxE;c6ljy;0-;zWVSfOLj7M^IFYtcT&tT-F9}8vu42AieTv@W7 zJSY_K{D}5?5y`|1JcFOdQ3Pw^CFc@s4%*#~0MR0J939 z$?OY=b(cZhU>+s(d*M;b=7-sUFXYdCDEBY#TStp!YTWm;6G?gp5Guvh_nHxR3<_f` zPLhNO0dU1A?oYZO;XL@cww$KbtS2WY=k@~0sfqcUD05#2@VA5BBEwLP!P)}7Xvp{a z4WtZ}0yZWltNCX-1RPQ^BaKlN2H}{{^J5(m8bEtDm zKRSVkbSUs-Y2<}8q&TrLdpp8shG{#O(0Xtfki?XI@WjMa*KCK0Yt8r>JGQ9VVX^Im z6u-5XNzu@;UmsV=7`6zi)!Es3lMWI^hTA`B4=MWLy0nj<0p;zTUJ*m3+rAzX>RXcP z5Mb-*0`){K(4klZP%6yR_|(&XNX=*mB~&j?VK`<|l)27L3v_Z$q-U3rkNKDR1`3=> zF@pWwWu5@5iY{><*qopl*b7w-G*r(aNXFu-?23dpYbS`W(7-)n7>BImx~v^<9ZvH* z5KCFYr~wFl=asXFLG;ApG5#T1J)vT=L&%s?_VzQ3?-kG`;`Qy7Q1os?KEWIaJTS^4 z4IezUc=Y1;kEnvemg;u4Bf%d>o`K^MG=nO)>RP7VyM-fi;8LJkO?^bAP@uiyjdMlL ze(@G;HUyLQWnFMi5#KxqtCD2BkZv_7Z!p3&Rr408eF%hSPWbBbS6B>nz&fz7A zaE$mi0>~*2lnP~=1KJWo&gj;PEe24{#npVv?w2M~9r$3}`Yo)iWGpHR3lU3$S->w9 zb~j0;JtfYk`#CnZ>RW{D`bR%}Rle-?toK+%^-CoxlXQALeM7(?mIrmjyK^=Imv4G( zX&Dyi$P_1<7j~>cwIDQ7u1cy!40ay9y*&H(D-Z1d`3B%B#ps~#Op4tOCsp6`8^36e zfmP6oE(o|ON`c(4vAje(63_vx9nrb46vA+W2ko-ZOmdtKH>M~%^uH{s%VHKw1^DLU z>r3_QWV^Fv)UE}c3gS#oks|jNiGv<()ErRrFuQcF2Q<8+Xjv!K+fQ7a8#5aHNGPzO zSQmTjW}WXeRJn=aT!~I&r!G(dByS0C)F_y{>M&r} zpcKYL|4lmn;pY+`Sk{H?dqyU>IEdup_y^JA;RR9iLhL}jbg=7G zRwYtWbM#_(zLZZR`l`=aHeDl313n+na0$HN_KD9E6Gu_Lfk#O@ri$8teK4Bjkk3g)R5^6`OcjG-aa#+HP-BdEGO#wcNoD~9OuRcFEUdW@ z4){sUGom)5aU8)!L<16SYqCAnv&9UUodjc0LF@;HbU%!TKQj9+|4rRdi0q;1IOULF zk@;N)iYGtj?U{-cou(zeAd$0)CS??w6mpE@d(Jxuv9xy9l-iwL9UH8s1s~@#aUf5< z|JWL@-6;SwS_XR>pe2OD!!LzWEq2T%>4Veik(_Yph{t&2RW}Xpd3;d<7u6$M5@V)HzNADkj<2 zJg&x&o-6TSZu#t0{kF)_!i3^qOQHVl73^oF&5%wFb;oktZL-{Ym)nLS*h;SpAy*j) z)EGz0pq|GA91MJ=aqc3Dc<=7Bjf96TJ%Wn?W(2V&v*}jQCYIJj+C&_~h`3m36to+k z(AS>_GBG$+3L8OYGUG&wf9D!k(Gi?Wz=tZ1{kQHV;xN!=x3wemCfHA&&}sgTU!x9; zy5)t2UASeAS8SzqL!00>1mpaY(8%pZO!`bE9bn$JEe{B&c!`?Q9CXA{r2z&W6%wi7 z@(8PhT&BBT>@iVpUZw=P^cIf8n+rOA?3BgeVYcc zlwgVy+)iS;xqYTwaSW>9YBiA9PCs>QNe^9uGHTBnMA$NSj3!W?>H8VUYshvFqBqx& z8(S;|HcL^N!#FQXef?}G0~mV*DKot`uA%hzR9(=;yZH;Mjx`^!qwT=Oi6Dc6L{%*Q zg~S#!Yfkb%jG@1~OTIV{Rk33izaL);@u0$qdC{8VF^j=sVwc0Wwr2j&7Q8Hah2auA z-}GTZ-mX1+T*;iBl~YC8!ST25+)0K?!mgWKGRiylUVd)Zr;k>j`V6J)Ik-nCSt*IX zH@Kac&d}1JP?ZFTqn}74@U8%U54)Z7x}`aVAf)!ae2+>)wvhdvPIXD5lT8AT=MScDJ zeuFsV>iiD|bx@|fzrKInvn%OPuslIh8lF!A!Y7N)yV1bGWo)UAAHUEtaegt>)?~O* z3jO4W740>HBl%&cQClUeJ-}<|UwI86#psf$!wBM*!Iv^xdHfCs;FVm-ThVe#B8>)r zl0(FZ;k7)8iHNA)`bFdfdvL)87@kUFh0GrkJ+McRBVK?!v9_Sw`0@V!evy~oueV9e zDxo&v*&=6l;`Sz-k&fT2RY)ZJeZL8*UH80a^EOGDP?Q|{=X`Y|0!;vJCp?S$+P0s} z8ETA2w@nYti0(s%k$ju-n%@Myjr}LAvcY&XQ2-*EKq5^)#6q6WqSm2(^&KzF#k2&X zhPXRxx2aJUZYKfGZ?CvUk4~fG+fS^J-!k6gIS_3*ToEY(%$X&!Ik=fw#GDXlL~OPU zx~))O68Pg7(Z#Dvy{Eg;E)7*IxS*wvH#S3r=!~PNnr>EV&&RdRuen#HA+qi!-Ersgktf<1f#|mF0a&%r>smgJ<_)fSqIWO^HQQ5*ckhfnhA)AK z)_je6in*kXG1Oye$&naA2HRSCPE-8EQlaQWe~$(kysN8iGXMkd@Yty z+^owG8ujGc8r%##Wf5yj!zfpHP8_QE4m)#mb2n)M%Oig~AWID9hVk))wmskjw4PRl zinJ1a8bE{*4HgcGT+59HQaFde2f;83#*H{V2^0IhkaFkVZM%tZ9>Zl`P=g;JQ|8e? zj_Xex=w!)DZ(+Av8b>~>&a;PCUGGcyn(h|v=t)g3cp|KA^C9BFS;WV;2I6O{fHj(oGTl(dPvB%{g83#IAd~`P#-bq2cR3sU%s@%T)>8w z5H}M=XoS3J0ttQP;Pk~J;zUIWJ#1D-r$Lucy%h(IBjj)}=GJy~2o_b+g`dBSZ#}3| zK%fLBuBDPl_ueiU`0~9m#SmzUqI1BxnHJBe|h5JGcEdM=qH!hN)#KwxKmb{FM4Lk!vcY@RmWFO+YAbPrPk1PU5MIpGv9p*{!)7U>5r!vz=$Z9Kt;R+ZjBtaq)h({ z7#j7|BVp-+dkt-D(GF+EU-s!JFB&Qoc+vK8nB{CtyOW_muCSsSo(8M;&cUG_-=WMQOwu-;^hNJ4=JDFGSnc8 zkk%~2dZPDaoy@F5-N7}H%an*f{R&03G8^lMaDO6YzvOp+O4@~yB-so>l(2|TK^Foz zXN}0#-Bkx$A{je<(!~*V?ES{EGF-Cyx(=(?QgEph$O4)eXI+ z==4PS=+J0@jwmasD=e_>K8B@0G;u!h;n4*+35`_-IQ|d>bnzCok}TSQQzoeaJv7Lv zmYWa#!=4U7m2BdX?}RYvMdKxqy&aDv=53>bPY+=|uA@i$e=Va`@2km9Iyw)uS~UYi zA=qS&Hy}k@Li(&lfW4)6*Vy=?fQat#2cxu$$PC=fSI4e`=p;^45{}I-X%|!46v45F zrorSJku8xGz#V6FR!^5L|7HQ$KDO(^~+dH-Kgo9)8^;i31ki!M)T{hsceY zkC;g-%!QYvqxfm!9?8{*xO3l_(UkTRems z;k%{s6mm$|LubH_h%BMu-B}{o-Hgo!dxuu=WpE3YHG!h@sBB_nuF%DM&E zzl;D1P4K&7%#bqttVg#J1Hwe)AV_WthxgG)I4tA;=eKNR?HY-VzVj$ZY}>k3olyHv z)-@tNm9F@|qo@N0KtDn?TsT&Lb_x4nG?SMp0$x47T?+4x%BQ5~Z_=JU%TV~aq!DS=(r#lDf|0D9R`0>N=Vi|Oyz^& z-!0{|Gmp$+rsIqlC1N2lIe7$mUe+06L_Hmy?|)B5Os~|f=mZAz?8=faPVr@8V*FJ> zS4jK=*71WY{qZg(B?S);W{2K@4#$m4uz@H^Xy^h`)kiaSX)SKu|8S0ucZeeE!MbCi zvjCQ&5^V;7pMEalZ95F%aslfWaX_Z0Tc7Dwe}rdsgX3)5bL0ATP|qp< zJ*e!;bT+zbS%j;|rom?Zg1CleMhI8i>?1;X^aG%pb>{aEq{CGO3bR5iVi`aqh_p$< z7A1a!|;#aHVZ6^JTSL48-VIgg9zT z&7GazIEJtq3lYS((mfVm$)AZ|(lLG~V#E){v&ddV{~QDui~>u9u$eIyJ2B?q1#3M$ zJ=#Nbb!7n!e=zj-O8lk!(d8&2O+@L(k*tH!$E6#v6TwVS5Fy|;&tvrL+zki?S)pn@Bcdo1qNfY7UNJH#%%h&&Yc?doh zmWRLq%97-(z#I>PEo57s{Pv9yIw>wG`DU`8_@t{7e=id8>x1>*(CP6nscq+~Qni)G zu0H*Lf0y_ZxZ5{YLioS`Lj3*e(f|D;|GO^#ornKD3@Z!qzn6qqhW|eg!^h$QVuPeDp_si7;$t8xY$t685p%%+wU+{^#fjx3;z( zT)vrY%L^O;_$G374A&$iYvGD!g^7tm#Lo+5kayq+2L~`qnL^oLdiTci!>FjJ@^XJ5 zj?<(q@7K^>Jwg~f8w-^94uOcIr^l@ANQyKiE3F}#BcT$ADUrm?vYk6qyo>&REZr+3 z0-8kq4%jH>ER33Mr;Gv*+spuG1^)rQMGa~ucz&9hFaj8^m50~X(IJW_01f5FjJY{? zs0nu?(T7MIxO_4KDJRCrp*KIp`vSbC-^w!+ zbQ$EMTL#SPD2TQ3<%v(9Vhr2($Vf8r$5wt`S%C`XKU_~L^Nm-jeD{vfvjmoi;KetJ zp6;qTF#`VhoEu&rzI+jHfp7H!N`hiq6VQ0JEn6OY|Ba^5*7FaF4ZBFBRBt}ZY(&Uh z`}YGZhVZS~WG+0P13_f1K8d{nt4sNpaR&gr^JoJ_H4efFUsqxV;+b;l5YDW#s1qY_ zUj#b9K}OBCV4*gxER-VRbzqIq^_US}$IdM*JOK;_?z6LG@5&p|(OH%tB*OF2%r+cs z0pfrlcN<1zdCOsG*jJWj$JFmVY;5V?d><_VJC#C%F>osvKJLE{=;D--nMWuC8XaDj zaSr^3!KO#xz~JFlgS&mzi9=ZU!TPSeG(tOC$hfWUt~O}?#Lw0G5x_0T!r@vU{6rvz z=Rg;f{^WJ6!20i5JLrOiFn;t0_}Gk19ZgLblztFBicm7CtE)re|LIQkzu2rnxg$_+ z0_{>(Ru-AVvw0paE@Tl&K$RXe5WyAk6E}`eY5X-;0N6438cr>+8O&tcbtND}uF)Uo z2_3JfVLCz!7jK#~{O{}Mp1$vLMe7mBbL`4}Q#DjS3_AOgJ zzH-V7L}Frrrv8N9UB8~w)dc@fED+NON(wqgcSRHJq^gJw5#B^*=5(OShfv8AsS2=5 z*#k|;9;Qbe>F8Q2U(wSA&(^e36aTFKI5A=VR3Q*(23l<^I7oIUs$BnIwyG2-=Ns*i zTWAJHbK%_dw7as)-}j{Z$ckLaOV0oT5GY;qL*^<`tls7D;lmr)P&OC=!2s8Rv1Sf1 z3laJS3$MJ`qr@^1uBK(Q2cndkeZsA7c+dvPMJZ(9u`Z|3i+QZ#>sNc?&#wH~2tQbu z_Cz2E$+IfM>|LCgRRWwt7ML;a*Lc%7fEt_#n3TD*^vDee72Unxz!QIVEDX6708!u` zU5{9FSOibM$7pVVl29J?vKva7tXPS!a5@}`v9!X%jeq=zRfFF8;uU>sH%?WX|3h`38WjAlGKIHy=dK&G42@pI!QM*bPZIEs**j~pG z)$BP7+y7qVd=l`QLy3vF$6V_y+(Th(YUqOk0&>J3;WLQ$J@AmY)*U#X+b($l?!@qC zsZWlL`yNhUwUGT?J>sA7Y?^;1bHG#I<>KM#jX9yLtPH^L#D-NGK>r@xCuS|D9f|qA zvcW42mZK>^`9YlMPpbY5@C#st=chOHr5ll4to#UDkF0hA!b^}S5;xq)zj^DHqN1XV zO{pO+$M%&6<3VN)*z0`>bGJOqHn5H=>&O57@0Nkc3bDpt&4MzTT3hq*UMPQd5cl53 zmRKW8O)#uygyp@Uv}Xh*QxsMI@0XLzVEpIj3hJ2o^>|U1=H@=Raw%2hIfG7CiWC{gX0j?l7UizbdjjmESl9A2e)rNlSu)Q;Zb=C$4z-1tz0s$!yUn61y&hqWS|Cpk-`qvBAOLv5%eXJ4UBw zX2MJQ2L_Ju^77*F0&8zCfz2X*d{x!eAwN<0W3v&A({B!eFBk#P6teHmqem9#4hXpB zSjId)G!y|?U^1RwE4FbTt( zjYu6xy}Q9ggy$eV5O5MRg>Ik z*DS@qu%+Yp5W{a>Dn5Svi21+=IR2&UBCbaF2e^%WoSa*?ZNnK5j0g=S7@kPJcJS#? zV7N4wPF%%!pJ}l>+-Dz6!+YT&RF^K$v_GE4>Y`Wh6bL*R`+evBuoR#Xp~vKshSvlM%nvI3_t_V~ab-;hjnEaC)EyfM93m4jyj0tA~Se z4an(*g)qYi6>fYxetf$Gzp{n~W}(mi{P{d5N9(O{enG*HEwNLhUwL!fL*wI@uunAF zxytc>nUi0>{0*;+iELmSAC&&j-W@MxVP-z;JF_lOP)JW-za7hzo0nJO`HlKmpPu>1 zJ2nZG3(vDLn)=a^OOeshDUTQAnsak=G4<)||Dox+<8tiV_pJ!2C=Hbcni|rgl$KJ` z-X-n289dH;Al=)SM(`#r~T9>;NB zyIWK9PM(z%no7&=LCVQ>b8~~38V~)sA1`kj{sh2sETFe${4VwVoWjVb_0`NjtKruU zJ>gW;aH_bla7kX?lh?0#T!j8Te-f#<3`HdoFh)kaxi+=)OG$l)+z3NO<0BK>Z+xA; zba7s5WONj3*zDdXq*gRGW{STehPD3wGsNd$-AsIrsM*=s;_Xq3GE4eaR@z6UAPi8E zst!A!^H^zMbSQF)yt2G}hUJmMw`*g|f7?v_RGSFn?2s-Au==6nvHV7i?^J z7#VZ(^Bp`rpZkfDNMc(h$4JWCvAiDZ*uA+nR2A0O|GtD(EXi10 z^xd*$3mobysQ>>tlWdLr{QS(#ci=No$=F!>C*}Wt zk|gu(TwK;CPxcaj4}~-CuDiQCK23^|r6mU^XBYANcu*K=KyF5SO0pesyf{9fY)p^V z61!Dch}u0XE6WEzE4945{QC8s75Ste!^6Y)@^GfbXZYXGIusopZD?fF5Jxp;h6l#Q z^$HAI;%A`%F)}l2!_R7Z`SN9V_wkJzH~#xsTK|sndlWSh5fSBPUGEk|q59F$p{J+! z!;`74HGds(zWDa-+oh#@g@rr1y7HT=tO5|mR8=qDyvcKaSXG;iho|z28$BJJsF;|} z@#DVmovf>4soo-^?Bb-Oqhn!VVPL>$9cb~KySKA5@6%?k4gO{SYf`3;T)6OH_l>3z zq$s?x{rhv9r!-7`)*raj+0_NiXA3Q@x!zu=#x7v>(e2w}_<1p=a0yCDX*pkKX=yn# zGvn;+tf8Utt0h|H)TvW`ellDUfW)JtX-7U4Y0Kk`kP0r+$&&g+F_4`zB|A6}x6sow zKC!tL2MrI)$k33S@W?bfBO^n4vTu0UsZ5ppF*+v3^=k(tD(BDpb{;x(C@VAbj`?kY z93LsH5fB!RYLR}svU0vL65*`MWY_;5zgcNnnUs{2MLEv9zXCk{mRJRFvMtS&c5#o5q zu5fyi^rqPLhz8@Ou^Lq1_|@LIV_&AKeAwz}e2`(DAq`S+EyL)0;6 z|D02}fod1XtDkRQP*MaIl8e}wnwt9h`ntLbiwqC!(x4$Qcj8xZ*xZ~){mh?%fdOwn zzf&-5xp9MAgvE^m&s4ApJQGC4>LumEsci@#rf$?SkKTTE$Fl^II`-m4jY)3dei@ll zu#3S@+x}~;kz?@RKOQ>$b-O5uoN)0Xm1*JcyoF{qo|%)WH!*dqtgK8<9z@ZNQvQ9V z#DN2B>>ho*`}W1BoIig2ID|+0ha4jwK74rl_Gfej(9%p--o|M}n0oX`d9C!nPYq!1 zT2@xqF~!KpNR-k~v6vwzz8cd;=)tgyIQcL8+{DDhlP9X$+S;b};i(mQc^7XNU3m5K zC3f;$nbutXNTFcn)!We_tf27V-aYd*+VPbLD)@i#{(I&kuXH%5e=RTDeLU}vV~o{a zA5hmKC3u^*bQ;jqJw6s#Rb34}@uMMk(Y!6LaLmBfL3|eY`>;7FiOCUl*1uoM+Gc1f zL-=u4QHHLptb8-uK##iNV|Wk{|5d$qHa50B;q>dx<=)rT*5boa=I6yjO!^)T4b`IQ zLWlXSa?e$pa^f(*wqK_l4j{GNf|{O&cu-qwc4O7S#tj>=VC`tHUDoPR_8~1Nr(4%$ z%<-8i{nYW5!WZw~KV)qTX6;@V#q#5?{}(VGi7k7cK~RIy)yLV{J4{=pXOP`Ld|+c` z75FfielLig-rSW=)5d5U7gshau1k@TopMo`tIg1*keTuILTM8Jt`p|r;VGyTj;p8; zr{4^S-o)Bk%!j{RlzGc+7)SW^v)Ab8=}{TQEy}c<@$nH677oA)TZNRVaxfqM{gUDR zAja^x$AtJt@Xq7o^$>a#Qig_xs#vzx`hGh=bM~;TeVD-4a}O|p$7)Zb8;k$$Up+!; z&5j+UP!2U5W%4#T9}74apxGItrO8BDF%3``Q{N2tgb;OAeNJy#8Zoik_=ImNZsvjP zfGVe5Doeii{QrLreQNK?w_hO=la#a<*+EXae7Vj2aEAM%SWz;si-UxW%;&ybYOBY} z$%t`C%%H0&1~9M^fBoMjRo;z=1RCmFdD_^ixjAIe>o}c$yg46>g)J>C&TvJnyjwVj zoR2Q#ojgj~f4@RgJ8?+I$1^?&NngYoV}#BcRJ!QYRN;rV8|jufhn7Kk4D64EBCe96z$x_Mx=53on}(06P)1AD-Z3)5 zs#Vr`WYqlM1&ASxU97EdU*fW`v}E9rCPN?&1z_LEi0KpVT=o3@x@5ADPsX=z-tX5F zU6k8Xq_qao&guF2I6B!W*5GPG0gwa`QW2wwq@^Fyjz(hJbEM2CPcGtX#~_rTEJoUs zW~)=KQ0o(g`wJc_@(}UdNW9rd3GXgonr#h&0f2^vxPLc5nqg$Ci6rU+M6!VaL;TzH zw-9iqrXJy&Mu^uCKSrO5_!3uK92}ndZQ{6m*a!djve$?Rdwd%r`gx=!Z+|lb1C`&M z04PvMRa9uqT%X04LwR&SR<`hmt-E_!QBm9JKZqN0a&kzsw{G2%k&!{Po*UVEr+;7| zPt6lgAYC@J;*qb;l)MnB1mKb$mNS6#heoGBWXI?myb_I^(_-|ekhD5GJ0)rjgaLO* z*Sb<(4=9b_zS&wMU7Nd(f$KcSgsrs{i;5bj{D^cdg7U3*y3|&;#16!BT67-0DJMA= zD&iaPID0$)QzurEvfRHDb)%s{4ljG>N;jg97d6Ad+{#K%TU$H@j?2C0`5mjATwK6= zpML-T&9}Te$c;YU-bwK{sYCw91xQMwSUu|P?HwE(?Cd<&EB|SB7P$^ZhxV~!=9`(A zbBl|GL_}hG^|4S+P_PJGX$}q!Z!YH0AwonM8X5|C3$w^GT-Z8LT!T0d$_+9nN>7Pg zm3cJr>!sf7{~Z|`GVY~ycXK13PSyr_y41esT=(KR1YSGUv3X5EX57(T3SYFa~O30N{ZY7282 zVm6Q>5fKqyUXl`>a!hh!A~E$u!;q1l?)C3|q};oA5A#afV;@tm#90DS1XA^9brsd# zt@EBJ@Qxf=AA6OVnNx_Fs|oT8jtQVMXj4S&*~<4BZAp66#;{ZM`@8jr{YfPLN4Ie3 z6ppVw-h5$h0N+&`IEkL#K5_BF{%il0LP%7HwOrq9e|PCE%wR9jmhQZk-`FS*-vAJ- z@w}LtZdFvoO`@Z^-Su8Swx2$1s{O{h+?va#~We}AT?2o1GG*76-M2JqYceTArQqSNIzAGmWcEZ&;Nm;N|DmX3~?uyF3y zK4hWs@$tbyBbAP9H@ZP_Zz>l>QYaHqA&_#M0@2iipCx|s!PqpjQEO`}A}<#>U)O|< zP^uq{+7_yY0sN7b%=1`LAF{Go5*HVjoSe+}9wvxrcDPGROA#Jl-#_cw{ftJe7Z?tV zCXg(9{dn=uGmzWk|7)LqLpX%WM{9mS-)@#}Pmqq{wUm^I$VhB6JF2G_|H+(mZ7+aW z(1x+(_5xC$j!tY}87d8YV@MzK`jf-MsRbDk3`3)piLy^wn}w6}J^%&~TkeBVI+=MF4$mZ^wt7T+XttoVbQVo4zHWj{n zD{J93rS7u{ru6OV|4_kcY-&3B-U^5r1`8m~hPM%Alr$?*%abf`;5)(g9Q&2>N=uJD zxr@gD0fZiU)ip@3aCCFqDI{Z6Tr@{VKDA)M+9ST^KqsJ{>(Vbo7y=mNx+~0^z>Zp5 z!GlUf^L|^uxwxa@&+IRbHPzxa6GZd0H2i_f7cNrSTR%9LI0?|?i8lo=M2m8Wg4=WA z=sMA|@^bjrxhgA@)H2G;MUOuy3dZ9Ci+s3HhZC_z{~iz&v{^=3X;ljJ_u(}a47vdr z19UqiloNCDl|rLc|GkMVXhNi*Qw3$EjMrUYoyLb5*i17;uG&VH+yQ`augow{> zA08kTFylP;iZG6LgwBo*fWfZcOlH-2eGIH|avq>%X>4r7?a5Jw)5IsRU!F@WS^5kN z4qm2X_l9N|dV;;XCGZdFI}xE2-72gN22ZSH0-uBcjce!5a|$PM$KVE@tk>`vPJ;FI z{&>%{am=AoNPD!FjySN-(S?qUnVXrV=}N25<=rZ)tYqsp!;3cs5@c=Nvm%Z!oz-RA z_0AzE{t`nYN(cuC4w%OnI4B51#3w^@~Gd^b;^;{{m6 zucdQ8@TWL&W|W}YSdJ#gk2;m*|3f<6{Guf)+6q!e%u2-^Emi|Vq#(}oYEvV#F4SmV@Hp+;l8|j#kJ*2 zXKT`PNY@|<14!xdXH4y~`J#X`;0tGG0gbA%EFYrbZ3adg(_JG>f_8U!k^{2m0#a z#A?VdT?@t=^TbILla!k`_l5kSLhA<$EM?X!9%vr2e*xEwq`aZ3F0LRY#RP>4dNYd> zon*9sm=<8enEd}b;jGp1oZ{juw=*VjSBZXk_}a9KhsVxs+Y&M|*xA`TI=ip|L#H~jUXf8&#lx48{ReLVm6`py`wJHLDGym% zE;Pq&9(_|BJuzXqVopa#chK{0Y`>Pysq{QmLBLv{%M9~64;RQqk1fiCK`BP?%h5!{9$5RX;5DJ!bhPV`gG^zdjtLy4+`Sc79CO196c0!_XSmCfk zh(I(cv<1+QN)p97vMz_f==8!loI=D{lu?V-AW8CryN!jcxz;_Xw<9lI(lv+(@8G0-jrP?bL5{x|@Vk=zvGZ8Ii}HD~^#1+( z&CP#d$pXs=_tU4v^%VN@44z+3krt4D4cVJuh+%$3f>e}_L|0tj;<;M&CdyjY)d5%p%ddEkQ0HBZjfFtk4JyuYtw$WTFkWU#o^_!M@dO(vxq1v>q1zgLlshKb?I-LKL7y-iI{@r-d}u)Skav04>?$)T#I78;=F9`RRKx(w^FiYIhJWw6Z|DENay$ybS|>QOVX~bx z3Z(4A^z=2v*mLh->xfwBrm?np42A#n--kSz`L}MdY}@AbX+%uU>OC~l*Z+#=M2KQB5CX}g z#-m{$pnt-_0T(EX`sPZBf;8Sb`D zyTnNK4}$;5gSpahm9E1OgZ2!C0PmA0Z`Tdy>rJfQtuZIG=RKrC)ld&)iN>O8nFW2 z@G;JCQqU`cDFa{+4D2Pyq8!UES)4vS4;fU;^`;S9+@Rx^$+SLDF}Lm?xdOhZG1 zfn5+*%_^i+9j-m&>wC?sbx%SDMm-oBsH#$phLMU{`r49@-mn6MW_$-zKadw5{UNjQ6q1eNd*-S3+vtu4okMhqME!Y{2q2{?V}2 zt&dl7+fNu%VPi6?Qj7-BEZIJW`m1x5S}MMc6V{Bze#F9ZIfZOfg&6!CrgZp!&!{L_lq>v%5E*?9(S^84eA~s$ffQSg=PXLEnA?}* zz7!keQ$A@-kS^)xTjN#OD%vP2D$2RLU!8b^)~coO5iJ0C?Lhu@+bFQR?CU<6vk4s# z^1A(Yuarmzd9L#n`F)!%wjHV7A*4*ru`^0nT*ySQ6L6NV1JI{`jjiQMs#8z^hT8oKf13RWx|z;8fw8`H7bUW^H%gqcIAK!I8ny^+@^}aXZ<$xlh~M z4>*Rw?_q{c)*CAnU8TlmKYeO(uEM~i?bWO72D-ZM(4@cr@IkxoEDbs*5&C>eNI_Xy zmuWWQ80PwSE=7F2P+L`H>pq$zN3PoUf@y%4dgc7Bn4;)z*5g526|UXd2|O2bqi@|3 z^f}Hz2+_S>x?$ec+spbQ#9iOqT&S_SqZW8HNniWFSZ&wc(-XL$^}7}Q1*l88v4%R+ z3^_keSX&1uaE}_0Y4HvP1qE3wy6!=sd*X7A%G}%>x*l{V_kc?HX3?p<80>68enZhe6Nyr1D%ap{$Pw%lwu4Lep?H(EVfhSBS10F{lM~$)3X)pos zBcdAUviEdvz!sHAI`${_E18d=0YGRugY5*Sh3>cF&!PZGO1pXROy26D4fL1RZcAol zW@6azo*0U^hur5mxY#-U_O0qefqtzbl5{HWHgK1BVyH_Y>Ph(ed8mtJLiLp{qJsZL z0)0=pOrZKCoiiAQ_sgjLUi#FgB|$3HiY%d5;a&_YQ>Dqmlc}qd!6RgqUt|)`rpYlR zP^?$?VZyowd;?I>ezss7B)-2Tg)AZJn#*j8j@UHMgmE+g?HNfh%FM{HX<-4~A7hl% zOC8GK24eYU)b8C_76iG?JnCH*gNC<5qoYP+(c1pZW9Y5W-vA3$w*eM`4Xy(yO4%n* z>g#(!9boq~Qmd&A@nSz)&L2XKPq%?w1*y!A4NeI=70*la^4db2_|2>iemosMT$nK8 z#v)YE1gUM#!a;PVZqUa7h-+qPP20t&=8d z;;5RcTJqv4U7PvqKkF>#nY_i)FbfBi?}K#VdHP~;<6jdaBQ>=r2+Ly(l zvhMql{8RiYF3)fT`9zPa*>Y?%_=;H$nr%a!-)CU$i7Q*JonQay70Ds2PsjiCJK zQRwcD&d&4r5Wpk&EP@x2(GXIu@$LHnp%MrW%vR-LXps{W8M(?axzXz6k@I#Gy*Yh< zYG)8H+|1IdBw}+)>iWhSF6nv9I6(<>5gDH-HguXecJA!H{#XOrsa+;CS!4W1N@Qo{ zB$#1a+Ayu%(C?xuma(!6%{Pr~qbtfuvP6ZIP$=Qe404p314OXT8jQ@MzDC$kd^^lE+3h z2QXP!SE}ElSK=Fal z)hY}6MoRq(P~WSv7e<@*VI_u^LhgVNR(Tgcg)cN+dMd@ z^4Sq(by9gJ_LshzksQP14YsC>*!3KFSGz7j$V9z*e_DpT-`=NXzO1W2Ztc$=d3_k) z@doI0@V{7}Vdu+4s1<=1<_K`NDlTtpX|nRygPvHmMQL;73ZRF@EVEk zJpcZw3qzkdzBf$Y*f}^R&byHFJu+AD1SaJ*hU_9aO{s}o_6aB^F%}Z~x;JI@j z_5!oRB9R=Fx!_-4chz~#aA}nRqGV3V$^yvf2jK!@64Hs~LQ(&d1bWBtH8DYo!v}?M z`pYMmzh+QNYXp5mX$#$(iLtS?$8kM9!fzEuI$2gsgkdlcB)0P_nWZZzF|GQ11W4YU zy}gCI%t4C59Iyc6&5sG_tbhN5!z}BMp_Xyob}UV$WM-CTDtc|jVJ~DA1cPICcJJpvjEF%HlxuDwN#<1k08M9h4D-OK$()US zj<{i9KN2k!_WJEvvC;**9w1MTmMv-TmX5ybef@Tstd??K6gd^1Ly}|4J!Dr`otuaM zzz-?G-|#tJBv>O-%t#Ol;C}*SO#tr}U;HzsICM_PlCE^aFX;t1*rXneLRa9ik{KEv z{uJtP#%W=*v53@&} z$E0LG&ae8*vktHDC^NR)YiN+kXd2mJ9p)?gM~YcnN5|=$A3Wh8XmD!k2*w_c z%~E3!V7HvGh1?M>N6*8RsmIjS%V|KN5T;NrJNRq>iG^?o0B}E(;sxM}m;=oOY4x_Y zI-|NlXgK{KQFj1!BMjJ0@C8%6m=2M4QC@qivK;m|x$-ZG&n8T5lnJF73S0hs_jPgQ z*uDJp>(^fb55tk~|AF*3@#4kZw}K%ktB4L`^k`~IjZ z`xaX6__Uih^rxDBz7*FQYnnHlp^$Nq5e@<)(kkt{@$7^``(tpi24p@ncU)R9svW zyr2nur_68zdK_vRx}1@LmpPsSwg2M+&=tZnC~^9Y_=-7P74DpQrx7WMz(`j)KnaA( zx%=~H;M4e__JhJ0tEIE?oodlbcR1&VSKaL?2)h|hHJns1I-u~uw|iW5oq{u4ja_f1 zH*%z8Wq}%IQpR;$+Q5$Z`0iGX$=btEXVs%I+e;z1&@xF)O+~dsK!xm`*8x$eJ64Ik*?wGu z`>`NdY*BB5^7*q)tp1bIOskfXbuyYWRCx42u%(aOTKI@2H2o9fp>>>GpMw9a$o$+J zd!a>F=Ku^nAas{VW6WXI)^S3e(Zf<)TAFv}CjrEj#E#>muqPP>DBJ)ju^PCJ6g#kc zX8VRE0m|dO6~X)V?c@7czsd9AlBtKs90nWY^#;bqe2Z>ATXuuj_W)f0s7?Un4K7^G z@fxkPQNoV{$0-|24HucR+og32PGaxaAiML7X`u8K9J+}d_gAoSBJ3$Uj(Z@bYuZrD z@TNNyBPxsbKKl{!K@Y>17`A<5rEH;A(#IvGq_!X8GPARL186P*%w-h(Aj!d_SPA81 zg@Zvog+c+Yv4R^!S9S)xk%)!>t=;%F)4kS2-3f!yhOm&^+;=vjNZw1=OwEk0&RCH{G1NITTjJ2pqg( z+CtRWP+L1DAfe0avhm!`hse?>rU+>{0Yb~Bb6>EJkrBqjla{{L&<$&G-em_lbWVg* zJ^RSaLA3jT77I2d8u?y(waihN)Ajs${MD;N7%?cERjE3+JseHOjKxnlUprv}c;C60 zSi5SEFb~$u30rWx=xS(R0hL~KG1z6e6h@e=M*jf_MHh3_T6BD@^IHZ(oUdPOk zG?!O7g+BKLjK~q|P~}u8m>@7lW%FxaL5Dz$rMeb2NhmD7otx`Eq4eiV@VopQ(=c{znQl*r6%uBjBK*0IR=mPt$r2%q z+&j#MPW7U>c*YHs6)-EPI_?0FVV;w)SKR@i4Qg#5!@cOq%`IxVuEn=z;a(K(3cX~p z@#1?Y%ygQ;=OU)J`KeEPdwN)YXED?s1ayhd+Pz(?wWS4O2O%*&l6wA+-3cRw>Fd;P*S{N?0=<4=e z$K6J-TZ7lxFTmv0ouM2FUbSitPe2@oIW2&U_aImF7w^y27{^h8H$jIVu~U|#w78gp zv7Vl#Wu~Ny5^8xxV)FCi5FNWmQg^w)*Gq&x52phTi_YjwXy|tIRXZH5k7NNlZ7Xi; z>N<`>ykwS+me#)Ac8_$GTLZg?VM%3W^Vu)lJ~J7lI@U7RpA@;=b{ow(s4SAq+g@0r0OGf3y|v#>3_n_$3B)jL^Gqt$-9`WX195VSGZ0{4 z6?)mO@TAJ?@(!18m~X>1*B?a{S_ylxL{^j(UJ#HH+kJk-O3$0aG!&uCwY^X-Mikw? zo&T;nxJ5HTRJzaHe0V>G1b)4N^BN4@O942%rwkF z=h_}iGPu|l@bMUiSfW2Zy0Pm&#acZ#@9|gokEnz1G#!2NZUJ}-fU^S22Wo?TZwl3H zI*YEXSzuYafMXS2GiVSAEBAU>K$XsY9+qhjH9$5)k0Rk>3D#RF%H_SHhWbo^gNZwV zN*|+7B%8%QH!?F?@ zWy_WrjA(^U?;9E>-hUGCYLH1-ufd9pKiY~=07j~yqJuZK^TkkA3AjZ%p1U*n83}yxT}{NE^KRNVL>dO%gpjp z!9Gt=`Y?t9E{fVr`WI8S<23MMFl+BYqnoTWSDJyB^7gI0`cQdMkqdZSWU?lYOmNX@ zChHvN5y1H?VU&Dsw=WAX0i6kyl>#kltP4Z|E}3*L%lGs8jV9R#CQfS;kC8TQW*JEY*^6U3^{3OYlB$mTxRJu2I7v6 zc((2j?K(1Y1kgBUOoqXA#!XD#Av{rq*f|E@0@;&~jQ;tAtQ$`<0a?@UvVHY`^Hgm^$e1H*}3@7*XS<{4IN`* z4`>1loa-lDEZ6hFh=}BY%WYi=!0O zvBmz10&-* zvfY7Rd>g{o$q7UEA?@N_$T|z9S>8wYp{?+>e~(@e99B-xBI=2oo&c;+5@E_z$??2X zWIjY@W;~Ar9H|^ONp(6sKO$Gr&ll%c7A>%2)$Xv z<*qsa9R4EGva%r4%fvq0-P%<#a%Daml1gvLj2<17~{Z~0O_&&^5i zTH0=owV#RE**ZG=0Y0?24Gs)o+|COluSCo@@#?ED233L<^oG}-z>$9%Q& zNp=sy<&Uxw3Xu>jLaAdv9jUqeF`r@THwvEDfnOB+f1+@v+`c=RWG6sPX2dlnwn9HY z{QJ1?orjo=#_yE-h5`RHpM?H;`D~zxphFVXi`a>KeV`UZ9uN=|M5DZl2HM^w*sVox zSKjtm=<_IQ6xbwR z`huIm5?Hnu92|7Sh7o)}*o~IjZ3B_Q@JTjojssbr@qVeOl$PWeMu3edk|JLml#`Q# z-+*UwjB+-STI}kv8v)(B6tkwb_IA!U5XC{2x~JaU0q%Ux;=C^IkNZFX9U4Yi`hKpQ zR$nj|p4SVk@H_xC$Sb9ma;vE5dG;YQiXiv)?Sv>_^7RE-X=$QxLFd@SThE-?PVk$@!uR2t2na;pj#{9UB~&+3bx4xE-V=psTpa6f^PEe?r;N6+{Z`H~mp5j#6266VNXUVxxAATTvcJhJdo(^OVnaPuumUsi5h)GpDMT+UT1CNnoTs{3ZVV2cT^{wZSo zk4Y}upNJOWvW%N@uw|M;bVs!48kq+~74m+|rcLHB$|8y&|3e^qiv2L^dH%dP=(ntu z3N57ZRaUtJLn9;L6o#*a4OxQ!(P7_{XvD^o0 z@?Q8e$zR7^IigVCIHS>zZKDDNN1#-0TXWpNOd}R`_kWf?xdwYN_Q~R+qPu>dOp%2+ z_R3BYYkxW9CNL-2S=P2xs2vud}5+?q1xNm+s8-!`^K@(69s$b z!Q7jl?>%-Zry318$Sm1lpJQa%xo9}_#G>6+L|okYJs;S1pNC4e2d~nY?%?2{*|0$| zXvKI<&bTDNXiw3k-n&@zdF6Zu2h%c|o0S?jh~BBMN4EWfvWjfJ+r-Z9+dIUF7Ny{?eGV7jKh`? zAl5$v@qaA0Vy4CgrN65+@$p;Lv`l9{C#WC^B*#B0xdZw!$4ihRFSl%9zJTAv{zLF3U`P@vh8u>-JF~T(#;GdF`w6M3rl9AZajUv=*wE9{6XhDAmA~0D zIBnqU6n8*T@gXo4@FJJXsCZG`pb#XcNj|K9O-1XxxJ+l{aROkTnY_A0lHPXV%eQk6 z;P@z4h6ZJOr)|EN_sDqk-v=Jb%At({nrE&woyFt{y_28|6UZ#q>go}Vy|ltB?ft+u zZgD*QM4`-0K70Y;{29TkYr5f=fS^`0@f8cmw~SQU?3=Iz=^&i0J~dAF4T{z3`==H0 z0wwZK595pnuPwXG*aHoZj*Ue__i&7sXhP7UcFH~6E>$h31-KIx@(nx`yl(T?zftJI z6j65%N94j5`uFCqEBSyd!!r(<@!uF8oDN%WK=QXmg_PO-Eco`jQm;^V>}8u8p<`is>L zh%ag1i{3c)4aUg_ZiuLVebk4x;XmYLyD0n}fUVn`Ez@n@Y}ad>ztDx9d%J6=?$=_V zTvl3|{^3%xqp27YAi57?AtEk!xu9lBYAR-w3n-^xedm6MB$8a%6}eU;wmV!*Nht)k z7a=gEhzX6rjH60N(e)yl@5BHS%KO}ISQmo~_z(L23~t=B`OLDg=IdKoIXO9NScp|h z6FHTBD?iwdZAX*21dwR2ovEUirZ4RWV%*tRR~Yvm{m~_X*LjbbCC7|Sjg7BS#3L~SS?5y?q&3nEx-rzDeyB0W z?a5el09zO!^~V)2peQgMNCNExPB1W^xJFF9@JbO|?zD{Xar9%{bQU{|F)dp(!E}%H zCqK(F8?C`bAj~i)y>iN1=k3Bd5Qu|6-M(8)gQNo*V&oImm|)3#>dxzr19OHlSk9jj_p{9M?|M7n~p z(>7TuemygmSh}lPK?3aR%X>-@=*1~w%zZnn_Nf(#96HuCUXuBHBMh=3r~4TCwy96rlYM5VhO#qgQU#-va%QG1Ofl~aJB!< zJ-zO<%-(g@{OHT4Kkh6R=^xC6tGD5w+P+8FkwMmWb}qbXrxK%Ty)9Ran1q>_{L=Nz z1z3#P{mWl(BC#ZqSpSu7$cXqahZUWove^_6FzG4@0dMJ|42STbP!0|_mQ$gfN}L^c z?+_f>4Nem}2<+1POwiH+cEUKbzVN|bF)`~qj!}IMEL6xb<#Vbu-fIatJ5f5O?hWc` zZ!ZQuesM%KM7BGEcSR(BTS+Euof=dia0i~Db#!rgeeX>En>S^EkR+AL4`S!B+lT+& zfYdnS-4q12OaH%WnQ`JESf!|My%-rZ#S|5-$y>fN578ZATO;I`d-pQkZ&L75U9`K6 zIiyvjTpsz7NUd)-0*C9^l^ZqNxZ^*3`UJ-Xj>m0nf|%s@s<=VC7%eK(iF$$`uckNE^L3nhGgZW2|mFWMvnA-X3%Go%i$0Q8i?xVxA^)P zKFgTx3ace_2K6Y&J55cJxgMYka;z#5=)Y`^yCr%^`7wwdeEA-4mtyV$3%riMT>6_`rwV_zf&0%QZUiOM{#eFegFm@sgBA z8wvqW{Fwi~$1wHj=ir1`a0_7p0hq`Vp(cu<(GdM90<31t}zF|LoQ+Viv>{5n_;+ z<)>AS@MLT|)S5^e-{w#)Ynw>XJC`T&NVC1AMV;J*sdwUIf%PBRJEtM_c-yi?&SlCu z0?*U9<_mTERZB}>U+K$6lkLHyNsaLb^^{!!n!y9l*iKv=$(qnqFNW<2*SUgG;GvtV zCQ-Uyjz8SLT(&_SL#uPp!MzhhnJMW~6;<&ZLV*}O=sd87;Rs#4kctp2YF-sub`CdL zI+@QQRY36ZsTP~=Kd3TngFO*VaQt_5EZX8Z*?Zo;Gw=yQV$MfLLm;SzXIU>^G@e)x zijDqpwjF((Suf|`zi(N6=Hlj7D!ov;dF37kysamk;h_%sVxptBQ+2cOu@}bVYZI7# zwAKi00+|V(W2`b+n8u(Ux|&;x?UI_myyQOPgr><|Hr!yfg~kRSj~=66lwpT*W6|CY zRZj77C&WV8_HK#CYT>9BK1f<_De&f))6xeHr0ti~m*`)Y!n)SZ1oSL#vJ2PW5xRhra9J=qLpJ~Gf$j6$$i&u z$BrG+Kg+0vu3#V>-)0mst-fT0Gd2HGE;ly)u9j0kVBi*~DvTF081g)lX)Z@b(w+j8 zl&E-cO4HA82^9v1o}RtCd*IZgb;tP$W$N)EehA&TN~ zv6$%SXQ_6Ieyz`*IZD`w1pg(r)uYJ5bi9}^DhO={**g#|eY(`xrIl8Ww-{n{Z$Lr8 z04a>tilxYA%NRNx{(}e8cZJ7dd6qpORCKuZ6_?L9FwG~f)gaF~og7ogL;aUO*B9^m z1G2>y9eRwY)&Qn>u`soxQ;=0{_J@T~EY<}@mO>nQslLya*5c4!ZC^K+&24+~juiO> z1CaDEDJc^e9orC*_xuElpRjmZTwE(T#6p-0fvS^Ax-$CJk$q_ zUwGno2!t7On`xfSj@K0RJy(F89WBPTw6sa}rLYdbpf)$wesl*FOD$Xz5fh|WjjA3% zeM^0L7jRl~4guIB!+2Dq3zcs8gSxES6Ws!IC(V~0YkJ$5L@u2Lj#~2lBl5VTdGn5ue$SsBI^`=wMCnhW6oMIxGd-H30k(D#=%2gdmq^{bP z2zOi#e8kGqL9d@Ep{(ZhV$$)s?bC1Ha~wtaqClG0x-Gw4JHx}cHJBrL3 zj!A%7OyFbWci><`1^OEez50Q-eRmIHgu6X~-s0H*xB!-Rb{KU6Aer7vn3MNF;8~B| z_FBjM0jPI;&WmT=&TPvx&dbfY{Csb>ozqhrv(ysC0bfX@FtT)xoxg0$w0retVERXyAj-JG4OZ>!Hm z*XAK8V_tX`$OK9bXXgrwn#h2wO29ly{3ig6LCGM&+zuj8?{_SM5wnXxfd>@t=llHl zT56vAgTem<-=Wvi(n7G4MV0g8@1KyQyhVIy1IZrDzrt24WGe#CMHi%HvNg8q$f4wO zUr(m=7e~u4$KEX{EJV5lR^FE?kalg@(Vk~7^+<{8=}H9@$v2~LYSTY zx=SKEg)o?l5gT;0G_<#Wn<{3te%TGsZeH2l1mN<=Zafx%@QVkuQ6r;4fxExqf^_bj z#6I>K01MbK1c>DrQwKEoZr8m8 zf%UbWUrXcSdPCN}^OXEJ2nr)Qx*0NvAXXhxV{w2zy3c}({FoKR+x)z)Siu>Z0wf{h zGlc#l0g=XFpD}q)kh@VxXpEP#I2b8jzP`+v@6TeJ6C!m{f5P7e7#%@9zJ`&v=POvJS*aqudtEf+8Mn`qAEhtfv8W9S^+Ej4EB zHXqctzO+xpfS{Nh_8(E#&;SDP0SBRs3~|BrXVgrVP+*{G469+xjl)g+XPG z4!~mZXFHJJDpr0WZm!2aCj%=N+?;Tq0Gd6eHpkUCW@Kd*h^4Hv#&9pyGCV9H(bwN! z-I4Zek_M{3G>KAN46wXaJ*ox1C|j7DuL8YBwxsh^2wA(}>sxE=^CackH3_z_U%!&) zZvlHcAQ#|8J<9-Xw+w=5YNre zk0twX?mC~+aR}?chA)`N2haHPBH9`{CyEf{%_ow01|S5XoY*#@d2>~}DYCX1o(p)r z$5;fB+oPIJQ>e0%k_=CrIR009|Nb*rf`>__gcg^jxcu8ZJ%=W2Zv|HT9@i!r?;HyE z2N#yVwQ?flHGnD95ps6Z=FP-5UnqI7+PSAEHd{z#T_alBuTz&ve~ieghqb`!((`5M zH(gb^1)>)@3Kd`m)!1{QTTR#sMKW=BH+KpV2jD=FP<9E740-89o@ z)BWinxccmiddPMYUcMN`U?pTs1Hn4G7bMwv=U%9vg6DCj;*(Wu5T7WUF{rPFL z`9nvcEo25yP6+Vw=Adh^0Rz~%N#_CfHXs1>hg=WX2lLsYUI`!emG#iIw4I3bVdncT zDet=;;}w)08J}RdGz>{y%X~$7`SC{dGYXUV#s@scc%KGF)qY>y+$Y?MRu%Id9fyKOyX*iA+KCua&Lq+fa`A_o%C~|mcXw$<|sJLtv@OwpHuE9~ri)ok81g7gi z=OSb~Uq+Bjz9Qp)nWz)t=fAbkiY*HLkKAxi>_be!k@$u!l9z7y_l=JJ1&w1oo@Hzh zC0?!=VlFUK##g;_#Qr;Pl+p>0M@S#pNjX0xw(lc_(g=gB4Sf)0@GC-qbP|Z}2|MH4 zeq$RTR2LD!>7Z0uDl0z%TRrQybxlsr6k<7%IVlAkuvVzF#hcIqbxbUlL%+&zk9yS08`NuV)ayamlDM%7N9P)ubM8BUz zBX%P(QRP+c4EHhYX^Q51oxAut&CA|_q2J{R2z#ccviPVN#z-iL5)&2RuliYx_wQr= z4X!TS18d$}oFrh&gqW!zVbal{T?oJIH0?^mYAUo{fo*GBd3-q&P{xr6O zNv=oJKn3ax>Vg6l@uvqi1Z`BD{*4z<1fCxDPj1|}(TQerG$1CS#;SvU26&`$Q5(%w zg5+k88Q7F97zz0nR$A80Vp9^1;OY5=6wK1mFMS!SR$E+1LB|Z0hHjWj_)F*^>E#zy zpLU}odJC~zlHN`hHnyW&O9D1bJ>E1Vk_;$85SbWQTFN8f_cv@L`<_|-b*8)f^=?ex z;8pn$9H(uKZAYmepp!oY{RXHGsJ_p7d&AKRB8AwfDA<&svUAB=%^sMTSi$i|6WdA4 zGY$Wa{n!cK>LY}C0_G;9_>-fBh=Tn@oo0YJNb#jeALgHaHmANDuu!jpY??Y1XvLU%4(sVWBE9<_K z-6u3yh)QqH(Hl$uK49=eY)h0kP%$v*M~rI5HZ{~Zn}2HFZW$gnnK<~d{Re~xIBNq< z3)yEU6UE{aB9%~20hrg*K{&aADN&2$aQ(;z$#j^)gI5P3;}ITX`gh4y z+`wT_@A+Y~^k7lrt6Dhii@BI1`grTbywEGbzeqgH3H($S=@`AHRM{`mUTN1~ zzhPCguAEg!pH_^k*7wURX)dkc56QvYe`eCIN$YreOP+kLv?5gW^Tuz1v(wiDU;o_c zT}w%L{3AW@MV=asm6=8~v2T!&p#q8Xzc;N%>lmL*-3^ZqQC1jA6(2vlBs6{H4>WGI zJjZd2CJ1;39Ci$J2JK!!IEQ)yA>SPuoU0pYB9C$i&Q^LUKqj{%v_~PK(C@y(oMIul zcDv<>6wV587;KkIuEMHKj8jV%-G~J{11g`s>g2*l2_&9`rqB7TeG(6(Nu+ch;;^JQ zqxOKDqxk1K&7WVeB(UvwjKGK2f7kA&rHvw8%Ku(1=>b6l{TAYOkB4oJ8HWE|u*=9j zA&C_PubeHYl93bhk{)dOn*LU}7on+RR0RfBpUp`*LAw(v7>atH&AB5BhXho+#46d# zbx|#ED_I(Mm{?j)IWsQr<>2Jc0WRSIQ;tYIRXn` zPrXv*(8d7iGiD3GG(MR=MI=>Pp5ET0C@jHEtYyURacFT$P6(xSf#H}5^)2+{FdeG9 zzq?_II4o$@PVpC*RDNR#eTvNnc~f~?Nwzbn1aRj9;gPtclz5|HX5FqwWW}E^eg2QB z?~doXZQp+zsjQY{r0gWgE+d5O>{Y}kD?%hhrHoLCjI8XeBr8f*QOTB_kxD2dm7=2I zcf8&A{d|9)Kknyw-8Ucaab4$ip2u;V#|c@Q4cdmF?v}fMD?GdvN7VZl>DQ0Z=;|Ce zKsD92YaK5}#~#o-c9kcP2aQ0Fjn@U#f0UMyA=7QdI8wFO;vr3Bm~UnNfL@3->(+ht zXhw1kAVTHWRC$%=w})xK!UY)6HhrL2{9#oUc-4xba?OLhq5Xt#7-r2&z zfx_eQt(~hVY=~&T&@reg%7>@@$R3|Rjg>5BJb#WIO zcMHOrg^pokqRLr698w%|UP6@y1;4L&>7Ci-RFnzwB->qunI_IN)1b*dgCHocNZUrr z19DyCF=tj)9mz>)cl?aEgPGgUL?5iSWiNuSQ1x{P_cE z0q3SoS$`x|#AI-EE#vLq(7~$hMQMLzE?_kOcu55OS+LMef~cpNUrzeRJM7%1KI;$cvX-S5cai$V+(8l~eXVyGTr-eMCP@$IHc}zv%}KD9^ZROV z{?0i8Mo`cVNI(dySGYj>PvN^UE0$+jI+vH{&;$;3wBt&eW*&>G{f$nZ7*WD`@l4J( zw9%3(Twv_>XINm9exel4A+KIpjl}#01w4z^gQ^`vB3n0XsPBDbfpxt2hExQ8I9$-X z@M$D@zPMTZsYwXY$&+tVg@oa&{}OuKiY!X0_lzYKfi>t>G~5Ydv&LhT?28ZGjILxb zwJ^O|1}-R+fI%-#P(MFxcc>z<;kb>_nwRPu+BZ8_N1AiD{{*Hy1B)#PI14L^Cp={b z7qZVN>p_aw`0N?C!(eZ;;QlFR%tX%x=u$?y#-^56;F3+Pdn@kWZxFdf5Ui`V_!Gpp zc|2IiRjvGJ-{QS(%^ag{4wIey zZWR0coBO+iQg12CukS2I6AHA1N;r*RpfFT?F#Zji&t|-p9oFpae&MiB4MFncN|4-( zQUkU+PCs~Poj;|+%dCtBsKRb^K4ZYD3Oa@@*UE-N6huK!wYadDSfy1_Og-z?t*-9w z`n$G?l>pHs&uNs=H}i%GVj3OQvPgn44w%g4D>!JW>k-0akPYFj=tXcH3+X$N*;YMsBO=@XK@#C8Q!oCPeYkVEN4rx3gR{N?FfE)<~PNusHo7C z#?R(?4Bal7C*xoU0dO--&9+<8G0%iI{N6c(}!{gnJMlZ@c*WRNUc0Egg923r-`)z;P%Xl3lMXz(#b2 z!F3v;3OO-6W3qB{)xSM~3S$^AA34>L<(;hIC=cSce3_r`H7DcWjg|OkhH#U9?vrfX zuw0>viV9hwUEoj@COX?6FaL3mJH>~shB+MvcWui6;i}>A(Z6l`2_Dqtn6^&#lf@;U zAu_Oa!rL7!;YYbE>W%DHy_wJBTQUut?Cki~uK@*yZXu}iAxj}Mb@h{XW8KJ$L`8>z z^<$X-hz5V@J$p7@A=Q|`HNJfDz(PO5CT^>Srlc%0erfW!8d6viSgt1+1%xa72jaTh>@OmN$IRX9jQ_c8N~^#J9zx z*DuK-L%{<7l)n6XhwKp)f;$pgrT2Uu9Tmqqz#A^m4bk#hFB>DRI}h(Ob-5Twf;xFX zc{IVG#irWl&^KGGo}NZ~k8u;SUlihv1I(Mh9?sWq{VQZ8ns8oZybQBbw_0;iiESJA zRC{y?Hff|K4GP5`=GEmS_K<(x7*@F6K30p^ueV=K^E1W3SHEV^;i~32qZ~{$jVh-_ za!H(3sS3>IdIXagr28?E!{EbBUw842Oyk+bTzIGScW&K;mI`ua(>q^bysh>OZ&zyN z?JB~)M^GfKjeXAXv-bLy+oAx+ID10i8yct*H5 zIhCM6IQ<$tB4B#1ruGakI?eap+OP6s(O&&%aFo}Tp1A>G07-YCsv(cWrXn5<9b63j z76ka+=@mnhpI>sLgY~MMhD8FytWK9DMT^xT%5JJ^Z5mm;= z6wQILYnoD*-`c4r7z=+fo18CzADn;u(hTlD|L%e1*6}mlTTui~k5upFI~7zPmFkOG zX>lr^a>?^e4~Z{AFo+Ik(TuIWU)Db`pvmzXk8qq5c}qcY%*~s3jDkMHNL?qG1coH% zpzk6lz$1H`zIYP{0A`&xOn5SF-%N-Vgm3a~W=W){V^rNA%w$)RRDqCr*P;}I$dY`x z3FRc51`PCW0-lvAOJnldk)5Z`ld_>(^MZG${?YpCiT+qM{6}tnL~)B{~A@ut)c;apqHjzSZt%%IwrP zz%tKXS?0_aa3mvm-_e(}cW@wiB;X20SD+NF`ULc+Wto4=cTB?Rq^Fyo2Dl47?dLCA zN`!?7M9F7avRbGl-mhz+TpL&22c1P&?5N_mHc2#DgkI4|HRP%yI(NdM8QhTqrpG~* ziQseSTO!X;TZ){wcFs8BSnuo;c~l*Oywokd>(&CoW|UkyBQ8*gp#O{@| z&<`Q$9Eg-0qkQd3P5vb;Nlb`U6A;F|Txwx+g)Iy^g3E)b_M@^m4EtVSkYd`rDBhX6 z50W8G-b%OF_%e0CAf(^c$oa|48S`ADXV!KbMQEd6NV^$9^|l(d`a94w!UB*i?2Rcu zhbGtDTtP)e>&j>K^)S)8W`+^C$}6r(y2Dr(2(jlER=>svx$~2KkZ1~`d=}Ze*SwO} zeMfQB~oY?%lmGJE&#Nn3T!x=T>H zKOC9AkECQ7H3crs>g-o; z*aW^<$54ArPq_f)<{hEQ&L$EA!2|j@EL^+B7{~Yk@gA^r@=*qQMr{ZBu0|HS60MwW zY^_tMwS<3F^x;WEK&yA*)R{BsXk){nGzysUvc&-x6pyG1$>I^NttcL`qA=Y?2}QP> zQ8~azy8vIH4#0ojW7(jqXQ<>D&Fk50A&jHR;g^y!@h^o{6_TZhc{f;Zqss^8^J=^s z22Y_%zI^41-*kRn)TFBnviLo5G5DLn!G-GyA{e#pYyTf3s17G$u!!_h-{L)BjTwoK zdRBq}7qK&>CIYUIUT6VYXJKlAWCaktNel2~(orMo`Tn@uSZ;@f?Mg}qKcZ0!8yU^- zc~8Az{|;_)8T$`w!XMq;XTvwh?SLN?NK3#e<>auU&Ts&pe`ai!yK@UwZc5=Oky6$q zD9+hNQ)q`l6Iqx5nuu*4y+ZW%QHvMi<5SIf_VT6qVmiM14VDc^Azw)F%0OH90;lL?`jWga=8oUmxRwwTm6KaSYVWpuquCzVY8vX}@6u$Rj%5Kf z7qwhc>3Y0zwUswMAH`hPy63Ugkt27EfRjxE*`z36Ac(R|3A$t}(R8t6K}(ZXT6Ayz z(*h)OMC}PbT;@nBLC|ylymiJ4=*~sp%y?YcwwlkPe()e928=((2%;_2Lc}b|H^;crrG?aP1AE8Dn_E0Ds1n?< zQ&jXdn%A&}3KhvNih!L+9;$OPPBY=4MfE@(44FxJL3TE2)=0AZ(36R?C-LMz_S1PJ z-}C~f5_0nV7vgsg96Z>7l?@;H-&imugRX*Ew5srg##koPotPyQFqjBUEbOEwJpC-S zkaxl(45Ipx(JHtTprSTUI_U(pGJv<^iUwl)@=b2y{6}_+F|GwDt2>OIZz+ipu{gOF& zt7q?29tAkkaLt_{FqQ7m5tf!0x8>lf?d`ivU&nuqbFZF*$!23OG#>$AMjCV;GFqp0 z4s{q?XkUqlICS>x(k6WcLko-BswBkbjpqeDbil8HT+RJ6sf}as$v0X{N3cPFTp@1v z{5MXnmJmd4l6!+IWaws)z-fN(*}qB`S_!RR1Fw_J1m$`I{*BFuT1^!`IGUDHPbj7< z0sO@~fsUTxx-`|w5hQ|Hv_{y%!`rSV#Kj$x^V@U}U^a$j#i@uU=q%A(>s>~g-q_I* z8GQ$;tX;i%15O8v7QyYo&M6;h=aLOd8;C|oZyu0)aY|TRA4xQ>##j7XX%I(uryP!M zfa>TJaBc+XUMB`2#PswLBcofx)7ZN=Wlsy1VJUgR+WsUEL99S9o~O~TH0#lpayG0y zKi?UFTX@RFRVMlTPBjgUiudZcR`lrOJXk*IyX#YLy;56S(YQ4h6_>EERe`OgZd_fA0JD{@uZc_%|Y9eS={-b5R5#$Dhzj0wKUo(M*x<75PQ4_-}dp z-!9T66209{zfe#eEqCgI<2WRkrtxoFqfa?b{h# zNM+c9me^boG|{IS1YvC04A6gA2%ZG9gyx`@3ENU%Y)_EM$0Q64$hnMoOJo54=YZJ* z*k2=JO953vEBP-m7I}WdMobaJAx0WNAz*;+Jpt#u^NQ&{YL1uBHwgS}5paZl(_aRD_p>*zAV3fHQyoPcC;}7)Y)_^}S+KE_m zh$&X^5S;qAhc|SqdS#qJoI=`g;zyioJ0hWV6csz6mJk0Ve zV&o5!^>S6bT^b&nK_FhJ-Pf@|i3f1q+^zfNk+rlzSk7?Z(RMh017#=H@#bKr$#o~o zF&asrb9A#G;4sumfVX>=kRlP+v@rlE>n{sCJ3A*Q!1+6sbWnJcgo(bw+%sfiH(IsU z{UA4G#Yry7z@P)S+qUW4zFxbU$c=0qgYeoB;kAnCR;g3hEo@(kjMk=ukA5II?mfB0 zkxq6geqUJd*A*9egYKT*)hBif39-SIaPc{Y)`+V;Bq-0mNE4I;5PI+PU-AM-(T!mO z&SAJiy07Ib<|jN(pN84*Q@|lN7z8#pBM92~FZ2~1Ts=F3Qw<7Pv2YQ0( zTmL*;(`Gyve0`^SWFFFj$+*h!aC5&U$614pu(qSAJyL2Lvh?K~ zdbQAxo+|AUZy@Bl>u!ENPTysm48UmOwxBvnLy-pL*Y>gpRo!Jwt*J92!FV7O!1*({ z)_7ex>%JW+Krk`{QnNG>NjhDk#mAgXT;VYXSiJ<~G~5%1kem`?`mN#v$jjmBrUda2 z;`FpUKM}wTB$}KI{K(Yr$6$repb5pmDcya>^rV5e->G zcL@b&YyE^LdX8mIzt{chb`G{xOsbw6ksT%iyxvt@6U1J7Xb5E)T$S>TFecovaGliGBJHo=arF!KT1okG1B#&_QI-jnb?TTDg_w06gB^9CD3sVCVi2+n$HrboIcxLtlM`5_ucq2gsLX2nX8gg?R@JsHUU$oVgo^X%P=z97;Z-P#R6 z3XV1<*q%Ih3DwweMQu97e#>N3KTuhv6TL!l&JACzF{N~lZ_Af_@*DQcp{WGORGiMf ztsSUZrLv3f^BxMp%lUybi=?>3MVZgXUa zS~pDRTB*3jLV ziHZA28~~E<+yXLj6NF3gj3Y8cnK#ZJY@jXhC1j?pGikQJ7a!01>YY>xO6egUB9Rkp z;ev|p=rLcE?Eu$MkifPpsb$R~d0|AINTva7B)XwdD|pJIth^odLLUPT2(N-e{tZ|Y z`6exnW!?qr>lEH93UB^7Ks5wi+;0ehTLeT{U2tR!y%fW-L$X3=hqQrjN5hT{#pd%{ zv_x!B-dDmA^~xCfkoTQ_e{Ct9mYQm6I4guHBL}mdaJmc`TCjdi>S3m;dsUu%C48rv zGds*Ju?3MwRzZy1?U=>2GAlTs@>tnman08jG6~(k-?`DY5*%P3!?1s?Hs|!Bhi9dg z2rJ+I4I)Kz36R0z;&S?QnWq-WTe-NBj8ChgzD%yTAkKL{kMctCZ2z-DPB#;76PLh!Prz zmQgEX=o20D+PZ8=LNQ6BGxEtjq3c_i2sa$;79#N{Y4YI3TyO)EJNbem9rTsMZOz zps=}jM*-0kZ``1q3}t;>4C2U{2Qfg5%LZNZO@_=o(Y<<2l!{VHZXL55kKYb^>`Ot| zfZJAI;vU9~GVCTaNBSvjn^hJ$2+#^`owGv3wI`rt)8PCFX<)8$MNjRPa1b{R}V4DfeWT?~)ct2{+0FjI*y#x{V zpY!tYjH2vm5kMl?wL5sXjEq^1TE%g?3?)!FuvW5wei&68IS@mB>&n&l0Cg!rcLLgy zQB{%`ufe|&CpJnWok}r4VineI=z-DJsTmJ=IjD`;bpEQzsByC3?6 zfowjqM$HsHjO4jEc?H3$6UkZ8i0?=Jh5l$P;;&32M3T{Xw{$pbhPNO%Du7bU9IpKWB~4P#`Wsi4j* zYR}$>Wz(!h2I=Hz)=WW)evP^I$UEGrumFPljFAWNJ}AW)PB9?K%V|p2APs{kedXej zZ3+v>eMo@8#_b!F5*i{LTaJ*#Tu-#lwIK7s{vIkN5*5049@5i$?l0~i+d6UP(<>e& z=hf5{5%5lM_$ju+v^Y$Emq%u#*Y^!sO#UmYZ{NRvauuLxA_d~YNsmTT6#dEYU;Ovc zk3F$1B}pBGR@BBrr2&FKd_F=Sc0&hf5-5Q$&o=3M-AO~KcQ0N$ll@w2P%@?N1|R_7 zMQ6^O8466Sym^zub3+!_s(=lK+hZVhHLtjH{``3pZA|j@E}$oLxzHWc)`BKi5-@tg zu*YNHR`O=9gD38f9&lQ1+krd~tJYbAilRp99LDCrH^nhPxVxUD?-^!*v|% z4uCJ)9j$poXDbYvQFR0yfEnjDAeqYC8C;hKPhej8sj*O9!7Q#d0UH2snC--jquxT{ zg{`k@Y7|E9P!qaoV4>UU?JyXV$=4NN4Oju5Zp2vVy zkN_^Z2v3l{^dMNZnK3kV7%ePGj4bouXWoPIfHm+ZEEGTm7~QKY4@eoG6X?`Jf88JO zr`^o7<#4qI5d0gEqwp4TcmSzA`c(O${4Nxi_9%RWLrC2LI^zVji82iJW7)o42}i7M zYt}lWd{W^Kn;fJ9VxrURu8;~>nNGZWcgx7g&@j`|l%Pyw!vK*Jue7=VDL8PVX$3|J z1#MWIpcj!0Q(Z_DfK1$tshGzx?|b&F-c2d3Z&e^Uk>X;Opy|#x58RTm44(!DDPn8- zgBG-ZOsZ-BFC7q*f(I5!7vm)F@ApkPX4_;vj5hl zNZ7T-b6*OoV9BjQ0aHlZK-F|(Il-vksnOO9(H_-QXtOHOi-X|yjmh)FgBZG+L%V}3 zpg|>J9g?VBz*Z5GvPWKlf!D2TT+_XbVLZaZ!ng2_qtPyPwA8i%;WLh*`O3Ffr(f(w zD?I|XN~VGTZqHJ=3%`HjP4(#)A?HTsYJ7b|@aw4HQQ$kM^p3!T3@5fz7}_fV8Li1~ zE&C^<(D_p-m`IEC4S6W3ooERG%>(>U0mTnuiS*rF(VEaklJ?|rU$Ot-OD(Z|7jCe) z_&V~Gt5+eryTuirgps18eSC}BbD~pQgtg$tstbm3b%i~7*QozLc_-JC^Q8_(8 zdIm8h7NYQ$7)f%D3RsY2sLdey0xp4Z$&mf0$Hk$RxyS|G&d!}$wHP-r39^?%2tW$5 z$(X<7Tzb?`heR{~P5e5y$Rz)P4HF3(f(0wL3lvSl8b@IVE8r|E3j+f&98KND7|Nnm zUF7& zD##>9m^|=_e*MTq*v-jleR#v&!_YPYj65K}o)QDQWgJluC;<|5i&Mgey_nf~OaQt?*pC3Z z>(;+UINmlI6>pg0W1(->mq|V(FT^Jh+l+BxkSX*v-k=W9FjTVf>Y%v%m|iJV$$t<5 zqC9_wkC1wxfI*xk@?enwAYw2Nr0c}Md{Vlo7psR;8x)XIa+d9U&jSzyO6Rj(fnrMr_-oz6e+frVAt7FlF zXn76Q8IHL2R?2I)tRTsBb_B#t;SF-dkv{-8Ag0hj_XxBM_}DB60(9%RtE-2;pTJRL z4b%e9)NWFm{6WB>di)!?V4s7^6$6~Gce*Y#kc$ItglO+r3P&F+AqQgp&JA?0Pnwxl z@4EAHT}Cj#%9}oGI%S(EcF&Put^g$j;n)Ey)EpH^QQ#1c$O4$y!rEFiS`!k)MHd4D z1K1TngffRGWrroa@(~jT3jDVbDg;OxV4$-@TH5q!41Cz3(K(E446D$&*yv{~HJRX8%BKqPXR$zS4%)y^qbEm8Y95XidqoXJ}|?C6!x zq)3vkx;(AUCC@Zzmygjyr97Pq#MWgW^D8So_Ir1$PUjl?I=g7sAs^;M6bhM2*75Iq$p+E9CY zk>8CB;=k;|5okjhNZ1d34YsAq+!Q$VQ_OJoQz+cCLL%WESxhuuM|E@RLJj4 zS@`eb$#8P#+ zEq(o$=y-~aDfW2Cj(%{=5A$a}fLF5;1g$79Cm`t``Y8H@}JI^)(3uIya=DG{>+ z2LjIuQcdau@q|EWR;bRidBW4PANhR`^RuA0SK_K5K*}_@tx$Oa_LZkjl~z}u%bVtD z{00XMQ+l)#JypI;P=dT(Q25L@(T$0D121uPa_aQ+mPu}>h!Gj<@Xfe8w(egsn*7MX z!_D9va`-U(lr`no>tuc-zhh?`jI=pI=VYUNvOM#wC*s zNB1|V1t*@s2mo1{&z-dLa;doMFTvvT@&*O2r>dhp#wg=>9x7H6&iw-yk==XtobmC= z<+{9xhn`*E;+m?-@__c*=LsNDcsY`mJIZ&V&@C#8^dT)=S3bG;J#qqKgDtM)H$4Bv z@|I zaNI;?k91cyN!JG>{2XVV)w(d$|BTer(gLyFIG5#)w~X~#o+V}kes&%j+8a8gyiZ?o zG28e`CDK;oo$N{%6lm(H0-VWK?|=t@w!vEiP0^BHe;RJ?%|8j(O9n#rHF{z)O9QRr zH_mu@J)6riM==N7ESuy7Rz3mFK%q`Uli}%ki|ev1>;O)ps4nwH&BPqm^XgTb>wStV z+v8?T;`PNS9=NKAS?(4>mUUdgxi1Ao(P}z6M`%*wF!=os+Qh(@^xq3bvwNK3t0sX{ z@cGwOUrPwCA|p>~RBS9-6gF+$sw=<#8~Q?E$0J>7)#2NY0Cnx<+UM%q&sFB+2%zB# zO$!R!uFtiMiXU8kA7gy~?@bEoizYyG?2pDB-ssCdBJX!fN`3>7uylK{zCLg;NvnQf zO^Av=W4xJ>ktdP?Olt$c*T^Cp1hkPX8EM3=(L6`OK}hK17)Zr65EIdaf7jNu5oUr9C)ef5e2kNZ>ioosZjA{@W1*Cu#(i+{_~*-BH4y?SAkMT)O5B!lv=gl^wae8RYsX_>OQ4u zCost(Q&(^XCkz;m9zhXfm=v8qUt=MHrCxe&q0fA;+fcSbD-N#~vYQUndwNRs6jXC`aCKE zWOPfzml6`p;fZQpCu0W*%Tj>?l1+5RKn6-3sC?0~R0s(nAnC+mbI$RvsN!m{h}9~; zAX8fS^2Hb1TKcXp-Zm*oWYJSfmBcy1O=zhdFiBIW#CvYjSWDz04~5i;`%fR#>Ybei z@MR)ln$g4(1b;Z`d^LW)#Hmc#q0&|j{|st${5s=k*HPeS??1k zrpeZg3tx2jW02y0hDyPlz3)kXzYq5D*>zipYn+ds0)$dKTZk$HSgxX?V)i*_clYat zH}Aj1?HU=yBqSU!Igki^6;e~iDB;ziA0Sy>lA#+|FYAQ;3xg+&*J<9+FgC|nV)#vY z>DIXY9)r4Sm;Y{Z2@wI4^&Fs^-@bi2n%fvVviDb7S)&|)mOUXMPeD4(8f*}%$0_&t zjTu6CYJ?>kg5axn5t4}nYS|y+KZCwECBe_~W_mit(1v!cmk;0Siineh!D20&KVl{e zCg=7do%`KutiNjY>N1PFXrI9=BRzCRE{y;iVay7nCP=%Fs!QcAlAFPq9^{S2lU!Vt z?|NND&TxEFL1AH>CV%LgvnD1cpkO{xC$ck#ZDMD4E@_YcMwzs7qYzR9dd-20I7eY&`tH2?d)Wx-PYXSFM~g@A~&pK>n6$jy>X?T znqg*lDL)UbRJ-KM@w%!O=);ns1;;i&zsh>S-BdK|=|iAp%)aNGZ*rti*PDF-mI^qDQ`@r_VJmTPEJ&HG<`M_QUtVsV!g^gs;{qg?leNx)2U`LA`UN2*&ci(W-(WGDp)-b=AMUeSuAVg9!a2 zX{dVcsi~{q8~h03e<)BnAxcnwiUGEKJ^zams5+>uM9&~JBi6FXwf4d%jT~?;#DYjt zmjR>=LWoBOm@3~}g3*36z$+fWhZ?<^!6B=O=j+IAPB{g548aOGC3qgF8LHlXTSU!t ziahfF!E0AmwH>M}h+lE&!AFpN>yy=t%}<|ZA)0Sx4uisz<;&u4Qu<_F^Apent3 zB{j_rj%D!iQ&mxE+EZ@#-%`UBCt^xA)cduywZ=x|m^+{usoWc{z&T>Sf&yNOGJAN# zbRN(&LQI@oB?JRxs_;#M9vyNYU=^VEzvv}*@z!#I*1&Sa9<8aSTjGn;b`GOlxi)II zHg+NfvycFwmvt3*U1iBUEy!(5Mkd`qbXz7GyN zmwuT)4{monU1WpiC#m4ExTSm>e|BwNcW@AJb_7p>dLasJ7DGJ0x2)yEd<^o^ zG<`_VPa=SQW#lQoco_qC$9x|1M6XNnS+gtCT z#vnpru;rf}#==3I2~@^9(cy{H28abnm;73a;0mxv5MPv_o5C4{lbM9TQGJ2sEzkOy z4kfF73A-+Gc`{ibQ@a3JzFAB1-{FTaJ#<#+uMUXdqubfpkss<{kqn~+2FN}6kqiW0 zP{Q4$Sweesu$74(=Okp&^-;>l(f06kbPX-FVtVn@>3tKsY0Kn~@J7Rn@61epM7`Xo zA##j}WAt5S$OQ28L9me5g*dySydcC*XP>e(F&Q5n1=10&JXG=g^sXtSYS}sk!x1c# zEZym_{i8h4d)0c6R!)CTB(@oV2Kb$b57zWiwWwM`R5DLiZ_cX;sf(l|IzhS+bwMQl z%@gq2+hkw-Z*KVPeu=fKPRdeWL} zXoKFqrChvtakn{tqbi1rKuj^s_V__Xc{wsPKw@l3x@4GW4s&(gYmKb{W6|x~w&{^I z0L)G>a_pbG2}i?16y^efroojcr=V4fge@C2UwEYq4qahVjrmV63>E4OVcnqXV@wRKoqt~5bKycNfO z3OHEbONm!*t+hhR0R#_ZlYb*k+X*M9hagY!!RTT&Uc<1~*fA=0*Y^?aj>AJk64q|` zdK?Zb%su-y<5w@M;mm*P^^F&8Z7lR5Kzfk3>ug)w$>jSnz6nhLwL<}I+l8^O47~!>>EJZ z;-Sof)N;dy4P22m(2apbZrhfoLrr+mudFsK{!D|**#h6*W6s|wj&oVy#P!uKxdnJa zqM~G)3pK;d1iT##);V^IS{VI63sQ{ovYt(*w{RMnJiDNP0x<$EJv}80NT0NJ6Wp>$HB)tD?9s{7!TFhxThb&1VoO2`avOw3PA3j zl9F=myC}OD_24*)u^@8oi6Ccx$Uu3nxt#8`D78oR>~#<*(z*&6N`+ctKqMDH-jpPU zg{^*VC+R+Zr|5CZx36EZOPi1NkJcXSG;(vBg{>G}IIo|Ou+vXvM$09onTmh0up z|0Mor&ps#P9dQ!|j8VD1!0u(YGS6DHsrmUW0)Z3QxOP@q%DMLRMi5FI99PZD5<$fI zqa*weQ~1Q>B&3#K-d|_OU+u0TWKUy#U~sK-qObBrFv*}26~NE5Yq^d`Dbpph+m#Js zE(jorf77wncOO0^L`MhKSG1dkslI1nWql2mGk0mg>*k5C(6@kig0X_eZq+K%vJmMH z-8BZru+|A5-?8FwQ0t^FAEmmdA5U1Ub%n!gBqYs0+|A75^Utp$hq}kb9aK|u(u)mY z21o?+1C|vf1#Y(P7OYIr!Oo+gkTM?~-PXGqOLzC~LhsI#L#1BVXp_>?^uAxPx6hU- zV-27~=tO=9%;M#bP$YAj+qK_VQVHWUMpv2ip3|5PkX@V<0ptMfZ#=4@PQI$$m}Zdj z^|>sMv=^82nbCL&LOGAD`a~Geo>cn`=KZ_3Up78;82rMpRA3j|}BJ_~mLT&r- z{sLdJ6pj+GOl+a;BGIWX0hR;;KS&OUhww14E&vKFy}p%{fA=m%8oy|5Po+X-`TUaLXY%#UXqQ6o{PIhMW658L#|_Sl*p)4we|IP%vvI$$uvMZVyrS$ z4iR6r4OnA}aPb60r}>p<7w*7KZ>le*DB^urfbu~kb7brs!n0*}49C_)$)>LOWc%dv zH*eBkd~mS0S%ci+Q8 zkHwms=$e3zw`TkCO~A16vT`qs7J^61<6gg}sc451<}sAc4EI%$M^|&0x=(HM{sD5y zm(XT!^0x`}iideOlB&-8em5Qz9dh~A-)j?5V5F(1C-~=Zcjn32A&T-NpXj4+;O;(j zAJ0Vmi@dC>j6A9baq+Gw&Q&zXv>?FYV2uKA@y@lxw~hipAK50n*|*(SrcfvlBvcNu zNeGK!Or?w75hMWKWS$vr2OA=&VBrdDtG531yP25+KM61zEr8~O8)!o3p;iKK&GeKn z`f)rU{P=hd3E|FNGRd$KJv3o<4*Y(8(CA(!FX{i#>j3tRNWcOzv3=w~Ed&VSs4cWR zf(n4`sck6)o=-wD#iiUqqno_X$~rB{Y<8*%C%mmx2a3+EuGa z>Y#3ZW!XlTm7RvJ42Vh8GskV3#{)hZw70_MDqwCF+zYZcln9oVmS5$Q+n*N{%%1S~ zHsy^5x(yf<-2D(kRYBKopG35ozh^#j?Q>v|{M1#m0w* zAXkRoq&)IbXc<`9e{KaY%@o84+VvnYSCMC(jOm}320YRpj+shgiB-=W%bHoSs*%(u z-s$;xip+XJH@&_pt&Oi=Us7OHzZI_)9-p zP0h_X?vB|jJODe2UIIK^rdE&2R|sS9w~n3l@efx%IP>c=hqc9jP?H!9B#vM}06n~D zYO0eT5WM>01Kf^YHaF)#6=2sj^};oFWv%vnSrzp0A*PbRFBhepxU`J5vvWQIUL(t| zlW2j061&doMJ_o3BqiYHYAZZ3Ch{IwBj&e}_B-9(cmS8pEp-_N&!G9`WlCvpF3cIC z$w2#kst3n_gb`=dr>%>cXpTl=II=L*Wc}%jFZa<#aQkQd{P0WH>o>fuBTzL3vve;1 z$D=U73*`Oi=qbc>G;D(^r$20955XIxwg)1FFr{<_&1bUwAhzPfXAB&7}6 z0_-407Q!^pIi4NEyu%a!%Y`OkN5}Ul?%Dk2I2oU#M*uhTfq@P()~U4m(ENw>b=O9t zBvBtmJyP=N4&!fc0eg*;9wOM95!>;7TO-55!oUYZ0{Yzr$J81B9&B0^)W=FKjuz7o zA;lzL20uSsE6uMt#@Yz*FPb_);&TEJg3%ZuiCiYTraA z^o-)SVcCg+;yC?y@*A42sPSTE0~X=7>v(vw+x;0&U_Z{i z{#j$=nYnHEtVA&$xuUFW#zX7gE)>^L9N`eafsgD>j6O>ohdQ!(97*GOR5D>7dQA+L z2gIov*tRuf>HSz8==+L+&XJKz((ZCSHT!$J9ew$eK^)Pr!7N9`s8rIv0cHqZr}!Uqd~(>ks(ZN@br`yCU0wN^BwjI# zZ5+S-)?=SaX6NhI+p<;$-C-RCgq${+gccOV6?`aFRcTJzv#&$^!Mw13&co*wAD0!J z`SV&Df47mY`{n$ll(Ue@V`AIqcQjdgvre9BtAwNO(GuR^pY zY`!T?jq2lKbt9fMd^Y!c_4j8_1dJLgOoNZHvsd6GX0J5Z4)L%ZWMpls+b(ZYA7x2P zGim$Fh}&p_uvwrB!uI>78L~!Rq@9%o!cS{~`W_7^6H{MaNd9abn6Z znrYfK#X4c&`~kDGz)Je$Y#i~CN@(>qoovaicfH(TOP=2Jt+tFi#S6#wcuo6YYZIi?;Y(;eb)SkfF=!t3044dJmimCb{Wxi_{y!uf zH7&;_m1AmZw6j8OHaNgg$B|X4a@{TH%=uEgu%>yuXUaSopAmGbXQ*99BnO%j%5??7 zz}bp%1ZeQAP8Kg`z~kfOfIR{g)PS0(&lkE5*FUMOuFle-uwlI*b9mkfz4(70u?q-s zzGg0L*tm~<=Xf1IueyrE5N^KC8pjT=Fn3>U>|gQ)Gcks4b!Vw4I!BjmBD`Bz7*djz zzX~~%OpH`6(^7$C1lF zB|=F85b!?*V~DQcE>cC)a1l~VsMkOdi>#7;Ep+ne4@MbYd3jEDR|?xWC5!9HGU*ox z=>v`{2(>f8k-&M;hlSFG7Da0pG0bH{hbGt>@GAe^EkR_xpPA8-r)^bH^uTd+5Go$j z-bf@+qqBfuQvdq!4uE=OcNoy(!%g{%OKYA}7Y`71C;>tC)`W_NJB(e{)JbDb$+mRg z-n}moN%7ZtBqhsoavHu23mj60>YGDABB||*8A3?BTRQXo9x~aKi)Z^#*M<)yHrfC^6A7z!!?56rIfory4E7PG-)UBF8EDBwm=1G>UGgD?? zY-5V8@0Z(t7Shm}reV4PUN6?<_6HReXV9Va_3K9ZkfCBHw~;u85=VYfBOk zJnKB)e$NspF*4Yxmi2O@*LPYZmr(2D=tq9M@d|CFi~8l1R#+9{{U8w^-$LUW{o=!! z=}2}juH<$f4-d3CiPb$o9R_9s3m5!lbhTp&^8K>1vg+z;MEv^aHclr`f>E4;vGp;T zFRrbZznU3G?B#GIypi(EUC#}BDr5*@9p?)^MXE^qYPrL zPEs*UFNcS9I8w&no$Kl~Ew#{Pwsv*+;3%DXDpEG`ZD&nQ%|mALJP#0{4+)CRZwWYL zHeBH}Ulk;K(jmv_Fl`a zUBfU#ZOOKM`yL@73?(f!WR-S#su(Prd|@_wS-<1;C z&inu!(ENrD<(K_4p33aqDqZA5K4Ar}>nHYjclPizE<)FhRT>wqP*jT@g-HSG+y8bgJ2*ka27 zb0rbo6QY*~Sm}6;=eFyOzNsFD4}J~dpuzfbHIXfGgcXRA64_H-_M;OMccSaxziJXp z%YQY0lWL#96*b!#EwX){_(<>khBvtV3WRh>N?JVwmDjVe4fORjT+pmz#)%fLM}?6V za5HYzQ=rHT$KA=uprAK0ajwUCVDkI@BZY$1^mJApUg}xVDYf^HxM6h{zC76Pi7F9$ zPWMJ5clVO;o;?*|$8I}{OGtR4dkKUM_r(ot2bPjS+?Sa z^)Le)iwYc!hSh3`9sEO3X75Hv9AK6ii>=A^6vRBmi+^kM^6ZXzb428pl&qg}(aU=9 zz>GIqO-;>%Yt2A0+G@G|+nsNl2zxTadUHXfSOKgyyr(pr_3F+eG`4$v*bD2G($Wp? zx8--;^N+S6yGTR@FmSP`sG}qOR(%kt(vJBPUf8%211W4%Lv4?g&z+O+ewp%od^~$f zo%MNZU{d1q9+jn=Js7AIt;rwGy8GV3Rb9R(BsrIz&3!077f1}W-#)o(vh)kh(5WiC zQt%s!u%6~(-Y49x#*^9(A#U~Av?pJPvfRUgwKX+ORFXQM8R}xp3Ixnod0yK0im1d* zmY2^%V4FS6juzN1zxIHjl)YG{n&%?hU%ifr+4xIKfKENiu?q9*hbAeeC`2HytBj;h zl#-J>0>UUMNw$YtVcQ-ao&wd8Qt`yL+os95Ia%A(9!?L|0lRMls*0Ls910JO@qaQXC(RDcX~FV z$I+8(mDm)n7U|jPB(a;1(1ZewC^RH6SH)YPRMq&2b3|lUVwRMXVb!<)v;h5sgU;q! z3R@1|as#{I?!GSl-PqVuZ?(6Y*p0tfYOP;*iB zoyUGUp042uIR*YUTkexZ=wwGX@5K7?H~>yG`&aO(!zuc%u6OaQ90DO&g18Fb*sns( z`o&k_p2P8r9tL19!t^%<<|3Ja$`Dgzi)g5-d)~a!7oEoxV@64ih;jQzXtwwH+T1jK zHWv^z3bPOua7H02$>V|hR;TLabvdElzM-9?`bJ%lDKvhkZRr3a(9@^Ezr|W#NxyAr zdJQaF%jZ{p{eg37c^#q0MLmnQ-n6YYB?dU}4PVzCm0O<}T~DbySI}|Q>J(B6ME^== z+K&v*)po*K$4xCQ<#p&dqvPVd;m92JDTo@mEY5{wfA(%2RPAUpSD(Hk$@B6@ct;r- zRo~wDdHye2r7=Mus(D-&YK1*=m5C~uXlFTPYPwmThf4ldR@U*yaa}zHrrg&?x8s8ld$Z z@!`XVJjkCUk_?2@_Vfy8bvcQ#=@v^fGBd}>NR2rQ0A2?~Mt{#-%sNkvckaiJ9jg^z zJ0)?+j_0km6bMro+Y}N@uXVqS@wr|{Gg1d68@}CRTY>kSJo(8=eU$fQ5bRvgd&zo> zniT@Kb_o|T+-E=!dPX|%0Cw+g(BbH)?=??t{qq!7P(Y!uo5>%hrK7_%*cXpfvZz4I;eu-Lh4rn#JlH*MN9{*aT6%|JM=EzMh+;}DV))JehKL0M%DyNxUIId_iV zPEXsxq<_~@Vn1&eKm{9{?XsFlg^xi(A$1`L4U$#z*p14Rv0q*8clLtTQVMvh`V*6>4pM3Mj1dQW+DY-|(2 z3>oRM2hM6PbRV8Lxx1$e1V?=N_N}$Oo%Gy8q&<;SxAuzKJlH^UyooToRX*})Xh052e>Hy}>7{Z=2>}JUMsBVk-SHvb&FH~v6PLeuTbcXvO^IJ3 zeahng=PH3E;5qzmHEG9_1o8zg4);d9o&Ul{5LTCQxznt~^+xop>FMe|`_{V(4YoYS za!|__6ri*Fg_9Im%$P%}kA*#$8NbVDRVeM=?e^V%XCl`kGu9hC4V!r0bamBhrjAEF zo|LdJAg%EpKJ;~Uy%rru{R^!-z-B)r@7cC}yZ-koz+!FuGY@(B_<*I(-Cbd3;YABT zQ|Zj7tz$h5gbS)kq~;$aO3EuiD2AvUsOo03d36A2K)2E%UEP{Vh_h>T9r9zgd68-| zCn3K3m4aWn1o`=~{(AfRzy?X)bH-NJ%X=!hDp4lkT=Hq;9O{v0K~9>4hze1(vA{qC z{rtI)&-?rQ3gAll)Tv2LYe@q+SJ+&Fe0Flx5S%?evCG}GGl%POF z+c0_t92p!gsqtb)61Fg?kt`*)VT{j$YV)AYE)yXZ@KS}v#V7fl-@& zJ;~h%77LLN`OMVEkIyKZBO9JR<->-8``e5%76$S0GTN>oafDFeh^1w8+qgxxku#`3 zU*Dfk{-(@d0V9IH$9~>)-N5MVZ0gOM+J949pXk>5ANn2-qN6+0F}XnZkvfnYy&CKVy4dJ2w*%R@ijQwxT>hRQb}X8XiHGae zUnfO1+d~1^$lcbq@roLl5paX^)wH^`>@*#L(SP6ruefvPl?(eRqEb@5BO|q#BlP#J z1v0wRvOB&l{zm`ZLHK5rmm@8pD9HQ*n!Fk79E`i9pNViB%3;h#Pn6joeEMR*?k~PI z0RaI3TtF`st!PO~&{QD=p|hxHNADv{seLQQo59Zy}sXj4|Kiv?oFnf=S41kLwjOifNfAqOgQ<^ z`Zct8l$i!tCSvk4fni}9EjKV+0PQxoom{zjM92{0&Ws=7)j@&M#@#YD-DVGPT97nQG zK@Xsox3R~8<8T8(oF;oGJb0ws$D;+`s|(ukC6O$TWzlxx&CUpt#{~uG|9gk(-zkjt0 zQBo+B5XvSyO0qJ_UU4ZSTSjFoB$X7hN8MJ)XxO__wvdn_Sy?GW_U}0BzQ51UAJ6N# z@9yfl&hztmkK=v3k3*iF*6h%U%Mb=dp92BfOUzq~N@X2Va554{5`gZ$y%Uo)&P0sc9&E-nElpmKX3-bm)dqiiIZI?aitH0cso1T7Yew~MHWgY&!pjwt%x2-ufSmQi+A3-Rx(^h0J zS|O8MEBA7NUDu9-7RIyB@s2P9m3e!(uYLK!Xv$|bYH^8wLm|^{>+UgENgVi%ag#>R zTIEetzpbNEU+?G72~7Uiv>3`Bp>V2|`Ow!VD=n?+^CqoOEM*9@jT7pdFg!*; zG!7z;0eR|$p}n3S{pd%k?b|atY+g7{h8#a2peD3~j&5*js)gK?!fE?)mW_=KDU|91 z)tw!|@<1ExW)c0SH%J|+$=05`KgGmoSGD_7spbBKW{@_uns}wtFK^N<6tZT2_;a)R zo%>g=21K*(i%%R7 zb?c}r`fwfwiJ4F}K#3RzfESD&W&Jfj^@NlH$fqNg_Gcs>W7{(PE&>cJ8k$gy+fdo( z_!B&nJVg`|P+~&m^VWWsXIkgDVj5)iAeMkBCOFfvuV}d*sI=vePEFxuC0gfytmZbq z053j%!xvm|XiBpkoLNYrv1r%v|(O^#*;L&o-&jC0pIvQ;Ut zOV>@a*^l{7{HK7FkQ#EmfL}RlX`zLp9Ojob80AQbSxViDmW%Kn{DKNe_16~C@TMSX zPP-Kd=@epSIWRV*Upq%kFYN6xnt+R);qmR8{ja@$*VT1%_3i}-*Bs&Iwsvqpfm#)g zdI*69H;1rO3wU(b0t)cYp0&NNIM;Rc6>igem`h#D3Awy1?&zSd*QnKA3LxOX8^YHqZj{_EV9h7_7%v zT{H1uPHo;No`oZtHDq3>xH-<{!kjXv$@u~N{&0W@d2=>ynwqpg2wb}6#m$m)Ka&NZ zFSxnoDpNx1MRsq`5QT8`)^BBFqN7pS9$5P*B9M2~c@qy-*hXEE1&!Yl=c|e%Th|jg zx-7B(n^I>Q*o<~fC?%SHYSb$5^YFa(`+E1TT{X77K_W0}tvoW8S>EHEaLk(*2(JN3EDXEBNle5q(*&g^;T7pD32Uu7ATwD(43C# zB?3$-FF$wiexn7uXtu7AzW&YGqa$RIy?~c$(@eWmpAj!by=vByngBxpG}N5GgaP@f zDE5R{D1t~2yHX?Ipk4-2g!h6+P!)pF(AuP4i3S(M0h8f1FzH$4r3c&O@BZHBNX;6}atm)>K zKObQb$=dV7Q zWR7E9*A;vGzyUmKot5+l@%Qc#*XZZtsu(5qu8U8`|M9qZl z9RiWjJA1Z&YD%_Yauv|T_wNp(C)e+}nEw&;CrEN32NMss2Z)D@i!e%zS7_u647#z! zVif~(#HW{#7n&aXZ2}aB7KxWPgh(oW7f^YFCJGd8{J5VP7%4tibj)7M=N99shisk_fyh!^$>%BqjXRbQXKllQ7Fk_%RmK>pMfey7hK zeozoC>w4w@@2(}WU}?{d-w(fVv{Lw3NZ~K4DyFcvFeUhisL*mGopoO`PIU5UDjmh9 z(GG~S0mfG~m!O;;vK5KN5^`HAGb5wf+|P9xA$A^RH?UC(=y1@m9Z)Q4N-F5HNtpCu z@B{Hbq!4>%TEA>?XP?Om>-VpX{(~-&f$9c;3iBDi0T`SEmo~Rb9GJ$Hz+48TMDvkC zYcknZ?vVf|XOIYW5t#bJkWCN>*;_U7v8M++;b9+6VMdFE48RA^J`CR$dFtWm35bBv z>qlCL4XOud{_x1+3}3L}mCe4%`MdepS0e*+|Jv|sn{xr_CrWicU+U1ma4+#G>X=oZ ze8Z5=-8dLkZUQ|OM~i-{*UD913eBWl64KAUeUI_ik@x5HLd6tp6{9mv9OPj1Vu+zw z#WnGToB~i1h?giX{zGJ;kof(0*t;nvwOFE|26Ud^f^Udba)$9As`v)tx?_w?t)%M&M zt!#O4(x_o|_&1%x*vQYTDJ$_vJG8+J8SgehLl=h|i#UticgnWqwvQ@J9X)Ws&qoKa z%)8%SJ{Yc@JI7r7ntX@#?QTX!iM~&+ZB_dDHab{^@NW?!b0^`_(6nX2r3NZ2p&X{)Y6hmP;Z`YL_ccLk88-*Li=92-(+fbpzX|}&b8i< zD@rU{T-$xL4dNd%|6|J9J^N>of<*raC6s%=Zp*-w7P~iVXsYS%9cz(+yHBrY*?YL@ zgTOu0i*9)~X$pCfO6)l9fSd2UAN~p~5{vm5{DWlASjW$9#Q10P1d{FWSk}k#WUakD zIUIYjKohWDyM9%dotF1p$qO+3;2K-~$Yh;e$gB{sZQK*Pv&9dnL<=(_TClW&tPb{I zP7Ytf-D{mg>+IyY=xziAU`x^yE3g?s#_V7nfm2=Q(AV7!45UswfXp_iO27oWcAabv z`%@8ImQU4e)wqDG3UEx+=6Wg5wd40N&i42P%_os8&8!ZO^2D&p=GuqjY+gUxD;ma5 zz1SOhyp`?VvEf4JplLhm$sjK@takzkMiqID!Me}p>h&n^XDur0NA)(fE9IJ{JAOa* zYA8-8TO{jQ$pgmj*_4rdT!v}>l}vJMdin@N@UU5Tp)m5X{Uc>! z2uo6d-dhO+Kd+jHqsh7v7})ByP6pe$+VI%>_~FA1I)ywJaE#1DIXqX(6qw@a$6@D? z!i$;w{m95P?Ze6lu3i`dj{Wl37r0*F3Kj*~Y43kW5nGs>%kQsv)0j^K^{cWntKLlj zQEefw9US#))1s8v&4uqzsta4~M4z{tE%(U%IZ|7v9XR3FL~@XJMzzla_qmZKedkf- zXooZ_eog+>K;@UXnF;dQlC&iCV^>>-2{0A@}up6y4@oqwMj_wAt; zjdfpG@Ajc;&J{KO2P%jdtl@PRKWvD^eiiHkfP7u7IOqRJ7f(d<9bL9AH1IKcdZL+8 z+XCN|T`ARv=qQwzRDgFZEb!Wyh-cw)%|;+vU%R%h?acvM@;&anU1^_tfx}PC@szO$ z8*Pr;CP7|K>yo4+EuF|Y-m8W1i%&Ql;?sF|cDJC~BQ@{>?)zLtU!S1DBPOzzJ%UXO1bQ#|c~_Yz7=^;D^n0}q??Y7UQCi|9CTd)yBG;b; zqKuzT)~E(FZ^d_CE`Z3*Bz3tl=S{ohAxbIM?L(3joMLZwP5x}Y>hne9FZ>`*iXE`m z4)&IP@K$g)m42$rz*@DGt>fCIN3B)ld=W8k$mNEH(r8ut>3}~E)-kZQf1Ca<(*Lcy zREC9zGsZt;vOKuwHa)MQHZG>yfwf1&+j{5ahY#+nf4#cUc28%F4{!iJp_8S8SZ|Ms zwXtG9?Z-eC)A|cJEVf@H@2#OH1O`d`Yg|_hK{4F<`;)%L8JLv){1~}F5?y=F<8(KPJwD_m%jfK=urGa7WSbJXmc-3sZQwcH^_{ zem2TM8w_9xl9Xif0Sy0d;xV~%(NVNj5g+60=qSuwFwZXDo-8-<)}F-oSoLd*+n?%J zJxgUGXe6E|>)vn1&sU|z?mDt9EhWb^iB2bgw}q{cls^Rt#{7y33P4>k!g8@$V%@P7 zlOVZA2e$iRlnq>*JY?!AU< z4~4zBZ{kLBuyH15I??OP(%r5BI0O(uBuO&-$O)9=-7|vU3qK!>GdUJ0@)^Qk2cjA< z2SMLzpuP&!KYeg?v<|?~%~>yyK8r#gDF>*v6o@{OYZ=()w1F5eS8a|Bq{unxBym9+ zH2AUHq%WdWZRKA@N%R3z(0PjnknIDvPHYgR@OAT+o5+f$Vq)>^nGjk_$*OII)Di5Y`8}4hPMoL)YJgU(m~e1l>Ut>|b3FW5CgUsgVfuO7lnns({-GU zAKam!e*VJ-DMAt}mfvt&pj?Kw%3U>F&uho4w8=T-3dSE*TRo#GjIFi^79A+xcUPQv z7IDW<-rnUQ_PuoXw+`p^5V(ir_j{XscS0i`)|WAvm6@4i&{c{cL>7BN0n9+z=zk+9 zh;VfTu95_oYzWImD3T9>L~!`9&BFB1K2f{h3oX7Zd-lBXiJv2Tc`d`Bc-OAzw5q2- z842Hs;o)ZQH+kSWp~JpYvgNKV9KjwxzKBT_%1bKUC10Vg+7s7jk2@fz(T@|8k}DB{cI&A=6FvP~w*xcJq5Rr*SB(GXj~|$xQuRiJdVCfbX(lgpkG$dh%51f*_(WJ2m4DS%67&252?0_gHa6o|C zDXFRU&?eP(py`$)o*41-MFe8iy?uR-CeEMTIt8Pv=b#PJ>(X*8;w9wF2zAijcsv*= zei1uF+y>c^cN8wnL}2wM`t5*yS6=^jtjiC_+8Q6;=ZUZWho{nfBC8`&!sUi>+^|p) zL>&*bbyjV==lvVF1I8Daj#y+iuc?JXG)NBRfYz_|PFaP8^LX|km&AHM1(@C@dY

v2GW}p;d?O9 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 z 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 z

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

kg}B2(aUz8w;FB-(tNPlNeN0X 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

fSpY`qqmnjv0x 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

fL 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

+o2a|a^hHmr0uHpVuZiL3Oe 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.pressed) { + SEND_STRING (QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION); + } + break; + case 1: + if (record->event.pressed) { // For resetting EEPROM + eeconfig_init(); + } + break; + } + return MACRO_NONE; +}; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + // dynamically generate these. + case EPRM: + if (record->event.pressed) { + eeconfig_init(); + } + return false; + break; + case VRSN: + if (record->event.pressed) { + SEND_STRING (QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION); + } + return false; + break; + case RGB_SLD: + if (record->event.pressed) { + #ifdef RGBLIGHT_ENABLE + rgblight_mode(1); + #endif + } + return false; + break; + } + return true; +} + +// 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/keyboards/ergodox/keymaps/siroken3/readme.md b/keyboards/ergodox/keymaps/siroken3/readme.md new file mode 100644 index 00000000000..979ce0f5b8f --- /dev/null +++ b/keyboards/ergodox/keymaps/siroken3/readme.md @@ -0,0 +1,15 @@ +# ErgoDox EZ Default Configuration + +## Changelog + +* Dec 2016: + * Added LED keys + * Refreshed layout graphic, comes from http://configure.ergodox-ez.com now. +* Sep 22, 2016: + * Created a new key in layer 1 (bottom-corner key) that resets the EEPROM. +* Feb 2, 2016 (V1.1): + * Made the right-hand quote key double as Cmd/Win on hold. So you get ' when you tap it, " when you tap it with Shift, and Cmd or Win when you hold it. You can then use it as a modifier, or just press and hold it for a moment (and then let go) to send a single Cmd or Win keystroke (handy for opening the Start menu on Windows). + +This is what we ship with out of the factory. :) The image says it all: + +![Default](default_firmware_v1.2-2.png) From e9b1958df2103fca4865db08ca22dfe22c05c07f Mon Sep 17 00:00:00 2001 From: Kenichi Sasaki Date: Sat, 18 Feb 2017 01:07:04 +0900 Subject: [PATCH 029/190] Added JIS keymap symbols --- keyboards/ergodox/keymaps/siroken3/keymap.c | 42 ++++++++++++--------- 1 file changed, 25 insertions(+), 17 deletions(-) diff --git a/keyboards/ergodox/keymaps/siroken3/keymap.c b/keyboards/ergodox/keymaps/siroken3/keymap.c index 14e6ba50c90..9a186b90c26 100644 --- a/keyboards/ergodox/keymaps/siroken3/keymap.c +++ b/keyboards/ergodox/keymaps/siroken3/keymap.c @@ -7,6 +7,14 @@ #define SYMB 1 // symbols #define MDIA 2 // media keys +#define JS_COLN KC_QUOT // : and + +#define JS_AT KC_LBRC // @ and ` +#define JS_HAT KC_EQL // ^ and ~ +#define JS_ENUN KC_RO // \ and _ +#define JS_ENVL KC_JYEN // \ and | +#define JS_LBRC KC_RBRC // [ and { +#define JS_RBRC KC_BSLS // ] and } + enum custom_keycodes { PLACEHOLDER = SAFE_RANGE, // can always be here EPRM, @@ -17,16 +25,16 @@ enum custom_keycodes { 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 | - | - * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - * | Tab | Q | W | E | R | T | L1 | | L1 | Y | U | I | O | P | \ | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | Ctrl | A | S | D | F | G |------| |------| H | J | K | L |; / L2|' / Cmd | - * |--------+------+------+------+------+------| Hyper| | Meh |------+------+------+------+------+--------| - * | LShift |Z/Ctrl| X | C | V | B | | | | N | M | , | . |//Ctrl| RShift | - * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * |Grv/L1| '" |AltShf| Left | Right| | Up | Down | [ | ] | ~L1 | + * ,--------------------------------------------------. ,-----------------------------------------------------. + * | ^ | 1 | 2 | 3 | 4 | 5 | LEFT | | RIGHT| 6 | 7 | 8 | 9 | 0 | - | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+-----------| + * | Tab | Q | W | E | R | T | L1 | | L1 | Y | U | I | O | P | @ ` | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+-----------| + * | Ctrl | A | S | D | F | G |------| |------| H | J | K | L |; / L2|: * / Cmd | + * |--------+------+------+------+------+------| Hyper| | Meh |------+------+------+------+------+-----------| + * | LShift |Z/Ctrl| X | C | V | B | | | | N | M | , | . |//Ctrl|\ _ / Shift| + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+-----------' + * |Grv/L1| '" |AltShf| Left | Right| | [ | ] | | | \ | ~L1 | * `----------------------------------' `----------------------------------' * ,-------------. ,-------------. * | App | LGui | | Alt |Ctrl/Esc| @@ -40,20 +48,20 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // 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, + JS_HAT, KC_1, KC_2, KC_3, KC_4, KC_5, KC_LEFT, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, TG(SYMB), KC_LCTL, 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), LT(SYMB,KC_GRV),KC_QUOT, LALT(KC_LSFT), KC_LEFT,KC_RGHT, ALT_T(KC_APP), KC_LGUI, KC_HOME, - KC_SPC,KC_BSPC,KC_END, + 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, LT(MDIA, 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_UP, KC_DOWN,KC_LBRC,KC_RBRC, KC_FN1, + 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, JS_AT, + KC_H, KC_J, KC_K, KC_L, LT(MDIA, KC_SCLN), GUI_T(JS_COLN), + MEH_T(KC_NO),KC_N, KC_M, KC_COMM, KC_DOT, CTL_T(KC_SLSH), SFT_T(JS_ENUN), + JS_LBRC, JS_RBRC, S(JS_ENVL), KC_RBRC, KC_FN1, KC_LALT, CTL_T(KC_ESC), KC_PGUP, KC_ESC, KC_TAB, KC_ENT From 6d16d282bf8e959b71e2d708b31b719fdc346e44 Mon Sep 17 00:00:00 2001 From: Kenichi Sasaki Date: Sat, 18 Feb 2017 01:27:12 +0900 Subject: [PATCH 030/190] remove reset key --- keyboards/ergodox/keymaps/siroken3/keymap.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/keyboards/ergodox/keymaps/siroken3/keymap.c b/keyboards/ergodox/keymaps/siroken3/keymap.c index 9a186b90c26..e81ef193c9e 100644 --- a/keyboards/ergodox/keymaps/siroken3/keymap.c +++ b/keyboards/ergodox/keymaps/siroken3/keymap.c @@ -64,8 +64,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { JS_LBRC, JS_RBRC, S(JS_ENVL), KC_RBRC, KC_FN1, KC_LALT, CTL_T(KC_ESC), KC_PGUP, - KC_ESC, KC_TAB, KC_ENT - ), + KC_ESC, KC_KANA, KC_ENT ), /* Keymap 1: Symbol Layer * * ,---------------------------------------------------. ,--------------------------------------------------. @@ -115,7 +114,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| * | | | | MsUp | | | | | | | | | | | | * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | |MsLeft|MsDown|MsRght| |------| |------| | | | | | Play | + * | REST | |MsLeft|MsDown|MsRght| |------| |------| | | | | | Play | * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| * | | | | | | | | | | | | Prev | Next | | | * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' @@ -133,7 +132,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [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_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_BTN1, KC_BTN2, KC_TRNS, KC_TRNS, From ab5d4ae80326d526619ab0801f8d4276ec7b3b41 Mon Sep 17 00:00:00 2001 From: Kenichi Sasaki Date: Sat, 18 Feb 2017 02:19:56 +0900 Subject: [PATCH 031/190] fix --- keyboards/ergodox/keymaps/siroken3/keymap.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/keyboards/ergodox/keymaps/siroken3/keymap.c b/keyboards/ergodox/keymaps/siroken3/keymap.c index e81ef193c9e..3503d2aefdd 100644 --- a/keyboards/ergodox/keymaps/siroken3/keymap.c +++ b/keyboards/ergodox/keymaps/siroken3/keymap.c @@ -76,7 +76,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |---------+------+------+------+------+------| | | |------+------+------+------+------+--------| * | | % | ^ | [ | ] | ~ | | | | & | 1 | 2 | 3 | \ | | * `---------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * | EPRM | | | | | | | . | 0 | = | | + * | EPRM | | | | | | 0 | . |Enter | = | | * `-----------------------------------' `----------------------------------' * ,-------------. ,-------------. * |Animat| | |Toggle|Solid | @@ -102,7 +102,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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_0, KC_DOT, KC_ENTER,KC_EQL, KC_TRNS, RGB_TOG, RGB_SLD, KC_TRNS, KC_TRNS, RGB_HUD, RGB_HUI From c61b5d88a846083175fccd6b20fa2fd87a1417de Mon Sep 17 00:00:00 2001 From: Kenichi Sasaki Date: Sun, 19 Feb 2017 22:46:54 +0900 Subject: [PATCH 032/190] change bracket key posision --- keyboards/ergodox/keymaps/siroken3/keymap.c | 28 ++++++++++----------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/keyboards/ergodox/keymaps/siroken3/keymap.c b/keyboards/ergodox/keymaps/siroken3/keymap.c index 3503d2aefdd..e3717f726f8 100644 --- a/keyboards/ergodox/keymaps/siroken3/keymap.c +++ b/keyboards/ergodox/keymaps/siroken3/keymap.c @@ -26,15 +26,15 @@ 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 | - | + * | ESC | 1 | 2 | 3 | 4 | 5 | LEFT | | RIGHT| 6 | 7 | 8 | 9 | 0 | [{ | * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+-----------| - * | Tab | Q | W | E | R | T | L1 | | L1 | Y | U | I | O | P | @ ` | + * | Tab | Q | W | E | R | T | L1 | | L1 | Y | U | I | O | P | ]} | * |--------+------+------+------+------+------| | | |------+------+------+------+------+-----------| * | Ctrl | A | S | D | F | G |------| |------| H | J | K | L |; / L2|: * / Cmd | * |--------+------+------+------+------+------| Hyper| | Meh |------+------+------+------+------+-----------| - * | LShift |Z/Ctrl| X | C | V | B | | | | N | M | , | . |//Ctrl|\ _ / Shift| + * | LShift |Z/Ctrl| X | C | V | B | | | | N | M | , | . |/ Ctrl|\ _ / Shift| * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+-----------' - * |Grv/L1| '" |AltShf| Left | Right| | [ | ] | | | \ | ~L1 | + * | ^ ~ | '" |AltShf| Left | Right| | [ | ] | | | - | @ ` | * `----------------------------------' `----------------------------------' * ,-------------. ,-------------. * | App | LGui | | Alt |Ctrl/Esc| @@ -48,20 +48,20 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // Otherwise, it needs KC_* [BASE] = KEYMAP( // layer 0 : default // left hand - JS_HAT, KC_1, KC_2, KC_3, KC_4, KC_5, KC_LEFT, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, TG(SYMB), - KC_LCTL, 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), - LT(SYMB,KC_GRV),KC_QUOT, LALT(KC_LSFT), KC_LEFT,KC_RGHT, + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_LEFT, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, TG(SYMB), + KC_LCTL, 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), + JS_HAT, KC_QUOT, 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, JS_AT, - KC_H, KC_J, KC_K, KC_L, LT(MDIA, KC_SCLN), GUI_T(JS_COLN), - MEH_T(KC_NO),KC_N, KC_M, KC_COMM, KC_DOT, CTL_T(KC_SLSH), SFT_T(JS_ENUN), - JS_LBRC, JS_RBRC, S(JS_ENVL), KC_RBRC, KC_FN1, + KC_RGHT, KC_6, KC_7, KC_8, KC_9, KC_0, JS_LBRC, + TG(SYMB), KC_Y, KC_U, KC_I, KC_O, KC_P, JS_RBRC, + KC_H, KC_J, KC_K, KC_L, LT(MDIA, KC_SCLN), GUI_T(JS_COLN), + MEH_T(KC_NO),KC_N, KC_M, KC_COMM, KC_DOT, CTL_T(KC_SLSH), SFT_T(JS_ENUN), + JS_LBRC, JS_RBRC, S(JS_ENVL), KC_MINUS, JS_AT, KC_LALT, CTL_T(KC_ESC), KC_PGUP, KC_ESC, KC_KANA, KC_ENT ), From 5abe05147c5b3113327d5d40db0ee12d759c73d3 Mon Sep 17 00:00:00 2001 From: nstickney Date: Sun, 19 Feb 2017 21:25:35 -0600 Subject: [PATCH 033/190] familiar layout v0.1 from ErgoDox-EZ configurator --- keyboards/ergodox/keymaps/familiar/keymap.c | 111 ++++++++++++++++++++ 1 file changed, 111 insertions(+) create mode 100644 keyboards/ergodox/keymaps/familiar/keymap.c diff --git a/keyboards/ergodox/keymaps/familiar/keymap.c b/keyboards/ergodox/keymaps/familiar/keymap.c new file mode 100644 index 00000000000..7cd81a87c51 --- /dev/null +++ b/keyboards/ergodox/keymaps/familiar/keymap.c @@ -0,0 +1,111 @@ +#include "ergodox.h" +#include "debug.h" +#include "action_layer.h" +#include "version.h" + + +#include "keymap_german.h" + +#include "keymap_nordic.h" + + + +enum custom_keycodes { + PLACEHOLDER = SAFE_RANGE, // can always be here + EPRM, + VRSN, + RGB_SLD, + +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [0] = KEYMAP(KC_ESCAPE,KC_1,KC_2,KC_3,KC_4,KC_5,KC_MINUS,KC_DELETE,KC_Q,KC_W,KC_E,KC_R,KC_T,KC_HOME,KC_TAB,KC_A,KC_S,KC_D,KC_F,KC_G,KC_LSPO,KC_Z,KC_X,KC_C,KC_V,KC_B,KC_END,CTL_T(KC_LGUI),KC_APPLICATION,KC_GRAVE,KC_QUOTE,KC_BSLASH,KC_AUDIO_VOL_DOWN,KC_AUDIO_VOL_UP,KC_AUDIO_MUTE,ALT_T(KC_SPACE),MO(1),KC_RALT,KC_KP_PLUS,KC_6,KC_7,KC_8,KC_9,KC_0,KC_PSCREEN,KC_PGUP,KC_Y,KC_U,KC_I,KC_O,KC_P,KC_BSPACE,KC_H,KC_J,KC_K,KC_L,KC_SCOLON,KC_ENTER,KC_PGDOWN,KC_N,KC_M,KC_COMMA,KC_DOT,KC_KP_SLASH,KC_RSPC,KC_LBRACKET,KC_RBRACKET,KC_TRANSPARENT,KC_APPLICATION,CTL_T(KC_RGUI),KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_RALT,MO(1),ALT_T(KC_SPACE)), + + [1] = KEYMAP(M(0),KC_F1,KC_F2,KC_F3,KC_F4,KC_F5,KC_F11,KC_PAUSE,KC_TRANSPARENT,KC_TRANSPARENT,KC_UP,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_LEFT,KC_DOWN,KC_RIGHT,KC_TRANSPARENT,KC_TRANSPARENT,KC_MEDIA_PREV_TRACK,KC_MEDIA_STOP,KC_MEDIA_PLAY_PAUSE,KC_MEDIA_NEXT_TRACK,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_F12,KC_F6,KC_F7,KC_F8,KC_F9,KC_F10,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_INSERT,KC_LEFT,KC_DOWN,KC_UP,KC_RIGHT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT), + +}; + +const uint16_t PROGMEM fn_actions[] = { + [1] = ACTION_LAYER_TAP_TOGGLE(1) +}; + +// leaving this in place for compatibilty with old keymaps cloned and re-compiled. +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + switch(id) { + case 0: + if (record->event.pressed) { + SEND_STRING (QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION); + } + break; + } + return MACRO_NONE; +}; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + // dynamically generate these. + case EPRM: + if (record->event.pressed) { + eeconfig_init(); + } + return false; + break; + case VRSN: + if (record->event.pressed) { + SEND_STRING (QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION); + } + return false; + break; + case RGB_SLD: + if (record->event.pressed) { + rgblight_mode(1); + } + return false; + break; + + } + return true; +} + +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 1: + ergodox_right_led_1_on(); + break; + case 2: + ergodox_right_led_2_on(); + break; + case 3: + ergodox_right_led_3_on(); + break; + case 4: + ergodox_right_led_1_on(); + ergodox_right_led_2_on(); + break; + case 5: + ergodox_right_led_1_on(); + ergodox_right_led_3_on(); + break; + case 6: + ergodox_right_led_2_on(); + ergodox_right_led_3_on(); + break; + case 7: + ergodox_right_led_1_on(); + ergodox_right_led_2_on(); + ergodox_right_led_3_on(); + break; + default: + break; + } + +}; From 9b40dd796ea2aae9f342dc4d9e7d431d8448e1b9 Mon Sep 17 00:00:00 2001 From: nstickney Date: Thu, 23 Feb 2017 21:13:45 -0600 Subject: [PATCH 034/190] familiar layout graphics, etc --- keyboards/ergodox/keymaps/familiar/HNTR.svg | 7253 ++++++++++++++++ .../ergodox/keymaps/familiar/familiar.json | 865 ++ .../ergodox/keymaps/familiar/familiar.png | Bin 0 -> 102059 bytes .../ergodox/keymaps/familiar/familiar.svg | 7131 ++++++++++++++++ .../keymaps/familiar/familiar_stick.svg | 7592 +++++++++++++++++ keyboards/ergodox/keymaps/familiar/hntr.json | 634 ++ keyboards/ergodox/keymaps/familiar/hntr.png | Bin 0 -> 77473 bytes 7 files changed, 23475 insertions(+) create mode 100644 keyboards/ergodox/keymaps/familiar/HNTR.svg create mode 100644 keyboards/ergodox/keymaps/familiar/familiar.json create mode 100644 keyboards/ergodox/keymaps/familiar/familiar.png create mode 100644 keyboards/ergodox/keymaps/familiar/familiar.svg create mode 100644 keyboards/ergodox/keymaps/familiar/familiar_stick.svg create mode 100644 keyboards/ergodox/keymaps/familiar/hntr.json create mode 100644 keyboards/ergodox/keymaps/familiar/hntr.png diff --git a/keyboards/ergodox/keymaps/familiar/HNTR.svg b/keyboards/ergodox/keymaps/familiar/HNTR.svg new file mode 100644 index 00000000000..a419e7ab8b8 --- /dev/null +++ b/keyboards/ergodox/keymaps/familiar/HNTR.svg @@ -0,0 +1,7253 @@ + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + PanningHold down Scroll Wheel to pan with mouseUp/Down - Scroll WheelLeft/Right - Shift + Scroll WheelZooming- Ctrl + Scroll View to zoom in/out- Press 1, 2, 4, or 5 for preset zoom views.Zoom Tool (F3) :- Left click to zoom in- Right click to zoom out + + + Keyboards + + + + + + + + + To avoid delays and errors in your order you must convert all of your fonts and text to vector data + This layout is used for your legends only. Keycap colors need to be defined with the online designer tool.Please check out our online tutorials at support.wasdkeyboards.comfor help and instructions regarding layout creation. + + + Quick Start:1. Enable Layers by going to: Layer > Layers (Ctrl + Shift + L) *The layers window can be expanded by dragging the area under the opacity slider.2. Use the Eyeball Icons to toggle visibility for preset layers3. Use the Select tool to move and scale objects (F1)4. Use the Text Tool to add and edit text (F8) + + Managing Layers1. Enable Layers by pressing Ctrl + Shift + L2. The Layer window can be enlarged by dragging thearea under the Opacity slider.3. Use the Eyeball Icon to toggle layer visibility.4. Use the Lock Icon to toggle the ability to edit layer.5. To add a layer, use the button from Layers panel. + + + Manipulating ObjectsThe Select Tool (F1) allows you to select and move,scale, and delete objects. Select an object, then drag the object to move it. You can drag the arrows around the object to scale it.Holding Ctrl while moving will keep the object locked onthe same X or Y axis. Holding Ctrl while scaling will keep the size ratio locked. + Inkscape Tutorial + FAQ (Frequently Asked Questions)I can't see any layers, I just see one layer or no layers when I open the layers panel.This happens when you drag and drop the layout file into Inkscape which "imports" it instead of opening it. Please close your Inkscape window, go back to the original file, right click it and choose "edit with Inkscape". What are the grids for on the layout? Can I place objects outside the grid?Yes. The grids are for reference only. You can snap the grids to use our standard margins. You can print all the way to the edge of the frame. There is a +/-0.01" tolerance, so we suggest that you stay within the grids when possible.Can I put a graphic that spans over multiple keys? Yes. Large images will be cropped to the top face of the keys. The areas in between the keys will not be printed.Advanced users can use a clipping mask to get a better idea of what the final image will look like.How can I change the color of the printing?We have tutorials in our support center that can show you how to add colors to your text and images.Go to support.wasdkeyboards.comI want to edit the Mac-style layouts, but the text is not editable.The Mac layout text is not editable since the font is not common. The font used is VAG Rounded-Light. + Adding text1. Click on the Text Tool (F8)2. Click on the area where you want add text3. Type your text4. Font and size and can changed in the text toolbar5. Use the Select Tool (F1) to reposition thetext if necessary. + + + + Editing font type and size1. Use the Select Tool (F1) select the objects youwant to edit.2. Click on the Text Tool (F8)3. Use the text toolbar to change font type and text size + + + + + Editing textUse the Select Tool (F1) and double click a singletext object.-or-Use the Text Tool (F8) and click on a single text object. + + + + Adding stock artworkCommonly used icons and symbols are available within the file.1. Turn on the visibility of the layer titled: "Stock Artwork"2. Use the Select Tool (F1) to select the object you want to use.3. Press Ctrl + C to copy4. Select the layer you want to paste the object to, then press Ctrl + V5. You can then use the Select Tool (F1) to move and/or scale the object to proper size. See "Snapping" for tips on aligning objects. + Adding custom artNormal graphics can be added into the file, but you must convert thegraphic to a path.1. Copy the graphic from another program. (Usually Right Click > Copy)2. Select the layer you want to paste the graphic to, then press Ctrl + V-or-1. File > Import (Ctrl + I) and select the file you want to import.2. Select the Embed option and click OK.3. Select the graphic, and goto Path > Trace Bitmap (Shift + Alt + B)4. Make sure your graphic is selected, then select a Scan option andclick OK. The graphic will be traced, and will overlay the original object.5. Move the new object into position and delete the original image. + + + SnappingEnabling snapping allows you to snap objects at various reference points of other objects which will allow you to quickly and accurately align objects to each other.Make sure Snap Controls Toolbar is displayed on the right hand side. (View > Show/Hide > Snap Controls Bar)Make sure Snapping is enabled (Toggle with "%")Hover over the various points to see what snappingare available. You can turn each one on/off.Drag objects over other objects to snap. You may need to zoom in or out to snap to certain objects. Turning off irrelevant points will also make it easier to snap. + + Copy and PasteCtrl + C: Copy objectCtrl + V: Paste objectCtrl + Alt + V: Paste in placeShift + Ctrl + V: Paste style + Guide LinesYou can use Guides to help align objects. Click and drag from the rulerson the edge of the document.Enable snapping to guides in the Snap Control Bar You can Show/Hide Guides by going to View > Guides + + + WASD Keyboards 104/87-Key Design Template + IMPORTANT: + Before saving and uploading your file: select all of your text; go to Path > Object to Path (Ctrl+Shift+C) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 😎 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/keyboards/ergodox/keymaps/familiar/familiar.json b/keyboards/ergodox/keymaps/familiar/familiar.json new file mode 100644 index 00000000000..e80f99e5f0d --- /dev/null +++ b/keyboards/ergodox/keymaps/familiar/familiar.json @@ -0,0 +1,865 @@ +[ + { + "name": "ErgoDox Familiar (CosmicStick Colors)", + "author": "Stick" + }, + [ + { + "x": 3.5, + "c": "#FFF8E7", + "t": "#403e3a", + "fa": [ + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 7, + 0 + ] + }, + "\n\n#\nF3\n\n\n³\n\n\n3", + { + "x": 10.5, + "fa": [ + 0, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 0, + 7, + 0 + ] + }, + "*\nF8\n\n\n\n\n\n¾\n\n8" + ], + [ + { + "y": -0.87, + "x": 2.5 + }, + "\n\n@\nF2\n\n\n²\n\n\n2", + { + "x": 1, + "fa": [ + 1, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 0, + 7, + 0 + ] + }, + "¤\n\n$\nF4\n\n\n£\n\n\n4", + { + "x": 8.5, + "fa": [ + 0, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 0, + 7, + 0 + ] + }, + "&\nF7\n\n\n\n\n\n½\n\n7", + { + "x": 1 + }, + "(\nF9\n\n\n\n\n\n‘\n\n9" + ], + [ + { + "y": -0.8699999999999999, + "x": 5.5 + }, + "\n\n%\nF5\n\n\n€\n\n\n5", + "\n\n_\nF11\n\n\n¥\n\n\n-", + { + "x": 4.5, + "fa": [ + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 0, + 7, + 0 + ] + }, + "+\nF12\n÷\n\n\n\n\n×\n\n=", + "^\nF6\n\n\n\n\n\n¼\n\n6" + ], + [ + { + "y": -0.88, + "c": "#605d57", + "t": "#FFF8E7", + "a": 7, + "w": 1.5 + }, + "ESCAPE", + { + "c": "#FFF8E7", + "t": "#403e3a", + "a": 4, + "fa": [ + 1, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 0, + 7, + 0 + ] + }, + "¡\n\n!\nF1\n\n\n¹\n\n\n1", + { + "x": 14.5, + "fa": [ + 0, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 0, + 7, + 0 + ] + }, + ")\nF10\n\n/\n\n\n\n’\n\n0", + { + "c": "#605d57", + "t": "#FFF8E7", + "a": 7, + "w": 1.5 + }, + "SYSREQ" + ], + [ + { + "y": -0.3799999999999999, + "x": 3.5, + "c": "#993300", + "a": 4 + }, + "\n\n\n↑\n\n\né\n\n\nE", + { + "x": 10.5, + "c": "#FFF8E7", + "t": "#403e3a" + }, + "\n\n\n5\n\n\n\ní\n\nI" + ], + [ + { + "y": -0.8700000000000001, + "x": 2.5, + "a": 6, + "fa": [ + 1, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 7 + ] + }, + "å\n\n\n\n\n\n\n\nW", + { + "x": 1 + }, + "®\n\n\n\n\n\n\n\nR", + { + "x": 8.5, + "a": 4, + "fa": [ + 1, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 7, + 7, + 0 + ] + }, + "\n\n\n4\n\n\n\nú\n\nU", + { + "x": 1 + }, + "\n\n\n6\n\n\n\nó\n\nO" + ], + [ + { + "y": -0.8699999999999999, + "x": 5.5, + "a": 6 + }, + "þ\n\n\n\n\n\n\n\nT", + { + "c": "#605d57", + "t": "#FFF8E7", + "a": 7, + "f": 3, + "h": 1.5 + }, + "HOME", + { + "x": 4.5, + "f": 3, + "h": 1.5 + }, + "PAGE UP", + { + "c": "#FFF8E7", + "t": "#403e3a", + "a": 6, + "fa": [ + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 7 + ] + }, + "\n\nü\n\n\n\n\n\nY" + ], + [ + { + "y": -0.8799999999999999, + "c": "#605d57", + "t": "#FFF8E7", + "a": 4, + "w": 1.5 + }, + "\n\n\nBREAK\n\n\n\n\n\nDELETE", + { + "c": "#FFF8E7", + "t": "#403e3a", + "a": 6 + }, + "ä\n\n\n\n\n\n\n\nQ", + { + "x": 14.5, + "a": 4, + "fa": [ + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 7, + 7, + 0 + ] + }, + "\n\n\n×\n\n\n\nö\n\nP", + { + "c": "#605d57", + "t": "#FFF8E7", + "fa": [ + 1, + 1 + ], + "w": 1.5 + }, + "\nINSERT\n\n\n\n\n\n\n\nBCKSPC" + ], + [ + { + "y": -0.3799999999999999, + "x": 3.5, + "c": "#993300", + "fa": [ + 1, + 1, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 7, + 0 + ] + }, + "Ð\n\n\n↓\n\n\nð\n\n\nD", + { + "x": 10.5, + "c": "#FFF8E7", + "t": "#403e3a" + }, + "\n\n\n2\n\n\n\n\n\nK" + ], + [ + { + "y": -0.8700000000000001, + "x": 2.5, + "c": "#993300", + "t": "#FFF8E7" + }, + "§\n\n\n←\n\n\nß\n\n\nS", + { + "x": 1 + }, + "\n\n\n→\n\n\n\n\n\nF", + { + "x": 8.5, + "c": "#FFF8E7", + "t": "#403e3a" + }, + "\n\n\n1\n\n\n\n\n\nJ", + { + "x": 1, + "fa": [ + 1, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 0, + 7, + 0 + ] + }, + "\n\n\n3\n\n\n\nø\n\nL" + ], + [ + { + "y": -0.8799999999999999, + "x": 5.5, + "a": 7, + "fa": [ + 7 + ] + }, + "G", + { + "x": 6.5 + }, + "H" + ], + [ + { + "y": -0.8700000000000001, + "c": "#605d57", + "t": "#FFF8E7", + "f": 3, + "w": 1.5 + }, + "TAB", + { + "c": "#FFF8E7", + "t": "#403e3a", + "a": 6, + "fa": [ + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 7 + ] + }, + "á\n\n\n\n\n\n\n\nA", + { + "x": 14.5, + "a": 4, + "fa": [ + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 7, + 7, + 0 + ] + }, + ":\n\n°\n-\n\n\n\n¶\n\n;", + { + "c": "#605d57", + "t": "#FFF8E7", + "a": 7, + "w": 1.5 + }, + "ENTER" + ], + [ + { + "y": -0.6299999999999999, + "x": 6.5, + "h": 1.5 + }, + "END", + { + "x": 4.5, + "h": 1.5 + }, + "PAGE DOWN" + ], + [ + { + "y": -0.75, + "x": 3.5, + "c": "#FFF8E7", + "t": "#403e3a", + "a": 4, + "fa": [ + 1, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 7, + 7, + 0 + ] + }, + "¢\n\n\n\n\n\n©\n\n\nC", + { + "x": 10.5, + "fa": [ + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 1, + 7, + 7, + 0 + ] + }, + "<\n\n\n0\n\n\n\nç\n\n," + ], + [ + { + "y": -0.8700000000000001, + "x": 2.5, + "a": 7, + "fa": [ + 7 + ] + }, + "X", + { + "x": 1 + }, + "V", + { + "x": 8.5, + "a": 6, + "fa": [ + 7, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 7 + ] + }, + "\n\nµ\n\n\n\n\n\nM", + { + "x": 1, + "a": 4, + "fa": [ + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 7, + 7, + 0 + ] + }, + ">\n\n\n\n\n\n\n\n\n." + ], + [ + { + "y": -0.8799999999999999, + "x": 5.5, + "a": 7, + "fa": [ + 7 + ] + }, + "B", + { + "x": 6.5, + "a": 6, + "fa": [ + 7, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 7 + ] + }, + "\n\nñ\n\n\n\n\n\nN" + ], + [ + { + "y": -0.8700000000000001, + "c": "#403e3a", + "t": "#FFF8E7", + "a": 5, + "fa": [ + 1, + 0, + 1, + 0, + 0, + 0, + 7 + ], + "w": 1.5 + }, + "SHIFT\n\n\n\n\n\n(", + { + "c": "#FFF8E7", + "t": "#403e3a", + "a": 6, + "fa": [ + 1, + 0, + 1, + 0, + 0, + 0, + 7, + 0, + 7 + ] + }, + "æ\n\n\n\n\n\n\n\nZ", + { + "x": 14.5, + "a": 4, + "fa": [ + 0, + 0, + 1, + 1, + 0, + 0, + 7, + 1, + 7, + 7, + 0 + ] + }, + "?\n\n\n+\n\n\n\n¿\n\n/", + { + "c": "#403e3a", + "t": "#FFF8E7", + "a": 5, + "fa": [ + 1, + 0, + 1, + 1, + 0, + 0, + 7 + ], + "w": 1.5 + }, + "SHIFT\n\n\n\n\n\n)" + ], + [ + { + "y": -0.3799999999999999, + "x": 3.5, + "c": "#FFF8E7", + "t": "#403e3a", + "a": 4, + "fa": [ + 1, + 0, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 7, + 0 + ] + }, + "¨\n\n\"\n\n\n\n´\n\n\n'", + { + "x": 10.5, + "fa": [ + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 1, + 0, + 7, + 0 + ] + }, + "}\n\n\n\n\n\n\n»\n\n]" + ], + [ + { + "y": -0.8700000000000001, + "x": 2.5 + }, + "\n\n~\n\n\n\n\n\n\n`", + { + "x": 1, + "fa": [ + 1, + 0, + 0, + 1, + 0, + 0, + 1, + 1, + 0, + 7, + 0 + ] + }, + "¦\n\n|\n\n\n\n¬\n\n\n\\", + { + "x": 8.5, + "fa": [ + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 1, + 0, + 7, + 0 + ] + }, + "{\n\n\n\n\n\n\n«\n\n[", + { + "x": 1, + "c": "#605d57", + "t": "#FFF8E7", + "a": 7 + }, + "PRNT SCRN" + ], + [ + { + "y": -0.75, + "x": 0.5, + "c": "#006699", + "a": 4, + "fa": [ + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 1, + 1 + ] + }, + "\n\n\nFLASH\n\n\n\n\nCTRL\nGUI", + { + "c": "#403e3a", + "a": 5, + "fa": [ + 1 + ] + }, + "CTL+SFT\n\n\n\n\n\nMENU", + { + "x": 14.5 + }, + "CTL+SFT\n\n\n\n\n\nMENU", + { + "c": "#006699", + "a": 4, + "fa": [ + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ] + }, + "\nFLASH\n\n\n\n\n\n\nCTRL\nGUI" + ], + [ + { + "r": 30, + "rx": 6.5, + "ry": 4.25, + "y": -1, + "x": 1, + "c": "#605d57", + "fa": [ + 1, + 1, + 0, + 1 + ] + }, + "\n\n\nKBDBRT-\n\n\n\n\n\nVOL-", + "\n\n\nKBDBRT+\n\n\n\n\n\nVOL+" + ], + [ + { + "c": "#FFF8E7", + "t": "#403e3a", + "a": 5, + "h": 2 + }, + "ALT", + { + "c": "#403e3a", + "t": "#FFF8E7", + "a": 7, + "f": 3, + "h": 2 + }, + "FN", + { + "c": "#605d57", + "f": 3 + }, + "MUTE" + ], + [ + { + "x": 2, + "c": "#403e3a", + "a": 5 + }, + "ALTGR\n\n\n\n\n\nLDR" + ], + [ + { + "r": -30, + "rx": 13, + "y": -1, + "x": -3, + "c": "#605d57", + "a": 4 + }, + "\n\n\nKBDBRT-\n\n\n\n\n\nBRT-", + "\n\n\nKBDBRT+\n\n\n\n\n\nBRT+" + ], + [ + { + "x": -3, + "a": 7, + "f": 3 + }, + "NUM LOCK", + { + "c": "#403e3a", + "f": 3, + "h": 2 + }, + "FN", + { + "c": "#FFF8E7", + "t": "#403e3a", + "a": 5, + "h": 2 + }, + "ALT" + ], + [ + { + "x": -3, + "c": "#403e3a", + "t": "#FFF8E7" + }, + "ALTGR\n\n\n\n\n\nLDR" + ] +] \ No newline at end of file diff --git a/keyboards/ergodox/keymaps/familiar/familiar.png b/keyboards/ergodox/keymaps/familiar/familiar.png new file mode 100644 index 0000000000000000000000000000000000000000..4d61846eb89d9a8f0a0cfde1359de0338e2735db GIT binary patch literal 102059 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 + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + PanningHold down Scroll Wheel to pan with mouseUp/Down - Scroll WheelLeft/Right - Shift + Scroll WheelZooming- Ctrl + Scroll View to zoom in/out- Press 1, 2, 4, or 5 for preset zoom views.Zoom Tool (F3) :- Left click to zoom in- Right click to zoom out + + + Keyboards + + + + + + + + + To avoid delays and errors in your order you must convert all of your fonts and text to vector data + This layout is used for your legends only. Keycap colors need to be defined with the online designer tool.Please check out our online tutorials at support.wasdkeyboards.comfor help and instructions regarding layout creation. + + + Quick Start:1. Enable Layers by going to: Layer > Layers (Ctrl + Shift + L) *The layers window can be expanded by dragging the area under the opacity slider.2. Use the Eyeball Icons to toggle visibility for preset layers3. Use the Select tool to move and scale objects (F1)4. Use the Text Tool to add and edit text (F8) + + Managing Layers1. Enable Layers by pressing Ctrl + Shift + L2. The Layer window can be enlarged by dragging thearea under the Opacity slider.3. Use the Eyeball Icon to toggle layer visibility.4. Use the Lock Icon to toggle the ability to edit layer.5. To add a layer, use the button from Layers panel. + + + Manipulating ObjectsThe Select Tool (F1) allows you to select and move,scale, and delete objects. Select an object, then drag the object to move it. You can drag the arrows around the object to scale it.Holding Ctrl while moving will keep the object locked onthe same X or Y axis. Holding Ctrl while scaling will keep the size ratio locked. + Inkscape Tutorial + FAQ (Frequently Asked Questions)I can't see any layers, I just see one layer or no layers when I open the layers panel.This happens when you drag and drop the layout file into Inkscape which "imports" it instead of opening it. Please close your Inkscape window, go back to the original file, right click it and choose "edit with Inkscape". What are the grids for on the layout? Can I place objects outside the grid?Yes. The grids are for reference only. You can snap the grids to use our standard margins. You can print all the way to the edge of the frame. There is a +/-0.01" tolerance, so we suggest that you stay within the grids when possible.Can I put a graphic that spans over multiple keys? Yes. Large images will be cropped to the top face of the keys. The areas in between the keys will not be printed.Advanced users can use a clipping mask to get a better idea of what the final image will look like.How can I change the color of the printing?We have tutorials in our support center that can show you how to add colors to your text and images.Go to support.wasdkeyboards.comI want to edit the Mac-style layouts, but the text is not editable.The Mac layout text is not editable since the font is not common. The font used is VAG Rounded-Light. + Adding text1. Click on the Text Tool (F8)2. Click on the area where you want add text3. Type your text4. Font and size and can changed in the text toolbar5. Use the Select Tool (F1) to reposition thetext if necessary. + + + + Editing font type and size1. Use the Select Tool (F1) select the objects youwant to edit.2. Click on the Text Tool (F8)3. Use the text toolbar to change font type and text size + + + + + Editing textUse the Select Tool (F1) and double click a singletext object.-or-Use the Text Tool (F8) and click on a single text object. + + + + Adding stock artworkCommonly used icons and symbols are available within the file.1. Turn on the visibility of the layer titled: "Stock Artwork"2. Use the Select Tool (F1) to select the object you want to use.3. Press Ctrl + C to copy4. Select the layer you want to paste the object to, then press Ctrl + V5. You can then use the Select Tool (F1) to move and/or scale the object to proper size. See "Snapping" for tips on aligning objects. + Adding custom artNormal graphics can be added into the file, but you must convert thegraphic to a path.1. Copy the graphic from another program. (Usually Right Click > Copy)2. Select the layer you want to paste the graphic to, then press Ctrl + V-or-1. File > Import (Ctrl + I) and select the file you want to import.2. Select the Embed option and click OK.3. Select the graphic, and goto Path > Trace Bitmap (Shift + Alt + B)4. Make sure your graphic is selected, then select a Scan option andclick OK. The graphic will be traced, and will overlay the original object.5. Move the new object into position and delete the original image. + + + SnappingEnabling snapping allows you to snap objects at various reference points of other objects which will allow you to quickly and accurately align objects to each other.Make sure Snap Controls Toolbar is displayed on the right hand side. (View > Show/Hide > Snap Controls Bar)Make sure Snapping is enabled (Toggle with "%")Hover over the various points to see what snappingare available. You can turn each one on/off.Drag objects over other objects to snap. You may need to zoom in or out to snap to certain objects. Turning off irrelevant points will also make it easier to snap. + + Copy and PasteCtrl + C: Copy objectCtrl + V: Paste objectCtrl + Alt + V: Paste in placeShift + Ctrl + V: Paste style + Guide LinesYou can use Guides to help align objects. Click and drag from the rulerson the edge of the document.Enable snapping to guides in the Snap Control Bar You can Show/Hide Guides by going to View > Guides + + + WASD Keyboards 104/87-Key Design Template + IMPORTANT: + Before saving and uploading your file: select all of your text; go to Path > Object to Path (Ctrl+Shift+C) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/keyboards/ergodox/keymaps/familiar/familiar_stick.svg b/keyboards/ergodox/keymaps/familiar/familiar_stick.svg new file mode 100644 index 00000000000..18ec937e283 --- /dev/null +++ b/keyboards/ergodox/keymaps/familiar/familiar_stick.svg @@ -0,0 +1,7592 @@ + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + PanningHold down Scroll Wheel to pan with mouseUp/Down - Scroll WheelLeft/Right - Shift + Scroll WheelZooming- Ctrl + Scroll View to zoom in/out- Press 1, 2, 4, or 5 for preset zoom views.Zoom Tool (F3) :- Left click to zoom in- Right click to zoom out + + + Keyboards + + + + + + + + + To avoid delays and errors in your order you must convert all of your fonts and text to vector data + This layout is used for your legends only. Keycap colors need to be defined with the online designer tool.Please check out our online tutorials at support.wasdkeyboards.comfor help and instructions regarding layout creation. + + + Quick Start:1. Enable Layers by going to: Layer > Layers (Ctrl + Shift + L) *The layers window can be expanded by dragging the area under the opacity slider.2. Use the Eyeball Icons to toggle visibility for preset layers3. Use the Select tool to move and scale objects (F1)4. Use the Text Tool to add and edit text (F8) + + Managing Layers1. Enable Layers by pressing Ctrl + Shift + L2. The Layer window can be enlarged by dragging thearea under the Opacity slider.3. Use the Eyeball Icon to toggle layer visibility.4. Use the Lock Icon to toggle the ability to edit layer.5. To add a layer, use the button from Layers panel. + + + Manipulating ObjectsThe Select Tool (F1) allows you to select and move,scale, and delete objects. Select an object, then drag the object to move it. You can drag the arrows around the object to scale it.Holding Ctrl while moving will keep the object locked onthe same X or Y axis. Holding Ctrl while scaling will keep the size ratio locked. + Inkscape Tutorial + FAQ (Frequently Asked Questions)I can't see any layers, I just see one layer or no layers when I open the layers panel.This happens when you drag and drop the layout file into Inkscape which "imports" it instead of opening it. Please close your Inkscape window, go back to the original file, right click it and choose "edit with Inkscape". What are the grids for on the layout? Can I place objects outside the grid?Yes. The grids are for reference only. You can snap the grids to use our standard margins. You can print all the way to the edge of the frame. There is a +/-0.01" tolerance, so we suggest that you stay within the grids when possible.Can I put a graphic that spans over multiple keys? Yes. Large images will be cropped to the top face of the keys. The areas in between the keys will not be printed.Advanced users can use a clipping mask to get a better idea of what the final image will look like.How can I change the color of the printing?We have tutorials in our support center that can show you how to add colors to your text and images.Go to support.wasdkeyboards.comI want to edit the Mac-style layouts, but the text is not editable.The Mac layout text is not editable since the font is not common. The font used is VAG Rounded-Light. + Adding text1. Click on the Text Tool (F8)2. Click on the area where you want add text3. Type your text4. Font and size and can changed in the text toolbar5. Use the Select Tool (F1) to reposition thetext if necessary. + + + + Editing font type and size1. Use the Select Tool (F1) select the objects youwant to edit.2. Click on the Text Tool (F8)3. Use the text toolbar to change font type and text size + + + + + Editing textUse the Select Tool (F1) and double click a singletext object.-or-Use the Text Tool (F8) and click on a single text object. + + + + Adding stock artworkCommonly used icons and symbols are available within the file.1. Turn on the visibility of the layer titled: "Stock Artwork"2. Use the Select Tool (F1) to select the object you want to use.3. Press Ctrl + C to copy4. Select the layer you want to paste the object to, then press Ctrl + V5. You can then use the Select Tool (F1) to move and/or scale the object to proper size. See "Snapping" for tips on aligning objects. + Adding custom artNormal graphics can be added into the file, but you must convert thegraphic to a path.1. Copy the graphic from another program. (Usually Right Click > Copy)2. Select the layer you want to paste the graphic to, then press Ctrl + V-or-1. File > Import (Ctrl + I) and select the file you want to import.2. Select the Embed option and click OK.3. Select the graphic, and goto Path > Trace Bitmap (Shift + Alt + B)4. Make sure your graphic is selected, then select a Scan option andclick OK. The graphic will be traced, and will overlay the original object.5. Move the new object into position and delete the original image. + + + SnappingEnabling snapping allows you to snap objects at various reference points of other objects which will allow you to quickly and accurately align objects to each other.Make sure Snap Controls Toolbar is displayed on the right hand side. (View > Show/Hide > Snap Controls Bar)Make sure Snapping is enabled (Toggle with "%")Hover over the various points to see what snappingare available. You can turn each one on/off.Drag objects over other objects to snap. You may need to zoom in or out to snap to certain objects. Turning off irrelevant points will also make it easier to snap. + + Copy and PasteCtrl + C: Copy objectCtrl + V: Paste objectCtrl + Alt + V: Paste in placeShift + Ctrl + V: Paste style + Guide LinesYou can use Guides to help align objects. Click and drag from the rulerson the edge of the document.Enable snapping to guides in the Snap Control Bar You can Show/Hide Guides by going to View > Guides + + + WASD Keyboards 104/87-Key Design Template + IMPORTANT: + Before saving and uploading your file: select all of your text; go to Path > Object to Path (Ctrl+Shift+C) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/keyboards/ergodox/keymaps/familiar/hntr.json b/keyboards/ergodox/keymaps/familiar/hntr.json new file mode 100644 index 00000000000..c1aae552be1 --- /dev/null +++ b/keyboards/ergodox/keymaps/familiar/hntr.json @@ -0,0 +1,634 @@ +[ + { + "name": "Infinity ErgoDox - H.NT.R" + }, + [ + { + "x": 3.5, + "c": "#e3e2dd", + "t": "#525554", + "fa": [ + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 5 + ] + }, + "\n\n#\nF3\n\n\n\n\n\n3", + { + "x": 10.5, + "fa": [ + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 5 + ] + }, + "*\nF8\n\n\n\n\n\n\n\n8" + ], + [ + { + "y": -0.875, + "x": 2.5 + }, + "\n\n@\nF2\n\n\n\n\n\n2", + { + "x": 1 + }, + "\n\n$\nF4\n\n\n\n\n\n4", + { + "x": 8.5 + }, + "&\nF7\n\n\n\n\n\n\n\n7", + { + "x": 1 + }, + "(\nF9\n\n\n\n\n\n\n\n9" + ], + [ + { + "y": -0.875, + "x": 5.5 + }, + "\n\n%\nF5\n\n\n\n\n\n5", + "\n\n\nF11", + { + "x": 4.5 + }, + "\nF12", + "^\nF6\n\n\n\n\n\n\n\n6" + ], + [ + { + "y": -0.875, + "c": "#525554", + "t": "#e3e2dd", + "a": 7, + "f": 3, + "w": 1.5 + }, + "CYCLE LAYER", + { + "c": "#e3e2dd", + "t": "#525554", + "a": 4, + "f": 3 + }, + "\n\n!\nF1\n\n\n\n\n\n1", + { + "x": 14.5, + "f": 3 + }, + ")\nF10\n\n\n/\n\n\n\n\n0", + { + "c": "#525554", + "t": "#e3e2dd", + "a": 7, + "f": 3, + "w": 1.5 + }, + "CYCLE LAYER" + ], + [ + { + "y": -0.375, + "x": 3.5, + "c": "#c0472c", + "a": 4, + "fa": [ + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 5 + ] + }, + "\n\n\nPG UP\n▲\n\n\n\ne\nO", + { + "x": 10.5, + "c": "#e3e2dd", + "t": "#525554" + }, + "\n]\n\n\n5\n\n\n\ni\nL" + ], + [ + { + "y": -0.875, + "x": 2.5, + "a": 7, + "fa": [ + 5 + ] + }, + "W", + { + "x": 1, + "a": 5, + "fa": [ + 1, + 0, + 0, + 0, + 0, + 0, + 5 + ] + }, + "r\n\n\n\n\n\nU", + { + "x": 8.5, + "a": 4, + "fa": [ + 1, + 1, + 0, + 0, + 0, + 0, + 5, + 0, + 1, + 5 + ] + }, + "\n[\n\n\n4\n\n\n\nu\nD", + { + "x": 1 + }, + "\n?\n\n\n6\n\n\n\no\nG" + ], + [ + { + "y": -0.875, + "x": 5.5, + "a": 5 + }, + "t\n\n\n\n\n\nJ", + { + "a": 7, + "h": 1.5 + }, + "", + { + "x": 4.5, + "h": 1.5 + }, + "", + { + "a": 5 + }, + "y\n\n\n\n\n\nK" + ], + [ + { + "y": -0.875, + "c": "#525554", + "t": "#e3e2dd", + "a": 7, + "f": 3, + "w": 1.5 + }, + "DELETE", + { + "c": "#e3e2dd", + "t": "#525554", + "fa": [ + 5 + ] + }, + "Q", + { + "x": 14.5, + "a": 4, + "fa": [ + 5, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 5 + ] + }, + "\n|\n\n\n×\n\n\n\n\nP", + { + "c": "#525554", + "t": "#e3e2dd", + "a": 7, + "f": 3, + "w": 1.5 + }, + "⌫" + ], + [ + { + "y": -0.375, + "x": 3.5, + "c": "#c0472c", + "a": 4, + "fa": [ + 5, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 5 + ] + }, + "\n\n\nPG DN\n▼\n\n\n\nd\nE", + { + "x": 10.5, + "c": "#e3e2dd", + "t": "#525554" + }, + "\n)\n\n\n2\n\n\n\nk\nN" + ], + [ + { + "y": -0.875, + "x": 2.5, + "c": "#c0472c", + "t": "#e3e2dd" + }, + "\n\n\nHOME\n◀\n\n\n\ns\nI", + { + "x": 1 + }, + "\n\n\nEND\n▶\n\n\n\nf\nA", + { + "x": 8.5, + "c": "#e3e2dd", + "t": "#525554" + }, + "\n(\n\n\n1\n\n\n\nj\nH", + { + "x": 1 + }, + "\n/\n\n\n3\n\n\n\nl\nT" + ], + [ + { + "y": -0.875, + "x": 5.5, + "fa": [ + 5, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 5 + ] + }, + "\n\n:\n\n\n\n\n\ng\n;", + { + "x": 6.5, + "a": 5, + "fa": [ + 1, + 1, + 1, + 1, + 0, + 0, + 5 + ] + }, + "h\n\n\n\n\n\nF" + ], + [ + { + "y": -0.875, + "c": "#525554", + "t": "#e3e2dd", + "a": 7, + "f": 3, + "w": 1.5 + }, + "TAB", + { + "c": "#e3e2dd", + "t": "#525554", + "a": 5 + }, + "a\n\n\n\n\n\nS", + { + "x": 14.5, + "a": 4, + "fa": [ + 1, + 1, + 1, + 1, + 0, + 0, + 5, + 0, + 1, + 5 + ] + }, + "\n\\\n\n\n-\n\n\n\n;\nR", + { + "c": "#525554", + "t": "#e3e2dd", + "a": 7, + "f": 3, + "w": 1.5 + }, + "ENTER" + ], + [ + { + "y": -0.625, + "x": 6.5, + "c": "#e3e2dd", + "t": "#525554", + "h": 1.5 + }, + "", + { + "x": 4.5, + "h": 1.5 + }, + "" + ], + [ + { + "y": -0.75, + "x": 3.5, + "a": 4 + }, + "\n\n\n-\n\n\n\n\n\nC", + { + "x": 10.5 + }, + "<\n}\n\n\n.\n\n\n\n\n," + ], + [ + { + "y": -0.875, + "x": 2.5 + }, + "\n\n\n=\n\n\n\n\n\nX", + { + "x": 1 + }, + "\n\n\n—\n\n\n\n\n\nV", + { + "x": 8.5 + }, + "\n{\n\n\n0\n\n\n\n\nM", + { + "x": 1 + }, + ">\n~\n\n\nENTER\n\n\n\n\n." + ], + [ + { + "y": -0.875, + "x": 5.5 + }, + "\n\n\n_\n\n\n\n\nb\nY", + { + "x": 6.5, + "a": 5 + }, + "n\n\n\n\n\n\nB" + ], + [ + { + "y": -0.875, + "c": "#525554", + "t": "#e3e2dd", + "a": 7, + "f": 3, + "w": 1.5 + }, + "ALT", + { + "c": "#e3e2dd", + "t": "#525554", + "a": 4 + }, + "\n\n\n+\n\n\n\n\n\nZ", + { + "x": 14.5 + }, + "\"\n`\n\n\n+\n\n\n\n/\n'", + { + "c": "#525554", + "t": "#e3e2dd", + "a": 7, + "f": 3, + "w": 1.5 + }, + "ALT" + ], + [ + { + "y": -0.375, + "x": 3.5, + "f": 3 + }, + "END", + { + "x": 10.5, + "f": 3 + }, + "PAGE UP" + ], + [ + { + "y": -0.875, + "x": 2.5, + "f": 3 + }, + "HOME", + { + "x": 1, + "f": 3 + }, + "🔒2", + { + "x": 8.5, + "f": 3 + }, + "🔒3", + { + "x": 1, + "f": 3 + }, + "PAGE DOWN" + ], + [ + { + "y": -0.75, + "x": 0.5, + "c": "#0075ad", + "a": 4, + "fa": [ + 1, + 1, + 1, + 1, + 0, + 0, + 5, + 0, + 1, + 9 + ] + }, + "\n\n\nFLASH\n\n\n\n\n\nΑ", + { + "c": "#525554", + "a": 7, + "f": 3 + }, + "MENU", + { + "x": 14.5, + "f": 3 + }, + "MENU", + { + "c": "#0075ad", + "a": 4, + "f": 3 + }, + "\nFLASH\n\n\n\n\n\n\n\nΩ" + ], + [ + { + "y": 1.125, + "c": "#c0472c", + "fa": [ + 1, + 1, + 1, + 1, + 0, + 0, + 5, + 0, + 1, + 5 + ], + "w": 6 + }, + "SHIFTED\nLAYER 4\nSHIFTED\nLAYER 4\nLAYER 2 (LEFT) / LAYER 3 (RIGHT)\n\n\n\nqwerty (layer 1)\nMAIN LAYER" + ], + [ + { + "r": 30, + "rx": 6.5, + "ry": 4.25, + "y": -1, + "x": 1, + "c": "#525554", + "fa": [ + 1, + 1, + 1, + 1 + ] + }, + "\n\n\n🔅-\n\n\n\n\n\n🔉", + "\n\n\n🔆+\n\n\n\n\n\n🔊" + ], + [ + { + "a": 7, + "f": 3, + "h": 2 + }, + "SHIFT", + { + "f": 3, + "h": 2 + }, + "ƒ4", + { + "f": 3 + }, + "🔒1" + ], + [ + { + "x": 2, + "f": 3 + }, + "CTRL" + ], + [ + { + "r": -30, + "rx": 13, + "y": -1, + "x": -3, + "a": 4, + "f": 3 + }, + "\n🔅-\n\n\n\n\n\n\n\n🔅-", + { + "f": 3 + }, + "\n🔆+\n\n\n\n\n\n\n\n🔆+" + ], + [ + { + "x": -3, + "a": 7, + "f": 3 + }, + "🔒1", + { + "f": 3, + "h": 2 + }, + "ƒ4", + { + "c": "#e3e2dd", + "t": "#525554", + "h": 2 + }, + "" + ], + [ + { + "x": -3, + "c": "#525554", + "t": "#e3e2dd", + "f": 3 + }, + "CTRL" + ] +] \ No newline at end of file diff --git a/keyboards/ergodox/keymaps/familiar/hntr.png b/keyboards/ergodox/keymaps/familiar/hntr.png new file mode 100644 index 0000000000000000000000000000000000000000..519d152df5817293c100034d04ab31a6d6fd9cd5 GIT binary patch literal 77473 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ð4QW+}Mlm=B*Q%0Mo0BucULbNIwe_$oYtxDR=nWXkO72XS%U~D*!d!w|m zt=g{w0*-2FY4w#kcFx5GlT2?uSgyYm1GB{up=ympHqHGQQ(5Cyp`bLGSno`I)hpH5 zq^rpM)<2AdOUwGjQ6h;3uYi4)*WU~2^Vq=h$av~gp+b}=NSKZoh})%(&Mzt&-5qae zJQzu6D6I}O48|lg$ZCTu)!c)uS9kaA%It1n0O!I2zT=_2Ci!i96vMwOyz9GR`}>;} z{ryp^Cn&+b2_%tn@l@!_>YkGlhAo!xh*?<$MNF?R``pV*dV_otxea$^n(c1XYip65 z;!@1!L;~xRrQ2+f)BG`y3p`M9`S0#;xJE*Lg8D9MR5o790O`P2Ri?kk8f8_O?b)+JfI^0zmGMEY*zR<07Q+ zV2)Fj*5kKdu@ECb+}LNK3*Fmrv{UdW!C-aducrET#R!DU~OG}eYnL?XGf4Q zST7)f)4PSRL)2PElFIt}`c&PO_Q2|`>5!PDf(*a9du4k* z8KuhT4cl;LqBo?Iv7b5}YG1S4*cQbyGZV5@;1g^Lg3jEPf8}9dT8|~x9>G>+EhHv)mVU~8Z+E-Jh!*%n7nH3%0NST_!qKN-|XgjBSggfiXTf5FsY?k#hNonF9wDV6d)U z#8zoIFWZkSpO_FFl6{DO5+Vu0}d4FR9{q5Oo&=p-FnKM*vPdJ z$vpP{KQ~*6y)tzF2xNe_S;;gw?Udh-S(%AMPWC$BCSf z03+t!#%{fZ{b@`iLWKZ8Tmf_HGklsGoL%5b0?*j-kBj)l*UY|1U}hf(fAH z^^oBHV-&ut!~msjwguHf*SNQ^IKK3B+Ms5(;RTXPi+>9)EbIybX3`7ZS!zk_;J}u$ zUT7V~0{0gs_&93PdbzE?i!!>c|4=y+MD$VZxsw32!CZwaY%yoT+F`7HniDzq{jU^u z4e92-O9*nnb;Dk-rl#wPGui5Bgzs@4yE%_J!>lho#yr;E?YXwe-+g?*k-as)=`1A5 zSflixJ+s}yRlttXk8}Ex9!Ag3>0Py-96y^-40fPO8|5+@vGUj>V1=mtNGTuiI>PtT zIe!dQ3TC-Y+P>H0{~Z`763h>nW&+S|)eH6H{0h^ns#W_>(SCP(C0f0G=dNT8q@7I7 zs86Vp@UCU_G7l7Eg5XAk2taj)&kcrLSKlc1IqGRwuK86oIv(R2f`#(-2NnY`43yz9 zEZ6aq4I$}Z)_`C-H62#Sy8;WNt(4cH?2PU$!@~UQ$eT`Wi08@Gw+D_RD08Put?&v} z$VWuK-o<+}iGI&VzJKrG+s&<%Y5pj!4a~2}|q>-w3ph{hw_TMEIlj$9T-vDeYT&dYE)ExhQeH3M@9p6LaTs z^Niygl~MJ{cfnr4xMO_D)k->!ne{VZPK?N>y5)*b@USNZ@JP= zxswbeWJqRySk&SYI>ekgG#41JpBfOD#dzhx3zID+g1)36zYa0ud{( z!%LvjrV30?1JQwewOO9naF_9rl@qzu%EhsS1M1d82eE&>N76yY8t`E+gN+-^(w&bW zw$R^TknJcOBV^}9c6FNbA5ehbD=w3%x$5;-ag5B5bN0}(KK37z;{`8I9E1{SL^I|&szHMw*NGjVf;q_OOT*}-3D8a=HY(Wz|+Sl0~Z?MJgIxoH2-Hmx%jUcmJM=3LT;_-ax=sfhWL;*hx{1&A!yTGWYEJYd?No?b z9AH*yUaN-3|DMbUL^+d=Ls{xYaG5Fon#m9b5;b-8BN3krDm-6bvTBDI4=q{Z{y4jB>_04j7)kJvdlft z{;`=exB-=m5oQ57#D4GeOq`YZrVk!JXs=M3m5`AZlCyA|x|!d>1??jAY}0ZPh~NQTU(aV?!BR()l8s}qMOxbPn$9RbbK;|m zO5fStMJ`%6acQ0C+nG~q+uJLc5_4tv;IMP=qMZzwPl;)N0Ytx4c!+t$LmozQ6m(W$ z{5AVIPcd!;Xu>NRNnmCbk} z0yZAT;IxG`Ck{O*9owny;IBIu=8tK)fzS>R`AZd#$sG30qA4k#0uJjN^?FGk7rUmt zy=4P_z6evX+cTeUowsj|kzN1p=w+Y~dX?iF`Tn_N+(Qw}n89QF(}d-h>dinB{~;TX zt9=}S-0(iw9@O}4pD;F|x(-c9LLgWc=HJAh{32zG#*USgA{kW}LiR~{aPw~vbP=S< zIj7FyDS6xaD##9q-*Y_8l}*_uB$v3t$Iws06RrHh18!5+h=)b;dy87 zgl-dd=rvAafkVV{%w6vvRJi#8s}CX zI-5w)PyO`J0MhUW`+24P`N6Kk^wn8e#T^{`b(pEbpcN1TIj*%yT3*UhLrM>z*P)dt zQFjg0Z9-7Hbq1+1-j$>7$EL_qOj|VS@rD9@s$)j#*3{Yee_jY29HYqrf(6PYu7m*ZT9^i?L z3LLSUTkma{UCf;1nOo!@3XZb;7$5{Obf~884s1TCzo5_IdrdUp9_TqLhvhOAjC_DZ zGBRf{i30Gom|JrNeHc@vLJ2Xn{2B|Bl0nIMg`y|stys~&tZu*Q*!n2mHJyp_oXY-{ zFoYS^O`kuy#CRQm_Ryw&TV}8xxl;35szx>6>?@0@nO%$@HCo^)^gNG+5p~evh^wt{ zQ!2oIq!Hp#C6j3vfzyNgGI3DR#0mn@f4=lfE(6Svs2R1=)QDGPB+I)5hO+H+9Mk3R zgN}m0>1C9CZ}k^Wh7zUhkCLn(*O=xMmWt;=H*0I}?lIu=&zUDUtS=Uy!@1|U zh1Xc9^LG3OT?h&v;nu#2^;Oc#YR%HSB?;#b ziuX%F7sP=sVa?HT?f<=Npe?}=D2E`34&b@gc@Oi@(rnb+W~z4=8h<&FXmjA8qRz9f zN9-zv=YXMPf1yxa=F_tjA28BO_BZ;wa6N_+{#e~SKQ`t9ea&`T2fKTbzFFEdIF=vo z=Qrr$Y(G70@_rex(q1-Pxj86~M$_jko8+!DSpK!TTFsVQkAqx>Z)WSc$z~eUc7=1Y>uB2kp`KQjI zk|qzi)+VpkyP?0NyvX|A^BKqeX3Z;|8MWtE=p92eKMNs#c>#uD;Qw3s;)LzFNMydQ zbucr#1}&p>HqRoiK>s=&iSRL9kJq9LEyzB}d({?$^G*?nww!LUu7dlp#l0J! za#z}xe455*v8(kSU;j^i$vb?yag5%^^hW(I_KpJ)Xzz?W3Fq@nRw=np*q33m(H7qe zd3^^VuJ`VbO+S8m#A_^wm**U@Pw>R43TZrAT3YCXr{m~$_};B326w{ms3|2-Q(i;25gU%a&M3Ze&XI3<5dnIXCHd-=-qVIw};iUX=+-t z-E~z)c$m=Rr;Q;}D+e88rtZdEfj%{0L+xvxrY5rNk^Ggn#30fBmeYefLjGw)HHSvj z?~-2JF|6b^s79ZY0oBFlf4fH&(wK!djtE71E?YEfPLriPev^PX4*+`c@5(+1G;HMv zEv~*ixNNhthRj>MA77A60|vk?>16_CLu%fq%>ez?ZvRJ}rxOjh_y19yN7rb+9RJTa z?IIA18%HLZKEF?Gd7D^BC8kz3Roh#H@ZATk{*$&kHc0r1TSy+fEDMe0)a{okEKlOHSJm|Gn zsoqew<5m}{v>AZ5`vb5#!=#;ZR$D)UIojYF2P2YVSN4J4feEF!4V(gWt!9CVYC8mzT~&A4*~9LyKf3FS1jpis)%gtx zPnf`MAcy>S(F z*9NRb;95`Xe6;z3Z2sigS}6W9c0~zqY@qhe!#Apb-RB18K8`=`L+U&nMN|Igv;?`$ zBX*&PPsAg#_d~D9_|M-4joujr%Mek!qTXb~v(1Mj$tv}m zGBg;Y%E9j80d4A&k6+Bbt^(yVHXz>M7ZbbrL)pR6#7N^=lp+EYG6fT7bSbVn(T!n< zx%O~0NAdL0VAiK@CTVtyW3uV(Lk;ZYjXlSW^wAfSF47-Nm<#GA#MfXNiM6yMrmRQw zH6wlt4Mu1*%eE$SaE8+P9di1UaD531!^iF_OeZI(zf-v1i5trt#Uyd%(&R>O9jvRc z;79l$OgfGpI7)hpAFh_MIt(0cbvg>(zWsuZvF5%t8?ds=6Ngt;PQoz|z9Eo4U_E;& zzb~M_bg5yj6StJ|YU%HW4IOFOl=jeDj-}O|Tr;|{y6=NYeRrOC$5GT7Z1wrEloKl5>&Si+T+6_6qNEgh_u!2KDfGexJB!8uIIN5P0{T%r{L8M-Z^J#IQPN>i^kX18QTf`w@`q%t(OsTm8b=JF2b8MI zjvIyG|KSP$&qjflHT;GHa9?EKs~X8Rt^%885s>|qg9#RQ;IBWn;D2baL2@DTkaXfJRD3=*_XD;kv z6BH|gz&rcr?d!J0MEJe@T&pd6Sk;!<{K2y|B)}s!TgxdNaqir?P;NsS@CRj~s|PbR z8W)=u8PT*C_HdhTMvw08(Tv*^B2U+PX0#4*uf;SgQd_uv|GwY8PK0V{#*qIkJ zeaH_cxc^s&!O8}Hr5!;v>r6X>$;t&DR=ayUWzKznU@dGBIq=#{F}Sem8d9_8ZmFz_ zcVQ0>c+T#6!PVRK&4P>&p$pYNgOHQ***}W)7O3^Sjfv;Y>zkCoQpm!Q1iYw4`drWR zRZ?d2HY|SBx4ck5o-B{QnDFQgzP z9~VqY5qzo}|E^_P=l-K0+>&(7p2?>AdMEf;&T*&T03$9OO$)UtRANAiR998i1x-Rd zQ^Z!P6$iOcsf5fME^VEUmkmOtn*JU!(zit^ zQQtp*W#~uEL&WkNC|~-mNqk`5s0j4T(p@xw5)m3`B3Gz@!0G%U-b?>fdaSR*fe1gH zY~VLrnof!#&f%E8_GAaYdLYXty*R~t!w-<>k&KppJbEr zfd*nsH43Vvh+|pB8kHoYTT5*$#*na<&X%PmdqZ`BH}VWLP(zaT6+8a%iLdqQ1W^tg z4g*;_Y!`p9y?W)o6r)=%1bON|WrYMb$}TdE?j)+DggpR`d094&pEH*ZM*t1lmHGSv z^i+mNUm#IiDE$A?D8NU$`W*c=Xp7gW4fr^V;w`o{RR26Qra74oPlEk|XVNh#DG9d~ z8It_+JhspVrWK152}gN&!=W(X7g84^ms}3NhI}FWk2E5!&u|2kkk+53i8Swt@q*@t zoM*2+0|EkG-r5@`P+0%2)0z<#KyoWx+4a`JvOgT;fbmrUAYK?O)3uOo@LaP^-Wq#- z?`^AgD29hU~5vT&E~LG&*R4!2phWAlGAB z@WVOAp|kmd-SycZ5!C7OYMprRuO8J0wAK0>E9A3~x3*+|eFZcM}-xMq50}Td8 z;xY1rE(+vV==RjwD45Ws238%c5E@Cd`fy;AC|D?e=xgB@bxAHdoo$xm^ zVuxtMRx1(<4XL1H-6W}$`D;;6@x!0IN=&zu##1GQrVh;c3TA~*y2BCcXSjgWy_#jd zd!6d0jn$WCIEKOc`~Q=;uVubU^)kj``<#k>N!8ruwTJYVnVW)-8`=LmP z0)mV+y~V{8I6joi^b?KKS!uhEq(b3H9ae0Cvp&$Xd?Gs2@E+y|SxUtDUq}nMUwxiH zPY?w>fTT7ay8l8?+Q+hc^i#-pHKX)Gg-{G4{LwuRh%lf1Kw^zuSOTtJG)bIYh3+xd zP)Xsbu}8=BXasLupwvj#C5|sW=A3Y^b*cbCa^X1SFjw$)L90F2$2SmlleoBq$ZZNH z&;0IT7cJDQ43L6Z0_rSrAO`GlGb7Ib)zIs!GW)ASr+2TXZk89eQ3mi{wk4LB{8ErnX0(K zAi|vwPVeBy@vd!|jm9rxXFg9d8Z%|i#l-f-8H(M!>m~23R=Y8WEn$2IKHxhT$w`EM z%&4r8)YLW{<%d%y#MbLapbq3#{)Gj9^zsR@biJQq!aSjw*(-286YOFpgBcl$m=>?i zYSg}!-Rd%|$@4-smv-emiF3Tr;J3aPn6%n1_kS_=7Eo1g-xsJYjfVzB;7Exyk_sqN zDpJzTp+PzY1SJm*A|)lENJvPxG}1`7v`T|?_}20MZodB;D??X;5KA%bdQZR$}J?)_D#PXuXv@gd~ zK%jf2^avUyb%amFQ4IF>_4&ex2Cx6fCj{Z((Xlo53^?hrJy&q>JBWMck^l3$&aUIV zUtzx@iUSl>RWbStXe(<=Uq$tOY%lEM9@0-RQ1HL+~@(6D+x{HbiB&1xD z{+Gmq<4f%*EyLIiJ@I{&5NUaNxX+$xTNMW_wCB#ZcjeqtYP2bQ{2pB=I?jfQ^_cXo zh^ynwVoJ@Z!O45Pn6}cz5Jb^y$Aa7GUt3DVr6Id^WiNi@7md&joDG!6xz}Mw&sRs8 zOh?P3`H>fBjwF5@&A8s{mh}4MI3tlFAN!)8qNxO}Z%y;``^Th6Uf=#=yL@d+OGd3K zhZpv@-q*I4{QEhElk$s;m4}ncsXsrAxpT{zAUaRuMW1N0n8~8lAQNlmeJ)L;q(R#i zhoPvn?M<#KjqHL$es76j%tIf4q_HkxmE4M;>3LOde5XH_SXKhhi(Fh+S9eaUwjK)I z>sN2L`sd|wEC!JKis@f~B^pEeRo5rwP2J3|F}Y^@!C^4BL5jfE>f$!Jn^WQ~&p~64 z63(YwPKGOYW-WFW$vb1Tp>1E?`8|5tI3u4Dot1s#jcgCn!0p0SvdNanFDR{YSL~o@ z*5=Vyj^9>}8-MsP@Lo4w68hY7*<{_W39o4W`-a`VLw_fp?!^UCoa6Y(#l?jVQ?;!rFbUjqAuZBi`}?u0W$Q&_^DTbWJ=;4f zkGI!+Upq|9)sL-lLqC6A;dHK6wNJVPZoWetfws0~&Zxwe(a@%m$sqMzG=*Gt+s3|q zDZ|&FySr*9wT2^#jTXEvLq}AWmTdA&rfi-uWt?WiYqjo1jSFl1#Me=VPr5((72$td zTPrvy-@iIDo9dqAN-Q+Vk|HJqK zSdWB*GN}T>yT^CZ^k#ia%f;{CFAGkMSGFB&FVRLw>)oUhl&fMU!Qly~O2gP-Z2r=x zy5okOHm!TdO$pkIUCF*qt5@Q~COFD)qa;H%1DSG0n;dG!CwtAKx?lHxPz!B(`1176 znZ3^jDxQ(WH;AL;+7sH|QVZ8UNRzZ!y45~=d@THJ)k;b|?lf4GJfcB;vb0L#Ao`Jt z=vY1%>4y(%>oxOiC01iXGL6z&vFG5IoDU+KsXDo$A$s$gPBxuvquR#AgXQt+z6Apq zz;{=|=z2DBbborRB_hpgP_)M+^It-frdUzwZ>@b`393}QNvA%D!$Yr5R^F4qQxy+R7`K3S1@2s(TCZFC zr7M9HEFo05WE^6io`ggToeZ*#0yZ|HGsRSfG@^mc&92SL#w;lL%Dq!G;=#>B_|Trq z|DgTBICt%Zmg%CRoAA_kUq(kaKTU<>KJ1%LAt8ZxGM%NZJV45PgWm>olK7F5(`gsw z&H6cO-Wv_DI|pF~d9{A7_LB<3RU_x>Fr>LrT?YV4S2_EfvVMXmYA3bF)9eTPa=wKgl zwwReJt7n6g98RRZkn^Y6$Y;)@MoU|zL&!m$hw35$6!1#$5@iu?6KuHEpKq?SncTT^ z>gf2G%c#weo{58qKx~ABYL)TECx=ma{z_4v%5c`s+`8lsnT0D4gT#dz3y`tfAS5c z(g|L0i2m50d2#dV8 ztjXedZ^*-fuFmWv##^a>3z59m9CF$J=g*t*wb$qs6$ih(rXa!5ha-M_|MGfG4SRy% zA@QOUr@pE!f=73uKtj&>)`LKriaCxqEt725QUA6>9t=)PQx)?eH2L^fO3I;Q015kp)%<*J~rzM%N@LKr!h)#3#B zex}h|8Zdt}aLQw;{`lg)3es<%9&;?%G)v!PWSq?&`at)fk%F}!?___md%{KQ=cTQe zL=gqT-UHa}e&}9p)zF=bL%kX8g=h3 zx`pj4MwZ^pEJwzr(?7(`(r<4z)Yqn{q#Bi$QJJ{4EBY#F)d@bDH8aW#N`1^^HQ6>l ze)V0;v|7GnVtQ@u#m-La@aP)E4b?o<1UozU@L$$0iazbC90jgK2Kt+*Ds%T25Catu z2CPUwW7#wCSZc)!;7BbV52j>i<700vjOGNSe0i^MoI}(iYe>w1`6pa@nvTAmEreG^ zo-?#Ze-zT6a3o4QUL|ce!wo_!?C8DenGd_sqZ96Z;2XIyJ$k=rs=B`IK3-wC?dqCm zeO&EEkiF-xNbS?!)=XSaiqXYGiqUdNNli^$s>@3gB|V1+2gt>PDE%fkED57JqvzUz#n_#WQ}j5zjX z{tQ@`pF196UsBJ5ry9zi9D4RFanGvLe7SYB?uU-+ZoyPk66-uDi(+pb69ffNP^uGNX|mg0o$ z29L!dO@8^k_n(lcpWFE3)B7u>?CwXyUOcr&9Y5UWvKal!J0EErNNRPL2i8jwt}lJK zEd5CCUVT-$sf(GRV|~TL#`p2ta+p*zREob>VeiK1s+Ny}aPLbJ{@i5mn%z8k{-tCU zWb@Z0JR19M8xE8V)*Z`9-YRzmgQh;+P@?N7yyK&lKa3=hVs7Lg3-H+~PG-&Kdz(bp zie5eYyE5BZ7QXZkQum&*wY3FuIW{}=*S??DYQ!W>G25JFuXRJkgDWabz^yaqxzuNA zKS5K}4yErUPPjRbkzf+4n^iYMA2jCg9_@$+Q>))v-!Q;kU}8{2c$1W|F01QooV(?` z))=^^B8Ev-KWK$kAMRGXMTgvqL@`cp(o0UKW)3EsJY!q!j=htBo|g4|`ok|W?{|Vu zqiFCdW6W{&NPY5IW%paO?V8S2oU3!QMh%}b@f^J_!0}gm_DG08D(o5}ZRue_8;$c( zYnJv+T_-kOC*z3}q+fiZm>n$=^2^8aWx{l)y6w8uMcM<2D@UFQL+(H(H!f|T_}5ve zfbpLprk120LCWv0v$#S(R?O^AIVLqvHX(w2Y*Mb_&cE{7@Z0*94AF}xCrqzy{32Wo z$P>onLM70okbaNq`PG^Ae*F&dix~XwUU^mD%D`VSj}hMIJR^i^rHg`=8iT}AIL~H6 z+*@Y3?tzv|7O??S-Po9Qqj+#tuqZoq{8QF@o7Hj3Z_!IOyQ^%2=kes$$uqb9T?9xc z<(Ck(CwLz7v!86$t_%Fgb0NAmO&XSV5*YMW$7$$KEx@lMj=7_y+7-qoQ~`x%+DT_c z{`yZXzP6ob-3LogLJs&FQCtNl$fq6=rsP9^ru?rmMwB%l2Ymd3s z#+ON6GUZe^?l;$-T#oUoeQ`o_G^4oAU#8DQ$H&w(GBQH3yFHYX++4=Lty@OCud1Ru zYxgagYjr6PAl!g$^3PjA;+18xf9AipJ9A-K6?Us|Naq=tpDE69UuZBO5oXt$E64O3 z?N+s|9`db?xIcTQek-J4|L{?)i2a3rjS%0(VmbAvA2zwq!k5_G_?-8G?k8+ue)_*k zJXqBy$w-Q3pHt(>f)T}w{Bo)3>GXRCdtd!ccjOH7n+SV<`Q?QX@;w>Wi)(*UJ$S61 zk}xcNaD?n-&n4!7tP~FucM5~dWD{DOBhviGH#NL>pLlq92soJ5YU;$`6Ht#5ii(P6 z3tx`U+pQ|Wu^9XyIpZbXktj-7YQ0#|q)Xq;@tUJDn&VdCDrDlFvUE@DE7^zOZN2I@W?;n8acKe!5l zYeT(!+a8Uw3$9;5`h6B(NDArfUhU7EZ5=H?%W*krc4tM4p5u{IP_1;5?!QmarjKKo zOG@3A*HqB;@`sJBU0r_S$Z2=|%QuJu8lNF0Ct_y3w~OBkdE)Jw_(LJ{7C)nBWkzTt zRi3%yj(PCr&B|E6phyZv;y5=xKG8~$2i^X_+En<%EKov-PhYHJW4wj8APuX)Y43dgtZk zY34?%iR1BL9wNE(fS35oB6)z5?cXQ+wYE&dfFlvn?vquQ73w%qlu8wjYVNm*nY@UF zAxLQ;({A3^qH6z-=_-HV$i3{z~KA-10}P(2Bb8FN`>kxpHMq7JhrnMUCNNK+K6OG zUgrPzD)sw{(9@r*Kx5}TYxl4|ICopv-ZVD0E*hN@6#G0p{F47lMUslh-G9XNjiQhJ z3vPU+OQ=5GdlJD1Sxhb;4TM))f6)v!`;X}EEW{M#QZ-2s>gQxj8l*+2;#HNNp;*eI zW=GRE(W3rukd* zbde`^j8?CrqrPs(U+9``G@ZThFOVR-qGu6Gy`KZB0%ZHngG2*kzjj)VDT&vAF6#%y z*7>1rZ*E%e_3eq)>v4W+Z*PB>s;jPl$5C0ZqH;`dw_P6oP|#Mka#k=L(=|q<)nt*# zagUI4JlSubOdXNe4SH=t>Y}0EcEdbLSzw$s{0jfy{zO{)@#f|xEm45YY%?$X<{11{ z1eaZ|ZXN%W`@NH-5D8CZ)tK4Jf$Z=yTErI7A{~EBwJle_?zN_nni|>hs;KtzvmjM zs+glmMCTfHi%A*E%Gac>pm9x}T@hH~pu6Wf{zjg;-oKwh;>T+g_i@cd`RrNSoes0R zsVXgQ<4K*wFnHc-y@36~ze5z%&@Jd*Qy*s#qc_utjSdN65c=f$ zy4EK+eAbU=He4(P3(^CUOpCzJbLwuVG-ub35Bc}zkJKU4uG^Mxq#p zw|O6NHAso^UM%YsghC`d8)Ra4zelz(-(ZsjYtO^{`8^U@DV$aflA*P=Fdh@xv7&bQ z&2K^4Mpg9@+JZxQpQfggheIecPXYr1?z&e6ZiOHpH@0NM=)nMLe=Q~*5*%O3KRi(S z>gfbZe~Bhv0hc}6t0d$1pblJ|?T*}ilD;4g0YDg&Lg|Y)QY>HDPnQmBO5#aCaCKlk zdPEJmkFW|1Z*t*{YQ+31ZmN*=jg7mm2a;Xs6S zi{S9kO@6-!PYQ(f1_r{5P9Zl5ggbSOeG-U!|FkfOAu|*&*Hncx1oqM$2%F;EEW23I z?uM+msXfO=+;QPCF&7~T0YHfLz7DJOnKMUpWI_6z6lmE?e;(~CX}2vOAvUi*@3;MC zc0$D6g{F8Fv4sKnSWsmn*XiZdFK#GiAS1{@oV-t+0JuFMa}6_B&RH>pHEVW-V6lyY5E=_Uy_+K5vq4@*5E;#u+`$)CG`L*6y9a8A@ zY_BI6YWV4I1=mciJQ~U$T^o@wmlX%#7h@NR3IWhggiXvSbH~Pp6WoIUzY>=Cjdynd zf#l;G{J|3(94!7c?!^{1ze-y>9u{_-X+e7*d1&uu&cbzgPOGVM!R3O4%R_IVI^2v> zuyNWL(Di#MW$Ll}dTZAzY{5AX1YdKu|9P}GZkNZLCaRq;0*u>qxO;SoBcY((5Xr;D zJ@y-to{yja1m`9dtl`)Bd0*?=<7n1H5>5yXezZySz4qL&5qCr!F@AB-l9m$I@By9_ zsvj~!L$5l$=dv010I)MU_eYqpO`evol*Z40GQ7QS&tGIu9Bw~LrQj6tBQFKx)M!L% zn7Y{6kNz$$C01r=`q}N4xmyUo*dY~{XBtetp%sEC4tLl5OH26~{e12q(w=j(hoUY@ z1fLUjsQYZ26qV6z>)|XZ%{+_Z@;GtwpJHgTcR8m1XPyD5ENW6HBLm zV#p6JST+uGa(kzU*BD2)jR}7yN=Qj*X{^-LG|QTNR_-&3<#_rZZNem2V(yAu|FW=1 zOiCRBX_k+V4=sbyhfZvHD9SK;2$AbEq)`97chfQ263$4^k$@j!ak`{@AAf=>rTo;MoO3r)W52axHRZ%qZnEj>T2mP^(@vzNR&h+Lj)hsx605syek64xys?-Kwe7uks(SCle+?F}u64`Kl3epI zECTj((Q)8ZD}t-!$pmU^11#*$TLmcYN6*83WvIWyI>!BOZhp*s?en04)A8WuL%mJI zce2TTJvN!0-Jca`F@=8^O}ro>-_G7%0VTMJgmc5-N}r5WfQ*k#Tr(bs%U}+3!1}*> zog~nbhXSkfKVbbqE5_jBbUmD0UccyeI$aHplAnx`qZ#TL6;aS=(CK8?MP?0(X+nVBJ`H?@$n7SXr$%6#AP&8xiA#V<9T(5X51fx99L{F<%1#o+;+qs%w0B+ z0+_7en#Dzr>ZfP=;UCX5&dA4W}@qs`#g0&nA@p=`Cib>#LG^Y@`6jc})e5T<`% zbrLI7zaKDS`I_3tC)ceeP6mDyba7kfxLjRRSvl+@4o)kmc=v7Ww8w-_%MysNsE@KKC)L9}`Y#3ahNIi;%JE z_+jEjIq7(2KMSO(D|h{_0RED{;Q;GiaZ;U z4b`6B?7I-mhTCl12G8*=4<;n(>u)04qh7ucqOrGGIUv0|CXrQJ_VMo$KX8;+r~?UO zm`E{jYw@wiTf@cGM1hyj&hhffrF_BCY&>Bze-}jf;s$ADhHup7Ad`XvdUv5qh92ey4ie_7axC0?&d{lQheP(*fe3TFVbs?G z0|RpL0*};wS$;OuJwP?ozchO2Pr7Mt`OIH%Yq4BQImyD)mW!bLFYIfWj0;2hwMYHUCcWUNx-*F5co!Ga>a%%%Tq z_Ge;91_A?d!Nu9`w>9a9ZDUUCf>|Fm0|m>xLmSLC%ETm79W;+>UX|0-m(^ zDA)oqTi>(=ld|XC$2aP9?{SreuB=)ywLvQOmyF@hD#x6>_Kj14!O%)oJRH+j5f2i~ z7It15afX5szn_KXttoNRE-`ktC{Lgx85|?CTG?>#JRgZ4p!^}tfagGgG zuk$o$$WC+ZYQM6}CW*X&e1*t}T=&?hWy|ovR%iz5yj6qhDiPmrO z3&{kl_1|T)E^r(hL?m*@!e1k5j3PBBnRLbRW`i_L7wGk*1_>m+cxlccGEYa3GO$*H zY9v_u@8Vx8v2nP_hQcJ4`>twVrR1Mlqj3|=96}&<9GpBH;(bSjV+#jLCriSe>oL-f#)B{Yk>~2!2}hC zxnIv;7lBLx4qOOWG1eFMn#1gx6aqnhEz!gd{>nWZ-DT8__<<=zaBfmAR#4nvUUa}h z6{Fz*>Be&>E3dB!GojdHaMTkkoy8L0Gy%9W^S_t8^52(y5<~&B@W4(~K>n;*YOgJF zw_SV%Equ81$&kto*G=SLX|?(m+;=lQPEZqk&z$@g*c^z8$oQ-$Q009jka>X+V9&NC z%*#IT7Gus^f(s1~3NtPsHNya~dy|(JiK*&rdp=?5TrS;>IXB zH0Cm2vr=Ud=$?z&ZCuT9k!keJO;$t41w{|<@Cfgu0ynY60U;+<0WDB&}rhM5}SoYuK- z66zOxiu>!--ra+z!WZ{ucK>;bNiI46tN9JZtyDEdMRZHp>K4rU6{`%Q(>)%Tn6R3s z(G2G#xSyzN0CnVFoL1yYh0FIdSy?xJ)5*8>yLXDRuJ9Hs3%LKhlqcKc@&gcd*j}iS z|3?nP0b>;n0y-I7L5_BummQ8Kv6BsT@aSU4Kpic^C1F>s=gD0OB^b9K12~KrP+_y- zqehm0pQ2YxW6IjvcV$k?(9M3I4bNLwXr#T4!DJz|we(Z=@-|U8*Z8sZdGy{P-+l2$w?p(su#+fqybPCD}ml zx5#ZSUVf$uPm?46n-|E@F1>JMp!eJc!d~w5V2gy4e6QkBz>6{}_n* zaHTD(3U1DH!lsm?@ptzPL;CeVfkil7aSIz?e0hw)@OCe3w#Pp*;`#4Rq_?Xs5^3b% zQ2w8sq_B$O(Iq&WUyrKCW@lS=IbYqjGgXx+f3YRep^b~gKG{s)XK?rzp~gZplAIaDPS*&9H$%rPQ1vinaKuHy=Lus$%#+pauH}l}3vnvXaeyt$UULcP=Qn5Pdw!e`E$dDHj(w~}p@nIxBsDx~MT1E#qK zzIL+LA}W@t1lT_34%Kh=?BO@JQ_d?RR6i^Lbw_`1tXofE@BVNp5Rfn-_cxH*}^12T8#9VBq4Ib}p-N0RRZNHiiEA zoDTwVxtT@qi^zz`=~I5*NBlgnmuEHr8rQPjqyngs<;g_i!KD-oA{GTnA zzZNhn)&Mnk0j0G+qlJiwNH9%GhWwu2zIjwwSeUl0HD_I2U5|M&doBBKQXLg|bfl?P z@#H$#Pei;M{?rGZ`Do$iPj9>aNV23y7#O%xk+Et#hi`Hj`ILj+_&6=-WN0b1Q*g}z za{yxg1rnE#GdshR8JU>eLq^!tPS;E;>g6)SBYFnmN$q@Ei-j6|BhoS*Uz z>*;f)B>BQQR88SpZ2s*w#RISgab!gM%+>!rnz#Rs!CK9P%Lu2<#9cvN0{rdboVC*( zv%QaZpBNc6#a>DKbdhmQkc3)QRdUKI; z0Zr>$Tlbut_!d7i`OdHag^&3-Tfxd|c|1^G!fkg-hNaDA<|KovC zhoLmKJIiv>zq%DWo3}I$w-K?UXJciOs!c9`rvwvFO5(leyW1eG5q2H&oqmwo7E$)m1%+ReA+y>JDT329+Y;t4j?~X7qw}4S#n6Zm(wu-IW>=5{ zeRGKs*Pm4^6u_-}Zxsyu%=zHw+_-DaxlpX1v*rt29w=$nPVdkR2R%F7{c6-;4?3-D zjO@_^krWQye9sG!l24yvgC1#FG(Vf5Cl!($C5kc@vmMLV_{>zP-BIAbaEbfKESMrpO5cmAb?R5 z*5hzvGms|%7}nYdIA4IjfbQ)bHk~6qyY}If<_qqw0Nq%BS**5OZc{YK@1QE zc-Rvi4u$5Xy6$f4jy zQ-j#xFcj~|Zq+1a_lbLZ04U5){$eBp_&g-};NtRUv0_4!1wXso7t+4A`#A z)2Aa!Ki}F>8b%^nr*<|2D6>Yw9|h)DGQV8qaH}2q4^@2RXP%x`D^_B``uQc`;(B^- zIt!?;(n-zDF<06ffPz3F@N+}xpwx|bdMIhEs_NF?S}aFgc{w zXdr=^fMbN^VzWe%*6>!gvmLWsa#ZihX_HCz4>N<+ z7|xtMJH5ClrTJ0O#TTv@fB*!a`OsYJt~eKCyR7BKcaQgS%Cus91{X;|8&|0o1FvL+ zdCX_=)vM1}NA`jW-S}$e#DQ5O2QAhmx*!T;NjIW~+maomUyhHD&wuX8Juh~3tLxlF zqT{CR3lUc7Ql$}B@j>z*-frosNy>=ZV(5!fvNs$J{vO_D$hTy)x3_l(8POA+Ln6yX zfd`@OtS^pbe>HqDx`MomTRr7YEbI8f?UxYx0|F?w59xnD&xkes>gjJuA+-XPCbOEd z;u3hP%~jWaw=aYX>37!g{*UDbit}sf6b=qdCjm=Rr_LbVjHS6Q5dMQBmmlqLP52&zu4iI;|8c~hS%{U$%VI-Jc9l9)D5pi`w za#S6(*YB7~_*(9omXQ?ny{jOroK;2#hf1Pvc4T?q!~9Ec?`hy=a&lO^A~kXL4ULR2 z)(laWZ%Id7QtDQY+cX~hL*z{@b9<3T3e1udc2U0{nUT2s_Y-q;t&aF45o15SQV|sK zJ2jRR$II06Gi@U261^k>96a~(SXG^D0l)r@wue1E>j_%{W?_CDYrT^`j!I8BxLv<~ z%XU|!&&zjY8kW)1qg8zT_&hcG3L858pnYhF9C&VG6W29uF z9#xN~{H0py;z{a;tK#_V{W@JK+sf3=UATaxrF}lw{wCi`Cr=6(F0j*-;KS;M`mYt_ zea2mSPjcEBC5A1_g}{G9`grSj@;=CPMkRjywp8!JlaIWzzDWRxKQ)wW!>9l$5M0Pq zMmkn4oJ^Su`{`I=O@kBWCLpLG=VgAjNn!N1>3uHCA}Ra{Dm5SYtP@iXs4xcJS*#CZ z9dq*`k=I;&uX$e2Xs*LB_U9v%JfZ8GRz#<1UoztQ%&anGG>xP49Tf&Qsi;eo@FV=V zUJu6wB=V7hP~c0-Ha98?!?~N9GJlA}e4s?t#L zPuqmz0#!f({nG+kY^-&EHP(`YcgaeXS3o4d2}!&^oALygj>&uDYurLq;Gwc-cLUWJ zFm?~_Y{^JoQbI+A?C9tS2EISxtucx~=$b2wSH5MK>p*DahF<3H`o90bJQzfOio2)M zCJKw4i&6pA11M+~fUqj-r$In}u!Xh!vuo(X2_JxyFYaCJ>5=zON+JM=Px7StHmgoW zVGtZyJb3oF^2$YFm_d^$%OrheK#O*OT~pvm zCgfR2r{xLC=6Xz8l1##tQ|SFyhL7+{pRPsT^(`{Lt zZ?fi@?*~dvE7q|x9O7{e`8s%`TZeFY1>L|cN8o2pTPieH}N9(&=z1x+A_f%sF*OyA~aR)L7k z9CdbEiG-`xc_aY+`dp^g1vqT;{Q_OhMQPF5V1P;q*YIEqa?upV(Ds8`JE_KioX|Ft zJ;XlyWBW!~r03Y?t)Lk8y8w#-5M;Dnx}kx;xjJ6|qd1$bTMk^kL@?}Cc)VN4RswqF z3Sho;@IO;hg-tjJVlUq-f%_TCTsBgr7@9%lv7?#w2cak1GM(c>%Gknu35j2r6$5GN znQ|=xD7C&hbPW){2@e6$6%>$jcIBPXnQ#W!OJy9RGW#;<`nw9&3W~Hyxsxtg-=8>J zhD4bzGSUJ!1|)67N4oRycp92h`rD%eYNd4N0a|;Lc*~|9X`#w!Zk{dao(B)7(kS43 zf;X6>8B)HrsNegtNv+U|cXhn{z64%ULm*l|Pl(;f5H*9EURxvd^z=*+w0~_s{o*=^ zC+I4WH;aQjU0$LiKtU5A?p1rdVvPmFFa%CoT3S7&4}`wb#>Vd^oa|&ul^mlW;G@xj zA0dKCv-&}F-#AGfX1sOlGU!>ch=ME!tKqA5;Au=E9tBdUd>X{KYHl7L!Cx{XJF4Ji zL2HX3A@RXnSOCGewY`1zsG18u)9pEQ&D0(b`htYc{bW1@1jc`G3sf*4^hK}Q*(l?$ zK27nZ92>KtG#H2-_*`bL+ava91wh;K~f~HAih*DcQN) zNQ#97^g_EqO9IC&;uc8;)Heqq_rsOagv-q09l{Zgf5=W|&OSbO{ybtLJ|6TCwoN6$C-c(nKu~r>O=c$6+#gGCG<;zF-GW1wR8anwBsc zYvo-i{fO!fr^6*$CvgjSU)TcAU@5S*VKZ8t;kyb!pctO~x%?5)|kOd(wU$)q$l$4ZAt?Kwxj>YwtR3)hY z)KZ{!XqF;}&P!-Sf@`e{58?rEd+)AcyzdE}qwV&XRt)V49`|1jyAF4Y3^3NuxUsc$ znNbgq@vjUe_(rt0_QtpbUUw0IqJn z%I9>i;cdcTwT++YMK*-Dw|77Vl6P2_l2UYdV$IO-=oE;dyQVlI!z(W8J!tIdxPJ$b z%j`jSll>7)f9MZ$OjCqfks)SQLU@hf#E&%qr~CQ)6%Y;gD`gnD?U98Tz5i9s{Y~j$ zjYiI0-rdd3`qC+nhm@xaznHG^kbtbq@Vz#`)2b49Zb3sc44*OdoK(w2dP4ISqlYlf z(~1r7KMW5AZI$1a&F?+<;aWjEs($JIos2#@X;vqeZ*q9pFJSM!eEA~aIhBjzqyWX} zGTD}c>O*DKIMO_^S14|=bbS?78Q29@HucQ#yJV7Sy<^DPeyrA39UVK{~|PcdJVRFQq7yw?+1gU1|!r*dUzKn#t3c z6`=@*`AUh;4tMAn883hf^AgYK8yU}`!n*)xqic%hu~YB)-W}wObR*pMen)nd_qMB+ z-hTNtL_^1Xb`12eJm;w_^K(EnxF@34sa-X(tCdy%O8uF>v7bpvNg>e8YHn<@6FHG= zD2n5$=@-ctN#clU7tWGTWrCvk60czgBqd@H=^@wp>dqSK7h9(0&!&3s-aWxzRV{%! zc{J}I6Os5_+}&bB`WCEG{zy_yIgto?gqW>6c2CXi`@=fQoJDDd>~aYX_w!1v)K+Q< zu8b1`kMaa-bxhIzp|Yk^JMtQBP`JIwPIJ9s6G?m%(XVxXQCd;ami6$csdX=rFDYqbe?mInkuV(MmGS=nv! z0M-A<;*J-SwA)0%mFzZFxWuq{Z=CRHUkw(30$;FKuTr{QfB&4dL~vErZFdHuX~H0< zI*ZThcej#pol!^0Cy-2X>J6#t(m9zYblzv92YeJV>)W7#(iT`|MebxN#!KKu8Q&=b z6`ePLGlC4L9F48SdF$_Da-cjPTB6p;fEQMg`oaY9k&2xtMu9nEn)K09mMZj*u1?kC21Jpg;Gt&ljQS z{seUYmFT51UXsZ`3OYJEtk*R?JN^~xBvnLV^%j%*9uY1iIzh5y?%j9$$dRC^hwo{? z@xY&4mj<*XcN05P%XrJZY3n+0m@G%6Dqv z0R49M+}Y@CP{7J446`p#Qn5=c7iBhxgsE?^K=Cy8p%$Zg!_-!m_8^7KYKYE4DAdcG zGwDb&DjmBA+CwOIU=b0d+lN)Jr0J`6V=`VwMV${2M{Ou8DUkp)1>eBMMQ<1z#x~(# z+&u&5$rt^e8P3x_d%e*g#TvBPmSnjpKqCPts^4d4W7>&TiZh{zOV9kR7xt|H}v)`l7#cbh%`@~`JkT8^&mC0pdq#N(G&&3NXP z2mXq1G1Plb@N_D5ju@Og{KvOefwAQ%-+O>)_8H48l7gD+tmX6*_jptGpAzH*V?pRb zWb>DKA@_ry2oO3_D>Rlls9P&bd9(jCL{r4Y#bHXf32_~f>-E!%+?ES?txOVlH`+1) ze20_**aMfR=f)NA!!g(sZp`M#w^=-`P_I2YQ(awM@MPrU3toMBa;o{514j4l7^YNM zy-Sy#fBJMMyH6~T;yk<$W+tKSY;(xdRqjU+P%wF67W1@PY|85p&da>o9k#xCyvU9d z91wYfs+;U|>grQcJcclN;M}^p!WtTb>Y!hAtXgFTRM#CHGF>YU=fS*W#*DJn=E32p z92P|cn%e2d$ZNE`d`%qjy1|aR)URF>(E#lVC0@LXr)t!bgKAIYKfwis$+&st{!eP1 zFTOypwY<&vLl*Y%v`XTe^F2Y(8LA=dyt9!8&334LPiVr0i;Yuup7H`!x4zK%aJ;oT zv^-!7qpbq(f2tbZ#A5ic%JES3RCTmOOB_y{`z4HFdI;H52@6v@Nd&_Q1r6B5x8 zy5^ug5^`xQe0*Pk?K`t&7YudiiJa;uBObGahx?tZGH!8^Whlk$!2&*IL62KL-ow=fvq3^0it%q+rQ4N)NY` zM@rS-(4TrQfhQ+ln@Gy_Glm@#iZx3uo5mZTV!C`uL|8sSCumPsqBm^T3>17&%9T72 z!HBM6U$2i@YeQeA^o!_6hz1>Hb4{e5(A^-vm}Y%wsupy06HVz-^Ir4Zn`AqoVgv4X z7Szal`yFNp`|~C+O~Bkt!kC?`7&L7lGN{J{;3@f*J&>(fg^(t~EiGU5Dg)eqG6$XQ z3RKm%3qFIvjUrF=23`j`i-OyhXZcATMAm6SWwf|4=kz5YijyF zRAuMB%F$pr?KGz3>gINhmiCj?mv&Xpr#K5jIB-0?wb)AqMK1D4q}+k@9Ux8WP$R|` zRcO!!o)+{gU-J80Svo&)t%IZu*40XF_eC$~W8Sf8wS{}_%7wL%@Ph)r)y}a|Yj-AK znu|)eI{&F-BLW}4d!uMGptFwx921#CyR!4zX_XHr1S>0y>DD7YZ`&PV5CTRa7QA-4 zjEt)Tk3IFXuXcJ#=sYoqv{3}@j^k7~q+Ec>m7H1%h9>_390%u8!oz40o$R|STjmL% z9*<_#41^1}p!q+C&*VFJ^2Sv(8Rqp8KA*hRbKwQx1i%S8Vb{Q`jggj`{H`x`EFfHrPid{6t_>0zWrjYD@ z2o+&LMPYbDsEabT$)6Ozy-D0A_Hdv-Bop$>f(J^Vg^#VJ#n$9$PWpy#^iga&Ut(VO zWRtv-_s)|#a?ht{)Ya87%!!Rnegj|2Jy6CsV!rIp<`s8axk%rDrR2B_|MC|;y@A(j zm+}VGFxnmKsTw$>5eye9y`TVA=v7D8BI;QU%hI!CLxp0-W znn33lv^S4DDF;bod--!7mGSC}!^I{s1K&r451rBu)aPS$g1V8-J#ZdC4Zox&0>%0& z$P1u#lT0rW0TM<*Lq`?^P9Uqr)XVFTs4GHtmrA!hR5z{XbXs~1q(EEpLc4;r-Bx&! z#Y4oNily_;#V9DhHEX72K|p6XvF0H+l@J;o{f=v5gz*tvmyKVXya&o(v~tC5vUi=a z1pDb|IB+bpGZ^v&;%4cPF0>drjVng^3Y{6~X7OiWk@^@0qMF&k6)i~}gXjmo^0yq% zk+e~`Zx5*I=0*(H2+>1l4-)^LY1u2)6C^c&B?02x^1G;T>y8X&0I#tk{6?xZfXnp; z+*?)m*?C`X!(}g-4r5X0-FWYGP*V?=5mtg&t-oL8*hA~+Z7(u?qN*tv zjSw91kb*WGyaKi5^&j%UinNnbiR=d{L4Vn+2lM%7vW-3Apn$^rBGmKd5*XS8a5Av9cnZvnt`@bA|2;r%b2g5CP(Q2TOUDWKVc;9r}zrZOjrnVJICa#me00kzY!m)XSO3Ub9e*ept+rP#1BB zoSv+b!OF$WO>>|cL$+dsMp{ao?|>oc8QhuFZy$L6{8U%Vrs*__kTVt}Nxl6y?Xq1o z%j~-cC#|Sdq>no|L^U1JX~+x3L4g$GcO>vYF2Z(6@ER%yZl?t4Q^Tt@mk$@<fxoVzvb3kNE$`@Gt38%P2zj#60O#z4Y81)lfkdwj`8y6kbkg8jy0D1ZI zR+fcorqS{6^jT^9tYZlxQ->eUDZhTpQuU;Etz7K{Q}r|Y9?rRo0yus$@WuyW6|E5Bj(pLl*{ z01Yv8Z!7s%@P_9>WM>PYzU-x1kKnout0ub~&02!%mlY{KEY4sRJ~!CPQp$N*91Rx! zC_$huYgNMX5d#d&fcALa1z1N#&BwkV)#CFFe)ER5u2{=)_v%+@T8YkfgWy^G5~PQq z(hEM=9xpd(uZ{NyZGX=PH3Cpy{y%K}cRbeN`#z4BGRl@MWMuD%%ZLVfs`m?<_gAP?)mx^>~}F*n&+e0Fh$DvvZEwm!LCd}al9apZqG zG}+O6LcsR_tVU)qU$NsQ(bI90=(xXdbmrL$li~l)1?Z)fImn3pfXedifRcz?3#XvV ziLt_Cp8z^seq^#If-8&zxiq1lLRs?=E8)Qnc#b~JA%;9PlB%j1pBGRdL0As;U@L-o z5L(F+=PzNZRDoqT2XHgU-U?RX5{7^WQDsB=4!rE@de8r9bQlz)@Ax=yfVl-eFqHTk zoDXHEbaOhi)NG9D3I}k*+Q$*mYw_Pr7x_Sfg|}tz$wF`-C-Jr@fV$Z zUC}39O+h+yU|axcHV9ea+W8AG`7GgWBQXSOusw$l*^n2&Kr_H|NmW~z7M8g!ylCSU zW{HUc)cp3}GMfASfWGIwKRCM;C8<%@$dBLn=c_r)AObof0{F<>K6*OGE5fhm?!dh) zIC}#|a3r%9G+j7vmgObrKRU|7_CEuu9`5|U`=K=(0a@31s*qNurxd076^ss7s;S$b zN_`dq+12>1qXyE4YP+>1-ajBBsi{c;jxdMX~v`4aHZ4KM)T_Mh$yk48`;nA zdMy94tE($rshVTpR~TXgbF^lw_;Oq6KVd)rpulJRXy9Aj#puF78uG?dN@C-|7zIKI z_XGq4K#0NHh*;J7L&#SO&wsnozubpsvALp@M{s$ZdilV(L!BYm!@gdQT@wU)(p^pH zZv>~rQ`S@@XnAa7P{g5&^|`PY0U@4NJHOH$7eEgZu5E3MTYfKzSJJTlu@l4E!h5ll z()r*YJH?hPo3wnT+-iP@^R(D|!>(?k(wkM2Gp#tc)82joEK9nzFlsKAKBKDY8kkt~ z@`piK2`1h6VIqySpKT9)K7S@do{C&^W>U=`fFI3Y>5%=R_siN46aopDfA--Lm*Z`7 zDWpqwGpJqY2Bk?Y|A+A_>O8^xPY2ug@87w{IKcfOomQ|cmaW?&$4JZ(m!~w$ejvb2 ze_dQ$JWrR>c+7x4^1}x-5DAcOre}w=3f!*0fbjbHCJX_!Dp1l!#&U?x)^W!b1U6xz zLe;Eiu*9?q5?6yBsNu*7{0`a^30`5d&l~>t;&k%KR|Cp)**Pf?s}c`TLCX2jcW6~A z6$&I+X+O1H=CzN|*7fMoEnpLo;Hfh)7D;u2PNID_3U13+V%Eh7QW)f9#8XpzhW!^^ z;|Oas9aVh7f5>@rRmb-84*OgEKm4^>v}heyKSU^1=@zf9RooK*=v>8HYi*nO_r}0Z z#`&fiCq!f0jx}KQw{SQ7f>5XB;=%)+AS1smH9kIQd$x7#yAY4y&1rkG_jZ5AL|3{k z4%qx2^r{T#V@DR)W_M@?4sXTw^seqBF)?^82Fz@TZ_Y>4k{p0|J|>3c}J z11o|UG@vS48Sv$`L{N*ZkmJAbLPbS=Hc$f{asFUZg<8EBNybm`*VzGEMs&3`8A!0L zJ&{Cqd=r4vY+13%%U8bq#_De_2fHe=asYoma=pQ*1+YRR$KXvtVF&!)cLXU*=iC2I z(}J7_anDCKm~*0s`I6lKvND zry4JYn-|=Vfd&FvEE4By9bT?qLXAVe0#mus#5E9>PI8y;8W+h4lC~4=vgPZfZ z3IlRdF(MCoRG4`C_-!Ca$LOVR~xXm&wHi7fC>yp1p-(K*JU8j4PphAhyA* zFolc&APzVTYQQ-GNB}j0kei@eLpzArYfK-pQEPprX4oa;Log{DnwF@1=2EE#TMODvKe!Qfy}qLM^1|z2f;}(D{nh2+lJkf5=}p?}xcU_u0&+M6 z6RW|jCXVZ`VU%IS}yBXjT*1!mwwRxI=~{X zRFAF9<~U?LFgRYcdO__ce9)YeKt|_Pa%?(*8O*QUic6-BR zE}ml=BzQPJ-^ zlOYafPp6x<>6TVki8>EyRXjXve4=tYJ3G_AVbbvIlN;vQ4B6t(29fm@zT9Q_Q{&Fc zluWOSa_6)%)vFf9D{i2Ec6Ll%Y08j2EU0}hqU#7#qjK|!sn=YnajDM8`SI!WEYqa| zRr5r80*i-irZ*Z-mrk}BG(7FDdNI(-SVVrgHdPo~+n9WM;T7I-n1n4{>v8z(%A1Vt z2F>sg4&$?nQ_nwV^Jo^UBHpdzDS~IhOJdnl1T^IGd&jbCO&FB=_ zKUV=_F|e!fX|QCe*XtU48%g!HxLvUw_aq8dpEq$?doF#`>C13OGSf_u8ed{3%ye&v z%8@6hG(H@XtHYA5xMfj7&Jx4IJ~~+ey$!w!pMA8y;smo&ZMZ8xV1Flk-lC=^UBx5MJ}C=p-C8gf=7fh!|%v2b*?udn}nX*~O4llBc3RB_MaY`g)658Iq$Mpm~OY(BG z#L{Sr`KZx|<$z?W`Saj=Zt*;)3JIyJA3n;dhxgKilw3byqE$C(R#x6P?BGiDxvA39 zb#zX5JN)~0$Cg`-t-zTmb!hU96Km`jx3Cyge^{kO5;pBrHMQ*`Wxy&iG#u}O{jijE9}$R%3g=T!m%>_1Og>t#7g^#*owVhD^}ze| zvNq!PP>oa*UZND`l~cF;t1gIx-66>oA-83-E4b6=MqGELLWh9H)Lb_}qq_9C)UQ4s zELG;zN?Xcs;TSG-^Leb^GUF8FIWd!7Q=`{IQg6r;M4U~I2`l7*&e9_V1qtnJPf=>7 zV4v~jxj)YMMADMZeya7Hl5M{VKYqNz`*_#wE#iTo+PYI(f7i!0Q>-9USfEf-F|Wtg zpD@ApkLz5BZ0o0u#{cXj^L?M*bSFn6SGo9twclE*>S?5? z7@e5lIH{bjYUygSyi%l>En6)W`Z_m=092|!?l`iXb~@Bax66Z`S9Q1ST}U+{`fl8x zK>uNI=}LGQfF(@gHAt~@mcz+${o+Aq7Q2$QN-T&zsW4~N8-2oh8i&`xnURy3a2Q@SzKlhY zt!>Ur-}K8tZEPyXyP4cAE7?x)W5&x+YO$1|Nhvn4{J#Zsl>q^CsS5k`%CJ>>gz004 zfsc`#*3MrZ$%Ab@*wrc!$Dph?ucCPRpx>xv?HNsrXMUwNn|2Y{Fq|;Y&ppMRS?T=0 zshWM)dh{w%;WP5{IKc=ywWdDaFe26u{)A^{Pn^^1E`69Jr1G$E^!>|bNzM3Mf{8j* z?%VUJe!JSnr?Z03iBC6fkuDWP%2{$a-BFyzKf{rwD zMIQf*m*VP}C*+@e!MdQX6~5fUosk!N2Prgbf@<;|Aj}vdUEy`aSCkAeG{Td za9iQaYUkfPu3oTE$>l9ASqX2VE>0!}N99DR%sTB7TSDG&s-pb*^(#`dgn`ig*V8aXGY0c|M6aB2t$3!9#i#u<_^!YSzCJN7VXSuufEeov@< zeSJNS_ay=0P3az&F5B++Y6|;CLSzCFI>lt#Up2Vw2aM-8em^_5x~K24ES=}^;w~|} z9#&Zv$HUbzo0*jX>Zx_%@Y1JZWaHdQo$K*D+G|f3dC9RE6yx5uQn_OhN{fqpr_xgX zWnJbFOiJQu*4t~xJKrgMytKZ&5T>in62r`hQS@)?=Z~mFxCD{rSMKE?7xJ&mIjpY9 za-yB1)FG<+`9xo;I8S&AWukTvdCukJHYW@Digz``f>=8mI`|l0=#qp`i7_t?InUBE=Y43P z7N=q>%^Dtae)quDl3pSz$4yfCw<7v%n9^7^EhjGY(|lxNF&!flx)z+yWj7-Q6fU76 z$JFiOp!W|?q_X)|@S`gkSEgTniC8MJ`ouCcsnWs~$7LijET>+0NJ-+cd~5B(Uf{Mo zHTU+h2Sn9z%tlYn;8)qH`nNdj`S|%so?|t--nNs@&(|*|zxSfEiDFE@^>l2qvC=DF za;z(&cli4i>!*|xo|lxr5`-vH0vNX%aY=lCUqAX{SEa0L5hlPBgNuYF?WjMDqcJinPE2mr26(gnJpF-4!cNn{^-6fguL<9xNqxT2?qp5oV6r(d%j6IbZnGWP$+eR zH1#WmpTyU9$Zmb~3V9-N(|1EX$226W(!PC`NjaV+*t-|OsI0SDU)(JglF0wfq;Da1 z){Ry{J^ef|F5h$q8AAAyGBY#Z?@1$Kf^)JZ3uDs8=9!#nSy?URe!$V#hUX+q!6=XW zVBd1-q;sYZZx;8MlRCyW{(4Z{%jF;le|0NGHc-`+$DY{ZekL1U_D`Lp%%df|)z~zC zLc5daNWj+iODc~tTkYqvJA5x_#U1}f*U#WI{Meq^kD*2=QMtOtvDw1}v@lq+0;T(_ z8xCjP%w_7?w5*Ve*lC4&xBnmM+w#nfe(XuK^;U%d=zKC?DiIPD)ybq#K*msHXbfN9 z^d~$$kA?Yf+jK9N!>(e;=0Azwarr&iWu9MnZ=3wBZt-WTZ9?wf*$fJ%g7WQyI1r|9 zbf1pLl^+Op|taCp=)iLRn> z|BZt(_*K+3L;A9+Y%e5irWT_xKZL20cV%`a(gus#4-BLmEns=ndU3v?st!QMebfBo z$KC3}_5JcxgbL9PF1N!05;G8g8)79zM&D1b@frM{-BEbQK1Ua%`aB8e%Ya3jDGxL_ zKvL76rXv{MM)7SYw4-0GJ`U5GETXchJ{G)R{ik7>??;0GrB76j_SX;2uMw}F6T44J zOT^?daOvZ{H=cR@Fiq)WK>=5qWgsObS*_DBp9x1HV#6JuSz>+qroV*CTATTm+1J-6 zEKl;{wII%jj+NX(0v#kcrO=9S+8VgNyJDh;@pxaS* zm0nDY8tiO~YzN)RBK{L8*1f1f<}Q0nRDy!xnUCizGWD-TT9)?Hr2yvT@cbLP0Xj^> zDDtCoG29-2WegC&k+8RS6L$;QoIUF4k03R^wR!FBW2)no+ht@wZE^OGTc32<{knZu zvPn)Ifrujew`!Y>%f|XzNQ`&|Sbn-Lo`1d1`d;B~QE{2tqCuNR(ZrM27S`s02}LlliTP122xvFyjQPY8PTaXU*Ke8#y6&W@h%mMAj#OGBA zw6xiPuo=ouyJFAQQ`><7*q40$`greBdF}tWUs6qS z!X^?;F4K?dx|@?v54XftBLY0n|01x!bS;DP0|I<*V*z|3^5AzVR9xggvov`2RfruXkv`pH%8-%eOV1p-HA$W#bJk@8VU6gW z7ZBh8*CcI{Fp(Pry>tcd7dfA=Ez`94qug4 zwtLF{(#B?SZN{k8ujzs#okn+Vg_=@0BSIG&efG6&uz!YsnBw#15N0=#tfxUS%-G~n zw-mPF3`ywiv8~ce(!fTBg|MfS-d-vNqC}PUQ1&uhJcii4G?EnpH4F9^+$+}ml z?rqYOlV;Ib&9O{6$vSj>nF{KpWQR8;bae%GV9Zv;A z@TY+D`3b$Vi_}156hiq^=}h8vzNmZ!m)o_GdqR7++cIJ*&|t%GtE}qd5Gvz4fl|kr zw&qmZRrn>BRn4`{8njg{YjoKq&fsAM@V;4Zr)8wMeww57%x%wP-D zukqh{bQkNz#^BNP*udy$@Y>p1sM5hJMKXv}y@P`v3Qr&Xa`@1_h)I#1z>(=khhLeS z(`ydB%v{pn7Ck2LywNc%1|L5LS@O=R8(_ z%*UqTRi?=nl^xoMlaLt|6XSn&=25rVj1jHg80l?YUdQ@wgFPYBl}@uebrm1E&S21* zUzje@*xbGUU~;_ni=T4|Oe**p=_U6*g@;Nt#T^{T>(=d3T^!IDVz@&Mz`ji zb+GJo>o9C`)@zWuc|kI^=dkY;a7Vk>A4!Gw8?$xM;NajG59U3Citgptjj`l6{Kqk@ zngKO$+kdNJ^#chAw8frAu+LGYuMm-!${;I?PFu+5(il^oCwnxIeIP~HoNT( zrst&Mby#ULsw^?I{QQ~)M|pADWU-#MOIzYeO9BCp6Ah3vL~JiSa7D*U?iroxemP=e zVv_q(nAJnBpegw$I6H=EF6b_Y3F+Lzf&@#n^ynbro3QMU*9*yGNqq6DbrpGwkfgo9cmVByVdy25-#7)wkV2gl*!R{J&;f9 z#p~6Zn^yZvoqgmdMD^sDef<&YXebME2Ttg$*8iYLd@6WDrrS>P8OxV8dW-boC#pMz zJ+NUfc2m*CQGc(G`Nna(6GJ0_@1mwygjuQ=@tF1`qGQpYf-;?n#mG78Z@E6hCThHo zn93-8c{L@Dn-cq;nPFoGyLfkJ;v~Wb$1`l7ebvN37R5v!%v>&PL0O4Gk0XNy4t)ym z0ic8~q>oHDfm|2&3CVN>fjb%k`nnGqltDoGjWxcCclI58iow znnUjChNoq~Q{Y_=kKEd!f-Ld-#s{E)nze|zd9aJ>W*!+Cr5Rp*mtTtkHOPx%GV(CA zoBlq#uBwH18E_+i=45llYDrYm+@7CT${kS3R)fF<^cXT-I#+hy{qWX6=D1&h@P<@Q z5!D@^fKWSf$`uiJ!A}oI2P?6WaQw(Z?Eb4aWXO?dz?_oCc4P7jzF%^^fB*|np{qM0 zOQ5O9yxmy%xL-^O0Q;J&!}LoRlzWT68g{Z`XHUYYdrt-v?a0Qn?FTT(n~JFLJ)&}@ zWv=}U6m(~C8Ei2Jgq8-u10t|Wc7O-x1!*8f?R{fz`unk3F8)gX5?8}yd|O&v$w(^P z)>od_w+%EjNZ4cJ$wF=I7PZW${5^&Ak#jOOt8u?qPgtL(*9`=5ESinUhO8M%_a!XD z>a$Mi*9H|q;MMtY+IUBJ(-}R8luqnW%ta0YAIGpuFlq6nBe~hP$%aLdp)J>LzPyte zl#~f~oTr;2Bzu*Y&%6lBHpd&&yWP0$*6|f5Y_SYdYQnqS^QWi$DQvA)n`XM*w$Cnh zy(eF;RuXV2($LB*LCfNvf3rtStiGQ2E{l7s}w!H@-s`Z=HSqvuN@Hb=aP`R_StPr`fZnw9lANMU&kg@lJ^yrigb%c;7y z*qyu(id^mZ?DjFb*FKTNS0YoGf+=H5ouF3}Ol{lhsHr+arZXs0h8iI!}aQ|Au4a9 zUAt<>H6DC!0b;gP8lB39uGQcg90Jr4gKf#rDyU?W*o?_^>aP@^4f{N5RkbB!e?b`A zvKj7LGUl)1zVxRK5ZzA4-#YQjvWx$Jy#VQ)8x8d`IX7M3($lK!9}je+2dArBY9K2p z#?%vZ(U+$f=(Q&(i3a1LG2QoD&mKrKSTnj(sG?QqrhNCw{rVN#zCw69ARDBFA3pw% zUA#`+kw6mW9Nf@TwVKO`l)Y{+XHnf1{UQXFC!VeC(Ad<}BB~vsB6MpAzkEjJ0*87$ z(nVE6<0r6plV0Ml#c9d?Xf?~M$5CPwr1P)NytazAEZy@SH;C6p#*n!08$y4o-ASI? zxLk{fsT&EJr25l%nI{&Ub(qp z!KhVwD(S5MzzbjfZzP_S^fw_UNtVkExRlj0Vh)mcTUOnkpQcm4HGfrQK4%(wp^|Wx z%*lD;vB<+(Y*rSgh(8#6?_a?WR(mW(_+?BraI6g7?yO0)su@vMims@lEk-5S%3P>tg8T-ek3}7_R#oGEA?m8x&4O zQxVqK-*(=ZY+T{wFx&|+L6+d#{aH20wN6;)e;E2C^zzk%fZQ@KX`LaWJ^fSE z4(HV7rV`n$;YXA8yKneKmq>reGJ4S`litQG1-B_dkY8Dea5BJKB__i31naxxMRmrl zi@Q)=Ff^0UjKrZTVnB>gWANMlRAj-TDCr#POZyCX93`fYD%o5{4cE%1C# z2u#y%5EbPKgbg;26?tBK;&%VqP1P8j>C;Yjd&oRF9PFJmQojQIJYs9cX16}?H+e1FNjD=`YF zFy#65M48s3GfDwshlZ*aTJ8>_VBPigWnutjXlZQ&p6<@bYY_SW1&I=d;8?`=Rj%Yj=P4?r5wb&q&Eu4SwQYL-)ngee zG#Tn4Byk3K9ztakVLN%(wI*ZsAj?lIB>R07Q$Qlle15dmjeXe!^1=*+5EB?X3Voa9 zy)=b0ccO`Os%ING4YQ}K+PVuxy)7v|BUP~jI+6{ALDBFAR{edx8=kKm%nX zc3Il1#a3=iW4OUkJ=xpaO9?Tac!fNtD75cti8gk;BHCw_8x^`;&j@#o zoNv0nB^)~oBHNZT4thUWHYv61(A_j&qll6r8C)%_ys#hG_xm@Bw7$Lql|!M@gRjB- zH(r#>Hkr4i-JX8}VG2p7neu!YSovu3fiHzGR!fS~@fNwJDiqWfB_Qbz@zzP#bq4mkt@-|WJDpP%%w$&!rGSglI8TE;8e z#qbtJ5UuVf7ER?6i%tvZnxhDNjENGlel+9+Jgmr8@h}|&JQOIjf}{xUtMCyCKV-?x zY%t^jeiZNuWLFvh2;^Z5v}Mj=GPe%$T_Az|T$u|Z-EMgHjD|E@q3`?B>MLM%cpqcR z<6H5 zi|HudUZ3`*X}*v)aFfkHICwq#XGAqgA|Ng*_qq@1|GLcIPn+V787?-Xse@`Wj*se| zzVWlWH+j1Rf!}>RA$5oMUUD${eeXynFvxW4v_;&``ttSgdQ(tFYps8`GY(`7pWH4^ zaNJ1Oymt&1eMo{P&2!gHy3#7m4 z%@a_cda=hi(Mv;|(To+{975{W80=XcN`DTgE>e>6pJSh;#*f{J zKeSfZ_IhF6SiWp?blIW|BmFFI1cwHsxxRj+Q17T2jUe?alyh*{{o;YI?|#mA`)CCd zaxfCgCo?{sk}%*Tf6?`JOqB$W{mJXwm@7Z!?#B$M`$XkHVV^FQ)1m-i$~X}lL=Yu% zzc6M=aq+9baBJlHtFfS(n4w4)g)#e%7(>8xIoocf+hM?Kq~|7XxGPOBq{4R_*0H=? zQxJ*Ai|@LMy{p?tvk|`OOmXZVKF&t}9|c$aLP@4^M^8fO=e1G7VBMH@(@2=m9+e9N zfCyk0pcxo^Gn}(l=sawPoE+U$bI-9;Or{o$IJJ9)~F=0}U$Bl*eRt)StfY>ZbS z+sjeU^WjeHXr)7KYkNv-2m&s>%cQZxH5K6WuJ-pcP z3-D`SH7EpRsJ+hYkk$QH4Rp#>P=nqr_Yq)E3%dZa`6tEpBGoCQ#7x_imkBl$MC z)P#5KV;+t@3bHzMr|JM!o&iIi&oQ!ycH@OJeIPA>a6+Zitf6e>5^z!f5ATfh0aWN& zm$A+ZreXL=MIsa3V1Y3;Cmjtf8b0?-kzuo_KK$VK#01rSm6%nO@%8LRI4W&>Hs(!r z?JHI=w)xzmY_1l0x%t8Xhe+XCeepRuBO-jL0! zvI4CUTr=T^K~j;xf|ko?&96YlK!4)Q3%r<`y1Ksyx^As7v8BA+cLzbGXM8c5QjP+Y zNZL@1rL(+EeTt^?NeW)5?qi~-2_b8m-)C2*e!EL!=<*_}#SnjxL_PzF;L3He#*@L7T zy^?DsnB6=eL+=s7t! z2xSh3`5Lodvo=AwWXjDqWDMTDG!?qxgM%8qLy34GH3KD<sb12B#_t0z@chD z+pN6dr^^x8I(y@`?^-E8AD><3_0Pd?Z(%n?wcLO0;VRT@e@aZt${a5LX+3Px5TlxpME^D z@C7r_wiZJ$`3aW_pWfz)2FCYqB!q+?!58)T@nd+*P?jiJ@HA;#WzWYo2Glaj`^n$=+|wovr2Gerw}wq3pn#D0+6$T? zJfe*3>>I$HSFaZJn9IGCd`1J?4aoV&eZo<>jD7d*_x}mm7(u#sL*;o&7=HGX1LS*7 z&&+Df%f~0aKdIg8tXr+LVA=cUPiST)1JsDUB-+(LoYCWiMiwGp(`rI*&Xs7)Lom1U z$;D_L(`9Q)^Or&SovmR_1FxX2XvTuq%{*tPlg>zbrCh{u_@u?M{I~=Aw%{4x0&h4+ zv(%SJYO3s?n)I0#pDgGxT;GOL@Z-SXAUH#Y$-kxLeZAFv$bAs_0W%lhJuxmBULc7C zmyB|VI8x(DSq-V-Rlm0T2{k0_Cj?e$2Nqc?D8M*!af;8*eO@9=b3}vMs z)4PlEj>B#0wI%Y(?;)i^O8HZJUc8hp#d}1jDf9p}fmxO6>9Y(y6dH~H^G0Gpb+z3} z-I{u7{r1!Lt6pcr?{egmG8dPLSXq5!-}UJ3jrTzd5n4i~Z)wQGHu`FPPM8N{_{l;T z^B6ui$K_OG>nmzhDxHfxdtr|w3Sv&Z(0d}|0!NSCdo~qQ`EI3dj0TYyxZz{p%aT2N z2I$nj;x|JZ5%&&nbG|= znPQ9bU4>u3^|F6^)sorCnE`P#A=RB>ZBq@_8N%#!+s5lm(@z!x4bu6m$X zQ*bofOCVQCCT+?>;uLrdJ_InYKx+slEC??aTsjloM5S_HEBqcVywIqu%uz0?&O!t@ zE!8e67mQh$6cq^^dMei&%-j1Dm{cu?)o4FUW2JTn!m2|qh@8umxDW6Jhm1o?@H8P2vwaS2}*gaBXW3K?dm@+fnB$zo^7ytDtDG-?z6K!5Kg5_&_ z-uwJ$e(>q=U?uy~es{hbju@71(=ld^R{LyBJ@JkN@ag^@f-*Tpgt6MLt<1x&?xNqW zI@Lv-P2}B2nm1sSkrb_WZ2?zimAn;wZW!||HVI8=BZuy1!-GE$z#r!{wLRjn=!eh( zAfViKE8D_ZK*hexkr&EZTc<{?yt_=iglQfY^VE}L|9_-P6IunJ1uMm8ic#5Xf_)^! z60}h;cf~uMN$XWzbh$LGeljzaUyFGTIJ49(=gd~@mGtD~(9%B8wBOdbl|N)NJ9uOsoE zRq*11)t_pjYgSU944vDi{_NwB-@Wd><=24qU+R#mYu?DD27|!yrWIx=PCVNStpLRb zfh2_>hpXxnL!EEBCoJTEt;^86Gv>9*HeUo~LFWLjR{`(n#!HD}pTnf!^`^IKr* zc-N+m;{6bDh1M7k<9Y*^wzl?l%wy9q)qWA>2&4&XH@OkKc8#?c`>%BDb{8CZemFVvO{TEeyjZz z8EI6qLm#{wFlHC;jWm!cZwhM3L|qac2$BrMh0G>3WtS$WUOa+TqYoup2)bL1zU}1= z>HM3@%6vp<(Kn>IPxK3-vK2lPKrFE+5j0Q6re-9sZE0{VpIcm%jEZGEsbHBbkJ6O}Z$H1AO(y2%5 zwaF433YZKk{;Ax*S6W@_f5jY2S+vtmb z*hc00%UrXWV==?mQ>7%C#B4DNl*tf>F>YB%y}qoY*c7IQzp8iA3P zUnqxdq8g?W;O#B@BR+jdGI!vnOnwT|2n>kuaB~trR5wQ9^GmaaM|S}Dfg$=jiZ_>( zs_Lz8oIdqdKCl(fXHr7oB<5)-TQ@!Gls@H*Pyc|qP}k|y`}j(G)fsR9514;SE|r#s zLDVQrBoM+b9otivkdNd!b`k^{i@agferJCSc{KPNEb!#O=@uPCKXWFGNf7D%il5`5cNXf6< zs>NW5vG_I7NkmRb9&b&fW=k|?)k6{NQ)~9GzW~r8RG0u7TDs0fWN)s<(hxdygyYzi z%nJSNy9Y%!0HGlm$f!NDnLe{@YBzAK>OM2=UO!9*J`nQ~ZSbWLP@0qPs56(2(2AyF zI4WlkSituu>=G0=(g}k9UwY>no27j+undxJ%dC#yw1iw8Dkn2bfA?V%e3u6V^z~A3L{Tn}o2E1Fy(BQ|73x+Dq zw%ub|#N%0?<8s$sL2}tokp;jEc=&si%c<9-nfIe==G=L23vUU22V*L+Dah_PzU|i= z5e;#L_n<|;1!gIMDFHPh(`2WEi%2Kn;2WRPry_ZB59e<$6No))?h+(qqE-cKMGt~= zS1a$L^(c5w4xCp#yvPAKu**+9IRnBNpXJ@!N@2mKSWwPZJFCTz4^|8N0D;am z6}FfWCN7$+(f565?2(8 zP{T$Cf|Z|G!<5%hK^eRxoIVE`Bex0SwM}`_`@5QigYS2$)0y`x{DqF7>EEAcP-o^S z*-2@A&AU#L??S8DowOn4b%}~J-a%P24$OiYOAL~G$b!14Zs#w1Zf=g_2dV|DSEMBpgCQLZsa)cL0=%*0op~zY(i| zacdH|+1IMZyQ;iqubP;_sQR=43-AFdDJkK74ygFPCfF7N)p5nj2t5%}>{YQy!?^@mKmGyBz+XlY#p8@;F zM(6~mZ}F1TFo;yGp=2M2R`)|BxIG>;M>3sV{kBe!1n(w8u zGJBbr5|)WXwh#xS0S8~ZCOXlkUN(jr(MpG;FERW~|1DbvkOQA{9`rdT(dyDrbExpe zh&=SeFnjZ*Z~3}x;Jf*&4JXe-_nsS`^ZYN1FMskLN$C>+SD_VEC8DXgfPuI_{~#R8 z1A`5erm&I;rR`4im$0S5=!hVs>C-OJPFCvE=FY~V>jL#^TyG-MxNcJd7fHGxT|>|X zm9{!}V^44C#z_7K2Pfc7JPZ@?e<349JG3wG6s=djH)<%=!z9{S7Ub`CduuzMRw|SX z2wN04k~V{8IYSbO4g5eacx&CprjpSMMQY>5)cq9fK=6nIM*`u8+x*ole~5WGo1GiB z@N;0wkV{#%FR7Mah{Atzu20))83RfGjC;`MT&5-fMIg9oG z#pl0J6U8;5fusS;NtX*p2n_mg3IvFWXJDxv#9WOr;fj}9*CHTb&05+AXCK7UmzG*< zIX5UOSfb&`Q(K0q3{ubi>;;jl`Jl{T<}i-=_Vw|@wM_h6n5!Lxyqrp4-0 z4!8y>vRUS?&gA9cc~WRW0MUw9c~Tb&4BEqAu=ol-j0%)x55JJEpF=S|;`eKv6|Xn7 z-p(I>;s3v|Ej)0IOy19fh~gq2&1#4k;M;vnT)Z@fw@x0!_m{muCa)>z=?m4Rv_z|g zFu4XS7~IwuhIH!p3M2V3r8rr3b|O<#IZ3k<@~Q4jr;~sl3&MgIO>Fw#)fo5atQNCz zvlPs);C(dZA$zazd6Ls4?(ix&?=oL9#r)(pTVVda5uqI;vrSb`2=Un?2Fu^putKUN*bs&w{_t9SpX9F)`s8A8;rd(Ne`YNSDN$7HaGcHC< zUyjtImxKT-t07msA?b1~04tbQ0iysx0z-~>f@ws7br<{J%q=Wv{eNM2h*BpcBy7dj zo!#BigHtm8lTm|6K=HtmtR>0r|J*1I9KF8e*fcC}eU?1i#9wU#AkH-kH)_KP^7Hdv zFL#l(^J+epqQVc~>1i7A~QbCEKL5K-k0Xm{`C^tyVO-F2|6BlB+W#~ z4fM?Tvk%X3uhv1Y>J?nOv~MJs#P{z$9|Qjy;FoIsD>Bze&8%+R`ex;diuB~1icb0h zwJSd=${z#fH)}{w5HFWj*^*(!(C9q_m;ERAPf+D~1IHL~>mZZ!v};ozt>&jO;T>eKQ#F)Oo$>09WkC zsH0_X>F%uG=B5RS7Yp(TlF`voDFd73hdMeGSzpMw4ju1y|8WKa5cxOypV}afYv6*P zL8WE=-9;w<4G0293axdj}?{RXDm7ajZ9G7 z`(C$5=TAVxFw_%d_aJG<-$ZU`37NkB{`Wk)Q`<;_Q}hW9a-9)8I^RP}5}Wkp#9a#< zQ*Ax11S>^TugT=h;pCxQzTjcerJ|a#7 zlIy^$5En@$?LE79tFqfam=C5(BROQZN9aHw+U%KEH`U0wt|n_-!QF=D8)Gp>#jjE{ z-3WEE#_P12(bJfFqpRPhO*PSx8XgdeD4Kfg2`RdWKC{ZHgZ?xin6C;;EwP>7c1U8yS#ZlrlD>Wj|gFyvt; z9oJ6nwv>dBG>oATE|olVf)LaI${9s*DTRo8fLu6cdd+SwAK4nq5yK>U?_51+k%; z>|)<5hIF1F`>Pxl-FrN9-~=`^JEYxM(35Au!6)~Lfc=0)u>|me5Q5K^DY4`;ZgoE}OfBsBg=b?2MGy3zAs=B#Y*&WSLTKa=+p}82 zSg)<=tupk&*T+1+bhxOUH^*Co7qU!7H*BMFpn|sgWbvKq4$`9tUM}c&B+eboLt37Z zY&TN16Fr$Tp!vGHEz|ZxDWey(2kE{24^M#SzyM>Cg-b^fbV_=ZS~4OZ@q~vZ1#-x(74$Q~B~ zvr=YDzJ6<1&z3}n$<57>#E9^UCW8C+CBQoVKM6_sITr7Sq^kcG1wC}IRM%pFuBR=V zvqQ84-F*f$238b1SAy&hYCz-Q#PJBv)%5x?O*aXI{7BNbF%SvhXdeof)A2H-hc>Md zeS5$DoAHDb4KALbxAMD3A2@-q_;e zpv>2;2?b|y7K zkX7Y`)Za34$0(LI>;?vA&T%Iik9S45Ne&>4#mY*3ipq@{C`_c}2j&kx)5qm@fB6TC zR{G zy&CevRd!+-ODZQb7##u5M#zhxq1=OJQ?blL0t+I|xp^8fF#|3b_OcPW;xP2pfaHDo zZ`e9R-!2i)SuYUH9*5`7Jtqf=;&np@%Z%l(mr=3|+RO`Lg_N5doB?jZc>y7{6Tiu7 z^iv~e1Lh5=y%5fmUg+T9!-5D`T2ku`12B*lcVx#Hwda}9R7pyJn{I_089dOt3ngZp z&Nsu8=Ku1Ft*lc`toHj=8G(hf24m4qUD@OWwgR$U0oQNCNPKYW*(G?S2)vW(^&h^E7qVsV5F*(#%E~bd*&}< z_XrtTm3asudu9KhqtEyI|NX9CS63Gu=Xk%?Gw%C-o>z2aGBI{gn4W=2PJ|LQnk1kEMV+<-qP=Lx%vM?>QoQgtT-3dsG(PeY@ zUwPjz;EK5`|8_gn#lS7_jBF+)R9qI2WR~zf;Y<3#LIY@TUE2#t@`Ip4Z+}KC$B|pR zz<_wzYovNAVC$uNE*YdH4h}A9WD{l)nsogF1L7#?()4h+m(R9n=DZc?T5rPVLp8CF3XD7JqT1BdD6 zVlv}w_MF4rS0G-<)ns??58JEPg#~Cj_ho=^`?XWQDGmq}l9D1IB6FZPSthDE`aL9$ z@_H}l<)PaJ3k(W$X#AdX*NONsFXG+EOrTot(huLwD2ha6F=h`xz-J|0GSs5gpa|1c z-Zj+XBdX26D_b1;Fo$&a(o3Blu)~t{J1b*ce?P1-Lu1znkRz1Bsg^2!RPMruY8g;Q zc<)AR9uU=F*Kz)OOQ@2?zv>=^l5E=Ev@`Qvt0~EG)7dWHzPCc8MYWPaCBOmlF|Nvg z@`{KuNXZ;`PNSS3Y}kXP1-dn=n#Nr&K=nZTA^@mSk{C!6jVg+}DMQKrx7u}&A3(D? zsBhUdzRM8n?^tt=_EE_r89NP}oB6+ZjZIHqf9n9?S4}2N{Q^iIc|j%+#^1oK#tZ#s zz3ZS=$eIM7UY}!1d}X`pCnqU3o0VVQUoZ8bi}mdPvY&0qTGlkeX^vT<|E+1lp+wnbrS za~J3oLJq)x)CDj75!(tVL^2Xta0>|lac+;uA4uy!o}JT?DtH|eaUUH>OyKz)@UIWi zUuV|;MalWJ70Q4iRHh$3#+A)W;KR293^U~k6Lhw46X+nS`3aI?o&q1n&7E%xy(K_; z*MD9h_x`+N-e(=jRde$ik|YY+7p41?DrTyE7Ud1mxTDNA)Xh-Co@hBg(S{|Bdlu1H zc8l~v<&Z476ypzdGrONUB6?3LHv!~C<#)@|OyE^6@Y&c>MouG z*n!GdiC-SyBF&{y33^SgOGuR8?90JVJ^T&p!y8keCe~c*e%o@yl}@a|>JJ?)avC<` zpCA2|F84XYG4fql_&~3LVrCr6&5|UM^4aQA+=KsAQQ=oBCOOhjz`?l(OE`7e|L6o6T_|3kYYv!O;oP#N$hRB>ED1D-8+>5aYU z53@>cMyWu^$9{SHO)eV&b;?%&eq+)Kr8L5fyH&V;9ih%b&+@pFZLW-zt zzNT!c%)hTwpsB3`W!mIk1X0l6-w8tl&?Aj;&Z;-2s<1_I%?w0(pnjExK1N=%Y%-{j z=W-0)Z6^paoaBo34S(OaLcx86DbpK{P>%3PUcR=j{_Tti3g$%N9+;`94Eo;#YPdHT z!R@Y~9{x_3VMG#ZR+@k+n>FF@nDV-S0fx^CwDUdi_FYnpDYq|`ik>>Y0>Jb^w$sSG z)XPcZt!7O#WP^E8cQ5l$*!_p!(i?X=vOH z$t?eEGl#GeQvnh-e{@@}$ki>Sx!IqmXs%;+R?8(t?8SN!Y4vYfpU3RI0RN(z8p9*< z+ks2z#J?cF%wJbl-Uc@VqMK>FeFc+=0!Z(xCsPP0a{*HXd8|D#k2br!Scz^hv(}IO z-`2w)xBAy_diiw(I%G-TP}jPK!K@P%@`kwWKb=9escboSpM_G=ZIF?jZHWR}1zNT) z>*`NXi6&R1j*?fs-s~O)*;57}mDADYe1}GVChG9uOyp{k%;2F2lnZx2H4J%%e|}!ODFO7vfNqYkrfsD|eWqisadl+-K>#6?ChMmMMoJXt^A8GKgnl6} z6trz~xmL{l$w_dtBFzduy{Ca_DU+=~lYI)%eG)Q2M1DEl0ieKPb5=@hr%%9r@ttLf z0}=t7M(seSKAgSrR}j>2ztkkBuA7R6ua?ek@l(r^5`drvMd?b>-x^Z~9YkwuFdn+? z>TF9Os<9R@C}QJp!@0m)W~K>bN&!H1`vyL^y9Td=u}@bbZFP9EvgX0Dx1meBtF?Tfct~8j3_RQXuQXwr3!V}w z8<8P9mtrr3a%^nabO)fdVFm~jTDgII`u>#h);%j11;}cldE9QrJt`ScFsIAQ@H6Q^ z^}6|fgUR@t|C2RGvhfglM*S06!_YxKmF^!`6q^r}sSd9NGl~o7yv61&8jZ}M)oGRc z2!eT-bt|PtN@!7r4JFfYanjyAK--#9U7S1&dI6O31z}!8RY9@w*H~SW@;X zI`HTf6?Up*vh7O1*3SN;{IB~DECo*4g`yPZOApz@$j1Cke|-;q^<(m)>j6rvNbMFt z`a<;sJNSyYFU^}_!psrn0JC0j)l>#;28`gr3;om_sc#KRSH7`mYhM zD<;I|dWB>5W_?4W?T22{9p2j72@W*s@8ybcvl)RM2c1Rr6!*hel-NY!*NTd8Q95jH zsQGRG<+b%q(e|{n!&Q{}CSYV3^#AyA;=$=@s98t#8b~@v+-ghzFw)~C@8Av<7>omr zI<<0n?-eqrng>}Y^>jlUehRm+6n4pSewewN(<7{>6s?#T*-_9>4LQjIsFw3;0 zuNEY^?=wL%$T8rk{#dXX(#hT}l%52-T!2CWj5nCo|Aga(SDf$jMN$ahTaa!nz5Qwd z41bH`dl_tzFX=s6ZO3$?Jt+`a~va>v_raUcp)ip_^8 zyF~Xi)8hXv{O2VefvI{yuD*s3?JdGFqVJC}XGS8|pRx(VkL`1RIZ z2>D}By%GDCP)Scq+kZ7RhfX1hA~l5) z$=X1l4p4DeFLcDYM= z#xxUh;#RwZn^x^BO}r$4nZ`fpm}pF8D-L-K-9dPjUHo$UL5NiH%O?K z!!SDgQRF2s@cZXgZaG8B@wPL~hnwCkhf4RoCA#(2?%1!~A!w90svNj;^g&PIeXjCP z{AbGwZMxK1*D$2muLn3_@|4 z>~!KA`SefbryGhn> zR#u68uhML?Ri@h$2b0JtZgN1 zF1ogwpS`0~Ehd8CwoJa4m{N&2n8>6h3TwXR(1=aQn7`KkWJ_sW_`MP^&3ux6_kTlK zV+twj56?)b+RInRxf~kUtwy%j? zy9z-OT-4RiQTY_zqcI`R+H>IN&h$?lfBT+FxH)4mL;BA6r2NlT{;CrHik-lgr>&co zvP9YH*1BnwNzo|`N!gVGZM8$Jfi=&))k+j>GL&5!zbHsiEU_& z?JD{7owqO)nRM*bb7|FJ%01PotYfczcOFeZhzi#0wq9;#(nQ)5FmkX+ji{fvsrIahnS?`G8X$)&`muc_nI_44@Uil_2 z;8XrS{W%XJd(ry*&$F7J1dA3KE<&`A=0OBW0OA1%O(d;W>W zzSNk~thQ4TLs=0J{;BHe(d;wo$ zVS-I!Bn#8feS6OzQuR*DD@6XvymOOM!<*IPT{36GXH@MKDYWY?#-JZ zxa!0FgF*k{@d&M65l!D8Q&!_mU3GP|5L4J5JSJlWZd+%^&b*#3#6bu~P6|Aq92~|E zwEw2R59xqf0g8w#+WDix3vcbC#A!DKowD`l)FTFTyScgvb!(BMrP=KI1Vn}0bh+$L zWLA%*e|EK^S$(Uxe1!lyzrKF`nuwATE>lH|RUoTqVXx3!6aA}Kc6rgq8VPq`<~1vDYpxvfofDYFrHJA_faX60{?NF7m^c%(3jGSi@K35-F43TLROw_lcz`SsyO-ye=_n;NTf_l%s z@A20Q-TO3aJOl0F?%2v;h%yN3abaG)_IsSaV&_0FL!GJZ`)RMhHZI<)9<{gS=Dk`) z(Gs}vpXK{VIM~<`A&e!XPSv02_!)zC@eOhLdU|>`SMrO^n*A>a5q;ySKU&G3+K$l) zF}#9MQ~(%{KMJ*A_n$^Ci{XtC|#nK zo4Yt}@+3Y#s=3u0`QgJ2IK&vhDt;K~HQ@(zP8HcC(X-&>u~LWe$mVemKeGhmWl#%A zhu}-0wqeb%qlfN8BfGvP^x%%HjECdfl?KWR3bXhQ>Z5sYF`znT?M>UlX+7l3K5lSO zLa{m8**G`?*|@JxXc$Kyrh~1mow(i6OVrWvyf+d*=_@8&0rcoIXXX*!ir~N{F)r!x zXM6m(;o<4CY}miY)hpWGpGPAj4Bq`T$Fw(s(Wo@wNB!LJp^n7Frx&AY3n6GrmkJb- zJCJFq49b(FBHFzDL_I97fL8kQ3LpX*HqG({3E|z^l zLwlii=M`92FyRIU*Or`U;8oZv6A9G|6u+eNcls9RaE%bi)B1KZK5`^W&?|b@0wM@} zILER}&gOmd{}g{e@kG1bD2L71FtIpJTB5wKGd5G(QTxU&N&OEL>s08$rRBAnei_W8 zWgM@k)OZ4msnV4e-@O)3HWfLDE2J`s&8FgzsL1#TUEM2L4H~`aIV22+3ejs$G7*od z2o$vP(eyss2-387bi6R7f`6roRGZ&C+2?%+H)dE--=Bjz6Tg;zVjiT~Skr7@9PGbhSH4x_?|gGC{nyRmm`oi>uQ`Z#qh~p+ z@RS%5`%LS2I^%7p70wfS`+&H$JUb7O{g`X9rlXPC&P_a_SU0+gRi)MM>A94TG@bAF z>c$By=bGRv3d5`DMY}Y8tZ;Z>T#V4DwXf`jp_&>oIr<+n=&*RMHn;}Fbd!$}B-&w^GXKLU4Jh28A z7ff0*da&x>!kU4Y_0I&#wFy<(D;&l3t#z)cYc^|Ly%KV^`lM&#wjXEK1g1}ge@-x% z{0Z8clK9KPNgtJLX}d1kWV~_jQ)VX9;`vP#v*OIm03m-(Yavxzp{bwz6=lH@6m!Tn z3MDTuPlcF+eixHd!y&899**M8N`ujrOo#<!Y0Ya|-D$+)l6OV66dM*WohgZTsx+&7<)ST*1YA^xT)NElS$)qW8bJ#C!*I8t3RZx8=UO= zuq1DI7X=7AdUZUVG~!D-aNM({NVjleos=wSjk=Q%W;C!-dGdJjmOid!D!yA!LZ(gq z-NmjCk}K9t47A3pj~GJ|zgq0L2q+}TmbbT$pI(=yjAvo>=F$=%z^wl}7a^se_xahu zg7=Xi3rXPD|(F&mmyDRHP32gEP{sVq2bby=Q?k) z2Y>msnZP5h9S8Gus>zung1noSvn|Vk?hct~1Zh0&Q+sLYxvkM5JQNv+2LL0NGH`Vr zG;49n?_qGg_d6dwpef2Eo1EDvfKM_GQ#Wbt4bMR_g`11Wj&%Q8t6sQx zZPHyo&*`e&n_S+d$5>CD5np7)e2%c=K0d^$E_VMzb@F)T4{hYy&jwOBz}m&9eQx@0 zsyVigW)4bB+pNTWBq6rqefphuY_LdFbd%GdoM?13{!_zx>$-STM$L~X24Q;{(=96{ zzpn88eXO_V$beUsPx`-v1ekx({n#>VThl|Koi|*rnm0<^kcc0688@CkvzF4@lMXyN z1X-gE*MnXev8^!5twkD$6^KQ6={GhTpAntnKVRjjBOr~b8` z&ybtnnrM~?79$i153|7!W63=KfG!XeCzN08JFPN)Eo}c z!!`N&euCw%(O&y{|N^80K&*z(WDJ&U6W1ts2vXbeg?oI41^im1WVd z`qH?)CQ@(VNneuj(Ii$Vq(2`G z8onKf>ouC)v9U31?E2w19gw$TdwHgeNs({WP33FZQ%(s9iQk|30)LS0d+{wj_F6HL z`OZK3w_vcyfIFv_5{!(Zta!V_;+I)=nisW)ELJDanBVvKtyFU4_KQ(ZN)~-2V#d@P zpbHU@{ISzCz#w~?=V7H=MRnkNhWj4bKy6);8`W{f!`^h4yRYwqtY_$ zd~uRJ{6eUNH1Mq^%c!|R{Q`S4Hyh+mR|p-PhcpM4PB`09b_`5XhV=$TdFr9~Y>jvE z_@geOELc4xr#tgvSB2!t{U(M6#tTDD6wv{Onz-Wenl2CX$Yly+MXkUuVb#^uknhxl z(?rvow=^6R=$5<3&a4ejr}p2iX8%l*ykeI60kBCRw?J@GXjCgem|!p>jXw~t zG;nWN>uo@2f7z5U_APhx!lkRjPOqs@CZxiCsab22^{m>B6lTla z!`e7(B=S$b6{hb$d0Z{*8&bC_xn+fEwiIEgq`VzWx&#XRQq%^xWxsLZl;b0kzb;GUpO?ED>;Ct8o4Kl*2S@I3u;WjV| z{5Fxc@5cYB9$&ndIsNKO-KkJoaVN~^-n41m^RM`9ymitnk^* zxkvK63oD%PYeD%)O`Zd%%IFtThUVwR*xAG1MN!#CfB?4Q#A`@HM6 zL4zkT_qdjK`7dUrGG6QbpAJZ598fivp zT$yy+SSoh6RM-?3)_jh46S+uY+ZV(9vSFIW%pEQ?_cx_NAx(RL-rb6BiAYLp#6#@7= zUYe-gDb!#B5RtwsYF}9{LI1gZzSUDL((>lG&`UobC5Dz8O5mi^9sF6jno8MP(^x&-xX1ABlDpMuHD>hLiZq*dU{*GPg4JzGjI$*U2q3`B{-TRUB}Hka&FH&vp+wkQ%b$f zGF!?LH-k{@J@vmT0TFTZky2#q+)y_c=d5+j3eEu_O;kfpw=35=Z{7gg!=9;#&3K9* zOm+H3xE;)T^4?iU1)dN3RzIWM*I!Dr%gkav--Griv7FI3V2VlnWW*dl zs|lA&KmCXoGxglz5!u->?;Ug%2BBkemS>YSmsRL*d+IfP{_SqCetJTlDq+3j*O%iw zduB?WT0Yq^Uni_8#45CyCW@nCe3h^M>1|p-C?0?L{0X1;gSz$LSa`<6q>VfX{F3`Q zbSu5z&8*F{K5UM=Nw_ukMlyn)+qm@FSFVEqS2H%wv$AaViR10DOE349?t4l!(hz%d z=_Eqd-mAkMbRzzDv95S%&_Un>wcHTV(|6=;ynq6-OXYGt0{f$s!3epN2ASEeMvM(N zQtj_esIZ?ttkha>+b-vpxh^@FraD)e*x$y(@{b8j48niPDU5?|MBg zm&R{At*f!>fqu-!N8&k$v#w%3Ba!cORh=p#x3ZSQWjMb(&JDsMY&V{ht`<$&-wpXi?G$~b4(;nKs_VPgb7PiWg^ z;3{JkFaR;#zYcx`#o5)xf6ya$@^=ltLimHuCAsM_@jM7ebh>@ z^JIs)A#}(Jzi!WA`9yuvz8<}|n(y*~PwBd|=C}yDUE1Ds!7B@D*$BSgzB{y_d^7ny zm;o55>3JoUGAnpoV0uKxYc=pzGG#86OCSkTHv*pY%m;U2lgZ z$qVxr$4n@gi-dWvt-t+y{wz?gDmRM3l`1$RHGF359TQ~{M%;6zmH2z}!yY|-GFzyC zB=s|$YgSFm0r^%zGnJX-W|KyDDDR2d^_8}R+dwYcLuv(@252p!$^L{3(JhxVeyEq{ zB+mM#HFzKbEG)F@pg&I)A_X`A6;(n2X*x6~E0wnTEVrj}dIrLBh<}>HgF287_aOY? zMt)oQ_DH{o;!(I`RuQJLPXpXRWVp4AYtW=dUgkf@QFWaGH@bvJxp=3-U^JM<=zv@6!Yh}!g@@W!09Ah;Kyr1Yz&f*>9;bhMdg<~Jj|vU``dc6cN^#M*hE zSTbrA&YckOzEcJcV*Xjp%BgZJOD~W(7l_HLOQ=&nP1N=-EmCrQN~W#0<05fPm`81M z12J*l_HGrq<0xAQj;E?p0B}pKtV(xW!faaGfw7-F29NS`zxF|OxOyg~Sx~88e}M4j zpa;c0QHakiri@BjQ>PCW`{vglqLt6bcnLfDXq)y)I+HY>(VJCI`Hl60;{r!q5EuoK z9&E<`ggm-p-kdzGfrb)GUWoVFqH1ZNK})}|K%gQ7&GzG0z+Tzz+)o6`3Br$QZizdG zHJ6uuC9XE!13WL9PBOr-&Mh+o$qKy~zCXJnRs#`L@=Sa*Ff>pQPn`Cu*+^7AKNvzJ zRH}>+K^^@=M5Gusjo(Dr*p581FAiDx>~^YHHI|OrgL`4f!nI~0)eVthf8qA-xC~c0 z?$om(+=H0>EDE!rGQa5q-12$A93E9sZaKX^c?^es9$6s(J3jo-@?onyV`tj6t5{Sa zTjb{>Ruw>u^);91a+*+ul+B~*zsk_ek4+I}w?HqND>dId4cS12ozW>1e8@tQv97HO z%_tRx^!)Z4Ot+H=02VJ;N_>$2g4M9s)97L9?JKCjL;p|GmhZCI41ShwcRw8<5>c8J z>{kA<9}ir%O{p+}(?VnrQNK$KNO1~A1Ed(gZE%|tfz4RY*8V%^ZV1)$9Yrz42dp16 z4mTefe;>TlUR||ki?ZEG5g*g-kT)1$q^Aj?B0B-0RQ>gq=;!+slkR>`H4%{x`vYLz z3bO^oHtb!ASNAi=QXVfHHxJ7@koTIO)x>S8h7kjLil&`U4u74O`ekKhuT0tr1Ig63 za(8x3GxPpCNZlHm!EU=A)voIAWLr+RO8oQzmCUe=PMXh z(Tlfy$kvXX0<9A6B-PPlQpRhe*YJ~jO0xp7VRrjEt+1na^D_WLp$>weT0s;3IE;l2 ze#mjGG>D21$Yg>j^A(529m`u=p;V7R9lv3kEqAX(AxKo(yPjM_L|(5%20Qrs3o{U-o_F{L~;wBF&Cnrser0WpL}r5Plm0ntT;K*j+Z7{sf>U1{W#*}G5gkONlPOu zMoeS3*AQGbc5Me!X_>2EE(b3fc;WR?6WhB0nnLVcZcIx12K)+b(qT{P7Cn^jXBSb( z>^VNg$yu;*>w#?zuQ^TOalgYv_wfT~C38XZBkwWFxwEsgLj%5M03%E|HCF`J%7~;W z<2#6NDPoFSYPG3=WTpR!jx}|y-8uI!6e%M|IAbGu?&^InKO zN52v4imYs7Larg)C7&(qem4eqMBH=KlMToL`>z{{hHBUUW<3JJwxh1OR6bqed7Y% zLG--Wt337Aw@(0m@N->f1O7VM&;#)V(pR{w&6EoF6rNd(lFSUw5*99BW*4|73^U4` zmo5>U+?SEkJ;EZ_C5Lq7id#tychZ6-Y6|u&x&pL>Jz$D5dc3?8V`@<8Nob}*~ z&=QzIik*2t%sy;nqPSw1S7Jl%L_C;UuuC-0#<3JZz0-gn`~dilIBHCE%ZYBF_cscsR%2LmYUhydYzvV8ltm;d|FcAZW00|ul;Q^}tV&-16kmrrm@@mK9 z;X79BRr6z?{k-gWXkLWITRI-c{czWG#zDc83*Fq+!o?k5Wi_^bACbe>4IUF{$^y(& z1aBIf>hYxBZFJ$q=%_=JP$Cka(lhZ4qWMDyk!v6{N!{CK)kws8sAqWhjSV>f0DX6U z5F5T+WM8xvOv+`svFr*tnVf)E?0_Z!;_nm|lb@wT^aOvr?bVwmH^ zZM=g&#+eI$={2LqXH6F#Rm;VoXoXBTT-7!0;V4|ts~?^cIbGg)aDd+BJJR31=cV*j zlliB;4svY!9UsF}Vnim-Skp~1GcjY>2tf0~zJFdqv8^?`E6Aq#02aCX%K(Aby`0gl zDoyAY8Fg67bgE))eG8JQC8ZmM+$Rb7;6(v%Mz#R7LtAL9SOe8B?!Kf=F1ao?Ap$R-6taa6g? z?oRp@s}i|>z`@pj{XVi5dqjylgT*5e4O*%up)#UaSy2;!M8k^h)o}AEUXTnLVa1=wl z3j`n_)w2AWsJhI*3lR-?`11O2;A54<4~VkP%G76OMp>5KXTK8y`iR~ym+A^%5BRyu?gG^SH{fG=LSeAOvDI40t)&NzJZMxygc zJyWh*RC$Wud=9GM_vLN9_m`6ITAqojyN!u|m&VN=VYnRRFLm`Rtk%ZA)hacwngB%( zbh~4=`SP>WNUjSJb{HI-{QUB#Z1&~*0Tl*XpWgWXKVbQA#;wo=pK_JVtUYzq z1_e>eGoPQb7h`Yn%=oQ80kr6&e=%Da~4QVW55Myq5ye?c>zc5r8azUv*= zjM;D!&vWZ0;f6z!=t9Gunse{tR@XH1(GyYel2$jeVVD&lzDJcgmLdlI4`7qeZW9wd=|CBKq9sFP~LPZ!K(G{8EeT z*^_=Q-(pAiAIIN~?-ts2y*B~IKKU{x%t|1H0#VRQ{m;O*c>(vBTQja4a%Tjii36VNw6S3vb-t}%2tTHK%P_ISe_M`o zw;X;ZPc@G#-mH(gTI^^cd+Q-rx$ClS+$_YgcOY?ylw+1*Qj^)^hmJ&%a^`(Agp4g9 z;_Xk!XZ+g8O9Mv1M35#Iosbcz)|ZG#yH?@Z>BQUkT9z^MzkfY#YWbZ@IMWimXRFG$ zZ4aZT43*1QOKoMi>OxPI2-D;G)ht<05W3@J#g#d3b@BM1|INe8LH+RMiMr3ucrb6S zieYN0Of84@5*=_)9vc1XUw4Xq%M+CtiH{evkuQmWiIHc0Jhzf+tXs7t{?U74jmqrW zExx(!N`kWul|BA`@7hZXw+!+4{zePoL?a?oyZ%RaT(bIvN-32n2-D?*FnHJ0LGHe6 z&5xWY!30%E2DLmYS{B0PtHqh|KW?8SG5EVKpviU?z0zx0YTT7B)*+yux$SVL-=`Fx za;$hu{0z0mjz)-u7DI{Y{FM}}POP$-_KH(c$4{!%C6dz<>|}nSJAW^0cArW|`dGI) zc&uVhpDs;MRvt$yb?=HNJ~LVS`+G)2!rY~KHQDgkF-GzuR%EehQ*?{O8ixpod8v80^W(vf>;z#LAH%&}IRo@{pZ9+0M=Kr%h2Nv|$tTo2sweH2n_)5?Qbm3rB$p&eM0(@s zxc+eb{+eR*J84FHqPWl+eNm{^hFL^G@B-(2WUd2JKod# zDG^$*n8PWYk*I#iAbZ%ID1tg|urN2Lll<{!d?-qcf>0P(HFZakd?MtUB%~*ybvRU=#49m34Fs+5V;u$@jwUmmhieKbJ694 zmp|qmtrg#GY+MYh=gyzuleQhV59sS;IQ>3nd=Kk|TQ(}q$IuLZZVTDc;ip+%VL9BF z{K?q)LyKW-MbTI;=|{y&ljy`eceRJ$F$$PaSx^){^qKG+x7gm>XE1d#qKjT zbZM_Hy_7*9uYpOB;3y!zt&kXe_KTP=>&y@f z_G+H0@s);SBl7A{W$eXPuB?D}3TJ)4Umc0ol1i(`TzZTfg_JxTvKC(u)`N#2aSh{R zB1Uag@?7LW?g(8mreI2xmdyzN&`|g8I zIx64!@3jWB|KnZDR~5{sfJ`1RjUwtj4Eq}S5YDnz%jwG|#88EN+p z{ofZ6-!*k~vMMWGzxrQB$Hf1XmuJ)9bL`sZ27%^(KlC9hN!Z@g!qojdKR^F?1AfEU z%8Je4H;9-1`xWhaK0e}k`T1&ETBCY8ItMf8ch7b7_3J*Op62sslK+2brRwk_EBc7- cKTYR^#jgX^KP*T&U4lRNWgp5EAxr}PKMJHT)&Kwi literal 0 HcmV?d00001 From 474f7ee3fdbbd949f55d68d8f5b2387dcf746e0f Mon Sep 17 00:00:00 2001 From: nstickney Date: Thu, 23 Feb 2017 22:24:32 -0600 Subject: [PATCH 035/190] initial layer of familiar layout) --- keyboards/ergodox/keymaps/familiar/keymap.c | 104 +++++++++++++------- 1 file changed, 67 insertions(+), 37 deletions(-) diff --git a/keyboards/ergodox/keymaps/familiar/keymap.c b/keyboards/ergodox/keymaps/familiar/keymap.c index 7cd81a87c51..3688eb1fcec 100644 --- a/keyboards/ergodox/keymaps/familiar/keymap.c +++ b/keyboards/ergodox/keymaps/familiar/keymap.c @@ -3,42 +3,82 @@ #include "action_layer.h" #include "version.h" - -#include "keymap_german.h" - -#include "keymap_nordic.h" - - +#define BASE 0 // default layer +//#define FUNC 1 // function, media, arrow keys +//#define NUMP 2 // numpad +//#define INTL 3 // international symbols enum custom_keycodes { PLACEHOLDER = SAFE_RANGE, // can always be here EPRM, VRSN, - RGB_SLD, - + RGB_SLD }; const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - - [0] = KEYMAP(KC_ESCAPE,KC_1,KC_2,KC_3,KC_4,KC_5,KC_MINUS,KC_DELETE,KC_Q,KC_W,KC_E,KC_R,KC_T,KC_HOME,KC_TAB,KC_A,KC_S,KC_D,KC_F,KC_G,KC_LSPO,KC_Z,KC_X,KC_C,KC_V,KC_B,KC_END,CTL_T(KC_LGUI),KC_APPLICATION,KC_GRAVE,KC_QUOTE,KC_BSLASH,KC_AUDIO_VOL_DOWN,KC_AUDIO_VOL_UP,KC_AUDIO_MUTE,ALT_T(KC_SPACE),MO(1),KC_RALT,KC_KP_PLUS,KC_6,KC_7,KC_8,KC_9,KC_0,KC_PSCREEN,KC_PGUP,KC_Y,KC_U,KC_I,KC_O,KC_P,KC_BSPACE,KC_H,KC_J,KC_K,KC_L,KC_SCOLON,KC_ENTER,KC_PGDOWN,KC_N,KC_M,KC_COMMA,KC_DOT,KC_KP_SLASH,KC_RSPC,KC_LBRACKET,KC_RBRACKET,KC_TRANSPARENT,KC_APPLICATION,CTL_T(KC_RGUI),KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_RALT,MO(1),ALT_T(KC_SPACE)), - - [1] = KEYMAP(M(0),KC_F1,KC_F2,KC_F3,KC_F4,KC_F5,KC_F11,KC_PAUSE,KC_TRANSPARENT,KC_TRANSPARENT,KC_UP,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_LEFT,KC_DOWN,KC_RIGHT,KC_TRANSPARENT,KC_TRANSPARENT,KC_MEDIA_PREV_TRACK,KC_MEDIA_STOP,KC_MEDIA_PLAY_PAUSE,KC_MEDIA_NEXT_TRACK,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_F12,KC_F6,KC_F7,KC_F8,KC_F9,KC_F10,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_INSERT,KC_LEFT,KC_DOWN,KC_UP,KC_RIGHT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT), - +/* Keymap 0: Basic layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | ESC | 1 | 2 | 3 | 4 | 5 | - | | = | 6 | 7 | 8 | 9 | 0 | SYSREQ | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | DEL | Q | W | E | R | T | HOME | | PGUP | Y | U | I | O | P | BKSP | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | TAB | A | S | D | F | G |------| |------| H | J | K | L | ; | ENTER | + * |--------+------+------+------+------+------| END | | PGDN |------+------+------+------+------+--------| + * | (/LSFT | Z | X | C | V | B | | | | N | M | , | . | / | )/RSFT | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * |LGUI/LCTRL|MENU| ` | ' | CAPS | | [ | ] | \ |MENU|RGUI/RCTRL| + * `------------------------------------' `------------------------------------' + * ,-------------. ,-------------. + * | VOL- | VOL+ | | BRT- | BRT+ | + * ,------|------|------| |------+------+------. + * | ALT/ | | MUTE | | NUM | | ALT/ | + * | SPC | LAY1 |------| |------| LAY1 | SPC | + * | | | LAY3 | | LAY2 | | | + * `--------------------' `--------------------' + */ +// 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_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_MINS, + KC_DEL, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_HOME, + KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, + KC_LSPO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_END, + KC_LCTL, KC_LGUI,KC_GRV, KC_QUOT,KC_CAPS, + KC_VOLD, KC_VOLU, + KC_MUTE, + ALT_T(KC_SPC), MO(BASE), MO(BASE), + // right hand + KC_EQL, KC_6, KC_7, KC_8, KC_9, KC_0, KC_SYSREQ, + KC_PGUP, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENTER, + KC_PGDN, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSPC, + KC_LBRC, KC_RBRC, KC_BSLS, KC_RGUI, KC_RCTL, + KC_VOLD, KC_VOLU, + KC_NLCK, + TT(BASE), MO(BASE), ALT_T(KC_SPC) + ), }; const uint16_t PROGMEM fn_actions[] = { - [1] = ACTION_LAYER_TAP_TOGGLE(1) + [1] = ACTION_LAYER_TAP_TOGGLE(BASE) // FN1 - Momentary Layer 1 (Function Keys) }; -// leaving this in place for compatibilty with old keymaps cloned and re-compiled. 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) { SEND_STRING (QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION); } break; + case 1: + if (record->event.pressed) { // For resetting EEPROM + eeconfig_init(); + } + break; } return MACRO_NONE; }; @@ -60,15 +100,23 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { break; case RGB_SLD: if (record->event.pressed) { - rgblight_mode(1); + #ifdef RGBLIGHT_ENABLE + rgblight_mode(1); + #endif } return false; break; - } return true; } +// 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); @@ -78,33 +126,15 @@ void matrix_scan_user(void) { 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; - case 3: - ergodox_right_led_3_on(); - break; - case 4: - ergodox_right_led_1_on(); - ergodox_right_led_2_on(); - break; - case 5: - ergodox_right_led_1_on(); - ergodox_right_led_3_on(); - break; - case 6: - ergodox_right_led_2_on(); - ergodox_right_led_3_on(); - break; - case 7: - ergodox_right_led_1_on(); - ergodox_right_led_2_on(); - ergodox_right_led_3_on(); - break; default: + // none break; } From ebc6948e969f0785619a4caa6e0a9574388a6dab Mon Sep 17 00:00:00 2001 From: nstickney Date: Fri, 24 Feb 2017 17:11:19 -0600 Subject: [PATCH 036/190] first two layers of ErgoDox Familiar completeC --- keyboards/ergodox/keymaps/familiar/keymap.c | 68 +++++++++++++++++---- 1 file changed, 55 insertions(+), 13 deletions(-) diff --git a/keyboards/ergodox/keymaps/familiar/keymap.c b/keyboards/ergodox/keymaps/familiar/keymap.c index 3688eb1fcec..e68e77f79c5 100644 --- a/keyboards/ergodox/keymaps/familiar/keymap.c +++ b/keyboards/ergodox/keymaps/familiar/keymap.c @@ -4,7 +4,7 @@ #include "version.h" #define BASE 0 // default layer -//#define FUNC 1 // function, media, arrow keys +#define ARRW 1 // function, media, arrow keys //#define NUMP 2 // numpad //#define INTL 3 // international symbols @@ -16,53 +16,95 @@ enum custom_keycodes { }; const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +// If it accepts an argument (i.e, is a function), it doesn't need KC_. +// Otherwise, it needs KC_* /* Keymap 0: Basic layer * * ,--------------------------------------------------. ,--------------------------------------------------. * | ESC | 1 | 2 | 3 | 4 | 5 | - | | = | 6 | 7 | 8 | 9 | 0 | SYSREQ | * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - * | DEL | Q | W | E | R | T | HOME | | PGUP | Y | U | I | O | P | BKSP | + * | DEL | Q | W | E | R | T | HOME | | PGUP | Y | U | I | O | P | BKSP | * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| * | TAB | A | S | D | F | G |------| |------| H | J | K | L | ; | ENTER | * |--------+------+------+------+------+------| END | | PGDN |------+------+------+------+------+--------| * | (/LSFT | Z | X | C | V | B | | | | N | M | , | . | / | )/RSFT | * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * |LGUI/LCTRL|MENU| ` | ' | CAPS | | [ | ] | \ |MENU|RGUI/RCTRL| + * | LCTRL | LGUI | ` | ' |PRTSCR| | [ | ] | \ | RGUI | RCTRL | * `------------------------------------' `------------------------------------' * ,-------------. ,-------------. * | VOL- | VOL+ | | BRT- | BRT+ | * ,------|------|------| |------+------+------. - * | ALT/ | | MUTE | | NUM | | ALT/ | + * | ALT/ | | MUTE | | NUMLK| | ALT/ | * | SPC | LAY1 |------| |------| LAY1 | SPC | - * | | | LAY3 | | LAY2 | | | + * | | | LAY3 | |TTLAY2| | | * `--------------------' `--------------------' */ -// 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_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_MINS, KC_DEL, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_HOME, KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_LSPO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_END, - KC_LCTL, KC_LGUI,KC_GRV, KC_QUOT,KC_CAPS, - KC_VOLD, KC_VOLU, + KC_LCTL, KC_LGUI,KC_GRV, KC_QUOT,KC_PSCR, + KC_VOLD, KC_VOLU, KC_MUTE, - ALT_T(KC_SPC), MO(BASE), MO(BASE), + ALT_T(KC_SPC), MO(ARRW), TT(BASE), // right hand KC_EQL, KC_6, KC_7, KC_8, KC_9, KC_0, KC_SYSREQ, KC_PGUP, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENTER, KC_PGDN, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSPC, KC_LBRC, KC_RBRC, KC_BSLS, KC_RGUI, KC_RCTL, - KC_VOLD, KC_VOLU, + KC_VOLD, KC_VOLU, KC_NLCK, - TT(BASE), MO(BASE), ALT_T(KC_SPC) + TT(BASE), MO(ARRW), ALT_T(KC_SPC) + ), + +/* Keymap 0: Basic layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | F1 | F2 | F3 | F4 | F5 | F11 | | F12 | F6 | F7 | F8 | F9 | F10 | | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | | | UP | | | | | | | | | | | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | LEFT | DOWN |RIGHT | |------| |------| LEFT | DOWN | UP | RIGHT| | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | |M_PREV|M_STOP|M_PLPS|M_NEXT| | | | | | | | | | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | | | | | | | | | + * `------------------------------------' `------------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | | | + * | | |------| |------| | | + * | | | | | | | | + * `--------------------' `--------------------' + */ +[ARRW] = KEYMAP(// layer 1 : functions and arrows + // left hand + KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F11, + KC_TRNS, KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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_F12, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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[] = { - [1] = ACTION_LAYER_TAP_TOGGLE(BASE) // FN1 - Momentary Layer 1 (Function Keys) + [1] = ACTION_LAYER_TAP_TOGGLE(ARRW) // FN1 - Momentary Layer 1 (Function Keys) }; const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) From b69b214d524bb658152c5b2491cb270b8464aeb4 Mon Sep 17 00:00:00 2001 From: nstickney Date: Sat, 25 Feb 2017 22:04:21 -0600 Subject: [PATCH 037/190] making numbers more familiar --- keyboards/ergodox/keymaps/familiar/keymap.c | 226 ++++++++++++-------- 1 file changed, 132 insertions(+), 94 deletions(-) diff --git a/keyboards/ergodox/keymaps/familiar/keymap.c b/keyboards/ergodox/keymaps/familiar/keymap.c index e68e77f79c5..e79e9610923 100644 --- a/keyboards/ergodox/keymaps/familiar/keymap.c +++ b/keyboards/ergodox/keymaps/familiar/keymap.c @@ -5,8 +5,10 @@ #define BASE 0 // default layer #define ARRW 1 // function, media, arrow keys -//#define NUMP 2 // numpad -//#define INTL 3 // international symbols +#define NUMP 2 // numpad +#define INTL 3 // international symbols + +#define _______ KC_TRNS // Make the layouts easier to read enum custom_keycodes { PLACEHOLDER = SAFE_RANGE, // can always be here @@ -18,58 +20,100 @@ enum custom_keycodes { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // If it accepts an argument (i.e, is a function), it doesn't need KC_. // Otherwise, it needs KC_* -/* Keymap 0: Basic layer +/* layer 0 : default * * ,--------------------------------------------------. ,--------------------------------------------------. - * | ESC | 1 | 2 | 3 | 4 | 5 | - | | = | 6 | 7 | 8 | 9 | 0 | SYSREQ | + * | ESC | 1 | 2 | 3 | 4 | 5 | 6 | | 7 | 8 | 9 | 0 | - | = | BCKSPC | * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - * | DEL | Q | W | E | R | T | HOME | | PGUP | Y | U | I | O | P | BKSP | + * | TAB | Q | W | E | R | T | HOME | | PGUP | Y | U | I | O | P | DELETE | * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | TAB | A | S | D | F | G |------| |------| H | J | K | L | ; | ENTER | + * | INSERT | A | S | D | F | G |------| |------| H | J | K | L | ; | ENTER | * |--------+------+------+------+------+------| END | | PGDN |------+------+------+------+------+--------| * | (/LSFT | Z | X | C | V | B | | | | N | M | , | . | / | )/RSFT | * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * | LCTRL | LGUI | ` | ' |PRTSCR| | [ | ] | \ | RGUI | RCTRL | + * | LCTRL | LGUI | | ' |PRTSCR| | [ | ] | \ | RGUI | RCTRL | * `------------------------------------' `------------------------------------' * ,-------------. ,-------------. * | VOL- | VOL+ | | BRT- | BRT+ | * ,------|------|------| |------+------+------. * | ALT/ | | MUTE | | NUMLK| | ALT/ | * | SPC | LAY1 |------| |------| LAY1 | SPC | - * | | | LAY3 | |TTLAY2| | | + * | | | LAY3 | | LAY2 | | | * `--------------------' `--------------------' */ -[BASE] = KEYMAP( // layer 0 : default +[BASE] = KEYMAP( // left hand - KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_MINS, - KC_DEL, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_HOME, - KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, - KC_LSPO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_END, - KC_LCTL, KC_LGUI,KC_GRV, KC_QUOT,KC_PSCR, - KC_VOLD, KC_VOLU, - KC_MUTE, - ALT_T(KC_SPC), MO(ARRW), TT(BASE), + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_HOME, + KC_INS, KC_A, KC_S, KC_D, KC_F, KC_G, + KC_LSPO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_END, + KC_LCTL, KC_LGUI, _______, KC_QUOT, KC_PSCR, + KC_VOLD, KC_VOLU, + KC_MUTE, + ALT_T(KC_SPC), MO(ARRW), TG(INTL), // right hand - KC_EQL, KC_6, KC_7, KC_8, KC_9, KC_0, KC_SYSREQ, - KC_PGUP, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, - KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENTER, - KC_PGDN, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSPC, - KC_LBRC, KC_RBRC, KC_BSLS, KC_RGUI, KC_RCTL, + KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, + KC_PGUP, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL, + KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENTER, + KC_PGDN, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSPC, + KC_LBRC, KC_RBRC, KC_BSLS, KC_RGUI, KC_RCTL, KC_VOLD, KC_VOLU, KC_NLCK, - TT(BASE), MO(ARRW), ALT_T(KC_SPC) + TG(NUMP), MO(ARRW), ALT_T(KC_SPC) ), -/* Keymap 0: Basic layer +/* layer 1 : functions and arrows * * ,--------------------------------------------------. ,--------------------------------------------------. - * | | F1 | F2 | F3 | F4 | F5 | F11 | | F12 | F6 | F7 | F8 | F9 | F10 | | + * | SYSREQ | F1 | F2 | F3 | F4 | F5 | F6 | | F7 | F8 | F9 | F10 | F11 | F12 | PAUSE | * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| * | | | | UP | | | | | | | | | | | | * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| * | | | LEFT | DOWN |RIGHT | |------| |------| LEFT | DOWN | UP | RIGHT| | | * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | |M_PREV|M_STOP|M_PLPS|M_NEXT| | | | | | | | | | | + * | |M_PREV|M_STOP|M_PLPS|M_NEXT| | | | | | | | | UP | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | | | | | | LEFT | DOWN | RIGHT | + * `------------------------------------' `------------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | | | + * | | |------| |------| | | + * | | | | | | | | + * `--------------------' `--------------------' + */ +[ARRW] = KEYMAP( + // left hand + KC_SYSREQ, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, + _______, _______, _______, KC_UP, _______, _______, _______, + _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, + _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, + _______, _______, + _______, + _______, _______, _______, + // right hand + KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PAUSE, + _______, _______, _______, _______, _______, _______, _______, + KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, _______, + _______, _______, _______, _______, _______, KC_UP, _______, + _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, + _______, _______, + _______, + _______, _______, _______ + ), + +/* layer 2 : numberpad + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | | | | | | | | | | | | | | | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | | | | | | | | | | | | | | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | | | |------| |------| | | | | | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | | | | | | | | | | | | | * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' * | | | | | | | | | | | | * `------------------------------------' `------------------------------------' @@ -81,83 +125,75 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | | | | | * `--------------------' `--------------------' */ -[ARRW] = KEYMAP(// layer 1 : functions and arrows +[NUMP] = KEYMAP( // left hand - KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F11, - KC_TRNS, KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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_F12, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, - KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS + _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, + _______, _______, + _______, + _______, _______, _______ + ), + +/* layer 3: International symbols, etc + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | | | | | | | | | | | | | | | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | | | | | | | | | | | | | | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | | | |------| |------| | | | | | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | | | | | | | | | | | | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | | | | | | | | | + * `------------------------------------' `------------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | | | + * | | |------| |------| | | + * | | | | | | | | + * `--------------------' `--------------------' + */ +[INTL] = KEYMAP( + // left hand + _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, + _______, _______, + _______, + _______, _______, _______, + // right hand + _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, + _______, _______, + _______, + _______, _______, _______ ), }; -const uint16_t PROGMEM fn_actions[] = { - [1] = ACTION_LAYER_TAP_TOGGLE(ARRW) // FN1 - Momentary Layer 1 (Function Keys) -}; - -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) { - SEND_STRING (QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION); - } - break; - case 1: - if (record->event.pressed) { // For resetting EEPROM - eeconfig_init(); - } - break; - } - return MACRO_NONE; -}; - -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - switch (keycode) { - // dynamically generate these. - case EPRM: - if (record->event.pressed) { - eeconfig_init(); - } - return false; - break; - case VRSN: - if (record->event.pressed) { - SEND_STRING (QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION); - } - return false; - break; - case RGB_SLD: - if (record->event.pressed) { - #ifdef RGBLIGHT_ENABLE - rgblight_mode(1); - #endif - } - return false; - break; - } - return true; -} - // 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) { @@ -168,13 +204,15 @@ void matrix_scan_user(void) { 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; + case 3: + ergodox_right_led_3_on(); + break; default: // none break; From 871ac5058acb413a3393a54cb5b33f0b52c630cf Mon Sep 17 00:00:00 2001 From: Xyverz Date: Sun, 26 Feb 2017 19:45:57 -0800 Subject: [PATCH 038/190] Minor changes to the keymap: Moved thumb-cluster ESC to Media and Keypad layers --- keyboards/kinesis/keymaps/xyverz/keymap.c | 30 +++++++++++------------ 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/keyboards/kinesis/keymaps/xyverz/keymap.c b/keyboards/kinesis/keymaps/xyverz/keymap.c index f3184c140dc..39b835b53e7 100644 --- a/keyboards/kinesis/keymaps/xyverz/keymap.c +++ b/keyboards/kinesis/keymaps/xyverz/keymap.c @@ -46,7 +46,7 @@ extern keymap_config_t keymap_config; | ` | INS | Left | Rght | | Up | Dn | / | = | `---------------------------' `---------------------------' ,--------------.,--------------. - |Ctr/ESC| LAlt || RGUI |Ctr/ESC| + | LCtl | LAlt || RGUI | RCtl | ,------|-------|------||------+-------+-------. | | Del | Home || PgUp | Enter | | | BkSp | / |------||------| / | Space | @@ -66,7 +66,7 @@ extern keymap_config_t keymap_config; | ` | INS | Left | Rght | | Up | Dn | [ | ] | `---------------------------' `---------------------------' ,--------------.,--------------. - |Ctr/ESC| LAlt || RGUI |Ctr/ESC| + | LCtl | LAlt || RGUI | RCtl | ,------|-------|------||------+-------+-------. | | Del | Home || PgUp | Enter | | | BkSp | / |------||------| / | Space | @@ -86,7 +86,7 @@ extern keymap_config_t keymap_config; | ` | INS | Left | Rght | | Up | Dn | [ | ] | `---------------------------' `---------------------------' ,--------------.,--------------. - |Ctr/ESC| LAlt || RGUI |Ctr/ESC| + | LCtl | LAlt || RGUI | RCtl | ,------|-------|------||------+-------+-------. | | Del | Home || PgUp | Enter | | | BkSp | / |------||------| / | Space | @@ -106,7 +106,7 @@ extern keymap_config_t keymap_config; | | | | | | | | | | `---------------------------' `---------------------------' ,-------------.,-------------. - | | || | | + | ESC | || | ESC | ,------|------|------||------+------+------. | | | || | | | | | |------||------| | | @@ -126,7 +126,7 @@ extern keymap_config_t keymap_config; | | | | | | | | KP . |KP Ent| | `---------------------------' `----------------------------------' ,-------------.,-------------. - | | || | | + | ESC | || | ESC | ,------|------|------||------+------+------. | | | || | | | | | |------||------| | KP 0 | @@ -145,7 +145,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_GRV, KC_INS, KC_LEFT, KC_RGHT, // Left Thumb - CTL_T(KC_ESC), KC_LALT, + KC_LCTL, KC_LALT, KC_HOME, KC_BSPC, LT(_MD, KC_DEL), KC_END, @@ -157,7 +157,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_B, KC_M, KC_W, KC_V, KC_Z, KC_RSFT, KC_UP, KC_DOWN, KC_SLSH, KC_EQL, // Right Thumb - KC_RGUI, CTL_T(KC_ESC), + KC_RGUI, KC_RCTL, KC_PGUP, KC_PGDN, LT(_KP, KC_ENT), KC_SPC ), @@ -171,7 +171,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_GRV, KC_INS, KC_LEFT, KC_RGHT, // Left Thumb - CTL_T(KC_ESC), KC_LALT, + KC_LCTL, KC_LALT, KC_HOME, KC_BSPC, LT(_MD, KC_DEL), KC_END, @@ -183,7 +183,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_DOWN, KC_LBRC, KC_RBRC, // Right Thumb - KC_RGUI, CTL_T(KC_ESC), + KC_RGUI, KC_RCTL, KC_PGUP, KC_PGDN, LT(_KP, KC_ENT), KC_SPC ), @@ -197,7 +197,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_GRV, KC_INS, KC_LEFT, KC_RGHT, // Left Thumb - CTL_T(KC_ESC), KC_LALT, + KC_LCTL, KC_LALT, KC_HOME, KC_BSPC, LT(_MD, KC_DEL), KC_END, @@ -209,7 +209,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_DOWN, KC_LBRC, KC_RBRC, // Right Thumb - KC_RGUI, CTL_T(KC_ESC), + KC_RGUI, KC_RCTL, KC_PGUP, KC_PGDN, LT(_KP, KC_ENT), KC_SPC ), @@ -223,7 +223,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, // Left Thumb - _______, _______, + KC_ESC, _______, _______, _______, _______, _______, @@ -235,7 +235,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_MSTP, KC_MPRV, KC_MPLY, KC_MNXT, KC_MSEL, _______, _______, _______, _______, _______, // Right Thumb - _______, _______, + _______, KC_ESC, _______, _______, _______, _______ ), @@ -249,7 +249,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, // Left Thumb - _______, _______, + KC_ESC, _______, _______, _______, _______, _______, @@ -261,7 +261,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, KC_P1, KC_P2, KC_P3, KC_PENT, _______, _______, _______, KC_PDOT, KC_PENT, // Right Thumb - _______, _______, + _______, KC_ESC, _______, _______, _______, KC_P0 ) From d91e09f1169ebe7611f41f3a1a80151f18ee9247 Mon Sep 17 00:00:00 2001 From: Xyverz Date: Sun, 26 Feb 2017 19:49:10 -0800 Subject: [PATCH 039/190] Updates to the README.md --- keyboards/kinesis/keymaps/xyverz/readme.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/keyboards/kinesis/keymaps/xyverz/readme.md b/keyboards/kinesis/keymaps/xyverz/readme.md index 11aedec54bb..cfd631a5b4b 100644 --- a/keyboards/kinesis/keymaps/xyverz/readme.md +++ b/keyboards/kinesis/keymaps/xyverz/readme.md @@ -34,7 +34,7 @@ I've enabled persistent keymaps for Qwerty, Dvorak and Colemak layers, similar t | ` | INS | Left | Rght | | Up | Dn | / | = | `---------------------------' `---------------------------' ,--------------.,--------------. - |Ctr/ESC| LAlt || RGUI |Ctr/ESC| + | LCtl | LAlt || RGUI | RCtl | ,------|-------|------||------+-------+-------. | | Del | Home || PgUp | Enter | | | BkSp | / |------||------| / | Space | @@ -55,7 +55,7 @@ I've enabled persistent keymaps for Qwerty, Dvorak and Colemak layers, similar t | ` | INS | Left | Rght | | Up | Dn | [ | ] | `---------------------------' `---------------------------' ,--------------.,--------------. - |Ctr/ESC| LAlt || RGUI |Ctr/ESC| + | LCtl | LAlt || RGUI | RCtl | ,------|-------|------||------+-------+-------. | | Del | Home || PgUp | Enter | | | BkSp | / |------||------| / | Space | @@ -76,7 +76,7 @@ I've enabled persistent keymaps for Qwerty, Dvorak and Colemak layers, similar t | ` | INS | Left | Rght | | Up | Dn | [ | ] | `---------------------------' `---------------------------' ,--------------.,--------------. - |Ctr/ESC| LAlt || RGUI |Ctr/ESC| + | LCtl | LAlt || RGUI | RCtl | ,------|-------|------||------+-------+-------. | | Del | Home || PgUp | Enter | | | BkSp | / |------||------| / | Space | @@ -97,7 +97,7 @@ I've enabled persistent keymaps for Qwerty, Dvorak and Colemak layers, similar t | | | | | | | | | | `---------------------------' `---------------------------' ,-------------.,-------------. - | | || | | + | ESC | || | ESC | ,------|------|------||------+------+------. | | | || | | | | | |------||------| | | @@ -120,7 +120,7 @@ I've enabled persistent keymaps for Qwerty, Dvorak and Colemak layers, similar t | | | | | | | | KP . |KP Ent| | `---------------------------' `----------------------------------' ,-------------.,-------------. - | | || | | + | ESC | || | ESC | ,------|------|------||------+------+------. | | | || | | | | | |------||------| | KP 0 | From 68808b22c09c020e33287480fc9c1ed9f42af059 Mon Sep 17 00:00:00 2001 From: Xyverz Date: Fri, 3 Mar 2017 19:27:24 -0800 Subject: [PATCH 040/190] Final tweaks to my Kinesis keymap and readme --- keyboards/kinesis/keymaps/xyverz/keymap.c | 21 ++++++--------------- keyboards/kinesis/keymaps/xyverz/readme.md | 14 +++++++------- 2 files changed, 13 insertions(+), 22 deletions(-) diff --git a/keyboards/kinesis/keymaps/xyverz/keymap.c b/keyboards/kinesis/keymaps/xyverz/keymap.c index 39b835b53e7..62f47773c70 100644 --- a/keyboards/kinesis/keymaps/xyverz/keymap.c +++ b/keyboards/kinesis/keymaps/xyverz/keymap.c @@ -19,10 +19,6 @@ extern keymap_config_t keymap_config; #define _______ KC_TRNS #define XXXXXXX KC_NO -// Fillers to make layering more clear -#define _______ KC_TRNS -#define XXXXXXX KC_NO - /* Function Keys on All Layers (Keypad toggles): @@ -106,7 +102,7 @@ extern keymap_config_t keymap_config; | | | | | | | | | | `---------------------------' `---------------------------' ,-------------.,-------------. - | ESC | || | ESC | + | | || | | ,------|------|------||------+------+------. | | | || | | | | | |------||------| | | @@ -126,7 +122,7 @@ extern keymap_config_t keymap_config; | | | | | | | | KP . |KP Ent| | `---------------------------' `----------------------------------' ,-------------.,-------------. - | ESC | || | ESC | + | | || | | ,------|------|------||------+------+------. | | | || | | | | | |------||------| | KP 0 | @@ -223,7 +219,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, // Left Thumb - KC_ESC, _______, + _______, _______, _______, _______, _______, _______, @@ -235,7 +231,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_MSTP, KC_MPRV, KC_MPLY, KC_MNXT, KC_MSEL, _______, _______, _______, _______, _______, // Right Thumb - _______, KC_ESC, + _______, _______, _______, _______, _______, _______ ), @@ -249,7 +245,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, // Left Thumb - KC_ESC, _______, + _______, _______, _______, _______, _______, _______, @@ -261,7 +257,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, KC_P1, KC_P2, KC_P3, KC_PENT, _______, _______, _______, KC_PDOT, KC_PENT, // Right Thumb - _______, KC_ESC, + _______, _______, _______, _______, _______, KC_P0 ) @@ -304,8 +300,3 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) void matrix_init_user(void) { }; - -// Runs constantly in the background, in a loop. -void matrix_scan_user(void) { - -}; diff --git a/keyboards/kinesis/keymaps/xyverz/readme.md b/keyboards/kinesis/keymaps/xyverz/readme.md index cfd631a5b4b..a10d7c2ba83 100644 --- a/keyboards/kinesis/keymaps/xyverz/readme.md +++ b/keyboards/kinesis/keymaps/xyverz/readme.md @@ -14,10 +14,10 @@ I've enabled persistent keymaps for Qwerty, Dvorak and Colemak layers, similar t ### Function Keys on All Layers (keypad toggles): ,-----------------------------------------------------------------. - | ESC | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | + | Esc | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | `-----------------------------------------------------------------' ,-----------------------------------------------------------------. - | F9 | F10 | F11 | F12 | PScr | SLck | Paus | Keypad | RESET | + | F9 | F10 | F11 | F12 | PScr | SLck | Paus | Keypad | Reset | `-----------------------------------------------------------------' ### Layer 0: Dvorak layer @@ -31,7 +31,7 @@ I've enabled persistent keymaps for Qwerty, Dvorak and Colemak layers, similar t |--------+------+------+------+------+------||------+------+------+------+------+--------| | LShift | Z | X | C | V | X || B | M | W | V | Z | RShift | `--------+------+------+------+------+------'`------+------+------+------+------+--------' - | ` | INS | Left | Rght | | Up | Dn | / | = | + | ` | Ins | Left | Rght | | Up | Dn | / | = | `---------------------------' `---------------------------' ,--------------.,--------------. | LCtl | LAlt || RGUI | RCtl | @@ -52,7 +52,7 @@ I've enabled persistent keymaps for Qwerty, Dvorak and Colemak layers, similar t |--------+------+------+------+------+------||------+------+------+------+------+--------| | LShift | Z | X | C | V | B || N | M | , | . | / | RShift | `--------+------+------+------+------+------'`------+------+------+------+------+--------' - | ` | INS | Left | Rght | | Up | Dn | [ | ] | + | ` | Ins | Left | Rght | | Up | Dn | [ | ] | `---------------------------' `---------------------------' ,--------------.,--------------. | LCtl | LAlt || RGUI | RCtl | @@ -73,7 +73,7 @@ I've enabled persistent keymaps for Qwerty, Dvorak and Colemak layers, similar t |--------+------+------+------+------+------||------+------+------+------+------+--------| | LShift | Z | X | C | V | B || K | M | , | . | / | RShift | `--------+------+------+------+------+------'`------+------+------+------+------+--------' - | ` | INS | Left | Rght | | Up | Dn | [ | ] | + | ` | Ins | Left | Rght | | Up | Dn | [ | ] | `---------------------------' `---------------------------' ,--------------.,--------------. | LCtl | LAlt || RGUI | RCtl | @@ -97,7 +97,7 @@ I've enabled persistent keymaps for Qwerty, Dvorak and Colemak layers, similar t | | | | | | | | | | `---------------------------' `---------------------------' ,-------------.,-------------. - | ESC | || | ESC | + | | || | | ,------|------|------||------+------+------. | | | || | | | | | |------||------| | | @@ -120,7 +120,7 @@ I've enabled persistent keymaps for Qwerty, Dvorak and Colemak layers, similar t | | | | | | | | KP . |KP Ent| | `---------------------------' `----------------------------------' ,-------------.,-------------. - | ESC | || | ESC | + | | || | | ,------|------|------||------+------+------. | | | || | | | | | |------||------| | KP 0 | From 7e518e1d8fc405934655264153486b9c61e4d93f Mon Sep 17 00:00:00 2001 From: Kenichi Sasaki Date: Sat, 4 Mar 2017 23:56:58 +0900 Subject: [PATCH 041/190] fix again --- keyboards/ergodox/keymaps/siroken3/keymap.c | 153 +++++++------------- 1 file changed, 55 insertions(+), 98 deletions(-) diff --git a/keyboards/ergodox/keymaps/siroken3/keymap.c b/keyboards/ergodox/keymaps/siroken3/keymap.c index e3717f726f8..c86c608449f 100644 --- a/keyboards/ergodox/keymaps/siroken3/keymap.c +++ b/keyboards/ergodox/keymaps/siroken3/keymap.c @@ -1,111 +1,99 @@ +// Netable differences vs. the default firmware for the ErgoDox EZ: +// 1. The Cmd key is now on the right side, making Cmd+Space easier. +// 2. The media keys work on OSX (But not on Windows). #include "ergodox.h" #include "debug.h" #include "action_layer.h" -#include "version.h" #define BASE 0 // default layer #define SYMB 1 // symbols #define MDIA 2 // media keys -#define JS_COLN KC_QUOT // : and + -#define JS_AT KC_LBRC // @ and ` -#define JS_HAT KC_EQL // ^ and ~ -#define JS_ENUN KC_RO // \ and _ -#define JS_ENVL KC_JYEN // \ and | -#define JS_LBRC KC_RBRC // [ and { -#define JS_RBRC KC_BSLS // ] and } - -enum custom_keycodes { - PLACEHOLDER = SAFE_RANGE, // can always be here - EPRM, - VRSN, - RGB_SLD -}; - const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Keymap 0: Basic layer * - * ,--------------------------------------------------. ,-----------------------------------------------------. - * | ESC | 1 | 2 | 3 | 4 | 5 | LEFT | | RIGHT| 6 | 7 | 8 | 9 | 0 | [{ | - * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+-----------| - * | Tab | Q | W | E | R | T | L1 | | L1 | Y | U | I | O | P | ]} | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+-----------| - * | Ctrl | A | S | D | F | G |------| |------| H | J | K | L |; / L2|: * / Cmd | - * |--------+------+------+------+------+------| Hyper| | Meh |------+------+------+------+------+-----------| - * | LShift |Z/Ctrl| X | C | V | B | | | | N | M | , | . |/ Ctrl|\ _ / Shift| - * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+-----------' - * | ^ ~ | '" |AltShf| Left | Right| | [ | ] | | | - | @ ` | + * ,--------------------------------------------------. ,--------------------------------------------------. + * | = | 1 | 2 | 3 | 4 | 5 | LEFT | | RIGHT| 6 | 7 | 8 | 9 | 0 | - | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | Tab | Q | W | E | R | T | L1 | | L1 | Y | U | I | O | P | \ | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | LCtl | A | S | D | F | G |------| |------| H | J | K | L |; / L2| LGui | + * |--------+------+------+------+------+------| BkSp | | Meh |------+------+------+------+------+--------| + * | LShift |Z/Ctrl| X | C | V | B | | | | N | M | , | . |//Ctrl| RShift | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * |Grv/L1| '" |AltShf| Left | Right| | Up | Down | [ | ] | ~L1 | * `----------------------------------' `----------------------------------' - * ,-------------. ,-------------. + * ,-------------. ,---------------. * | App | LGui | | Alt |Ctrl/Esc| * ,------|------|------| |------+--------+------. * | | | Home | | PgUp | | | - * | Space|Backsp|------| |------| Tab |Enter | - * | |ace | End | | Esc | | | + * | Space|LANG1 |------| |------|LANG2 |Enter | + * | /LGui| | 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_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_LEFT, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, TG(SYMB), - KC_LCTL, 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), - JS_HAT, KC_QUOT, LALT(KC_LSFT), KC_LEFT,KC_RGHT, + KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_LEFT, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, TG(SYMB), + KC_LCTRL, KC_A, KC_S, KC_D, KC_F, KC_G, + KC_LSFT, CTL_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_BSPC, + LT(SYMB,KC_GRV),KC_QUOT, LALT(KC_LSFT), KC_LEFT,KC_RGHT, ALT_T(KC_APP), KC_LGUI, KC_HOME, - KC_SPC,KC_BSPC,KC_END, + MT(MOD_LGUI, KC_SPC),KC_LANG1,KC_END, // right hand - KC_RGHT, KC_6, KC_7, KC_8, KC_9, KC_0, JS_LBRC, - TG(SYMB), KC_Y, KC_U, KC_I, KC_O, KC_P, JS_RBRC, - KC_H, KC_J, KC_K, KC_L, LT(MDIA, KC_SCLN), GUI_T(JS_COLN), - MEH_T(KC_NO),KC_N, KC_M, KC_COMM, KC_DOT, CTL_T(KC_SLSH), SFT_T(JS_ENUN), - JS_LBRC, JS_RBRC, S(JS_ENVL), KC_MINUS, JS_AT, + 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, LT(MDIA, KC_SCLN),KC_LGUI, + MEH_T(KC_NO),KC_N, KC_M, KC_COMM,KC_DOT, CTL_T(KC_SLSH), KC_RSFT, + KC_UP, KC_DOWN,KC_LBRC,KC_RBRC, KC_FN1, KC_LALT, CTL_T(KC_ESC), KC_PGUP, - KC_ESC, KC_KANA, KC_ENT ), + KC_PGDN,KC_LANG2, KC_ENT + ), /* Keymap 1: Symbol Layer * - * ,---------------------------------------------------. ,--------------------------------------------------. - * |Version | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 | - * |---------+------+------+------+------+------+------| |------+------+------+------+------+------+--------| - * | | ! | @ | { | } | | | | | | Up | 7 | 8 | 9 | * | F12 | - * |---------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | # | $ | ( | ) | ` |------| |------| Down | 4 | 5 | 6 | + | | - * |---------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | % | ^ | [ | ] | ~ | | | | & | 1 | 2 | 3 | \ | | - * `---------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * | EPRM | | | | | | 0 | . |Enter | = | | - * `-----------------------------------' `----------------------------------' + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | ! | @ | { | } | | | | | | Up | 7 | 8 | 9 | * | F12 | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | # | $ | ( | ) | ` |------| |------| Down | 4 | 5 | 6 | + | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | % | ^ | [ | ] | ~ | | | | & | 1 | 2 | 3 | \ | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | | | | | . | 0 | = | | + * `----------------------------------' `----------------------------------' * ,-------------. ,-------------. - * |Animat| | |Toggle|Solid | + * | | | | | | * ,------|------|------| |------+------+------. - * |Bright|Bright| | | |Hue- |Hue+ | - * |ness- |ness+ |------| |------| | | + * | | | | | | | | + * | | |------| |------| | | * | | | | | | | | * `--------------------' `--------------------' */ // SYMBOLS [SYMB] = KEYMAP( // left hand - VRSN, 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_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, - EPRM,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, - RGB_MOD,KC_TRNS, + KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, + KC_TRNS,KC_TRNS, KC_TRNS, - RGB_VAD,RGB_VAI,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_0, KC_DOT, KC_ENTER,KC_EQL, KC_TRNS, - RGB_TOG, RGB_SLD, + KC_TRNS,KC_DOT, KC_0, KC_EQL, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, RGB_HUD, RGB_HUI + KC_TRNS, KC_TRNS, KC_TRNS ), /* Keymap 2: Media and mouse keys * @@ -114,7 +102,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| * | | | | MsUp | | | | | | | | | | | | * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | REST | |MsLeft|MsDown|MsRght| |------| |------| | | | | | Play | + * | | |MsLeft|MsDown|MsRght| |------| |------| | | | | | Play | * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| * | | | | | | | | | | | | Prev | Next | | | * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' @@ -132,7 +120,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [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_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_BTN1, KC_BTN2, KC_TRNS, KC_TRNS, @@ -160,51 +148,20 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) switch(id) { case 0: if (record->event.pressed) { - SEND_STRING (QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION); - } - break; - case 1: - if (record->event.pressed) { // For resetting EEPROM - eeconfig_init(); + register_code(KC_RSFT); + } else { + unregister_code(KC_RSFT); } break; } return MACRO_NONE; }; -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - switch (keycode) { - // dynamically generate these. - case EPRM: - if (record->event.pressed) { - eeconfig_init(); - } - return false; - break; - case VRSN: - if (record->event.pressed) { - SEND_STRING (QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION); - } - return false; - break; - case RGB_SLD: - if (record->event.pressed) { - #ifdef RGBLIGHT_ENABLE - rgblight_mode(1); - #endif - } - return false; - break; - } - return true; -} - // 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) { From fbbf618a46efad60da0724211145f9e9401b96b4 Mon Sep 17 00:00:00 2001 From: Xyverz Date: Sun, 5 Mar 2017 03:48:10 -0800 Subject: [PATCH 042/190] Removed preceeding underscore from MASTER_RIGHT in config.h --- keyboards/lets_split/keymaps/xyverz/config.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/keyboards/lets_split/keymaps/xyverz/config.h b/keyboards/lets_split/keymaps/xyverz/config.h index 87808a97a8e..1b5be030ec7 100644 --- a/keyboards/lets_split/keymaps/xyverz/config.h +++ b/keyboards/lets_split/keymaps/xyverz/config.h @@ -19,7 +19,7 @@ along with this program. If not, see . #define USE_SERIAL #define MASTER_LEFT -// #define _MASTER_RIGHT +// #define MASTER_RIGHT // #define EE_HANDS #ifdef SUBPROJECT_rev1 From fec3b78d786ab5fe68c639029a38c713478759e7 Mon Sep 17 00:00:00 2001 From: Kenichi Sasaki Date: Sun, 5 Mar 2017 21:49:41 +0900 Subject: [PATCH 043/190] fix backspace key position. --- keyboards/ergodox/keymaps/siroken3/keymap.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/keyboards/ergodox/keymaps/siroken3/keymap.c b/keyboards/ergodox/keymaps/siroken3/keymap.c index c86c608449f..258f122b48c 100644 --- a/keyboards/ergodox/keymaps/siroken3/keymap.c +++ b/keyboards/ergodox/keymaps/siroken3/keymap.c @@ -24,7 +24,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |Grv/L1| '" |AltShf| Left | Right| | Up | Down | [ | ] | ~L1 | * `----------------------------------' `----------------------------------' * ,-------------. ,---------------. - * | App | LGui | | Alt |Ctrl/Esc| + * | BkSp | LGui | | Alt |Ctrl/Esc| * ,------|------|------| |------+--------+------. * | | | Home | | PgUp | | | * | Space|LANG1 |------| |------|LANG2 |Enter | @@ -40,7 +40,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTRL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_LSFT, CTL_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_BSPC, LT(SYMB,KC_GRV),KC_QUOT, LALT(KC_LSFT), KC_LEFT,KC_RGHT, - ALT_T(KC_APP), KC_LGUI, + KC_BSPC, KC_LGUI, KC_HOME, MT(MOD_LGUI, KC_SPC),KC_LANG1,KC_END, // right hand From 4880e72b77cd934dfc2e9ae4397bd7466ca002e5 Mon Sep 17 00:00:00 2001 From: nstickney Date: Tue, 7 Mar 2017 22:30:43 -0600 Subject: [PATCH 044/190] SLASH and WHACK functions added (based on algernon's CT_TA) --- keyboards/ergodox/config.h | 2 +- keyboards/ergodox/keymaps/familiar/Makefile | 5 + keyboards/ergodox/keymaps/familiar/config.h | 37 +++++ keyboards/ergodox/keymaps/familiar/keymap.c | 146 +++++++++++++++----- 4 files changed, 157 insertions(+), 33 deletions(-) create mode 100644 keyboards/ergodox/keymaps/familiar/Makefile create mode 100644 keyboards/ergodox/keymaps/familiar/config.h diff --git a/keyboards/ergodox/config.h b/keyboards/ergodox/config.h index 36185983206..994a8c64333 100644 --- a/keyboards/ergodox/config.h +++ b/keyboards/ergodox/config.h @@ -34,4 +34,4 @@ #endif -#endif /* KEYBOARDS_ERGODOX_CONFIG_H_ */ \ No newline at end of file +#endif /* KEYBOARDS_ERGODOX_CONFIG_H_ */ diff --git a/keyboards/ergodox/keymaps/familiar/Makefile b/keyboards/ergodox/keymaps/familiar/Makefile new file mode 100644 index 00000000000..f795271f0ad --- /dev/null +++ b/keyboards/ergodox/keymaps/familiar/Makefile @@ -0,0 +1,5 @@ +TAP_DANCE_ENABLE = yes + +ifndef QUANTUM_DIR + include ../../../../Makefile +endif diff --git a/keyboards/ergodox/keymaps/familiar/config.h b/keyboards/ergodox/keymaps/familiar/config.h new file mode 100644 index 00000000000..994a8c64333 --- /dev/null +++ b/keyboards/ergodox/keymaps/familiar/config.h @@ -0,0 +1,37 @@ +#ifndef KEYBOARDS_ERGODOX_CONFIG_H_ +#define KEYBOARDS_ERGODOX_CONFIG_H_ + +#define MOUSEKEY_INTERVAL 20 +#define MOUSEKEY_DELAY 0 +#define MOUSEKEY_TIME_TO_MAX 5 +#define MOUSEKEY_MAX_SPEED 2 +#define MOUSEKEY_WHEEL_DELAY 0 + +#define TAPPING_TOGGLE 1 + +/* define if matrix has ghost */ +//#define MATRIX_HAS_GHOST + +#define TAPPING_TERM 200 +#define IGNORE_MOD_TAP_INTERRUPT // this makes it possible to do rolling combos (zx) with keys that convert to other keys on hold (z becomes ctrl when you hold it, and when this option isn't enabled, z rapidly followed by x actually sends Ctrl-x. That's bad.) + +/* 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 + +/* key combination for command */ +#define IS_COMMAND() ( \ + keyboard_report->mods == (MOD_BIT(KC_LCTL) | MOD_BIT(KC_RCTL)) || \ + keyboard_report->mods == (MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT)) \ +) + +#ifdef SUBPROJECT_ez + #include "ez/config.h" +#endif +#ifdef SUBPROJECT_infinity + #include "infinity/config.h" +#endif + + +#endif /* KEYBOARDS_ERGODOX_CONFIG_H_ */ diff --git a/keyboards/ergodox/keymaps/familiar/keymap.c b/keyboards/ergodox/keymaps/familiar/keymap.c index e79e9610923..c4ecdee511b 100644 --- a/keyboards/ergodox/keymaps/familiar/keymap.c +++ b/keyboards/ergodox/keymaps/familiar/keymap.c @@ -8,13 +8,14 @@ #define NUMP 2 // numpad #define INTL 3 // international symbols -#define _______ KC_TRNS // Make the layouts easier to read +// Fillers to make layering more clear +#define _______ KC_TRNS +#define XXXXXXX KC_NO -enum custom_keycodes { - PLACEHOLDER = SAFE_RANGE, // can always be here - EPRM, - VRSN, - RGB_SLD +// Tap Dance Codes +enum { + SLASH, + WHACK, }; const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { @@ -23,51 +24,51 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* layer 0 : default * * ,--------------------------------------------------. ,--------------------------------------------------. - * | ESC | 1 | 2 | 3 | 4 | 5 | 6 | | 7 | 8 | 9 | 0 | - | = | BCKSPC | + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | | 7 | 8 | 9 | 0 | - | = | BCKSPC | * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| * | TAB | Q | W | E | R | T | HOME | | PGUP | Y | U | I | O | P | DELETE | * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | INSERT | A | S | D | F | G |------| |------| H | J | K | L | ; | ENTER | + * | NOOP | A | S | D | F | G |------| |------| H | J | K | L | ; | ENTER | * |--------+------+------+------+------+------| END | | PGDN |------+------+------+------+------+--------| - * | (/LSFT | Z | X | C | V | B | | | | N | M | , | . | / | )/RSFT | + * | (/LSFT | Z | X | C | V | B | | | | N | M | , | . | UP | )/RSFT | * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * | LCTRL | LGUI | | ' |PRTSCR| | [ | ] | \ | RGUI | RCTRL | + * | LCTRL | LGUI | MENU | ' | NOOP | | [ | ] | LEFT | DOWN | RIGHT | * `------------------------------------' `------------------------------------' * ,-------------. ,-------------. - * | VOL- | VOL+ | | BRT- | BRT+ | + * |PRTSCR| ESC | | VOL- | VOL+ | * ,------|------|------| |------+------+------. - * | ALT/ | | MUTE | | NUMLK| | ALT/ | - * | SPC | LAY1 |------| |------| LAY1 | SPC | + * | ALT/ | | NUMLK| | MUTE | | ALT/ | + * | SPC | SLASH|------| |------|WHACK | SPC | * | | | LAY3 | | LAY2 | | | * `--------------------' `--------------------' */ [BASE] = KEYMAP( // left hand - KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_HOME, - KC_INS, KC_A, KC_S, KC_D, KC_F, KC_G, + XXXXXXX, KC_A, KC_S, KC_D, KC_F, KC_G, KC_LSPO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_END, - KC_LCTL, KC_LGUI, _______, KC_QUOT, KC_PSCR, - KC_VOLD, KC_VOLU, - KC_MUTE, - ALT_T(KC_SPC), MO(ARRW), TG(INTL), + KC_LCTL, KC_LGUI, KC_MENU, KC_QUOT, XXXXXXX, + KC_INS, KC_ESC, + KC_NLCK, + ALT_T(KC_SPC), TD(SLASH), TG(INTL), // right hand KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_PGUP, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENTER, - KC_PGDN, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSPC, - KC_LBRC, KC_RBRC, KC_BSLS, KC_RGUI, KC_RCTL, + KC_PGDN, KC_N, KC_M, KC_COMM, KC_DOT, KC_UP, KC_RSPC, + KC_LBRC, KC_RBRC, KC_LEFT, KC_DOWN, KC_RGHT, KC_VOLD, KC_VOLU, - KC_NLCK, - TG(NUMP), MO(ARRW), ALT_T(KC_SPC) + KC_MUTE, + TG(NUMP), TD(WHACK), ALT_T(KC_SPC) ), /* layer 1 : functions and arrows * * ,--------------------------------------------------. ,--------------------------------------------------. - * | SYSREQ | F1 | F2 | F3 | F4 | F5 | F6 | | F7 | F8 | F9 | F10 | F11 | F12 | PAUSE | + * | | F1 | F2 | F3 | F4 | F5 | F6 | | F7 | F8 | F9 | F10 | F11 | F12 | | * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - * | | | | UP | | | | | | | | | | | | + * | | | | UP | | | | | | | | | | | INSERT | * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| * | | | LEFT | DOWN |RIGHT | |------| |------| LEFT | DOWN | UP | RIGHT| | | * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| @@ -76,26 +77,26 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | | | | | | LEFT | DOWN | RIGHT | * `------------------------------------' `------------------------------------' * ,-------------. ,-------------. - * | | | | | | + * |SYSREQ| PAUSE| | | | * ,------|------|------| |------+------+------. - * | | | | | | | | + * | | | SCRLK| | | | | * | | |------| |------| | | * | | | | | | | | * `--------------------' `--------------------' */ [ARRW] = KEYMAP( // left hand - KC_SYSREQ, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, _______, _______, _______, KC_UP, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, - _______, + KC_SYSREQ, KC_PAUSE, + KC_SLCK, _______, _______, _______, // right hand - KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PAUSE, - _______, _______, _______, _______, _______, _______, _______, + KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, + _______, _______, _______, _______, _______, _______, KC_INS, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, KC_UP, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, @@ -189,6 +190,87 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), }; +// See https://github.com/algernon/ergodox-layout/blob/master/keymap.c +// When holding the SLASH or WHACK key, the ARRW layer activates while the key is held. +// Tapping the key produces the / or \ key. Double-tapping it toggles the ARRW layer +// on until a third tap. + +typedef struct { + bool layer_toggle; + bool sticky; +} td_ta_state_t; + +static void ang_tap_dance_s_finished (qk_tap_dance_state_t *state, void *user_data) { + td_ta_state_t *td_ta = (td_ta_state_t *) user_data; + + if (td_ta->sticky) { + td_ta->sticky = false; + td_ta->layer_toggle = false; + layer_off (ARRW); + return; + } + + if (state->count == 1 && !state->pressed) { + register_code (KC_SLSH); + td_ta->sticky = false; + td_ta->layer_toggle = false; + } else { + td_ta->layer_toggle = true; + layer_on (ARRW); + td_ta->sticky = (state->count == 2); + } +} + +static void ang_tap_dance_s_reset (qk_tap_dance_state_t *state, void *user_data) { + td_ta_state_t *td_ta = (td_ta_state_t *) user_data; + + if (!td_ta->layer_toggle) + unregister_code (KC_SLSH); + if (!td_ta->sticky) + layer_off (ARRW); +} + +static void ang_tap_dance_w_finished (qk_tap_dance_state_t *state, void *user_data) { + td_ta_state_t *td_ta = (td_ta_state_t *) user_data; + + if (td_ta->sticky) { + td_ta->sticky = false; + td_ta->layer_toggle = false; + layer_off (ARRW); + return; + } + + if (state->count == 1 && !state->pressed) { + register_code (KC_BSLS); + td_ta->sticky = false; + td_ta->layer_toggle = false; + } else { + td_ta->layer_toggle = true; + layer_on (ARRW); + td_ta->sticky = (state->count == 2); + } +} + +static void ang_tap_dance_w_reset (qk_tap_dance_state_t *state, void *user_data) { + td_ta_state_t *td_ta = (td_ta_state_t *) user_data; + + if (!td_ta->layer_toggle) + unregister_code (KC_BSLS); + if (!td_ta->sticky) + layer_off (ARRW); +} + +qk_tap_dance_action_t tap_dance_actions[] = { + [SLASH] = { + .fn = { NULL, ang_tap_dance_s_finished, ang_tap_dance_s_reset }, + .user_data = (void *)&((td_ta_state_t) { false, false }) + }, + [WHACK] = { + .fn = { NULL, ang_tap_dance_w_finished, ang_tap_dance_w_reset }, + .user_data = (void *)&((td_ta_state_t) { false, false }) + } +}; + // Runs just one time when the keyboard initializes. void matrix_init_user(void) { From 29e7003fc22de30d0b467ff9263a3462c3970dd9 Mon Sep 17 00:00:00 2001 From: nstickney Date: Tue, 7 Mar 2017 22:31:14 -0600 Subject: [PATCH 045/190] SLASH and WHACK functions added (based on algernon's CT_TA) --- keyboards/ergodox/keymaps/familiar/config.h | 37 --------------------- 1 file changed, 37 deletions(-) delete mode 100644 keyboards/ergodox/keymaps/familiar/config.h diff --git a/keyboards/ergodox/keymaps/familiar/config.h b/keyboards/ergodox/keymaps/familiar/config.h deleted file mode 100644 index 994a8c64333..00000000000 --- a/keyboards/ergodox/keymaps/familiar/config.h +++ /dev/null @@ -1,37 +0,0 @@ -#ifndef KEYBOARDS_ERGODOX_CONFIG_H_ -#define KEYBOARDS_ERGODOX_CONFIG_H_ - -#define MOUSEKEY_INTERVAL 20 -#define MOUSEKEY_DELAY 0 -#define MOUSEKEY_TIME_TO_MAX 5 -#define MOUSEKEY_MAX_SPEED 2 -#define MOUSEKEY_WHEEL_DELAY 0 - -#define TAPPING_TOGGLE 1 - -/* define if matrix has ghost */ -//#define MATRIX_HAS_GHOST - -#define TAPPING_TERM 200 -#define IGNORE_MOD_TAP_INTERRUPT // this makes it possible to do rolling combos (zx) with keys that convert to other keys on hold (z becomes ctrl when you hold it, and when this option isn't enabled, z rapidly followed by x actually sends Ctrl-x. That's bad.) - -/* 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 - -/* key combination for command */ -#define IS_COMMAND() ( \ - keyboard_report->mods == (MOD_BIT(KC_LCTL) | MOD_BIT(KC_RCTL)) || \ - keyboard_report->mods == (MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT)) \ -) - -#ifdef SUBPROJECT_ez - #include "ez/config.h" -#endif -#ifdef SUBPROJECT_infinity - #include "infinity/config.h" -#endif - - -#endif /* KEYBOARDS_ERGODOX_CONFIG_H_ */ From fa44e8d4dca234847548656f4f38bce14bf33b31 Mon Sep 17 00:00:00 2001 From: nstickney Date: Wed, 8 Mar 2017 16:26:45 -0600 Subject: [PATCH 046/190] corralled image files --- .../keymaps/familiar/{ => img}/HNTR.svg | 0 .../keymaps/familiar/{ => img}/familiar.json | 0 .../keymaps/familiar/{ => img}/familiar.png | Bin .../keymaps/familiar/{ => img}/familiar.svg | 0 .../familiar/{ => img}/familiar_stick.svg | 0 .../keymaps/familiar/{ => img}/hntr.json | 0 .../keymaps/familiar/{ => img}/hntr.png | Bin keyboards/ergodox/keymaps/familiar/keymap.c | 26 +++++++++--------- 8 files changed, 13 insertions(+), 13 deletions(-) rename keyboards/ergodox/keymaps/familiar/{ => img}/HNTR.svg (100%) rename keyboards/ergodox/keymaps/familiar/{ => img}/familiar.json (100%) rename keyboards/ergodox/keymaps/familiar/{ => img}/familiar.png (100%) rename keyboards/ergodox/keymaps/familiar/{ => img}/familiar.svg (100%) rename keyboards/ergodox/keymaps/familiar/{ => img}/familiar_stick.svg (100%) rename keyboards/ergodox/keymaps/familiar/{ => img}/hntr.json (100%) rename keyboards/ergodox/keymaps/familiar/{ => img}/hntr.png (100%) diff --git a/keyboards/ergodox/keymaps/familiar/HNTR.svg b/keyboards/ergodox/keymaps/familiar/img/HNTR.svg similarity index 100% rename from keyboards/ergodox/keymaps/familiar/HNTR.svg rename to keyboards/ergodox/keymaps/familiar/img/HNTR.svg diff --git a/keyboards/ergodox/keymaps/familiar/familiar.json b/keyboards/ergodox/keymaps/familiar/img/familiar.json similarity index 100% rename from keyboards/ergodox/keymaps/familiar/familiar.json rename to keyboards/ergodox/keymaps/familiar/img/familiar.json diff --git a/keyboards/ergodox/keymaps/familiar/familiar.png b/keyboards/ergodox/keymaps/familiar/img/familiar.png similarity index 100% rename from keyboards/ergodox/keymaps/familiar/familiar.png rename to keyboards/ergodox/keymaps/familiar/img/familiar.png diff --git a/keyboards/ergodox/keymaps/familiar/familiar.svg b/keyboards/ergodox/keymaps/familiar/img/familiar.svg similarity index 100% rename from keyboards/ergodox/keymaps/familiar/familiar.svg rename to keyboards/ergodox/keymaps/familiar/img/familiar.svg diff --git a/keyboards/ergodox/keymaps/familiar/familiar_stick.svg b/keyboards/ergodox/keymaps/familiar/img/familiar_stick.svg similarity index 100% rename from keyboards/ergodox/keymaps/familiar/familiar_stick.svg rename to keyboards/ergodox/keymaps/familiar/img/familiar_stick.svg diff --git a/keyboards/ergodox/keymaps/familiar/hntr.json b/keyboards/ergodox/keymaps/familiar/img/hntr.json similarity index 100% rename from keyboards/ergodox/keymaps/familiar/hntr.json rename to keyboards/ergodox/keymaps/familiar/img/hntr.json diff --git a/keyboards/ergodox/keymaps/familiar/hntr.png b/keyboards/ergodox/keymaps/familiar/img/hntr.png similarity index 100% rename from keyboards/ergodox/keymaps/familiar/hntr.png rename to keyboards/ergodox/keymaps/familiar/img/hntr.png diff --git a/keyboards/ergodox/keymaps/familiar/keymap.c b/keyboards/ergodox/keymaps/familiar/keymap.c index c4ecdee511b..46069b0dbcf 100644 --- a/keyboards/ergodox/keymaps/familiar/keymap.c +++ b/keyboards/ergodox/keymaps/familiar/keymap.c @@ -37,9 +37,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * ,-------------. ,-------------. * |PRTSCR| ESC | | VOL- | VOL+ | * ,------|------|------| |------+------+------. - * | ALT/ | | NUMLK| | MUTE | | ALT/ | - * | SPC | SLASH|------| |------|WHACK | SPC | - * | | | LAY3 | | LAY2 | | | + * | ALT/ |SLASH/| NUMLK| | MUTE |WHACK/| ALT/ | + * | SPC |MO(1)/|------| |------|MO(1)/| SPC | + * | |TG(1) | LAY3 | | LAY2 |TG(1) | | * `--------------------' `--------------------' */ [BASE] = KEYMAP( @@ -72,9 +72,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| * | | | LEFT | DOWN |RIGHT | |------| |------| LEFT | DOWN | UP | RIGHT| | | * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | |M_PREV|M_STOP|M_PLPS|M_NEXT| | | | | | | | | UP | | + * | |M_PREV|M_STOP|M_PLPS|M_NEXT| | | | | | | | | PGUP | | * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * | | | | | | | | | LEFT | DOWN | RIGHT | + * | | | | | | | | | HOME | PGDN | END | * `------------------------------------' `------------------------------------' * ,-------------. ,-------------. * |SYSREQ| PAUSE| | | | @@ -98,8 +98,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, _______, _______, _______, KC_INS, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, _______, - _______, _______, _______, _______, _______, KC_UP, _______, - _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, + _______, _______, _______, _______, _______, KC_PGUP, _______, + _______, _______, KC_HOME, KC_PGDN, KC_END, _______, _______, _______, _______, _______, _______ @@ -200,7 +200,7 @@ typedef struct { bool sticky; } td_ta_state_t; -static void ang_tap_dance_s_finished (qk_tap_dance_state_t *state, void *user_data) { +static void slash_finished (qk_tap_dance_state_t *state, void *user_data) { td_ta_state_t *td_ta = (td_ta_state_t *) user_data; if (td_ta->sticky) { @@ -221,7 +221,7 @@ static void ang_tap_dance_s_finished (qk_tap_dance_state_t *state, void *user_da } } -static void ang_tap_dance_s_reset (qk_tap_dance_state_t *state, void *user_data) { +static void slash_reset (qk_tap_dance_state_t *state, void *user_data) { td_ta_state_t *td_ta = (td_ta_state_t *) user_data; if (!td_ta->layer_toggle) @@ -230,7 +230,7 @@ static void ang_tap_dance_s_reset (qk_tap_dance_state_t *state, void *user_data) layer_off (ARRW); } -static void ang_tap_dance_w_finished (qk_tap_dance_state_t *state, void *user_data) { +static void whack_finished (qk_tap_dance_state_t *state, void *user_data) { td_ta_state_t *td_ta = (td_ta_state_t *) user_data; if (td_ta->sticky) { @@ -251,7 +251,7 @@ static void ang_tap_dance_w_finished (qk_tap_dance_state_t *state, void *user_da } } -static void ang_tap_dance_w_reset (qk_tap_dance_state_t *state, void *user_data) { +static void whack_reset (qk_tap_dance_state_t *state, void *user_data) { td_ta_state_t *td_ta = (td_ta_state_t *) user_data; if (!td_ta->layer_toggle) @@ -262,11 +262,11 @@ static void ang_tap_dance_w_reset (qk_tap_dance_state_t *state, void *user_data) qk_tap_dance_action_t tap_dance_actions[] = { [SLASH] = { - .fn = { NULL, ang_tap_dance_s_finished, ang_tap_dance_s_reset }, + .fn = { NULL, slash_finished, slash_reset }, .user_data = (void *)&((td_ta_state_t) { false, false }) }, [WHACK] = { - .fn = { NULL, ang_tap_dance_w_finished, ang_tap_dance_w_reset }, + .fn = { NULL, whack_finished, whack_reset }, .user_data = (void *)&((td_ta_state_t) { false, false }) } }; From 82cbe71bb52403f0c9cd23925c10cfdc97021919 Mon Sep 17 00:00:00 2001 From: nstickney Date: Wed, 8 Mar 2017 22:28:18 -0600 Subject: [PATCH 047/190] found LT(layer, kc) so I could take out TapDance code --- keyboards/ergodox/keymaps/familiar/Makefile | 5 - keyboards/ergodox/keymaps/familiar/keymap.c | 127 +++----------------- 2 files changed, 20 insertions(+), 112 deletions(-) delete mode 100644 keyboards/ergodox/keymaps/familiar/Makefile diff --git a/keyboards/ergodox/keymaps/familiar/Makefile b/keyboards/ergodox/keymaps/familiar/Makefile deleted file mode 100644 index f795271f0ad..00000000000 --- a/keyboards/ergodox/keymaps/familiar/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -TAP_DANCE_ENABLE = yes - -ifndef QUANTUM_DIR - include ../../../../Makefile -endif diff --git a/keyboards/ergodox/keymaps/familiar/keymap.c b/keyboards/ergodox/keymaps/familiar/keymap.c index 46069b0dbcf..34c48d5f34e 100644 --- a/keyboards/ergodox/keymaps/familiar/keymap.c +++ b/keyboards/ergodox/keymaps/familiar/keymap.c @@ -12,12 +12,6 @@ #define _______ KC_TRNS #define XXXXXXX KC_NO -// Tap Dance Codes -enum { - SLASH, - WHACK, -}; - const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // If it accepts an argument (i.e, is a function), it doesn't need KC_. // Otherwise, it needs KC_* @@ -28,30 +22,30 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| * | TAB | Q | W | E | R | T | HOME | | PGUP | Y | U | I | O | P | DELETE | * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | NOOP | A | S | D | F | G |------| |------| H | J | K | L | ; | ENTER | + * | CLEAR | A | S | D | F | G |------| |------| H | J | K | L | ; | ENTER | * |--------+------+------+------+------+------| END | | PGDN |------+------+------+------+------+--------| * | (/LSFT | Z | X | C | V | B | | | | N | M | , | . | UP | )/RSFT | * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * | LCTRL | LGUI | MENU | ' | NOOP | | [ | ] | LEFT | DOWN | RIGHT | + * | LCTRL | LGUI | MENU | ' | " | | [ | ] | LEFT | DOWN | RIGHT | * `------------------------------------' `------------------------------------' * ,-------------. ,-------------. * |PRTSCR| ESC | | VOL- | VOL+ | * ,------|------|------| |------+------+------. * | ALT/ |SLASH/| NUMLK| | MUTE |WHACK/| ALT/ | - * | SPC |MO(1)/|------| |------|MO(1)/| SPC | - * | |TG(1) | LAY3 | | LAY2 |TG(1) | | + * | SPC | MO(1)|------| |------|MO(1) | SPC | + * | | | LAY3 | | LAY2 | | | * `--------------------' `--------------------' */ [BASE] = KEYMAP( // left hand KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_HOME, - XXXXXXX, KC_A, KC_S, KC_D, KC_F, KC_G, + KC_CLEAR, KC_A, KC_S, KC_D, KC_F, KC_G, KC_LSPO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_END, - KC_LCTL, KC_LGUI, KC_MENU, KC_QUOT, XXXXXXX, + KC_LCTL, KC_LGUI, KC_MENU, KC_QUOT, S(KC_QUOT), KC_INS, KC_ESC, KC_NLCK, - ALT_T(KC_SPC), TD(SLASH), TG(INTL), + ALT_T(KC_SPC), LT(ARRW,KC_SLSH), TG(INTL), // right hand KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_PGUP, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL, @@ -60,7 +54,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LBRC, KC_RBRC, KC_LEFT, KC_DOWN, KC_RGHT, KC_VOLD, KC_VOLU, KC_MUTE, - TG(NUMP), TD(WHACK), ALT_T(KC_SPC) + TG(NUMP), LT(ARRW,KC_BSLS), ALT_T(KC_SPC) ), /* layer 1 : functions and arrows @@ -70,7 +64,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| * | | | | UP | | | | | | | | | | | INSERT | * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | | LEFT | DOWN |RIGHT | |------| |------| LEFT | DOWN | UP | RIGHT| | | + * |CAPSLOCK| | LEFT | DOWN |RIGHT | |------| |------| LEFT | DOWN | UP | RIGHT| | | * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| * | |M_PREV|M_STOP|M_PLPS|M_NEXT| | | | | | | | | PGUP | | * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' @@ -88,7 +82,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // left hand _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, _______, _______, _______, KC_UP, _______, _______, _______, - _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, + KC_CAPS, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_SYSREQ, KC_PAUSE, @@ -108,15 +102,15 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* layer 2 : numberpad * * ,--------------------------------------------------. ,--------------------------------------------------. - * | | | | | | | | | | | | | | | | + * | | | | | | | | | | | ( | ) | ÷ | × | | * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - * | | | | | | | | | | | | | | | | + * | | | | | | | | | | | 7 | 8 | 9 | - | | * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | | | | | |------| |------| | | | | | | + * | | | | | | |------| |------| | 4 | 5 | 6 | + | | * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | | | | | | | | | | | | | | | + * | | | | | | | | | | | 1 | 2 | 3 | = | | * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * | | | | | | | | | | | | + * | | | | | | | 0 | . | , | ENTER| | * `------------------------------------' `------------------------------------' * ,-------------. ,-------------. * | | | | | | @@ -137,11 +131,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, // right hand - _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, + _______, _______, S(KC_9), S(KC_0), KC_PSLS, KC_PAST, _______, + _______, _______, KC_KP_7, KC_KP_8, KC_KP_9, KC_PMNS, _______, + _______, KC_KP_4, KC_KP_5, KC_KP_6, KC_PPLS, _______, + _______, _______, KC_KP_1, KC_KP_2, KC_KP_3, KC_PEQL, _______, + KC_KP_0, KC_KP_DOT, KC_PCMM, KC_PENT, _______, _______, _______, _______, _______, _______, _______ @@ -190,87 +184,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), }; -// See https://github.com/algernon/ergodox-layout/blob/master/keymap.c -// When holding the SLASH or WHACK key, the ARRW layer activates while the key is held. -// Tapping the key produces the / or \ key. Double-tapping it toggles the ARRW layer -// on until a third tap. - -typedef struct { - bool layer_toggle; - bool sticky; -} td_ta_state_t; - -static void slash_finished (qk_tap_dance_state_t *state, void *user_data) { - td_ta_state_t *td_ta = (td_ta_state_t *) user_data; - - if (td_ta->sticky) { - td_ta->sticky = false; - td_ta->layer_toggle = false; - layer_off (ARRW); - return; - } - - if (state->count == 1 && !state->pressed) { - register_code (KC_SLSH); - td_ta->sticky = false; - td_ta->layer_toggle = false; - } else { - td_ta->layer_toggle = true; - layer_on (ARRW); - td_ta->sticky = (state->count == 2); - } -} - -static void slash_reset (qk_tap_dance_state_t *state, void *user_data) { - td_ta_state_t *td_ta = (td_ta_state_t *) user_data; - - if (!td_ta->layer_toggle) - unregister_code (KC_SLSH); - if (!td_ta->sticky) - layer_off (ARRW); -} - -static void whack_finished (qk_tap_dance_state_t *state, void *user_data) { - td_ta_state_t *td_ta = (td_ta_state_t *) user_data; - - if (td_ta->sticky) { - td_ta->sticky = false; - td_ta->layer_toggle = false; - layer_off (ARRW); - return; - } - - if (state->count == 1 && !state->pressed) { - register_code (KC_BSLS); - td_ta->sticky = false; - td_ta->layer_toggle = false; - } else { - td_ta->layer_toggle = true; - layer_on (ARRW); - td_ta->sticky = (state->count == 2); - } -} - -static void whack_reset (qk_tap_dance_state_t *state, void *user_data) { - td_ta_state_t *td_ta = (td_ta_state_t *) user_data; - - if (!td_ta->layer_toggle) - unregister_code (KC_BSLS); - if (!td_ta->sticky) - layer_off (ARRW); -} - -qk_tap_dance_action_t tap_dance_actions[] = { - [SLASH] = { - .fn = { NULL, slash_finished, slash_reset }, - .user_data = (void *)&((td_ta_state_t) { false, false }) - }, - [WHACK] = { - .fn = { NULL, whack_finished, whack_reset }, - .user_data = (void *)&((td_ta_state_t) { false, false }) - } -}; - // Runs just one time when the keyboard initializes. void matrix_init_user(void) { From 9895e376e76ed528d042e6892a529ec448fea736 Mon Sep 17 00:00:00 2001 From: nstickney Date: Sun, 12 Mar 2017 14:51:33 -0500 Subject: [PATCH 048/190] added US-International support --- keyboards/ergodox/keymaps/familiar/Makefile | 1 + keyboards/ergodox/keymaps/familiar/keymap.c | 158 +++++++++++++------- 2 files changed, 105 insertions(+), 54 deletions(-) create mode 100644 keyboards/ergodox/keymaps/familiar/Makefile diff --git a/keyboards/ergodox/keymaps/familiar/Makefile b/keyboards/ergodox/keymaps/familiar/Makefile new file mode 100644 index 00000000000..61c3c22725e --- /dev/null +++ b/keyboards/ergodox/keymaps/familiar/Makefile @@ -0,0 +1 @@ +UNIS_ENABLE = yes diff --git a/keyboards/ergodox/keymaps/familiar/keymap.c b/keyboards/ergodox/keymaps/familiar/keymap.c index 34c48d5f34e..08640b9fc4b 100644 --- a/keyboards/ergodox/keymaps/familiar/keymap.c +++ b/keyboards/ergodox/keymaps/familiar/keymap.c @@ -3,10 +3,12 @@ #include "action_layer.h" #include "version.h" +// Layers #define BASE 0 // default layer -#define ARRW 1 // function, media, arrow keys -#define NUMP 2 // numpad -#define INTL 3 // international symbols +#define INTL 1 // international symbols +#define INSF 2 // international symbols shifted +#define NUMP 3 // numpad +#define ARRW 4 // function, media, arrow keys // Fillers to make layering more clear #define _______ KC_TRNS @@ -22,7 +24,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| * | TAB | Q | W | E | R | T | HOME | | PGUP | Y | U | I | O | P | DELETE | * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | CLEAR | A | S | D | F | G |------| |------| H | J | K | L | ; | ENTER | + * | MO(3) | A | S | D | F | G |------| |------| H | J | K | L | ; | ENTER | * |--------+------+------+------+------+------| END | | PGDN |------+------+------+------+------+--------| * | (/LSFT | Z | X | C | V | B | | | | N | M | , | . | UP | )/RSFT | * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' @@ -40,10 +42,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // left hand KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_HOME, - KC_CLEAR, KC_A, KC_S, KC_D, KC_F, KC_G, + MO(INTL), KC_A, KC_S, KC_D, KC_F, KC_G, KC_LSPO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_END, KC_LCTL, KC_LGUI, KC_MENU, KC_QUOT, S(KC_QUOT), - KC_INS, KC_ESC, + KC_PSCR, KC_ESC, KC_NLCK, ALT_T(KC_SPC), LT(ARRW,KC_SLSH), TG(INTL), // right hand @@ -57,52 +59,96 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { TG(NUMP), LT(ARRW,KC_BSLS), ALT_T(KC_SPC) ), -/* layer 1 : functions and arrows +/* layer 1: International symbols, etc * * ,--------------------------------------------------. ,--------------------------------------------------. - * | | F1 | F2 | F3 | F4 | F5 | F6 | | F7 | F8 | F9 | F10 | F11 | F12 | | + * | ´ | ¡ | ² | ³ | ¤ | € | ¼ | | ½ | ¾ | ‘ | ’ | ¥ | × | | * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - * | | | | UP | | | | | | | | | | | INSERT | + * | | ä | å | é | ® | þ | | | | ü | ú | í | ó | ö | | * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * |CAPSLOCK| | LEFT | DOWN |RIGHT | |------| |------| LEFT | DOWN | UP | RIGHT| | | + * | | á | ß | ð | | |------| |------| | | | Ø | ° | | * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | |M_PREV|M_STOP|M_PLPS|M_NEXT| | | | | | | | | PGUP | | + * |MO(INSF)| æ | | © | | | | | | ñ | µ | ç | | |MO(INSF)| * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * | | | | | | | | | HOME | PGDN | END | + * | | | | ¬ | ¿ | | « | » | | | | * `------------------------------------' `------------------------------------' * ,-------------. ,-------------. - * |SYSREQ| PAUSE| | | | + * | | | | | | * ,------|------|------| |------+------+------. - * | | | SCRLK| | | | | + * | | | | | | | | * | | |------| |------| | | * | | | | | | | | * `--------------------' `--------------------' */ -[ARRW] = KEYMAP( +[INTL] = KEYMAP( // left hand - _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, - _______, _______, _______, KC_UP, _______, _______, _______, - KC_CAPS, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, - _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, - KC_SYSREQ, KC_PAUSE, - KC_SLCK, - _______, _______, _______, + UC(0x00B4), UC(0x00A1), UC(0x00B2), UC(0x00B3), UC(0x00A4), UC(0x20AC), UC(0x00BC), + _______, UC(0x00E4), UC(0x00E5), UC(0x00E9), UC(0x00AE), UC(0x00FE), _______, + _______, UC(0x00E1), UC(0x00DF), UC(0x00F0), _______, _______, + MO(INSF), UC(0x00E6), _______, UC(0x00A9), _______, _______, _______, + _______, _______, _______, UC(0x00AC), UC(0x00BF), + _______, _______, + _______, + _______, _______, _______, // right hand - KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, - _______, _______, _______, _______, _______, _______, KC_INS, - KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, _______, - _______, _______, _______, _______, _______, KC_PGUP, _______, - _______, _______, KC_HOME, KC_PGDN, KC_END, + UC(0x00BD), UC(0x00BE), UC(0x2018), UC(0x2019), UC(0x00A5), UC(0x00D7), _______, + _______, UC(0x00FC), UC(0x00FA), UC(0x00ED), UC(0x00F3), UC(0x00F6), _______, + _______, _______, _______, UC(0x00D8), UC(0x00B0), _______, + _______, UC(0x00F1), UC(0x00B5), UC(0x00E7), _______, _______, MO(INSF), + UC(0x00AB), UC(0x00BB), _______, _______, _______, _______, _______, _______, _______, _______, _______ ), -/* layer 2 : numberpad +/* layer 2 : international symbols, shifted + * This layer is an ugly workaround; it pretends that SHIFT still works normally on keys + * which don't produce an "upper case" or "shifted" international symobol. * * ,--------------------------------------------------. ,--------------------------------------------------. - * | | | | | | | | | | | ( | ) | ÷ | × | | + * | ¨ | ¹ | | | £ | | | | | | | | | ÷ | | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | Ä | Å | É | | Þ | | | | Ü | Ú | Í | Ó | Ö | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | Á | § | Ð | | |------| |------| | | | Ø | ° | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | Æ | | ¢ | | | | | | Ñ | | Ç | | | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | ¦ | | | | | | | | + * `------------------------------------' `------------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | | | + * | | |------| |------| | | + * | | | | | | | | + * `--------------------' `--------------------' + */ +[INSF] = KEYMAP( + // left hand + UC(0x00A8), UC(0x00B9), S(KC_2), S(KC_3), UC(0x00A3), UC(0x2014), S(KC_6), + _______, UC(0x00C4), UC(0x00C5), UC(0x00C9), S(KC_R), UC(0x00DE), _______, + _______, UC(0x00C1), UC(0x00A7), UC(0x00D0), S(KC_F), S(KC_G), + _______, UC(0x00C6), S(KC_X), UC(0x00A2), S(KC_V), S(KC_B), _______, + _______, _______, _______, UC(0x00A6), _______, + _______, _______, + _______, + _______, _______, _______, + // right hand + S(KC_7), S(KC_8), S(KC_9), S(KC_0), S(KC_MINS), UC(0x00F7), _______, + _______, UC(0x00DC), UC(0x00DA), UC(0x00CD), UC(0x00D3), UC(0x00D6), _______, + S(KC_H), S(KC_J), S(KC_K), UC(0x00D8), UC(0x00B0), _______, + _______, UC(0x00D1), S(KC_M), UC(0x00C7), S(KC_DOT), _______, _______, + S(KC_LBRC), S(KC_RBRC), _______, _______, _______, + _______, _______, + _______, + _______, _______, _______ + ), + +/* layer 3: numberpad + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | | | | | | | | | | ( | ) | / | * | | * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| * | | | | | | | | | | | 7 | 8 | 9 | - | | * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| @@ -141,43 +187,43 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______ ), -/* layer 3: International symbols, etc +/* layer 4 : functions and arrows * * ,--------------------------------------------------. ,--------------------------------------------------. - * | | | | | | | | | | | | | | | | + * | ESCAPE | F1 | F2 | F3 | F4 | F5 | F6 | | F7 | F8 | F9 | F10 | F11 | F12 | | * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - * | | | | | | | | | | | | | | | | + * | | | | UP | | | | | | | | | | | INSERT | * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | | | | | |------| |------| | | | | | | + * |CAPSLOCK| | LEFT | DOWN |RIGHT | |------| |------| LEFT | DOWN | UP | RIGHT| | | * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | | | | | | | | | | | | | | | + * | |M_PREV|M_STOP|M_PLPS|M_NEXT| | | | | | | | | PGUP | | * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * | | | | | | | | | | | | + * | | | | | | | | | HOME | PGDN | END | * `------------------------------------' `------------------------------------' * ,-------------. ,-------------. - * | | | | | | + * |SYSREQ| PAUSE| | | | * ,------|------|------| |------+------+------. - * | | | | | | | | + * | | | SCRLK| | | | | * | | |------| |------| | | * | | | | | | | | * `--------------------' `--------------------' */ -[INTL] = KEYMAP( +[ARRW] = KEYMAP( // left hand - _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, + _______, _______, _______, KC_UP, _______, _______, _______, + KC_CAPS, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, - _______, - _______, _______, _______, + KC_SYSREQ, KC_PAUSE, + KC_SLCK, + _______, _______, _______, // right hand - _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, + KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, + _______, _______, _______, _______, _______, _______, KC_INS, + KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, _______, + _______, _______, _______, _______, _______, KC_PGUP, _______, + _______, _______, KC_HOME, KC_PGDN, KC_END, _______, _______, _______, _______, _______, _______ @@ -186,7 +232,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // Runs just one time when the keyboard initializes. void matrix_init_user(void) { - + set_unicode_input_mode(UC_LNX); // Linux + //set_unicode_input_mode(UC_OSX); // Mac OSX + //set_unicode_input_mode(UC_WIN); // Windows (with registry key, see wiki) + //set_unicode_input_mode(UC_WINC); // Windows (with WinCompose, see wiki) }; // Runs constantly in the background, in a loop. @@ -199,13 +248,14 @@ void matrix_scan_user(void) { ergodox_right_led_2_off(); ergodox_right_led_3_off(); switch (layer) { - case 1: + case INTL: + case INSF: ergodox_right_led_1_on(); break; - case 2: + case NUMP: ergodox_right_led_2_on(); break; - case 3: + case ARRW: ergodox_right_led_3_on(); break; default: From d9efa02cfbd9aebd691711c326645ad6f8af71b1 Mon Sep 17 00:00:00 2001 From: nstickney Date: Sun, 12 Mar 2017 22:43:44 -0500 Subject: [PATCH 049/190] added README.md --- keyboards/ergodox/keymaps/familiar/README.md | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 keyboards/ergodox/keymaps/familiar/README.md diff --git a/keyboards/ergodox/keymaps/familiar/README.md b/keyboards/ergodox/keymaps/familiar/README.md new file mode 100644 index 00000000000..0b248534154 --- /dev/null +++ b/keyboards/ergodox/keymaps/familiar/README.md @@ -0,0 +1,3 @@ +# Familiar Layout for ErgoDox # +An ErgoDox layout meant to be as easy to learn as possible for typists coming from a standard +QWERTY US-International layout. From a03d946d0c4edf0c3e50812af7f3c826b958c945 Mon Sep 17 00:00:00 2001 From: Stick Date: Mon, 27 Mar 2017 21:18:12 -0500 Subject: [PATCH 050/190] fixed unicode input issue --- keyboards/ergodox/keymaps/familiar/Makefile | 1 - keyboards/ergodox/keymaps/familiar/keymap.c | 35 +++++++++++---------- 2 files changed, 18 insertions(+), 18 deletions(-) delete mode 100644 keyboards/ergodox/keymaps/familiar/Makefile diff --git a/keyboards/ergodox/keymaps/familiar/Makefile b/keyboards/ergodox/keymaps/familiar/Makefile deleted file mode 100644 index 61c3c22725e..00000000000 --- a/keyboards/ergodox/keymaps/familiar/Makefile +++ /dev/null @@ -1 +0,0 @@ -UNIS_ENABLE = yes diff --git a/keyboards/ergodox/keymaps/familiar/keymap.c b/keyboards/ergodox/keymaps/familiar/keymap.c index 08640b9fc4b..153d73040cc 100644 --- a/keyboards/ergodox/keymaps/familiar/keymap.c +++ b/keyboards/ergodox/keymaps/familiar/keymap.c @@ -20,29 +20,29 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* layer 0 : default * * ,--------------------------------------------------. ,--------------------------------------------------. - * | ` | 1 | 2 | 3 | 4 | 5 | 6 | | 7 | 8 | 9 | 0 | - | = | BCKSPC | + * | ESC | 1 | 2 | 3 | 4 | 5 | 6 | | 7 | 8 | 9 | 0 | - | = | BCKSPC | * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - * | TAB | Q | W | E | R | T | HOME | | PGUP | Y | U | I | O | P | DELETE | + * | ` | Q | W | E | R | T | HOME | | PGUP | Y | U | I | O | P | DELETE | * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | MO(3) | A | S | D | F | G |------| |------| H | J | K | L | ; | ENTER | + * | TAB | A | S | D | F | G |------| |------| H | J | K | L | ; | ENTER | * |--------+------+------+------+------+------| END | | PGDN |------+------+------+------+------+--------| * | (/LSFT | Z | X | C | V | B | | | | N | M | , | . | UP | )/RSFT | * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' * | LCTRL | LGUI | MENU | ' | " | | [ | ] | LEFT | DOWN | RIGHT | * `------------------------------------' `------------------------------------' * ,-------------. ,-------------. - * |PRTSCR| ESC | | VOL- | VOL+ | + * | VOL- | VOL+ | | VOL- | VOL+ | * ,------|------|------| |------+------+------. - * | ALT/ |SLASH/| NUMLK| | MUTE |WHACK/| ALT/ | - * | SPC | MO(1)|------| |------|MO(1) | SPC | + * | SPC/ |SLASH/| MUTE | |NUMLCK|WHACK/| SPC/ | + * | ALT | MO(1)|------| |------|MO(1) | ALT | * | | | LAY3 | | LAY2 | | | * `--------------------' `--------------------' */ [BASE] = KEYMAP( // left hand - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_HOME, - MO(INTL), KC_A, KC_S, KC_D, KC_F, KC_G, + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, + KC_GRV, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_HOME, + KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_LSPO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_END, KC_LCTL, KC_LGUI, KC_MENU, KC_QUOT, S(KC_QUOT), KC_PSCR, KC_ESC, @@ -66,7 +66,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| * | | ä | å | é | ® | þ | | | | ü | ú | í | ó | ö | | * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | á | ß | ð | | |------| |------| | | | Ø | ° | | + * | | á | ß | ð | | |------| |------| | | | ø | ¶ | | * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| * |MO(INSF)| æ | | © | | | | | | ñ | µ | ç | | |MO(INSF)| * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' @@ -93,7 +93,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // right hand UC(0x00BD), UC(0x00BE), UC(0x2018), UC(0x2019), UC(0x00A5), UC(0x00D7), _______, _______, UC(0x00FC), UC(0x00FA), UC(0x00ED), UC(0x00F3), UC(0x00F6), _______, - _______, _______, _______, UC(0x00D8), UC(0x00B0), _______, + _______, _______, _______, UC(0x00F8), UC(0x00B6), _______, _______, UC(0x00F1), UC(0x00B5), UC(0x00E7), _______, _______, MO(INSF), UC(0x00AB), UC(0x00BB), _______, _______, _______, _______, _______, @@ -106,7 +106,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * which don't produce an "upper case" or "shifted" international symobol. * * ,--------------------------------------------------. ,--------------------------------------------------. - * | ¨ | ¹ | | | £ | | | | | | | | | ÷ | | + * | ¨ | ¹ | | | £ | | | | | | | | — | ÷ | | * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| * | | Ä | Å | É | | Þ | | | | Ü | Ú | Í | Ó | Ö | | * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| @@ -126,8 +126,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [INSF] = KEYMAP( // left hand - UC(0x00A8), UC(0x00B9), S(KC_2), S(KC_3), UC(0x00A3), UC(0x2014), S(KC_6), - _______, UC(0x00C4), UC(0x00C5), UC(0x00C9), S(KC_R), UC(0x00DE), _______, + UC(0x00A8), UC(0x00B9), _______, _______, UC(0x00A3), _______, _______, + _______, UC(0x00C4), UC(0x00C5), UC(0x00C9), _______, UC(0x00DE), _______, _______, UC(0x00C1), UC(0x00A7), UC(0x00D0), S(KC_F), S(KC_G), _______, UC(0x00C6), S(KC_X), UC(0x00A2), S(KC_V), S(KC_B), _______, _______, _______, _______, UC(0x00A6), _______, @@ -135,11 +135,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, // right hand - S(KC_7), S(KC_8), S(KC_9), S(KC_0), S(KC_MINS), UC(0x00F7), _______, + _______, _______, _______, _______, UC(0x2014), UC(0x00F7), _______, _______, UC(0x00DC), UC(0x00DA), UC(0x00CD), UC(0x00D3), UC(0x00D6), _______, S(KC_H), S(KC_J), S(KC_K), UC(0x00D8), UC(0x00B0), _______, - _______, UC(0x00D1), S(KC_M), UC(0x00C7), S(KC_DOT), _______, _______, - S(KC_LBRC), S(KC_RBRC), _______, _______, _______, + _______, UC(0x00D1), _______, UC(0x00C7), S(KC_DOT), _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ @@ -188,6 +188,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), /* layer 4 : functions and arrows + * This layer is at the top so that the functions still work no matter what layers are active. * * ,--------------------------------------------------. ,--------------------------------------------------. * | ESCAPE | F1 | F2 | F3 | F4 | F5 | F6 | | F7 | F8 | F9 | F10 | F11 | F12 | | From b6280d0cac59c741db62a63072efd5de4887fc01 Mon Sep 17 00:00:00 2001 From: Stick Date: Mon, 27 Mar 2017 21:56:47 -0500 Subject: [PATCH 051/190] unsatisfied with ESC/GRV/TAB positioning --- keyboards/ergodox/keymaps/familiar/keymap.c | 32 ++++++++++----------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/keyboards/ergodox/keymaps/familiar/keymap.c b/keyboards/ergodox/keymaps/familiar/keymap.c index 153d73040cc..c5f94afda8e 100644 --- a/keyboards/ergodox/keymaps/familiar/keymap.c +++ b/keyboards/ergodox/keymaps/familiar/keymap.c @@ -22,16 +22,16 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * ,--------------------------------------------------. ,--------------------------------------------------. * | ESC | 1 | 2 | 3 | 4 | 5 | 6 | | 7 | 8 | 9 | 0 | - | = | BCKSPC | * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - * | ` | Q | W | E | R | T | HOME | | PGUP | Y | U | I | O | P | DELETE | + * | TAB | Q | W | E | R | T | HOME | | PGUP | Y | U | I | O | P | DELETE | * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | TAB | A | S | D | F | G |------| |------| H | J | K | L | ; | ENTER | + * | ` | A | S | D | F | G |------| |------| H | J | K | L | ; | ENTER | * |--------+------+------+------+------+------| END | | PGDN |------+------+------+------+------+--------| * | (/LSFT | Z | X | C | V | B | | | | N | M | , | . | UP | )/RSFT | * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' * | LCTRL | LGUI | MENU | ' | " | | [ | ] | LEFT | DOWN | RIGHT | * `------------------------------------' `------------------------------------' * ,-------------. ,-------------. - * | VOL- | VOL+ | | VOL- | VOL+ | + * | VOL- | VOL+ | | | | * ,------|------|------| |------+------+------. * | SPC/ |SLASH/| MUTE | |NUMLCK|WHACK/| SPC/ | * | ALT | MO(1)|------| |------|MO(1) | ALT | @@ -41,12 +41,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [BASE] = KEYMAP( // left hand KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, - KC_GRV, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_HOME, - KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_HOME, + KC_GRV, KC_A, KC_S, KC_D, KC_F, KC_G, KC_LSPO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_END, KC_LCTL, KC_LGUI, KC_MENU, KC_QUOT, S(KC_QUOT), - KC_PSCR, KC_ESC, - KC_NLCK, + KC_VOLD, KC_VOLU, + KC_MUTE, ALT_T(KC_SPC), LT(ARRW,KC_SLSH), TG(INTL), // right hand KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, @@ -54,8 +54,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENTER, KC_PGDN, KC_N, KC_M, KC_COMM, KC_DOT, KC_UP, KC_RSPC, KC_LBRC, KC_RBRC, KC_LEFT, KC_DOWN, KC_RGHT, - KC_VOLD, KC_VOLU, - KC_MUTE, + _______, _______, + KC_NLCK, TG(NUMP), LT(ARRW,KC_BSLS), ALT_T(KC_SPC) ), @@ -191,7 +191,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * This layer is at the top so that the functions still work no matter what layers are active. * * ,--------------------------------------------------. ,--------------------------------------------------. - * | ESCAPE | F1 | F2 | F3 | F4 | F5 | F6 | | F7 | F8 | F9 | F10 | F11 | F12 | | + * | ESCAPE | F1 | F2 | F3 | F4 | F5 | F6 | | F7 | F8 | F9 | F10 | F11 | F12 | SYSREQ | * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| * | | | | UP | | | | | | | | | | | INSERT | * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| @@ -202,9 +202,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | | | | | | HOME | PGDN | END | * `------------------------------------' `------------------------------------' * ,-------------. ,-------------. - * |SYSREQ| PAUSE| | | | + * | | PAUSE| | | | * ,------|------|------| |------+------+------. - * | | | SCRLK| | | | | + * | | | | |SCRLK | | | * | | |------| |------| | | * | | | | | | | | * `--------------------' `--------------------' @@ -216,17 +216,17 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_CAPS, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - KC_SYSREQ, KC_PAUSE, - KC_SLCK, + _______, KC_PAUSE, + _______, _______, _______, _______, // right hand - KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, + KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_SYSREQ, _______, _______, _______, _______, _______, _______, KC_INS, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, KC_PGUP, _______, _______, _______, KC_HOME, KC_PGDN, KC_END, _______, _______, - _______, + KC_SLCK, _______, _______, _______ ), }; From 571f39da663632b2f0592f1ad41d2985763bfcc2 Mon Sep 17 00:00:00 2001 From: Xyverz Date: Wed, 29 Mar 2017 22:32:39 -0700 Subject: [PATCH 052/190] Tidied up keymaps, Makefiles that actually work, Clueboard make v1.0 --- keyboards/clueboard/keymaps/xyverz/Makefile | 49 ++++++++++++++++++++ keyboards/clueboard/keymaps/xyverz/keymap.c | 49 +++++++++++--------- keyboards/lets_split/keymaps/xyverz/keymap.c | 4 +- keyboards/planck/keymaps/xyverz/Makefile | 6 +++ keyboards/planck/keymaps/xyverz/keymap.c | 12 ++--- keyboards/planck/keymaps/xyverz/makefile.mk | 25 ---------- 6 files changed, 89 insertions(+), 56 deletions(-) create mode 100644 keyboards/clueboard/keymaps/xyverz/Makefile create mode 100644 keyboards/planck/keymaps/xyverz/Makefile delete mode 100644 keyboards/planck/keymaps/xyverz/makefile.mk diff --git a/keyboards/clueboard/keymaps/xyverz/Makefile b/keyboards/clueboard/keymaps/xyverz/Makefile new file mode 100644 index 00000000000..950dadf841e --- /dev/null +++ b/keyboards/clueboard/keymaps/xyverz/Makefile @@ -0,0 +1,49 @@ +#---------------------------------------------------------------------------- +# 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". +#---------------------------------------------------------------------------- + +# Build Options +# change to "no" to disable the options, or define them in the makefile.mk in +# the appropriate keymap folder that will get included automatically +# +RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. + +ifndef QUANTUM_DIR + include ../../../../Makefile +endif \ No newline at end of file diff --git a/keyboards/clueboard/keymaps/xyverz/keymap.c b/keyboards/clueboard/keymaps/xyverz/keymap.c index 01f158bf0f8..45391197310 100644 --- a/keyboards/clueboard/keymaps/xyverz/keymap.c +++ b/keyboards/clueboard/keymaps/xyverz/keymap.c @@ -1,3 +1,6 @@ +// Xyverz' keymap. +// It's based on the default keymap, but Dvorak! + #include "clueboard.h" // Used for SHIFT_ESC @@ -14,23 +17,23 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Keymap _BL: (Base Layer) Default Layer * ,--------------------------------------------------------------------------. ,----. - * |Esc~| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =| \| BS| |PGUP| + * |Esc~| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| [| ]| \| BS| |PGUP| * |--------------------------------------------------------------------------| |----| - * | Tab| Q| W| E| R| T| Y| U| I| O| P| [| ]| \| |PGDN| + * | Tab| '| ,| .| P| Y| F| G| C| R| L| /| =| \| |PGDN| * |--------------------------------------------------------------------------| `----' - * |Capslck| A| S| D| F| G| H| J| K| L| ;| '| # | Ent| + * |_FL/Caps| A| O| E| U| I| H| D| H| T| N| S| - | Ent| * |-----------------------------------------------------------------------------. - * |Shift| BS| Z| X| C| V| B| N| M| ,| .| /| BS|Shift| UP| + * |Shift| BS| ;| Q| J| K| X| B| M| W| V| Z| BS|Shift| UP| * |------------------------------------------------------------------------|----|----. * | Ctrl| Gui| Alt| MHen| Space| Space| Hen| Alt| Ctrl| _FL|LEFT|DOWN|RGHT| * `----------------------------------------------------------------------------------' */ [_BL] = KEYMAP( - F(0), KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_GRV, KC_BSPC, KC_PGUP, \ - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGDN, \ - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, \ - KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RO, KC_RSFT, KC_UP, \ - KC_LCTL, KC_LGUI, KC_LALT, KC_MHEN, KC_SPC,KC_SPC, KC_HENK, KC_RALT, KC_RCTL, MO(_FL), KC_LEFT, KC_DOWN, KC_RGHT), + F(0), KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_LBRC, KC_RBRC, KC_GRV, KC_BSPC, KC_PGUP, \ + KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH, KC_EQL, KC_BSLS, KC_PGDN, \ + LT(_FL, KC_CAPS), KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS, KC_NUHS, KC_ENT, \ + KC_LSFT, KC_RO, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_SLSH, KC_RSFT, KC_UP, \ + KC_LCTL, KC_LALT, KC_LGUI, KC_MHEN, KC_SPC, KC_SPC, KC_HENK, KC_RGUI, KC_RCTL, MO(_FL), KC_LEFT, KC_DOWN, KC_RGHT), /* Keymap _FL: Function Layer * ,--------------------------------------------------------------------------. ,----. @@ -46,31 +49,31 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `----------------------------------------------------------------------------------' */ [_FL] = KEYMAP( - KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_DEL, BL_STEP, \ - KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_PSCR,KC_SLCK, KC_PAUS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ - KC_TRNS, KC_TRNS, MO(_RS),KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ - KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGUP, \ - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MO(_FL), KC_HOME, KC_PGDN, KC_END), + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_DEL, BL_STEP, \ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ + KC_TRNS, KC_TRNS, MO(_RS), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGUP, \ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MO(_FL), KC_HOME, KC_PGDN, KC_END), /* Keymap _RS: Reset layer * ,--------------------------------------------------------------------------. ,----. - * | | | | | | | | | | | | | | | | | | + * | | | | | | | | | | | | | | | RGB| |VAL+| * |--------------------------------------------------------------------------| |----| - * | | | | |RESET| | | | | | | | | | | | + * | | | | |RESET| | | | | | | | | | |VAL-| * |--------------------------------------------------------------------------| `----' * | | | _RS| | | | | | | | | | | | * |-----------------------------------------------------------------------------. - * | | | | | | | | | | | | | | | | + * | | | | | | | | | | | | | | |SAT+| * |------------------------------------------------------------------------|----|----. - * | | | | | | | | | | _FL| | | | + * | | | | | | | | | | _FL|HUE-|SAT-|HUE+| * `----------------------------------------------------------------------------------' */ [_RS] = 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, RGB_TOG, RGB_VAI, \ - KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,RESET, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_VAD, \ - KC_TRNS, KC_TRNS, MO(_RS),KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ - MO(_FL), KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MO(_FL), RGB_SAI, \ - KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, RGB_MOD, RGB_MOD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_HUD, RGB_SAD, RGB_HUI), + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_TOG, RGB_VAI, \ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_VAD, \ + KC_TRNS, KC_TRNS, MO(_RS), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ + MO(_FL), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MO(_FL), RGB_SAI, \ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_MOD, RGB_MOD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_HUD, RGB_SAD, RGB_HUI), }; enum function_id { diff --git a/keyboards/lets_split/keymaps/xyverz/keymap.c b/keyboards/lets_split/keymaps/xyverz/keymap.c index d52eb40aeaf..216e946964f 100644 --- a/keyboards/lets_split/keymaps/xyverz/keymap.c +++ b/keyboards/lets_split/keymaps/xyverz/keymap.c @@ -122,9 +122,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Adjust (Lower + Raise) * ,-----------------------------------------------------------------------------------. - * | | Reset| | | | | | | | | | Del | + * | F11 | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F12 | * |------+------+------+------+------+-------------+------+------+------+------+------| - * | | | |Aud on|Audoff|AGnorm|AGswap|Qwerty|Colemk|Dvorak| | | + * | | Reset| |Aud on|Audoff|AGnorm|AGswap|Qwerty|Colemk|Dvorak| | | * |------+------+------+------+------+------|------+------+------+------+------+------| * | |RGB ON| MODE | HUE+ | HUE- | SAT+ | SAT- | VAL+ | VAL- | | | | * |------+------+------+------+------+------+------+------+------+------+------+------| diff --git a/keyboards/planck/keymaps/xyverz/Makefile b/keyboards/planck/keymaps/xyverz/Makefile new file mode 100644 index 00000000000..55bf853a078 --- /dev/null +++ b/keyboards/planck/keymaps/xyverz/Makefile @@ -0,0 +1,6 @@ +BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality +AUDIO_ENABLE = no # Audio output on port C6 + +ifndef QUANTUM_DIR + include ../../../../Makefile +endif diff --git a/keyboards/planck/keymaps/xyverz/keymap.c b/keyboards/planck/keymaps/xyverz/keymap.c index 94ace2af565..329bb043a5b 100644 --- a/keyboards/planck/keymaps/xyverz/keymap.c +++ b/keyboards/planck/keymaps/xyverz/keymap.c @@ -44,7 +44,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |------+------+------+------+------+------|------+------+------+------+------+------| * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter | * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Brite| Ctrl | Alt | GUI |Lower | Bksp |Space |Raise | Left | Down | Up |Right | + * | Ctrl | Alt | Left |Right |Lower | Bksp |Space |Raise | Up | Down | GUI |Enter | * `-----------------------------------------------------------------------------------' */ [_QWERTY] = { @@ -62,7 +62,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |------+------+------+------+------+------|------+------+------+------+------+------| * | Shift| Z | X | C | V | B | K | M | , | . | / |Enter | * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Brite| Ctrl | Alt | GUI |Lower | Bksp |Space |Raise | Left | Down | Up |Right | + * | Ctrl | Alt | Left |Right |Lower | Bksp |Space |Raise | Up | Down | GUI |Enter | * `-----------------------------------------------------------------------------------' */ [_COLEMAK] = { @@ -128,9 +128,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Adjust (Lower + Raise) * ,-----------------------------------------------------------------------------------. - * | | Reset| | | | | | | | | | Del | + * | F11 | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F12 | * |------+------+------+------+------+-------------+------+------+------+------+------| - * | | | |Aud on|Audoff|AGnorm|AGswap|Qwerty|Colemk|Dvorak| | | + * | | Reset| |Aud on|Audoff|AGnorm|AGswap|Qwerty|Colemk|Dvorak| | | * |------+------+------+------+------+------|------+------+------+------+------+------| * | |Voice-|Voice+|Mus on|Musoff|MIDIon|MIDIof| | | | | | * |------+------+------+------+------+------+------+------+------+------+------+------| @@ -138,8 +138,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `-----------------------------------------------------------------------------------' */ [_ADJUST] = { - {_______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL}, - {_______, _______, _______, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, _______, _______}, + {KC_F11, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F12 }, + {_______, RESET, _______, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, _______, _______}, {_______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, _______, _______, _______, _______, _______}, {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} } diff --git a/keyboards/planck/keymaps/xyverz/makefile.mk b/keyboards/planck/keymaps/xyverz/makefile.mk deleted file mode 100644 index 93a89bb4aba..00000000000 --- a/keyboards/planck/keymaps/xyverz/makefile.mk +++ /dev/null @@ -1,25 +0,0 @@ - - -# Build Options -# change to "no" to disable the options, or define them in the Makefile in -# the appropriate keymap folder that will get included automatically -# -BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) -MOUSEKEY_ENABLE = yes # Mouse keys(+4700) -EXTRAKEY_ENABLE = yes # Audio control and System control(+450) -CONSOLE_ENABLE = no # Console for debug(+400) -COMMAND_ENABLE = yes # Commands for debug and configuration -NKRO_ENABLE = yes # 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 = no # MIDI controls -AUDIO_ENABLE = yes # Audio output on port C6 -UNICODE_ENABLE = no # Unicode -BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID -RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. - -# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE -SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend - -ifndef QUANTUM_DIR - include ../../../../Makefile -endif From e508b5e04eaac5f56698333bdd2a9c2ffa89ab75 Mon Sep 17 00:00:00 2001 From: = <=> Date: Sun, 2 Apr 2017 18:27:24 +0900 Subject: [PATCH 053/190] Adds tong92's keymap to tv44 --- keyboards/tv44/keymaps/tong92/Makefile | 21 ++++ keyboards/tv44/keymaps/tong92/config.h | 12 +++ keyboards/tv44/keymaps/tong92/keymap.c | 138 ++++++++++++++++++++++++ keyboards/tv44/keymaps/tong92/readme.md | 52 +++++++++ 4 files changed, 223 insertions(+) create mode 100644 keyboards/tv44/keymaps/tong92/Makefile create mode 100644 keyboards/tv44/keymaps/tong92/config.h create mode 100644 keyboards/tv44/keymaps/tong92/keymap.c create mode 100644 keyboards/tv44/keymaps/tong92/readme.md diff --git a/keyboards/tv44/keymaps/tong92/Makefile b/keyboards/tv44/keymaps/tong92/Makefile new file mode 100644 index 00000000000..e60e3c5c5a3 --- /dev/null +++ b/keyboards/tv44/keymaps/tong92/Makefile @@ -0,0 +1,21 @@ +# Build Options +# change to "no" to disable the options, or define them in the Makefile in +# the appropriate keymap folder that will get included automatically +# +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE = yes # Mouse keys(+4700) +EXTRAKEY_ENABLE = no # Audio control and System control(+450) +CONSOLE_ENABLE = no # Console for debug(+400) +COMMAND_ENABLE = no # Commands for debug and configuration +NKRO_ENABLE = no # 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 = no # MIDI controls +AUDIO_ENABLE = no # Audio output on port C6 +UNICODE_ENABLE = no # Unicode +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend + +ifndef QUANTUM_DIR + include ../../../../Makefile +endif \ No newline at end of file diff --git a/keyboards/tv44/keymaps/tong92/config.h b/keyboards/tv44/keymaps/tong92/config.h new file mode 100644 index 00000000000..be959a823cd --- /dev/null +++ b/keyboards/tv44/keymaps/tong92/config.h @@ -0,0 +1,12 @@ +#ifndef CONFIG_USER_H +#define CONFIG_USER_H + +#include "../../config.h" + +// place overrides here +#ifdef BACKLIGHT_ENABLE + #define BACKLIGHT_PIN B2 + #define BACKLIGHT_LEVELS 7 +#endif + +#endif diff --git a/keyboards/tv44/keymaps/tong92/keymap.c b/keyboards/tv44/keymaps/tong92/keymap.c new file mode 100644 index 00000000000..4a16b3554f3 --- /dev/null +++ b/keyboards/tv44/keymaps/tong92/keymap.c @@ -0,0 +1,138 @@ +// This is the canonical layout file for the Quantum project. If you want to add another keyboard, +// this is the style you want to emulate. +//Author: tong92 + +#include "tv44.h" +#include "action_layer.h" +#include "eeconfig.h" +#ifdef BACKLIGHT_ENABLE + #include "backlight.h" +#endif + +// Fillers to make layering more clear +#define _______ KC_TRNS +#define LOWER F(1) +#define RAISE F(2) +#define FTN MO(4) +#define MOUSE M(10) +#define GO_DEFT M(99) +#define XXXXXXX KC_NO + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +/* Qwerty + * ,--------------------------------------------------------------------------. + * | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp | + * |------`-----`-----`-----`-----`-----`-----`-----`-----`-----`-----`-------| + * | Ctrl | A | S | D | F | G | H | J | K | L | ; | Enter| + * |-------`-----`-----`-----`-----`-----`-----`-----`-----`-----`-----`------| + * | Shift | Z | X | C | V | B | N | M | , | . | / |Shift| + * |--------`-----`-----`-----`-----`-----`-----`-----`-----`-----`-----`-----| + * | Ftn1 | GUI | Alt | Space/LOWER | Space/RAISE | ' | [ | ] | Alt | + * `--------------------------------------------------------------------------' + */ +[0] = { +{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_LCTL,KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN,KC_ENT}, +{KC_LSFT,KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM,KC_DOT,KC_SLSH,KC_RSFT }, +{FTN ,KC_LGUI,KC_LALT,LOWER,XXXXXXX,XXXXXXX,XXXXXXX,RAISE,KC_QUOT,KC_LBRC,KC_RBRC,KC_RALT} +}, +/* LOWER + * ,--------------------------------------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | | + * |------`-----`-----`-----`-----`-----`-----`-----`-----`-----`-----`-------| + * | | F1 | F2 | F3 | F4 | F5 | F6 | - | + | [ | ] | \ | + * |-------`-----`-----`-----`-----`-----`-----`-----`-----`-----`-----`------| + * | | F7 | F8 | F9 | F10 | F11 | F12 | | HOME| PgUp| UP | PgDo| + * |--------`-----`-----`-----`-----`-----`-----`-----`-----`-----`-----`-----| + * | | | | | | END | LEFT| Down|RIGHT| + * `--------------------------------------------------------------------------' + */ +[1] = { +{KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______}, +{_______,KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS,KC_PLUS,KC_LBRC,KC_RBRC,KC_BSLS }, +{_______,KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, XXXXXXX,KC_HOME,KC_PGUP,KC_UP ,KC_PGDN }, +{XXXXXXX,_______,_______,_______,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,KC_END, KC_LEFT,KC_DOWN,KC_RIGHT} +}, +/* RAISE + * ,--------------------------------------------------------------------------. + * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | | + * |------`-----`-----`-----`-----`-----`-----`-----`-----`-----`-----`-------| + * | | F1 | F2 | F3 | F4 | F5 | F6 | _ | = | { | } | | | + * |-------`-----`-----`-----`-----`-----`-----`-----`-----`-----`-----`------| + * | | F7 | F8 | F9 | F10 | F11 | F12 | | HOME| PgUp| UP | PgDo| + * |--------`-----`-----`-----`-----`-----`-----`-----`-----`-----`-----`-----| + * | | | | | | END | LEFT| Down|RIGHT| + * `--------------------------------------------------------------------------' + */ +[2] ={ +{KC_TILD,KC_EXLM,KC_AT, KC_HASH,KC_DLR, KC_PERC,KC_CIRC,KC_AMPR,KC_ASTR,KC_LPRN,KC_RPRN,_______ }, +{_______,KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS,KC_EQL, KC_LCBR,KC_RCBR,KC_PIPE }, +{_______,KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______,KC_HOME,KC_PGUP,KC_UP ,KC_PGDN }, +{XXXXXXX,_______,_______,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,_______,KC_END, KC_LEFT,KC_DOWN,KC_RIGHT} +}, +/* FTN + * ,--------------------------------------------------------------------------. + * | ESC |WinOf|WinUp| | |Sh+Ca| | PgUp| UP | PgDo|PrtSc| DELET | + * |------`-----`-----`-----`-----`-----`-----`-----`-----`-----`-----`-------| + * | |WinLe|WinDo|WinRi| |Al+Ca|CapsL| LEFT| DOWN|RIGHT| | | + * |-------`-----`-----`-----`-----`-----`-----`-----`-----`-----`-----`------| + * | |WinLW|WinRW| | |Ct+Ca|ScroL| HOME| | END | | Ctrl| + * |--------`-----`-----`-----`-----`-----`-----`-----`-----`-----`-----`-----| + * | | DeskL | DeskR| Task Manager| DeskX | MOUSE| | | LED | + * `--------------------------------------------------------------------------' + */ +[4] = { +{KC_ESC ,LALT(KC_F4) ,LGUI(KC_UP) ,XXXXXXX ,XXXXXXX ,S(KC_CAPS) ,XXXXXXX,KC_PGUP,KC_UP,KC_PGDN,KC_PSCR,KC_DELT}, +{_______,LGUI(KC_LEFT) ,LGUI(KC_DOWN) ,LGUI(KC_RIGHT) ,XXXXXXX ,LALT(KC_CAPS),KC_CAPS,KC_LEFT,KC_DOWN,KC_RIGHT,XXXXXXX,XXXXXXX}, +{_______,LGUI(LSFT(KC_LEFT)),LGUI(LSFT(KC_RIGHT)),XXXXXXX ,XXXXXXX ,LCTL(KC_CAPS),KC_SLCK,KC_HOME,XXXXXXX,KC_END,XXXXXXX,KC_RCTL}, +{_______,LGUI(LCTL(KC_LEFT)),LGUI(LCTL(KC_RIGHT)),LCTL(LALT(KC_DELT)),XXXXXXX,XXXXXXX,XXXXXXX,LGUI(LCTL(KC_F4)),MOUSE,XXXXXXX,XXXXXXX,M(0)} +}, +/* MOUSE + * ,--------------------------------------------------------------------------. + * | | | |Mo_Up| | | |M_WhL|M_WhU|M_WhR| | RESET | + * |------`-----`-----`-----`-----`-----`-----`-----`-----`-----`-----`-------| + * | | |Mo_Le|Mo_Do|Mo_Ri| | |M_Bt1|M_WhD|M_Bt2| | | + * |-------`-----`-----`-----`-----`-----`-----`-----`-----`-----`-----`------| + * | | | | | | | |M_AC0|M_AC1|M_AC2| | | + * |--------`-----`-----`-----`-----`-----`-----`-----`-----`-----`-----`-----| + * | | | | GO_DEFAULT | GO_DEFAULT | | | | | + * `--------------------------------------------------------------------------' + */ +[10] ={ +{XXXXXXX,XXXXXXX,XXXXXXX,KC_MS_U,XXXXXXX,XXXXXXX,XXXXXXX,KC_WH_L,KC_WH_U,KC_WH_R,XXXXXXX,RESET}, +{XXXXXXX,XXXXXXX,KC_MS_L,KC_MS_D,KC_MS_R,XXXXXXX,XXXXXXX,KC_BTN1,KC_WH_D,KC_BTN2,XXXXXXX,XXXXXXX}, +{XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,KC_ACL0,KC_ACL1,KC_ACL2,XXXXXXX,XXXXXXX}, +{XXXXXXX,XXXXXXX,XXXXXXX,GO_DEFT,XXXXXXX,XXXXXXX,XXXXXXX,GO_DEFT,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX} +} +}; + +const uint16_t PROGMEM fn_actions[] = { + [1] = ACTION_LAYER_TAP_KEY(1, KC_SPC), + [2] = ACTION_LAYER_TAP_KEY(2, KC_SPC) +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + switch(id) { + case 0: + if (record->event.pressed) { + #ifdef BACKLIGHT_ENABLE + backlight_step(); + #endif + } + break; + case 10: + if (record->event.pressed) { + layer_on(10); + } + break; + case 99: + if (record->event.pressed) { + layer_off(10); + layer_off(4); + } + break; + } + return MACRO_NONE; +}; \ No newline at end of file diff --git a/keyboards/tv44/keymaps/tong92/readme.md b/keyboards/tv44/keymaps/tong92/readme.md new file mode 100644 index 00000000000..8208572568c --- /dev/null +++ b/keyboards/tv44/keymaps/tong92/readme.md @@ -0,0 +1,52 @@ +# The tong92's keymap for tv44 + +- Arrow Layout (45key) +- my keymap for Window User +- Mouse Layer : space -> Default Layer + +## Qwerty + ,--------------------------------------------------------------------------. + | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp | + |------`-----`-----`-----`-----`-----`-----`-----`-----`-----`-----`-------| + | Ctrl | A | S | D | F | G | H | J | K | L | ; | Enter| + |-------`-----`-----`-----`-----`-----`-----`-----`-----`-----`-----`------| + | Shift | Z | X | C | V | B | N | M | , | . | / |Shift| + |--------`-----`-----`-----`-----`-----`-----`-----`-----`-----`-----`-----| + | Ftn1 | GUI | Alt | Space/LOWER | Space/RAISE | ' | [ | ] | Alt | + `--------------------------------------------------------------------------' + + +## RAISE + ,--------------------------------------------------------------------------. + | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | | + |------`-----`-----`-----`-----`-----`-----`-----`-----`-----`-----`-------| + | | F1 | F2 | F3 | F4 | F5 | F6 | _ | = | { | } | | | + |-------`-----`-----`-----`-----`-----`-----`-----`-----`-----`-----`------| + | | F7 | F8 | F9 | F10 | F11 | F12 | | HOME| PgUp| UP | PgDo| + |--------`-----`-----`-----`-----`-----`-----`-----`-----`-----`-----`-----| + | | | | | | END | LEFT| Down|RIGHT| + `--------------------------------------------------------------------------' + + +## FTN + ,--------------------------------------------------------------------------. + | ESC |WinOf|WinUp| | |Sh+Ca| | PgUp| UP | PgDo|PrtSc| DELET | + |------`-----`-----`-----`-----`-----`-----`-----`-----`-----`-----`-------| + | |WinLe|WinDo|WinRi| |Al+Ca|CapsL| LEFT| DOWN|RIGHT| | | + |-------`-----`-----`-----`-----`-----`-----`-----`-----`-----`-----`------| + | |WinLW|WinRW| | |Ct+Ca|ScroL| HOME| | END | | Ctrl| + |--------`-----`-----`-----`-----`-----`-----`-----`-----`-----`-----`-----| + | | DeskL | DeskR| Task Manager| DeskX | MOUSE| | | LED | + `--------------------------------------------------------------------------' + + +## MOUSE + ,--------------------------------------------------------------------------. + | | | |Mo_Up| | | |M_WhL|M_WhU|M_WhR| | RESET | + |------`-----`-----`-----`-----`-----`-----`-----`-----`-----`-----`-------| + | | |Mo_Le|Mo_Do|Mo_Ri| | |M_Bt1|M_WhD|M_Bt2| | | + |-------`-----`-----`-----`-----`-----`-----`-----`-----`-----`-----`------| + | | | | | | | |M_AC0|M_AC1|M_AC2| | | + |--------`-----`-----`-----`-----`-----`-----`-----`-----`-----`-----`-----| + | | | | GO_DEFAULT | GO_DEFAULT | | | | | + `--------------------------------------------------------------------------' From f8ed4ed573c798bd40a1063072fd619732a2d49a Mon Sep 17 00:00:00 2001 From: Nurahmadie Date: Tue, 21 Feb 2017 09:39:51 +0700 Subject: [PATCH 054/190] Initial work for my kbod support in qmk_firmware - Wiring layout done No actual keymap yet --- keyboards/handwired/kbod/Makefile | 3 + keyboards/handwired/kbod/config.h | 162 ++++++++++++++++++ keyboards/handwired/kbod/kbod.c | 28 +++ keyboards/handwired/kbod/kbod.h | 25 +++ .../handwired/kbod/keymaps/default/Makefile | 21 +++ .../handwired/kbod/keymaps/default/config.h | 8 + .../handwired/kbod/keymaps/default/keymap.c | 44 +++++ .../handwired/kbod/keymaps/default/readme.md | 1 + keyboards/handwired/kbod/readme.md | 28 +++ keyboards/handwired/kbod/rules.mk | 68 ++++++++ 10 files changed, 388 insertions(+) create mode 100644 keyboards/handwired/kbod/Makefile create mode 100644 keyboards/handwired/kbod/config.h create mode 100644 keyboards/handwired/kbod/kbod.c create mode 100644 keyboards/handwired/kbod/kbod.h create mode 100644 keyboards/handwired/kbod/keymaps/default/Makefile create mode 100644 keyboards/handwired/kbod/keymaps/default/config.h create mode 100644 keyboards/handwired/kbod/keymaps/default/keymap.c create mode 100644 keyboards/handwired/kbod/keymaps/default/readme.md create mode 100644 keyboards/handwired/kbod/readme.md create mode 100644 keyboards/handwired/kbod/rules.mk diff --git a/keyboards/handwired/kbod/Makefile b/keyboards/handwired/kbod/Makefile new file mode 100644 index 00000000000..4e2a6f00fd8 --- /dev/null +++ b/keyboards/handwired/kbod/Makefile @@ -0,0 +1,3 @@ +ifndef MAKEFILE_INCLUDED + include ../../Makefile +endif \ No newline at end of file diff --git a/keyboards/handwired/kbod/config.h b/keyboards/handwired/kbod/config.h new file mode 100644 index 00000000000..e73b7d0865b --- /dev/null +++ b/keyboards/handwired/kbod/config.h @@ -0,0 +1,162 @@ +/* +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 . +*/ + +#ifndef CONFIG_H +#define CONFIG_H + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x6060 +#define DEVICE_VER 0x0001 +#define MANUFACTURER fudanchii +#define PRODUCT kbod +#define DESCRIPTION Keyboard of Disapproval + +/* key matrix size */ +#define MATRIX_ROWS 8 +#define MATRIX_COLS 8 + +/* + * 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 MATRIX_ROW_PINS { C6, D7, E6, B4, B5, B6, B7, D6 } +#define MATRIX_COL_PINS { D0, D1, F0, F1, F4, F5, F6, F7 } +#define UNUSED_PINS + +/* COL2ROW, ROW2COL, or CUSTOM_MATRIX */ +#define DIODE_DIRECTION COL2ROW + +// #define BACKLIGHT_PIN B7 +// #define BACKLIGHT_BREATHING +// #define BACKLIGHT_LEVELS 3 + + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCING_DELAY 5 + +/* define if matrix has ghost (lacks anti-ghosting diodes) */ +//#define MATRIX_HAS_GHOST + +/* number of backlight levels */ + +/* 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 + * + * 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 + * + * 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 */ +#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. + */ + +/* disable debug print */ +//#define NO_DEBUG + +/* disable print */ +//#define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT +//#define NO_ACTION_MACRO +//#define NO_ACTION_FUNCTION + +#endif diff --git a/keyboards/handwired/kbod/kbod.c b/keyboards/handwired/kbod/kbod.c new file mode 100644 index 00000000000..9a12cae0d20 --- /dev/null +++ b/keyboards/handwired/kbod/kbod.c @@ -0,0 +1,28 @@ +#include "kbod.h" + +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) + + matrix_scan_user(); +} + +bool process_record_kb(uint16_t keycode, keyrecord_t *record) { + // put your per-action keyboard code here + // runs for every action, just before processing by the firmware + + return process_record_user(keycode, 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); +} diff --git a/keyboards/handwired/kbod/kbod.h b/keyboards/handwired/kbod/kbod.h new file mode 100644 index 00000000000..629fb3eac82 --- /dev/null +++ b/keyboards/handwired/kbod/kbod.h @@ -0,0 +1,25 @@ +#ifndef KBOD_H +#define KBOD_H + +#include "quantum.h" + +// This a shortcut to help you visually see your layout. +// The following is an example using the Planck MIT layout +// The first section contains all of the arguements +// The second converts the arguments into a two-dimensional array +#define KEYMAP( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, K2C, \ + k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, \ + k40, k41, k42, k43, k44, k45, k46, k47 \ +) \ +{ \ + { k00, k01, k02, k03, k04, k05, k06, k07 }, { k08, k09, k0A, k0B, k0C, k0D, KC_NO, KC_NO }, \ + { k10, k11, k12, k13, k14, k15, k16, k17 }, { k18, k19, k1A, k1B, k1C, k1D, KC_NO, k3B }, \ + { k20, k21, k22, k23, k24, k25, k26, k27 }, { k28, k29, k2A, k2B, k2C, k38, k39, k3A }, \ + { k30, k31, k32, k33, k34, k35, k36, k37 }, \ + { k40, k41, k42, k43, k44, k45, k46, k47 }, \ +} + +#endif diff --git a/keyboards/handwired/kbod/keymaps/default/Makefile b/keyboards/handwired/kbod/keymaps/default/Makefile new file mode 100644 index 00000000000..0d9def930cd --- /dev/null +++ b/keyboards/handwired/kbod/keymaps/default/Makefile @@ -0,0 +1,21 @@ +# Build Options +# change to "no" to disable the options, or define them in the Makefile in +# the appropriate keymap folder that will get included automatically +# +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE = yes # Mouse keys(+4700) +EXTRAKEY_ENABLE = yes # Audio control and System control(+450) +CONSOLE_ENABLE = no # Console for debug(+400) +COMMAND_ENABLE = no # Commands for debug and configuration +NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +MIDI_ENABLE = no # MIDI controls +AUDIO_ENABLE = no # Audio output on port C6 +UNICODE_ENABLE = no # Unicode +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend + +ifndef QUANTUM_DIR + include ../../../../Makefile +endif \ No newline at end of file diff --git a/keyboards/handwired/kbod/keymaps/default/config.h b/keyboards/handwired/kbod/keymaps/default/config.h new file mode 100644 index 00000000000..df06a262062 --- /dev/null +++ b/keyboards/handwired/kbod/keymaps/default/config.h @@ -0,0 +1,8 @@ +#ifndef CONFIG_USER_H +#define CONFIG_USER_H + +#include "../../config.h" + +// place overrides here + +#endif \ No newline at end of file diff --git a/keyboards/handwired/kbod/keymaps/default/keymap.c b/keyboards/handwired/kbod/keymaps/default/keymap.c new file mode 100644 index 00000000000..9245270eb3c --- /dev/null +++ b/keyboards/handwired/kbod/keymaps/default/keymap.c @@ -0,0 +1,44 @@ +#include "kbod.h" + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[0] = KEYMAP( /* Base */ + KC_A, KC_1, KC_H, \ + KC_TAB, KC_SPC \ +), +}; + +const uint16_t PROGMEM fn_actions[] = { + +}; + +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; +}; + + +void matrix_init_user(void) { + +} + +void matrix_scan_user(void) { + +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + return true; +} + +void led_set_user(uint8_t usb_led) { + +} \ No newline at end of file diff --git a/keyboards/handwired/kbod/keymaps/default/readme.md b/keyboards/handwired/kbod/keymaps/default/readme.md new file mode 100644 index 00000000000..3fe84c6194f --- /dev/null +++ b/keyboards/handwired/kbod/keymaps/default/readme.md @@ -0,0 +1 @@ +# The default keymap for kbod \ No newline at end of file diff --git a/keyboards/handwired/kbod/readme.md b/keyboards/handwired/kbod/readme.md new file mode 100644 index 00000000000..179ab1d7927 --- /dev/null +++ b/keyboards/handwired/kbod/readme.md @@ -0,0 +1,28 @@ +kbod keyboard firmware +====================== + +## Quantum MK Firmware + +For the full Quantum feature list, see [the parent readme](/). + +## Building + +Download or clone the whole firmware and navigate to the keyboards/kbod folder. Once your dev env is setup, you'll be able to type `make` to generate your .hex - you can then use the Teensy Loader to program your .hex file. + +Depending on which keymap you would like to use, you will have to compile slightly differently. + +### Default + +To build with the default keymap, simply run `make default`. + +### 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 a folder with the name of your keymap in the keymaps folder, and see keymap documentation (you can find in top readme.md) and existant keymap files. + +To build the firmware binary hex file with a keymap just do `make` with a keymap like this: + +``` +$ make [default|jack|] +``` + +Keymaps follow the format **__\.c__** and are stored in the `keymaps` folder. diff --git a/keyboards/handwired/kbod/rules.mk b/keyboards/handwired/kbod/rules.mk new file mode 100644 index 00000000000..4fcd147a9af --- /dev/null +++ b/keyboards/handwired/kbod/rules.mk @@ -0,0 +1,68 @@ +# MCU name +#MCU = at90usb1287 +MCU = atmega32u4 + +# Processor frequency. +# This will define a symbol, F_CPU, in all source code files equal to the +# processor frequency in Hz. You can then use this symbol in your source code to +# calculate timings. Do NOT tack on a 'UL' at the end, this will be done +# automatically to create a 32-bit value in your source code. +# +# This will be an integer division of F_USB below, as it is sourced by +# F_USB after it has run through any CPU prescalers. Note that this value +# does not *change* the processor frequency - it should merely be updated to +# reflect the processor speed set externally so that the code can use accurate +# software delays. +F_CPU = 16000000 + + +# +# LUFA specific +# +# Target architecture (see library "Board Types" documentation). +ARCH = AVR8 + +# Input clock frequency. +# This will define a symbol, F_USB, in all source code files equal to the +# input clock frequency (before any prescaling is performed) in Hz. This value may +# differ from F_CPU if prescaling is used on the latter, and is required as the +# raw input clock is fed directly to the PLL sections of the AVR for high speed +# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL' +# at the end, this will be done automatically to create a 32-bit value in your +# source code. +# +# If no clock division is performed on the input clock inside the AVR (via the +# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU. +F_USB = $(F_CPU) + +# Interrupt driven control endpoint task(+60) +OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT + + +# Boot Section Size in *bytes* +# Teensy halfKay 512 +# Teensy++ halfKay 1024 +# Atmel DFU loader 4096 +# LUFA bootloader 4096 +# USBaspLoader 2048 +OPT_DEFS += -DBOOTLOADER_SIZE=4096 + + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE ?= no # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE ?= yes # Mouse keys(+4700) +EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450) +CONSOLE_ENABLE ?= no # Console for debug(+400) +COMMAND_ENABLE ?= no # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE ?= no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE ?= no # USB Nkey Rollover +BACKLIGHT_ENABLE ?= no # Enable keyboard backlight functionality on B7 by default +MIDI_ENABLE ?= no # MIDI controls +UNICODE_ENABLE ?= no # Unicode +BLUETOOTH_ENABLE ?= no # Enable Bluetooth with the Adafruit EZ-Key HID +AUDIO_ENABLE ?= no # Audio output on port C6 +FAUXCLICKY_ENABLE ?= no # Use buzzer to emulate clicky switches From 8b206e1e75f487a473b8a58223c857363ce0a6e4 Mon Sep 17 00:00:00 2001 From: Nurahmadie Date: Wed, 22 Feb 2017 06:40:48 +0700 Subject: [PATCH 055/190] Add initial keymap *crossfingers* --- keyboards/handwired/kbod/kbod.h | 4 - .../handwired/kbod/keymaps/default/keymap.c | 105 +++++++++++++----- 2 files changed, 77 insertions(+), 32 deletions(-) diff --git a/keyboards/handwired/kbod/kbod.h b/keyboards/handwired/kbod/kbod.h index 629fb3eac82..04ecdd39213 100644 --- a/keyboards/handwired/kbod/kbod.h +++ b/keyboards/handwired/kbod/kbod.h @@ -3,10 +3,6 @@ #include "quantum.h" -// This a shortcut to help you visually see your layout. -// The following is an example using the Planck MIT layout -// The first section contains all of the arguements -// The second converts the arguments into a two-dimensional array #define KEYMAP( \ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, \ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, \ diff --git a/keyboards/handwired/kbod/keymaps/default/keymap.c b/keyboards/handwired/kbod/keymaps/default/keymap.c index 9245270eb3c..137ddf38785 100644 --- a/keyboards/handwired/kbod/keymaps/default/keymap.c +++ b/keyboards/handwired/kbod/keymaps/default/keymap.c @@ -1,44 +1,93 @@ #include "kbod.h" +#define _____ KC_TRNS + const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[0] = KEYMAP( /* Base */ - KC_A, KC_1, KC_H, \ - KC_TAB, KC_SPC \ -), + KEYMAP( /* Base */ + F(0), KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQUAL, 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_LBRC, KC_RBRC, KC_BSLASH, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCOLON, KC_QUOT, KC_ENTER, + KC_LSPO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMMA, KC_DOT, KC_SLASH, KC_RSPO, + LT(1, KC_LEAD), KC_LCTL, KC_LALT, KC_SPACE, KC_RALT, KC_RGUI, KC_APP, KC_RCTL + ), + KEYMAP( /* Cursor layer */ + KC_GRAVE, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, + _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, KC_INSERT, + _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, KC_HOME, KC_END, _____, + _____, _____, _____, _____, _____, _____, _____, _____, KC_PGUP, KC_PGDN, KC_UP, _____, + _____, _____, _____, _____, _____, KC_LEFT, KC_DOWN, KC_RIGHT, _____ + ), + KEYMAP( /* Multimedia layer */ + _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, + _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, + _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, + _____, _____, _____, _____, _____, _____, _____, _____, _____, KC_MS_BTN1, KC_MS_UP, _____, + LT(3, KC_LEAD), _____, _____, _____, _____, KC_MS_LEFT, KC_MS_DOWN, KC_MS_RIGHT, KC_MS_BTN3 + ), + KEYMAP( /* Multimedia layer */ + _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, + _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, + _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, + _____, _____, _____, _____, _____, _____, _____, _____, _____, KC_MS_BTN1, KC_MS_WH_UP, _____, + _____, _____, _____, _____, _____, KC_MS_WH_LEFT, KC_MS_WH_DOWN, KC_MS_WH_RIGHT, KC_MS_BTN3 + ), }; const uint16_t PROGMEM fn_actions[] = { - + [0] = ACTION_FUNCTION(0), }; +void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { + static uint8_t shift_esc_shift_mask; + switch (id) { + case 0: + shift_esc_shift_mask = get_mods()&MODS_CTRL_MASK; + if (record->event.pressed) { + if (shift_esc_shift_mask) { + add_key(KC_GRV); + send_keyboard_report(); + } else { + add_key(KC_ESC); + send_keyboard_report(); + } + } else { + if (shift_esc_shift_mask) { + del_key(KC_GRV); + send_keyboard_report(); + } else { + del_key(KC_ESC); + send_keyboard_report(); + } + } + break; + } +} + + +LEADER_EXTERNS(); + +void matrix_scan_user(void) { + LEADER_DICTIONARY() { + leading = false; + leader_end(); + + SEQ_ONE_KEY(KC_B) { + layer_switch(0); + } + SEQ_ONE_KEY(KC_C) { + layer_switch(1); + } + SEQ_ONE_KEY(KC_M) { + layer_switch(2); + } + } +} + 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; }; - -void matrix_init_user(void) { - -} - -void matrix_scan_user(void) { - -} - -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - return true; -} - void led_set_user(uint8_t usb_led) { } \ No newline at end of file From 7614c6b7a75c93b248d36f039f919ab925afde32 Mon Sep 17 00:00:00 2001 From: Nurahmadie Date: Fri, 24 Feb 2017 12:06:10 +0700 Subject: [PATCH 056/190] Remove lead keys, fix some typos, rearrange layers --- keyboards/handwired/kbod/kbod.h | 2 +- .../handwired/kbod/keymaps/default/keymap.c | 37 +++++-------------- 2 files changed, 10 insertions(+), 29 deletions(-) diff --git a/keyboards/handwired/kbod/kbod.h b/keyboards/handwired/kbod/kbod.h index 04ecdd39213..35606362429 100644 --- a/keyboards/handwired/kbod/kbod.h +++ b/keyboards/handwired/kbod/kbod.h @@ -6,7 +6,7 @@ #define KEYMAP( \ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, \ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, \ - k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, K2C, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, \ k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, \ k40, k41, k42, k43, k44, k45, k46, k47 \ ) \ diff --git a/keyboards/handwired/kbod/keymaps/default/keymap.c b/keyboards/handwired/kbod/keymaps/default/keymap.c index 137ddf38785..463b1fc8bed 100644 --- a/keyboards/handwired/kbod/keymaps/default/keymap.c +++ b/keyboards/handwired/kbod/keymaps/default/keymap.c @@ -7,29 +7,29 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { F(0), KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQUAL, 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_LBRC, KC_RBRC, KC_BSLASH, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCOLON, KC_QUOT, KC_ENTER, - KC_LSPO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMMA, KC_DOT, KC_SLASH, KC_RSPO, - LT(1, KC_LEAD), KC_LCTL, KC_LALT, KC_SPACE, KC_RALT, KC_RGUI, KC_APP, KC_RCTL + KC_LSPO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMMA, KC_DOT, KC_SLASH, KC_RSPC, + MO(1), KC_LCTL, KC_LALT, KC_SPACE, KC_RALT, KC_RGUI, KC_APP, KC_RCTL ), KEYMAP( /* Cursor layer */ KC_GRAVE, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, - _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, KC_INSERT, - _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, KC_HOME, KC_END, _____, + TO(3), _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, KC_INSERT, + TO(2), _____, _____, _____, _____, _____, _____, _____, _____, _____, KC_HOME, KC_END, _____, _____, _____, _____, _____, _____, _____, _____, _____, KC_PGUP, KC_PGDN, KC_UP, _____, - _____, _____, _____, _____, _____, KC_LEFT, KC_DOWN, KC_RIGHT, _____ + _____, _____, _____, _____, KC_LEFT, KC_DOWN, KC_RIGHT, _____ ), KEYMAP( /* Multimedia layer */ _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, KC_MS_BTN1, KC_MS_UP, _____, - LT(3, KC_LEAD), _____, _____, _____, _____, KC_MS_LEFT, KC_MS_DOWN, KC_MS_RIGHT, KC_MS_BTN3 + TO(0), _____, _____, _____, KC_MS_LEFT, KC_MS_DOWN, KC_MS_RIGHT, KC_MS_BTN3 ), KEYMAP( /* Multimedia layer */ _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, KC_MS_BTN1, KC_MS_WH_UP, _____, - _____, _____, _____, _____, _____, KC_MS_WH_LEFT, KC_MS_WH_DOWN, KC_MS_WH_RIGHT, KC_MS_BTN3 + TO(0), _____, _____, _____, KC_MS_WH_LEFT, KC_MS_WH_DOWN, KC_MS_WH_RIGHT, KC_MS_BTN3 ), }; @@ -37,6 +37,7 @@ const uint16_t PROGMEM fn_actions[] = { [0] = ACTION_FUNCTION(0), }; +#define MODS_CTRL_MASK (MOD_BIT(KC_LSHIFT)|MOD_BIT(KC_RSHIFT)) void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { static uint8_t shift_esc_shift_mask; switch (id) { @@ -63,31 +64,11 @@ void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { } } - -LEADER_EXTERNS(); - -void matrix_scan_user(void) { - LEADER_DICTIONARY() { - leading = false; - leader_end(); - - SEQ_ONE_KEY(KC_B) { - layer_switch(0); - } - SEQ_ONE_KEY(KC_C) { - layer_switch(1); - } - SEQ_ONE_KEY(KC_M) { - layer_switch(2); - } - } -} - const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { return MACRO_NONE; }; void led_set_user(uint8_t usb_led) { - + } \ No newline at end of file From af7430b896bdc15dd007b2227ed0b6f2feb0634a Mon Sep 17 00:00:00 2001 From: Nurahmadie Date: Sat, 25 Feb 2017 12:36:53 +0700 Subject: [PATCH 057/190] Add capslock led, and audio buttons - Also change layer switch to momentary --- .../handwired/kbod/keymaps/default/keymap.c | 42 ++++++++++++------- 1 file changed, 26 insertions(+), 16 deletions(-) diff --git a/keyboards/handwired/kbod/keymaps/default/keymap.c b/keyboards/handwired/kbod/keymaps/default/keymap.c index 463b1fc8bed..3514ffb98ac 100644 --- a/keyboards/handwired/kbod/keymaps/default/keymap.c +++ b/keyboards/handwired/kbod/keymaps/default/keymap.c @@ -2,34 +2,36 @@ #define _____ KC_TRNS +#define MODS_CTRL_MASK (MOD_BIT(KC_LSHIFT)|MOD_BIT(KC_RSHIFT)) + const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KEYMAP( /* Base */ F(0), KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQUAL, 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_LBRC, KC_RBRC, KC_BSLASH, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCOLON, KC_QUOT, KC_ENTER, - KC_LSPO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMMA, KC_DOT, KC_SLASH, KC_RSPC, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMMA, KC_DOT, KC_SLASH, KC_RSFT, MO(1), KC_LCTL, KC_LALT, KC_SPACE, KC_RALT, KC_RGUI, KC_APP, KC_RCTL ), KEYMAP( /* Cursor layer */ KC_GRAVE, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, - TO(3), _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, KC_INSERT, - TO(2), _____, _____, _____, _____, _____, _____, _____, _____, _____, KC_HOME, KC_END, _____, - _____, _____, _____, _____, _____, _____, _____, _____, KC_PGUP, KC_PGDN, KC_UP, _____, - _____, _____, _____, _____, KC_LEFT, KC_DOWN, KC_RIGHT, _____ + MO(3), _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, KC_INSERT, + MO(2), _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, KC_HOME, _____, + _____, _____, _____, _____, _____, _____, _____, _____, KC_PGUP, KC_PGDN, KC_END, KC_UP, + _____, _____, _____, _____, _____, KC_LEFT, KC_DOWN, KC_RIGHT ), KEYMAP( /* Multimedia layer */ - _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, - _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, + TO(0), _____, _____, _____, _____, _____, _____, _____, _____, _____, KC_AUDIO_MUTE, KC_AUDIO_VOL_DOWN, KC_AUDIO_VOL_UP, _____, + _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, KC_PSCR, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, - _____, _____, _____, _____, _____, _____, _____, _____, _____, KC_MS_BTN1, KC_MS_UP, _____, - TO(0), _____, _____, _____, KC_MS_LEFT, KC_MS_DOWN, KC_MS_RIGHT, KC_MS_BTN3 + _____, _____, _____, _____, _____, _____, _____, _____, _____, KC_MS_BTN1, KC_MS_UP, KC_MS_BTN2, + _____, _____, _____, _____, KC_MS_LEFT, KC_MS_DOWN, KC_MS_RIGHT, KC_MS_BTN3 ), KEYMAP( /* Multimedia layer */ - _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, - _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, + TO(0), _____, _____, _____, _____, _____, _____, _____, _____, _____, KC_AUDIO_MUTE, KC_AUDIO_VOL_DOWN, KC_AUDIO_VOL_UP, _____, + _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, KC_PSCR, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, - _____, _____, _____, _____, _____, _____, _____, _____, _____, KC_MS_BTN1, KC_MS_WH_UP, _____, - TO(0), _____, _____, _____, KC_MS_WH_LEFT, KC_MS_WH_DOWN, KC_MS_WH_RIGHT, KC_MS_BTN3 + _____, _____, _____, _____, _____, _____, _____, _____, _____, KC_MS_BTN1, KC_MS_WH_UP, KC_MS_BTN2, + _____, _____, _____, _____, KC_MS_WH_LEFT, KC_MS_WH_DOWN, KC_MS_WH_RIGHT, KC_MS_BTN3 ), }; @@ -37,7 +39,7 @@ const uint16_t PROGMEM fn_actions[] = { [0] = ACTION_FUNCTION(0), }; -#define MODS_CTRL_MASK (MOD_BIT(KC_LSHIFT)|MOD_BIT(KC_RSHIFT)) + void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { static uint8_t shift_esc_shift_mask; switch (id) { @@ -66,9 +68,17 @@ void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { - return MACRO_NONE; + return MACRO_NONE; }; void led_set_user(uint8_t usb_led) { - + if (usb_led & _BV(USB_LED_CAPS_LOCK)) { + PORTB |= _BV(PB0); + } else { + PORTB &= ~_BV(PB0); + } +} + +void matrix_init_user(void) { + DDRB |= _BV(PB0); } \ No newline at end of file From c9dd11d5abec11aa046031c12b1aa5edc5efae77 Mon Sep 17 00:00:00 2001 From: Nurahmadie Date: Sat, 25 Feb 2017 13:30:18 +0700 Subject: [PATCH 058/190] Enable alt-F4 without [Fn] - Add led indicator when keymap not on base layer \o/ --- .../handwired/kbod/keymaps/default/keymap.c | 62 ++++++++++++------- 1 file changed, 41 insertions(+), 21 deletions(-) diff --git a/keyboards/handwired/kbod/keymaps/default/keymap.c b/keyboards/handwired/kbod/keymaps/default/keymap.c index 3514ffb98ac..6f2805d9dc8 100644 --- a/keyboards/handwired/kbod/keymaps/default/keymap.c +++ b/keyboards/handwired/kbod/keymaps/default/keymap.c @@ -2,11 +2,31 @@ #define _____ KC_TRNS -#define MODS_CTRL_MASK (MOD_BIT(KC_LSHIFT)|MOD_BIT(KC_RSHIFT)) +#define MODS_PRESSED(btn) (get_mods() & (MOD_BIT(KC_L##btn)|MOD_BIT(KC_R##btn))) + +#define SET_WHETHER(mask, btn1, btn2) \ +if (record->event.pressed) { \ + if (mask) { \ + add_key(btn2); \ + send_keyboard_report(); \ + } else { \ + add_key(btn1); \ + send_keyboard_report(); \ + } \ +} else { \ + if (mask) { \ + del_key(btn2); \ + send_keyboard_report(); \ + } else { \ + del_key(btn1); \ + send_keyboard_report(); \ + } \ +} \ + const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KEYMAP( /* Base */ - F(0), KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQUAL, KC_BSPC, + F(0), KC_1, KC_2, KC_3, F(1), KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQUAL, 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_LBRC, KC_RBRC, KC_BSLASH, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCOLON, KC_QUOT, KC_ENTER, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMMA, KC_DOT, KC_SLASH, KC_RSFT, @@ -37,31 +57,21 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { const uint16_t PROGMEM fn_actions[] = { [0] = ACTION_FUNCTION(0), + [1] = ACTION_FUNCTION(1), }; void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { - static uint8_t shift_esc_shift_mask; + static uint8_t shift_esc_mask; + static uint8_t alt_mask; switch (id) { case 0: - shift_esc_shift_mask = get_mods()&MODS_CTRL_MASK; - if (record->event.pressed) { - if (shift_esc_shift_mask) { - add_key(KC_GRV); - send_keyboard_report(); - } else { - add_key(KC_ESC); - send_keyboard_report(); - } - } else { - if (shift_esc_shift_mask) { - del_key(KC_GRV); - send_keyboard_report(); - } else { - del_key(KC_ESC); - send_keyboard_report(); - } - } + shift_esc_mask = MODS_PRESSED(SHIFT); + SET_WHETHER(shift_esc_mask, KC_ESC, KC_GRAVE) + break; + case 1: + alt_mask = MODS_PRESSED(ALT); + SET_WHETHER(alt_mask, KC_4, KC_F4); break; } } @@ -81,4 +91,14 @@ void led_set_user(uint8_t usb_led) { void matrix_init_user(void) { DDRB |= _BV(PB0); + DDRC |= _BV(PC7); +} + +void matrix_scan_user(void) { + uint8_t layer = biton32(layer_state); + if (layer) { + PORTC |= _BV(PC7); + } else { + PORTC &= ~_BV(PC7); + } } \ No newline at end of file From 10105f645a7fdcf0d636e0eb2c768754521602a3 Mon Sep 17 00:00:00 2001 From: Nurahmadie Date: Sun, 26 Feb 2017 11:41:03 +0700 Subject: [PATCH 059/190] Add README --- .../handwired/kbod/keymaps/default/readme.md | 6 ++++- keyboards/handwired/kbod/readme.md | 25 ++++++------------- 2 files changed, 13 insertions(+), 18 deletions(-) diff --git a/keyboards/handwired/kbod/keymaps/default/readme.md b/keyboards/handwired/kbod/keymaps/default/readme.md index 3fe84c6194f..35c22ec007b 100644 --- a/keyboards/handwired/kbod/keymaps/default/readme.md +++ b/keyboards/handwired/kbod/keymaps/default/readme.md @@ -1 +1,5 @@ -# The default keymap for kbod \ No newline at end of file +# The default keymap for kbod + +This is the default keymap for kbod, + +it consists of a base layer with QWERTY layout, a momentary cursor-layer, and mouse-keys and multimedia layers. \ No newline at end of file diff --git a/keyboards/handwired/kbod/readme.md b/keyboards/handwired/kbod/readme.md index 179ab1d7927..bd58fdd3842 100644 --- a/keyboards/handwired/kbod/readme.md +++ b/keyboards/handwired/kbod/readme.md @@ -1,28 +1,19 @@ -kbod keyboard firmware +KBOD keyboard firmware ====================== +KBOD is a 60% Keyboard kit, hand-wired, with Arduino Micro as its controller. It's utilize 8x8 matrix and has layout similar to GH-60 + ## Quantum MK Firmware For the full Quantum feature list, see [the parent readme](/). ## Building -Download or clone the whole firmware and navigate to the keyboards/kbod folder. Once your dev env is setup, you'll be able to type `make` to generate your .hex - you can then use the Teensy Loader to program your .hex file. +Download or clone the whole firmware and use ```make handwired-kbod-default``` to generate the .hex file. You may flash it with avrdude -Depending on which keymap you would like to use, you will have to compile slightly differently. - -### Default - -To build with the default keymap, simply run `make default`. - -### 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 a folder with the name of your keymap in the keymaps folder, and see keymap documentation (you can find in top readme.md) and existant keymap files. - -To build the firmware binary hex file with a keymap just do `make` with a keymap like this: +## Flashing +Something along this line: ``` -$ make [default|jack|] -``` - -Keymaps follow the format **__\.c__** and are stored in the `keymaps` folder. +avrdude -p m32u4 -c avr109 -P -C -e -u flash:w:handwired_kbod_default.hex +``` \ No newline at end of file From f5d78c739d48bad32409b3819c8d624d5e78c017 Mon Sep 17 00:00:00 2001 From: Nurahmadie Date: Sun, 26 Feb 2017 11:44:21 +0700 Subject: [PATCH 060/190] Forgot semicolon, and add reference link --- keyboards/handwired/kbod/keymaps/default/keymap.c | 2 +- keyboards/handwired/kbod/readme.md | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/keyboards/handwired/kbod/keymaps/default/keymap.c b/keyboards/handwired/kbod/keymaps/default/keymap.c index 6f2805d9dc8..a6c09dd5301 100644 --- a/keyboards/handwired/kbod/keymaps/default/keymap.c +++ b/keyboards/handwired/kbod/keymaps/default/keymap.c @@ -67,7 +67,7 @@ void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { switch (id) { case 0: shift_esc_mask = MODS_PRESSED(SHIFT); - SET_WHETHER(shift_esc_mask, KC_ESC, KC_GRAVE) + SET_WHETHER(shift_esc_mask, KC_ESC, KC_GRAVE); break; case 1: alt_mask = MODS_PRESSED(ALT); diff --git a/keyboards/handwired/kbod/readme.md b/keyboards/handwired/kbod/readme.md index bd58fdd3842..67bf711bee4 100644 --- a/keyboards/handwired/kbod/readme.md +++ b/keyboards/handwired/kbod/readme.md @@ -16,4 +16,6 @@ Something along this line: ``` avrdude -p m32u4 -c avr109 -P -C -e -u flash:w:handwired_kbod_default.hex -``` \ No newline at end of file +``` + +[More info](https://github.com/fudanchii/keyboard_of_disapproval) \ No newline at end of file From 15ddaa7f1929aa301a325b03c57e267524d56ea8 Mon Sep 17 00:00:00 2001 From: Nurahmadie Date: Sat, 11 Mar 2017 20:52:52 +0700 Subject: [PATCH 061/190] Fix layer stuck, and add numpad support --- keyboards/handwired/kbod/config.h | 5 +++++ .../handwired/kbod/keymaps/default/keymap.c | 20 +++++++++---------- 2 files changed, 15 insertions(+), 10 deletions(-) diff --git a/keyboards/handwired/kbod/config.h b/keyboards/handwired/kbod/config.h index e73b7d0865b..f3d0c8bf2de 100644 --- a/keyboards/handwired/kbod/config.h +++ b/keyboards/handwired/kbod/config.h @@ -159,4 +159,9 @@ along with this program. If not, see . //#define NO_ACTION_MACRO //#define NO_ACTION_FUNCTION +#define PREVENT_STUCK_MODIFIERS + +#undef TAPPING_TOGGLE +#define TAPPING_TOGGLE 2 + #endif diff --git a/keyboards/handwired/kbod/keymaps/default/keymap.c b/keyboards/handwired/kbod/keymaps/default/keymap.c index a6c09dd5301..65c5f552c8c 100644 --- a/keyboards/handwired/kbod/keymaps/default/keymap.c +++ b/keyboards/handwired/kbod/keymaps/default/keymap.c @@ -30,7 +30,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLASH, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCOLON, KC_QUOT, KC_ENTER, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMMA, KC_DOT, KC_SLASH, KC_RSFT, - MO(1), KC_LCTL, KC_LALT, KC_SPACE, KC_RALT, KC_RGUI, KC_APP, KC_RCTL + TT(1), KC_LCTL, KC_LALT, KC_SPACE, KC_RALT, KC_RGUI, KC_APP, KC_RCTL ), KEYMAP( /* Cursor layer */ KC_GRAVE, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, @@ -39,19 +39,19 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _____, _____, _____, _____, _____, _____, _____, _____, KC_PGUP, KC_PGDN, KC_END, KC_UP, _____, _____, _____, _____, _____, KC_LEFT, KC_DOWN, KC_RIGHT ), - KEYMAP( /* Multimedia layer */ - TO(0), _____, _____, _____, _____, _____, _____, _____, _____, _____, KC_AUDIO_MUTE, KC_AUDIO_VOL_DOWN, KC_AUDIO_VOL_UP, _____, - _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, KC_PSCR, - _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, - _____, _____, _____, _____, _____, _____, _____, _____, _____, KC_MS_BTN1, KC_MS_UP, KC_MS_BTN2, + KEYMAP( /* Keypad layer */ + TO(0), _____, _____, _____, _____, _____, _____, KC_P7, KC_P8, KC_P9, _____, KC_PMNS, KC_PPLS, _____, + _____, _____, _____, _____, _____, _____, _____, KC_P4, KC_P5, KC_P6, _____, _____, _____, _____, + _____, _____, _____, _____, _____, _____, _____, KC_P1, KC_P2, KC_P3, _____, _____, _____, + _____, _____, _____, _____, _____, _____, _____, KC_P0, _____, KC_MS_BTN1, KC_MS_UP, KC_MS_BTN2, _____, _____, _____, _____, KC_MS_LEFT, KC_MS_DOWN, KC_MS_RIGHT, KC_MS_BTN3 ), KEYMAP( /* Multimedia layer */ TO(0), _____, _____, _____, _____, _____, _____, _____, _____, _____, KC_AUDIO_MUTE, KC_AUDIO_VOL_DOWN, KC_AUDIO_VOL_UP, _____, - _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, KC_PSCR, - _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, - _____, _____, _____, _____, _____, _____, _____, _____, _____, KC_MS_BTN1, KC_MS_WH_UP, KC_MS_BTN2, - _____, _____, _____, _____, KC_MS_WH_LEFT, KC_MS_WH_DOWN, KC_MS_WH_RIGHT, KC_MS_BTN3 + _____, _____, KC_WAKE, _____, _____, _____, _____, _____, _____, _____, KC_MSTP, KC_MPRV, KC_MNXT, _____, + _____, _____, KC_SLEP, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, + _____, _____, KC_PWR, _____, _____, _____, _____, _____, _____, KC_MS_BTN1, KC_MS_WH_UP, KC_MS_BTN2, + _____, _____, _____, KC_MPLY, KC_MS_WH_LEFT, KC_MS_WH_DOWN, KC_MS_WH_RIGHT, KC_MS_BTN3 ), }; From 649d08742a7aec4001193bb5a7a35ca7935a9753 Mon Sep 17 00:00:00 2001 From: Nurahmadie Date: Tue, 28 Mar 2017 16:17:10 +0700 Subject: [PATCH 062/190] Use tap-toggle to move between layers. - Add PDOT key --- keyboards/handwired/kbod/keymaps/default/keymap.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/keyboards/handwired/kbod/keymaps/default/keymap.c b/keyboards/handwired/kbod/keymaps/default/keymap.c index 65c5f552c8c..1386b742f58 100644 --- a/keyboards/handwired/kbod/keymaps/default/keymap.c +++ b/keyboards/handwired/kbod/keymaps/default/keymap.c @@ -34,16 +34,16 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), KEYMAP( /* Cursor layer */ KC_GRAVE, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, - MO(3), _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, KC_INSERT, - MO(2), _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, KC_HOME, _____, + TT(3), _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, KC_INSERT, + TT(2), _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, KC_HOME, _____, _____, _____, _____, _____, _____, _____, _____, _____, KC_PGUP, KC_PGDN, KC_END, KC_UP, _____, _____, _____, _____, _____, KC_LEFT, KC_DOWN, KC_RIGHT ), KEYMAP( /* Keypad layer */ - TO(0), _____, _____, _____, _____, _____, _____, KC_P7, KC_P8, KC_P9, _____, KC_PMNS, KC_PPLS, _____, + TO(0), KC_1, KC_2, KC_3, F(1), KC_5, KC_6, KC_P7, KC_P8, KC_P9, KC_P0, KC_PMNS, KC_PPLS, KC_BSPC, _____, _____, _____, _____, _____, _____, _____, KC_P4, KC_P5, KC_P6, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, KC_P1, KC_P2, KC_P3, _____, _____, _____, - _____, _____, _____, _____, _____, _____, _____, KC_P0, _____, KC_MS_BTN1, KC_MS_UP, KC_MS_BTN2, + _____, _____, _____, _____, _____, _____, _____, KC_P0, KC_PDOT, KC_MS_BTN1, KC_MS_UP, KC_MS_BTN2, _____, _____, _____, _____, KC_MS_LEFT, KC_MS_DOWN, KC_MS_RIGHT, KC_MS_BTN3 ), KEYMAP( /* Multimedia layer */ From 9e72b7e7e97f9ae92c7eb1de66aa03cad047baf6 Mon Sep 17 00:00:00 2001 From: dbroqua Date: Sun, 2 Apr 2017 23:25:26 +0200 Subject: [PATCH 063/190] - Added MX HHKB like for gh60 with 7u space bar --- keyboards/gh60/keymaps/dbroqua_7U/Makefile | 111 +++++++++++++++++++++ keyboards/gh60/keymaps/dbroqua_7U/keymap.c | 88 ++++++++++++++++ 2 files changed, 199 insertions(+) create mode 100644 keyboards/gh60/keymaps/dbroqua_7U/Makefile create mode 100644 keyboards/gh60/keymaps/dbroqua_7U/keymap.c diff --git a/keyboards/gh60/keymaps/dbroqua_7U/Makefile b/keyboards/gh60/keymaps/dbroqua_7U/Makefile new file mode 100644 index 00000000000..da0f07d7d0d --- /dev/null +++ b/keyboards/gh60/keymaps/dbroqua_7U/Makefile @@ -0,0 +1,111 @@ +#---------------------------------------------------------------------------- +# 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". +#---------------------------------------------------------------------------- + +# MCU name +#MCU = at90usb1287 +MCU = atmega32u4 + +# Processor frequency. +# This will define a symbol, F_CPU, in all source code files equal to the +# processor frequency in Hz. You can then use this symbol in your source code to +# calculate timings. Do NOT tack on a 'UL' at the end, this will be done +# automatically to create a 32-bit value in your source code. +# +# This will be an integer division of F_USB below, as it is sourced by +# F_USB after it has run through any CPU prescalers. Note that this value +# does not *change* the processor frequency - it should merely be updated to +# reflect the processor speed set externally so that the code can use accurate +# software delays. +F_CPU = 16000000 + + +# +# LUFA specific +# +# Target architecture (see library "Board Types" documentation). +ARCH = AVR8 + +# Input clock frequency. +# This will define a symbol, F_USB, in all source code files equal to the +# input clock frequency (before any prescaling is performed) in Hz. This value may +# differ from F_CPU if prescaling is used on the latter, and is required as the +# raw input clock is fed directly to the PLL sections of the AVR for high speed +# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL' +# at the end, this will be done automatically to create a 32-bit value in your +# source code. +# +# If no clock division is performed on the input clock inside the AVR (via the +# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU. +F_USB = $(F_CPU) + +# Interrupt driven control endpoint task(+60) +OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT + + +# Boot Section Size in *bytes* +# Teensy halfKay 512 +# Teensy++ halfKay 1024 +# Atmel DFU loader 4096 +# LUFA bootloader 4096 +# USBaspLoader 2048 +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(+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 +RGBLIGHT_ENABLE ?= no # Enable RGB Underglow + +ifndef QUANTUM_DIR + include ../../../../Makefile +endif \ No newline at end of file diff --git a/keyboards/gh60/keymaps/dbroqua_7U/keymap.c b/keyboards/gh60/keymaps/dbroqua_7U/keymap.c new file mode 100644 index 00000000000..bebfe5af5d8 --- /dev/null +++ b/keyboards/gh60/keymaps/dbroqua_7U/keymap.c @@ -0,0 +1,88 @@ +#include "gh60.h" +#include "action_layer.h" + +#define _DEFAULT 0 +#define _FN 1 + +int esc_led = 0; + +// Fillers to make layering more clear +#define ______ KC_TRNS + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* Qwerty gui/alt/space/alt/gui + * ,-----------------------------------------------------------------------------------------. + * | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | \ | ` | + * |-----------------------------------------------------------------------------------------+ + * | Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] | Bksp | + * |-----------------------------------------------------------------------------------------+ + * | Ctrl | A | S | D | F | G | H | J | K | L | ; | ' | Enter | + * |-----------------------------------------------------------------------------------------+ + * | Shift | Z | X | C | V | B | N | M | , | . | / | RShift | FN | + * |-----------------------------------------------------------------------------------------+ + * |LGUI | LAlt | Space | RAlt |RGUI | + * `-----------------------------------------------------------------' + */ + [_DEFAULT] = KEYMAP_HHKB( /* Basic QWERTY */ + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_GRV, \ + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC, \ + KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, \ + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(_FN), \ + ______, KC_LGUI, KC_LALT, KC_SPC, ______, KC_RALT, KC_RGUI, ______ \ + ), + +/* FN Layer + * ,-----------------------------------------------------------------------------------------. + * | Led | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | Ins | Del | + * |-----------------------------------------------------------------------------------------+ + * | CAPS | | | | | | | | Psc | Slck| Paus| Up | | | + * |-----------------------------------------------------------------------------------------+ + * | | Vol-| Vol+| Mute| | | * | / | Home| PgUp| Left|Right| | + * |-----------------------------------------------------------------------------------------+ + * | | Prev| Play| Next| | | + | - | End |PgDn| Down| | | + * |-----------------------------------------------------------------------------------------+ + * | | | | Stop | | + * `-----------------------------------------------------------------' + */ + [_FN] = KEYMAP_HHKB( /* Layer 1 */ + F(0), KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_INS, KC_DEL, \ + KC_CAPS, ______, ______, ______, ______, ______, ______, ______, KC_PSCR, KC_SLCK, KC_PAUS, KC_UP, ______, ______, \ + ______, KC_VOLD, KC_VOLU, KC_MUTE, ______, ______, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT,______, \ + ______, KC_MPRV, KC_MPLY, KC_MNXT, ______, ______, KC_PPLS, KC_PMNS, KC_END, KC_PGDN, KC_DOWN, ______, ______, \ + ______, ______, ______, ______, ______, KC_MSTP, ______, ______ \ + ) +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + // MACRODOWN only works in this function + return MACRO_NONE; +}; + +enum function_id { + LED_TOGGLE +}; + +const uint16_t PROGMEM fn_actions[] = { + [0] = ACTION_FUNCTION(LED_TOGGLE) +}; + +void esc_led_toggle(void) { + if (esc_led == 0){ + esc_led = 1; + gh60_esc_led_on(); + } else { + esc_led = 0; + gh60_esc_led_off(); + } +} + +void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { + switch (id) { + case LED_TOGGLE: + if (record->event.pressed) { + esc_led_toggle(); + } + break; + } +} \ No newline at end of file From 787304647961f4cb654188ddb88c22dd7991ab87 Mon Sep 17 00:00:00 2001 From: Xyverz Date: Sun, 2 Apr 2017 14:48:33 -0700 Subject: [PATCH 064/190] removed my handwired boards to a new branch. --- keyboards/handwired/atreus50/Makefile | 3 - keyboards/handwired/atreus50/atreus50.c | 1 - keyboards/handwired/atreus50/atreus50.h | 18 -- keyboards/handwired/atreus50/config.h | 58 ------- .../atreus50/keymaps/default/Makefile | 21 --- .../atreus50/keymaps/default/keymap.c | 128 -------------- keyboards/handwired/atreus50/rules.mk | 56 ------ keyboards/handwired/xk66/Makefile | 3 - keyboards/handwired/xk66/config.h | 162 ------------------ .../handwired/xk66/keymaps/default/Makefile | 21 --- .../handwired/xk66/keymaps/default/config.h | 8 - .../handwired/xk66/keymaps/default/keymap.c | 90 ---------- .../handwired/xk66/keymaps/default/readme.md | 1 - keyboards/handwired/xk66/readme.md | 28 --- keyboards/handwired/xk66/rules.mk | 67 -------- keyboards/handwired/xk66/xk66.c | 8 - keyboards/handwired/xk66/xk66.h | 25 --- 17 files changed, 698 deletions(-) delete mode 100644 keyboards/handwired/atreus50/Makefile delete mode 100644 keyboards/handwired/atreus50/atreus50.c delete mode 100644 keyboards/handwired/atreus50/atreus50.h delete mode 100644 keyboards/handwired/atreus50/config.h delete mode 100644 keyboards/handwired/atreus50/keymaps/default/Makefile delete mode 100644 keyboards/handwired/atreus50/keymaps/default/keymap.c delete mode 100644 keyboards/handwired/atreus50/rules.mk delete mode 100644 keyboards/handwired/xk66/Makefile delete mode 100644 keyboards/handwired/xk66/config.h delete mode 100644 keyboards/handwired/xk66/keymaps/default/Makefile delete mode 100644 keyboards/handwired/xk66/keymaps/default/config.h delete mode 100644 keyboards/handwired/xk66/keymaps/default/keymap.c delete mode 100644 keyboards/handwired/xk66/keymaps/default/readme.md delete mode 100644 keyboards/handwired/xk66/readme.md delete mode 100644 keyboards/handwired/xk66/rules.mk delete mode 100644 keyboards/handwired/xk66/xk66.c delete mode 100644 keyboards/handwired/xk66/xk66.h diff --git a/keyboards/handwired/atreus50/Makefile b/keyboards/handwired/atreus50/Makefile deleted file mode 100644 index bd09e5885d0..00000000000 --- a/keyboards/handwired/atreus50/Makefile +++ /dev/null @@ -1,3 +0,0 @@ -ifndef MAKEFILE_INCLUDED - include ../../../Makefile -endif diff --git a/keyboards/handwired/atreus50/atreus50.c b/keyboards/handwired/atreus50/atreus50.c deleted file mode 100644 index dd0dbdaac9f..00000000000 --- a/keyboards/handwired/atreus50/atreus50.c +++ /dev/null @@ -1 +0,0 @@ -#include "atreus50.h" diff --git a/keyboards/handwired/atreus50/atreus50.h b/keyboards/handwired/atreus50/atreus50.h deleted file mode 100644 index 5d27109cca6..00000000000 --- a/keyboards/handwired/atreus50/atreus50.h +++ /dev/null @@ -1,18 +0,0 @@ -#ifndef ATREUS50_H -#define ATREUS50_H - -#include "quantum.h" - -#define KEYMAP( \ - K000, K001, K002, K003, K004, K005, K007, K008, K009, K010, K011, K012, \ - K100, K101, K102, K103, K104, K105, K107, K108, K109, K110, K111, K112, \ - K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, \ - K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312 \ -) { \ - { K000, K001, K002, K003, K004, K005, KC_NO, K007, K008, K009, K010, K011, K012 }, \ - { K100, K101, K102, K103, K104, K105, KC_NO, K107, K108, K109, K110, K111, K112 }, \ - { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212 }, \ - { K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312 } \ -} - -#endif \ No newline at end of file diff --git a/keyboards/handwired/atreus50/config.h b/keyboards/handwired/atreus50/config.h deleted file mode 100644 index 0248032a014..00000000000 --- a/keyboards/handwired/atreus50/config.h +++ /dev/null @@ -1,58 +0,0 @@ -#ifndef CONFIG_H -#define CONFIG_H - -#include "config_common.h" - -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x6060 -#define DEVICE_VER 0x0001 -#define MANUFACTURER qmkbuilder -#define PRODUCT Atreus50 -#define DESCRIPTION Keyboard - -/* key matrix size */ -#define MATRIX_ROWS 4 -#define MATRIX_COLS 13 - -/* key matrix pins */ -#define MATRIX_ROW_PINS { F4, F5, F6, F7 } -#define MATRIX_COL_PINS { D3, D2, D1, D0, D4, C6, D7, E6, B4, B5, B6, B2, B3 } -#define UNUSED_PINS - -/* COL2ROW or ROW2COL */ -#define DIODE_DIRECTION COL2ROW - -/* number of backlight levels */ - -#ifdef BACKLIGHT_PIN -#define BACKLIGHT_LEVELS 3 -#endif - -/* Set 0 if debouncing isn't needed */ -#define DEBOUNCING_DELAY 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 - -/* key combination for command */ -#define IS_COMMAND() ( \ - keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ -) - -/* prevent stuck modifiers */ -#define PREVENT_STUCK_MODIFIERS - - -#ifdef RGB_DI_PIN -#define RGBLIGHT_ANIMATIONS -#define RGBLED_NUM 0 -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 -#endif - -#endif \ No newline at end of file diff --git a/keyboards/handwired/atreus50/keymaps/default/Makefile b/keyboards/handwired/atreus50/keymaps/default/Makefile deleted file mode 100644 index 43fee266866..00000000000 --- a/keyboards/handwired/atreus50/keymaps/default/Makefile +++ /dev/null @@ -1,21 +0,0 @@ -# Build Options -# change to "no" to disable the options, or define them in the Makefile in -# the appropriate keymap folder that will get included automatically -# -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 = no # Console for debug(+400) -COMMAND_ENABLE = yes # Commands for debug and configuration -NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work -BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality -MIDI_ENABLE = no # MIDI controls -AUDIO_ENABLE = no # Audio output on port C6 -UNICODE_ENABLE = no # Unicode -BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID -RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. -SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend - -ifndef QUANTUM_DIR - include ../../../../Makefile -endif \ No newline at end of file diff --git a/keyboards/handwired/atreus50/keymaps/default/keymap.c b/keyboards/handwired/atreus50/keymaps/default/keymap.c deleted file mode 100644 index b3dc17cb1a6..00000000000 --- a/keyboards/handwired/atreus50/keymaps/default/keymap.c +++ /dev/null @@ -1,128 +0,0 @@ -// This is the canonical layout file for the Quantum project. If you want to add another keyboard, -// this is the style you want to emulate. - -#include "atreus50.h" -#include "action_layer.h" -#include "eeconfig.h" - -extern keymap_config_t keymap_config; - -// Each layer gets a name for readability, which is then used in the keymap matrix below. -// The underscores don't mean anything - you can have a layer called STUFF or any other name. -// Layer names don't all need to be of the same length, obviously, and you can also skip them -// entirely and just use numbers. -#define _DVORAK 0 -#define _QWERTY 1 -#define _COLEMAK 2 -#define _LOWER 3 -#define _RAISE 4 -#define _ADJUST 16 - -enum planck_keycodes { - DVORAK = SAFE_RANGE, - QWERTY, - COLEMAK, - LOWER, - RAISE, - BACKLIT -}; - -// Fillers to make layering more clear -#define _______ KC_TRNS -#define XXXXXXX KC_NO - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_DVORAK] = { /* dvorak */ - { KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, _______, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH }, - { KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, _______, KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS }, - { KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_ENT, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_RSFT }, - { KC_LCTL, KC_LALT, KC_LEFT, KC_RGHT, LOWER, KC_BSPC, KC_LGUI, KC_SPC, RAISE, KC_UP, KC_DOWN, KC_RGUI, KC_RCTL } - }, - - [_QWERTY] = { /* qwerty */ - { KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, _______, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL }, - { 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_ENT, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT }, - { KC_LCTL, KC_LALT, KC_LEFT, KC_RGHT, LOWER, KC_BSPC, KC_LGUI, KC_SPC, RAISE, KC_UP, KC_DOWN, KC_RGUI, KC_RCTL } - }, - - [_COLEMAK] = { /* colemak */ - { KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, _______, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_DEL }, - { 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_ENT, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT }, - { KC_LCTL, KC_LALT, KC_LEFT, KC_RGHT, LOWER, KC_BSPC, KC_LGUI, KC_SPC, RAISE, KC_UP, KC_DOWN, KC_RGUI, KC_RCTL} - }, - - [_LOWER] = { - { KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, _______, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______ }, - { KC_CAPS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, _______, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE }, - { _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, _______, KC_F12, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______ }, - { _______, _______, KC_HOME, KC_END, _______, KC_DEL, _______, KC_INS, _______, KC_PGUP, KC_PGDN, _______, _______ } - }, - [_RAISE] = { - { KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, _______, KC_6, KC_7, KC_8, KC_9, KC_0, _______ }, - { KC_CAPS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, _______, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS }, - { _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, _______, KC_F12, KC_MPRV, KC_MPLY, KC_MNXT, _______, _______ }, - { _______, _______, KC_HOME, KC_END, _______, KC_DEL, _______, KC_INS, _______, KC_PGUP, KC_PGDN, _______, _______ } - }, - [_ADJUST] = { - { KC_F11, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, _______, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F12 }, - { _______, RESET, _______, _______, _______, _______, _______, _______, QWERTY, COLEMAK, DVORAK, _______, _______ }, - { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, - { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ } - }, - -}; - -const uint16_t PROGMEM fn_actions[] = { - -}; - -void persistant_default_layer_set(uint16_t default_layer) { - eeconfig_update_default_layer(default_layer); - default_layer_set(default_layer); -} - -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - switch (keycode) { - case QWERTY: - if (record->event.pressed) { - persistant_default_layer_set(1UL<<_QWERTY); - } - return false; - break; - case COLEMAK: - if (record->event.pressed) { - persistant_default_layer_set(1UL<<_COLEMAK); - } - return false; - break; - case DVORAK: - if (record->event.pressed) { - persistant_default_layer_set(1UL<<_DVORAK); - } - return false; - break; - case LOWER: - if (record->event.pressed) { - layer_on(_LOWER); - update_tri_layer(_LOWER, _RAISE, _ADJUST); - } else { - layer_off(_LOWER); - update_tri_layer(_LOWER, _RAISE, _ADJUST); - } - return false; - break; - case RAISE: - if (record->event.pressed) { - layer_on(_RAISE); - update_tri_layer(_LOWER, _RAISE, _ADJUST); - } else { - layer_off(_RAISE); - update_tri_layer(_LOWER, _RAISE, _ADJUST); - } - return false; - break; - } - return true; -}; \ No newline at end of file diff --git a/keyboards/handwired/atreus50/rules.mk b/keyboards/handwired/atreus50/rules.mk deleted file mode 100644 index 1f8e943be7f..00000000000 --- a/keyboards/handwired/atreus50/rules.mk +++ /dev/null @@ -1,56 +0,0 @@ -# MCU name -MCU = atmega32u4 - -# Processor frequency. -# This will define a symbol, F_CPU, in all source code files equal to the -# processor frequency in Hz. You can then use this symbol in your source code to -# calculate timings. Do NOT tack on a 'UL' at the end, this will be done -# automatically to create a 32-bit value in your source code. -# -# This will be an integer division of F_USB below, as it is sourced by -# F_USB after it has run through any CPU prescalers. Note that this value -# does not *change* the processor frequency - it should merely be updated to -# reflect the processor speed set externally so that the code can use accurate -# software delays. -F_CPU = 16000000 - -# -# LUFA specific -# -# Target architecture (see library "Board Types" documentation). -ARCH = AVR8 - -# Input clock frequency. -# This will define a symbol, F_USB, in all source code files equal to the -# input clock frequency (before any prescaling is performed) in Hz. This value may -# differ from F_CPU if prescaling is used on the latter, and is required as the -# raw input clock is fed directly to the PLL sections of the AVR for high speed -# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL' -# at the end, this will be done automatically to create a 32-bit value in your -# source code. -# -# If no clock division is performed on the input clock inside the AVR (via the -# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU. -F_USB = $(F_CPU) - -# Interrupt driven control endpoint task(+60) -OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT - - -# Boot Section Size in *bytes* -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(+4700) -EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450) -CONSOLE_ENABLE ?= no # Console for debug(+400) -COMMAND_ENABLE ?= no # Commands for debug and configuration -SLEEP_LED_ENABLE ?= no # 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 ?= no # Enable keyboard backlight functionality -AUDIO_ENABLE ?= no -RGBLIGHT_ENABLE ?= no \ No newline at end of file diff --git a/keyboards/handwired/xk66/Makefile b/keyboards/handwired/xk66/Makefile deleted file mode 100644 index bd09e5885d0..00000000000 --- a/keyboards/handwired/xk66/Makefile +++ /dev/null @@ -1,3 +0,0 @@ -ifndef MAKEFILE_INCLUDED - include ../../../Makefile -endif diff --git a/keyboards/handwired/xk66/config.h b/keyboards/handwired/xk66/config.h deleted file mode 100644 index 02ff2a6bf7b..00000000000 --- a/keyboards/handwired/xk66/config.h +++ /dev/null @@ -1,162 +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 . -*/ - -#ifndef CONFIG_H -#define CONFIG_H - -#include "config_common.h" - -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x6060 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Xyverz -#define PRODUCT XK-66 -#define DESCRIPTION A hand-wired 66-key keyboard by Xyverz - -/* key matrix size */ -#define MATRIX_ROWS 5 -#define MATRIX_COLS 14 - -/* - * 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 MATRIX_ROW_PINS { B5, B4, D7, D6, D4 } -#define MATRIX_COL_PINS { B6, F7, F6, F5, F4, F1, F0, D1, D0, B7, B3, B2, B1, B0 } -#define UNUSED_PINS - -/* COL2ROW or ROW2COL */ -#define DIODE_DIRECTION COL2ROW - -// #define BACKLIGHT_PIN B7 -// #define BACKLIGHT_BREATHING -// #define BACKLIGHT_LEVELS 3 - - -/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ -#define DEBOUNCING_DELAY 5 - -/* define if matrix has ghost (lacks anti-ghosting diodes) */ -//#define MATRIX_HAS_GHOST - -/* number of backlight levels */ - -/* 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 - * - * 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 - * - * 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 */ -#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. - */ - -/* disable debug print */ -//#define NO_DEBUG - -/* disable print */ -//#define NO_PRINT - -/* disable action features */ -//#define NO_ACTION_LAYER -//#define NO_ACTION_TAPPING -//#define NO_ACTION_ONESHOT -//#define NO_ACTION_MACRO -//#define NO_ACTION_FUNCTION - -#endif diff --git a/keyboards/handwired/xk66/keymaps/default/Makefile b/keyboards/handwired/xk66/keymaps/default/Makefile deleted file mode 100644 index f4671a9d113..00000000000 --- a/keyboards/handwired/xk66/keymaps/default/Makefile +++ /dev/null @@ -1,21 +0,0 @@ -# Build Options -# change to "no" to disable the options, or define them in the Makefile in -# the appropriate keymap folder that will get included automatically -# -BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) -MOUSEKEY_ENABLE = yes # Mouse keys(+4700) -EXTRAKEY_ENABLE = yes # Audio control and System control(+450) -CONSOLE_ENABLE = no # Console for debug(+400) -COMMAND_ENABLE = yes # Commands for debug and configuration -NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work -BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality -MIDI_ENABLE = no # MIDI controls -AUDIO_ENABLE = no # Audio output on port C6 -UNICODE_ENABLE = no # Unicode -BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID -RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. -SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend - -ifndef QUANTUM_DIR - include ../../../../Makefile -endif \ No newline at end of file diff --git a/keyboards/handwired/xk66/keymaps/default/config.h b/keyboards/handwired/xk66/keymaps/default/config.h deleted file mode 100644 index df06a262062..00000000000 --- a/keyboards/handwired/xk66/keymaps/default/config.h +++ /dev/null @@ -1,8 +0,0 @@ -#ifndef CONFIG_USER_H -#define CONFIG_USER_H - -#include "../../config.h" - -// place overrides here - -#endif \ No newline at end of file diff --git a/keyboards/handwired/xk66/keymaps/default/keymap.c b/keyboards/handwired/xk66/keymaps/default/keymap.c deleted file mode 100644 index 61b3bd97fb4..00000000000 --- a/keyboards/handwired/xk66/keymaps/default/keymap.c +++ /dev/null @@ -1,90 +0,0 @@ -#include "xk66.h" -#include "action_layer.h" -#include "eeconfig.h" - -extern keymap_config_t keymap_config; - -// Each layer gets a name for readability, which is then used in the keymap matrix below. -// The underscores don't mean anything - you can have a layer called STUFF or any other name. -// Layer names don't all need to be of the same length, obviously, and you can also skip them -// entirely and just use numbers. -#define _DV 0 -#define _QW 1 -#define _CM 2 -#define _FL 3 - -// Macro name shortcuts -#define QWERTY M(_QW) -#define DVORAK M(_DV) -#define COLEMAK M(_CM) - -// Fillers to make layering more clear -#define _______ KC_TRNS -#define XXXXXXX KC_NO - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[_DV] = KEYMAP ( /* Dvorak */ - KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_LBRC, KC_RBRC, KC_BSPC, \ - KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH, KC_EQL, KC_BSLS, \ - MO(_FL), KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS, KC_ENT, \ - KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_RSFT, \ - KC_LCTL, KC_LALT, KC_LGUI, KC_LEFT, KC_RGHT, KC_BSPC, KC_SPC, KC_UP, KC_DOWN, KC_RGUI, KC_RALT, KC_RCTL, MO(_FL) - ), - -[_QW] = KEYMAP ( /* Qwerty */ - KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, 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_LBRC, KC_RBRC, KC_BSLS, \ - MO(_FL), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, \ - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, \ - KC_LCTL, KC_LALT, KC_LGUI, KC_LEFT, KC_RGHT, KC_BSPC, KC_SPC, KC_UP, KC_DOWN, KC_RGUI, KC_RALT, KC_RCTL, MO(_FL) - ), - -[_CM] = KEYMAP ( /* Colemak */ - KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, 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_LBRC, KC_RBRC, KC_BSLS, \ - MO(_FL), KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, KC_ENT, \ - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, \ - KC_LCTL, KC_LALT, KC_LGUI, KC_LEFT, KC_RGHT, KC_BSPC, KC_SPC, KC_UP, KC_DOWN, KC_RGUI, KC_RALT, KC_RCTL, MO(_FL) - ), - -[_FL] = KEYMAP ( /* Function Layer 1 */ - KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, \ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ - _______, _______, KC_MPRV, KC_MPLY, KC_MNXT, _______, _______, QWERTY, DVORAK, COLEMAK, _______, _______, _______, \ - KC_CAPS, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, _______, _______, _______, _______, \ - RESET, _______, _______, KC_HOME, KC_END, KC_DEL, KC_INS, KC_PGUP, KC_PGDN, _______, _______, _______, _______ - ), - -}; - - -const uint16_t PROGMEM fn_actions[] = { - -}; - -void persistant_default_layer_set(uint16_t default_layer) { - eeconfig_update_default_layer(default_layer); - default_layer_set(default_layer); -} - -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) -{ - switch(id) { - case _DV: - if (record->event.pressed) { - persistant_default_layer_set(1UL<<_DV); - } - break; - case _QW: - if (record->event.pressed) { - persistant_default_layer_set(1UL<<_QW); - } - break; - case _CM: - if (record->event.pressed) { - persistant_default_layer_set(1UL<<_CM); - } - break; - } - return MACRO_NONE; -}; diff --git a/keyboards/handwired/xk66/keymaps/default/readme.md b/keyboards/handwired/xk66/keymaps/default/readme.md deleted file mode 100644 index 6940fdd7c60..00000000000 --- a/keyboards/handwired/xk66/keymaps/default/readme.md +++ /dev/null @@ -1 +0,0 @@ -# The default keymap for handwired/xk66 \ No newline at end of file diff --git a/keyboards/handwired/xk66/readme.md b/keyboards/handwired/xk66/readme.md deleted file mode 100644 index 2aac6bde33c..00000000000 --- a/keyboards/handwired/xk66/readme.md +++ /dev/null @@ -1,28 +0,0 @@ -handwired/xk66 keyboard firmware -====================== - -## Quantum MK Firmware - -For the full Quantum feature list, see [the parent readme](/). - -## Building - -Download or clone the whole firmware and navigate to the keyboards/handwired/xk66 folder. Once your dev env is setup, you'll be able to type `make` to generate your .hex - you can then use the Teensy Loader to program your .hex file. - -Depending on which keymap you would like to use, you will have to compile slightly differently. - -### Default - -To build with the default keymap, simply run `make default`. - -### 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 a folder with the name of your keymap in the keymaps folder, and see keymap documentation (you can find in top readme.md) and existant keymap files. - -To build the firmware binary hex file with a keymap just do `make` with a keymap like this: - -``` -$ make [default|jack|] -``` - -Keymaps follow the format **__\.c__** and are stored in the `keymaps` folder. diff --git a/keyboards/handwired/xk66/rules.mk b/keyboards/handwired/xk66/rules.mk deleted file mode 100644 index 707a5385bec..00000000000 --- a/keyboards/handwired/xk66/rules.mk +++ /dev/null @@ -1,67 +0,0 @@ -# MCU name -#MCU = at90usb1287 -MCU = atmega32u4 - -# Processor frequency. -# This will define a symbol, F_CPU, in all source code files equal to the -# processor frequency in Hz. You can then use this symbol in your source code to -# calculate timings. Do NOT tack on a 'UL' at the end, this will be done -# automatically to create a 32-bit value in your source code. -# -# This will be an integer division of F_USB below, as it is sourced by -# F_USB after it has run through any CPU prescalers. Note that this value -# does not *change* the processor frequency - it should merely be updated to -# reflect the processor speed set externally so that the code can use accurate -# software delays. -F_CPU = 16000000 - - -# -# LUFA specific -# -# Target architecture (see library "Board Types" documentation). -ARCH = AVR8 - -# Input clock frequency. -# This will define a symbol, F_USB, in all source code files equal to the -# input clock frequency (before any prescaling is performed) in Hz. This value may -# differ from F_CPU if prescaling is used on the latter, and is required as the -# raw input clock is fed directly to the PLL sections of the AVR for high speed -# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL' -# at the end, this will be done automatically to create a 32-bit value in your -# source code. -# -# If no clock division is performed on the input clock inside the AVR (via the -# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU. -F_USB = $(F_CPU) - -# Interrupt driven control endpoint task(+60) -OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT - - -# Boot Section Size in *bytes* -# Teensy halfKay 512 -# Teensy++ halfKay 1024 -# Atmel DFU loader 4096 -# LUFA bootloader 4096 -# USBaspLoader 2048 -OPT_DEFS += -DBOOTLOADER_SIZE=512 - - -# Build Options -# change yes to no to disable -# -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 -# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE -SLEEP_LED_ENABLE ?= no # Breathing sleep LED during USB suspend -# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work -NKRO_ENABLE ?= no # USB Nkey Rollover -BACKLIGHT_ENABLE ?= no # Enable keyboard backlight functionality on B7 by default -MIDI_ENABLE ?= no # MIDI controls -UNICODE_ENABLE ?= no # Unicode -BLUETOOTH_ENABLE ?= no # Enable Bluetooth with the Adafruit EZ-Key HID -AUDIO_ENABLE ?= no # Audio output on port C6 diff --git a/keyboards/handwired/xk66/xk66.c b/keyboards/handwired/xk66/xk66.c deleted file mode 100644 index 3c3e31949e1..00000000000 --- a/keyboards/handwired/xk66/xk66.c +++ /dev/null @@ -1,8 +0,0 @@ -#include "xk66.h" - -void matrix_init_kb(void) { - // put your keyboard start-up code here - // runs once when the firmware starts up - - matrix_init_user(); -} diff --git a/keyboards/handwired/xk66/xk66.h b/keyboards/handwired/xk66/xk66.h deleted file mode 100644 index 38fe129e449..00000000000 --- a/keyboards/handwired/xk66/xk66.h +++ /dev/null @@ -1,25 +0,0 @@ -#ifndef XK66_H -#define XK66_H - -#include "quantum.h" -#include "led.h" - - -// This a shortcut to help you visually see your layout. -// The first section contains all of the arguements -// The second converts the arguments into a two-dimensional array -#define KEYMAP( \ - K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0a, K0b, K0c, K0d, \ - K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1a, K1b, K1c, K1d, \ - K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2a, K2b, K2d, \ - K30, K32, K33, K34, K35, K36, K37, K38, K39, K3a, K3b, K3c, \ - K40, K41, K42, K43, K44, K45, K46, K48, K49, K4a, K4b, K4c, K4d \ -) { \ - { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0a, K0b, K0c, K0d }, \ - { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1a, K1b, K1c, K1d }, \ - { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2a, K2b, KC_NO, K2d }, \ - { K30, KC_NO, K32, K33, K34, K35, K36, K37, K38, K39, K3a, K3b, K3c, KC_NO }, \ - { K40, K41, K42, K43, K44, K45, K46, KC_NO, K48, K49, K4a, K4b, K4c, K4d } \ -} - -#endif \ No newline at end of file From 570b4605b2bdc7e2c9b83ab4991d4582148efb12 Mon Sep 17 00:00:00 2001 From: Alexander Schaefer Date: Sun, 2 Apr 2017 18:44:15 -0600 Subject: [PATCH 065/190] Update readme.md There's no readme specifically for the Ergodox EZ now, so link to the Ergodox readme. --- readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/readme.md b/readme.md index b2dfc5f7592..f7bf14b6ab5 100644 --- a/readme.md +++ b/readme.md @@ -32,7 +32,7 @@ The OLKB product firmwares are maintained by [Jack Humbert](https://github.com/j This is not a tiny project. While this is the main readme, there are many other files you might want to consult. Here are some points of interest: * [**The Wiki**](https://github.com/qmk/qmk_firmware/wiki) - the entirety of the readme has been moved here -* The readme for your own keyboard: This is found under `keyboards//`. So for the ErgoDox EZ, it's [here](keyboards/ergodox/ez/); for the Planck, it's [here](keyboards/planck/) and so on. +* The readme for your own keyboard: This is found under `keyboards//`. So for the ErgoDox, it's [here](keyboards/ergodox/); for the Planck, it's [here](keyboards/planck/) and so on. * The list of possible keycodes you can use in your keymap is actually spread out in a few different places: * [doc/keycode.txt](doc/keycode.txt) - an explanation of those same keycodes. * [quantum/quantum_keycodes.h](quantum/quantum_keycodes.h) - this is where the QMK-specific aliases are all set up. Things like the Hyper and Meh key, the Leader key, and all of the other QMK innovations. These are also explained and documented below, but `quantum_keycodes.h` is where they're actually defined. From 344ebbac43ef510b29cdcdff2688186ee3ffead7 Mon Sep 17 00:00:00 2001 From: Danny Nguyen Date: Mon, 3 Apr 2017 11:32:54 -0400 Subject: [PATCH 066/190] Revert removal of avrdude make option --- keyboards/lets_split/rules.mk | 14 +++++++++++++- keyboards/lets_split/split_util.c | 2 +- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/keyboards/lets_split/rules.mk b/keyboards/lets_split/rules.mk index ff159e0f062..79860ea35d5 100644 --- a/keyboards/lets_split/rules.mk +++ b/keyboards/lets_split/rules.mk @@ -1,7 +1,7 @@ SRC += matrix.c \ i2c.c \ split_util.c \ - serial.c\ + serial.c \ ssd1306.c # MCU name @@ -74,3 +74,15 @@ USE_I2C ?= yes SLEEP_LED_ENABLE ?= no # Breathing sleep LED during USB suspend CUSTOM_MATRIX = yes + +avrdude: build + ls /dev/tty* > /tmp/1; \ + echo "Reset your Pro Micro now"; \ + while [[ -z $$USB ]]; do \ + sleep 1; \ + ls /dev/tty* > /tmp/2; \ + USB=`diff /tmp/1 /tmp/2 | grep -o '/dev/tty.*'`; \ + done; \ + avrdude -p $(MCU) -c avr109 -P $$USB -U flash:w:$(BUILD_DIR)/$(TARGET).hex + +.PHONY: avrdude diff --git a/keyboards/lets_split/split_util.c b/keyboards/lets_split/split_util.c index 46586fbc00b..39639c3b4bd 100644 --- a/keyboards/lets_split/split_util.c +++ b/keyboards/lets_split/split_util.c @@ -21,7 +21,7 @@ static void setup_handedness(void) { #ifdef EE_HANDS isLeftHand = eeprom_read_byte(EECONFIG_HANDEDNESS); #else - // I2c_MASTER_RIGHT ish deprecate use MASTER_RIGHT instead since this works for both serial and i2c: + // I2C_MASTER_RIGHT is deprecated, use MASTER_RIGHT instead, since this works for both serial and i2c #if defined(I2C_MASTER_RIGHT) || defined(MASTER_RIGHT) isLeftHand = !has_usb(); #else From 48f4c5997bd0e041379f592f3e1e0c306e5a5e4d Mon Sep 17 00:00:00 2001 From: Danny Nguyen Date: Mon, 3 Apr 2017 12:06:28 -0400 Subject: [PATCH 067/190] Move defines for RGB to after the config.h include --- keyboards/lets_split/keymaps/hexwire/config.h | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/keyboards/lets_split/keymaps/hexwire/config.h b/keyboards/lets_split/keymaps/hexwire/config.h index 9c8c6d7f404..e5a779f6339 100644 --- a/keyboards/lets_split/keymaps/hexwire/config.h +++ b/keyboards/lets_split/keymaps/hexwire/config.h @@ -20,13 +20,6 @@ along with this program. If not, see . #define TAPPING_TERM 150 -#undef RGBLED_NUM -#define RGBLIGHT_ANIMATIONS -#define RGBLED_NUM 8 -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 - #ifdef SUBPROJECT_rev1 #include "../../rev1/config.h" #define COMPACT_KEYMAP( \ @@ -68,3 +61,10 @@ along with this program. If not, see . #ifdef SUBPROJECT_rev2fliphalf #include "../../rev2fliphalf/config.h" #endif + +#undef RGBLED_NUM +#define RGBLIGHT_ANIMATIONS +#define RGBLED_NUM 8 +#define RGBLIGHT_HUE_STEP 8 +#define RGBLIGHT_SAT_STEP 8 +#define RGBLIGHT_VAL_STEP 8 From de52bd5d8970a9b195d85c5367d4ecd125458976 Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Mon, 3 Apr 2017 12:42:58 -0400 Subject: [PATCH 068/190] quick fix for space cadet shift --- quantum/quantum.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/quantum/quantum.c b/quantum/quantum.c index 62d9ef9232a..4f4cee4e9b3 100644 --- a/quantum/quantum.c +++ b/quantum/quantum.c @@ -135,7 +135,7 @@ void reset_keyboard(void) { #endif static bool shift_interrupted[2] = {0, 0}; -static uint16_t scs_timer = 0; +static uint16_t scs_timer[2] = {0, 0}; bool process_record_quantum(keyrecord_t *record) { @@ -395,7 +395,7 @@ bool process_record_quantum(keyrecord_t *record) { case KC_LSPO: { if (record->event.pressed) { shift_interrupted[0] = false; - scs_timer = timer_read (); + scs_timer[0] = timer_read (); register_mods(MOD_BIT(KC_LSFT)); } else { @@ -405,7 +405,7 @@ bool process_record_quantum(keyrecord_t *record) { shift_interrupted[1] = true; } #endif - if (!shift_interrupted[0] && timer_elapsed(scs_timer) < TAPPING_TERM) { + if (!shift_interrupted[0] && timer_elapsed(scs_timer[0]) < TAPPING_TERM) { register_code(LSPO_KEY); unregister_code(LSPO_KEY); } @@ -418,7 +418,7 @@ bool process_record_quantum(keyrecord_t *record) { case KC_RSPC: { if (record->event.pressed) { shift_interrupted[1] = false; - scs_timer = timer_read (); + scs_timer[1] = timer_read (); register_mods(MOD_BIT(KC_RSFT)); } else { @@ -428,7 +428,7 @@ bool process_record_quantum(keyrecord_t *record) { shift_interrupted[1] = true; } #endif - if (!shift_interrupted[1] && timer_elapsed(scs_timer) < TAPPING_TERM) { + if (!shift_interrupted[1] && timer_elapsed(scs_timer[1]) < TAPPING_TERM) { register_code(RSPC_KEY); unregister_code(RSPC_KEY); } From 4e51c1e3ca75c9abe45673866d026cc0f810a410 Mon Sep 17 00:00:00 2001 From: ishtob Date: Mon, 3 Apr 2017 13:17:41 -0400 Subject: [PATCH 069/190] Update ssd1306.c --- keyboards/lets_split/ssd1306.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/keyboards/lets_split/ssd1306.c b/keyboards/lets_split/ssd1306.c index 3c7816bb327..4bf3a87437d 100644 --- a/keyboards/lets_split/ssd1306.c +++ b/keyboards/lets_split/ssd1306.c @@ -1,3 +1,4 @@ +#ifdef SSD1306OLED #include "config.h" #include "i2c.h" #include @@ -466,3 +467,4 @@ void iota_gfx_task(void) { iota_gfx_off(); } } +#endif From d0cfaba6d2f4ddf6aee7f05408971a0d4712bd60 Mon Sep 17 00:00:00 2001 From: Danny Nguyen Date: Mon, 3 Apr 2017 12:15:14 -0400 Subject: [PATCH 070/190] Revise KEYMAP macro to make left and right halves more clear --- keyboards/lets_split/rev1/rev1.h | 24 +++++----- keyboards/lets_split/rev2/rev2.h | 80 ++++++++++++++++---------------- 2 files changed, 52 insertions(+), 52 deletions(-) diff --git a/keyboards/lets_split/rev1/rev1.h b/keyboards/lets_split/rev1/rev1.h index 4667c9fb09c..6bf9f0f0386 100644 --- a/keyboards/lets_split/rev1/rev1.h +++ b/keyboards/lets_split/rev1/rev1.h @@ -9,20 +9,20 @@ //void promicro_bootloader_jmp(bool program); #define KEYMAP( \ - k00, k01, k02, k03, k04, k05, k40, k41, k42, k43, k44, k45, \ - k10, k11, k12, k13, k14, k15, k50, k51, k52, k53, k54, k55, \ - k20, k21, k22, k23, k24, k25, k60, k61, k62, k63, k64, k65, \ - k30, k31, k32, k33, k34, k35, k70, k71, k72, k73, k74, k75 \ + L00, L01, L02, L03, L04, L05, R00, R01, R02, R03, R04, R05, \ + L10, L11, L12, L13, L14, L15, R10, R11, R12, R13, R14, R15, \ + L20, L21, L22, L23, L24, L25, R20, R21, R22, R23, R24, R25, \ + L30, L31, L32, L33, L34, L35, R30, R31, R32, R33, R34, R35 \ ) \ { \ - { k00, k01, k02, k03, k04, k05 }, \ - { k10, k11, k12, k13, k14, k15 }, \ - { k20, k21, k22, k23, k24, k25 }, \ - { k30, k31, k32, k33, k34, k35 }, \ - { k40, k41, k42, k43, k44, k45 }, \ - { k50, k51, k52, k53, k54, k55 }, \ - { k60, k61, k62, k63, k64, k65 }, \ - { k70, k71, k72, k73, k74, k75 } \ + { L00, L01, L02, L03, L04, L05 }, \ + { L10, L11, L12, L13, L14, L15 }, \ + { L20, L21, L22, L23, L24, L25 }, \ + { L30, L31, L32, L33, L34, L35 }, \ + { R00, R01, R02, R03, R04, R05 }, \ + { R10, R11, R12, R13, R14, R15 }, \ + { R20, R21, R22, R23, R24, R25 }, \ + { R30, R31, R32, R33, R34, R35 } \ } #endif \ No newline at end of file diff --git a/keyboards/lets_split/rev2/rev2.h b/keyboards/lets_split/rev2/rev2.h index 054731366ef..0603827e08b 100644 --- a/keyboards/lets_split/rev2/rev2.h +++ b/keyboards/lets_split/rev2/rev2.h @@ -10,62 +10,62 @@ #ifdef USE_I2C #include #ifdef __AVR__ -#include -#include + #include + #include #endif #ifdef SSD1306OLED -extern bool iota_gfx_init(void); -extern void iota_gfx_task(void); -extern bool iota_gfx_off(void); -extern bool iota_gfx_on(void); -extern void iota_gfx_flush(void); -extern void iota_gfx_write_char(uint8_t c); -extern void iota_gfx_write(const char *data); -extern void iota_gfx_write_P(const char *data); -extern void iota_gfx_clear_screen(void); + extern bool iota_gfx_init(void); + extern void iota_gfx_task(void); + extern bool iota_gfx_off(void); + extern bool iota_gfx_on(void); + extern void iota_gfx_flush(void); + extern void iota_gfx_write_char(uint8_t c); + extern void iota_gfx_write(const char *data); + extern void iota_gfx_write_P(const char *data); + extern void iota_gfx_clear_screen(void); #endif #endif //void promicro_bootloader_jmp(bool program); #ifndef FLIP_HALF -//Standard Keymap +// Standard Keymap +// (TRRS jack on the left half is to the right, TRRS jack on the right half is to the left) #define KEYMAP( \ - k40, k41, k42, k43, k44, k45, k05, k04, k03, k02, k01, k00, \ - k50, k51, k52, k53, k54, k55, k15, k14, k13, k12, k11, k10, \ - k60, k61, k62, k63, k64, k65, k25, k24, k23, k22, k21, k20, \ - k70, k71, k72, k73, k74, k75, k35, k34, k33, k32, k31, k30 \ + L00, L01, L02, L03, L04, L05, R00, R01, R02, R03, R04, R05, \ + L10, L11, L12, L13, L14, L15, R10, R11, R12, R13, R14, R15, \ + L20, L21, L22, L23, L24, L25, R20, R21, R22, R23, R24, R25, \ + L30, L31, L32, L33, L34, L35, R30, R31, R32, R33, R34, R35 \ ) \ { \ - { k45, k44, k43, k42, k41, k40 }, \ - { k55, k54, k53, k52, k51, k50 }, \ - { k65, k64, k63, k62, k61, k60 }, \ - { k75, k74, k73, k72, k71, k70 }, \ - { k00, k01, k02, k03, k04, k05 }, \ - { k10, k11, k12, k13, k14, k15 }, \ - { k20, k21, k22, k23, k24, k25 }, \ - { k30, k31, k32, k33, k34, k35 } \ + { L00, L01, L02, L03, L04, L05 }, \ + { L10, L11, L12, L13, L14, L15 }, \ + { L20, L21, L22, L23, L24, L25 }, \ + { L30, L31, L32, L33, L34, L35 }, \ + { R05, R04, R03, R02, R01, R00 }, \ + { R15, R14, R13, R12, R11, R10 }, \ + { R25, R24, R23, R22, R21, R20 }, \ + { R35, R34, R33, R32, R31, R30 } \ } - #else -// Keymap with one side flipped +// Keymap with right side flipped +// (TRRS jack on both halves are to the right) #define KEYMAP( \ - k00, k01, k02, k03, k04, k05, k40, k41, k42, k43, k44, k45, \ - k10, k11, k12, k13, k14, k15, k50, k51, k52, k53, k54, k55, \ - k20, k21, k22, k23, k24, k25, k60, k61, k62, k63, k64, k65, \ - k30, k31, k32, k33, k34, k35, k70, k71, k72, k73, k74, k75 \ + L00, L01, L02, L03, L04, L05, R00, R01, R02, R03, R04, R05, \ + L10, L11, L12, L13, L14, L15, R10, R11, R12, R13, R14, R15, \ + L20, L21, L22, L23, L24, L25, R20, R21, R22, R23, R24, R25, \ + L30, L31, L32, L33, L34, L35, R30, R31, R32, R33, R34, R35 \ ) \ { \ - { k00, k01, k02, k03, k04, k05 }, \ - { k10, k11, k12, k13, k14, k15 }, \ - { k20, k21, k22, k23, k24, k25 }, \ - { k30, k31, k32, k33, k34, k35 }, \ - { k45, k44, k43, k42, k41, k40 }, \ - { k55, k54, k53, k52, k51, k50 }, \ - { k65, k64, k63, k62, k61, k60 }, \ - { k75, k74, k73, k72, k71, k70 } \ + { L00, L01, L02, L03, L04, L05 }, \ + { L10, L11, L12, L13, L14, L15 }, \ + { L20, L21, L22, L23, L24, L25 }, \ + { L30, L31, L32, L33, L34, L35 }, \ + { R00, R01, R02, R03, R04, R05 }, \ + { R10, R11, R12, R13, R14, R15 }, \ + { R20, R21, R22, R23, R24, R25 }, \ + { R30, R31, R32, R33, R34, R35 } \ } #endif - -#endif \ No newline at end of file +#endif From 563961328be1605a7f3942f042572a0160ac2959 Mon Sep 17 00:00:00 2001 From: Danny Nguyen Date: Mon, 3 Apr 2017 12:31:38 -0400 Subject: [PATCH 071/190] Rename COMPACT_KEYMAP to KC_KEYMAP and move to lets_split.h --- keyboards/lets_split/keymaps/hexwire/config.h | 36 +------------------ keyboards/lets_split/keymaps/hexwire/keymap.c | 12 +++---- keyboards/lets_split/lets_split.h | 14 ++++++++ 3 files changed, 21 insertions(+), 41 deletions(-) diff --git a/keyboards/lets_split/keymaps/hexwire/config.h b/keyboards/lets_split/keymaps/hexwire/config.h index e5a779f6339..27c24fe4beb 100644 --- a/keyboards/lets_split/keymaps/hexwire/config.h +++ b/keyboards/lets_split/keymaps/hexwire/config.h @@ -19,47 +19,13 @@ along with this program. If not, see . #define USE_SERIAL #define TAPPING_TERM 150 +#define FLIP_HALF #ifdef SUBPROJECT_rev1 #include "../../rev1/config.h" - #define COMPACT_KEYMAP( \ - k00, k01, k02, k03, k04, k05, k40, k41, k42, k43, k44, k45, \ - k10, k11, k12, k13, k14, k15, k50, k51, k52, k53, k54, k55, \ - k20, k21, k22, k23, k24, k25, k60, k61, k62, k63, k64, k65, \ - k30, k31, k32, k33, k34, k35, k70, k71, k72, k73, k74, k75 \ - ) \ - { \ - { KC_##k00, KC_##k01, KC_##k02, KC_##k03, KC_##k04, KC_##k05 }, \ - { KC_##k10, KC_##k11, KC_##k12, KC_##k13, KC_##k14, KC_##k15 }, \ - { KC_##k20, KC_##k21, KC_##k22, KC_##k23, KC_##k24, KC_##k25 }, \ - { KC_##k30, KC_##k31, KC_##k32, KC_##k33, KC_##k34, KC_##k35 }, \ - { KC_##k40, KC_##k41, KC_##k42, KC_##k43, KC_##k44, KC_##k45 }, \ - { KC_##k50, KC_##k51, KC_##k52, KC_##k53, KC_##k54, KC_##k55 }, \ - { KC_##k60, KC_##k61, KC_##k62, KC_##k63, KC_##k64, KC_##k65 }, \ - { KC_##k70, KC_##k71, KC_##k72, KC_##k73, KC_##k74, KC_##k75 } \ - } #endif #ifdef SUBPROJECT_rev2 #include "../../rev2/config.h" - #define COMPACT_KEYMAP( \ - k00, k01, k02, k03, k04, k05, k45, k44, k43, k42, k41, k40, \ - k10, k11, k12, k13, k14, k15, k55, k54, k53, k52, k51, k50, \ - k20, k21, k22, k23, k24, k25, k65, k64, k63, k62, k61, k60, \ - k30, k31, k32, k33, k34, k35, k75, k74, k73, k72, k71, k70 \ - ) \ - { \ - { KC_##k00, KC_##k01, KC_##k02, KC_##k03, KC_##k04, KC_##k05 }, \ - { KC_##k10, KC_##k11, KC_##k12, KC_##k13, KC_##k14, KC_##k15 }, \ - { KC_##k20, KC_##k21, KC_##k22, KC_##k23, KC_##k24, KC_##k25 }, \ - { KC_##k30, KC_##k31, KC_##k32, KC_##k33, KC_##k34, KC_##k35 }, \ - { KC_##k40, KC_##k41, KC_##k42, KC_##k43, KC_##k44, KC_##k45 }, \ - { KC_##k50, KC_##k51, KC_##k52, KC_##k53, KC_##k54, KC_##k55 }, \ - { KC_##k60, KC_##k61, KC_##k62, KC_##k63, KC_##k64, KC_##k65 }, \ - { KC_##k70, KC_##k71, KC_##k72, KC_##k73, KC_##k74, KC_##k75 } \ - } -#endif -#ifdef SUBPROJECT_rev2fliphalf - #include "../../rev2fliphalf/config.h" #endif #undef RGBLED_NUM diff --git a/keyboards/lets_split/keymaps/hexwire/keymap.c b/keyboards/lets_split/keymaps/hexwire/keymap.c index f8370490d6c..fcf3cde7580 100644 --- a/keyboards/lets_split/keymaps/hexwire/keymap.c +++ b/keyboards/lets_split/keymaps/hexwire/keymap.c @@ -39,7 +39,7 @@ enum custom_keycodes { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_QWERTY] = COMPACT_KEYMAP( + [_QWERTY] = KC_KEYMAP( //,----+----+----+----+----+----. ,----+----+----+----+----+----. TAB , Q , W , E , R , T , Y , U , I , O , P ,MINS, //|----+----+----+----+----+----| |----+----+----+----+----+----| @@ -51,7 +51,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //`----+----+----+----+----+----' `----+----+----+----+----+----' ), - [_COLEMAK] = COMPACT_KEYMAP( + [_COLEMAK] = KC_KEYMAP( //,----+----+----+----+----+----. ,----+----+----+----+----+----. TAB , Q , W , F , P , G , J , L , U , Y ,SCLN,MINS, //|----+----+----+----+----+----| |----+----+----+----+----+----| @@ -63,7 +63,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //`----+----+----+----+----+----' `----+----+----+----+----+----' ), - [_DVORAK] = COMPACT_KEYMAP( + [_DVORAK] = KC_KEYMAP( //,----+----+----+----+----+----. ,----+----+----+----+----+----. TAB ,QUOT,COMM,DOT , P , Y , F , G , C , R , L ,MINS, //|----+----+----+----+----+----| |----+----+----+----+----+----| @@ -75,7 +75,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //`----+----+----+----+----+----' `----+----+----+----+----+----' ), - [_LOWER] = COMPACT_KEYMAP( + [_LOWER] = KC_KEYMAP( //,----+----+----+----+----+----. ,----+----+----+----+----+----. , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 0 , , //|----+----+----+----+----+----| |----+----+----+----+----+----| @@ -87,7 +87,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //`----+----+----+----+----+----' `----+----+----+----+----+----' ), - [_RAISE] = COMPACT_KEYMAP( + [_RAISE] = KC_KEYMAP( //,----+----+----+----+----+----. ,----+----+----+----+----+----. ,EXLM, AT ,HASH,DLR ,PERC, CIRC,AMPR,ASTR,LPRN,RPRN, , //|----+----+----+----+----+----| |----+----+----+----+----+----| @@ -99,7 +99,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //`----+----+----+----+----+----' `----+----+----+----+----+----' ), - [_FN3] = COMPACT_KEYMAP( + [_FN3] = KC_KEYMAP( //,----+----+----+----+----+----. ,----+----+----+----+----+----. F12 , F1 , F2 , F3 , F4 , F5 , F6 , F7 , F8 , F9 ,F10 ,F11 , //|----+----+----+----+----+----| |----+----+----+----+----+----| diff --git a/keyboards/lets_split/lets_split.h b/keyboards/lets_split/lets_split.h index 0de308c7a9d..1892bf2cbd6 100644 --- a/keyboards/lets_split/lets_split.h +++ b/keyboards/lets_split/lets_split.h @@ -11,6 +11,20 @@ #include "rev2fliphalf.h" #endif +// Used to create a keymap using only KC_ prefixed keys +#define KC_KEYMAP( \ + L00, L01, L02, L03, L04, L05, R00, R01, R02, R03, R04, R05, \ + L10, L11, L12, L13, L14, L15, R10, R11, R12, R13, R14, R15, \ + L20, L21, L22, L23, L24, L25, R20, R21, R22, R23, R24, R25, \ + L30, L31, L32, L33, L34, L35, R30, R31, R32, R33, R34, R35 \ + ) \ + KEYMAP( \ + KC_##L00, KC_##L01, KC_##L02, KC_##L03, KC_##L04, KC_##L05, KC_##R00, KC_##R01, KC_##R02, KC_##R03, KC_##R04, KC_##R05, \ + KC_##L10, KC_##L11, KC_##L12, KC_##L13, KC_##L14, KC_##L15, KC_##R10, KC_##R11, KC_##R12, KC_##R13, KC_##R14, KC_##R15, \ + KC_##L20, KC_##L21, KC_##L22, KC_##L23, KC_##L24, KC_##L25, KC_##R20, KC_##R21, KC_##R22, KC_##R23, KC_##R24, KC_##R25, \ + KC_##L30, KC_##L31, KC_##L32, KC_##L33, KC_##L34, KC_##L35, KC_##R30, KC_##R31, KC_##R32, KC_##R33, KC_##R34, KC_##R35 \ + ) + #include "quantum.h" #endif \ No newline at end of file From d90ac762958eb77222a5277d64474f2aa3349176 Mon Sep 17 00:00:00 2001 From: Danny Nguyen Date: Mon, 3 Apr 2017 12:51:31 -0400 Subject: [PATCH 072/190] Move defines for RGB to after the config.h include --- .../lets_split/keymaps/OLED_sample/config.h | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/keyboards/lets_split/keymaps/OLED_sample/config.h b/keyboards/lets_split/keymaps/OLED_sample/config.h index 353ea368c66..8389ba111d4 100644 --- a/keyboards/lets_split/keymaps/OLED_sample/config.h +++ b/keyboards/lets_split/keymaps/OLED_sample/config.h @@ -27,19 +27,16 @@ along with this program. If not, see . #define TAPPING_FORCE_HOLD #define TAPPING_TERM 100 +#ifdef SUBPROJECT_rev1 + #include "../../rev1/config.h" +#endif +#ifdef SUBPROJECT_rev2 + #include "../../rev2/config.h" +#endif + #undef RGBLED_NUM #define RGBLIGHT_ANIMATIONS #define RGBLED_NUM 6 #define RGBLIGHT_HUE_STEP 10 #define RGBLIGHT_SAT_STEP 17 #define RGBLIGHT_VAL_STEP 17 - - - - -#ifdef SUBPROJECT_rev1 - #include "../../rev1/config.h" -#endif -#ifdef SUBPROJECT_rev2 - #include "../../rev2/config.h" -#endif \ No newline at end of file From e3aeab356afd52299bf6cf05b5c99995ce167275 Mon Sep 17 00:00:00 2001 From: Danny Nguyen Date: Mon, 3 Apr 2017 13:04:34 -0400 Subject: [PATCH 073/190] Move SSD1306 function declarations to header file --- .../lets_split/keymaps/OLED_sample/keymap.c | 3 +++ keyboards/lets_split/rev2/rev2.c | 1 - keyboards/lets_split/rev2/rev2.h | 11 ----------- keyboards/lets_split/ssd1306.c | 3 +-- keyboards/lets_split/ssd1306.h | 17 +++++++++++++++++ 5 files changed, 21 insertions(+), 14 deletions(-) create mode 100644 keyboards/lets_split/ssd1306.h diff --git a/keyboards/lets_split/keymaps/OLED_sample/keymap.c b/keyboards/lets_split/keymaps/OLED_sample/keymap.c index 072b825abed..493ebcd3f2c 100644 --- a/keyboards/lets_split/keymaps/OLED_sample/keymap.c +++ b/keyboards/lets_split/keymaps/OLED_sample/keymap.c @@ -6,6 +6,9 @@ #ifdef AUDIO_ENABLE #include "audio.h" #endif +#ifdef SSD1306OLED + #include "ssd1306.h" +#endif extern keymap_config_t keymap_config; diff --git a/keyboards/lets_split/rev2/rev2.c b/keyboards/lets_split/rev2/rev2.c index 8bfa171d01d..20a4c6be1ef 100644 --- a/keyboards/lets_split/rev2/rev2.c +++ b/keyboards/lets_split/rev2/rev2.c @@ -37,4 +37,3 @@ void shutdown_user(void) { stop_all_notes(); #endif } - diff --git a/keyboards/lets_split/rev2/rev2.h b/keyboards/lets_split/rev2/rev2.h index 0603827e08b..0c4e8e7de12 100644 --- a/keyboards/lets_split/rev2/rev2.h +++ b/keyboards/lets_split/rev2/rev2.h @@ -13,17 +13,6 @@ #include #include #endif -#ifdef SSD1306OLED - extern bool iota_gfx_init(void); - extern void iota_gfx_task(void); - extern bool iota_gfx_off(void); - extern bool iota_gfx_on(void); - extern void iota_gfx_flush(void); - extern void iota_gfx_write_char(uint8_t c); - extern void iota_gfx_write(const char *data); - extern void iota_gfx_write_P(const char *data); - extern void iota_gfx_clear_screen(void); -#endif #endif //void promicro_bootloader_jmp(bool program); diff --git a/keyboards/lets_split/ssd1306.c b/keyboards/lets_split/ssd1306.c index 3c7816bb327..76348ab7f2c 100644 --- a/keyboards/lets_split/ssd1306.c +++ b/keyboards/lets_split/ssd1306.c @@ -1,8 +1,7 @@ +#include "ssd1306.h" #include "config.h" #include "i2c.h" -#include #include -#include #include "print.h" #include "lets_split.h" #include "common/glcdfont.c" diff --git a/keyboards/lets_split/ssd1306.h b/keyboards/lets_split/ssd1306.h new file mode 100644 index 00000000000..b0c74f987e0 --- /dev/null +++ b/keyboards/lets_split/ssd1306.h @@ -0,0 +1,17 @@ +#ifndef SSD1306_H +#define SSD1306_H + +#include +#include + +bool iota_gfx_init(void); +void iota_gfx_task(void); +bool iota_gfx_off(void); +bool iota_gfx_on(void); +void iota_gfx_flush(void); +void iota_gfx_write_char(uint8_t c); +void iota_gfx_write(const char *data); +void iota_gfx_write_P(const char *data); +void iota_gfx_clear_screen(void); + +#endif From 133ed52466f1a6d29974f1efc1deddcdafe773a8 Mon Sep 17 00:00:00 2001 From: Danny Nguyen Date: Mon, 3 Apr 2017 13:23:23 -0400 Subject: [PATCH 074/190] =?UTF-8?q?Update=20Let=E2=80=99s=20Split=20readme?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- keyboards/lets_split/readme.md | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/keyboards/lets_split/readme.md b/keyboards/lets_split/readme.md index ecce3f4152c..a8525a2e9d1 100644 --- a/keyboards/lets_split/readme.md +++ b/keyboards/lets_split/readme.md @@ -7,6 +7,12 @@ Split keyboard firmware for Arduino Pro Micro or other ATmega32u4 based boards. +## Build Guide + +A build guide for putting together the Let's Split v2 can be found here: [An Overly Verbose Guide to Building a Let's Split Keyboard](https://github.com/nicinabox/lets-split-guide) + +There is additional information there about flashing and adding RGB underglow. + ## First Time Setup Download or clone the whole firmware and navigate to the keyboards/lets_split directory. Once your dev env is setup, you'll be able to generate the default .hex using: @@ -62,8 +68,8 @@ Apart from diodes and key switches for the keyboard matrix in each half, you will need: * 2 Arduino Pro Micro's. You can find theses on aliexpress for ≈3.50USD each. -* 2 TRS sockets -* 1 TRS cable. +* 2 TRRS sockets +* 1 TRRS cable. Alternatively, you can use any sort of cable and socket that has at least 3 wires. If you want to use I2C to communicate between halves, you will need a @@ -77,7 +83,7 @@ A speaker can be hooked-up to either side to the `5` (`C6`) pin and `GND`, and t Wiring ------ -The 3 wires of the TRS cable need to connect GND, VCC, and digital pin 3 (i.e. +The 3 wires of the TRRS cable need to connect GND, VCC, and digital pin 3 (i.e. PD0 on the ATmega32u4) between the two Pro Micros. Then wire your key matrix to any of the remaining 17 IO pins of the pro micro From ed9c18e86650496627e3a94c29c370e76a6e8313 Mon Sep 17 00:00:00 2001 From: Danny Nguyen Date: Mon, 3 Apr 2017 14:00:33 -0400 Subject: [PATCH 075/190] Remove flip-half from keymap --- keyboards/lets_split/keymaps/hexwire/config.h | 1 - 1 file changed, 1 deletion(-) diff --git a/keyboards/lets_split/keymaps/hexwire/config.h b/keyboards/lets_split/keymaps/hexwire/config.h index 27c24fe4beb..e315d8c0c34 100644 --- a/keyboards/lets_split/keymaps/hexwire/config.h +++ b/keyboards/lets_split/keymaps/hexwire/config.h @@ -19,7 +19,6 @@ along with this program. If not, see . #define USE_SERIAL #define TAPPING_TERM 150 -#define FLIP_HALF #ifdef SUBPROJECT_rev1 #include "../../rev1/config.h" From 13c882a1fbd3fe3d4f703628df46f18fc69e09ea Mon Sep 17 00:00:00 2001 From: Erez Zukerman Date: Mon, 3 Apr 2017 15:11:42 -0400 Subject: [PATCH 076/190] disables space cadet rollover --- keyboards/ergodox/ez/config.h | 3 +++ 1 file changed, 3 insertions(+) diff --git a/keyboards/ergodox/ez/config.h b/keyboards/ergodox/ez/config.h index e4f95c302c2..a3347de45e2 100644 --- a/keyboards/ergodox/ez/config.h +++ b/keyboards/ergodox/ez/config.h @@ -49,6 +49,9 @@ along with this program. If not, see . #define RGBLIGHT_SAT_STEP 255 #define RGBLIGHT_VAL_STEP 12 +/* fix space cadet rollover issue */ +#define DISABLE_SPACE_CADET_ROLLOVER + // #define RGB_MIDI #define RGBW_BB_TWI From fbd9d04559962cb0db3a584d397f49371a4d7fb6 Mon Sep 17 00:00:00 2001 From: Danny Nguyen Date: Mon, 3 Apr 2017 16:16:46 -0400 Subject: [PATCH 077/190] Include use of either TRS or TRRS --- keyboards/lets_split/readme.md | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/keyboards/lets_split/readme.md b/keyboards/lets_split/readme.md index a8525a2e9d1..7e5a5460223 100644 --- a/keyboards/lets_split/readme.md +++ b/keyboards/lets_split/readme.md @@ -68,8 +68,7 @@ Apart from diodes and key switches for the keyboard matrix in each half, you will need: * 2 Arduino Pro Micro's. You can find theses on aliexpress for ≈3.50USD each. -* 2 TRRS sockets -* 1 TRRS cable. +* 2 TRRS sockets and 1 TRRS cable, or 2 TRS sockets and 1 TRS cable Alternatively, you can use any sort of cable and socket that has at least 3 wires. If you want to use I2C to communicate between halves, you will need a @@ -83,7 +82,7 @@ A speaker can be hooked-up to either side to the `5` (`C6`) pin and `GND`, and t Wiring ------ -The 3 wires of the TRRS cable need to connect GND, VCC, and digital pin 3 (i.e. +The 3 wires of the TRS/TRRS cable need to connect GND, VCC, and digital pin 3 (i.e. PD0 on the ATmega32u4) between the two Pro Micros. Then wire your key matrix to any of the remaining 17 IO pins of the pro micro From 1454d466e7180dd8f55a635a13153fc04a32d8bb Mon Sep 17 00:00:00 2001 From: Dan Saunders Date: Mon, 3 Apr 2017 15:14:45 -0600 Subject: [PATCH 078/190] Create twolayer.c fixed issue where Default.c "function key" does not work (actually it's changing my LED steps). Changed layout to be more user friendly for people that use the standard spacebar milled top plate. --- keyboards/atomic/keymaps/twolayer.c | 72 +++++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100644 keyboards/atomic/keymaps/twolayer.c diff --git a/keyboards/atomic/keymaps/twolayer.c b/keyboards/atomic/keymaps/twolayer.c new file mode 100644 index 00000000000..8ea045d806a --- /dev/null +++ b/keyboards/atomic/keymaps/twolayer.c @@ -0,0 +1,72 @@ +#include "atomic.h" + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +/* QWERTY - MIT ENHANCED / GRID COMPATIBLE + * .---------------------------------------------------------------------------------------------------------------------- 2u ------------. + * | ESC | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | XXXXXX . BACKSP | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------| + * | TAB | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ | DEL | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ------------+--------| + * | LCTRL1 | A | S | D | F | G | H | J | K | L | ; | ' | XXXXXX . ENTER | PG UP | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ---------------------+--------| + * | LSHIFT | Z | X | C | V | B | N | M | , | . | / | XXXXXX . RSHIFT | UP | PG DN | + * |--------+--------+--------+--------+--------+- 6.25u ---------+--------+--------+--------+--------+-----------------+--------+--------| + * | BRITE | LALT | FN | XXXXXX . SPACE | RCTRL | RALT | FN | LEFT | DOWN | RIGHT | + * '--------------------------------------------------------------------------------------------------------------------------------------' + */ + + [0] = { /* QWERTY */ + { KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, 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_LBRC, KC_RBRC, KC_BSLS, KC_DEL }, + { KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_ENT, KC_PGUP }, + { KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_RSFT, KC_UP, KC_PGDN }, + { M(0), KC_ALT, MO(1), KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_RCTL, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT }, + }, + + +/* FUNCTION + * .---------------------------------------------------------------------------------------------------------------------- 2u ------------. + * | GRV | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | XXXXXX . | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------| + * | SCR LK | F13 | F14 | F15 | F16 | F17 | F18 | F19 | F20 | F21 | F22 | F23 | F24 | PAUSE | PR SCR | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ------------+--------| + * | CAP LK | MS BT5 | MS BT4 | MS BT3 | MS BT2 | SLOW M | FAST M | NEXT | VOL+ | VOL- | PLAY | | XXXXXX . | WHEEL+ | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ---------------------+--------| + * | NUM LK | | | | | | | | INSERT | END1 | HOME | XXXXXX . | MOUS U | WHEEL- | + * |--------+--------+--------+--------+--------+- 6.25 ------------+--------+--------+------+--------+-----------------+--------+--------| + * | | | FN | XXXXXX . MS BT1 | | | FN | MOUS L | MOUS D | MOUS R | + * '--------------------------------------------------------------------------------------------------------------------------------------' + */ + + [1] = { /* FUNCTION LAYER*/ + { KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, ___T___, ___T___ }, + { KC_SLCK, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24, KC_PAUS, KC_PSCR }, + { KC_CAPS, KC_BTN5, KC_BTN4, KC_BTN3, KC_BTN2, KC_ACL0, KC_ACL2, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY, _______, ___T___, ___T___, KC_WH_U }, + { KC_NLCK, _______, _______, _______, _______, _______, _______, _______, KC_INSERT, KC_END, KC_HOME, ___T___, ___T___, KC_MS_U, KC_WH_D }, + { _______, _______, MO(1), _______, _______, KC_BTN1, KC_BTN1, _______, _______, _______, _______, MO(1), KC_MS_L, KC_MS_D, KC_MS_R }, + }, +}; + +const uint16_t PROGMEM fn_actions[] = { + [1] = ACTION_LAYER_MOMENTARY(1), + [2] = ACTION_LAYER_MOMENTARY(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); + #ifdef BACKLIGHT_ENABLE + backlight_step(); + #endif + } else { + unregister_code(KC_RSFT); + } + break; + } + return MACRO_NONE; +}; From e18768aa77985e3695f34b71f0e84547293e8104 Mon Sep 17 00:00:00 2001 From: Adam YH Lee Date: Mon, 21 Nov 2016 08:22:14 -0800 Subject: [PATCH 079/190] Add B1gtuna Miuni32 Miuni32 is a 30% ortholinear board. Please visit www.bigtuna.io for more information. --- keyboards/miuni32/Makefile | 3 + keyboards/miuni32/config.h | 170 ++++++++++++++++++++ keyboards/miuni32/keymaps/default/Makefile | 21 +++ keyboards/miuni32/keymaps/default/config.h | 8 + keyboards/miuni32/keymaps/default/keymap.c | 49 ++++++ keyboards/miuni32/keymaps/default/readme.md | 1 + keyboards/miuni32/miuni32.c | 28 ++++ keyboards/miuni32/miuni32.h | 15 ++ keyboards/miuni32/readme.md | 28 ++++ keyboards/miuni32/rules.mk | 67 ++++++++ 10 files changed, 390 insertions(+) create mode 100644 keyboards/miuni32/Makefile create mode 100644 keyboards/miuni32/config.h create mode 100644 keyboards/miuni32/keymaps/default/Makefile create mode 100644 keyboards/miuni32/keymaps/default/config.h create mode 100644 keyboards/miuni32/keymaps/default/keymap.c create mode 100644 keyboards/miuni32/keymaps/default/readme.md create mode 100644 keyboards/miuni32/miuni32.c create mode 100644 keyboards/miuni32/miuni32.h create mode 100644 keyboards/miuni32/readme.md create mode 100644 keyboards/miuni32/rules.mk diff --git a/keyboards/miuni32/Makefile b/keyboards/miuni32/Makefile new file mode 100644 index 00000000000..57b2ef62e5f --- /dev/null +++ b/keyboards/miuni32/Makefile @@ -0,0 +1,3 @@ +ifndef MAKEFILE_INCLUDED + include ../../Makefile +endif diff --git a/keyboards/miuni32/config.h b/keyboards/miuni32/config.h new file mode 100644 index 00000000000..4f9b685518d --- /dev/null +++ b/keyboards/miuni32/config.h @@ -0,0 +1,170 @@ +/* +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 . +*/ + +#ifndef CONFIG_H +#define CONFIG_H + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x6060 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Bigtuna.io +#define PRODUCT Miuni32 +#define DESCRIPTION A custom keyboard for writers + +/* key matrix size */ +#define MATRIX_ROWS 3 +#define MATRIX_COLS 11 + +/* + * 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 MATRIX_ROW_PINS { F0, F4, D7} +#define MATRIX_COL_PINS { C6, C7, F7, F6, F1, E6, B7, B3, B2, B1, B0} +#define UNUSED_PINS + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION ROW2COL + +// #define BACKLIGHT_PIN B7 +// #define BACKLIGHT_BREATHING +// #define BACKLIGHT_LEVELS 3 + + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCING_DELAY 5 + +/* define if matrix has ghost (lacks anti-ghosting diodes) */ +//#define MATRIX_HAS_GHOST + +/* number of backlight levels */ + +/* 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 + * + * 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 + * + * 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 */ +#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. + */ + +/* disable debug print */ +//#define NO_DEBUG + +/* disable print */ +//#define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT +//#define NO_ACTION_MACRO +//#define NO_ACTION_FUNCTION + +#define RGBLIGHT_TIMER +#define RGB_DI_PIN D0 // The pin your RGB strip is wired to +#define RGBLIGHT_TIMER // Require for fancier stuff (not compatible with audio) +#define RGBLED_NUM 7 // Number of LEDs +#define RGBLIGHT_HUE_STEP 10 +#define RGBLIGHT_SAT_STEP 17 +#define RGBLIGHT_VAL_STEP 17 + +#endif diff --git a/keyboards/miuni32/keymaps/default/Makefile b/keyboards/miuni32/keymaps/default/Makefile new file mode 100644 index 00000000000..88a3aea7419 --- /dev/null +++ b/keyboards/miuni32/keymaps/default/Makefile @@ -0,0 +1,21 @@ +# Build Options +# change to "no" to disable the options, or define them in the Makefile in +# the appropriate keymap folder that will get included automatically +# +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE = yes # Mouse keys(+4700) +EXTRAKEY_ENABLE = yes # Audio control and System control(+450) +CONSOLE_ENABLE = no # Console for debug(+400) +COMMAND_ENABLE = yes # Commands for debug and configuration +NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +MIDI_ENABLE = no # MIDI controls +AUDIO_ENABLE = no # Audio output on port C6 +UNICODE_ENABLE = no # Unicode +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend + +ifndef QUANTUM_DIR + include ../../../../Makefile +endif diff --git a/keyboards/miuni32/keymaps/default/config.h b/keyboards/miuni32/keymaps/default/config.h new file mode 100644 index 00000000000..df06a262062 --- /dev/null +++ b/keyboards/miuni32/keymaps/default/config.h @@ -0,0 +1,8 @@ +#ifndef CONFIG_USER_H +#define CONFIG_USER_H + +#include "../../config.h" + +// place overrides here + +#endif \ No newline at end of file diff --git a/keyboards/miuni32/keymaps/default/keymap.c b/keyboards/miuni32/keymaps/default/keymap.c new file mode 100644 index 00000000000..15e2fa45c07 --- /dev/null +++ b/keyboards/miuni32/keymaps/default/keymap.c @@ -0,0 +1,49 @@ +#include "miuni32.h" + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[0] ={ + {KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, + {KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_RSFT, KC_ENT}, + {KC_Z, KC_X, KC_C, KC_V, KC_V, KC_SPC, KC_B, KC_N, KC_M , MO(1), KC_RCTL} + }, +[1] ={ + {KC_PGUP, KC_UP, KC_PGDN, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_DEL}, + {KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_HOME, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_END, KC_TRNS}, + {RGB_TOG, RGB_HUI, RGB_HUD, RGB_SAI, KC_TRNS, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, KC_TRNS, RGB_MOD}, + } +}; +const uint16_t PROGMEM fn_actions[] = { + +}; + +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; +}; + + +void matrix_init_user(void) { + +} + +void matrix_scan_user(void) { + +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + return true; +} + +void led_set_user(uint8_t usb_led) { + +} diff --git a/keyboards/miuni32/keymaps/default/readme.md b/keyboards/miuni32/keymaps/default/readme.md new file mode 100644 index 00000000000..4cff8ef5a3a --- /dev/null +++ b/keyboards/miuni32/keymaps/default/readme.md @@ -0,0 +1 @@ +# The default keymap for miuni32 \ No newline at end of file diff --git a/keyboards/miuni32/miuni32.c b/keyboards/miuni32/miuni32.c new file mode 100644 index 00000000000..1c1983a5641 --- /dev/null +++ b/keyboards/miuni32/miuni32.c @@ -0,0 +1,28 @@ +#include "miuni32.h" + +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) + + matrix_scan_user(); +} + +bool process_record_kb(uint16_t keycode, keyrecord_t *record) { + // put your per-action keyboard code here + // runs for every action, just before processing by the firmware + + return process_record_user(keycode, 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); +} diff --git a/keyboards/miuni32/miuni32.h b/keyboards/miuni32/miuni32.h new file mode 100644 index 00000000000..eecb17f81fb --- /dev/null +++ b/keyboards/miuni32/miuni32.h @@ -0,0 +1,15 @@ +#ifndef MIUNI32_H +#define MIUNI32_H + +#include "quantum.h" + +#define KEYMAP( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A ) { \ + { KC_##K00, KC_##K01, KC_##K02, KC_##K03, KC_##K04, KC_##K05, KC_##K06, KC_##K07, KC_##K08, KC_##K09, KC_##K0A }, \ + { KC_##K10, KC_##K11, KC_##K12, KC_##K13, KC_##K14, KC_##K15, KC_##K16, KC_##K17, KC_##K18, KC_##K19, KC_##K1A }, \ + { KC_##K20, KC_##K21, KC_##K22, KC_##K23, KC_##K24, KC_##K25, KC_##K26, KC_##K27, KC_##K28, KC_##K29, KC_##K2A } \ +} + +#endif diff --git a/keyboards/miuni32/readme.md b/keyboards/miuni32/readme.md new file mode 100644 index 00000000000..36696ddbcbd --- /dev/null +++ b/keyboards/miuni32/readme.md @@ -0,0 +1,28 @@ +miuni32 keyboard firmware +====================== + +## Quantum MK Firmware + +For the full Quantum feature list, see [the parent readme](/). + +## Building + +Download or clone the whole firmware and navigate to the keyboards/miuni32 folder. Once your dev env is setup, you'll be able to type `make` to generate your .hex - you can then use the Teensy Loader to program your .hex file. + +Depending on which keymap you would like to use, you will have to compile slightly differently. + +### Default + +To build with the default keymap, simply run `make default`. + +### 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 a folder with the name of your keymap in the keymaps folder, and see keymap documentation (you can find in top readme.md) and existant keymap files. + +To build the firmware binary hex file with a keymap just do `make` with a keymap like this: + +``` +$ make [default|jack|] +``` + +Keymaps follow the format **__\.c__** and are stored in the `keymaps` folder. diff --git a/keyboards/miuni32/rules.mk b/keyboards/miuni32/rules.mk new file mode 100644 index 00000000000..55898147dd3 --- /dev/null +++ b/keyboards/miuni32/rules.mk @@ -0,0 +1,67 @@ +# MCU name +#MCU = at90usb1287 +MCU = atmega32u4 + +# Processor frequency. +# This will define a symbol, F_CPU, in all source code files equal to the +# processor frequency in Hz. You can then use this symbol in your source code to +# calculate timings. Do NOT tack on a 'UL' at the end, this will be done +# automatically to create a 32-bit value in your source code. +# +# This will be an integer division of F_USB below, as it is sourced by +# F_USB after it has run through any CPU prescalers. Note that this value +# does not *change* the processor frequency - it should merely be updated to +# reflect the processor speed set externally so that the code can use accurate +# software delays. +F_CPU = 16000000 + + +# +# LUFA specific +# +# Target architecture (see library "Board Types" documentation). +ARCH = AVR8 + +# Input clock frequency. +# This will define a symbol, F_USB, in all source code files equal to the +# input clock frequency (before any prescaling is performed) in Hz. This value may +# differ from F_CPU if prescaling is used on the latter, and is required as the +# raw input clock is fed directly to the PLL sections of the AVR for high speed +# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL' +# at the end, this will be done automatically to create a 32-bit value in your +# source code. +# +# If no clock division is performed on the input clock inside the AVR (via the +# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU. +F_USB = $(F_CPU) + +# Interrupt driven control endpoint task(+60) +OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT + + +# Boot Section Size in *bytes* +# Teensy halfKay 512 +# Teensy++ halfKay 1024 +# Atmel DFU loader 4096 +# LUFA bootloader 4096 +# USBaspLoader 2048 +OPT_DEFS += -DBOOTLOADER_SIZE=512 + + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE ?= no # 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 +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE ?= no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE ?= no # USB Nkey Rollover +BACKLIGHT_ENABLE ?= no # Enable keyboard backlight functionality on B7 by default +MIDI_ENABLE ?= no # MIDI controls +UNICODE_ENABLE ?= no # Unicode +BLUETOOTH_ENABLE ?= no # Enable Bluetooth with the Adafruit EZ-Key HID +AUDIO_ENABLE ?= no # Audio output on port C6 From 8e7be3adda577ab58ed942d83e0d2ebd4ab07f88 Mon Sep 17 00:00:00 2001 From: Adam Lee Date: Tue, 4 Apr 2017 10:21:32 -0700 Subject: [PATCH 080/190] Set Bootloader Size to 4K Use Atmel's default bootloader size, rather than Teensy 2.0's [1]. [1] https://github.com/qmk/qmk_firmware/pull/1207#discussion_r109712786 --- keyboards/miuni32/rules.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/keyboards/miuni32/rules.mk b/keyboards/miuni32/rules.mk index 55898147dd3..ef8daf3caa8 100644 --- a/keyboards/miuni32/rules.mk +++ b/keyboards/miuni32/rules.mk @@ -45,7 +45,7 @@ OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT # Atmel DFU loader 4096 # LUFA bootloader 4096 # USBaspLoader 2048 -OPT_DEFS += -DBOOTLOADER_SIZE=512 +OPT_DEFS += -DBOOTLOADER_SIZE=4096 # Build Options From 154305ce1be16b2c8abce5e5d4dee421f295d6b3 Mon Sep 17 00:00:00 2001 From: Gabe Y Date: Tue, 4 Apr 2017 22:39:28 -0700 Subject: [PATCH 081/190] Fix formatting in BUILD_GUIDE.md (#1208) --- doc/BUILD_GUIDE.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/BUILD_GUIDE.md b/doc/BUILD_GUIDE.md index 1750191836d..78cf00b917d 100644 --- a/doc/BUILD_GUIDE.md +++ b/doc/BUILD_GUIDE.md @@ -96,7 +96,7 @@ The keyboard `config.h` is included only if the keymap one doesn't exist. The fo ``` #undef MY_SETTING #define MY_SETTING 4 -```c +``` For a value of `4` for this imaginary setting. So we `undef` it first, then `define` it. From 3a5f9faca969487bbf7eeaf0ba921dc0d9bef6d2 Mon Sep 17 00:00:00 2001 From: Xyverz Date: Thu, 6 Apr 2017 22:02:38 -0700 Subject: [PATCH 082/190] Reworked Atreus keymap, added README --- keyboards/atreus/keymaps/xyverz/keymap.c | 190 +++++++++++++++++------ 1 file changed, 146 insertions(+), 44 deletions(-) diff --git a/keyboards/atreus/keymaps/xyverz/keymap.c b/keyboards/atreus/keymaps/xyverz/keymap.c index 66fdebb50b9..4471b9caf36 100644 --- a/keyboards/atreus/keymaps/xyverz/keymap.c +++ b/keyboards/atreus/keymaps/xyverz/keymap.c @@ -12,49 +12,129 @@ extern keymap_config_t keymap_config; // The underscores don't mean anything - you can have a layer called STUFF or any other name. // Layer names don't all need to be of the same length, obviously, and you can also skip them // entirely and just use numbers. -#define _DV 0 -#define _QW 1 -#define _CM 2 -#define _L1 3 -#define _L2 4 +#define _DVORAK 0 +#define _QWERTY 1 +#define _COLEMAK 2 +#define _LOWER 3 +#define _RAISE 4 +#define _ADJUST 16 -// Macro name shortcuts -#define DVORAK M(_DV) -#define QWERTY M(_QW) -#define COLEMAK M(_CM) +enum planck_keycodes { + DVORAK = SAFE_RANGE, + QWERTY, + COLEMAK, + LOWER, + RAISE, + BACKLIT +}; +// Fillers to make layering more clear +#define _______ KC_TRNS +#define XXXXXXX KC_NO const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_DV] = { /* Dvorak */ - {KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_NO, KC_F, KC_G, KC_C, KC_R, KC_L }, - {KC_A, KC_O, KC_E, KC_U, KC_I, KC_NO, KC_D, KC_H, KC_T, KC_N, KC_S }, - {SFT_T(KC_SCLN), KC_Q, KC_J, KC_K, KC_X, CTL_T(KC_DEL), KC_B, KC_M, KC_W, KC_V, SFT_T(KC_Z) }, - {KC_ESC, KC_TAB, KC_LGUI, MO(_L2), KC_BSPC, ALT_T(KC_ENT), KC_SPC, MO(_L1), KC_MINS, KC_SLSH, KC_EQL} +/* Dvorak Layer + ,----------------------------------. ,----------------------------------. + | ' | , | . | P | Y | | F | G | C | R | L | + |------+------+------+------+------| |------+------+------+------+------| + | A | O | E | U | I | | D | H | T | N | S | + |------+------+------+------+------|------.,------|------+------+------+------+------| + |SFT/ ;| Q | J | K | X | CTRL ||Alt / | B | M | W | V |SFT/ Z| + |------+------+------+------+------| ||Enter |------+------+------+------+------| + | Esc | Tab | GUI | LOWER| BkSp |------'`------| Spc | RAISE| - | / | \ | + `----------------------------------' `----------------------------------' */ + [_DVORAK] = { + {KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, XXXXXXX, KC_F, KC_G, KC_C, KC_R, KC_L }, + {KC_A, KC_O, KC_E, KC_U, KC_I, XXXXXXX, KC_D, KC_H, KC_T, KC_N, KC_S }, + {SFT_T(KC_SCLN), KC_Q, KC_J, KC_K, KC_X, KC_LCTL, KC_B, KC_M, KC_W, KC_V, SFT_T(KC_Z)}, + {KC_ESC, KC_TAB, KC_LGUI, LOWER, KC_BSPC, ALT_T(KC_ENT), KC_SPC, RAISE, KC_MINS, KC_SLSH, KC_BSLS } }, - [_QW] = { /* Qwerty */ - {KC_Q, KC_W, KC_E, KC_R, KC_T, KC_NO, KC_Y, KC_U, KC_I, KC_O, KC_P }, - {KC_A, KC_S, KC_D, KC_F, KC_G, KC_NO, KC_H, KC_J, KC_K, KC_L, KC_SCLN}, - {SFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, CTL_T(KC_DEL), KC_N, KC_M, KC_COMM, KC_DOT, SFT_T(KC_SLSH) }, - {KC_ESC, KC_TAB, KC_LGUI, MO(_L2), KC_BSPC, ALT_T(KC_ENT), KC_SPC, MO(_L1), KC_MINS, KC_QUOT, KC_EQL} + +/* QWERTY Layer + ,----------------------------------. ,----------------------------------. + | Q | W | E | R | T | | Y | U | I | O | P | + |------+------+------+------+------| |------+------+------+------+------| + | A | S | D | F | G | | H | J | K | L | ; | + |------+------+------+------+------|------.,------|------+------+------+------+------| + |SFT/ Z| X | C | V | B | CTRL ||Alt / | N | M | , | . |SFT/ /| + |------+------+------+------+------| ||Enter |------+------+------+------+------| + | Esc | Tab | GUI | LOWER| BkSp |------'`------| Spc | RAISE| - | ' | \ | + `----------------------------------' `----------------------------------' */ + [_QWERTY] = { + {KC_Q, KC_W, KC_E, KC_R, KC_T, XXXXXXX, KC_Y, KC_U, KC_I, KC_O, KC_P }, + {KC_A, KC_S, KC_D, KC_F, KC_G, XXXXXXX, KC_H, KC_J, KC_K, KC_L, KC_SCLN}, + {SFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_LCTL, KC_N, KC_M, KC_COMM, KC_DOT, SFT_T(KC_SLSH)}, + {KC_ESC, KC_TAB, KC_LGUI, LOWER, KC_BSPC, ALT_T(KC_ENT), KC_SPC, RAISE, KC_MINS, KC_QUOT, KC_BSLS } }, - [_CM] = { /* Colemak */ - {KC_Q, KC_W, KC_F, KC_P, KC_G, KC_NO, KC_J, KC_L, KC_U, KC_Y, KC_SCLN}, - {KC_A, KC_R, KC_S, KC_T, KC_D, KC_NO, KC_H, KC_N, KC_E, KC_I, KC_O }, - {SFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, CTL_T(KC_DEL), KC_K, KC_M, KC_COMM, KC_DOT, SFT_T(KC_SLSH) }, - {KC_ESC, KC_TAB, KC_LGUI, MO(_L2), KC_BSPC, ALT_T(KC_ENT), KC_SPC, MO(_L1), KC_MINS, KC_QUOT, KC_EQL} + +/* Colemak Layer + ,----------------------------------. ,----------------------------------. + | Q | W | F | P | G | | J | L | U | Y | L | + |------+------+------+------+------| |------+------+------+------+------| + | A | R | S | T | D | | H | N | E | I | S | + |------+------+------+------+------|------.,------|------+------+------+------+------| + |SFT/ Z| X | C | V | B | CTRL ||Alt / | K | M | , | . |SFT/ /| + |------+------+------+------+------| ||Enter |------+------+------+------+------| + | Esc | Tab | GUI | LOWER| BkSp |------'`------| Spc | RAISE| - | ' | RGUI | + `----------------------------------' `----------------------------------'*/ + [_COLEMAK] = { + {KC_Q, KC_W, KC_F, KC_P, KC_G, XXXXXXX, KC_J, KC_L, KC_U, KC_Y, KC_SCLN}, + {KC_A, KC_R, KC_S, KC_T, KC_D, XXXXXXX, KC_H, KC_N, KC_E, KC_I, KC_O }, + {SFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_LCTL, KC_K, KC_M, KC_COMM, KC_DOT, SFT_T(KC_SLSH)}, + {KC_ESC, KC_TAB, KC_LGUI, LOWER, KC_BSPC, ALT_T(KC_ENT), KC_SPC, RAISE, KC_MINS, KC_QUOT, KC_BSLS } }, - [_L1] = { /* LAYER 1 */ - {KC_1, KC_2, KC_3, KC_4, KC_5, KC_NO, KC_6, KC_7, KC_8, KC_9, KC_0 }, - {KC_TAB, KC_INS, KC_UP, KC_DEL, KC_HOME, KC_NO, KC_PGUP, KC_MUTE, KC_VOLD, KC_VOLU, KC_BSLS}, - {KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_END, KC_LCTL, KC_PGDN, KC_MPRV, KC_MPLY, KC_MNXT, KC_BSLS}, - {KC_TRNS, KC_GRV, KC_LGUI, KC_TRNS, KC_DEL, KC_LALT, KC_SPC, KC_TRNS, KC_LBRC, KC_RBRC, KC_ENT } + +/* LOWER Layer + ,----------------------------------. ,----------------------------------. + | ! | @ | # | $ | % | | ^ | & | * | ( | ) | + |------+------+------+------+------| |------+------+------+------+------| + | CAPS | | UP | | Home | | PgDn | | + | { | } | + |------+------+------+------+------|------.,------|------+------+------+------+------| + | | Left | Down | Right| End | || | PgUp | Mute | Vol- | Vol+ | | + |------+------+------+------+------| || |------+------+------+------+------| + | ~ | | | | Del |------'`------| Ins | | | | | + `----------------------------------' `----------------------------------'*/ + [_LOWER] = { + {KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, XXXXXXX, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN}, + {KC_CAPS, _______, KC_UP, _______, KC_HOME, XXXXXXX, KC_PGUP, _______, KC_PLUS, KC_LCBR, KC_RCBR}, + {_______, KC_LEFT, KC_DOWN, KC_RGHT, KC_END, _______, KC_PGDN, KC_MUTE, KC_VOLD, KC_VOLU, _______}, + {KC_TILD, _______, _______, _______, KC_DEL, _______, KC_INS, _______, _______, _______, _______} }, - [_L2] = { /* LAYER 2 */ - {KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_NO, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN}, - {KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_NO, KC_TRNS, KC_F6, KC_F7, KC_F8, KC_PIPE}, - {KC_TRNS, KC_TRNS, DVORAK, QWERTY, COLEMAK, KC_LCTL, KC_TRNS, KC_F9, KC_F10, KC_F11, KC_F12 }, - {KC_TRNS, KC_TRNS, KC_LGUI, KC_TRNS, KC_BSPC, KC_LALT, KC_SPC, KC_TRNS, LSFT(KC_LBRC), LSFT(KC_RBRC), RESET} + +/* RAISE Layer + ,----------------------------------. ,----------------------------------. + | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | + |------+------+------+------+------| |------+------+------+------+------| + | CAPS | | UP | | Home | | PgDn | | = | [ | ] | + |------+------+------+------+------|------.,------|------+------+------+------+------| + | | Left | Down | Right| End | || | PgUp | Prev | Play | Next | | + |------+------+------+------+------| || |------+------+------+------+------| + | ` | | | | Del |------'`------| Ins | | | | | + `----------------------------------' `----------------------------------'*/ + [_RAISE] = { + {KC_1, KC_2, KC_3, KC_4, KC_5, XXXXXXX, KC_6, KC_7, KC_8, KC_9, KC_0 }, + {KC_CAPS, _______, KC_UP, _______, KC_HOME, XXXXXXX, KC_PGUP, _______, KC_EQL, KC_LBRC, KC_RBRC}, + {_______, KC_LEFT, KC_DOWN, KC_RGHT, KC_END, _______, KC_PGDN, KC_MPRV, KC_MPLY, KC_MNXT, _______}, + {KC_GRV, _______, _______, _______, KC_DEL, _______, KC_INS, _______, _______, _______, _______} + }, + +/* ADJUST Layer + ,----------------------------------. ,----------------------------------. + | F1 | F2 | F3 | F4 | F5 | | F6 | F7 | F8 | F9 | F10 | + |------+------+------+------+------| |------+------+------+------+------| + | F11 | | | | | | | | | | F12 | + |------+------+------+------+------|------.,------|------+------+------+------+------| + | |QWERTY|COLEMK|DVORAK| | || | | | | | | + |------+------+------+------+------| || |------+------+------+------+------| + | | | | | |------'`------| | | | | RESET| + `----------------------------------' `----------------------------------'*/ + [_ADJUST] = { + {KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, XXXXXXX, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10 }, + {KC_F11, _______, _______, _______, _______, XXXXXXX, _______, _______, _______, _______, KC_F12 }, + {_______, QWERTY, COLEMAK, DVORAK, _______, _______, _______, _______, _______, _______, _______}, + {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET } } + }; const uint16_t PROGMEM fn_actions[] = { @@ -66,24 +146,46 @@ void persistant_default_layer_set(uint16_t default_layer) { default_layer_set(default_layer); } -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) -{ - switch(id) { - case _DV: +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case QWERTY: if (record->event.pressed) { - persistant_default_layer_set(1UL<<_DV); + persistant_default_layer_set(1UL<<_QWERTY); } + return false; break; - case _QW: + case COLEMAK: if (record->event.pressed) { - persistant_default_layer_set(1UL<<_QW); + persistant_default_layer_set(1UL<<_COLEMAK); } + return false; break; - case _CM: + case DVORAK: if (record->event.pressed) { - persistant_default_layer_set(1UL<<_CM); + persistant_default_layer_set(1UL<<_DVORAK); } + return false; + break; + case LOWER: + if (record->event.pressed) { + layer_on(_LOWER); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } else { + layer_off(_LOWER); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } + return false; + break; + case RAISE: + if (record->event.pressed) { + layer_on(_RAISE); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } else { + layer_off(_RAISE); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } + return false; break; } - return MACRO_NONE; + return true; }; From 8813365ec5c091c0185563943bbf73ec53d846e0 Mon Sep 17 00:00:00 2001 From: Xyverz Date: Thu, 6 Apr 2017 22:03:17 -0700 Subject: [PATCH 083/190] Added readme --- keyboards/atreus/keymaps/xyverz/readme.md | 89 +++++++++++++++++++++++ 1 file changed, 89 insertions(+) create mode 100644 keyboards/atreus/keymaps/xyverz/readme.md diff --git a/keyboards/atreus/keymaps/xyverz/readme.md b/keyboards/atreus/keymaps/xyverz/readme.md new file mode 100644 index 00000000000..29c0422bbb8 --- /dev/null +++ b/keyboards/atreus/keymaps/xyverz/readme.md @@ -0,0 +1,89 @@ +# Xyverz's Atreus Keymap + +## About this keymap: + +This is the second iteration of my Atreus keymap. The first one was as close to the planck as I could get at the +time, but still very much like the original Atreus keymap. I've managed to get things working better now and have +implemented (more like copied) the RAISE/LOWER/ADJUST layers. This is a work in progress, but I think I'm closer +to a final go with this. + +I've enabled persistent keymaps for Qwerty, Dvorak and Colemak layers, similar to the default Planck layouts. + +## Still to do: + + * Tidy the keymap up so that it's readable. + * Learn how to make alias macros for mod_tap keys. + +### Layer 0: Dvorak layer + + ,----------------------------------. ,----------------------------------. + | ' | , | . | P | Y | | F | G | C | R | L | + |------+------+------+------+------| |------+------+------+------+------| + | A | O | E | U | I | | D | H | T | N | S | + |------+------+------+------+------|------.,------|------+------+------+------+------| + |Shft ;| Q | J | K | X | CTRL ||Alt / | B | M | W | V |Shft Z| + |------+------+------+------+------| ||Enter |------+------+------+------+------| + | Esc | Tab | GUI | LOWER| BkSp |------'`------| Spc | RAISE| - | / | \ | + `----------------------------------' `----------------------------------' + +### Layer 1: QWERTY layer + + ,----------------------------------. ,----------------------------------. + | Q | W | E | R | T | | Y | U | I | O | P | + |------+------+------+------+------| |------+------+------+------+------| + | A | S | D | F | G | | H | J | K | L | ; | + |------+------+------+------+------|------.,------|------+------+------+------+------| + |Shft Z| X | C | V | B | CTRL ||Alt / | N | M | , | . |Shft /| + |------+------+------+------+------| ||Enter |------+------+------+------+------| + | Esc | Tab | GUI | LOWER| BkSp |------'`------| Spc | RAISE| - | ' | \ | + `----------------------------------' `----------------------------------' + +### Keymap 2: Colemak layer + + ,----------------------------------. ,----------------------------------. + | Q | W | F | P | G | | J | L | U | Y | L | + |------+------+------+------+------| |------+------+------+------+------| + | A | R | S | T | D | | H | N | E | I | S | + |------+------+------+------+------|------.,------|------+------+------+------+------| + |Shft Z| X | C | V | B | CTRL ||Alt / | K | M | , | . |Shft /| + |------+------+------+------+------| ||Enter |------+------+------+------+------| + | Esc | Tab | GUI | LOWER| BkSp |------'`------| Spc | RAISE| - | ' | RGUI | + `----------------------------------' `----------------------------------' + +### layer 3 : LOWER layer + + ,----------------------------------. ,----------------------------------. + | ! | @ | # | $ | % | | ^ | & | * | ( | ) | + |------+------+------+------+------| |------+------+------+------+------| + | CAPS | | UP | | Home | | PgDn | | + | { | } | + |------+------+------+------+------|------.,------|------+------+------+------+------| + | | Left | Down | Right| End | || | PgUp | Mute | Vol- | Vol+ | | + |------+------+------+------+------| || |------+------+------+------+------| + | ~ | | | | Del |------'`------| Ins | | | | | + `----------------------------------' `----------------------------------' + + +### Keymap 4: RAISE layer + + ,----------------------------------. ,----------------------------------. + | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | + |------+------+------+------+------| |------+------+------+------+------| + | CAPS | | UP | | Home | | PgDn | | = | [ | ] | + |------+------+------+------+------|------.,------|------+------+------+------+------| + | | Left | Down | Right| End | || | PgUp | Prev | Play | Next | | + |------+------+------+------+------| || |------+------+------+------+------| + | ` | | | | Del |------'`------| Ins | | | | | + `----------------------------------' `----------------------------------' + +### Keymap 5: ADJUST layer + + ,----------------------------------. ,----------------------------------. + | F1 | F2 | F3 | F4 | F5 | | F6 | F7 | F8 | F9 | F10 | + |------+------+------+------+------| |------+------+------+------+------| + | F11 | | | | | | | | | | F12 | + |------+------+------+------+------|------.,------|------+------+------+------+------| + | |QWERTY|COLEMK|DVORAK| | || | | | | | | + |------+------+------+------+------| || |------+------+------+------+------| + | | | | | |------'`------| | | | | RESET| + `----------------------------------' `----------------------------------' + From 3607522c12a11c4ff1b45ec8cb6495c96fdd6724 Mon Sep 17 00:00:00 2001 From: Xyverz Date: Thu, 6 Apr 2017 22:26:13 -0700 Subject: [PATCH 084/190] More tweaks to keymap and readme. --- keyboards/atreus/keymaps/xyverz/keymap.c | 20 +++++++++++++------- keyboards/atreus/keymaps/xyverz/readme.md | 3 +-- 2 files changed, 14 insertions(+), 9 deletions(-) diff --git a/keyboards/atreus/keymaps/xyverz/keymap.c b/keyboards/atreus/keymaps/xyverz/keymap.c index 4471b9caf36..3c61d66d017 100644 --- a/keyboards/atreus/keymaps/xyverz/keymap.c +++ b/keyboards/atreus/keymaps/xyverz/keymap.c @@ -28,6 +28,12 @@ enum planck_keycodes { BACKLIT }; +// Adding macros to make the keymaps below much easier to read. +#define SFTSCLN SFT_T(KC_SCLN) +#define SFTSLSH SFT_T(KC_SLSH) +#define SFTZED SFT_T(KC_Z) +#define ALTENT ALT_T(KC_ENT) + // Fillers to make layering more clear #define _______ KC_TRNS #define XXXXXXX KC_NO @@ -46,8 +52,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_DVORAK] = { {KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, XXXXXXX, KC_F, KC_G, KC_C, KC_R, KC_L }, {KC_A, KC_O, KC_E, KC_U, KC_I, XXXXXXX, KC_D, KC_H, KC_T, KC_N, KC_S }, - {SFT_T(KC_SCLN), KC_Q, KC_J, KC_K, KC_X, KC_LCTL, KC_B, KC_M, KC_W, KC_V, SFT_T(KC_Z)}, - {KC_ESC, KC_TAB, KC_LGUI, LOWER, KC_BSPC, ALT_T(KC_ENT), KC_SPC, RAISE, KC_MINS, KC_SLSH, KC_BSLS } + {SFTSCLN, KC_Q, KC_J, KC_K, KC_X, KC_LCTL, KC_B, KC_M, KC_W, KC_V, SFTZED }, + {KC_ESC, KC_TAB, KC_LGUI, LOWER, KC_BSPC, ALTENT, KC_SPC, RAISE, KC_MINS, KC_SLSH, KC_BSLS} }, /* QWERTY Layer @@ -63,8 +69,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_QWERTY] = { {KC_Q, KC_W, KC_E, KC_R, KC_T, XXXXXXX, KC_Y, KC_U, KC_I, KC_O, KC_P }, {KC_A, KC_S, KC_D, KC_F, KC_G, XXXXXXX, KC_H, KC_J, KC_K, KC_L, KC_SCLN}, - {SFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_LCTL, KC_N, KC_M, KC_COMM, KC_DOT, SFT_T(KC_SLSH)}, - {KC_ESC, KC_TAB, KC_LGUI, LOWER, KC_BSPC, ALT_T(KC_ENT), KC_SPC, RAISE, KC_MINS, KC_QUOT, KC_BSLS } + {SFTZED, KC_X, KC_C, KC_V, KC_B, KC_LCTL, KC_N, KC_M, KC_COMM, KC_DOT, SFTSLSH}, + {KC_ESC, KC_TAB, KC_LGUI, LOWER, KC_BSPC, ALTENT, KC_SPC, RAISE, KC_MINS, KC_QUOT, KC_BSLS} }, /* Colemak Layer @@ -75,13 +81,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { |------+------+------+------+------|------.,------|------+------+------+------+------| |SFT/ Z| X | C | V | B | CTRL ||Alt / | K | M | , | . |SFT/ /| |------+------+------+------+------| ||Enter |------+------+------+------+------| - | Esc | Tab | GUI | LOWER| BkSp |------'`------| Spc | RAISE| - | ' | RGUI | + | Esc | Tab | GUI | LOWER| BkSp |------'`------| Spc | RAISE| - | ' | \ | `----------------------------------' `----------------------------------'*/ [_COLEMAK] = { {KC_Q, KC_W, KC_F, KC_P, KC_G, XXXXXXX, KC_J, KC_L, KC_U, KC_Y, KC_SCLN}, {KC_A, KC_R, KC_S, KC_T, KC_D, XXXXXXX, KC_H, KC_N, KC_E, KC_I, KC_O }, - {SFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_LCTL, KC_K, KC_M, KC_COMM, KC_DOT, SFT_T(KC_SLSH)}, - {KC_ESC, KC_TAB, KC_LGUI, LOWER, KC_BSPC, ALT_T(KC_ENT), KC_SPC, RAISE, KC_MINS, KC_QUOT, KC_BSLS } + {SFTZED, KC_X, KC_C, KC_V, KC_B, KC_LCTL, KC_K, KC_M, KC_COMM, KC_DOT, SFTSLSH}, + {KC_ESC, KC_TAB, KC_LGUI, LOWER, KC_BSPC, ALTENT, KC_SPC, RAISE, KC_MINS, KC_QUOT, KC_BSLS} }, /* LOWER Layer diff --git a/keyboards/atreus/keymaps/xyverz/readme.md b/keyboards/atreus/keymaps/xyverz/readme.md index 29c0422bbb8..5187e5d3e23 100644 --- a/keyboards/atreus/keymaps/xyverz/readme.md +++ b/keyboards/atreus/keymaps/xyverz/readme.md @@ -11,8 +11,7 @@ I've enabled persistent keymaps for Qwerty, Dvorak and Colemak layers, similar t ## Still to do: - * Tidy the keymap up so that it's readable. - * Learn how to make alias macros for mod_tap keys. + * Enjoy this revision; figure out new things later. ### Layer 0: Dvorak layer From bcf70c0203e003d3f9c47d11bd2d57f7a3cd3bf8 Mon Sep 17 00:00:00 2001 From: Stick Date: Fri, 7 Apr 2017 16:04:43 -0500 Subject: [PATCH 085/190] ErgoDox Familiar layout v1 --- keyboards/ergodox/keymaps/familiar/README.md | 72 +- .../ergodox/keymaps/familiar/familiar.png | Bin 0 -> 149846 bytes .../ergodox/keymaps/familiar/img/HNTR.svg | 7253 ---------------- .../keymaps/familiar/img/familiar.json | 865 -- .../ergodox/keymaps/familiar/img/familiar.png | Bin 102059 -> 0 bytes .../ergodox/keymaps/familiar/img/familiar.svg | 7131 ---------------- .../keymaps/familiar/img/familiar_stick.svg | 7592 ----------------- .../ergodox/keymaps/familiar/img/hntr.json | 634 -- .../ergodox/keymaps/familiar/img/hntr.png | Bin 77473 -> 0 bytes 9 files changed, 69 insertions(+), 23478 deletions(-) create mode 100644 keyboards/ergodox/keymaps/familiar/familiar.png delete mode 100644 keyboards/ergodox/keymaps/familiar/img/HNTR.svg delete mode 100644 keyboards/ergodox/keymaps/familiar/img/familiar.json delete mode 100644 keyboards/ergodox/keymaps/familiar/img/familiar.png delete mode 100644 keyboards/ergodox/keymaps/familiar/img/familiar.svg delete mode 100644 keyboards/ergodox/keymaps/familiar/img/familiar_stick.svg delete mode 100644 keyboards/ergodox/keymaps/familiar/img/hntr.json delete mode 100644 keyboards/ergodox/keymaps/familiar/img/hntr.png diff --git a/keyboards/ergodox/keymaps/familiar/README.md b/keyboards/ergodox/keymaps/familiar/README.md index 0b248534154..e4336d9b553 100644 --- a/keyboards/ergodox/keymaps/familiar/README.md +++ b/keyboards/ergodox/keymaps/familiar/README.md @@ -1,3 +1,69 @@ -# Familiar Layout for ErgoDox # -An ErgoDox layout meant to be as easy to learn as possible for typists coming from a standard -QWERTY US-International layout. +# ErgoDox Familiar Layout +Familiar layout for those who regularly switch back and forth from ErgoDox to regular QWERTY. + +[![License: GPL v3](https://img.shields.io/badge/License-GPL%20v3-blue.svg)](../../../../license_GPLv3.md../../../../license_GPLv3.md) [![standard-readme compliant](https://img.shields.io/badge/readme%20style-standard-brightgreen.svg)](https://github.com/RichardLitt/standard-readme) + +## Table of Contents + +- [Background](#background) +- [Install](#install) +- [Usage](#usage) + - [Layers](#layers) +- [Contribute](#contribute) + - [Issues](#issues) +- [License](#license) + +## Background + +This layout is built to be as familiar as possible for users coming directly from a default (QWERTY US) keyboard, while gaining as much advantage as possible from the ErgoDox and QMK featureset. I use an ErgoDoxEZ at home, but I don't have a regular office (CS grad student) so I regularly use either my laptop or a default-setup lab computer; I context switch daily so this layout is meant to reduce the mental overhead as much as possible. + +The default ErgoDoxEZ layout is probably more optimized as a solo daily driver - as are a lot of the others available keymaps. The focus of this layout is to get as much from the 'Dox as possible without overly disrupting long-established muscle memory. + +Key features of the familiar layout: +1. QWERTY default layout. +1. International symbols layer, mapped in the US-International layout default positions, through [UCIS](https://github.com/qmk/qmk_firmware/wiki/Unicode-and-additional-language-support#ucis_enable). +1. Numpad layer on right hand. +1. Thumb cluster holds spacebar, ALT, and access to secondary layers. +1. Function-layer arrow keys in both the first-person-shooter (actually ESDF instead of WASD) and vim (HJKL) locations. + +## Install + +If you are on Windows or Mac, choose the proper line in [`keymap.c`](keymap.c) for [unicode/international character support](https://github.com/qmk/qmk_firmware/wiki/Unicode-and-additional-language-support#ucis_enable) (starts at line 235). +```c +void matrix_init_user(void) { + set_unicode_input_mode(UC_LNX); // Linux + //set_unicode_input_mode(UC_OSX); // Mac OSX + //set_unicode_input_mode(UC_WIN); // Windows (with registry key, see wiki) + //set_unicode_input_mode(UC_WINC); // Windows (with WinCompose, see wiki) +}; +``` + +For instructions on building and installing this keymap, [go to the wiki](https://github.com/qmk/qmk_firmware/tree/master/keyboards/ergodox#build-dependencies). Below is the command for me; it may be different for you. +```sh +$ make ergodox-ez-familiar-teensy +``` + +## Usage + +[![Familiar Layout](familiar.png)](http://www.keyboard-layout-editor.com/#/gists/13508a9f99cff381d58b7be6f7dcc644) + +### Layers +1. Base Layer: QWERTY, with arrow keys at bottom right. +1. UCIS Layer: US-International symbols layer, plus —. Accessed by toggling the `INTL` layer using the UCIS key (bottom of left thumb cluster). +1. UCIS-Shifted Layer: Making shift work for UCIS characters. An ugly workaround. Any ideas? Accessed through holding shift while the UCIS layer is active (toggles the `INSF` layer). +1. Numpad Layer: Right hand number pad. Accessed by toggling the `NUMP` layer using the NPAD key (bottom of right thumb cluster). +1. Function Layer: F1-F12, arrows on ESDF and HJKL, media player controls. Accessed by holding either FN key (center key of each thumb cluster), which toggles the `ARRW` layer. I know, I need to work on my naming conventions. + +## Contribute + +[Contributor Covenant](http://contributor-covenant.org/) + +I'm terrible at this; I have no background in human-computer interaction, kinesiology, or keyboard-ology. Please send comments/issues/pull requests/angry tweets/etc. If you think there is a better way to take advantage of the ErgoDox/QMK comination without straying far from 84/101-key QWERTY, I want to know it. + +### Issues +1. The top two keys of the right thumb cluster are currently unused. I wanted them for screen brightness, but I haven't found a solution I like. +1. The `'`, `"`, `[`, and `]` keys are terrible to access; I want to put them somewhere else but I haven't figured out where. +1. The `INSF` layer is an ugly workaround. I should write a function for doing different things in the `INTL` layer depending on whether SHIFT is being held. Or something. Ideas? + +## License +QMK is licensed ([mostly](https://github.com/qmk/qmk_firmware/issues/1038)) under the [GPLv2](blob/master/license_GPLv2.md). Accordingly, to whatever extent applicable, this keymap is licensed under the [GPLv3](../../../../license_GPLv3.md). diff --git a/keyboards/ergodox/keymaps/familiar/familiar.png b/keyboards/ergodox/keymaps/familiar/familiar.png new file mode 100644 index 0000000000000000000000000000000000000000..f8b50e75ecef48cb155ddd1dbf1d608e01a7ea48 GIT binary patch literal 149846 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

pc^76gFYtZ^FE-Wx8 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�x@`ZXphULG@)5=e>VVSQ+S-_hiG9H)>xA%Y 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 z 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

9;c>WD? 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Ζ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Ν*`r#%2yI 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%0Dh49sm9m#=TJ{!T5B>34!nbHx(xWW6>WQk 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 literal 0 HcmV?d00001 diff --git a/keyboards/ergodox/keymaps/familiar/img/HNTR.svg b/keyboards/ergodox/keymaps/familiar/img/HNTR.svg deleted file mode 100644 index a419e7ab8b8..00000000000 --- a/keyboards/ergodox/keymaps/familiar/img/HNTR.svg +++ /dev/null @@ -1,7253 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - PanningHold down Scroll Wheel to pan with mouseUp/Down - Scroll WheelLeft/Right - Shift + Scroll WheelZooming- Ctrl + Scroll View to zoom in/out- Press 1, 2, 4, or 5 for preset zoom views.Zoom Tool (F3) :- Left click to zoom in- Right click to zoom out - - - Keyboards - - - - - - - - - To avoid delays and errors in your order you must convert all of your fonts and text to vector data - This layout is used for your legends only. Keycap colors need to be defined with the online designer tool.Please check out our online tutorials at support.wasdkeyboards.comfor help and instructions regarding layout creation. - - - Quick Start:1. Enable Layers by going to: Layer > Layers (Ctrl + Shift + L) *The layers window can be expanded by dragging the area under the opacity slider.2. Use the Eyeball Icons to toggle visibility for preset layers3. Use the Select tool to move and scale objects (F1)4. Use the Text Tool to add and edit text (F8) - - Managing Layers1. Enable Layers by pressing Ctrl + Shift + L2. The Layer window can be enlarged by dragging thearea under the Opacity slider.3. Use the Eyeball Icon to toggle layer visibility.4. Use the Lock Icon to toggle the ability to edit layer.5. To add a layer, use the button from Layers panel. - - - Manipulating ObjectsThe Select Tool (F1) allows you to select and move,scale, and delete objects. Select an object, then drag the object to move it. You can drag the arrows around the object to scale it.Holding Ctrl while moving will keep the object locked onthe same X or Y axis. Holding Ctrl while scaling will keep the size ratio locked. - Inkscape Tutorial - FAQ (Frequently Asked Questions)I can't see any layers, I just see one layer or no layers when I open the layers panel.This happens when you drag and drop the layout file into Inkscape which "imports" it instead of opening it. Please close your Inkscape window, go back to the original file, right click it and choose "edit with Inkscape". What are the grids for on the layout? Can I place objects outside the grid?Yes. The grids are for reference only. You can snap the grids to use our standard margins. You can print all the way to the edge of the frame. There is a +/-0.01" tolerance, so we suggest that you stay within the grids when possible.Can I put a graphic that spans over multiple keys? Yes. Large images will be cropped to the top face of the keys. The areas in between the keys will not be printed.Advanced users can use a clipping mask to get a better idea of what the final image will look like.How can I change the color of the printing?We have tutorials in our support center that can show you how to add colors to your text and images.Go to support.wasdkeyboards.comI want to edit the Mac-style layouts, but the text is not editable.The Mac layout text is not editable since the font is not common. The font used is VAG Rounded-Light. - Adding text1. Click on the Text Tool (F8)2. Click on the area where you want add text3. Type your text4. Font and size and can changed in the text toolbar5. Use the Select Tool (F1) to reposition thetext if necessary. - - - - Editing font type and size1. Use the Select Tool (F1) select the objects youwant to edit.2. Click on the Text Tool (F8)3. Use the text toolbar to change font type and text size - - - - - Editing textUse the Select Tool (F1) and double click a singletext object.-or-Use the Text Tool (F8) and click on a single text object. - - - - Adding stock artworkCommonly used icons and symbols are available within the file.1. Turn on the visibility of the layer titled: "Stock Artwork"2. Use the Select Tool (F1) to select the object you want to use.3. Press Ctrl + C to copy4. Select the layer you want to paste the object to, then press Ctrl + V5. You can then use the Select Tool (F1) to move and/or scale the object to proper size. See "Snapping" for tips on aligning objects. - Adding custom artNormal graphics can be added into the file, but you must convert thegraphic to a path.1. Copy the graphic from another program. (Usually Right Click > Copy)2. Select the layer you want to paste the graphic to, then press Ctrl + V-or-1. File > Import (Ctrl + I) and select the file you want to import.2. Select the Embed option and click OK.3. Select the graphic, and goto Path > Trace Bitmap (Shift + Alt + B)4. Make sure your graphic is selected, then select a Scan option andclick OK. The graphic will be traced, and will overlay the original object.5. Move the new object into position and delete the original image. - - - SnappingEnabling snapping allows you to snap objects at various reference points of other objects which will allow you to quickly and accurately align objects to each other.Make sure Snap Controls Toolbar is displayed on the right hand side. (View > Show/Hide > Snap Controls Bar)Make sure Snapping is enabled (Toggle with "%")Hover over the various points to see what snappingare available. You can turn each one on/off.Drag objects over other objects to snap. You may need to zoom in or out to snap to certain objects. Turning off irrelevant points will also make it easier to snap. - - Copy and PasteCtrl + C: Copy objectCtrl + V: Paste objectCtrl + Alt + V: Paste in placeShift + Ctrl + V: Paste style - Guide LinesYou can use Guides to help align objects. Click and drag from the rulerson the edge of the document.Enable snapping to guides in the Snap Control Bar You can Show/Hide Guides by going to View > Guides - - - WASD Keyboards 104/87-Key Design Template - IMPORTANT: - Before saving and uploading your file: select all of your text; go to Path > Object to Path (Ctrl+Shift+C) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 😎 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/keyboards/ergodox/keymaps/familiar/img/familiar.json b/keyboards/ergodox/keymaps/familiar/img/familiar.json deleted file mode 100644 index e80f99e5f0d..00000000000 --- a/keyboards/ergodox/keymaps/familiar/img/familiar.json +++ /dev/null @@ -1,865 +0,0 @@ -[ - { - "name": "ErgoDox Familiar (CosmicStick Colors)", - "author": "Stick" - }, - [ - { - "x": 3.5, - "c": "#FFF8E7", - "t": "#403e3a", - "fa": [ - 0, - 0, - 0, - 1, - 0, - 0, - 1, - 0, - 0, - 7, - 0 - ] - }, - "\n\n#\nF3\n\n\n³\n\n\n3", - { - "x": 10.5, - "fa": [ - 0, - 1, - 0, - 1, - 0, - 0, - 1, - 1, - 0, - 7, - 0 - ] - }, - "*\nF8\n\n\n\n\n\n¾\n\n8" - ], - [ - { - "y": -0.87, - "x": 2.5 - }, - "\n\n@\nF2\n\n\n²\n\n\n2", - { - "x": 1, - "fa": [ - 1, - 1, - 0, - 1, - 0, - 0, - 1, - 1, - 0, - 7, - 0 - ] - }, - "¤\n\n$\nF4\n\n\n£\n\n\n4", - { - "x": 8.5, - "fa": [ - 0, - 1, - 0, - 1, - 0, - 0, - 1, - 1, - 0, - 7, - 0 - ] - }, - "&\nF7\n\n\n\n\n\n½\n\n7", - { - "x": 1 - }, - "(\nF9\n\n\n\n\n\n‘\n\n9" - ], - [ - { - "y": -0.8699999999999999, - "x": 5.5 - }, - "\n\n%\nF5\n\n\n€\n\n\n5", - "\n\n_\nF11\n\n\n¥\n\n\n-", - { - "x": 4.5, - "fa": [ - 0, - 1, - 1, - 1, - 0, - 0, - 1, - 1, - 0, - 7, - 0 - ] - }, - "+\nF12\n÷\n\n\n\n\n×\n\n=", - "^\nF6\n\n\n\n\n\n¼\n\n6" - ], - [ - { - "y": -0.88, - "c": "#605d57", - "t": "#FFF8E7", - "a": 7, - "w": 1.5 - }, - "ESCAPE", - { - "c": "#FFF8E7", - "t": "#403e3a", - "a": 4, - "fa": [ - 1, - 1, - 0, - 1, - 0, - 0, - 1, - 1, - 0, - 7, - 0 - ] - }, - "¡\n\n!\nF1\n\n\n¹\n\n\n1", - { - "x": 14.5, - "fa": [ - 0, - 1, - 0, - 1, - 0, - 0, - 1, - 1, - 0, - 7, - 0 - ] - }, - ")\nF10\n\n/\n\n\n\n’\n\n0", - { - "c": "#605d57", - "t": "#FFF8E7", - "a": 7, - "w": 1.5 - }, - "SYSREQ" - ], - [ - { - "y": -0.3799999999999999, - "x": 3.5, - "c": "#993300", - "a": 4 - }, - "\n\n\n↑\n\n\né\n\n\nE", - { - "x": 10.5, - "c": "#FFF8E7", - "t": "#403e3a" - }, - "\n\n\n5\n\n\n\ní\n\nI" - ], - [ - { - "y": -0.8700000000000001, - "x": 2.5, - "a": 6, - "fa": [ - 1, - 1, - 0, - 1, - 0, - 0, - 1, - 1, - 7 - ] - }, - "å\n\n\n\n\n\n\n\nW", - { - "x": 1 - }, - "®\n\n\n\n\n\n\n\nR", - { - "x": 8.5, - "a": 4, - "fa": [ - 1, - 1, - 0, - 1, - 0, - 0, - 1, - 1, - 7, - 7, - 0 - ] - }, - "\n\n\n4\n\n\n\nú\n\nU", - { - "x": 1 - }, - "\n\n\n6\n\n\n\nó\n\nO" - ], - [ - { - "y": -0.8699999999999999, - "x": 5.5, - "a": 6 - }, - "þ\n\n\n\n\n\n\n\nT", - { - "c": "#605d57", - "t": "#FFF8E7", - "a": 7, - "f": 3, - "h": 1.5 - }, - "HOME", - { - "x": 4.5, - "f": 3, - "h": 1.5 - }, - "PAGE UP", - { - "c": "#FFF8E7", - "t": "#403e3a", - "a": 6, - "fa": [ - 1, - 1, - 1, - 1, - 0, - 0, - 1, - 1, - 7 - ] - }, - "\n\nü\n\n\n\n\n\nY" - ], - [ - { - "y": -0.8799999999999999, - "c": "#605d57", - "t": "#FFF8E7", - "a": 4, - "w": 1.5 - }, - "\n\n\nBREAK\n\n\n\n\n\nDELETE", - { - "c": "#FFF8E7", - "t": "#403e3a", - "a": 6 - }, - "ä\n\n\n\n\n\n\n\nQ", - { - "x": 14.5, - "a": 4, - "fa": [ - 1, - 1, - 1, - 1, - 0, - 0, - 1, - 1, - 7, - 7, - 0 - ] - }, - "\n\n\n×\n\n\n\nö\n\nP", - { - "c": "#605d57", - "t": "#FFF8E7", - "fa": [ - 1, - 1 - ], - "w": 1.5 - }, - "\nINSERT\n\n\n\n\n\n\n\nBCKSPC" - ], - [ - { - "y": -0.3799999999999999, - "x": 3.5, - "c": "#993300", - "fa": [ - 1, - 1, - 0, - 1, - 0, - 0, - 1, - 0, - 0, - 7, - 0 - ] - }, - "Ð\n\n\n↓\n\n\nð\n\n\nD", - { - "x": 10.5, - "c": "#FFF8E7", - "t": "#403e3a" - }, - "\n\n\n2\n\n\n\n\n\nK" - ], - [ - { - "y": -0.8700000000000001, - "x": 2.5, - "c": "#993300", - "t": "#FFF8E7" - }, - "§\n\n\n←\n\n\nß\n\n\nS", - { - "x": 1 - }, - "\n\n\n→\n\n\n\n\n\nF", - { - "x": 8.5, - "c": "#FFF8E7", - "t": "#403e3a" - }, - "\n\n\n1\n\n\n\n\n\nJ", - { - "x": 1, - "fa": [ - 1, - 1, - 0, - 1, - 0, - 0, - 1, - 1, - 0, - 7, - 0 - ] - }, - "\n\n\n3\n\n\n\nø\n\nL" - ], - [ - { - "y": -0.8799999999999999, - "x": 5.5, - "a": 7, - "fa": [ - 7 - ] - }, - "G", - { - "x": 6.5 - }, - "H" - ], - [ - { - "y": -0.8700000000000001, - "c": "#605d57", - "t": "#FFF8E7", - "f": 3, - "w": 1.5 - }, - "TAB", - { - "c": "#FFF8E7", - "t": "#403e3a", - "a": 6, - "fa": [ - 1, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 7 - ] - }, - "á\n\n\n\n\n\n\n\nA", - { - "x": 14.5, - "a": 4, - "fa": [ - 0, - 0, - 1, - 1, - 0, - 0, - 0, - 1, - 7, - 7, - 0 - ] - }, - ":\n\n°\n-\n\n\n\n¶\n\n;", - { - "c": "#605d57", - "t": "#FFF8E7", - "a": 7, - "w": 1.5 - }, - "ENTER" - ], - [ - { - "y": -0.6299999999999999, - "x": 6.5, - "h": 1.5 - }, - "END", - { - "x": 4.5, - "h": 1.5 - }, - "PAGE DOWN" - ], - [ - { - "y": -0.75, - "x": 3.5, - "c": "#FFF8E7", - "t": "#403e3a", - "a": 4, - "fa": [ - 1, - 0, - 1, - 1, - 0, - 0, - 1, - 1, - 7, - 7, - 0 - ] - }, - "¢\n\n\n\n\n\n©\n\n\nC", - { - "x": 10.5, - "fa": [ - 0, - 0, - 1, - 1, - 0, - 0, - 1, - 1, - 7, - 7, - 0 - ] - }, - "<\n\n\n0\n\n\n\nç\n\n," - ], - [ - { - "y": -0.8700000000000001, - "x": 2.5, - "a": 7, - "fa": [ - 7 - ] - }, - "X", - { - "x": 1 - }, - "V", - { - "x": 8.5, - "a": 6, - "fa": [ - 7, - 0, - 1, - 0, - 0, - 0, - 0, - 0, - 7 - ] - }, - "\n\nµ\n\n\n\n\n\nM", - { - "x": 1, - "a": 4, - "fa": [ - 0, - 0, - 1, - 0, - 0, - 0, - 0, - 0, - 7, - 7, - 0 - ] - }, - ">\n\n\n\n\n\n\n\n\n." - ], - [ - { - "y": -0.8799999999999999, - "x": 5.5, - "a": 7, - "fa": [ - 7 - ] - }, - "B", - { - "x": 6.5, - "a": 6, - "fa": [ - 7, - 0, - 1, - 0, - 0, - 0, - 0, - 0, - 7 - ] - }, - "\n\nñ\n\n\n\n\n\nN" - ], - [ - { - "y": -0.8700000000000001, - "c": "#403e3a", - "t": "#FFF8E7", - "a": 5, - "fa": [ - 1, - 0, - 1, - 0, - 0, - 0, - 7 - ], - "w": 1.5 - }, - "SHIFT\n\n\n\n\n\n(", - { - "c": "#FFF8E7", - "t": "#403e3a", - "a": 6, - "fa": [ - 1, - 0, - 1, - 0, - 0, - 0, - 7, - 0, - 7 - ] - }, - "æ\n\n\n\n\n\n\n\nZ", - { - "x": 14.5, - "a": 4, - "fa": [ - 0, - 0, - 1, - 1, - 0, - 0, - 7, - 1, - 7, - 7, - 0 - ] - }, - "?\n\n\n+\n\n\n\n¿\n\n/", - { - "c": "#403e3a", - "t": "#FFF8E7", - "a": 5, - "fa": [ - 1, - 0, - 1, - 1, - 0, - 0, - 7 - ], - "w": 1.5 - }, - "SHIFT\n\n\n\n\n\n)" - ], - [ - { - "y": -0.3799999999999999, - "x": 3.5, - "c": "#FFF8E7", - "t": "#403e3a", - "a": 4, - "fa": [ - 1, - 0, - 0, - 1, - 0, - 0, - 1, - 0, - 0, - 7, - 0 - ] - }, - "¨\n\n\"\n\n\n\n´\n\n\n'", - { - "x": 10.5, - "fa": [ - 0, - 0, - 0, - 1, - 0, - 0, - 1, - 1, - 0, - 7, - 0 - ] - }, - "}\n\n\n\n\n\n\n»\n\n]" - ], - [ - { - "y": -0.8700000000000001, - "x": 2.5 - }, - "\n\n~\n\n\n\n\n\n\n`", - { - "x": 1, - "fa": [ - 1, - 0, - 0, - 1, - 0, - 0, - 1, - 1, - 0, - 7, - 0 - ] - }, - "¦\n\n|\n\n\n\n¬\n\n\n\\", - { - "x": 8.5, - "fa": [ - 0, - 0, - 0, - 1, - 0, - 0, - 1, - 1, - 0, - 7, - 0 - ] - }, - "{\n\n\n\n\n\n\n«\n\n[", - { - "x": 1, - "c": "#605d57", - "t": "#FFF8E7", - "a": 7 - }, - "PRNT SCRN" - ], - [ - { - "y": -0.75, - "x": 0.5, - "c": "#006699", - "a": 4, - "fa": [ - 0, - 0, - 0, - 1, - 0, - 0, - 1, - 1, - 1 - ] - }, - "\n\n\nFLASH\n\n\n\n\nCTRL\nGUI", - { - "c": "#403e3a", - "a": 5, - "fa": [ - 1 - ] - }, - "CTL+SFT\n\n\n\n\n\nMENU", - { - "x": 14.5 - }, - "CTL+SFT\n\n\n\n\n\nMENU", - { - "c": "#006699", - "a": 4, - "fa": [ - 1, - 1, - 0, - 0, - 0, - 0, - 0, - 0, - 1 - ] - }, - "\nFLASH\n\n\n\n\n\n\nCTRL\nGUI" - ], - [ - { - "r": 30, - "rx": 6.5, - "ry": 4.25, - "y": -1, - "x": 1, - "c": "#605d57", - "fa": [ - 1, - 1, - 0, - 1 - ] - }, - "\n\n\nKBDBRT-\n\n\n\n\n\nVOL-", - "\n\n\nKBDBRT+\n\n\n\n\n\nVOL+" - ], - [ - { - "c": "#FFF8E7", - "t": "#403e3a", - "a": 5, - "h": 2 - }, - "ALT", - { - "c": "#403e3a", - "t": "#FFF8E7", - "a": 7, - "f": 3, - "h": 2 - }, - "FN", - { - "c": "#605d57", - "f": 3 - }, - "MUTE" - ], - [ - { - "x": 2, - "c": "#403e3a", - "a": 5 - }, - "ALTGR\n\n\n\n\n\nLDR" - ], - [ - { - "r": -30, - "rx": 13, - "y": -1, - "x": -3, - "c": "#605d57", - "a": 4 - }, - "\n\n\nKBDBRT-\n\n\n\n\n\nBRT-", - "\n\n\nKBDBRT+\n\n\n\n\n\nBRT+" - ], - [ - { - "x": -3, - "a": 7, - "f": 3 - }, - "NUM LOCK", - { - "c": "#403e3a", - "f": 3, - "h": 2 - }, - "FN", - { - "c": "#FFF8E7", - "t": "#403e3a", - "a": 5, - "h": 2 - }, - "ALT" - ], - [ - { - "x": -3, - "c": "#403e3a", - "t": "#FFF8E7" - }, - "ALTGR\n\n\n\n\n\nLDR" - ] -] \ No newline at end of file diff --git a/keyboards/ergodox/keymaps/familiar/img/familiar.png b/keyboards/ergodox/keymaps/familiar/img/familiar.png deleted file mode 100644 index 4d61846eb89d9a8f0a0cfde1359de0338e2735db..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 102059 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 - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - PanningHold down Scroll Wheel to pan with mouseUp/Down - Scroll WheelLeft/Right - Shift + Scroll WheelZooming- Ctrl + Scroll View to zoom in/out- Press 1, 2, 4, or 5 for preset zoom views.Zoom Tool (F3) :- Left click to zoom in- Right click to zoom out - - - Keyboards - - - - - - - - - To avoid delays and errors in your order you must convert all of your fonts and text to vector data - This layout is used for your legends only. Keycap colors need to be defined with the online designer tool.Please check out our online tutorials at support.wasdkeyboards.comfor help and instructions regarding layout creation. - - - Quick Start:1. Enable Layers by going to: Layer > Layers (Ctrl + Shift + L) *The layers window can be expanded by dragging the area under the opacity slider.2. Use the Eyeball Icons to toggle visibility for preset layers3. Use the Select tool to move and scale objects (F1)4. Use the Text Tool to add and edit text (F8) - - Managing Layers1. Enable Layers by pressing Ctrl + Shift + L2. The Layer window can be enlarged by dragging thearea under the Opacity slider.3. Use the Eyeball Icon to toggle layer visibility.4. Use the Lock Icon to toggle the ability to edit layer.5. To add a layer, use the button from Layers panel. - - - Manipulating ObjectsThe Select Tool (F1) allows you to select and move,scale, and delete objects. Select an object, then drag the object to move it. You can drag the arrows around the object to scale it.Holding Ctrl while moving will keep the object locked onthe same X or Y axis. Holding Ctrl while scaling will keep the size ratio locked. - Inkscape Tutorial - FAQ (Frequently Asked Questions)I can't see any layers, I just see one layer or no layers when I open the layers panel.This happens when you drag and drop the layout file into Inkscape which "imports" it instead of opening it. Please close your Inkscape window, go back to the original file, right click it and choose "edit with Inkscape". What are the grids for on the layout? Can I place objects outside the grid?Yes. The grids are for reference only. You can snap the grids to use our standard margins. You can print all the way to the edge of the frame. There is a +/-0.01" tolerance, so we suggest that you stay within the grids when possible.Can I put a graphic that spans over multiple keys? Yes. Large images will be cropped to the top face of the keys. The areas in between the keys will not be printed.Advanced users can use a clipping mask to get a better idea of what the final image will look like.How can I change the color of the printing?We have tutorials in our support center that can show you how to add colors to your text and images.Go to support.wasdkeyboards.comI want to edit the Mac-style layouts, but the text is not editable.The Mac layout text is not editable since the font is not common. The font used is VAG Rounded-Light. - Adding text1. Click on the Text Tool (F8)2. Click on the area where you want add text3. Type your text4. Font and size and can changed in the text toolbar5. Use the Select Tool (F1) to reposition thetext if necessary. - - - - Editing font type and size1. Use the Select Tool (F1) select the objects youwant to edit.2. Click on the Text Tool (F8)3. Use the text toolbar to change font type and text size - - - - - Editing textUse the Select Tool (F1) and double click a singletext object.-or-Use the Text Tool (F8) and click on a single text object. - - - - Adding stock artworkCommonly used icons and symbols are available within the file.1. Turn on the visibility of the layer titled: "Stock Artwork"2. Use the Select Tool (F1) to select the object you want to use.3. Press Ctrl + C to copy4. Select the layer you want to paste the object to, then press Ctrl + V5. You can then use the Select Tool (F1) to move and/or scale the object to proper size. See "Snapping" for tips on aligning objects. - Adding custom artNormal graphics can be added into the file, but you must convert thegraphic to a path.1. Copy the graphic from another program. (Usually Right Click > Copy)2. Select the layer you want to paste the graphic to, then press Ctrl + V-or-1. File > Import (Ctrl + I) and select the file you want to import.2. Select the Embed option and click OK.3. Select the graphic, and goto Path > Trace Bitmap (Shift + Alt + B)4. Make sure your graphic is selected, then select a Scan option andclick OK. The graphic will be traced, and will overlay the original object.5. Move the new object into position and delete the original image. - - - SnappingEnabling snapping allows you to snap objects at various reference points of other objects which will allow you to quickly and accurately align objects to each other.Make sure Snap Controls Toolbar is displayed on the right hand side. (View > Show/Hide > Snap Controls Bar)Make sure Snapping is enabled (Toggle with "%")Hover over the various points to see what snappingare available. You can turn each one on/off.Drag objects over other objects to snap. You may need to zoom in or out to snap to certain objects. Turning off irrelevant points will also make it easier to snap. - - Copy and PasteCtrl + C: Copy objectCtrl + V: Paste objectCtrl + Alt + V: Paste in placeShift + Ctrl + V: Paste style - Guide LinesYou can use Guides to help align objects. Click and drag from the rulerson the edge of the document.Enable snapping to guides in the Snap Control Bar You can Show/Hide Guides by going to View > Guides - - - WASD Keyboards 104/87-Key Design Template - IMPORTANT: - Before saving and uploading your file: select all of your text; go to Path > Object to Path (Ctrl+Shift+C) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/keyboards/ergodox/keymaps/familiar/img/familiar_stick.svg b/keyboards/ergodox/keymaps/familiar/img/familiar_stick.svg deleted file mode 100644 index 18ec937e283..00000000000 --- a/keyboards/ergodox/keymaps/familiar/img/familiar_stick.svg +++ /dev/null @@ -1,7592 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - PanningHold down Scroll Wheel to pan with mouseUp/Down - Scroll WheelLeft/Right - Shift + Scroll WheelZooming- Ctrl + Scroll View to zoom in/out- Press 1, 2, 4, or 5 for preset zoom views.Zoom Tool (F3) :- Left click to zoom in- Right click to zoom out - - - Keyboards - - - - - - - - - To avoid delays and errors in your order you must convert all of your fonts and text to vector data - This layout is used for your legends only. Keycap colors need to be defined with the online designer tool.Please check out our online tutorials at support.wasdkeyboards.comfor help and instructions regarding layout creation. - - - Quick Start:1. Enable Layers by going to: Layer > Layers (Ctrl + Shift + L) *The layers window can be expanded by dragging the area under the opacity slider.2. Use the Eyeball Icons to toggle visibility for preset layers3. Use the Select tool to move and scale objects (F1)4. Use the Text Tool to add and edit text (F8) - - Managing Layers1. Enable Layers by pressing Ctrl + Shift + L2. The Layer window can be enlarged by dragging thearea under the Opacity slider.3. Use the Eyeball Icon to toggle layer visibility.4. Use the Lock Icon to toggle the ability to edit layer.5. To add a layer, use the button from Layers panel. - - - Manipulating ObjectsThe Select Tool (F1) allows you to select and move,scale, and delete objects. Select an object, then drag the object to move it. You can drag the arrows around the object to scale it.Holding Ctrl while moving will keep the object locked onthe same X or Y axis. Holding Ctrl while scaling will keep the size ratio locked. - Inkscape Tutorial - FAQ (Frequently Asked Questions)I can't see any layers, I just see one layer or no layers when I open the layers panel.This happens when you drag and drop the layout file into Inkscape which "imports" it instead of opening it. Please close your Inkscape window, go back to the original file, right click it and choose "edit with Inkscape". What are the grids for on the layout? Can I place objects outside the grid?Yes. The grids are for reference only. You can snap the grids to use our standard margins. You can print all the way to the edge of the frame. There is a +/-0.01" tolerance, so we suggest that you stay within the grids when possible.Can I put a graphic that spans over multiple keys? Yes. Large images will be cropped to the top face of the keys. The areas in between the keys will not be printed.Advanced users can use a clipping mask to get a better idea of what the final image will look like.How can I change the color of the printing?We have tutorials in our support center that can show you how to add colors to your text and images.Go to support.wasdkeyboards.comI want to edit the Mac-style layouts, but the text is not editable.The Mac layout text is not editable since the font is not common. The font used is VAG Rounded-Light. - Adding text1. Click on the Text Tool (F8)2. Click on the area where you want add text3. Type your text4. Font and size and can changed in the text toolbar5. Use the Select Tool (F1) to reposition thetext if necessary. - - - - Editing font type and size1. Use the Select Tool (F1) select the objects youwant to edit.2. Click on the Text Tool (F8)3. Use the text toolbar to change font type and text size - - - - - Editing textUse the Select Tool (F1) and double click a singletext object.-or-Use the Text Tool (F8) and click on a single text object. - - - - Adding stock artworkCommonly used icons and symbols are available within the file.1. Turn on the visibility of the layer titled: "Stock Artwork"2. Use the Select Tool (F1) to select the object you want to use.3. Press Ctrl + C to copy4. Select the layer you want to paste the object to, then press Ctrl + V5. You can then use the Select Tool (F1) to move and/or scale the object to proper size. See "Snapping" for tips on aligning objects. - Adding custom artNormal graphics can be added into the file, but you must convert thegraphic to a path.1. Copy the graphic from another program. (Usually Right Click > Copy)2. Select the layer you want to paste the graphic to, then press Ctrl + V-or-1. File > Import (Ctrl + I) and select the file you want to import.2. Select the Embed option and click OK.3. Select the graphic, and goto Path > Trace Bitmap (Shift + Alt + B)4. Make sure your graphic is selected, then select a Scan option andclick OK. The graphic will be traced, and will overlay the original object.5. Move the new object into position and delete the original image. - - - SnappingEnabling snapping allows you to snap objects at various reference points of other objects which will allow you to quickly and accurately align objects to each other.Make sure Snap Controls Toolbar is displayed on the right hand side. (View > Show/Hide > Snap Controls Bar)Make sure Snapping is enabled (Toggle with "%")Hover over the various points to see what snappingare available. You can turn each one on/off.Drag objects over other objects to snap. You may need to zoom in or out to snap to certain objects. Turning off irrelevant points will also make it easier to snap. - - Copy and PasteCtrl + C: Copy objectCtrl + V: Paste objectCtrl + Alt + V: Paste in placeShift + Ctrl + V: Paste style - Guide LinesYou can use Guides to help align objects. Click and drag from the rulerson the edge of the document.Enable snapping to guides in the Snap Control Bar You can Show/Hide Guides by going to View > Guides - - - WASD Keyboards 104/87-Key Design Template - IMPORTANT: - Before saving and uploading your file: select all of your text; go to Path > Object to Path (Ctrl+Shift+C) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/keyboards/ergodox/keymaps/familiar/img/hntr.json b/keyboards/ergodox/keymaps/familiar/img/hntr.json deleted file mode 100644 index c1aae552be1..00000000000 --- a/keyboards/ergodox/keymaps/familiar/img/hntr.json +++ /dev/null @@ -1,634 +0,0 @@ -[ - { - "name": "Infinity ErgoDox - H.NT.R" - }, - [ - { - "x": 3.5, - "c": "#e3e2dd", - "t": "#525554", - "fa": [ - 0, - 0, - 1, - 1, - 0, - 0, - 0, - 0, - 0, - 5 - ] - }, - "\n\n#\nF3\n\n\n\n\n\n3", - { - "x": 10.5, - "fa": [ - 1, - 1, - 1, - 1, - 0, - 0, - 0, - 0, - 0, - 5 - ] - }, - "*\nF8\n\n\n\n\n\n\n\n8" - ], - [ - { - "y": -0.875, - "x": 2.5 - }, - "\n\n@\nF2\n\n\n\n\n\n2", - { - "x": 1 - }, - "\n\n$\nF4\n\n\n\n\n\n4", - { - "x": 8.5 - }, - "&\nF7\n\n\n\n\n\n\n\n7", - { - "x": 1 - }, - "(\nF9\n\n\n\n\n\n\n\n9" - ], - [ - { - "y": -0.875, - "x": 5.5 - }, - "\n\n%\nF5\n\n\n\n\n\n5", - "\n\n\nF11", - { - "x": 4.5 - }, - "\nF12", - "^\nF6\n\n\n\n\n\n\n\n6" - ], - [ - { - "y": -0.875, - "c": "#525554", - "t": "#e3e2dd", - "a": 7, - "f": 3, - "w": 1.5 - }, - "CYCLE LAYER", - { - "c": "#e3e2dd", - "t": "#525554", - "a": 4, - "f": 3 - }, - "\n\n!\nF1\n\n\n\n\n\n1", - { - "x": 14.5, - "f": 3 - }, - ")\nF10\n\n\n/\n\n\n\n\n0", - { - "c": "#525554", - "t": "#e3e2dd", - "a": 7, - "f": 3, - "w": 1.5 - }, - "CYCLE LAYER" - ], - [ - { - "y": -0.375, - "x": 3.5, - "c": "#c0472c", - "a": 4, - "fa": [ - 1, - 1, - 1, - 1, - 0, - 0, - 0, - 0, - 1, - 5 - ] - }, - "\n\n\nPG UP\n▲\n\n\n\ne\nO", - { - "x": 10.5, - "c": "#e3e2dd", - "t": "#525554" - }, - "\n]\n\n\n5\n\n\n\ni\nL" - ], - [ - { - "y": -0.875, - "x": 2.5, - "a": 7, - "fa": [ - 5 - ] - }, - "W", - { - "x": 1, - "a": 5, - "fa": [ - 1, - 0, - 0, - 0, - 0, - 0, - 5 - ] - }, - "r\n\n\n\n\n\nU", - { - "x": 8.5, - "a": 4, - "fa": [ - 1, - 1, - 0, - 0, - 0, - 0, - 5, - 0, - 1, - 5 - ] - }, - "\n[\n\n\n4\n\n\n\nu\nD", - { - "x": 1 - }, - "\n?\n\n\n6\n\n\n\no\nG" - ], - [ - { - "y": -0.875, - "x": 5.5, - "a": 5 - }, - "t\n\n\n\n\n\nJ", - { - "a": 7, - "h": 1.5 - }, - "", - { - "x": 4.5, - "h": 1.5 - }, - "", - { - "a": 5 - }, - "y\n\n\n\n\n\nK" - ], - [ - { - "y": -0.875, - "c": "#525554", - "t": "#e3e2dd", - "a": 7, - "f": 3, - "w": 1.5 - }, - "DELETE", - { - "c": "#e3e2dd", - "t": "#525554", - "fa": [ - 5 - ] - }, - "Q", - { - "x": 14.5, - "a": 4, - "fa": [ - 5, - 1, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 5 - ] - }, - "\n|\n\n\n×\n\n\n\n\nP", - { - "c": "#525554", - "t": "#e3e2dd", - "a": 7, - "f": 3, - "w": 1.5 - }, - "⌫" - ], - [ - { - "y": -0.375, - "x": 3.5, - "c": "#c0472c", - "a": 4, - "fa": [ - 5, - 1, - 0, - 1, - 0, - 0, - 0, - 0, - 1, - 5 - ] - }, - "\n\n\nPG DN\n▼\n\n\n\nd\nE", - { - "x": 10.5, - "c": "#e3e2dd", - "t": "#525554" - }, - "\n)\n\n\n2\n\n\n\nk\nN" - ], - [ - { - "y": -0.875, - "x": 2.5, - "c": "#c0472c", - "t": "#e3e2dd" - }, - "\n\n\nHOME\n◀\n\n\n\ns\nI", - { - "x": 1 - }, - "\n\n\nEND\n▶\n\n\n\nf\nA", - { - "x": 8.5, - "c": "#e3e2dd", - "t": "#525554" - }, - "\n(\n\n\n1\n\n\n\nj\nH", - { - "x": 1 - }, - "\n/\n\n\n3\n\n\n\nl\nT" - ], - [ - { - "y": -0.875, - "x": 5.5, - "fa": [ - 5, - 1, - 1, - 1, - 0, - 0, - 0, - 0, - 1, - 5 - ] - }, - "\n\n:\n\n\n\n\n\ng\n;", - { - "x": 6.5, - "a": 5, - "fa": [ - 1, - 1, - 1, - 1, - 0, - 0, - 5 - ] - }, - "h\n\n\n\n\n\nF" - ], - [ - { - "y": -0.875, - "c": "#525554", - "t": "#e3e2dd", - "a": 7, - "f": 3, - "w": 1.5 - }, - "TAB", - { - "c": "#e3e2dd", - "t": "#525554", - "a": 5 - }, - "a\n\n\n\n\n\nS", - { - "x": 14.5, - "a": 4, - "fa": [ - 1, - 1, - 1, - 1, - 0, - 0, - 5, - 0, - 1, - 5 - ] - }, - "\n\\\n\n\n-\n\n\n\n;\nR", - { - "c": "#525554", - "t": "#e3e2dd", - "a": 7, - "f": 3, - "w": 1.5 - }, - "ENTER" - ], - [ - { - "y": -0.625, - "x": 6.5, - "c": "#e3e2dd", - "t": "#525554", - "h": 1.5 - }, - "", - { - "x": 4.5, - "h": 1.5 - }, - "" - ], - [ - { - "y": -0.75, - "x": 3.5, - "a": 4 - }, - "\n\n\n-\n\n\n\n\n\nC", - { - "x": 10.5 - }, - "<\n}\n\n\n.\n\n\n\n\n," - ], - [ - { - "y": -0.875, - "x": 2.5 - }, - "\n\n\n=\n\n\n\n\n\nX", - { - "x": 1 - }, - "\n\n\n—\n\n\n\n\n\nV", - { - "x": 8.5 - }, - "\n{\n\n\n0\n\n\n\n\nM", - { - "x": 1 - }, - ">\n~\n\n\nENTER\n\n\n\n\n." - ], - [ - { - "y": -0.875, - "x": 5.5 - }, - "\n\n\n_\n\n\n\n\nb\nY", - { - "x": 6.5, - "a": 5 - }, - "n\n\n\n\n\n\nB" - ], - [ - { - "y": -0.875, - "c": "#525554", - "t": "#e3e2dd", - "a": 7, - "f": 3, - "w": 1.5 - }, - "ALT", - { - "c": "#e3e2dd", - "t": "#525554", - "a": 4 - }, - "\n\n\n+\n\n\n\n\n\nZ", - { - "x": 14.5 - }, - "\"\n`\n\n\n+\n\n\n\n/\n'", - { - "c": "#525554", - "t": "#e3e2dd", - "a": 7, - "f": 3, - "w": 1.5 - }, - "ALT" - ], - [ - { - "y": -0.375, - "x": 3.5, - "f": 3 - }, - "END", - { - "x": 10.5, - "f": 3 - }, - "PAGE UP" - ], - [ - { - "y": -0.875, - "x": 2.5, - "f": 3 - }, - "HOME", - { - "x": 1, - "f": 3 - }, - "🔒2", - { - "x": 8.5, - "f": 3 - }, - "🔒3", - { - "x": 1, - "f": 3 - }, - "PAGE DOWN" - ], - [ - { - "y": -0.75, - "x": 0.5, - "c": "#0075ad", - "a": 4, - "fa": [ - 1, - 1, - 1, - 1, - 0, - 0, - 5, - 0, - 1, - 9 - ] - }, - "\n\n\nFLASH\n\n\n\n\n\nΑ", - { - "c": "#525554", - "a": 7, - "f": 3 - }, - "MENU", - { - "x": 14.5, - "f": 3 - }, - "MENU", - { - "c": "#0075ad", - "a": 4, - "f": 3 - }, - "\nFLASH\n\n\n\n\n\n\n\nΩ" - ], - [ - { - "y": 1.125, - "c": "#c0472c", - "fa": [ - 1, - 1, - 1, - 1, - 0, - 0, - 5, - 0, - 1, - 5 - ], - "w": 6 - }, - "SHIFTED\nLAYER 4\nSHIFTED\nLAYER 4\nLAYER 2 (LEFT) / LAYER 3 (RIGHT)\n\n\n\nqwerty (layer 1)\nMAIN LAYER" - ], - [ - { - "r": 30, - "rx": 6.5, - "ry": 4.25, - "y": -1, - "x": 1, - "c": "#525554", - "fa": [ - 1, - 1, - 1, - 1 - ] - }, - "\n\n\n🔅-\n\n\n\n\n\n🔉", - "\n\n\n🔆+\n\n\n\n\n\n🔊" - ], - [ - { - "a": 7, - "f": 3, - "h": 2 - }, - "SHIFT", - { - "f": 3, - "h": 2 - }, - "ƒ4", - { - "f": 3 - }, - "🔒1" - ], - [ - { - "x": 2, - "f": 3 - }, - "CTRL" - ], - [ - { - "r": -30, - "rx": 13, - "y": -1, - "x": -3, - "a": 4, - "f": 3 - }, - "\n🔅-\n\n\n\n\n\n\n\n🔅-", - { - "f": 3 - }, - "\n🔆+\n\n\n\n\n\n\n\n🔆+" - ], - [ - { - "x": -3, - "a": 7, - "f": 3 - }, - "🔒1", - { - "f": 3, - "h": 2 - }, - "ƒ4", - { - "c": "#e3e2dd", - "t": "#525554", - "h": 2 - }, - "" - ], - [ - { - "x": -3, - "c": "#525554", - "t": "#e3e2dd", - "f": 3 - }, - "CTRL" - ] -] \ No newline at end of file diff --git a/keyboards/ergodox/keymaps/familiar/img/hntr.png b/keyboards/ergodox/keymaps/familiar/img/hntr.png deleted file mode 100644 index 519d152df5817293c100034d04ab31a6d6fd9cd5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 77473 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ð4QW+}Mlm=B*Q%0Mo0BucULbNIwe_$oYtxDR=nWXkO72XS%U~D*!d!w|m zt=g{w0*-2FY4w#kcFx5GlT2?uSgyYm1GB{up=ympHqHGQQ(5Cyp`bLGSno`I)hpH5 zq^rpM)<2AdOUwGjQ6h;3uYi4)*WU~2^Vq=h$av~gp+b}=NSKZoh})%(&Mzt&-5qae zJQzu6D6I}O48|lg$ZCTu)!c)uS9kaA%It1n0O!I2zT=_2Ci!i96vMwOyz9GR`}>;} z{ryp^Cn&+b2_%tn@l@!_>YkGlhAo!xh*?<$MNF?R``pV*dV_otxea$^n(c1XYip65 z;!@1!L;~xRrQ2+f)BG`y3p`M9`S0#;xJE*Lg8D9MR5o790O`P2Ri?kk8f8_O?b)+JfI^0zmGMEY*zR<07Q+ zV2)Fj*5kKdu@ECb+}LNK3*Fmrv{UdW!C-aducrET#R!DU~OG}eYnL?XGf4Q zST7)f)4PSRL)2PElFIt}`c&PO_Q2|`>5!PDf(*a9du4k* z8KuhT4cl;LqBo?Iv7b5}YG1S4*cQbyGZV5@;1g^Lg3jEPf8}9dT8|~x9>G>+EhHv)mVU~8Z+E-Jh!*%n7nH3%0NST_!qKN-|XgjBSggfiXTf5FsY?k#hNonF9wDV6d)U z#8zoIFWZkSpO_FFl6{DO5+Vu0}d4FR9{q5Oo&=p-FnKM*vPdJ z$vpP{KQ~*6y)tzF2xNe_S;;gw?Udh-S(%AMPWC$BCSf z03+t!#%{fZ{b@`iLWKZ8Tmf_HGklsGoL%5b0?*j-kBj)l*UY|1U}hf(fAH z^^oBHV-&ut!~msjwguHf*SNQ^IKK3B+Ms5(;RTXPi+>9)EbIybX3`7ZS!zk_;J}u$ zUT7V~0{0gs_&93PdbzE?i!!>c|4=y+MD$VZxsw32!CZwaY%yoT+F`7HniDzq{jU^u z4e92-O9*nnb;Dk-rl#wPGui5Bgzs@4yE%_J!>lho#yr;E?YXwe-+g?*k-as)=`1A5 zSflixJ+s}yRlttXk8}Ex9!Ag3>0Py-96y^-40fPO8|5+@vGUj>V1=mtNGTuiI>PtT zIe!dQ3TC-Y+P>H0{~Z`763h>nW&+S|)eH6H{0h^ns#W_>(SCP(C0f0G=dNT8q@7I7 zs86Vp@UCU_G7l7Eg5XAk2taj)&kcrLSKlc1IqGRwuK86oIv(R2f`#(-2NnY`43yz9 zEZ6aq4I$}Z)_`C-H62#Sy8;WNt(4cH?2PU$!@~UQ$eT`Wi08@Gw+D_RD08Put?&v} z$VWuK-o<+}iGI&VzJKrG+s&<%Y5pj!4a~2}|q>-w3ph{hw_TMEIlj$9T-vDeYT&dYE)ExhQeH3M@9p6LaTs z^Niygl~MJ{cfnr4xMO_D)k->!ne{VZPK?N>y5)*b@USNZ@JP= zxswbeWJqRySk&SYI>ekgG#41JpBfOD#dzhx3zID+g1)36zYa0ud{( z!%LvjrV30?1JQwewOO9naF_9rl@qzu%EhsS1M1d82eE&>N76yY8t`E+gN+-^(w&bW zw$R^TknJcOBV^}9c6FNbA5ehbD=w3%x$5;-ag5B5bN0}(KK37z;{`8I9E1{SL^I|&szHMw*NGjVf;q_OOT*}-3D8a=HY(Wz|+Sl0~Z?MJgIxoH2-Hmx%jUcmJM=3LT;_-ax=sfhWL;*hx{1&A!yTGWYEJYd?No?b z9AH*yUaN-3|DMbUL^+d=Ls{xYaG5Fon#m9b5;b-8BN3krDm-6bvTBDI4=q{Z{y4jB>_04j7)kJvdlft z{;`=exB-=m5oQ57#D4GeOq`YZrVk!JXs=M3m5`AZlCyA|x|!d>1??jAY}0ZPh~NQTU(aV?!BR()l8s}qMOxbPn$9RbbK;|m zO5fStMJ`%6acQ0C+nG~q+uJLc5_4tv;IMP=qMZzwPl;)N0Ytx4c!+t$LmozQ6m(W$ z{5AVIPcd!;Xu>NRNnmCbk} z0yZAT;IxG`Ck{O*9owny;IBIu=8tK)fzS>R`AZd#$sG30qA4k#0uJjN^?FGk7rUmt zy=4P_z6evX+cTeUowsj|kzN1p=w+Y~dX?iF`Tn_N+(Qw}n89QF(}d-h>dinB{~;TX zt9=}S-0(iw9@O}4pD;F|x(-c9LLgWc=HJAh{32zG#*USgA{kW}LiR~{aPw~vbP=S< zIj7FyDS6xaD##9q-*Y_8l}*_uB$v3t$Iws06RrHh18!5+h=)b;dy87 zgl-dd=rvAafkVV{%w6vvRJi#8s}CX zI-5w)PyO`J0MhUW`+24P`N6Kk^wn8e#T^{`b(pEbpcN1TIj*%yT3*UhLrM>z*P)dt zQFjg0Z9-7Hbq1+1-j$>7$EL_qOj|VS@rD9@s$)j#*3{Yee_jY29HYqrf(6PYu7m*ZT9^i?L z3LLSUTkma{UCf;1nOo!@3XZb;7$5{Obf~884s1TCzo5_IdrdUp9_TqLhvhOAjC_DZ zGBRf{i30Gom|JrNeHc@vLJ2Xn{2B|Bl0nIMg`y|stys~&tZu*Q*!n2mHJyp_oXY-{ zFoYS^O`kuy#CRQm_Ryw&TV}8xxl;35szx>6>?@0@nO%$@HCo^)^gNG+5p~evh^wt{ zQ!2oIq!Hp#C6j3vfzyNgGI3DR#0mn@f4=lfE(6Svs2R1=)QDGPB+I)5hO+H+9Mk3R zgN}m0>1C9CZ}k^Wh7zUhkCLn(*O=xMmWt;=H*0I}?lIu=&zUDUtS=Uy!@1|U zh1Xc9^LG3OT?h&v;nu#2^;Oc#YR%HSB?;#b ziuX%F7sP=sVa?HT?f<=Npe?}=D2E`34&b@gc@Oi@(rnb+W~z4=8h<&FXmjA8qRz9f zN9-zv=YXMPf1yxa=F_tjA28BO_BZ;wa6N_+{#e~SKQ`t9ea&`T2fKTbzFFEdIF=vo z=Qrr$Y(G70@_rex(q1-Pxj86~M$_jko8+!DSpK!TTFsVQkAqx>Z)WSc$z~eUc7=1Y>uB2kp`KQjI zk|qzi)+VpkyP?0NyvX|A^BKqeX3Z;|8MWtE=p92eKMNs#c>#uD;Qw3s;)LzFNMydQ zbucr#1}&p>HqRoiK>s=&iSRL9kJq9LEyzB}d({?$^G*?nww!LUu7dlp#l0J! za#z}xe455*v8(kSU;j^i$vb?yag5%^^hW(I_KpJ)Xzz?W3Fq@nRw=np*q33m(H7qe zd3^^VuJ`VbO+S8m#A_^wm**U@Pw>R43TZrAT3YCXr{m~$_};B326w{ms3|2-Q(i;25gU%a&M3Ze&XI3<5dnIXCHd-=-qVIw};iUX=+-t z-E~z)c$m=Rr;Q;}D+e88rtZdEfj%{0L+xvxrY5rNk^Ggn#30fBmeYefLjGw)HHSvj z?~-2JF|6b^s79ZY0oBFlf4fH&(wK!djtE71E?YEfPLriPev^PX4*+`c@5(+1G;HMv zEv~*ixNNhthRj>MA77A60|vk?>16_CLu%fq%>ez?ZvRJ}rxOjh_y19yN7rb+9RJTa z?IIA18%HLZKEF?Gd7D^BC8kz3Roh#H@ZATk{*$&kHc0r1TSy+fEDMe0)a{okEKlOHSJm|Gn zsoqew<5m}{v>AZ5`vb5#!=#;ZR$D)UIojYF2P2YVSN4J4feEF!4V(gWt!9CVYC8mzT~&A4*~9LyKf3FS1jpis)%gtx zPnf`MAcy>S(F z*9NRb;95`Xe6;z3Z2sigS}6W9c0~zqY@qhe!#Apb-RB18K8`=`L+U&nMN|Igv;?`$ zBX*&PPsAg#_d~D9_|M-4joujr%Mek!qTXb~v(1Mj$tv}m zGBg;Y%E9j80d4A&k6+Bbt^(yVHXz>M7ZbbrL)pR6#7N^=lp+EYG6fT7bSbVn(T!n< zx%O~0NAdL0VAiK@CTVtyW3uV(Lk;ZYjXlSW^wAfSF47-Nm<#GA#MfXNiM6yMrmRQw zH6wlt4Mu1*%eE$SaE8+P9di1UaD531!^iF_OeZI(zf-v1i5trt#Uyd%(&R>O9jvRc z;79l$OgfGpI7)hpAFh_MIt(0cbvg>(zWsuZvF5%t8?ds=6Ngt;PQoz|z9Eo4U_E;& zzb~M_bg5yj6StJ|YU%HW4IOFOl=jeDj-}O|Tr;|{y6=NYeRrOC$5GT7Z1wrEloKl5>&Si+T+6_6qNEgh_u!2KDfGexJB!8uIIN5P0{T%r{L8M-Z^J#IQPN>i^kX18QTf`w@`q%t(OsTm8b=JF2b8MI zjvIyG|KSP$&qjflHT;GHa9?EKs~X8Rt^%885s>|qg9#RQ;IBWn;D2baL2@DTkaXfJRD3=*_XD;kv z6BH|gz&rcr?d!J0MEJe@T&pd6Sk;!<{K2y|B)}s!TgxdNaqir?P;NsS@CRj~s|PbR z8W)=u8PT*C_HdhTMvw08(Tv*^B2U+PX0#4*uf;SgQd_uv|GwY8PK0V{#*qIkJ zeaH_cxc^s&!O8}Hr5!;v>r6X>$;t&DR=ayUWzKznU@dGBIq=#{F}Sem8d9_8ZmFz_ zcVQ0>c+T#6!PVRK&4P>&p$pYNgOHQ***}W)7O3^Sjfv;Y>zkCoQpm!Q1iYw4`drWR zRZ?d2HY|SBx4ck5o-B{QnDFQgzP z9~VqY5qzo}|E^_P=l-K0+>&(7p2?>AdMEf;&T*&T03$9OO$)UtRANAiR998i1x-Rd zQ^Z!P6$iOcsf5fME^VEUmkmOtn*JU!(zit^ zQQtp*W#~uEL&WkNC|~-mNqk`5s0j4T(p@xw5)m3`B3Gz@!0G%U-b?>fdaSR*fe1gH zY~VLrnof!#&f%E8_GAaYdLYXty*R~t!w-<>k&KppJbEr zfd*nsH43Vvh+|pB8kHoYTT5*$#*na<&X%PmdqZ`BH}VWLP(zaT6+8a%iLdqQ1W^tg z4g*;_Y!`p9y?W)o6r)=%1bON|WrYMb$}TdE?j)+DggpR`d094&pEH*ZM*t1lmHGSv z^i+mNUm#IiDE$A?D8NU$`W*c=Xp7gW4fr^V;w`o{RR26Qra74oPlEk|XVNh#DG9d~ z8It_+JhspVrWK152}gN&!=W(X7g84^ms}3NhI}FWk2E5!&u|2kkk+53i8Swt@q*@t zoM*2+0|EkG-r5@`P+0%2)0z<#KyoWx+4a`JvOgT;fbmrUAYK?O)3uOo@LaP^-Wq#- z?`^AgD29hU~5vT&E~LG&*R4!2phWAlGAB z@WVOAp|kmd-SycZ5!C7OYMprRuO8J0wAK0>E9A3~x3*+|eFZcM}-xMq50}Td8 z;xY1rE(+vV==RjwD45Ws238%c5E@Cd`fy;AC|D?e=xgB@bxAHdoo$xm^ zVuxtMRx1(<4XL1H-6W}$`D;;6@x!0IN=&zu##1GQrVh;c3TA~*y2BCcXSjgWy_#jd zd!6d0jn$WCIEKOc`~Q=;uVubU^)kj``<#k>N!8ruwTJYVnVW)-8`=LmP z0)mV+y~V{8I6joi^b?KKS!uhEq(b3H9ae0Cvp&$Xd?Gs2@E+y|SxUtDUq}nMUwxiH zPY?w>fTT7ay8l8?+Q+hc^i#-pHKX)Gg-{G4{LwuRh%lf1Kw^zuSOTtJG)bIYh3+xd zP)Xsbu}8=BXasLupwvj#C5|sW=A3Y^b*cbCa^X1SFjw$)L90F2$2SmlleoBq$ZZNH z&;0IT7cJDQ43L6Z0_rSrAO`GlGb7Ib)zIs!GW)ASr+2TXZk89eQ3mi{wk4LB{8ErnX0(K zAi|vwPVeBy@vd!|jm9rxXFg9d8Z%|i#l-f-8H(M!>m~23R=Y8WEn$2IKHxhT$w`EM z%&4r8)YLW{<%d%y#MbLapbq3#{)Gj9^zsR@biJQq!aSjw*(-286YOFpgBcl$m=>?i zYSg}!-Rd%|$@4-smv-emiF3Tr;J3aPn6%n1_kS_=7Eo1g-xsJYjfVzB;7Exyk_sqN zDpJzTp+PzY1SJm*A|)lENJvPxG}1`7v`T|?_}20MZodB;D??X;5KA%bdQZR$}J?)_D#PXuXv@gd~ zK%jf2^avUyb%amFQ4IF>_4&ex2Cx6fCj{Z((Xlo53^?hrJy&q>JBWMck^l3$&aUIV zUtzx@iUSl>RWbStXe(<=Uq$tOY%lEM9@0-RQ1HL+~@(6D+x{HbiB&1xD z{+Gmq<4f%*EyLIiJ@I{&5NUaNxX+$xTNMW_wCB#ZcjeqtYP2bQ{2pB=I?jfQ^_cXo zh^ynwVoJ@Z!O45Pn6}cz5Jb^y$Aa7GUt3DVr6Id^WiNi@7md&joDG!6xz}Mw&sRs8 zOh?P3`H>fBjwF5@&A8s{mh}4MI3tlFAN!)8qNxO}Z%y;``^Th6Uf=#=yL@d+OGd3K zhZpv@-q*I4{QEhElk$s;m4}ncsXsrAxpT{zAUaRuMW1N0n8~8lAQNlmeJ)L;q(R#i zhoPvn?M<#KjqHL$es76j%tIf4q_HkxmE4M;>3LOde5XH_SXKhhi(Fh+S9eaUwjK)I z>sN2L`sd|wEC!JKis@f~B^pEeRo5rwP2J3|F}Y^@!C^4BL5jfE>f$!Jn^WQ~&p~64 z63(YwPKGOYW-WFW$vb1Tp>1E?`8|5tI3u4Dot1s#jcgCn!0p0SvdNanFDR{YSL~o@ z*5=Vyj^9>}8-MsP@Lo4w68hY7*<{_W39o4W`-a`VLw_fp?!^UCoa6Y(#l?jVQ?;!rFbUjqAuZBi`}?u0W$Q&_^DTbWJ=;4f zkGI!+Upq|9)sL-lLqC6A;dHK6wNJVPZoWetfws0~&Zxwe(a@%m$sqMzG=*Gt+s3|q zDZ|&FySr*9wT2^#jTXEvLq}AWmTdA&rfi-uWt?WiYqjo1jSFl1#Me=VPr5((72$td zTPrvy-@iIDo9dqAN-Q+Vk|HJqK zSdWB*GN}T>yT^CZ^k#ia%f;{CFAGkMSGFB&FVRLw>)oUhl&fMU!Qly~O2gP-Z2r=x zy5okOHm!TdO$pkIUCF*qt5@Q~COFD)qa;H%1DSG0n;dG!CwtAKx?lHxPz!B(`1176 znZ3^jDxQ(WH;AL;+7sH|QVZ8UNRzZ!y45~=d@THJ)k;b|?lf4GJfcB;vb0L#Ao`Jt z=vY1%>4y(%>oxOiC01iXGL6z&vFG5IoDU+KsXDo$A$s$gPBxuvquR#AgXQt+z6Apq zz;{=|=z2DBbborRB_hpgP_)M+^It-frdUzwZ>@b`393}QNvA%D!$Yr5R^F4qQxy+R7`K3S1@2s(TCZFC zr7M9HEFo05WE^6io`ggToeZ*#0yZ|HGsRSfG@^mc&92SL#w;lL%Dq!G;=#>B_|Trq z|DgTBICt%Zmg%CRoAA_kUq(kaKTU<>KJ1%LAt8ZxGM%NZJV45PgWm>olK7F5(`gsw z&H6cO-Wv_DI|pF~d9{A7_LB<3RU_x>Fr>LrT?YV4S2_EfvVMXmYA3bF)9eTPa=wKgl zwwReJt7n6g98RRZkn^Y6$Y;)@MoU|zL&!m$hw35$6!1#$5@iu?6KuHEpKq?SncTT^ z>gf2G%c#weo{58qKx~ABYL)TECx=ma{z_4v%5c`s+`8lsnT0D4gT#dz3y`tfAS5c z(g|L0i2m50d2#dV8 ztjXedZ^*-fuFmWv##^a>3z59m9CF$J=g*t*wb$qs6$ih(rXa!5ha-M_|MGfG4SRy% zA@QOUr@pE!f=73uKtj&>)`LKriaCxqEt725QUA6>9t=)PQx)?eH2L^fO3I;Q015kp)%<*J~rzM%N@LKr!h)#3#B zex}h|8Zdt}aLQw;{`lg)3es<%9&;?%G)v!PWSq?&`at)fk%F}!?___md%{KQ=cTQe zL=gqT-UHa}e&}9p)zF=bL%kX8g=h3 zx`pj4MwZ^pEJwzr(?7(`(r<4z)Yqn{q#Bi$QJJ{4EBY#F)d@bDH8aW#N`1^^HQ6>l ze)V0;v|7GnVtQ@u#m-La@aP)E4b?o<1UozU@L$$0iazbC90jgK2Kt+*Ds%T25Catu z2CPUwW7#wCSZc)!;7BbV52j>i<700vjOGNSe0i^MoI}(iYe>w1`6pa@nvTAmEreG^ zo-?#Ze-zT6a3o4QUL|ce!wo_!?C8DenGd_sqZ96Z;2XIyJ$k=rs=B`IK3-wC?dqCm zeO&EEkiF-xNbS?!)=XSaiqXYGiqUdNNli^$s>@3gB|V1+2gt>PDE%fkED57JqvzUz#n_#WQ}j5zjX z{tQ@`pF196UsBJ5ry9zi9D4RFanGvLe7SYB?uU-+ZoyPk66-uDi(+pb69ffNP^uGNX|mg0o$ z29L!dO@8^k_n(lcpWFE3)B7u>?CwXyUOcr&9Y5UWvKal!J0EErNNRPL2i8jwt}lJK zEd5CCUVT-$sf(GRV|~TL#`p2ta+p*zREob>VeiK1s+Ny}aPLbJ{@i5mn%z8k{-tCU zWb@Z0JR19M8xE8V)*Z`9-YRzmgQh;+P@?N7yyK&lKa3=hVs7Lg3-H+~PG-&Kdz(bp zie5eYyE5BZ7QXZkQum&*wY3FuIW{}=*S??DYQ!W>G25JFuXRJkgDWabz^yaqxzuNA zKS5K}4yErUPPjRbkzf+4n^iYMA2jCg9_@$+Q>))v-!Q;kU}8{2c$1W|F01QooV(?` z))=^^B8Ev-KWK$kAMRGXMTgvqL@`cp(o0UKW)3EsJY!q!j=htBo|g4|`ok|W?{|Vu zqiFCdW6W{&NPY5IW%paO?V8S2oU3!QMh%}b@f^J_!0}gm_DG08D(o5}ZRue_8;$c( zYnJv+T_-kOC*z3}q+fiZm>n$=^2^8aWx{l)y6w8uMcM<2D@UFQL+(H(H!f|T_}5ve zfbpLprk120LCWv0v$#S(R?O^AIVLqvHX(w2Y*Mb_&cE{7@Z0*94AF}xCrqzy{32Wo z$P>onLM70okbaNq`PG^Ae*F&dix~XwUU^mD%D`VSj}hMIJR^i^rHg`=8iT}AIL~H6 z+*@Y3?tzv|7O??S-Po9Qqj+#tuqZoq{8QF@o7Hj3Z_!IOyQ^%2=kes$$uqb9T?9xc z<(Ck(CwLz7v!86$t_%Fgb0NAmO&XSV5*YMW$7$$KEx@lMj=7_y+7-qoQ~`x%+DT_c z{`yZXzP6ob-3LogLJs&FQCtNl$fq6=rsP9^ru?rmMwB%l2Ymd3s z#+ON6GUZe^?l;$-T#oUoeQ`o_G^4oAU#8DQ$H&w(GBQH3yFHYX++4=Lty@OCud1Ru zYxgagYjr6PAl!g$^3PjA;+18xf9AipJ9A-K6?Us|Naq=tpDE69UuZBO5oXt$E64O3 z?N+s|9`db?xIcTQek-J4|L{?)i2a3rjS%0(VmbAvA2zwq!k5_G_?-8G?k8+ue)_*k zJXqBy$w-Q3pHt(>f)T}w{Bo)3>GXRCdtd!ccjOH7n+SV<`Q?QX@;w>Wi)(*UJ$S61 zk}xcNaD?n-&n4!7tP~FucM5~dWD{DOBhviGH#NL>pLlq92soJ5YU;$`6Ht#5ii(P6 z3tx`U+pQ|Wu^9XyIpZbXktj-7YQ0#|q)Xq;@tUJDn&VdCDrDlFvUE@DE7^zOZN2I@W?;n8acKe!5l zYeT(!+a8Uw3$9;5`h6B(NDArfUhU7EZ5=H?%W*krc4tM4p5u{IP_1;5?!QmarjKKo zOG@3A*HqB;@`sJBU0r_S$Z2=|%QuJu8lNF0Ct_y3w~OBkdE)Jw_(LJ{7C)nBWkzTt zRi3%yj(PCr&B|E6phyZv;y5=xKG8~$2i^X_+En<%EKov-PhYHJW4wj8APuX)Y43dgtZk zY34?%iR1BL9wNE(fS35oB6)z5?cXQ+wYE&dfFlvn?vquQ73w%qlu8wjYVNm*nY@UF zAxLQ;({A3^qH6z-=_-HV$i3{z~KA-10}P(2Bb8FN`>kxpHMq7JhrnMUCNNK+K6OG zUgrPzD)sw{(9@r*Kx5}TYxl4|ICopv-ZVD0E*hN@6#G0p{F47lMUslh-G9XNjiQhJ z3vPU+OQ=5GdlJD1Sxhb;4TM))f6)v!`;X}EEW{M#QZ-2s>gQxj8l*+2;#HNNp;*eI zW=GRE(W3rukd* zbde`^j8?CrqrPs(U+9``G@ZThFOVR-qGu6Gy`KZB0%ZHngG2*kzjj)VDT&vAF6#%y z*7>1rZ*E%e_3eq)>v4W+Z*PB>s;jPl$5C0ZqH;`dw_P6oP|#Mka#k=L(=|q<)nt*# zagUI4JlSubOdXNe4SH=t>Y}0EcEdbLSzw$s{0jfy{zO{)@#f|xEm45YY%?$X<{11{ z1eaZ|ZXN%W`@NH-5D8CZ)tK4Jf$Z=yTErI7A{~EBwJle_?zN_nni|>hs;KtzvmjM zs+glmMCTfHi%A*E%Gac>pm9x}T@hH~pu6Wf{zjg;-oKwh;>T+g_i@cd`RrNSoes0R zsVXgQ<4K*wFnHc-y@36~ze5z%&@Jd*Qy*s#qc_utjSdN65c=f$ zy4EK+eAbU=He4(P3(^CUOpCzJbLwuVG-ub35Bc}zkJKU4uG^Mxq#p zw|O6NHAso^UM%YsghC`d8)Ra4zelz(-(ZsjYtO^{`8^U@DV$aflA*P=Fdh@xv7&bQ z&2K^4Mpg9@+JZxQpQfggheIecPXYr1?z&e6ZiOHpH@0NM=)nMLe=Q~*5*%O3KRi(S z>gfbZe~Bhv0hc}6t0d$1pblJ|?T*}ilD;4g0YDg&Lg|Y)QY>HDPnQmBO5#aCaCKlk zdPEJmkFW|1Z*t*{YQ+31ZmN*=jg7mm2a;Xs6S zi{S9kO@6-!PYQ(f1_r{5P9Zl5ggbSOeG-U!|FkfOAu|*&*Hncx1oqM$2%F;EEW23I z?uM+msXfO=+;QPCF&7~T0YHfLz7DJOnKMUpWI_6z6lmE?e;(~CX}2vOAvUi*@3;MC zc0$D6g{F8Fv4sKnSWsmn*XiZdFK#GiAS1{@oV-t+0JuFMa}6_B&RH>pHEVW-V6lyY5E=_Uy_+K5vq4@*5E;#u+`$)CG`L*6y9a8A@ zY_BI6YWV4I1=mciJQ~U$T^o@wmlX%#7h@NR3IWhggiXvSbH~Pp6WoIUzY>=Cjdynd zf#l;G{J|3(94!7c?!^{1ze-y>9u{_-X+e7*d1&uu&cbzgPOGVM!R3O4%R_IVI^2v> zuyNWL(Di#MW$Ll}dTZAzY{5AX1YdKu|9P}GZkNZLCaRq;0*u>qxO;SoBcY((5Xr;D zJ@y-to{yja1m`9dtl`)Bd0*?=<7n1H5>5yXezZySz4qL&5qCr!F@AB-l9m$I@By9_ zsvj~!L$5l$=dv010I)MU_eYqpO`evol*Z40GQ7QS&tGIu9Bw~LrQj6tBQFKx)M!L% zn7Y{6kNz$$C01r=`q}N4xmyUo*dY~{XBtetp%sEC4tLl5OH26~{e12q(w=j(hoUY@ z1fLUjsQYZ26qV6z>)|XZ%{+_Z@;GtwpJHgTcR8m1XPyD5ENW6HBLm zV#p6JST+uGa(kzU*BD2)jR}7yN=Qj*X{^-LG|QTNR_-&3<#_rZZNem2V(yAu|FW=1 zOiCRBX_k+V4=sbyhfZvHD9SK;2$AbEq)`97chfQ263$4^k$@j!ak`{@AAf=>rTo;MoO3r)W52axHRZ%qZnEj>T2mP^(@vzNR&h+Lj)hsx605syek64xys?-Kwe7uks(SCle+?F}u64`Kl3epI zECTj((Q)8ZD}t-!$pmU^11#*$TLmcYN6*83WvIWyI>!BOZhp*s?en04)A8WuL%mJI zce2TTJvN!0-Jca`F@=8^O}ro>-_G7%0VTMJgmc5-N}r5WfQ*k#Tr(bs%U}+3!1}*> zog~nbhXSkfKVbbqE5_jBbUmD0UccyeI$aHplAnx`qZ#TL6;aS=(CK8?MP?0(X+nVBJ`H?@$n7SXr$%6#AP&8xiA#V<9T(5X51fx99L{F<%1#o+;+qs%w0B+ z0+_7en#Dzr>ZfP=;UCX5&dA4W}@qs`#g0&nA@p=`Cib>#LG^Y@`6jc})e5T<`% zbrLI7zaKDS`I_3tC)ceeP6mDyba7kfxLjRRSvl+@4o)kmc=v7Ww8w-_%MysNsE@KKC)L9}`Y#3ahNIi;%JE z_+jEjIq7(2KMSO(D|h{_0RED{;Q;GiaZ;U z4b`6B?7I-mhTCl12G8*=4<;n(>u)04qh7ucqOrGGIUv0|CXrQJ_VMo$KX8;+r~?UO zm`E{jYw@wiTf@cGM1hyj&hhffrF_BCY&>Bze-}jf;s$ADhHup7Ad`XvdUv5qh92ey4ie_7axC0?&d{lQheP(*fe3TFVbs?G z0|RpL0*};wS$;OuJwP?ozchO2Pr7Mt`OIH%Yq4BQImyD)mW!bLFYIfWj0;2hwMYHUCcWUNx-*F5co!Ga>a%%%Tq z_Ge;91_A?d!Nu9`w>9a9ZDUUCf>|Fm0|m>xLmSLC%ETm79W;+>UX|0-m(^ zDA)oqTi>(=ld|XC$2aP9?{SreuB=)ywLvQOmyF@hD#x6>_Kj14!O%)oJRH+j5f2i~ z7It15afX5szn_KXttoNRE-`ktC{Lgx85|?CTG?>#JRgZ4p!^}tfagGgG zuk$o$$WC+ZYQM6}CW*X&e1*t}T=&?hWy|ovR%iz5yj6qhDiPmrO z3&{kl_1|T)E^r(hL?m*@!e1k5j3PBBnRLbRW`i_L7wGk*1_>m+cxlccGEYa3GO$*H zY9v_u@8Vx8v2nP_hQcJ4`>twVrR1Mlqj3|=96}&<9GpBH;(bSjV+#jLCriSe>oL-f#)B{Yk>~2!2}hC zxnIv;7lBLx4qOOWG1eFMn#1gx6aqnhEz!gd{>nWZ-DT8__<<=zaBfmAR#4nvUUa}h z6{Fz*>Be&>E3dB!GojdHaMTkkoy8L0Gy%9W^S_t8^52(y5<~&B@W4(~K>n;*YOgJF zw_SV%Equ81$&kto*G=SLX|?(m+;=lQPEZqk&z$@g*c^z8$oQ-$Q009jka>X+V9&NC z%*#IT7Gus^f(s1~3NtPsHNya~dy|(JiK*&rdp=?5TrS;>IXB zH0Cm2vr=Ud=$?z&ZCuT9k!keJO;$t41w{|<@Cfgu0ynY60U;+<0WDB&}rhM5}SoYuK- z66zOxiu>!--ra+z!WZ{ucK>;bNiI46tN9JZtyDEdMRZHp>K4rU6{`%Q(>)%Tn6R3s z(G2G#xSyzN0CnVFoL1yYh0FIdSy?xJ)5*8>yLXDRuJ9Hs3%LKhlqcKc@&gcd*j}iS z|3?nP0b>;n0y-I7L5_BummQ8Kv6BsT@aSU4Kpic^C1F>s=gD0OB^b9K12~KrP+_y- zqehm0pQ2YxW6IjvcV$k?(9M3I4bNLwXr#T4!DJz|we(Z=@-|U8*Z8sZdGy{P-+l2$w?p(su#+fqybPCD}ml zx5#ZSUVf$uPm?46n-|E@F1>JMp!eJc!d~w5V2gy4e6QkBz>6{}_n* zaHTD(3U1DH!lsm?@ptzPL;CeVfkil7aSIz?e0hw)@OCe3w#Pp*;`#4Rq_?Xs5^3b% zQ2w8sq_B$O(Iq&WUyrKCW@lS=IbYqjGgXx+f3YRep^b~gKG{s)XK?rzp~gZplAIaDPS*&9H$%rPQ1vinaKuHy=Lus$%#+pauH}l}3vnvXaeyt$UULcP=Qn5Pdw!e`E$dDHj(w~}p@nIxBsDx~MT1E#qK zzIL+LA}W@t1lT_34%Kh=?BO@JQ_d?RR6i^Lbw_`1tXofE@BVNp5Rfn-_cxH*}^12T8#9VBq4Ib}p-N0RRZNHiiEA zoDTwVxtT@qi^zz`=~I5*NBlgnmuEHr8rQPjqyngs<;g_i!KD-oA{GTnA zzZNhn)&Mnk0j0G+qlJiwNH9%GhWwu2zIjwwSeUl0HD_I2U5|M&doBBKQXLg|bfl?P z@#H$#Pei;M{?rGZ`Do$iPj9>aNV23y7#O%xk+Et#hi`Hj`ILj+_&6=-WN0b1Q*g}z za{yxg1rnE#GdshR8JU>eLq^!tPS;E;>g6)SBYFnmN$q@Ei-j6|BhoS*Uz z>*;f)B>BQQR88SpZ2s*w#RISgab!gM%+>!rnz#Rs!CK9P%Lu2<#9cvN0{rdboVC*( zv%QaZpBNc6#a>DKbdhmQkc3)QRdUKI; z0Zr>$Tlbut_!d7i`OdHag^&3-Tfxd|c|1^G!fkg-hNaDA<|KovC zhoLmKJIiv>zq%DWo3}I$w-K?UXJciOs!c9`rvwvFO5(leyW1eG5q2H&oqmwo7E$)m1%+ReA+y>JDT329+Y;t4j?~X7qw}4S#n6Zm(wu-IW>=5{ zeRGKs*Pm4^6u_-}Zxsyu%=zHw+_-DaxlpX1v*rt29w=$nPVdkR2R%F7{c6-;4?3-D zjO@_^krWQye9sG!l24yvgC1#FG(Vf5Cl!($C5kc@vmMLV_{>zP-BIAbaEbfKESMrpO5cmAb?R5 z*5hzvGms|%7}nYdIA4IjfbQ)bHk~6qyY}If<_qqw0Nq%BS**5OZc{YK@1QE zc-Rvi4u$5Xy6$f4jy zQ-j#xFcj~|Zq+1a_lbLZ04U5){$eBp_&g-};NtRUv0_4!1wXso7t+4A`#A z)2Aa!Ki}F>8b%^nr*<|2D6>Yw9|h)DGQV8qaH}2q4^@2RXP%x`D^_B``uQc`;(B^- zIt!?;(n-zDF<06ffPz3F@N+}xpwx|bdMIhEs_NF?S}aFgc{w zXdr=^fMbN^VzWe%*6>!gvmLWsa#ZihX_HCz4>N<+ z7|xtMJH5ClrTJ0O#TTv@fB*!a`OsYJt~eKCyR7BKcaQgS%Cus91{X;|8&|0o1FvL+ zdCX_=)vM1}NA`jW-S}$e#DQ5O2QAhmx*!T;NjIW~+maomUyhHD&wuX8Juh~3tLxlF zqT{CR3lUc7Ql$}B@j>z*-frosNy>=ZV(5!fvNs$J{vO_D$hTy)x3_l(8POA+Ln6yX zfd`@OtS^pbe>HqDx`MomTRr7YEbI8f?UxYx0|F?w59xnD&xkes>gjJuA+-XPCbOEd z;u3hP%~jWaw=aYX>37!g{*UDbit}sf6b=qdCjm=Rr_LbVjHS6Q5dMQBmmlqLP52&zu4iI;|8c~hS%{U$%VI-Jc9l9)D5pi`w za#S6(*YB7~_*(9omXQ?ny{jOroK;2#hf1Pvc4T?q!~9Ec?`hy=a&lO^A~kXL4ULR2 z)(laWZ%Id7QtDQY+cX~hL*z{@b9<3T3e1udc2U0{nUT2s_Y-q;t&aF45o15SQV|sK zJ2jRR$II06Gi@U261^k>96a~(SXG^D0l)r@wue1E>j_%{W?_CDYrT^`j!I8BxLv<~ z%XU|!&&zjY8kW)1qg8zT_&hcG3L858pnYhF9C&VG6W29uF z9#xN~{H0py;z{a;tK#_V{W@JK+sf3=UATaxrF}lw{wCi`Cr=6(F0j*-;KS;M`mYt_ zea2mSPjcEBC5A1_g}{G9`grSj@;=CPMkRjywp8!JlaIWzzDWRxKQ)wW!>9l$5M0Pq zMmkn4oJ^Su`{`I=O@kBWCLpLG=VgAjNn!N1>3uHCA}Ra{Dm5SYtP@iXs4xcJS*#CZ z9dq*`k=I;&uX$e2Xs*LB_U9v%JfZ8GRz#<1UoztQ%&anGG>xP49Tf&Qsi;eo@FV=V zUJu6wB=V7hP~c0-Ha98?!?~N9GJlA}e4s?t#L zPuqmz0#!f({nG+kY^-&EHP(`YcgaeXS3o4d2}!&^oALygj>&uDYurLq;Gwc-cLUWJ zFm?~_Y{^JoQbI+A?C9tS2EISxtucx~=$b2wSH5MK>p*DahF<3H`o90bJQzfOio2)M zCJKw4i&6pA11M+~fUqj-r$In}u!Xh!vuo(X2_JxyFYaCJ>5=zON+JM=Px7StHmgoW zVGtZyJb3oF^2$YFm_d^$%OrheK#O*OT~pvm zCgfR2r{xLC=6Xz8l1##tQ|SFyhL7+{pRPsT^(`{Lt zZ?fi@?*~dvE7q|x9O7{e`8s%`TZeFY1>L|cN8o2pTPieH}N9(&=z1x+A_f%sF*OyA~aR)L7k z9CdbEiG-`xc_aY+`dp^g1vqT;{Q_OhMQPF5V1P;q*YIEqa?upV(Ds8`JE_KioX|Ft zJ;XlyWBW!~r03Y?t)Lk8y8w#-5M;Dnx}kx;xjJ6|qd1$bTMk^kL@?}Cc)VN4RswqF z3Sho;@IO;hg-tjJVlUq-f%_TCTsBgr7@9%lv7?#w2cak1GM(c>%Gknu35j2r6$5GN znQ|=xD7C&hbPW){2@e6$6%>$jcIBPXnQ#W!OJy9RGW#;<`nw9&3W~Hyxsxtg-=8>J zhD4bzGSUJ!1|)67N4oRycp92h`rD%eYNd4N0a|;Lc*~|9X`#w!Zk{dao(B)7(kS43 zf;X6>8B)HrsNegtNv+U|cXhn{z64%ULm*l|Pl(;f5H*9EURxvd^z=*+w0~_s{o*=^ zC+I4WH;aQjU0$LiKtU5A?p1rdVvPmFFa%CoT3S7&4}`wb#>Vd^oa|&ul^mlW;G@xj zA0dKCv-&}F-#AGfX1sOlGU!>ch=ME!tKqA5;Au=E9tBdUd>X{KYHl7L!Cx{XJF4Ji zL2HX3A@RXnSOCGewY`1zsG18u)9pEQ&D0(b`htYc{bW1@1jc`G3sf*4^hK}Q*(l?$ zK27nZ92>KtG#H2-_*`bL+ava91wh;K~f~HAih*DcQN) zNQ#97^g_EqO9IC&;uc8;)Heqq_rsOagv-q09l{Zgf5=W|&OSbO{ybtLJ|6TCwoN6$C-c(nKu~r>O=c$6+#gGCG<;zF-GW1wR8anwBsc zYvo-i{fO!fr^6*$CvgjSU)TcAU@5S*VKZ8t;kyb!pctO~x%?5)|kOd(wU$)q$l$4ZAt?Kwxj>YwtR3)hY z)KZ{!XqF;}&P!-Sf@`e{58?rEd+)AcyzdE}qwV&XRt)V49`|1jyAF4Y3^3NuxUsc$ znNbgq@vjUe_(rt0_QtpbUUw0IqJn z%I9>i;cdcTwT++YMK*-Dw|77Vl6P2_l2UYdV$IO-=oE;dyQVlI!z(W8J!tIdxPJ$b z%j`jSll>7)f9MZ$OjCqfks)SQLU@hf#E&%qr~CQ)6%Y;gD`gnD?U98Tz5i9s{Y~j$ zjYiI0-rdd3`qC+nhm@xaznHG^kbtbq@Vz#`)2b49Zb3sc44*OdoK(w2dP4ISqlYlf z(~1r7KMW5AZI$1a&F?+<;aWjEs($JIos2#@X;vqeZ*q9pFJSM!eEA~aIhBjzqyWX} zGTD}c>O*DKIMO_^S14|=bbS?78Q29@HucQ#yJV7Sy<^DPeyrA39UVK{~|PcdJVRFQq7yw?+1gU1|!r*dUzKn#t3c z6`=@*`AUh;4tMAn883hf^AgYK8yU}`!n*)xqic%hu~YB)-W}wObR*pMen)nd_qMB+ z-hTNtL_^1Xb`12eJm;w_^K(EnxF@34sa-X(tCdy%O8uF>v7bpvNg>e8YHn<@6FHG= zD2n5$=@-ctN#clU7tWGTWrCvk60czgBqd@H=^@wp>dqSK7h9(0&!&3s-aWxzRV{%! zc{J}I6Os5_+}&bB`WCEG{zy_yIgto?gqW>6c2CXi`@=fQoJDDd>~aYX_w!1v)K+Q< zu8b1`kMaa-bxhIzp|Yk^JMtQBP`JIwPIJ9s6G?m%(XVxXQCd;ami6$csdX=rFDYqbe?mInkuV(MmGS=nv! z0M-A<;*J-SwA)0%mFzZFxWuq{Z=CRHUkw(30$;FKuTr{QfB&4dL~vErZFdHuX~H0< zI*ZThcej#pol!^0Cy-2X>J6#t(m9zYblzv92YeJV>)W7#(iT`|MebxN#!KKu8Q&=b z6`ePLGlC4L9F48SdF$_Da-cjPTB6p;fEQMg`oaY9k&2xtMu9nEn)K09mMZj*u1?kC21Jpg;Gt&ljQS z{seUYmFT51UXsZ`3OYJEtk*R?JN^~xBvnLV^%j%*9uY1iIzh5y?%j9$$dRC^hwo{? z@xY&4mj<*XcN05P%XrJZY3n+0m@G%6Dqv z0R49M+}Y@CP{7J446`p#Qn5=c7iBhxgsE?^K=Cy8p%$Zg!_-!m_8^7KYKYE4DAdcG zGwDb&DjmBA+CwOIU=b0d+lN)Jr0J`6V=`VwMV${2M{Ou8DUkp)1>eBMMQ<1z#x~(# z+&u&5$rt^e8P3x_d%e*g#TvBPmSnjpKqCPts^4d4W7>&TiZh{zOV9kR7xt|H}v)`l7#cbh%`@~`JkT8^&mC0pdq#N(G&&3NXP z2mXq1G1Plb@N_D5ju@Og{KvOefwAQ%-+O>)_8H48l7gD+tmX6*_jptGpAzH*V?pRb zWb>DKA@_ry2oO3_D>Rlls9P&bd9(jCL{r4Y#bHXf32_~f>-E!%+?ES?txOVlH`+1) ze20_**aMfR=f)NA!!g(sZp`M#w^=-`P_I2YQ(awM@MPrU3toMBa;o{514j4l7^YNM zy-Sy#fBJMMyH6~T;yk<$W+tKSY;(xdRqjU+P%wF67W1@PY|85p&da>o9k#xCyvU9d z91wYfs+;U|>grQcJcclN;M}^p!WtTb>Y!hAtXgFTRM#CHGF>YU=fS*W#*DJn=E32p z92P|cn%e2d$ZNE`d`%qjy1|aR)URF>(E#lVC0@LXr)t!bgKAIYKfwis$+&st{!eP1 zFTOypwY<&vLl*Y%v`XTe^F2Y(8LA=dyt9!8&334LPiVr0i;Yuup7H`!x4zK%aJ;oT zv^-!7qpbq(f2tbZ#A5ic%JES3RCTmOOB_y{`z4HFdI;H52@6v@Nd&_Q1r6B5x8 zy5^ug5^`xQe0*Pk?K`t&7YudiiJa;uBObGahx?tZGH!8^Whlk$!2&*IL62KL-ow=fvq3^0it%q+rQ4N)NY` zM@rS-(4TrQfhQ+ln@Gy_Glm@#iZx3uo5mZTV!C`uL|8sSCumPsqBm^T3>17&%9T72 z!HBM6U$2i@YeQeA^o!_6hz1>Hb4{e5(A^-vm}Y%wsupy06HVz-^Ir4Zn`AqoVgv4X z7Szal`yFNp`|~C+O~Bkt!kC?`7&L7lGN{J{;3@f*J&>(fg^(t~EiGU5Dg)eqG6$XQ z3RKm%3qFIvjUrF=23`j`i-OyhXZcATMAm6SWwf|4=kz5YijyF zRAuMB%F$pr?KGz3>gINhmiCj?mv&Xpr#K5jIB-0?wb)AqMK1D4q}+k@9Ux8WP$R|` zRcO!!o)+{gU-J80Svo&)t%IZu*40XF_eC$~W8Sf8wS{}_%7wL%@Ph)r)y}a|Yj-AK znu|)eI{&F-BLW}4d!uMGptFwx921#CyR!4zX_XHr1S>0y>DD7YZ`&PV5CTRa7QA-4 zjEt)Tk3IFXuXcJ#=sYoqv{3}@j^k7~q+Ec>m7H1%h9>_390%u8!oz40o$R|STjmL% z9*<_#41^1}p!q+C&*VFJ^2Sv(8Rqp8KA*hRbKwQx1i%S8Vb{Q`jggj`{H`x`EFfHrPid{6t_>0zWrjYD@ z2o+&LMPYbDsEabT$)6Ozy-D0A_Hdv-Bop$>f(J^Vg^#VJ#n$9$PWpy#^iga&Ut(VO zWRtv-_s)|#a?ht{)Ya87%!!Rnegj|2Jy6CsV!rIp<`s8axk%rDrR2B_|MC|;y@A(j zm+}VGFxnmKsTw$>5eye9y`TVA=v7D8BI;QU%hI!CLxp0-W znn33lv^S4DDF;bod--!7mGSC}!^I{s1K&r451rBu)aPS$g1V8-J#ZdC4Zox&0>%0& z$P1u#lT0rW0TM<*Lq`?^P9Uqr)XVFTs4GHtmrA!hR5z{XbXs~1q(EEpLc4;r-Bx&! z#Y4oNily_;#V9DhHEX72K|p6XvF0H+l@J;o{f=v5gz*tvmyKVXya&o(v~tC5vUi=a z1pDb|IB+bpGZ^v&;%4cPF0>drjVng^3Y{6~X7OiWk@^@0qMF&k6)i~}gXjmo^0yq% zk+e~`Zx5*I=0*(H2+>1l4-)^LY1u2)6C^c&B?02x^1G;T>y8X&0I#tk{6?xZfXnp; z+*?)m*?C`X!(}g-4r5X0-FWYGP*V?=5mtg&t-oL8*hA~+Z7(u?qN*tv zjSw91kb*WGyaKi5^&j%UinNnbiR=d{L4Vn+2lM%7vW-3Apn$^rBGmKd5*XS8a5Av9cnZvnt`@bA|2;r%b2g5CP(Q2TOUDWKVc;9r}zrZOjrnVJICa#me00kzY!m)XSO3Ub9e*ept+rP#1BB zoSv+b!OF$WO>>|cL$+dsMp{ao?|>oc8QhuFZy$L6{8U%Vrs*__kTVt}Nxl6y?Xq1o z%j~-cC#|Sdq>no|L^U1JX~+x3L4g$GcO>vYF2Z(6@ER%yZl?t4Q^Tt@mk$@<fxoVzvb3kNE$`@Gt38%P2zj#60O#z4Y81)lfkdwj`8y6kbkg8jy0D1ZI zR+fcorqS{6^jT^9tYZlxQ->eUDZhTpQuU;Etz7K{Q}r|Y9?rRo0yus$@WuyW6|E5Bj(pLl*{ z01Yv8Z!7s%@P_9>WM>PYzU-x1kKnout0ub~&02!%mlY{KEY4sRJ~!CPQp$N*91Rx! zC_$huYgNMX5d#d&fcALa1z1N#&BwkV)#CFFe)ER5u2{=)_v%+@T8YkfgWy^G5~PQq z(hEM=9xpd(uZ{NyZGX=PH3Cpy{y%K}cRbeN`#z4BGRl@MWMuD%%ZLVfs`m?<_gAP?)mx^>~}F*n&+e0Fh$DvvZEwm!LCd}al9apZqG zG}+O6LcsR_tVU)qU$NsQ(bI90=(xXdbmrL$li~l)1?Z)fImn3pfXedifRcz?3#XvV ziLt_Cp8z^seq^#If-8&zxiq1lLRs?=E8)Qnc#b~JA%;9PlB%j1pBGRdL0As;U@L-o z5L(F+=PzNZRDoqT2XHgU-U?RX5{7^WQDsB=4!rE@de8r9bQlz)@Ax=yfVl-eFqHTk zoDXHEbaOhi)NG9D3I}k*+Q$*mYw_Pr7x_Sfg|}tz$wF`-C-Jr@fV$Z zUC}39O+h+yU|axcHV9ea+W8AG`7GgWBQXSOusw$l*^n2&Kr_H|NmW~z7M8g!ylCSU zW{HUc)cp3}GMfASfWGIwKRCM;C8<%@$dBLn=c_r)AObof0{F<>K6*OGE5fhm?!dh) zIC}#|a3r%9G+j7vmgObrKRU|7_CEuu9`5|U`=K=(0a@31s*qNurxd076^ss7s;S$b zN_`dq+12>1qXyE4YP+>1-ajBBsi{c;jxdMX~v`4aHZ4KM)T_Mh$yk48`;nA zdMy94tE($rshVTpR~TXgbF^lw_;Oq6KVd)rpulJRXy9Aj#puF78uG?dN@C-|7zIKI z_XGq4K#0NHh*;J7L&#SO&wsnozubpsvALp@M{s$ZdilV(L!BYm!@gdQT@wU)(p^pH zZv>~rQ`S@@XnAa7P{g5&^|`PY0U@4NJHOH$7eEgZu5E3MTYfKzSJJTlu@l4E!h5ll z()r*YJH?hPo3wnT+-iP@^R(D|!>(?k(wkM2Gp#tc)82joEK9nzFlsKAKBKDY8kkt~ z@`piK2`1h6VIqySpKT9)K7S@do{C&^W>U=`fFI3Y>5%=R_siN46aopDfA--Lm*Z`7 zDWpqwGpJqY2Bk?Y|A+A_>O8^xPY2ug@87w{IKcfOomQ|cmaW?&$4JZ(m!~w$ejvb2 ze_dQ$JWrR>c+7x4^1}x-5DAcOre}w=3f!*0fbjbHCJX_!Dp1l!#&U?x)^W!b1U6xz zLe;Eiu*9?q5?6yBsNu*7{0`a^30`5d&l~>t;&k%KR|Cp)**Pf?s}c`TLCX2jcW6~A z6$&I+X+O1H=CzN|*7fMoEnpLo;Hfh)7D;u2PNID_3U13+V%Eh7QW)f9#8XpzhW!^^ z;|Oas9aVh7f5>@rRmb-84*OgEKm4^>v}heyKSU^1=@zf9RooK*=v>8HYi*nO_r}0Z z#`&fiCq!f0jx}KQw{SQ7f>5XB;=%)+AS1smH9kIQd$x7#yAY4y&1rkG_jZ5AL|3{k z4%qx2^r{T#V@DR)W_M@?4sXTw^seqBF)?^82Fz@TZ_Y>4k{p0|J|>3c}J z11o|UG@vS48Sv$`L{N*ZkmJAbLPbS=Hc$f{asFUZg<8EBNybm`*VzGEMs&3`8A!0L zJ&{Cqd=r4vY+13%%U8bq#_De_2fHe=asYoma=pQ*1+YRR$KXvtVF&!)cLXU*=iC2I z(}J7_anDCKm~*0s`I6lKvND zry4JYn-|=Vfd&FvEE4By9bT?qLXAVe0#mus#5E9>PI8y;8W+h4lC~4=vgPZfZ z3IlRdF(MCoRG4`C_-!Ca$LOVR~xXm&wHi7fC>yp1p-(K*JU8j4PphAhyA* zFolc&APzVTYQQ-GNB}j0kei@eLpzArYfK-pQEPprX4oa;Log{DnwF@1=2EE#TMODvKe!Qfy}qLM^1|z2f;}(D{nh2+lJkf5=}p?}xcU_u0&+M6 z6RW|jCXVZ`VU%IS}yBXjT*1!mwwRxI=~{X zRFAF9<~U?LFgRYcdO__ce9)YeKt|_Pa%?(*8O*QUic6-BR zE}ml=BzQPJ-^ zlOYafPp6x<>6TVki8>EyRXjXve4=tYJ3G_AVbbvIlN;vQ4B6t(29fm@zT9Q_Q{&Fc zluWOSa_6)%)vFf9D{i2Ec6Ll%Y08j2EU0}hqU#7#qjK|!sn=YnajDM8`SI!WEYqa| zRr5r80*i-irZ*Z-mrk}BG(7FDdNI(-SVVrgHdPo~+n9WM;T7I-n1n4{>v8z(%A1Vt z2F>sg4&$?nQ_nwV^Jo^UBHpdzDS~IhOJdnl1T^IGd&jbCO&FB=_ zKUV=_F|e!fX|QCe*XtU48%g!HxLvUw_aq8dpEq$?doF#`>C13OGSf_u8ed{3%ye&v z%8@6hG(H@XtHYA5xMfj7&Jx4IJ~~+ey$!w!pMA8y;smo&ZMZ8xV1Flk-lC=^UBx5MJ}C=p-C8gf=7fh!|%v2b*?udn}nX*~O4llBc3RB_MaY`g)658Iq$Mpm~OY(BG z#L{Sr`KZx|<$z?W`Saj=Zt*;)3JIyJA3n;dhxgKilw3byqE$C(R#x6P?BGiDxvA39 zb#zX5JN)~0$Cg`-t-zTmb!hU96Km`jx3Cyge^{kO5;pBrHMQ*`Wxy&iG#u}O{jijE9}$R%3g=T!m%>_1Og>t#7g^#*owVhD^}ze| zvNq!PP>oa*UZND`l~cF;t1gIx-66>oA-83-E4b6=MqGELLWh9H)Lb_}qq_9C)UQ4s zELG;zN?Xcs;TSG-^Leb^GUF8FIWd!7Q=`{IQg6r;M4U~I2`l7*&e9_V1qtnJPf=>7 zV4v~jxj)YMMADMZeya7Hl5M{VKYqNz`*_#wE#iTo+PYI(f7i!0Q>-9USfEf-F|Wtg zpD@ApkLz5BZ0o0u#{cXj^L?M*bSFn6SGo9twclE*>S?5? z7@e5lIH{bjYUygSyi%l>En6)W`Z_m=092|!?l`iXb~@Bax66Z`S9Q1ST}U+{`fl8x zK>uNI=}LGQfF(@gHAt~@mcz+${o+Aq7Q2$QN-T&zsW4~N8-2oh8i&`xnURy3a2Q@SzKlhY zt!>Ur-}K8tZEPyXyP4cAE7?x)W5&x+YO$1|Nhvn4{J#Zsl>q^CsS5k`%CJ>>gz004 zfsc`#*3MrZ$%Ab@*wrc!$Dph?ucCPRpx>xv?HNsrXMUwNn|2Y{Fq|;Y&ppMRS?T=0 zshWM)dh{w%;WP5{IKc=ywWdDaFe26u{)A^{Pn^^1E`69Jr1G$E^!>|bNzM3Mf{8j* z?%VUJe!JSnr?Z03iBC6fkuDWP%2{$a-BFyzKf{rwD zMIQf*m*VP}C*+@e!MdQX6~5fUosk!N2Prgbf@<;|Aj}vdUEy`aSCkAeG{Td za9iQaYUkfPu3oTE$>l9ASqX2VE>0!}N99DR%sTB7TSDG&s-pb*^(#`dgn`ig*V8aXGY0c|M6aB2t$3!9#i#u<_^!YSzCJN7VXSuufEeov@< zeSJNS_ay=0P3az&F5B++Y6|;CLSzCFI>lt#Up2Vw2aM-8em^_5x~K24ES=}^;w~|} z9#&Zv$HUbzo0*jX>Zx_%@Y1JZWaHdQo$K*D+G|f3dC9RE6yx5uQn_OhN{fqpr_xgX zWnJbFOiJQu*4t~xJKrgMytKZ&5T>in62r`hQS@)?=Z~mFxCD{rSMKE?7xJ&mIjpY9 za-yB1)FG<+`9xo;I8S&AWukTvdCukJHYW@Digz``f>=8mI`|l0=#qp`i7_t?InUBE=Y43P z7N=q>%^Dtae)quDl3pSz$4yfCw<7v%n9^7^EhjGY(|lxNF&!flx)z+yWj7-Q6fU76 z$JFiOp!W|?q_X)|@S`gkSEgTniC8MJ`ouCcsnWs~$7LijET>+0NJ-+cd~5B(Uf{Mo zHTU+h2Sn9z%tlYn;8)qH`nNdj`S|%so?|t--nNs@&(|*|zxSfEiDFE@^>l2qvC=DF za;z(&cli4i>!*|xo|lxr5`-vH0vNX%aY=lCUqAX{SEa0L5hlPBgNuYF?WjMDqcJinPE2mr26(gnJpF-4!cNn{^-6fguL<9xNqxT2?qp5oV6r(d%j6IbZnGWP$+eR zH1#WmpTyU9$Zmb~3V9-N(|1EX$226W(!PC`NjaV+*t-|OsI0SDU)(JglF0wfq;Da1 z){Ry{J^ef|F5h$q8AAAyGBY#Z?@1$Kf^)JZ3uDs8=9!#nSy?URe!$V#hUX+q!6=XW zVBd1-q;sYZZx;8MlRCyW{(4Z{%jF;le|0NGHc-`+$DY{ZekL1U_D`Lp%%df|)z~zC zLc5daNWj+iODc~tTkYqvJA5x_#U1}f*U#WI{Meq^kD*2=QMtOtvDw1}v@lq+0;T(_ z8xCjP%w_7?w5*Ve*lC4&xBnmM+w#nfe(XuK^;U%d=zKC?DiIPD)ybq#K*msHXbfN9 z^d~$$kA?Yf+jK9N!>(e;=0Azwarr&iWu9MnZ=3wBZt-WTZ9?wf*$fJ%g7WQyI1r|9 zbf1pLl^+Op|taCp=)iLRn> z|BZt(_*K+3L;A9+Y%e5irWT_xKZL20cV%`a(gus#4-BLmEns=ndU3v?st!QMebfBo z$KC3}_5JcxgbL9PF1N!05;G8g8)79zM&D1b@frM{-BEbQK1Ua%`aB8e%Ya3jDGxL_ zKvL76rXv{MM)7SYw4-0GJ`U5GETXchJ{G)R{ik7>??;0GrB76j_SX;2uMw}F6T44J zOT^?daOvZ{H=cR@Fiq)WK>=5qWgsObS*_DBp9x1HV#6JuSz>+qroV*CTATTm+1J-6 zEKl;{wII%jj+NX(0v#kcrO=9S+8VgNyJDh;@pxaS* zm0nDY8tiO~YzN)RBK{L8*1f1f<}Q0nRDy!xnUCizGWD-TT9)?Hr2yvT@cbLP0Xj^> zDDtCoG29-2WegC&k+8RS6L$;QoIUF4k03R^wR!FBW2)no+ht@wZE^OGTc32<{knZu zvPn)Ifrujew`!Y>%f|XzNQ`&|Sbn-Lo`1d1`d;B~QE{2tqCuNR(ZrM27S`s02}LlliTP122xvFyjQPY8PTaXU*Ke8#y6&W@h%mMAj#OGBA zw6xiPuo=ouyJFAQQ`><7*q40$`greBdF}tWUs6qS z!X^?;F4K?dx|@?v54XftBLY0n|01x!bS;DP0|I<*V*z|3^5AzVR9xggvov`2RfruXkv`pH%8-%eOV1p-HA$W#bJk@8VU6gW z7ZBh8*CcI{Fp(Pry>tcd7dfA=Ez`94qug4 zwtLF{(#B?SZN{k8ujzs#okn+Vg_=@0BSIG&efG6&uz!YsnBw#15N0=#tfxUS%-G~n zw-mPF3`ywiv8~ce(!fTBg|MfS-d-vNqC}PUQ1&uhJcii4G?EnpH4F9^+$+}ml z?rqYOlV;Ib&9O{6$vSj>nF{KpWQR8;bae%GV9Zv;A z@TY+D`3b$Vi_}156hiq^=}h8vzNmZ!m)o_GdqR7++cIJ*&|t%GtE}qd5Gvz4fl|kr zw&qmZRrn>BRn4`{8njg{YjoKq&fsAM@V;4Zr)8wMeww57%x%wP-D zukqh{bQkNz#^BNP*udy$@Y>p1sM5hJMKXv}y@P`v3Qr&Xa`@1_h)I#1z>(=khhLeS z(`ydB%v{pn7Ck2LywNc%1|L5LS@O=R8(_ z%*UqTRi?=nl^xoMlaLt|6XSn&=25rVj1jHg80l?YUdQ@wgFPYBl}@uebrm1E&S21* zUzje@*xbGUU~;_ni=T4|Oe**p=_U6*g@;Nt#T^{T>(=d3T^!IDVz@&Mz`ji zb+GJo>o9C`)@zWuc|kI^=dkY;a7Vk>A4!Gw8?$xM;NajG59U3Citgptjj`l6{Kqk@ zngKO$+kdNJ^#chAw8frAu+LGYuMm-!${;I?PFu+5(il^oCwnxIeIP~HoNT( zrst&Mby#ULsw^?I{QQ~)M|pADWU-#MOIzYeO9BCp6Ah3vL~JiSa7D*U?iroxemP=e zVv_q(nAJnBpegw$I6H=EF6b_Y3F+Lzf&@#n^ynbro3QMU*9*yGNqq6DbrpGwkfgo9cmVByVdy25-#7)wkV2gl*!R{J&;f9 z#p~6Zn^yZvoqgmdMD^sDef<&YXebME2Ttg$*8iYLd@6WDrrS>P8OxV8dW-boC#pMz zJ+NUfc2m*CQGc(G`Nna(6GJ0_@1mwygjuQ=@tF1`qGQpYf-;?n#mG78Z@E6hCThHo zn93-8c{L@Dn-cq;nPFoGyLfkJ;v~Wb$1`l7ebvN37R5v!%v>&PL0O4Gk0XNy4t)ym z0ic8~q>oHDfm|2&3CVN>fjb%k`nnGqltDoGjWxcCclI58iow znnUjChNoq~Q{Y_=kKEd!f-Ld-#s{E)nze|zd9aJ>W*!+Cr5Rp*mtTtkHOPx%GV(CA zoBlq#uBwH18E_+i=45llYDrYm+@7CT${kS3R)fF<^cXT-I#+hy{qWX6=D1&h@P<@Q z5!D@^fKWSf$`uiJ!A}oI2P?6WaQw(Z?Eb4aWXO?dz?_oCc4P7jzF%^^fB*|np{qM0 zOQ5O9yxmy%xL-^O0Q;J&!}LoRlzWT68g{Z`XHUYYdrt-v?a0Qn?FTT(n~JFLJ)&}@ zWv=}U6m(~C8Ei2Jgq8-u10t|Wc7O-x1!*8f?R{fz`unk3F8)gX5?8}yd|O&v$w(^P z)>od_w+%EjNZ4cJ$wF=I7PZW${5^&Ak#jOOt8u?qPgtL(*9`=5ESinUhO8M%_a!XD z>a$Mi*9H|q;MMtY+IUBJ(-}R8luqnW%ta0YAIGpuFlq6nBe~hP$%aLdp)J>LzPyte zl#~f~oTr;2Bzu*Y&%6lBHpd&&yWP0$*6|f5Y_SYdYQnqS^QWi$DQvA)n`XM*w$Cnh zy(eF;RuXV2($LB*LCfNvf3rtStiGQ2E{l7s}w!H@-s`Z=HSqvuN@Hb=aP`R_StPr`fZnw9lANMU&kg@lJ^yrigb%c;7y z*qyu(id^mZ?DjFb*FKTNS0YoGf+=H5ouF3}Ol{lhsHr+arZXs0h8iI!}aQ|Au4a9 zUAt<>H6DC!0b;gP8lB39uGQcg90Jr4gKf#rDyU?W*o?_^>aP@^4f{N5RkbB!e?b`A zvKj7LGUl)1zVxRK5ZzA4-#YQjvWx$Jy#VQ)8x8d`IX7M3($lK!9}je+2dArBY9K2p z#?%vZ(U+$f=(Q&(i3a1LG2QoD&mKrKSTnj(sG?QqrhNCw{rVN#zCw69ARDBFA3pw% zUA#`+kw6mW9Nf@TwVKO`l)Y{+XHnf1{UQXFC!VeC(Ad<}BB~vsB6MpAzkEjJ0*87$ z(nVE6<0r6plV0Ml#c9d?Xf?~M$5CPwr1P)NytazAEZy@SH;C6p#*n!08$y4o-ASI? zxLk{fsT&EJr25l%nI{&Ub(qp z!KhVwD(S5MzzbjfZzP_S^fw_UNtVkExRlj0Vh)mcTUOnkpQcm4HGfrQK4%(wp^|Wx z%*lD;vB<+(Y*rSgh(8#6?_a?WR(mW(_+?BraI6g7?yO0)su@vMims@lEk-5S%3P>tg8T-ek3}7_R#oGEA?m8x&4O zQxVqK-*(=ZY+T{wFx&|+L6+d#{aH20wN6;)e;E2C^zzk%fZQ@KX`LaWJ^fSE z4(HV7rV`n$;YXA8yKneKmq>reGJ4S`litQG1-B_dkY8Dea5BJKB__i31naxxMRmrl zi@Q)=Ff^0UjKrZTVnB>gWANMlRAj-TDCr#POZyCX93`fYD%o5{4cE%1C# z2u#y%5EbPKgbg;26?tBK;&%VqP1P8j>C;Yjd&oRF9PFJmQojQIJYs9cX16}?H+e1FNjD=`YF zFy#65M48s3GfDwshlZ*aTJ8>_VBPigWnutjXlZQ&p6<@bYY_SW1&I=d;8?`=Rj%Yj=P4?r5wb&q&Eu4SwQYL-)ngee zG#Tn4Byk3K9ztakVLN%(wI*ZsAj?lIB>R07Q$Qlle15dmjeXe!^1=*+5EB?X3Voa9 zy)=b0ccO`Os%ING4YQ}K+PVuxy)7v|BUP~jI+6{ALDBFAR{edx8=kKm%nX zc3Il1#a3=iW4OUkJ=xpaO9?Tac!fNtD75cti8gk;BHCw_8x^`;&j@#o zoNv0nB^)~oBHNZT4thUWHYv61(A_j&qll6r8C)%_ys#hG_xm@Bw7$Lql|!M@gRjB- zH(r#>Hkr4i-JX8}VG2p7neu!YSovu3fiHzGR!fS~@fNwJDiqWfB_Qbz@zzP#bq4mkt@-|WJDpP%%w$&!rGSglI8TE;8e z#qbtJ5UuVf7ER?6i%tvZnxhDNjENGlel+9+Jgmr8@h}|&JQOIjf}{xUtMCyCKV-?x zY%t^jeiZNuWLFvh2;^Z5v}Mj=GPe%$T_Az|T$u|Z-EMgHjD|E@q3`?B>MLM%cpqcR z<6H5 zi|HudUZ3`*X}*v)aFfkHICwq#XGAqgA|Ng*_qq@1|GLcIPn+V787?-Xse@`Wj*se| zzVWlWH+j1Rf!}>RA$5oMUUD${eeXynFvxW4v_;&``ttSgdQ(tFYps8`GY(`7pWH4^ zaNJ1Oymt&1eMo{P&2!gHy3#7m4 z%@a_cda=hi(Mv;|(To+{975{W80=XcN`DTgE>e>6pJSh;#*f{J zKeSfZ_IhF6SiWp?blIW|BmFFI1cwHsxxRj+Q17T2jUe?alyh*{{o;YI?|#mA`)CCd zaxfCgCo?{sk}%*Tf6?`JOqB$W{mJXwm@7Z!?#B$M`$XkHVV^FQ)1m-i$~X}lL=Yu% zzc6M=aq+9baBJlHtFfS(n4w4)g)#e%7(>8xIoocf+hM?Kq~|7XxGPOBq{4R_*0H=? zQxJ*Ai|@LMy{p?tvk|`OOmXZVKF&t}9|c$aLP@4^M^8fO=e1G7VBMH@(@2=m9+e9N zfCyk0pcxo^Gn}(l=sawPoE+U$bI-9;Or{o$IJJ9)~F=0}U$Bl*eRt)StfY>ZbS z+sjeU^WjeHXr)7KYkNv-2m&s>%cQZxH5K6WuJ-pcP z3-D`SH7EpRsJ+hYkk$QH4Rp#>P=nqr_Yq)E3%dZa`6tEpBGoCQ#7x_imkBl$MC z)P#5KV;+t@3bHzMr|JM!o&iIi&oQ!ycH@OJeIPA>a6+Zitf6e>5^z!f5ATfh0aWN& zm$A+ZreXL=MIsa3V1Y3;Cmjtf8b0?-kzuo_KK$VK#01rSm6%nO@%8LRI4W&>Hs(!r z?JHI=w)xzmY_1l0x%t8Xhe+XCeepRuBO-jL0! zvI4CUTr=T^K~j;xf|ko?&96YlK!4)Q3%r<`y1Ksyx^As7v8BA+cLzbGXM8c5QjP+Y zNZL@1rL(+EeTt^?NeW)5?qi~-2_b8m-)C2*e!EL!=<*_}#SnjxL_PzF;L3He#*@L7T zy^?DsnB6=eL+=s7t! z2xSh3`5Lodvo=AwWXjDqWDMTDG!?qxgM%8qLy34GH3KD<sb12B#_t0z@chD z+pN6dr^^x8I(y@`?^-E8AD><3_0Pd?Z(%n?wcLO0;VRT@e@aZt${a5LX+3Px5TlxpME^D z@C7r_wiZJ$`3aW_pWfz)2FCYqB!q+?!58)T@nd+*P?jiJ@HA;#WzWYo2Glaj`^n$=+|wovr2Gerw}wq3pn#D0+6$T? zJfe*3>>I$HSFaZJn9IGCd`1J?4aoV&eZo<>jD7d*_x}mm7(u#sL*;o&7=HGX1LS*7 z&&+Df%f~0aKdIg8tXr+LVA=cUPiST)1JsDUB-+(LoYCWiMiwGp(`rI*&Xs7)Lom1U z$;D_L(`9Q)^Or&SovmR_1FxX2XvTuq%{*tPlg>zbrCh{u_@u?M{I~=Aw%{4x0&h4+ zv(%SJYO3s?n)I0#pDgGxT;GOL@Z-SXAUH#Y$-kxLeZAFv$bAs_0W%lhJuxmBULc7C zmyB|VI8x(DSq-V-Rlm0T2{k0_Cj?e$2Nqc?D8M*!af;8*eO@9=b3}vMs z)4PlEj>B#0wI%Y(?;)i^O8HZJUc8hp#d}1jDf9p}fmxO6>9Y(y6dH~H^G0Gpb+z3} z-I{u7{r1!Lt6pcr?{egmG8dPLSXq5!-}UJ3jrTzd5n4i~Z)wQGHu`FPPM8N{_{l;T z^B6ui$K_OG>nmzhDxHfxdtr|w3Sv&Z(0d}|0!NSCdo~qQ`EI3dj0TYyxZz{p%aT2N z2I$nj;x|JZ5%&&nbG|= znPQ9bU4>u3^|F6^)sorCnE`P#A=RB>ZBq@_8N%#!+s5lm(@z!x4bu6m$X zQ*bofOCVQCCT+?>;uLrdJ_InYKx+slEC??aTsjloM5S_HEBqcVywIqu%uz0?&O!t@ zE!8e67mQh$6cq^^dMei&%-j1Dm{cu?)o4FUW2JTn!m2|qh@8umxDW6Jhm1o?@H8P2vwaS2}*gaBXW3K?dm@+fnB$zo^7ytDtDG-?z6K!5Kg5_&_ z-uwJ$e(>q=U?uy~es{hbju@71(=ld^R{LyBJ@JkN@ag^@f-*Tpgt6MLt<1x&?xNqW zI@Lv-P2}B2nm1sSkrb_WZ2?zimAn;wZW!||HVI8=BZuy1!-GE$z#r!{wLRjn=!eh( zAfViKE8D_ZK*hexkr&EZTc<{?yt_=iglQfY^VE}L|9_-P6IunJ1uMm8ic#5Xf_)^! z60}h;cf~uMN$XWzbh$LGeljzaUyFGTIJ49(=gd~@mGtD~(9%B8wBOdbl|N)NJ9uOsoE zRq*11)t_pjYgSU944vDi{_NwB-@Wd><=24qU+R#mYu?DD27|!yrWIx=PCVNStpLRb zfh2_>hpXxnL!EEBCoJTEt;^86Gv>9*HeUo~LFWLjR{`(n#!HD}pTnf!^`^IKr* zc-N+m;{6bDh1M7k<9Y*^wzl?l%wy9q)qWA>2&4&XH@OkKc8#?c`>%BDb{8CZemFVvO{TEeyjZz z8EI6qLm#{wFlHC;jWm!cZwhM3L|qac2$BrMh0G>3WtS$WUOa+TqYoup2)bL1zU}1= z>HM3@%6vp<(Kn>IPxK3-vK2lPKrFE+5j0Q6re-9sZE0{VpIcm%jEZGEsbHBbkJ6O}Z$H1AO(y2%5 zwaF433YZKk{;Ax*S6W@_f5jY2S+vtmb z*hc00%UrXWV==?mQ>7%C#B4DNl*tf>F>YB%y}qoY*c7IQzp8iA3P zUnqxdq8g?W;O#B@BR+jdGI!vnOnwT|2n>kuaB~trR5wQ9^GmaaM|S}Dfg$=jiZ_>( zs_Lz8oIdqdKCl(fXHr7oB<5)-TQ@!Gls@H*Pyc|qP}k|y`}j(G)fsR9514;SE|r#s zLDVQrBoM+b9otivkdNd!b`k^{i@agferJCSc{KPNEb!#O=@uPCKXWFGNf7D%il5`5cNXf6< zs>NW5vG_I7NkmRb9&b&fW=k|?)k6{NQ)~9GzW~r8RG0u7TDs0fWN)s<(hxdygyYzi z%nJSNy9Y%!0HGlm$f!NDnLe{@YBzAK>OM2=UO!9*J`nQ~ZSbWLP@0qPs56(2(2AyF zI4WlkSituu>=G0=(g}k9UwY>no27j+undxJ%dC#yw1iw8Dkn2bfA?V%e3u6V^z~A3L{Tn}o2E1Fy(BQ|73x+Dq zw%ub|#N%0?<8s$sL2}tokp;jEc=&si%c<9-nfIe==G=L23vUU22V*L+Dah_PzU|i= z5e;#L_n<|;1!gIMDFHPh(`2WEi%2Kn;2WRPry_ZB59e<$6No))?h+(qqE-cKMGt~= zS1a$L^(c5w4xCp#yvPAKu**+9IRnBNpXJ@!N@2mKSWwPZJFCTz4^|8N0D;am z6}FfWCN7$+(f565?2(8 zP{T$Cf|Z|G!<5%hK^eRxoIVE`Bex0SwM}`_`@5QigYS2$)0y`x{DqF7>EEAcP-o^S z*-2@A&AU#L??S8DowOn4b%}~J-a%P24$OiYOAL~G$b!14Zs#w1Zf=g_2dV|DSEMBpgCQLZsa)cL0=%*0op~zY(i| zacdH|+1IMZyQ;iqubP;_sQR=43-AFdDJkK74ygFPCfF7N)p5nj2t5%}>{YQy!?^@mKmGyBz+XlY#p8@;F zM(6~mZ}F1TFo;yGp=2M2R`)|BxIG>;M>3sV{kBe!1n(w8u zGJBbr5|)WXwh#xS0S8~ZCOXlkUN(jr(MpG;FERW~|1DbvkOQA{9`rdT(dyDrbExpe zh&=SeFnjZ*Z~3}x;Jf*&4JXe-_nsS`^ZYN1FMskLN$C>+SD_VEC8DXgfPuI_{~#R8 z1A`5erm&I;rR`4im$0S5=!hVs>C-OJPFCvE=FY~V>jL#^TyG-MxNcJd7fHGxT|>|X zm9{!}V^44C#z_7K2Pfc7JPZ@?e<349JG3wG6s=djH)<%=!z9{S7Ub`CduuzMRw|SX z2wN04k~V{8IYSbO4g5eacx&CprjpSMMQY>5)cq9fK=6nIM*`u8+x*ole~5WGo1GiB z@N;0wkV{#%FR7Mah{Atzu20))83RfGjC;`MT&5-fMIg9oG z#pl0J6U8;5fusS;NtX*p2n_mg3IvFWXJDxv#9WOr;fj}9*CHTb&05+AXCK7UmzG*< zIX5UOSfb&`Q(K0q3{ubi>;;jl`Jl{T<}i-=_Vw|@wM_h6n5!Lxyqrp4-0 z4!8y>vRUS?&gA9cc~WRW0MUw9c~Tb&4BEqAu=ol-j0%)x55JJEpF=S|;`eKv6|Xn7 z-p(I>;s3v|Ej)0IOy19fh~gq2&1#4k;M;vnT)Z@fw@x0!_m{muCa)>z=?m4Rv_z|g zFu4XS7~IwuhIH!p3M2V3r8rr3b|O<#IZ3k<@~Q4jr;~sl3&MgIO>Fw#)fo5atQNCz zvlPs);C(dZA$zazd6Ls4?(ix&?=oL9#r)(pTVVda5uqI;vrSb`2=Un?2Fu^putKUN*bs&w{_t9SpX9F)`s8A8;rd(Ne`YNSDN$7HaGcHC< zUyjtImxKT-t07msA?b1~04tbQ0iysx0z-~>f@ws7br<{J%q=Wv{eNM2h*BpcBy7dj zo!#BigHtm8lTm|6K=HtmtR>0r|J*1I9KF8e*fcC}eU?1i#9wU#AkH-kH)_KP^7Hdv zFL#l(^J+epqQVc~>1i7A~QbCEKL5K-k0Xm{`C^tyVO-F2|6BlB+W#~ z4fM?Tvk%X3uhv1Y>J?nOv~MJs#P{z$9|Qjy;FoIsD>Bze&8%+R`ex;diuB~1icb0h zwJSd=${z#fH)}{w5HFWj*^*(!(C9q_m;ERAPf+D~1IHL~>mZZ!v};ozt>&jO;T>eKQ#F)Oo$>09WkC zsH0_X>F%uG=B5RS7Yp(TlF`voDFd73hdMeGSzpMw4ju1y|8WKa5cxOypV}afYv6*P zL8WE=-9;w<4G0293axdj}?{RXDm7ajZ9G7 z`(C$5=TAVxFw_%d_aJG<-$ZU`37NkB{`Wk)Q`<;_Q}hW9a-9)8I^RP}5}Wkp#9a#< zQ*Ax11S>^TugT=h;pCxQzTjcerJ|a#7 zlIy^$5En@$?LE79tFqfam=C5(BROQZN9aHw+U%KEH`U0wt|n_-!QF=D8)Gp>#jjE{ z-3WEE#_P12(bJfFqpRPhO*PSx8XgdeD4Kfg2`RdWKC{ZHgZ?xin6C;;EwP>7c1U8yS#ZlrlD>Wj|gFyvt; z9oJ6nwv>dBG>oATE|olVf)LaI${9s*DTRo8fLu6cdd+SwAK4nq5yK>U?_51+k%; z>|)<5hIF1F`>Pxl-FrN9-~=`^JEYxM(35Au!6)~Lfc=0)u>|me5Q5K^DY4`;ZgoE}OfBsBg=b?2MGy3zAs=B#Y*&WSLTKa=+p}82 zSg)<=tupk&*T+1+bhxOUH^*Co7qU!7H*BMFpn|sgWbvKq4$`9tUM}c&B+eboLt37Z zY&TN16Fr$Tp!vGHEz|ZxDWey(2kE{24^M#SzyM>Cg-b^fbV_=ZS~4OZ@q~vZ1#-x(74$Q~B~ zvr=YDzJ6<1&z3}n$<57>#E9^UCW8C+CBQoVKM6_sITr7Sq^kcG1wC}IRM%pFuBR=V zvqQ84-F*f$238b1SAy&hYCz-Q#PJBv)%5x?O*aXI{7BNbF%SvhXdeof)A2H-hc>Md zeS5$DoAHDb4KALbxAMD3A2@-q_;e zpv>2;2?b|y7K zkX7Y`)Za34$0(LI>;?vA&T%Iik9S45Ne&>4#mY*3ipq@{C`_c}2j&kx)5qm@fB6TC zR{G zy&CevRd!+-ODZQb7##u5M#zhxq1=OJQ?blL0t+I|xp^8fF#|3b_OcPW;xP2pfaHDo zZ`e9R-!2i)SuYUH9*5`7Jtqf=;&np@%Z%l(mr=3|+RO`Lg_N5doB?jZc>y7{6Tiu7 z^iv~e1Lh5=y%5fmUg+T9!-5D`T2ku`12B*lcVx#Hwda}9R7pyJn{I_089dOt3ngZp z&Nsu8=Ku1Ft*lc`toHj=8G(hf24m4qUD@OWwgR$U0oQNCNPKYW*(G?S2)vW(^&h^E7qVsV5F*(#%E~bd*&}< z_XrtTm3asudu9KhqtEyI|NX9CS63Gu=Xk%?Gw%C-o>z2aGBI{gn4W=2PJ|LQnk1kEMV+<-qP=Lx%vM?>QoQgtT-3dsG(PeY@ zUwPjz;EK5`|8_gn#lS7_jBF+)R9qI2WR~zf;Y<3#LIY@TUE2#t@`Ip4Z+}KC$B|pR zz<_wzYovNAVC$uNE*YdH4h}A9WD{l)nsogF1L7#?()4h+m(R9n=DZc?T5rPVLp8CF3XD7JqT1BdD6 zVlv}w_MF4rS0G-<)ns??58JEPg#~Cj_ho=^`?XWQDGmq}l9D1IB6FZPSthDE`aL9$ z@_H}l<)PaJ3k(W$X#AdX*NONsFXG+EOrTot(huLwD2ha6F=h`xz-J|0GSs5gpa|1c z-Zj+XBdX26D_b1;Fo$&a(o3Blu)~t{J1b*ce?P1-Lu1znkRz1Bsg^2!RPMruY8g;Q zc<)AR9uU=F*Kz)OOQ@2?zv>=^l5E=Ev@`Qvt0~EG)7dWHzPCc8MYWPaCBOmlF|Nvg z@`{KuNXZ;`PNSS3Y}kXP1-dn=n#Nr&K=nZTA^@mSk{C!6jVg+}DMQKrx7u}&A3(D? zsBhUdzRM8n?^tt=_EE_r89NP}oB6+ZjZIHqf9n9?S4}2N{Q^iIc|j%+#^1oK#tZ#s zz3ZS=$eIM7UY}!1d}X`pCnqU3o0VVQUoZ8bi}mdPvY&0qTGlkeX^vT<|E+1lp+wnbrS za~J3oLJq)x)CDj75!(tVL^2Xta0>|lac+;uA4uy!o}JT?DtH|eaUUH>OyKz)@UIWi zUuV|;MalWJ70Q4iRHh$3#+A)W;KR293^U~k6Lhw46X+nS`3aI?o&q1n&7E%xy(K_; z*MD9h_x`+N-e(=jRde$ik|YY+7p41?DrTyE7Ud1mxTDNA)Xh-Co@hBg(S{|Bdlu1H zc8l~v<&Z476ypzdGrONUB6?3LHv!~C<#)@|OyE^6@Y&c>MouG z*n!GdiC-SyBF&{y33^SgOGuR8?90JVJ^T&p!y8keCe~c*e%o@yl}@a|>JJ?)avC<` zpCA2|F84XYG4fql_&~3LVrCr6&5|UM^4aQA+=KsAQQ=oBCOOhjz`?l(OE`7e|L6o6T_|3kYYv!O;oP#N$hRB>ED1D-8+>5aYU z53@>cMyWu^$9{SHO)eV&b;?%&eq+)Kr8L5fyH&V;9ih%b&+@pFZLW-zt zzNT!c%)hTwpsB3`W!mIk1X0l6-w8tl&?Aj;&Z;-2s<1_I%?w0(pnjExK1N=%Y%-{j z=W-0)Z6^paoaBo34S(OaLcx86DbpK{P>%3PUcR=j{_Tti3g$%N9+;`94Eo;#YPdHT z!R@Y~9{x_3VMG#ZR+@k+n>FF@nDV-S0fx^CwDUdi_FYnpDYq|`ik>>Y0>Jb^w$sSG z)XPcZt!7O#WP^E8cQ5l$*!_p!(i?X=vOH z$t?eEGl#GeQvnh-e{@@}$ki>Sx!IqmXs%;+R?8(t?8SN!Y4vYfpU3RI0RN(z8p9*< z+ks2z#J?cF%wJbl-Uc@VqMK>FeFc+=0!Z(xCsPP0a{*HXd8|D#k2br!Scz^hv(}IO z-`2w)xBAy_diiw(I%G-TP}jPK!K@P%@`kwWKb=9escboSpM_G=ZIF?jZHWR}1zNT) z>*`NXi6&R1j*?fs-s~O)*;57}mDADYe1}GVChG9uOyp{k%;2F2lnZx2H4J%%e|}!ODFO7vfNqYkrfsD|eWqisadl+-K>#6?ChMmMMoJXt^A8GKgnl6} z6trz~xmL{l$w_dtBFzduy{Ca_DU+=~lYI)%eG)Q2M1DEl0ieKPb5=@hr%%9r@ttLf z0}=t7M(seSKAgSrR}j>2ztkkBuA7R6ua?ek@l(r^5`drvMd?b>-x^Z~9YkwuFdn+? z>TF9Os<9R@C}QJp!@0m)W~K>bN&!H1`vyL^y9Td=u}@bbZFP9EvgX0Dx1meBtF?Tfct~8j3_RQXuQXwr3!V}w z8<8P9mtrr3a%^nabO)fdVFm~jTDgII`u>#h);%j11;}cldE9QrJt`ScFsIAQ@H6Q^ z^}6|fgUR@t|C2RGvhfglM*S06!_YxKmF^!`6q^r}sSd9NGl~o7yv61&8jZ}M)oGRc z2!eT-bt|PtN@!7r4JFfYanjyAK--#9U7S1&dI6O31z}!8RY9@w*H~SW@;X zI`HTf6?Up*vh7O1*3SN;{IB~DECo*4g`yPZOApz@$j1Cke|-;q^<(m)>j6rvNbMFt z`a<;sJNSyYFU^}_!psrn0JC0j)l>#;28`gr3;om_sc#KRSH7`mYhM zD<;I|dWB>5W_?4W?T22{9p2j72@W*s@8ybcvl)RM2c1Rr6!*hel-NY!*NTd8Q95jH zsQGRG<+b%q(e|{n!&Q{}CSYV3^#AyA;=$=@s98t#8b~@v+-ghzFw)~C@8Av<7>omr zI<<0n?-eqrng>}Y^>jlUehRm+6n4pSewewN(<7{>6s?#T*-_9>4LQjIsFw3;0 zuNEY^?=wL%$T8rk{#dXX(#hT}l%52-T!2CWj5nCo|Aga(SDf$jMN$ahTaa!nz5Qwd z41bH`dl_tzFX=s6ZO3$?Jt+`a~va>v_raUcp)ip_^8 zyF~Xi)8hXv{O2VefvI{yuD*s3?JdGFqVJC}XGS8|pRx(VkL`1RIZ z2>D}By%GDCP)Scq+kZ7RhfX1hA~l5) z$=X1l4p4DeFLcDYM= z#xxUh;#RwZn^x^BO}r$4nZ`fpm}pF8D-L-K-9dPjUHo$UL5NiH%O?K z!!SDgQRF2s@cZXgZaG8B@wPL~hnwCkhf4RoCA#(2?%1!~A!w90svNj;^g&PIeXjCP z{AbGwZMxK1*D$2muLn3_@|4 z>~!KA`SefbryGhn> zR#u68uhML?Ri@h$2b0JtZgN1 zF1ogwpS`0~Ehd8CwoJa4m{N&2n8>6h3TwXR(1=aQn7`KkWJ_sW_`MP^&3ux6_kTlK zV+twj56?)b+RInRxf~kUtwy%j? zy9z-OT-4RiQTY_zqcI`R+H>IN&h$?lfBT+FxH)4mL;BA6r2NlT{;CrHik-lgr>&co zvP9YH*1BnwNzo|`N!gVGZM8$Jfi=&))k+j>GL&5!zbHsiEU_& z?JD{7owqO)nRM*bb7|FJ%01PotYfczcOFeZhzi#0wq9;#(nQ)5FmkX+ji{fvsrIahnS?`G8X$)&`muc_nI_44@Uil_2 z;8XrS{W%XJd(ry*&$F7J1dA3KE<&`A=0OBW0OA1%O(d;W>W zzSNk~thQ4TLs=0J{;BHe(d;wo$ zVS-I!Bn#8feS6OzQuR*DD@6XvymOOM!<*IPT{36GXH@MKDYWY?#-JZ zxa!0FgF*k{@d&M65l!D8Q&!_mU3GP|5L4J5JSJlWZd+%^&b*#3#6bu~P6|Aq92~|E zwEw2R59xqf0g8w#+WDix3vcbC#A!DKowD`l)FTFTyScgvb!(BMrP=KI1Vn}0bh+$L zWLA%*e|EK^S$(Uxe1!lyzrKF`nuwATE>lH|RUoTqVXx3!6aA}Kc6rgq8VPq`<~1vDYpxvfofDYFrHJA_faX60{?NF7m^c%(3jGSi@K35-F43TLROw_lcz`SsyO-ye=_n;NTf_l%s z@A20Q-TO3aJOl0F?%2v;h%yN3abaG)_IsSaV&_0FL!GJZ`)RMhHZI<)9<{gS=Dk`) z(Gs}vpXK{VIM~<`A&e!XPSv02_!)zC@eOhLdU|>`SMrO^n*A>a5q;ySKU&G3+K$l) zF}#9MQ~(%{KMJ*A_n$^Ci{XtC|#nK zo4Yt}@+3Y#s=3u0`QgJ2IK&vhDt;K~HQ@(zP8HcC(X-&>u~LWe$mVemKeGhmWl#%A zhu}-0wqeb%qlfN8BfGvP^x%%HjECdfl?KWR3bXhQ>Z5sYF`znT?M>UlX+7l3K5lSO zLa{m8**G`?*|@JxXc$Kyrh~1mow(i6OVrWvyf+d*=_@8&0rcoIXXX*!ir~N{F)r!x zXM6m(;o<4CY}miY)hpWGpGPAj4Bq`T$Fw(s(Wo@wNB!LJp^n7Frx&AY3n6GrmkJb- zJCJFq49b(FBHFzDL_I97fL8kQ3LpX*HqG({3E|z^l zLwlii=M`92FyRIU*Or`U;8oZv6A9G|6u+eNcls9RaE%bi)B1KZK5`^W&?|b@0wM@} zILER}&gOmd{}g{e@kG1bD2L71FtIpJTB5wKGd5G(QTxU&N&OEL>s08$rRBAnei_W8 zWgM@k)OZ4msnV4e-@O)3HWfLDE2J`s&8FgzsL1#TUEM2L4H~`aIV22+3ejs$G7*od z2o$vP(eyss2-387bi6R7f`6roRGZ&C+2?%+H)dE--=Bjz6Tg;zVjiT~Skr7@9PGbhSH4x_?|gGC{nyRmm`oi>uQ`Z#qh~p+ z@RS%5`%LS2I^%7p70wfS`+&H$JUb7O{g`X9rlXPC&P_a_SU0+gRi)MM>A94TG@bAF z>c$By=bGRv3d5`DMY}Y8tZ;Z>T#V4DwXf`jp_&>oIr<+n=&*RMHn;}Fbd!$}B-&w^GXKLU4Jh28A z7ff0*da&x>!kU4Y_0I&#wFy<(D;&l3t#z)cYc^|Ly%KV^`lM&#wjXEK1g1}ge@-x% z{0Z8clK9KPNgtJLX}d1kWV~_jQ)VX9;`vP#v*OIm03m-(Yavxzp{bwz6=lH@6m!Tn z3MDTuPlcF+eixHd!y&899**M8N`ujrOo#<!Y0Ya|-D$+)l6OV66dM*WohgZTsx+&7<)ST*1YA^xT)NElS$)qW8bJ#C!*I8t3RZx8=UO= zuq1DI7X=7AdUZUVG~!D-aNM({NVjleos=wSjk=Q%W;C!-dGdJjmOid!D!yA!LZ(gq z-NmjCk}K9t47A3pj~GJ|zgq0L2q+}TmbbT$pI(=yjAvo>=F$=%z^wl}7a^se_xahu zg7=Xi3rXPD|(F&mmyDRHP32gEP{sVq2bby=Q?k) z2Y>msnZP5h9S8Gus>zung1noSvn|Vk?hct~1Zh0&Q+sLYxvkM5JQNv+2LL0NGH`Vr zG;49n?_qGg_d6dwpef2Eo1EDvfKM_GQ#Wbt4bMR_g`11Wj&%Q8t6sQx zZPHyo&*`e&n_S+d$5>CD5np7)e2%c=K0d^$E_VMzb@F)T4{hYy&jwOBz}m&9eQx@0 zsyVigW)4bB+pNTWBq6rqefphuY_LdFbd%GdoM?13{!_zx>$-STM$L~X24Q;{(=96{ zzpn88eXO_V$beUsPx`-v1ekx({n#>VThl|Koi|*rnm0<^kcc0688@CkvzF4@lMXyN z1X-gE*MnXev8^!5twkD$6^KQ6={GhTpAntnKVRjjBOr~b8` z&ybtnnrM~?79$i153|7!W63=KfG!XeCzN08JFPN)Eo}c z!!`N&euCw%(O&y{|N^80K&*z(WDJ&U6W1ts2vXbeg?oI41^im1WVd z`qH?)CQ@(VNneuj(Ii$Vq(2`G z8onKf>ouC)v9U31?E2w19gw$TdwHgeNs({WP33FZQ%(s9iQk|30)LS0d+{wj_F6HL z`OZK3w_vcyfIFv_5{!(Zta!V_;+I)=nisW)ELJDanBVvKtyFU4_KQ(ZN)~-2V#d@P zpbHU@{ISzCz#w~?=V7H=MRnkNhWj4bKy6);8`W{f!`^h4yRYwqtY_$ zd~uRJ{6eUNH1Mq^%c!|R{Q`S4Hyh+mR|p-PhcpM4PB`09b_`5XhV=$TdFr9~Y>jvE z_@geOELc4xr#tgvSB2!t{U(M6#tTDD6wv{Onz-Wenl2CX$Yly+MXkUuVb#^uknhxl z(?rvow=^6R=$5<3&a4ejr}p2iX8%l*ykeI60kBCRw?J@GXjCgem|!p>jXw~t zG;nWN>uo@2f7z5U_APhx!lkRjPOqs@CZxiCsab22^{m>B6lTla z!`e7(B=S$b6{hb$d0Z{*8&bC_xn+fEwiIEgq`VzWx&#XRQq%^xWxsLZl;b0kzb;GUpO?ED>;Ct8o4Kl*2S@I3u;WjV| z{5Fxc@5cYB9$&ndIsNKO-KkJoaVN~^-n41m^RM`9ymitnk^* zxkvK63oD%PYeD%)O`Zd%%IFtThUVwR*xAG1MN!#CfB?4Q#A`@HM6 zL4zkT_qdjK`7dUrGG6QbpAJZ598fivp zT$yy+SSoh6RM-?3)_jh46S+uY+ZV(9vSFIW%pEQ?_cx_NAx(RL-rb6BiAYLp#6#@7= zUYe-gDb!#B5RtwsYF}9{LI1gZzSUDL((>lG&`UobC5Dz8O5mi^9sF6jno8MP(^x&-xX1ABlDpMuHD>hLiZq*dU{*GPg4JzGjI$*U2q3`B{-TRUB}Hka&FH&vp+wkQ%b$f zGF!?LH-k{@J@vmT0TFTZky2#q+)y_c=d5+j3eEu_O;kfpw=35=Z{7gg!=9;#&3K9* zOm+H3xE;)T^4?iU1)dN3RzIWM*I!Dr%gkav--Griv7FI3V2VlnWW*dl zs|lA&KmCXoGxglz5!u->?;Ug%2BBkemS>YSmsRL*d+IfP{_SqCetJTlDq+3j*O%iw zduB?WT0Yq^Uni_8#45CyCW@nCe3h^M>1|p-C?0?L{0X1;gSz$LSa`<6q>VfX{F3`Q zbSu5z&8*F{K5UM=Nw_ukMlyn)+qm@FSFVEqS2H%wv$AaViR10DOE349?t4l!(hz%d z=_Eqd-mAkMbRzzDv95S%&_Un>wcHTV(|6=;ynq6-OXYGt0{f$s!3epN2ASEeMvM(N zQtj_esIZ?ttkha>+b-vpxh^@FraD)e*x$y(@{b8j48niPDU5?|MBg zm&R{At*f!>fqu-!N8&k$v#w%3Ba!cORh=p#x3ZSQWjMb(&JDsMY&V{ht`<$&-wpXi?G$~b4(;nKs_VPgb7PiWg^ z;3{JkFaR;#zYcx`#o5)xf6ya$@^=ltLimHuCAsM_@jM7ebh>@ z^JIs)A#}(Jzi!WA`9yuvz8<}|n(y*~PwBd|=C}yDUE1Ds!7B@D*$BSgzB{y_d^7ny zm;o55>3JoUGAnpoV0uKxYc=pzGG#86OCSkTHv*pY%m;U2lgZ z$qVxr$4n@gi-dWvt-t+y{wz?gDmRM3l`1$RHGF359TQ~{M%;6zmH2z}!yY|-GFzyC zB=s|$YgSFm0r^%zGnJX-W|KyDDDR2d^_8}R+dwYcLuv(@252p!$^L{3(JhxVeyEq{ zB+mM#HFzKbEG)F@pg&I)A_X`A6;(n2X*x6~E0wnTEVrj}dIrLBh<}>HgF287_aOY? zMt)oQ_DH{o;!(I`RuQJLPXpXRWVp4AYtW=dUgkf@QFWaGH@bvJxp=3-U^JM<=zv@6!Yh}!g@@W!09Ah;Kyr1Yz&f*>9;bhMdg<~Jj|vU``dc6cN^#M*hE zSTbrA&YckOzEcJcV*Xjp%BgZJOD~W(7l_HLOQ=&nP1N=-EmCrQN~W#0<05fPm`81M z12J*l_HGrq<0xAQj;E?p0B}pKtV(xW!faaGfw7-F29NS`zxF|OxOyg~Sx~88e}M4j zpa;c0QHakiri@BjQ>PCW`{vglqLt6bcnLfDXq)y)I+HY>(VJCI`Hl60;{r!q5EuoK z9&E<`ggm-p-kdzGfrb)GUWoVFqH1ZNK})}|K%gQ7&GzG0z+Tzz+)o6`3Br$QZizdG zHJ6uuC9XE!13WL9PBOr-&Mh+o$qKy~zCXJnRs#`L@=Sa*Ff>pQPn`Cu*+^7AKNvzJ zRH}>+K^^@=M5Gusjo(Dr*p581FAiDx>~^YHHI|OrgL`4f!nI~0)eVthf8qA-xC~c0 z?$om(+=H0>EDE!rGQa5q-12$A93E9sZaKX^c?^es9$6s(J3jo-@?onyV`tj6t5{Sa zTjb{>Ruw>u^);91a+*+ul+B~*zsk_ek4+I}w?HqND>dId4cS12ozW>1e8@tQv97HO z%_tRx^!)Z4Ot+H=02VJ;N_>$2g4M9s)97L9?JKCjL;p|GmhZCI41ShwcRw8<5>c8J z>{kA<9}ir%O{p+}(?VnrQNK$KNO1~A1Ed(gZE%|tfz4RY*8V%^ZV1)$9Yrz42dp16 z4mTefe;>TlUR||ki?ZEG5g*g-kT)1$q^Aj?B0B-0RQ>gq=;!+slkR>`H4%{x`vYLz z3bO^oHtb!ASNAi=QXVfHHxJ7@koTIO)x>S8h7kjLil&`U4u74O`ekKhuT0tr1Ig63 za(8x3GxPpCNZlHm!EU=A)voIAWLr+RO8oQzmCUe=PMXh z(Tlfy$kvXX0<9A6B-PPlQpRhe*YJ~jO0xp7VRrjEt+1na^D_WLp$>weT0s;3IE;l2 ze#mjGG>D21$Yg>j^A(529m`u=p;V7R9lv3kEqAX(AxKo(yPjM_L|(5%20Qrs3o{U-o_F{L~;wBF&Cnrser0WpL}r5Plm0ntT;K*j+Z7{sf>U1{W#*}G5gkONlPOu zMoeS3*AQGbc5Me!X_>2EE(b3fc;WR?6WhB0nnLVcZcIx12K)+b(qT{P7Cn^jXBSb( z>^VNg$yu;*>w#?zuQ^TOalgYv_wfT~C38XZBkwWFxwEsgLj%5M03%E|HCF`J%7~;W z<2#6NDPoFSYPG3=WTpR!jx}|y-8uI!6e%M|IAbGu?&^InKO zN52v4imYs7Larg)C7&(qem4eqMBH=KlMToL`>z{{hHBUUW<3JJwxh1OR6bqed7Y% zLG--Wt337Aw@(0m@N->f1O7VM&;#)V(pR{w&6EoF6rNd(lFSUw5*99BW*4|73^U4` zmo5>U+?SEkJ;EZ_C5Lq7id#tychZ6-Y6|u&x&pL>Jz$D5dc3?8V`@<8Nob}*~ z&=QzIik*2t%sy;nqPSw1S7Jl%L_C;UuuC-0#<3JZz0-gn`~dilIBHCE%ZYBF_cscsR%2LmYUhydYzvV8ltm;d|FcAZW00|ul;Q^}tV&-16kmrrm@@mK9 z;X79BRr6z?{k-gWXkLWITRI-c{czWG#zDc83*Fq+!o?k5Wi_^bACbe>4IUF{$^y(& z1aBIf>hYxBZFJ$q=%_=JP$Cka(lhZ4qWMDyk!v6{N!{CK)kws8sAqWhjSV>f0DX6U z5F5T+WM8xvOv+`svFr*tnVf)E?0_Z!;_nm|lb@wT^aOvr?bVwmH^ zZM=g&#+eI$={2LqXH6F#Rm;VoXoXBTT-7!0;V4|ts~?^cIbGg)aDd+BJJR31=cV*j zlliB;4svY!9UsF}Vnim-Skp~1GcjY>2tf0~zJFdqv8^?`E6Aq#02aCX%K(Aby`0gl zDoyAY8Fg67bgE))eG8JQC8ZmM+$Rb7;6(v%Mz#R7LtAL9SOe8B?!Kf=F1ao?Ap$R-6taa6g? z?oRp@s}i|>z`@pj{XVi5dqjylgT*5e4O*%up)#UaSy2;!M8k^h)o}AEUXTnLVa1=wl z3j`n_)w2AWsJhI*3lR-?`11O2;A54<4~VkP%G76OMp>5KXTK8y`iR~ym+A^%5BRyu?gG^SH{fG=LSeAOvDI40t)&NzJZMxygc zJyWh*RC$Wud=9GM_vLN9_m`6ITAqojyN!u|m&VN=VYnRRFLm`Rtk%ZA)hacwngB%( zbh~4=`SP>WNUjSJb{HI-{QUB#Z1&~*0Tl*XpWgWXKVbQA#;wo=pK_JVtUYzq z1_e>eGoPQb7h`Yn%=oQ80kr6&e=%Da~4QVW55Myq5ye?c>zc5r8azUv*= zjM;D!&vWZ0;f6z!=t9Gunse{tR@XH1(GyYel2$jeVVD&lzDJcgmLdlI4`7qeZW9wd=|CBKq9sFP~LPZ!K(G{8EeT z*^_=Q-(pAiAIIN~?-ts2y*B~IKKU{x%t|1H0#VRQ{m;O*c>(vBTQja4a%Tjii36VNw6S3vb-t}%2tTHK%P_ISe_M`o zw;X;ZPc@G#-mH(gTI^^cd+Q-rx$ClS+$_YgcOY?ylw+1*Qj^)^hmJ&%a^`(Agp4g9 z;_Xk!XZ+g8O9Mv1M35#Iosbcz)|ZG#yH?@Z>BQUkT9z^MzkfY#YWbZ@IMWimXRFG$ zZ4aZT43*1QOKoMi>OxPI2-D;G)ht<05W3@J#g#d3b@BM1|INe8LH+RMiMr3ucrb6S zieYN0Of84@5*=_)9vc1XUw4Xq%M+CtiH{evkuQmWiIHc0Jhzf+tXs7t{?U74jmqrW zExx(!N`kWul|BA`@7hZXw+!+4{zePoL?a?oyZ%RaT(bIvN-32n2-D?*FnHJ0LGHe6 z&5xWY!30%E2DLmYS{B0PtHqh|KW?8SG5EVKpviU?z0zx0YTT7B)*+yux$SVL-=`Fx za;$hu{0z0mjz)-u7DI{Y{FM}}POP$-_KH(c$4{!%C6dz<>|}nSJAW^0cArW|`dGI) zc&uVhpDs;MRvt$yb?=HNJ~LVS`+G)2!rY~KHQDgkF-GzuR%EehQ*?{O8ixpod8v80^W(vf>;z#LAH%&}IRo@{pZ9+0M=Kr%h2Nv|$tTo2sweH2n_)5?Qbm3rB$p&eM0(@s zxc+eb{+eR*J84FHqPWl+eNm{^hFL^G@B-(2WUd2JKod# zDG^$*n8PWYk*I#iAbZ%ID1tg|urN2Lll<{!d?-qcf>0P(HFZakd?MtUB%~*ybvRU=#49m34Fs+5V;u$@jwUmmhieKbJ694 zmp|qmtrg#GY+MYh=gyzuleQhV59sS;IQ>3nd=Kk|TQ(}q$IuLZZVTDc;ip+%VL9BF z{K?q)LyKW-MbTI;=|{y&ljy`eceRJ$F$$PaSx^){^qKG+x7gm>XE1d#qKjT zbZM_Hy_7*9uYpOB;3y!zt&kXe_KTP=>&y@f z_G+H0@s);SBl7A{W$eXPuB?D}3TJ)4Umc0ol1i(`TzZTfg_JxTvKC(u)`N#2aSh{R zB1Uag@?7LW?g(8mreI2xmdyzN&`|g8I zIx64!@3jWB|KnZDR~5{sfJ`1RjUwtj4Eq}S5YDnz%jwG|#88EN+p z{ofZ6-!*k~vMMWGzxrQB$Hf1XmuJ)9bL`sZ27%^(KlC9hN!Z@g!qojdKR^F?1AfEU z%8Je4H;9-1`xWhaK0e}k`T1&ETBCY8ItMf8ch7b7_3J*Op62sslK+2brRwk_EBc7- cKTYR^#jgX^KP*T&U4lRNWgp5EAxr}PKMJHT)&Kwi From 6b0842760b4ac0a4be6d9a60f12cc9bdbfea8613 Mon Sep 17 00:00:00 2001 From: Xyverz Date: Fri, 7 Apr 2017 19:23:27 -0700 Subject: [PATCH 086/190] Corrected a missed typo in the readme. --- keyboards/atreus/keymaps/xyverz/readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/keyboards/atreus/keymaps/xyverz/readme.md b/keyboards/atreus/keymaps/xyverz/readme.md index 5187e5d3e23..98df9d77dd3 100644 --- a/keyboards/atreus/keymaps/xyverz/readme.md +++ b/keyboards/atreus/keymaps/xyverz/readme.md @@ -46,7 +46,7 @@ I've enabled persistent keymaps for Qwerty, Dvorak and Colemak layers, similar t |------+------+------+------+------|------.,------|------+------+------+------+------| |Shft Z| X | C | V | B | CTRL ||Alt / | K | M | , | . |Shft /| |------+------+------+------+------| ||Enter |------+------+------+------+------| - | Esc | Tab | GUI | LOWER| BkSp |------'`------| Spc | RAISE| - | ' | RGUI | + | Esc | Tab | GUI | LOWER| BkSp |------'`------| Spc | RAISE| - | ' | \ | `----------------------------------' `----------------------------------' ### layer 3 : LOWER layer From 9237b95ebe9bbcab92ecc9138135d4d8f6d0a23f Mon Sep 17 00:00:00 2001 From: Xyverz Date: Fri, 7 Apr 2017 19:42:05 -0700 Subject: [PATCH 087/190] More missed keycodes; added PSCR, SLCK, and PAUS to ADJUST layer. --- keyboards/atreus/keymaps/xyverz/keymap.c | 4 ++-- keyboards/atreus/keymaps/xyverz/readme.md | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/keyboards/atreus/keymaps/xyverz/keymap.c b/keyboards/atreus/keymaps/xyverz/keymap.c index 3c61d66d017..560a9d301b8 100644 --- a/keyboards/atreus/keymaps/xyverz/keymap.c +++ b/keyboards/atreus/keymaps/xyverz/keymap.c @@ -128,7 +128,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ,----------------------------------. ,----------------------------------. | F1 | F2 | F3 | F4 | F5 | | F6 | F7 | F8 | F9 | F10 | |------+------+------+------+------| |------+------+------+------+------| - | F11 | | | | | | | | | | F12 | + | F11 | | | | | | | PrSc | ScLk | Paus | F12 | |------+------+------+------+------|------.,------|------+------+------+------+------| | |QWERTY|COLEMK|DVORAK| | || | | | | | | |------+------+------+------+------| || |------+------+------+------+------| @@ -136,7 +136,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { `----------------------------------' `----------------------------------'*/ [_ADJUST] = { {KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, XXXXXXX, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10 }, - {KC_F11, _______, _______, _______, _______, XXXXXXX, _______, _______, _______, _______, KC_F12 }, + {KC_F11, _______, _______, _______, _______, XXXXXXX, _______, KC_PSCR, KC_SLCK, KC_PAUS, KC_F12 }, {_______, QWERTY, COLEMAK, DVORAK, _______, _______, _______, _______, _______, _______, _______}, {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET } } diff --git a/keyboards/atreus/keymaps/xyverz/readme.md b/keyboards/atreus/keymaps/xyverz/readme.md index 98df9d77dd3..e7e217804e6 100644 --- a/keyboards/atreus/keymaps/xyverz/readme.md +++ b/keyboards/atreus/keymaps/xyverz/readme.md @@ -79,7 +79,7 @@ I've enabled persistent keymaps for Qwerty, Dvorak and Colemak layers, similar t ,----------------------------------. ,----------------------------------. | F1 | F2 | F3 | F4 | F5 | | F6 | F7 | F8 | F9 | F10 | |------+------+------+------+------| |------+------+------+------+------| - | F11 | | | | | | | | | | F12 | + | F11 | | | | | | | PScr | SLck | Paus | F12 | |------+------+------+------+------|------.,------|------+------+------+------+------| | |QWERTY|COLEMK|DVORAK| | || | | | | | | |------+------+------+------+------| || |------+------+------+------+------| From a11053bda8f6263cf85c6127975cf3364f25083c Mon Sep 17 00:00:00 2001 From: Xyverz Date: Sat, 8 Apr 2017 22:53:46 -0700 Subject: [PATCH 088/190] Cleaned up the keymap: Added MOD_TAP aliases for keymap.c readability. Updated README to document said changes. Added additional Dvorak layer to make using the CMD key easier on Macs. --- keyboards/atreus/keymaps/xyverz/keymap.c | 41 +++++++++++++++++++---- keyboards/atreus/keymaps/xyverz/readme.md | 27 ++++++++++++--- 2 files changed, 57 insertions(+), 11 deletions(-) diff --git a/keyboards/atreus/keymaps/xyverz/keymap.c b/keyboards/atreus/keymaps/xyverz/keymap.c index 560a9d301b8..ed943eb6697 100644 --- a/keyboards/atreus/keymaps/xyverz/keymap.c +++ b/keyboards/atreus/keymaps/xyverz/keymap.c @@ -15,14 +15,16 @@ extern keymap_config_t keymap_config; #define _DVORAK 0 #define _QWERTY 1 #define _COLEMAK 2 -#define _LOWER 3 -#define _RAISE 4 +#define _DVORMAC 3 +#define _LOWER 4 +#define _RAISE 5 #define _ADJUST 16 enum planck_keycodes { DVORAK = SAFE_RANGE, QWERTY, COLEMAK, + DVORMAC, LOWER, RAISE, BACKLIT @@ -33,6 +35,8 @@ enum planck_keycodes { #define SFTSLSH SFT_T(KC_SLSH) #define SFTZED SFT_T(KC_Z) #define ALTENT ALT_T(KC_ENT) +#define ESCTRL CTL_T(KC_ESC) +#define TABALT ALT_T(KC_TAB) // Fillers to make layering more clear #define _______ KC_TRNS @@ -53,7 +57,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { {KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, XXXXXXX, KC_F, KC_G, KC_C, KC_R, KC_L }, {KC_A, KC_O, KC_E, KC_U, KC_I, XXXXXXX, KC_D, KC_H, KC_T, KC_N, KC_S }, {SFTSCLN, KC_Q, KC_J, KC_K, KC_X, KC_LCTL, KC_B, KC_M, KC_W, KC_V, SFTZED }, - {KC_ESC, KC_TAB, KC_LGUI, LOWER, KC_BSPC, ALTENT, KC_SPC, RAISE, KC_MINS, KC_SLSH, KC_BSLS} + {ESCTRL, TABALT, KC_LGUI, LOWER, KC_BSPC, ALTENT, KC_SPC, RAISE, KC_MINS, KC_SLSH, KC_BSLS} }, /* QWERTY Layer @@ -70,7 +74,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { {KC_Q, KC_W, KC_E, KC_R, KC_T, XXXXXXX, KC_Y, KC_U, KC_I, KC_O, KC_P }, {KC_A, KC_S, KC_D, KC_F, KC_G, XXXXXXX, KC_H, KC_J, KC_K, KC_L, KC_SCLN}, {SFTZED, KC_X, KC_C, KC_V, KC_B, KC_LCTL, KC_N, KC_M, KC_COMM, KC_DOT, SFTSLSH}, - {KC_ESC, KC_TAB, KC_LGUI, LOWER, KC_BSPC, ALTENT, KC_SPC, RAISE, KC_MINS, KC_QUOT, KC_BSLS} + {ESCTRL, TABALT, KC_LGUI, LOWER, KC_BSPC, ALTENT, KC_SPC, RAISE, KC_MINS, KC_QUOT, KC_BSLS} }, /* Colemak Layer @@ -87,7 +91,24 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { {KC_Q, KC_W, KC_F, KC_P, KC_G, XXXXXXX, KC_J, KC_L, KC_U, KC_Y, KC_SCLN}, {KC_A, KC_R, KC_S, KC_T, KC_D, XXXXXXX, KC_H, KC_N, KC_E, KC_I, KC_O }, {SFTZED, KC_X, KC_C, KC_V, KC_B, KC_LCTL, KC_K, KC_M, KC_COMM, KC_DOT, SFTSLSH}, - {KC_ESC, KC_TAB, KC_LGUI, LOWER, KC_BSPC, ALTENT, KC_SPC, RAISE, KC_MINS, KC_QUOT, KC_BSLS} + {ESCTRL, TABALT, KC_LGUI, LOWER, KC_BSPC, ALTENT, KC_SPC, RAISE, KC_MINS, KC_QUOT, KC_BSLS} + }, + +/* Dvorak Layer with Command key on left thumb instead of Control + ,----------------------------------. ,----------------------------------. + | ' | , | . | P | Y | | F | G | C | R | L | + |------+------+------+------+------| |------+------+------+------+------| + | A | O | E | U | I | | D | H | T | N | S | + |------+------+------+------+------|------.,------|------+------+------+------+------| + |SFT/ ;| Q | J | K | X | CMD ||Alt / | B | M | W | V |SFT/ Z| + |------+------+------+------+------| ||Enter |------+------+------+------+------| + | Esc | Tab | GUI | LOWER| BkSp |------'`------| Spc | RAISE| - | / | \ | + `----------------------------------' `----------------------------------' */ + [_DVORMAC] = { + {KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, XXXXXXX, KC_F, KC_G, KC_C, KC_R, KC_L }, + {KC_A, KC_O, KC_E, KC_U, KC_I, XXXXXXX, KC_D, KC_H, KC_T, KC_N, KC_S }, + {SFTSCLN, KC_Q, KC_J, KC_K, KC_X, KC_LGUI, KC_B, KC_M, KC_W, KC_V, SFTZED }, + {ESCTRL, TABALT, KC_LGUI, LOWER, KC_BSPC, ALTENT, KC_SPC, RAISE, KC_MINS, KC_SLSH, KC_BSLS} }, /* LOWER Layer @@ -130,14 +151,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { |------+------+------+------+------| |------+------+------+------+------| | F11 | | | | | | | PrSc | ScLk | Paus | F12 | |------+------+------+------+------|------.,------|------+------+------+------+------| - | |QWERTY|COLEMK|DVORAK| | || | | | | | | + | |QWERTY|COLEMK|DVORAK|DVORMC| || | | | | | | |------+------+------+------+------| || |------+------+------+------+------| | | | | | |------'`------| | | | | RESET| `----------------------------------' `----------------------------------'*/ [_ADJUST] = { {KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, XXXXXXX, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10 }, {KC_F11, _______, _______, _______, _______, XXXXXXX, _______, KC_PSCR, KC_SLCK, KC_PAUS, KC_F12 }, - {_______, QWERTY, COLEMAK, DVORAK, _______, _______, _______, _______, _______, _______, _______}, + {_______, QWERTY, COLEMAK, DVORAK, DVORMAC, _______, _______, _______, _______, _______, _______}, {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET } } @@ -172,6 +193,12 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { } return false; break; + case DVORMAC: + if (record->event.pressed) { + persistant_default_layer_set(1UL<<_DVORMAC); + } + return false; + break; case LOWER: if (record->event.pressed) { layer_on(_LOWER); diff --git a/keyboards/atreus/keymaps/xyverz/readme.md b/keyboards/atreus/keymaps/xyverz/readme.md index e7e217804e6..ec7d836c173 100644 --- a/keyboards/atreus/keymaps/xyverz/readme.md +++ b/keyboards/atreus/keymaps/xyverz/readme.md @@ -7,8 +7,15 @@ time, but still very much like the original Atreus keymap. I've managed to get t implemented (more like copied) the RAISE/LOWER/ADJUST layers. This is a work in progress, but I think I'm closer to a final go with this. +I'm using MOD_TAP quite a bit in this keymap. On all layers, R4 pinky keys use mod-tap and are SHIFT when held +and their normal keys when tapped. In addition, ESC and TAB are also set as Ctrl and ALT respectively when held, +and Enter/ALT on the right thumb key for all layers. + I've enabled persistent keymaps for Qwerty, Dvorak and Colemak layers, similar to the default Planck layouts. +Recently added: Documentation, Formatting, and another Dvorak layer that has Command on the left thumb, instead of +Control. + ## Still to do: * Enjoy this revision; figure out new things later. @@ -49,7 +56,19 @@ I've enabled persistent keymaps for Qwerty, Dvorak and Colemak layers, similar t | Esc | Tab | GUI | LOWER| BkSp |------'`------| Spc | RAISE| - | ' | \ | `----------------------------------' `----------------------------------' -### layer 3 : LOWER layer +### Keymap 3: Dvorak for Mac layout + + ,----------------------------------. ,----------------------------------. + | ' | , | . | P | Y | | F | G | C | R | L | + |------+------+------+------+------| |------+------+------+------+------| + | A | O | E | U | I | | D | H | T | N | S | + |------+------+------+------+------|------.,------|------+------+------+------+------| + |SFT/ ;| Q | J | K | X | CMD ||Alt / | B | M | W | V |SFT/ Z| + |------+------+------+------+------| ||Enter |------+------+------+------+------| + | Esc | Tab | GUI | LOWER| BkSp |------'`------| Spc | RAISE| - | / | \ | + `----------------------------------' `----------------------------------' + +### Keymap 4: LOWER layer ,----------------------------------. ,----------------------------------. | ! | @ | # | $ | % | | ^ | & | * | ( | ) | @@ -62,7 +81,7 @@ I've enabled persistent keymaps for Qwerty, Dvorak and Colemak layers, similar t `----------------------------------' `----------------------------------' -### Keymap 4: RAISE layer +### Keymap 5: RAISE layer ,----------------------------------. ,----------------------------------. | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | @@ -74,14 +93,14 @@ I've enabled persistent keymaps for Qwerty, Dvorak and Colemak layers, similar t | ` | | | | Del |------'`------| Ins | | | | | `----------------------------------' `----------------------------------' -### Keymap 5: ADJUST layer +### Keymap 6: ADJUST layer ,----------------------------------. ,----------------------------------. | F1 | F2 | F3 | F4 | F5 | | F6 | F7 | F8 | F9 | F10 | |------+------+------+------+------| |------+------+------+------+------| | F11 | | | | | | | PScr | SLck | Paus | F12 | |------+------+------+------+------|------.,------|------+------+------+------+------| - | |QWERTY|COLEMK|DVORAK| | || | | | | | | + | |QWERTY|COLEMK|DVORAK|DVORMC| || | | | | | | |------+------+------+------+------| || |------+------+------+------+------| | | | | | |------'`------| | | | | RESET| `----------------------------------' `----------------------------------' From a875299d9aa9f0f1d2e01bedfaae0cb15c182e27 Mon Sep 17 00:00:00 2001 From: Dylan Khor Date: Sun, 9 Apr 2017 02:02:40 -0400 Subject: [PATCH 089/190] Added breathing macros and removed mappings to unused layouts --- keyboards/planck/keymaps/khord/config.h | 1 + keyboards/planck/keymaps/khord/keymap.c | 42 ++++++++++++++++++++++--- 2 files changed, 39 insertions(+), 4 deletions(-) diff --git a/keyboards/planck/keymaps/khord/config.h b/keyboards/planck/keymaps/khord/config.h index 008f3a5c2c5..83dece50ea4 100644 --- a/keyboards/planck/keymaps/khord/config.h +++ b/keyboards/planck/keymaps/khord/config.h @@ -48,6 +48,7 @@ along with this program. If not, see . /* number of backlight levels */ #define BACKLIGHT_LEVELS 3 +#define BACKLIGHT_BREATHING /* Set 0 if debouncing isn't needed */ #define DEBOUNCING_DELAY 5 diff --git a/keyboards/planck/keymaps/khord/keymap.c b/keyboards/planck/keymaps/khord/keymap.c index 8001a0986db..e371e5b70b4 100644 --- a/keyboards/planck/keymaps/khord/keymap.c +++ b/keyboards/planck/keymaps/khord/keymap.c @@ -37,6 +37,14 @@ enum planck_keycodes { #define _______ KC_TRNS #define XXXXXXX KC_NO +#define MACRO_BREATH_TOGGLE 21 +#define MACRO_BREATH_SPEED_INC 23 +#define MACRO_BREATH_SPEED_DEC 24 +#define MACRO_BREATH_DEFAULT 25 +#define M_BRTOG M(MACRO_BREATH_TOGGLE) +#define M_BRINC M(MACRO_BREATH_SPEED_INC) +#define M_BRDEC M(MACRO_BREATH_SPEED_DEC) +#define M_BRDFT M(MACRO_BREATH_DEFAULT) // Tap Dance Declarations enum { ESC_CAP = 0, @@ -173,10 +181,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `-----------------------------------------------------------------------------------' */ [_ADJUST] = { - {_______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL}, - {_______, _______, _______, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, PLOVER, _______}, - {_______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, _______, _______, _______, _______, _______}, - {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, C_A_INS, C_A_DEL} + {_______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, M_BRDFT, KC_DEL }, + {_______, _______, _______, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, _______, _______, M_BRINC, _______}, + {_______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, _______, _______, _______, M_BRDEC, C_A_INS}, + {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, M_BRTOG, C_A_DEL} } @@ -210,6 +218,32 @@ void persistant_default_layer_set(uint16_t default_layer) { default_layer_set(default_layer); } +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { + switch(id) { + case MACRO_BREATH_TOGGLE: + if (record->event.pressed) { + breathing_toggle(); + } + break; + case MACRO_BREATH_SPEED_INC: + if (record->event.pressed) { + breathing_speed_inc(1); + } + break; + case MACRO_BREATH_SPEED_DEC: + if (record->event.pressed) { + breathing_speed_dec(1); + } + break; + case MACRO_BREATH_DEFAULT: + if (record->event.pressed) { + breathing_defaults(); + } + break; + } + return MACRO_NONE; +} + bool process_record_user(uint16_t keycode, keyrecord_t *record) { switch (keycode) { case QWERTY: From aee9b10e92a597984ba9693b2dfcf597ca380a70 Mon Sep 17 00:00:00 2001 From: Fred Sundvik Date: Sun, 10 Jul 2016 23:45:39 +0300 Subject: [PATCH 090/190] Add a keyboard specific visualizer --- keyboards/ergodox/infinity/Makefile | 2 +- keyboards/ergodox/infinity/rules.mk | 2 +- keyboards/ergodox/infinity/visualizer.c | 168 ++++++++++++++++++++++++ quantum/visualizer/visualizer.mk | 4 + 4 files changed, 174 insertions(+), 2 deletions(-) create mode 100644 keyboards/ergodox/infinity/visualizer.c diff --git a/keyboards/ergodox/infinity/Makefile b/keyboards/ergodox/infinity/Makefile index 191c6bb664d..bd09e5885d0 100644 --- a/keyboards/ergodox/infinity/Makefile +++ b/keyboards/ergodox/infinity/Makefile @@ -1,3 +1,3 @@ ifndef MAKEFILE_INCLUDED include ../../../Makefile -endif \ No newline at end of file +endif diff --git a/keyboards/ergodox/infinity/rules.mk b/keyboards/ergodox/infinity/rules.mk index 473a6dfec6d..1b011cd5890 100644 --- a/keyboards/ergodox/infinity/rules.mk +++ b/keyboards/ergodox/infinity/rules.mk @@ -59,7 +59,7 @@ OPT_DEFS += -DCORTEX_VTOR_INIT=0x00002000 # CUSTOM_MATRIX ?= yes # Custom matrix file SERIAL_LINK_ENABLE = yes -VISUALIZER_ENABLE ?= no #temporarily disabled to make everything compile +VISUALIZER_ENABLE ?= yes LCD_ENABLE ?= yes LED_ENABLE ?= yes LCD_BACKLIGHT_ENABLE ?= yes diff --git a/keyboards/ergodox/infinity/visualizer.c b/keyboards/ergodox/infinity/visualizer.c new file mode 100644 index 00000000000..c0d335ce6a8 --- /dev/null +++ b/keyboards/ergodox/infinity/visualizer.c @@ -0,0 +1,168 @@ +/* +Copyright 2016 Fred Sundvik + +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 . +*/ + +// Currently we are assuming that both the backlight and LCD are enabled +// But it's entirely possible to write a custom visualizer that use only +// one of them +#ifndef LCD_BACKLIGHT_ENABLE +#error This visualizer needs that LCD backlight is enabled +#endif + +#ifndef LCD_ENABLE +#error This visualizer needs that LCD is enabled +#endif + +#include "visualizer.h" +#include "led_test.h" + +static const char* welcome_text[] = {"TMK", "Infinity Ergodox"}; + +// Just an example how to write custom keyframe functions, we could have moved +// all this into the init function +bool display_welcome(keyframe_animation_t* animation, visualizer_state_t* state) { + (void)animation; + // Read the uGFX documentation for information how to use the displays + // http://wiki.ugfx.org/index.php/Main_Page + gdispClear(White); + // You can use static variables for things that can't be found in the animation + // or state structs + gdispDrawString(0, 3, welcome_text[0], state->font_dejavusansbold12, Black); + gdispDrawString(0, 15, welcome_text[1], state->font_dejavusansbold12, Black); + // Always remember to flush the display + gdispFlush(); + // you could set the backlight color as well, but we won't do it here, since + // it's part of the following animation + // lcd_backlight_color(hue, saturation, intensity); + // We don't need constant updates, just drawing the screen once is enough + return false; +} + +// Feel free to modify the animations below, or even add new ones if needed + +// Don't worry, if the startup animation is long, you can use the keyboard like normal +// during that time +static keyframe_animation_t startup_animation = { + .num_frames = 4, + .loop = false, + .frame_lengths = {0, gfxMillisecondsToTicks(1000), gfxMillisecondsToTicks(5000), 0}, + .frame_functions = { + display_welcome, + keyframe_animate_backlight_color, + keyframe_no_operation, + enable_visualization + }, +}; + +// The color animation animates the LCD color when you change layers +static keyframe_animation_t color_animation = { + .num_frames = 2, + .loop = false, + // Note that there's a 200 ms no-operation frame, + // this prevents the color from changing when activating the layer + // momentarily + .frame_lengths = {gfxMillisecondsToTicks(200), gfxMillisecondsToTicks(500)}, + .frame_functions = {keyframe_no_operation, keyframe_animate_backlight_color}, +}; + +// The LCD animation alternates between the layer name display and a +// bitmap that displays all active layers +static keyframe_animation_t lcd_animation = { + .num_frames = 2, + .loop = true, + .frame_lengths = {gfxMillisecondsToTicks(2000), gfxMillisecondsToTicks(2000)}, + .frame_functions = {keyframe_display_layer_text, keyframe_display_layer_bitmap}, +}; + +static keyframe_animation_t suspend_animation = { + .num_frames = 3, + .loop = false, + .frame_lengths = {0, gfxMillisecondsToTicks(1000), 0}, + .frame_functions = { + keyframe_display_layer_text, + keyframe_animate_backlight_color, + keyframe_disable_lcd_and_backlight, + }, +}; + +static keyframe_animation_t resume_animation = { + .num_frames = 5, + .loop = false, + .frame_lengths = {0, 0, gfxMillisecondsToTicks(1000), gfxMillisecondsToTicks(5000), 0}, + .frame_functions = { + keyframe_enable_lcd_and_backlight, + display_welcome, + keyframe_animate_backlight_color, + keyframe_no_operation, + enable_visualization, + }, +}; + +void initialize_user_visualizer(visualizer_state_t* state) { + // The brightness will be dynamically adjustable in the future + // But for now, change it here. + lcd_backlight_brightness(0x50); + state->current_lcd_color = LCD_COLOR(0x00, 0x00, 0xFF); + state->target_lcd_color = LCD_COLOR(0x10, 0xFF, 0xFF); + start_keyframe_animation(&startup_animation); + start_keyframe_animation(&led_test_animation); +} + +void update_user_visualizer_state(visualizer_state_t* state) { + // Add more tests, change the colors and layer texts here + // Usually you want to check the high bits (higher layers first) + // because that's the order layers are processed for keypresses + // You can for check for example: + // state->status.layer + // state->status.default_layer + // state->status.leds (see led.h for available statuses) + if (state->status.layer & 0x8) { + state->target_lcd_color = LCD_COLOR(0xC0, 0xB0, 0xFF); + state->layer_text = "Numpad"; + } + else if (state->status.layer & 0x4) { + state->target_lcd_color = LCD_COLOR(0, 0xB0, 0xFF); + state->layer_text = "KBD functions"; + } + else if (state->status.layer & 0x2) { + state->target_lcd_color = LCD_COLOR(0x80, 0xB0, 0xFF); + state->layer_text = "Function keys"; + } + else { + state->target_lcd_color = LCD_COLOR(0x40, 0xB0, 0xFF); + state->layer_text = "Default"; + } + // You can also stop existing animations, and start your custom ones here + // remember that you should normally have only one animation for the LCD + // and one for the background. But you can also combine them if you want. + start_keyframe_animation(&lcd_animation); + start_keyframe_animation(&color_animation); +} + +void user_visualizer_suspend(visualizer_state_t* state) { + state->layer_text = "Suspending..."; + uint8_t hue = LCD_HUE(state->current_lcd_color); + uint8_t sat = LCD_SAT(state->current_lcd_color); + state->target_lcd_color = LCD_COLOR(hue, sat, 0); + start_keyframe_animation(&suspend_animation); +} + +void user_visualizer_resume(visualizer_state_t* state) { + state->current_lcd_color = LCD_COLOR(0x00, 0x00, 0x00); + state->target_lcd_color = LCD_COLOR(0x10, 0xFF, 0xFF); + start_keyframe_animation(&resume_animation); + start_keyframe_animation(&led_test_animation); +} diff --git a/quantum/visualizer/visualizer.mk b/quantum/visualizer/visualizer.mk index 2f4a41d66f9..ecdeba1eee0 100644 --- a/quantum/visualizer/visualizer.mk +++ b/quantum/visualizer/visualizer.mk @@ -50,7 +50,11 @@ ifneq ("$(wildcard $(KEYMAP_PATH)/visualizer.c)","") SRC += keyboards/$(KEYBOARD)/keymaps/$(KEYMAP)/visualizer.c else ifeq ("$(wildcard $(SUBPROJECT_PATH)/keymaps/$(KEYMAP)/visualizer.c)","") + ifeq ("$(wildcard $(SUBPROJECT_PATH)/visualizer.c)","") $(error "$(KEYMAP_PATH)/visualizer.c" does not exist) + else + SRC += keyboards/$(KEYBOARD)/$(SUBPROJECT)/visualizer.c + endif else SRC += keyboards/$(KEYBOARD)/$(SUBPROJECT)/keymaps/$(KEYMAP)/visualizer.c endif From bb86be1f1f3927a7ce339cb9439c97914af24754 Mon Sep 17 00:00:00 2001 From: Fred Sundvik Date: Sun, 28 Aug 2016 23:08:34 +0300 Subject: [PATCH 091/190] Remove unneeded makefile include --- keyboards/ergodox/ez/rules.mk | 4 ---- keyboards/ergodox/infinity/rules.mk | 4 ---- 2 files changed, 8 deletions(-) diff --git a/keyboards/ergodox/ez/rules.mk b/keyboards/ergodox/ez/rules.mk index 64b2db8158e..6cd1c0c4f72 100644 --- a/keyboards/ergodox/ez/rules.mk +++ b/keyboards/ergodox/ez/rules.mk @@ -74,7 +74,3 @@ OPT_DEFS += -DBOOTLOADER_SIZE=512 SLEEP_LED_ENABLE = no API_SYSEX_ENABLE ?= no RGBLIGHT_ENABLE ?= yes - -ifndef QUANTUM_DIR - include ../../../Makefile -endif diff --git a/keyboards/ergodox/infinity/rules.mk b/keyboards/ergodox/infinity/rules.mk index 1b011cd5890..d51574acae5 100644 --- a/keyboards/ergodox/infinity/rules.mk +++ b/keyboards/ergodox/infinity/rules.mk @@ -66,10 +66,6 @@ LCD_BACKLIGHT_ENABLE ?= yes MIDI_ENABLE = no RGBLIGHT_ENABLE = no -ifndef QUANTUM_DIR - include ../../../Makefile -endif - ifdef LCD_ENABLE include $(SUBPROJECT_PATH)/drivers/gdisp/st7565ergodox/driver.mk endif From f5c89416527a3ec435ed49137fd2bf4af216024c Mon Sep 17 00:00:00 2001 From: Fred Sundvik Date: Sun, 28 Aug 2016 23:25:39 +0300 Subject: [PATCH 092/190] UGFX is compiled once per keyboard instead of keymap --- build_keyboard.mk | 8 ++++---- .../infinity/drivers/gdisp/st7565ergodox/board_ST7565.h | 2 -- quantum/visualizer/visualizer.mk | 4 ++-- 3 files changed, 6 insertions(+), 8 deletions(-) diff --git a/build_keyboard.mk b/build_keyboard.mk index 82464d58304..ad92892e274 100644 --- a/build_keyboard.mk +++ b/build_keyboard.mk @@ -258,12 +258,12 @@ endif OUTPUTS := $(KEYMAP_OUTPUT) $(KEYBOARD_OUTPUT) $(KEYMAP_OUTPUT)_SRC := $(SRC) -$(KEYMAP_OUTPUT)_DEFS := $(OPT_DEFS) -DQMK_KEYBOARD=\"$(KEYBOARD)\" -DQMK_KEYMAP=\"$(KEYMAP)\" +$(KEYMAP_OUTPUT)_DEFS := $(OPT_DEFS) $(GFXDEFS) -DQMK_KEYBOARD=\"$(KEYBOARD)\" -DQMK_KEYMAP=\"$(KEYMAP)\" $(KEYMAP_OUTPUT)_INC := $(VPATH) $(EXTRAINCDIRS) $(KEYMAP_OUTPUT)_CONFIG := $(CONFIG_H) -$(KEYBOARD_OUTPUT)_SRC := $(CHIBISRC) -$(KEYBOARD_OUTPUT)_DEFS := $(PROJECT_DEFS) -$(KEYBOARD_OUTPUT)_INC := $(PROJECT_INC) +$(KEYBOARD_OUTPUT)_SRC := $(CHIBISRC) $(GFXSRC) +$(KEYBOARD_OUTPUT)_DEFS := $(PROJECT_DEFS) $(GFXDEFS) +$(KEYBOARD_OUTPUT)_INC := $(PROJECT_INC) $(GFXINC) $(KEYBOARD_OUTPUT)_CONFIG := $(PROJECT_CONFIG) # Default target. diff --git a/keyboards/ergodox/infinity/drivers/gdisp/st7565ergodox/board_ST7565.h b/keyboards/ergodox/infinity/drivers/gdisp/st7565ergodox/board_ST7565.h index 290571ce5b4..abda0bd858e 100644 --- a/keyboards/ergodox/infinity/drivers/gdisp/st7565ergodox/board_ST7565.h +++ b/keyboards/ergodox/infinity/drivers/gdisp/st7565ergodox/board_ST7565.h @@ -8,8 +8,6 @@ #ifndef _GDISP_LLD_BOARD_H #define _GDISP_LLD_BOARD_H -#include "print.h" - #define ST7565_LCD_BIAS ST7565_LCD_BIAS_9 // actually 6 #define ST7565_ADC ST7565_ADC_NORMAL #define ST7565_COM_SCAN ST7565_COM_SCAN_DEC diff --git a/quantum/visualizer/visualizer.mk b/quantum/visualizer/visualizer.mk index ecdeba1eee0..8f5fb893345 100644 --- a/quantum/visualizer/visualizer.mk +++ b/quantum/visualizer/visualizer.mk @@ -43,8 +43,8 @@ OPT_DEFS += -DLED_ENABLE endif include $(GFXLIB)/gfx.mk -SRC += $(patsubst $(TOP_DIR)/%,%,$(GFXSRC)) -OPT_DEFS += $(patsubst %,-D%,$(patsubst -D%,%,$(GFXDEFS))) +GFXSRC := $(patsubst $(TOP_DIR)/%,%,$(GFXSRC)) +GFXDEFS := $(patsubst %,-D%,$(patsubst -D%,%,$(GFXDEFS))) ifneq ("$(wildcard $(KEYMAP_PATH)/visualizer.c)","") SRC += keyboards/$(KEYBOARD)/keymaps/$(KEYMAP)/visualizer.c From 6039a4f6edefbad7604a9533d445091cd646f240 Mon Sep 17 00:00:00 2001 From: Fred Sundvik Date: Tue, 28 Mar 2017 09:59:29 +0300 Subject: [PATCH 093/190] Empty implementation of has_onshot_mods_timed_out When the timeout is zero or not defined, the function now returns false. Fixes a linker error when the visualizer is enabled --- tmk_core/common/action_util.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/tmk_core/common/action_util.c b/tmk_core/common/action_util.c index cb4b2526484..77848c09238 100644 --- a/tmk_core/common/action_util.c +++ b/tmk_core/common/action_util.c @@ -58,9 +58,13 @@ void set_oneshot_locked_mods(int8_t mods) { oneshot_locked_mods = mods; } void clear_oneshot_locked_mods(void) { oneshot_locked_mods = 0; } #if (defined(ONESHOT_TIMEOUT) && (ONESHOT_TIMEOUT > 0)) static int16_t oneshot_time = 0; -inline bool has_oneshot_mods_timed_out() { +bool has_oneshot_mods_timed_out(void) { return TIMER_DIFF_16(timer_read(), oneshot_time) >= ONESHOT_TIMEOUT; } +#else +bool has_oneshot_mods_timed_out(void) { + return false; +} #endif #endif From 503565d1742ed458c992192a05f6ffe1db053135 Mon Sep 17 00:00:00 2001 From: Fred Sundvik Date: Fri, 31 Mar 2017 22:51:00 +0300 Subject: [PATCH 094/190] Only re-send matrix every 5ms The previous 1ms value was too often, and wouldn't always leave time for the visualizer --- quantum/serial_link/system/serial_link.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/quantum/serial_link/system/serial_link.c b/quantum/serial_link/system/serial_link.c index 75c7e77a765..b3bee62a18a 100644 --- a/quantum/serial_link/system/serial_link.c +++ b/quantum/serial_link/system/serial_link.c @@ -212,7 +212,7 @@ void serial_link_update(void) { systime_t current_time = chVTGetSystemTimeX(); systime_t delta = current_time - last_update; - if (changed || delta > US2ST(1000)) { + if (changed || delta > US2ST(5000)) { last_update = current_time; last_matrix = matrix; matrix_object_t* m = begin_write_keyboard_matrix(); From 2b24d35846693a3365a35b6ee9bc31b70659cfcf Mon Sep 17 00:00:00 2001 From: Fred Sundvik Date: Fri, 31 Mar 2017 23:58:10 +0300 Subject: [PATCH 095/190] Hopefully finally fix the corrupt LCD The SPI bus is now selected and deselected before each set of commands. Also speed up things by buffering many commands into a single batch. --- .../gdisp/st7565ergodox/board_ST7565.h | 46 +-- .../gdisp/st7565ergodox/gdisp_lld_ST7565.c | 371 ++++++++++-------- 2 files changed, 217 insertions(+), 200 deletions(-) diff --git a/keyboards/ergodox/infinity/drivers/gdisp/st7565ergodox/board_ST7565.h b/keyboards/ergodox/infinity/drivers/gdisp/st7565ergodox/board_ST7565.h index abda0bd858e..c2092b5e8d3 100644 --- a/keyboards/ergodox/infinity/drivers/gdisp/st7565ergodox/board_ST7565.h +++ b/keyboards/ergodox/infinity/drivers/gdisp/st7565ergodox/board_ST7565.h @@ -37,10 +37,14 @@ // MSB First // CLK Low by default static const SPIConfig spi1config = { - NULL, - /* HW dependent part.*/ - ST7565_GPIOPORT, - ST7565_SS_PIN, + // Operation complete callback or @p NULL. + .end_cb = NULL, + //The chip select line port - when not using pcs. + .ssport = ST7565_GPIOPORT, + // brief The chip select line pad number - when not using pcs. + .sspad=ST7565_SS_PIN, + // SPI initialization data. + .tar0 = SPIx_CTARn_FMSZ(7) | SPIx_CTARn_ASC(7) | SPIx_CTARn_DT(7) @@ -50,13 +54,10 @@ static const SPIConfig spi1config = { //SPI_CR1_BR_0 }; -static bool_t st7565_is_data_mode = 1; - static GFXINLINE void init_board(GDisplay *g) { (void) g; palSetPadModeNamed(A0, PAL_MODE_OUTPUT_PUSHPULL); palSetPad(ST7565_GPIOPORT, ST7565_A0_PIN); - st7565_is_data_mode = 1; palSetPadModeNamed(RST, PAL_MODE_OUTPUT_PUSHPULL); palSetPad(ST7565_GPIOPORT, ST7565_RST_PIN); palSetPadModeRaw(MOSI, ST7565_SPI_MODE); @@ -65,7 +66,6 @@ static GFXINLINE void init_board(GDisplay *g) { spiInit(); spiStart(&SPID1, &spi1config); - spiSelect(&SPID1); } static GFXINLINE void post_init_board(GDisplay *g) { @@ -86,39 +86,27 @@ static GFXINLINE void acquire_bus(GDisplay *g) { (void) g; // Only the LCD is using the SPI bus, so no need to acquire // spiAcquireBus(&SPID1); + spiSelect(&SPID1); } static GFXINLINE void release_bus(GDisplay *g) { (void) g; // Only the LCD is using the SPI bus, so no need to release //spiReleaseBus(&SPID1); + spiUnselect(&SPID1); } -static GFXINLINE void write_cmd(GDisplay *g, uint8_t cmd) { - (void) g; - if (st7565_is_data_mode) { - // The sleeps need to be at lest 10 vs 25 ns respectively - // So let's sleep two ticks, one tick might not be enough - // if we are at the end of the tick - chThdSleep(2); - palClearPad(ST7565_GPIOPORT, ST7565_A0_PIN); - chThdSleep(2); - st7565_is_data_mode = 0; - } - spiSend(&SPID1, 1, &cmd); +static GFXINLINE void enter_data_mode(GDisplay *g) { + palSetPad(ST7565_GPIOPORT, ST7565_A0_PIN); } +static GFXINLINE void enter_cmd_mode(GDisplay *g) { + palClearPad(ST7565_GPIOPORT, ST7565_A0_PIN); +} + + static GFXINLINE void write_data(GDisplay *g, uint8_t* data, uint16_t length) { (void) g; - if (!st7565_is_data_mode) { - // The sleeps need to be at lest 10 vs 25 ns respectively - // So let's sleep two ticks, one tick might not be enough - // if we are at the end of the tick - chThdSleep(2); - palSetPad(ST7565_GPIOPORT, ST7565_A0_PIN); - chThdSleep(2); - st7565_is_data_mode = 1; - } spiSend(&SPID1, length, data); } diff --git a/keyboards/ergodox/infinity/drivers/gdisp/st7565ergodox/gdisp_lld_ST7565.c b/keyboards/ergodox/infinity/drivers/gdisp/st7565ergodox/gdisp_lld_ST7565.c index c33aea81a87..4547f141933 100644 --- a/keyboards/ergodox/infinity/drivers/gdisp/st7565ergodox/gdisp_lld_ST7565.c +++ b/keyboards/ergodox/infinity/drivers/gdisp/st7565ergodox/gdisp_lld_ST7565.c @@ -20,16 +20,16 @@ /*===========================================================================*/ #ifndef GDISP_SCREEN_HEIGHT - #define GDISP_SCREEN_HEIGHT 32 +#define GDISP_SCREEN_HEIGHT 32 #endif #ifndef GDISP_SCREEN_WIDTH - #define GDISP_SCREEN_WIDTH 128 +#define GDISP_SCREEN_WIDTH 128 #endif #ifndef GDISP_INITIAL_CONTRAST - #define GDISP_INITIAL_CONTRAST 0 +#define GDISP_INITIAL_CONTRAST 0 #endif #ifndef GDISP_INITIAL_BACKLIGHT - #define GDISP_INITIAL_BACKLIGHT 100 +#define GDISP_INITIAL_BACKLIGHT 100 #endif #define GDISP_FLG_NEEDFLUSH (GDISP_FLG_DRIVER<<0) @@ -40,16 +40,16 @@ /* Driver config defaults for backward compatibility. */ /*===========================================================================*/ #ifndef ST7565_LCD_BIAS - #define ST7565_LCD_BIAS ST7565_LCD_BIAS_7 +#define ST7565_LCD_BIAS ST7565_LCD_BIAS_7 #endif #ifndef ST7565_ADC - #define ST7565_ADC ST7565_ADC_NORMAL +#define ST7565_ADC ST7565_ADC_NORMAL #endif #ifndef ST7565_COM_SCAN - #define ST7565_COM_SCAN ST7565_COM_SCAN_INC +#define ST7565_COM_SCAN ST7565_COM_SCAN_INC #endif #ifndef ST7565_PAGE_ORDER - #define ST7565_PAGE_ORDER 0,1,2,3 +#define ST7565_PAGE_ORDER 0,1,2,3 #endif /*===========================================================================*/ @@ -58,12 +58,24 @@ typedef struct{ bool_t buffer2; + uint8_t data_pos; + uint8_t data[16]; uint8_t ram[GDISP_SCREEN_HEIGHT * GDISP_SCREEN_WIDTH / 8]; }PrivData; // Some common routines and macros #define PRIV(g) ((PrivData*)g->priv) #define RAM(g) (PRIV(g)->ram) + +static GFXINLINE void write_cmd(GDisplay* g, uint8_t cmd) { + PRIV(g)->data[PRIV(g)->data_pos++] = cmd; +} + +static GFXINLINE void flush_cmd(GDisplay* g) { + write_data(g, PRIV(g)->data, PRIV(g)->data_pos); + PRIV(g)->data_pos = 0; +} + #define write_cmd2(g, cmd1, cmd2) { write_cmd(g, cmd1); write_cmd(g, cmd2); } #define write_cmd3(g, cmd1, cmd2, cmd3) { write_cmd(g, cmd1); write_cmd(g, cmd2); write_cmd(g, cmd3); } @@ -86,207 +98,224 @@ typedef struct{ */ LLDSPEC bool_t gdisp_lld_init(GDisplay *g) { - // The private area is the display surface. - g->priv = gfxAlloc(sizeof(PrivData)); - PRIV(g)->buffer2 = false; + // The private area is the display surface. + g->priv = gfxAlloc(sizeof(PrivData)); + PRIV(g)->buffer2 = false; + PRIV(g)->data_pos = 0; - // Initialise the board interface - init_board(g); + // Initialise the board interface + init_board(g); - // Hardware reset - setpin_reset(g, TRUE); - gfxSleepMilliseconds(20); - setpin_reset(g, FALSE); - gfxSleepMilliseconds(20); + // Hardware reset + setpin_reset(g, TRUE); + gfxSleepMilliseconds(20); + setpin_reset(g, FALSE); + gfxSleepMilliseconds(20); - acquire_bus(g); + acquire_bus(g); + enter_cmd_mode(g); write_cmd(g, ST7565_DISPLAY_OFF); - write_cmd(g, ST7565_LCD_BIAS); + write_cmd(g, ST7565_LCD_BIAS); write_cmd(g, ST7565_ADC); write_cmd(g, ST7565_COM_SCAN); - + write_cmd(g, ST7565_START_LINE | 0); - write_cmd(g, ST7565_RESISTOR_RATIO | 0x6); + write_cmd(g, ST7565_RESISTOR_RATIO | 0x6); - // turn on voltage converter (VC=1, VR=0, VF=0) - write_cmd(g, ST7565_POWER_CONTROL | 0x04); - delay_ms(50); + // turn on voltage converter (VC=1, VR=0, VF=0) + write_cmd(g, ST7565_POWER_CONTROL | 0x04); + flush_cmd(g); + delay_ms(50); - // turn on voltage regulator (VC=1, VR=1, VF=0) - write_cmd(g, ST7565_POWER_CONTROL | 0x06); - delay_ms(50); + // turn on voltage regulator (VC=1, VR=1, VF=0) + write_cmd(g, ST7565_POWER_CONTROL | 0x06); + flush_cmd(g); + delay_ms(50); - // turn on voltage follower (VC=1, VR=1, VF=1) - write_cmd(g, ST7565_POWER_CONTROL | 0x07); - delay_ms(50); + // turn on voltage follower (VC=1, VR=1, VF=1) + write_cmd(g, ST7565_POWER_CONTROL | 0x07); + flush_cmd(g); + delay_ms(50); - write_cmd(g, 0xE2); + write_cmd(g, 0xE2); write_cmd(g, ST7565_COM_SCAN); - write_cmd2(g, ST7565_CONTRAST, GDISP_INITIAL_CONTRAST*64/101); - //write_cmd2(g, ST7565_CONTRAST, 0); - write_cmd(g, ST7565_DISPLAY_ON); - write_cmd(g, ST7565_ALLON_NORMAL); - write_cmd(g, ST7565_INVERT_DISPLAY); + write_cmd2(g, ST7565_CONTRAST, GDISP_INITIAL_CONTRAST*64/101); + //write_cmd2(g, ST7565_CONTRAST, 0); + write_cmd(g, ST7565_DISPLAY_ON); + write_cmd(g, ST7565_ALLON_NORMAL); + write_cmd(g, ST7565_INVERT_DISPLAY); - write_cmd(g, ST7565_RMW); + write_cmd(g, ST7565_RMW); + flush_cmd(g); // Finish Init post_init_board(g); - // Release the bus - release_bus(g); + // Release the bus + release_bus(g); - /* Initialise the GDISP structure */ - g->g.Width = GDISP_SCREEN_WIDTH; - g->g.Height = GDISP_SCREEN_HEIGHT; - g->g.Orientation = GDISP_ROTATE_0; - g->g.Powermode = powerOn; - g->g.Backlight = GDISP_INITIAL_BACKLIGHT; - g->g.Contrast = GDISP_INITIAL_CONTRAST; - return TRUE; + /* Initialise the GDISP structure */ + g->g.Width = GDISP_SCREEN_WIDTH; + g->g.Height = GDISP_SCREEN_HEIGHT; + g->g.Orientation = GDISP_ROTATE_0; + g->g.Powermode = powerOn; + g->g.Backlight = GDISP_INITIAL_BACKLIGHT; + g->g.Contrast = GDISP_INITIAL_CONTRAST; + return TRUE; } #if GDISP_HARDWARE_FLUSH - LLDSPEC void gdisp_lld_flush(GDisplay *g) { - unsigned p; +LLDSPEC void gdisp_lld_flush(GDisplay *g) { + unsigned p; - // Don't flush if we don't need it. - if (!(g->flags & GDISP_FLG_NEEDFLUSH)) - return; + // Don't flush if we don't need it. + if (!(g->flags & GDISP_FLG_NEEDFLUSH)) + return; - acquire_bus(g); - unsigned dstOffset = (PRIV(g)->buffer2 ? 4 : 0); - for (p = 0; p < 4; p++) { - write_cmd(g, ST7565_PAGE | (p + dstOffset)); - write_cmd(g, ST7565_COLUMN_MSB | 0); - write_cmd(g, ST7565_COLUMN_LSB | 0); - write_cmd(g, ST7565_RMW); - write_data(g, RAM(g) + (p*GDISP_SCREEN_WIDTH), GDISP_SCREEN_WIDTH); - } - unsigned line = (PRIV(g)->buffer2 ? 32 : 0); - write_cmd(g, ST7565_START_LINE | line); - PRIV(g)->buffer2 = !PRIV(g)->buffer2; - release_bus(g); + acquire_bus(g); + enter_cmd_mode(g); + unsigned dstOffset = (PRIV(g)->buffer2 ? 4 : 0); + for (p = 0; p < 4; p++) { + write_cmd(g, ST7565_PAGE | (p + dstOffset)); + write_cmd(g, ST7565_COLUMN_MSB | 0); + write_cmd(g, ST7565_COLUMN_LSB | 0); + write_cmd(g, ST7565_RMW); + flush_cmd(g); + enter_data_mode(g); + write_data(g, RAM(g) + (p*GDISP_SCREEN_WIDTH), GDISP_SCREEN_WIDTH); + enter_cmd_mode(g); + } + unsigned line = (PRIV(g)->buffer2 ? 32 : 0); + write_cmd(g, ST7565_START_LINE | line); + flush_cmd(g); + PRIV(g)->buffer2 = !PRIV(g)->buffer2; + release_bus(g); - g->flags &= ~GDISP_FLG_NEEDFLUSH; - } + g->flags &= ~GDISP_FLG_NEEDFLUSH; +} #endif #if GDISP_HARDWARE_DRAWPIXEL - LLDSPEC void gdisp_lld_draw_pixel(GDisplay *g) { - coord_t x, y; +LLDSPEC void gdisp_lld_draw_pixel(GDisplay *g) { + coord_t x, y; - switch(g->g.Orientation) { - default: - case GDISP_ROTATE_0: - x = g->p.x; - y = g->p.y; - break; - case GDISP_ROTATE_90: - x = g->p.y; - y = GDISP_SCREEN_HEIGHT-1 - g->p.x; - break; - case GDISP_ROTATE_180: - x = GDISP_SCREEN_WIDTH-1 - g->p.x; - y = GDISP_SCREEN_HEIGHT-1 - g->p.y; - break; - case GDISP_ROTATE_270: - x = GDISP_SCREEN_HEIGHT-1 - g->p.y; - y = g->p.x; - break; - } - if (gdispColor2Native(g->p.color) != Black) - RAM(g)[xyaddr(x, y)] |= xybit(y); - else - RAM(g)[xyaddr(x, y)] &= ~xybit(y); - g->flags |= GDISP_FLG_NEEDFLUSH; - } + switch(g->g.Orientation) { + default: + case GDISP_ROTATE_0: + x = g->p.x; + y = g->p.y; + break; + case GDISP_ROTATE_90: + x = g->p.y; + y = GDISP_SCREEN_HEIGHT-1 - g->p.x; + break; + case GDISP_ROTATE_180: + x = GDISP_SCREEN_WIDTH-1 - g->p.x; + y = GDISP_SCREEN_HEIGHT-1 - g->p.y; + break; + case GDISP_ROTATE_270: + x = GDISP_SCREEN_HEIGHT-1 - g->p.y; + y = g->p.x; + break; + } + if (gdispColor2Native(g->p.color) != Black) + RAM(g)[xyaddr(x, y)] |= xybit(y); + else + RAM(g)[xyaddr(x, y)] &= ~xybit(y); + g->flags |= GDISP_FLG_NEEDFLUSH; +} #endif #if GDISP_HARDWARE_PIXELREAD - LLDSPEC color_t gdisp_lld_get_pixel_color(GDisplay *g) { - coord_t x, y; +LLDSPEC color_t gdisp_lld_get_pixel_color(GDisplay *g) { + coord_t x, y; - switch(g->g.Orientation) { - default: - case GDISP_ROTATE_0: - x = g->p.x; - y = g->p.y; - break; - case GDISP_ROTATE_90: - x = g->p.y; - y = GDISP_SCREEN_HEIGHT-1 - g->p.x; - break; - case GDISP_ROTATE_180: - x = GDISP_SCREEN_WIDTH-1 - g->p.x; - y = GDISP_SCREEN_HEIGHT-1 - g->p.y; - break; - case GDISP_ROTATE_270: - x = GDISP_SCREEN_HEIGHT-1 - g->p.y; - y = g->p.x; - break; - } - return (RAM(g)[xyaddr(x, y)] & xybit(y)) ? White : Black; - } + switch(g->g.Orientation) { + default: + case GDISP_ROTATE_0: + x = g->p.x; + y = g->p.y; + break; + case GDISP_ROTATE_90: + x = g->p.y; + y = GDISP_SCREEN_HEIGHT-1 - g->p.x; + break; + case GDISP_ROTATE_180: + x = GDISP_SCREEN_WIDTH-1 - g->p.x; + y = GDISP_SCREEN_HEIGHT-1 - g->p.y; + break; + case GDISP_ROTATE_270: + x = GDISP_SCREEN_HEIGHT-1 - g->p.y; + y = g->p.x; + break; + } + return (RAM(g)[xyaddr(x, y)] & xybit(y)) ? White : Black; +} #endif #if GDISP_NEED_CONTROL && GDISP_HARDWARE_CONTROL - LLDSPEC void gdisp_lld_control(GDisplay *g) { - switch(g->p.x) { - case GDISP_CONTROL_POWER: - if (g->g.Powermode == (powermode_t)g->p.ptr) - return; - switch((powermode_t)g->p.ptr) { - case powerOff: - case powerSleep: - case powerDeepSleep: - acquire_bus(g); - write_cmd(g, ST7565_DISPLAY_OFF); - release_bus(g); - break; - case powerOn: - acquire_bus(g); - write_cmd(g, ST7565_DISPLAY_ON); - release_bus(g); - break; - default: - return; - } - g->g.Powermode = (powermode_t)g->p.ptr; - return; +LLDSPEC void gdisp_lld_control(GDisplay *g) { + switch(g->p.x) { + case GDISP_CONTROL_POWER: + if (g->g.Powermode == (powermode_t)g->p.ptr) + return; + switch((powermode_t)g->p.ptr) { + case powerOff: + case powerSleep: + case powerDeepSleep: + acquire_bus(g); + enter_cmd_mode(g); + write_cmd(g, ST7565_DISPLAY_OFF); + flush_cmd(g); + release_bus(g); + break; + case powerOn: + acquire_bus(g); + enter_cmd_mode(g); + write_cmd(g, ST7565_DISPLAY_ON); + flush_cmd(g); + release_bus(g); + break; + default: + return; + } + g->g.Powermode = (powermode_t)g->p.ptr; + return; - case GDISP_CONTROL_ORIENTATION: - if (g->g.Orientation == (orientation_t)g->p.ptr) - return; - switch((orientation_t)g->p.ptr) { - /* Rotation is handled by the drawing routines */ - case GDISP_ROTATE_0: - case GDISP_ROTATE_180: - g->g.Height = GDISP_SCREEN_HEIGHT; - g->g.Width = GDISP_SCREEN_WIDTH; - break; - case GDISP_ROTATE_90: - case GDISP_ROTATE_270: - g->g.Height = GDISP_SCREEN_WIDTH; - g->g.Width = GDISP_SCREEN_HEIGHT; - break; - default: - return; - } - g->g.Orientation = (orientation_t)g->p.ptr; - return; + case GDISP_CONTROL_ORIENTATION: + if (g->g.Orientation == (orientation_t)g->p.ptr) + return; + switch((orientation_t)g->p.ptr) { + /* Rotation is handled by the drawing routines */ + case GDISP_ROTATE_0: + case GDISP_ROTATE_180: + g->g.Height = GDISP_SCREEN_HEIGHT; + g->g.Width = GDISP_SCREEN_WIDTH; + break; + case GDISP_ROTATE_90: + case GDISP_ROTATE_270: + g->g.Height = GDISP_SCREEN_WIDTH; + g->g.Width = GDISP_SCREEN_HEIGHT; + break; + default: + return; + } + g->g.Orientation = (orientation_t)g->p.ptr; + return; - case GDISP_CONTROL_CONTRAST: - if ((unsigned)g->p.ptr > 100) - g->p.ptr = (void *)100; - acquire_bus(g); - write_cmd2(g, ST7565_CONTRAST, ((((unsigned)g->p.ptr)<<6)/101) & 0x3F); - release_bus(g); - g->g.Contrast = (unsigned)g->p.ptr; - return; - } - } + case GDISP_CONTROL_CONTRAST: + if ((unsigned)g->p.ptr > 100) + g->p.ptr = (void *)100; + acquire_bus(g); + enter_cmd_mode(g); + write_cmd2(g, ST7565_CONTRAST, ((((unsigned)g->p.ptr)<<6)/101) & 0x3F); + flush_cmd(g); + release_bus(g); + g->g.Contrast = (unsigned)g->p.ptr; + return; + } +} #endif // GDISP_NEED_CONTROL #endif // GFX_USE_GDISP From a8f5897b976ee9f16b1798db38fb0ee4b8981c9e Mon Sep 17 00:00:00 2001 From: Fred Sundvik Date: Sat, 1 Apr 2017 16:36:34 +0300 Subject: [PATCH 096/190] Add support for blitting to the Infinity LCD --- .../gdisp/st7565ergodox/gdisp_lld_ST7565.c | 26 +++++++++++++++++++ .../gdisp/st7565ergodox/gdisp_lld_config.h | 11 ++++---- keyboards/ergodox/infinity/gfxconf.h | 2 +- 3 files changed, 33 insertions(+), 6 deletions(-) diff --git a/keyboards/ergodox/infinity/drivers/gdisp/st7565ergodox/gdisp_lld_ST7565.c b/keyboards/ergodox/infinity/drivers/gdisp/st7565ergodox/gdisp_lld_ST7565.c index 4547f141933..2c8a168e76b 100644 --- a/keyboards/ergodox/infinity/drivers/gdisp/st7565ergodox/gdisp_lld_ST7565.c +++ b/keyboards/ergodox/infinity/drivers/gdisp/st7565ergodox/gdisp_lld_ST7565.c @@ -254,6 +254,32 @@ LLDSPEC color_t gdisp_lld_get_pixel_color(GDisplay *g) { } #endif +LLDSPEC void gdisp_lld_blit_area(GDisplay *g) { + uint8_t* buffer = (uint8_t*)g->p.ptr; + int linelength = g->p.cx; + for (int i = 0; i < g->p.cy; i++) { + unsigned dstx = g->p.x; + unsigned dsty = g->p.y + i; + unsigned srcx = g->p.x1; + unsigned srcy = g->p.y1 + i; + unsigned srcbit = srcy * g->p.x2 + srcx; + for(int j=0; j < linelength; j++) { + uint8_t src = buffer[srcbit / 8]; + uint8_t bit = 7-(srcbit % 8); + uint8_t bitset = (src >> bit) & 1; + uint8_t* dst = &(RAM(g)[xyaddr(dstx, dsty)]); + if (bitset) { + *dst |= xybit(dsty); + } + else { + *dst &= ~xybit(dsty); + } + dstx++; + srcbit++; + } + } +} + #if GDISP_NEED_CONTROL && GDISP_HARDWARE_CONTROL LLDSPEC void gdisp_lld_control(GDisplay *g) { switch(g->p.x) { diff --git a/keyboards/ergodox/infinity/drivers/gdisp/st7565ergodox/gdisp_lld_config.h b/keyboards/ergodox/infinity/drivers/gdisp/st7565ergodox/gdisp_lld_config.h index 48587b9e143..2b66a877c86 100644 --- a/keyboards/ergodox/infinity/drivers/gdisp/st7565ergodox/gdisp_lld_config.h +++ b/keyboards/ergodox/infinity/drivers/gdisp/st7565ergodox/gdisp_lld_config.h @@ -14,12 +14,13 @@ /* Driver hardware support. */ /*===========================================================================*/ -#define GDISP_HARDWARE_FLUSH TRUE // This controller requires flushing -#define GDISP_HARDWARE_DRAWPIXEL TRUE -#define GDISP_HARDWARE_PIXELREAD TRUE -#define GDISP_HARDWARE_CONTROL TRUE +#define GDISP_HARDWARE_FLUSH TRUE // This controller requires flushing +#define GDISP_HARDWARE_DRAWPIXEL TRUE +#define GDISP_HARDWARE_PIXELREAD TRUE +#define GDISP_HARDWARE_CONTROL TRUE +#define GDISP_HARDWARE_BITFILLS TRUE -#define GDISP_LLD_PIXELFORMAT GDISP_PIXELFORMAT_MONO +#define GDISP_LLD_PIXELFORMAT GDISP_PIXELFORMAT_MONO #endif /* GFX_USE_GDISP */ diff --git a/keyboards/ergodox/infinity/gfxconf.h b/keyboards/ergodox/infinity/gfxconf.h index 8caa577b739..45b9f585809 100644 --- a/keyboards/ergodox/infinity/gfxconf.h +++ b/keyboards/ergodox/infinity/gfxconf.h @@ -143,7 +143,7 @@ #define GDISP_HARDWARE_DRAWPIXEL TRUE #define GDISP_HARDWARE_CLEARS FALSE #define GDISP_HARDWARE_FILLS FALSE - #define GDISP_HARDWARE_BITFILLS FALSE + //#define GDISP_HARDWARE_BITFILLS FALSE #define GDISP_HARDWARE_SCROLL FALSE #define GDISP_HARDWARE_PIXELREAD TRUE #define GDISP_HARDWARE_CONTROL TRUE From e6f7a8a47a82258725683980b83e215c8323aef2 Mon Sep 17 00:00:00 2001 From: Fred Sundvik Date: Sat, 1 Apr 2017 16:37:31 +0300 Subject: [PATCH 097/190] Display QMK logo at startup of Infinity Ergodox --- keyboards/ergodox/infinity/lcd_logo.png | Bin 0 -> 490 bytes keyboards/ergodox/infinity/visualizer.c | 89 +++++++++++++++++------- 2 files changed, 65 insertions(+), 24 deletions(-) create mode 100644 keyboards/ergodox/infinity/lcd_logo.png diff --git a/keyboards/ergodox/infinity/lcd_logo.png b/keyboards/ergodox/infinity/lcd_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..6cf26fc6783a5b586eedbc6ff0940e124795e9bf GIT binary patch literal 490 zcmVwbn1gKp4ks>ggHBQn#f%?f(k66Mz*M@DZc5GX^?yF7n3m0^nAJyA1J9 zXB@WzkY=`ql?*WpcLLz{<2wyX>!$tCwhj4L*#2&>7W_UPg`>t&iX0$icIkD+k+w)JLfu z=^qB|3q53BAu5w2h~wX`dshvxcTNj{TdG$bz$nHq<-!#pSrd0>faF. #include "visualizer.h" #include "led_test.h" -static const char* welcome_text[] = {"TMK", "Infinity Ergodox"}; +// To generate an image array like this +// Ensure the image is 128 x 32 or smaller +// Convert the bitmap to a C array using a program like http://www.riuson.com/lcd-image-converter/ +// Ensure the the conversion process produces a monochrome format array - 1 bit/pixel, left to right, top to bottom +// Update array in the source code with the C array produced by the conversion program -// Just an example how to write custom keyframe functions, we could have moved -// all this into the init function -bool display_welcome(keyframe_animation_t* animation, visualizer_state_t* state) { +// The image below is generated from lcd_logo.png +static const uint8_t image_data_lcd_logo[512] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xf8, 0xfe, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x38, 0x38, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x38, 0x38, 0x38, 0x06, 0x29, 0x41, 0x24, 0x52, 0x24, 0x46, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x38, 0x38, 0x38, 0x09, 0x55, 0x42, 0xaa, 0xaa, 0xaa, 0xa8, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x38, 0x38, 0x38, 0x09, 0x55, 0x82, 0x28, 0xaa, 0xae, 0x8c, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x38, 0x38, 0x38, 0x09, 0x55, 0x43, 0x28, 0xaa, 0xaa, 0x88, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x38, 0x38, 0x38, 0x0a, 0x55, 0x42, 0x28, 0xaa, 0xaa, 0x88, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x38, 0x38, 0x38, 0x05, 0x45, 0x42, 0x28, 0x89, 0x4a, 0x86, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x18, 0x38, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x1c, 0x38, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x0e, 0x38, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x03, 0xff, 0x80, 0x04, 0x45, 0x14, 0xa4, 0x92, 0x83, 0x52, 0x22, 0x22, 0x36, 0x00, 0x00, + 0x00, 0x00, 0x38, 0x00, 0x0a, 0xaa, 0xaa, 0xaa, 0xba, 0x84, 0x55, 0x55, 0x57, 0x45, 0x00, 0x00, + 0x00, 0x00, 0x38, 0x00, 0x08, 0xaa, 0xaa, 0xaa, 0x92, 0xb2, 0x55, 0x55, 0x42, 0x65, 0x00, 0x00, + 0x00, 0x00, 0x38, 0x00, 0x08, 0xaa, 0xaa, 0xaa, 0x92, 0x81, 0x56, 0x65, 0x42, 0x45, 0x00, 0x00, + 0x00, 0x00, 0x38, 0x00, 0x0a, 0xaa, 0xaa, 0xaa, 0x92, 0x81, 0x54, 0x45, 0x42, 0x45, 0x00, 0x00, + 0x00, 0x00, 0x38, 0x00, 0x04, 0x48, 0xa2, 0x4a, 0x89, 0x06, 0x24, 0x42, 0x41, 0x36, 0x00, 0x00, + 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 +}; + +static const uint32_t logo_background_color = LCD_COLOR(0x00, 0x00, 0x80); +static const uint32_t initial_color = LCD_COLOR(0, 0, 0xFF); + +bool display_logo(keyframe_animation_t* animation, visualizer_state_t* state) { + (void)state; (void)animation; + (void)state; // Read the uGFX documentation for information how to use the displays // http://wiki.ugfx.org/index.php/Main_Page gdispClear(White); + // You can use static variables for things that can't be found in the animation - // or state structs - gdispDrawString(0, 3, welcome_text[0], state->font_dejavusansbold12, Black); - gdispDrawString(0, 15, welcome_text[1], state->font_dejavusansbold12, Black); + // or state structs, here we use the image + + //gdispGBlitArea is a tricky function to use since it supports blitting part of the image + // if you have full screen image, then just use 128 and 32 for both source and target dimensions + gdispGBlitArea(GDISP, 0, 0, 128, 32, 0, 0, 128, (pixel_t*)image_data_lcd_logo); + // Always remember to flush the display gdispFlush(); - // you could set the backlight color as well, but we won't do it here, since - // it's part of the following animation - // lcd_backlight_color(hue, saturation, intensity); - // We don't need constant updates, just drawing the screen once is enough return false; } @@ -56,13 +99,12 @@ bool display_welcome(keyframe_animation_t* animation, visualizer_state_t* state) // Don't worry, if the startup animation is long, you can use the keyboard like normal // during that time static keyframe_animation_t startup_animation = { - .num_frames = 4, + .num_frames = 3, .loop = false, - .frame_lengths = {0, gfxMillisecondsToTicks(1000), gfxMillisecondsToTicks(5000), 0}, + .frame_lengths = {0, gfxMillisecondsToTicks(10000), 0}, .frame_functions = { - display_welcome, + display_logo, keyframe_animate_backlight_color, - keyframe_no_operation, enable_visualization }, }; @@ -78,6 +120,7 @@ static keyframe_animation_t color_animation = { .frame_functions = {keyframe_no_operation, keyframe_animate_backlight_color}, }; + // The LCD animation alternates between the layer name display and a // bitmap that displays all active layers static keyframe_animation_t lcd_animation = { @@ -99,14 +142,13 @@ static keyframe_animation_t suspend_animation = { }; static keyframe_animation_t resume_animation = { - .num_frames = 5, + .num_frames = 4, .loop = false, - .frame_lengths = {0, 0, gfxMillisecondsToTicks(1000), gfxMillisecondsToTicks(5000), 0}, + .frame_lengths = {0, 0, gfxMillisecondsToTicks(10000), 0}, .frame_functions = { keyframe_enable_lcd_and_backlight, - display_welcome, + display_logo, keyframe_animate_backlight_color, - keyframe_no_operation, enable_visualization, }, }; @@ -115,10 +157,9 @@ void initialize_user_visualizer(visualizer_state_t* state) { // The brightness will be dynamically adjustable in the future // But for now, change it here. lcd_backlight_brightness(0x50); - state->current_lcd_color = LCD_COLOR(0x00, 0x00, 0xFF); - state->target_lcd_color = LCD_COLOR(0x10, 0xFF, 0xFF); + state->current_lcd_color = initial_color; + state->target_lcd_color = logo_background_color; start_keyframe_animation(&startup_animation); - start_keyframe_animation(&led_test_animation); } void update_user_visualizer_state(visualizer_state_t* state) { @@ -161,8 +202,8 @@ void user_visualizer_suspend(visualizer_state_t* state) { } void user_visualizer_resume(visualizer_state_t* state) { - state->current_lcd_color = LCD_COLOR(0x00, 0x00, 0x00); - state->target_lcd_color = LCD_COLOR(0x10, 0xFF, 0xFF); + state->current_lcd_color = initial_color; + state->target_lcd_color = logo_background_color; start_keyframe_animation(&resume_animation); start_keyframe_animation(&led_test_animation); } From bc97413bf70b1906b387dea35bb22575ec57eff8 Mon Sep 17 00:00:00 2001 From: Fred Sundvik Date: Sat, 1 Apr 2017 16:38:12 +0300 Subject: [PATCH 098/190] Disable LEDs on Infinity Ergodox --- keyboards/ergodox/infinity/rules.mk | 2 +- keyboards/ergodox/infinity/visualizer.c | 2 -- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/keyboards/ergodox/infinity/rules.mk b/keyboards/ergodox/infinity/rules.mk index d51574acae5..aaadfe34b5f 100644 --- a/keyboards/ergodox/infinity/rules.mk +++ b/keyboards/ergodox/infinity/rules.mk @@ -61,7 +61,7 @@ CUSTOM_MATRIX ?= yes # Custom matrix file SERIAL_LINK_ENABLE = yes VISUALIZER_ENABLE ?= yes LCD_ENABLE ?= yes -LED_ENABLE ?= yes +LED_ENABLE ?= no LCD_BACKLIGHT_ENABLE ?= yes MIDI_ENABLE = no RGBLIGHT_ENABLE = no diff --git a/keyboards/ergodox/infinity/visualizer.c b/keyboards/ergodox/infinity/visualizer.c index 0ce1d4ae4e4..c8fc3d78efb 100644 --- a/keyboards/ergodox/infinity/visualizer.c +++ b/keyboards/ergodox/infinity/visualizer.c @@ -27,7 +27,6 @@ along with this program. If not, see . #endif #include "visualizer.h" -#include "led_test.h" // To generate an image array like this // Ensure the image is 128 x 32 or smaller @@ -205,5 +204,4 @@ void user_visualizer_resume(visualizer_state_t* state) { state->current_lcd_color = initial_color; state->target_lcd_color = logo_background_color; start_keyframe_animation(&resume_animation); - start_keyframe_animation(&led_test_animation); } From f113f95440f8cd7377930868656caf515dbd609c Mon Sep 17 00:00:00 2001 From: Fred Sundvik Date: Sat, 1 Apr 2017 17:43:38 +0300 Subject: [PATCH 099/190] Move CIE1931 and breathing tables to its own file --- build_keyboard.mk | 23 ++++++ .../gdisp/IS31FL3731C/gdisp_IS31FL3731C.c | 37 ++-------- quantum/led_tables.c | 71 +++++++++++++++++++ quantum/led_tables.h | 30 ++++++++ quantum/rgblight.c | 58 ++------------- quantum/visualizer/visualizer.mk | 4 +- 6 files changed, 136 insertions(+), 87 deletions(-) create mode 100644 quantum/led_tables.c create mode 100644 quantum/led_tables.h diff --git a/build_keyboard.mk b/build_keyboard.mk index ad92892e274..79d2b6b0f07 100644 --- a/build_keyboard.mk +++ b/build_keyboard.mk @@ -196,6 +196,8 @@ ifeq ($(strip $(RGBLIGHT_ENABLE)), yes) OPT_DEFS += -DRGBLIGHT_ENABLE SRC += $(QUANTUM_DIR)/light_ws2812.c SRC += $(QUANTUM_DIR)/rgblight.c + CIE1931_CURVE = yes + LED_BREATHING_TABLE = yes endif ifeq ($(strip $(TAP_DANCE_ENABLE)), yes) @@ -223,6 +225,27 @@ ifneq ($(strip $(MAX_VARIABLE_TRACE_SIZE)),) endif endif +ifeq ($(strip $(LCD_ENABLE)), yes) +CIE1931_CURVE = yes +endif + +ifeq ($(strip $(LED_ENABLE)), yes) +CIE1931_CURVE = yes +endif + +ifeq ($(strip $(CIE1931_CURVE)), yes) + OPT_DEFS += -DUSE_CIE1931_CURVE + LED_TABLES = yes +endif +ifeq ($(strip $(LED_BREATHING_TABLE)), yes) + OPT_DEFS += -DUSE_LED_BREATHING_TABLE + LED_TABLES = yes +endif + +ifeq ($(strip $(LED_TABLES)), yes) + SRC += $(QUANTUM_DIR)/led_tables.c +endif + # Optimize size but this may cause error "relocation truncated to fit" #EXTRALDFLAGS = -Wl,--relax diff --git a/keyboards/ergodox/infinity/drivers/gdisp/IS31FL3731C/gdisp_IS31FL3731C.c b/keyboards/ergodox/infinity/drivers/gdisp/IS31FL3731C/gdisp_IS31FL3731C.c index 1d21f0c498e..ea09c4bb0ce 100644 --- a/keyboards/ergodox/infinity/drivers/gdisp/IS31FL3731C/gdisp_IS31FL3731C.c +++ b/keyboards/ergodox/infinity/drivers/gdisp/IS31FL3731C/gdisp_IS31FL3731C.c @@ -25,6 +25,10 @@ along with this program. If not, see . #include "board_IS31FL3731C.h" + +// Can't include led_tables from here +extern const uint8_t CIE1931_CURVE[]; + /*===========================================================================*/ /* Driver local definitions. */ /*===========================================================================*/ @@ -100,37 +104,6 @@ along with this program. If not, see . #define IS31 -//Generated by http://jared.geek.nz/2013/feb/linear-led-pwm -const unsigned char cie[256] = { - 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, - 3, 4, 4, 4, 4, 4, 4, 5, 5, 5, - 5, 5, 6, 6, 6, 6, 6, 7, 7, 7, - 7, 8, 8, 8, 8, 9, 9, 9, 10, 10, - 10, 10, 11, 11, 11, 12, 12, 12, 13, 13, - 13, 14, 14, 15, 15, 15, 16, 16, 17, 17, - 17, 18, 18, 19, 19, 20, 20, 21, 21, 22, - 22, 23, 23, 24, 24, 25, 25, 26, 26, 27, - 28, 28, 29, 29, 30, 31, 31, 32, 32, 33, - 34, 34, 35, 36, 37, 37, 38, 39, 39, 40, - 41, 42, 43, 43, 44, 45, 46, 47, 47, 48, - 49, 50, 51, 52, 53, 54, 54, 55, 56, 57, - 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, - 68, 70, 71, 72, 73, 74, 75, 76, 77, 79, - 80, 81, 82, 83, 85, 86, 87, 88, 90, 91, - 92, 94, 95, 96, 98, 99, 100, 102, 103, 105, - 106, 108, 109, 110, 112, 113, 115, 116, 118, 120, - 121, 123, 124, 126, 128, 129, 131, 132, 134, 136, - 138, 139, 141, 143, 145, 146, 148, 150, 152, 154, - 155, 157, 159, 161, 163, 165, 167, 169, 171, 173, - 175, 177, 179, 181, 183, 185, 187, 189, 191, 193, - 196, 198, 200, 202, 204, 207, 209, 211, 214, 216, - 218, 220, 223, 225, 228, 230, 232, 235, 237, 240, - 242, 245, 247, 250, 252, 255, -}; - - /*===========================================================================*/ /* Driver local functions. */ /*===========================================================================*/ @@ -231,7 +204,7 @@ LLDSPEC bool_t gdisp_lld_init(GDisplay *g) { uint8_t* src = PRIV(g)->frame_buffer; for (int y=0;ywrite_buffer[get_led_address(g, x, y)]=cie[*src]; + PRIV(g)->write_buffer[get_led_address(g, x, y)]=CIE1931_CURVE[*src]; ++src; } } diff --git a/quantum/led_tables.c b/quantum/led_tables.c new file mode 100644 index 00000000000..b99f262097f --- /dev/null +++ b/quantum/led_tables.c @@ -0,0 +1,71 @@ +/* +Copyright 2017 Fred Sundvik + +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 "led_tables.h" + + +#ifdef USE_CIE1931_CURVE +// Lightness curve using the CIE 1931 lightness formula +//Generated by the python script provided in http://jared.geek.nz/2013/feb/linear-led-pwm +const uint8_t CIE1931_CURVE[] PROGMEM = { + 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, + 3, 4, 4, 4, 4, 4, 4, 5, 5, 5, + 5, 5, 6, 6, 6, 6, 6, 7, 7, 7, + 7, 8, 8, 8, 8, 9, 9, 9, 10, 10, + 10, 10, 11, 11, 11, 12, 12, 12, 13, 13, + 13, 14, 14, 15, 15, 15, 16, 16, 17, 17, + 17, 18, 18, 19, 19, 20, 20, 21, 21, 22, + 22, 23, 23, 24, 24, 25, 25, 26, 26, 27, + 28, 28, 29, 29, 30, 31, 31, 32, 32, 33, + 34, 34, 35, 36, 37, 37, 38, 39, 39, 40, + 41, 42, 43, 43, 44, 45, 46, 47, 47, 48, + 49, 50, 51, 52, 53, 54, 54, 55, 56, 57, + 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, + 68, 70, 71, 72, 73, 74, 75, 76, 77, 79, + 80, 81, 82, 83, 85, 86, 87, 88, 90, 91, + 92, 94, 95, 96, 98, 99, 100, 102, 103, 105, + 106, 108, 109, 110, 112, 113, 115, 116, 118, 120, + 121, 123, 124, 126, 128, 129, 131, 132, 134, 136, + 138, 139, 141, 143, 145, 146, 148, 150, 152, 154, + 155, 157, 159, 161, 163, 165, 167, 169, 171, 173, + 175, 177, 179, 181, 183, 185, 187, 189, 191, 193, + 196, 198, 200, 202, 204, 207, 209, 211, 214, 216, + 218, 220, 223, 225, 228, 230, 232, 235, 237, 240, + 242, 245, 247, 250, 252, 255, + }; +#endif + +#ifdef USE_LED_BREATHING_TABLE +const uint8_t LED_BREATHING_TABLE[] PROGMEM = { + 0, 0, 0, 0, 1, 1, 1, 2, 2, 3, 4, 5, 5, 6, 7, 9, + 10, 11, 12, 14, 15, 17, 18, 20, 21, 23, 25, 27, 29, 31, 33, 35, + 37, 40, 42, 44, 47, 49, 52, 54, 57, 59, 62, 65, 67, 70, 73, 76, + 79, 82, 85, 88, 90, 93, 97, 100, 103, 106, 109, 112, 115, 118, 121, 124, + 127, 131, 134, 137, 140, 143, 146, 149, 152, 155, 158, 162, 165, 167, 170, 173, + 176, 179, 182, 185, 188, 190, 193, 196, 198, 201, 203, 206, 208, 211, 213, 215, + 218, 220, 222, 224, 226, 228, 230, 232, 234, 235, 237, 238, 240, 241, 243, 244, + 245, 246, 248, 249, 250, 250, 251, 252, 253, 253, 254, 254, 254, 255, 255, 255, + 255, 255, 255, 255, 254, 254, 254, 253, 253, 252, 251, 250, 250, 249, 248, 246, + 245, 244, 243, 241, 240, 238, 237, 235, 234, 232, 230, 228, 226, 224, 222, 220, + 218, 215, 213, 211, 208, 206, 203, 201, 198, 196, 193, 190, 188, 185, 182, 179, + 176, 173, 170, 167, 165, 162, 158, 155, 152, 149, 146, 143, 140, 137, 134, 131, + 128, 124, 121, 118, 115, 112, 109, 106, 103, 100, 97, 93, 90, 88, 85, 82, + 79, 76, 73, 70, 67, 65, 62, 59, 57, 54, 52, 49, 47, 44, 42, 40, + 37, 35, 33, 31, 29, 27, 25, 23, 21, 20, 18, 17, 15, 14, 12, 11, + 10, 9, 7, 6, 5, 5, 4, 3, 2, 2, 1, 1, 1, 0, 0, 0 +}; +#endif diff --git a/quantum/led_tables.h b/quantum/led_tables.h new file mode 100644 index 00000000000..af49bf3323f --- /dev/null +++ b/quantum/led_tables.h @@ -0,0 +1,30 @@ +/* +Copyright 2017 Fred Sundvik + +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 LED_TABLES_H +#define LED_TABLES_H + +#include "progmem.h" +#include + +#ifdef USE_CIE1931_CURVE +extern const uint8_t CIE1931_CURVE[] PROGMEM; +#endif + +#ifdef USE_LED_BREATHING_TABLE +extern const uint8_t LED_BREATHING_TABLE[] PROGMEM; +#endif + +#endif diff --git a/quantum/rgblight.c b/quantum/rgblight.c index eff70aae1df..4eec2a77620 100644 --- a/quantum/rgblight.c +++ b/quantum/rgblight.c @@ -20,56 +20,8 @@ #include "timer.h" #include "rgblight.h" #include "debug.h" +#include "led_tables.h" -// Lightness curve using the CIE 1931 lightness formula -//Generated by the python script provided in http://jared.geek.nz/2013/feb/linear-led-pwm -const uint8_t DIM_CURVE[] PROGMEM = { - 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, - 3, 4, 4, 4, 4, 4, 4, 5, 5, 5, - 5, 5, 6, 6, 6, 6, 6, 7, 7, 7, - 7, 8, 8, 8, 8, 9, 9, 9, 10, 10, - 10, 10, 11, 11, 11, 12, 12, 12, 13, 13, - 13, 14, 14, 15, 15, 15, 16, 16, 17, 17, - 17, 18, 18, 19, 19, 20, 20, 21, 21, 22, - 22, 23, 23, 24, 24, 25, 25, 26, 26, 27, - 28, 28, 29, 29, 30, 31, 31, 32, 32, 33, - 34, 34, 35, 36, 37, 37, 38, 39, 39, 40, - 41, 42, 43, 43, 44, 45, 46, 47, 47, 48, - 49, 50, 51, 52, 53, 54, 54, 55, 56, 57, - 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, - 68, 70, 71, 72, 73, 74, 75, 76, 77, 79, - 80, 81, 82, 83, 85, 86, 87, 88, 90, 91, - 92, 94, 95, 96, 98, 99, 100, 102, 103, 105, - 106, 108, 109, 110, 112, 113, 115, 116, 118, 120, - 121, 123, 124, 126, 128, 129, 131, 132, 134, 136, - 138, 139, 141, 143, 145, 146, 148, 150, 152, 154, - 155, 157, 159, 161, 163, 165, 167, 169, 171, 173, - 175, 177, 179, 181, 183, 185, 187, 189, 191, 193, - 196, 198, 200, 202, 204, 207, 209, 211, 214, 216, - 218, 220, 223, 225, 228, 230, 232, 235, 237, 240, - 242, 245, 247, 250, 252, 255, - }; - -const uint8_t RGBLED_BREATHING_TABLE[] PROGMEM = { - 0, 0, 0, 0, 1, 1, 1, 2, 2, 3, 4, 5, 5, 6, 7, 9, - 10, 11, 12, 14, 15, 17, 18, 20, 21, 23, 25, 27, 29, 31, 33, 35, - 37, 40, 42, 44, 47, 49, 52, 54, 57, 59, 62, 65, 67, 70, 73, 76, - 79, 82, 85, 88, 90, 93, 97, 100, 103, 106, 109, 112, 115, 118, 121, 124, - 127, 131, 134, 137, 140, 143, 146, 149, 152, 155, 158, 162, 165, 167, 170, 173, - 176, 179, 182, 185, 188, 190, 193, 196, 198, 201, 203, 206, 208, 211, 213, 215, - 218, 220, 222, 224, 226, 228, 230, 232, 234, 235, 237, 238, 240, 241, 243, 244, - 245, 246, 248, 249, 250, 250, 251, 252, 253, 253, 254, 254, 254, 255, 255, 255, - 255, 255, 255, 255, 254, 254, 254, 253, 253, 252, 251, 250, 250, 249, 248, 246, - 245, 244, 243, 241, 240, 238, 237, 235, 234, 232, 230, 228, 226, 224, 222, 220, - 218, 215, 213, 211, 208, 206, 203, 201, 198, 196, 193, 190, 188, 185, 182, 179, - 176, 173, 170, 167, 165, 162, 158, 155, 152, 149, 146, 143, 140, 137, 134, 131, - 128, 124, 121, 118, 115, 112, 109, 106, 103, 100, 97, 93, 90, 88, 85, 82, - 79, 76, 73, 70, 67, 65, 62, 59, 57, 54, 52, 49, 47, 44, 42, 40, - 37, 35, 33, 31, 29, 27, 25, 23, 21, 20, 18, 17, 15, 14, 12, 11, - 10, 9, 7, 6, 5, 5, 4, 3, 2, 2, 1, 1, 1, 0, 0, 0 -}; __attribute__ ((weak)) const uint8_t RGBLED_BREATHING_INTERVALS[] PROGMEM = {30, 20, 10, 5}; @@ -135,9 +87,9 @@ void sethsv(uint16_t hue, uint8_t sat, uint8_t val, LED_TYPE *led1) { break; } } - r = pgm_read_byte(&DIM_CURVE[r]); - g = pgm_read_byte(&DIM_CURVE[g]); - b = pgm_read_byte(&DIM_CURVE[b]); + r = pgm_read_byte(&CIE1931_CURVE[r]); + g = pgm_read_byte(&CIE1931_CURVE[g]); + b = pgm_read_byte(&CIE1931_CURVE[b]); setrgb(r, g, b, led1); } @@ -509,7 +461,7 @@ void rgblight_effect_breathing(uint8_t interval) { } last_timer = timer_read(); - rgblight_sethsv_noeeprom(rgblight_config.hue, rgblight_config.sat, pgm_read_byte(&RGBLED_BREATHING_TABLE[pos])); + rgblight_sethsv_noeeprom(rgblight_config.hue, rgblight_config.sat, pgm_read_byte(&LED_BREATHING_TABLE[pos])); pos = (pos + 1) % 256; } void rgblight_effect_rainbow_mood(uint8_t interval) { diff --git a/quantum/visualizer/visualizer.mk b/quantum/visualizer/visualizer.mk index 8f5fb893345..3861cb1f042 100644 --- a/quantum/visualizer/visualizer.mk +++ b/quantum/visualizer/visualizer.mk @@ -32,12 +32,12 @@ OPT_DEFS += -DLCD_ENABLE ULIBS += -lm endif -ifdef LCD_BACKLIGHT_ENABLE +ifeq ($(strip $(LCD_ENABLE)), yes) SRC += $(VISUALIZER_DIR)/lcd_backlight.c OPT_DEFS += -DLCD_BACKLIGHT_ENABLE endif -ifdef LED_ENABLE +ifeq ($(strip $(LED_ENABLE)), yes) SRC += $(VISUALIZER_DIR)/led_test.c OPT_DEFS += -DLED_ENABLE endif From 951b6f33a0dc479d29831aaa5c73fc526faf0471 Mon Sep 17 00:00:00 2001 From: Fred Sundvik Date: Sat, 1 Apr 2017 21:28:27 +0300 Subject: [PATCH 100/190] CIE 1931 for the LCD backlight --- keyboards/ergodox/infinity/infinity.c | 29 ++++++++++++++++++++++--- keyboards/ergodox/infinity/visualizer.c | 6 ++--- 2 files changed, 29 insertions(+), 6 deletions(-) diff --git a/keyboards/ergodox/infinity/infinity.c b/keyboards/ergodox/infinity/infinity.c index 02db67eaf26..ecc072abbe5 100644 --- a/keyboards/ergodox/infinity/infinity.c +++ b/keyboards/ergodox/infinity/infinity.c @@ -70,10 +70,33 @@ void lcd_backlight_hal_init(void) { RGB_PORT->PCR[BLUE_PIN] = RGB_MODE; } +static uint16_t cie_lightness(uint16_t v) { + // The CIE 1931 formula for lightness + // Y = luminance (output) 0-1 + // L = lightness input 0 - 100 + + // Y = (L* / 902.3) if L* <= 8 + // Y = ((L* + 16) / 116)^3 if L* > 8 + + float l = 100.0f * (v / 65535.0f); + float y = 0.0f; + if (l <= 8.0f) { + y = l / 902.3; + } + else { + y = ((l + 16.0f) / 116.0f); + y = y * y * y; + if (y > 1.0f) { + y = 1.0f; + } + } + return y * 65535.0f; +} + void lcd_backlight_hal_color(uint16_t r, uint16_t g, uint16_t b) { - CHANNEL_RED.CnV = r; - CHANNEL_GREEN.CnV = g; - CHANNEL_BLUE.CnV = b; + CHANNEL_RED.CnV = cie_lightness(r); + CHANNEL_GREEN.CnV = cie_lightness(g); + CHANNEL_BLUE.CnV = cie_lightness(b); } __attribute__ ((weak)) diff --git a/keyboards/ergodox/infinity/visualizer.c b/keyboards/ergodox/infinity/visualizer.c index c8fc3d78efb..12336fdc57a 100644 --- a/keyboards/ergodox/infinity/visualizer.c +++ b/keyboards/ergodox/infinity/visualizer.c @@ -70,8 +70,8 @@ static const uint8_t image_data_lcd_logo[512] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; -static const uint32_t logo_background_color = LCD_COLOR(0x00, 0x00, 0x80); -static const uint32_t initial_color = LCD_COLOR(0, 0, 0xFF); +static const uint32_t logo_background_color = LCD_COLOR(0x00, 0x00, 0xFF); +static const uint32_t initial_color = LCD_COLOR(0, 0, 0); bool display_logo(keyframe_animation_t* animation, visualizer_state_t* state) { (void)state; @@ -155,7 +155,7 @@ static keyframe_animation_t resume_animation = { void initialize_user_visualizer(visualizer_state_t* state) { // The brightness will be dynamically adjustable in the future // But for now, change it here. - lcd_backlight_brightness(0x50); + lcd_backlight_brightness(130); state->current_lcd_color = initial_color; state->target_lcd_color = logo_background_color; start_keyframe_animation(&startup_animation); From 9a4ce28683b667ab67d48d92196bab7e277d4800 Mon Sep 17 00:00:00 2001 From: Fred Sundvik Date: Sat, 1 Apr 2017 22:52:58 +0300 Subject: [PATCH 101/190] Display layer bitmap and keyboard led states on the LCD --- keyboards/ergodox/infinity/visualizer.c | 86 ++++++++++++++++--------- quantum/visualizer/visualizer.c | 38 ++++++++++- quantum/visualizer/visualizer.h | 4 +- 3 files changed, 97 insertions(+), 31 deletions(-) diff --git a/keyboards/ergodox/infinity/visualizer.c b/keyboards/ergodox/infinity/visualizer.c index 12336fdc57a..6af3a72ee1e 100644 --- a/keyboards/ergodox/infinity/visualizer.c +++ b/keyboards/ergodox/infinity/visualizer.c @@ -73,6 +73,14 @@ static const uint8_t image_data_lcd_logo[512] = { static const uint32_t logo_background_color = LCD_COLOR(0x00, 0x00, 0xFF); static const uint32_t initial_color = LCD_COLOR(0, 0, 0); +typedef enum { + LCD_STATE_INITIAL, + LCD_STATE_LAYER_BITMAP, + LCD_STATE_BITMAP_AND_LEDS, +} lcd_state_t; + +static lcd_state_t lcd_state = LCD_STATE_INITIAL; + bool display_logo(keyframe_animation_t* animation, visualizer_state_t* state) { (void)state; (void)animation; @@ -122,11 +130,18 @@ static keyframe_animation_t color_animation = { // The LCD animation alternates between the layer name display and a // bitmap that displays all active layers -static keyframe_animation_t lcd_animation = { +static keyframe_animation_t lcd_bitmap_animation = { + .num_frames = 1, + .loop = false, + .frame_lengths = {gfxMillisecondsToTicks(0)}, + .frame_functions = {keyframe_display_layer_bitmap}, +}; + +static keyframe_animation_t lcd_bitmap_leds_animation = { .num_frames = 2, .loop = true, .frame_lengths = {gfxMillisecondsToTicks(2000), gfxMillisecondsToTicks(2000)}, - .frame_functions = {keyframe_display_layer_text, keyframe_display_layer_bitmap}, + .frame_functions = {keyframe_display_layer_bitmap, keyframe_display_led_states}, }; static keyframe_animation_t suspend_animation = { @@ -158,38 +173,50 @@ void initialize_user_visualizer(visualizer_state_t* state) { lcd_backlight_brightness(130); state->current_lcd_color = initial_color; state->target_lcd_color = logo_background_color; + lcd_state = LCD_STATE_INITIAL; start_keyframe_animation(&startup_animation); } -void update_user_visualizer_state(visualizer_state_t* state) { - // Add more tests, change the colors and layer texts here - // Usually you want to check the high bits (higher layers first) - // because that's the order layers are processed for keypresses - // You can for check for example: - // state->status.layer - // state->status.default_layer - // state->status.leds (see led.h for available statuses) - if (state->status.layer & 0x8) { - state->target_lcd_color = LCD_COLOR(0xC0, 0xB0, 0xFF); - state->layer_text = "Numpad"; - } - else if (state->status.layer & 0x4) { - state->target_lcd_color = LCD_COLOR(0, 0xB0, 0xFF); - state->layer_text = "KBD functions"; - } - else if (state->status.layer & 0x2) { - state->target_lcd_color = LCD_COLOR(0x80, 0xB0, 0xFF); - state->layer_text = "Function keys"; - } - else { +void update_user_visualizer_state(visualizer_state_t* state, visualizer_keyboard_status_t prev_status) { + // Check the status here to start and stop animations + // You might have to save some state, like the current animation here so that you can start the right + // This function is called every time the status changes + + // NOTE that this is called from the visualizer thread, so don't access anything else outside the status + // This is also important because the slave won't have access to the active layer for example outside the + // status. + + if (lcd_state == LCD_STATE_INITIAL) { state->target_lcd_color = LCD_COLOR(0x40, 0xB0, 0xFF); - state->layer_text = "Default"; + start_keyframe_animation(&color_animation); + } + + if (state->status.leds) { + if (lcd_state != LCD_STATE_BITMAP_AND_LEDS || + state->status.leds != prev_status.leds || + state->status.layer != prev_status.layer || + state->status.default_layer != prev_status.default_layer) { + + // NOTE: that it doesn't matter if the animation isn't playing, stop will do nothing in that case + stop_keyframe_animation(&lcd_bitmap_animation); + + lcd_state = LCD_STATE_BITMAP_AND_LEDS; + // For information: + // The logic in this function makes sure that this doesn't happen, but if you call start on an + // animation that is already playing it will be restarted. + start_keyframe_animation(&lcd_bitmap_leds_animation); + } + } else { + if (lcd_state != LCD_STATE_LAYER_BITMAP || + state->status.layer != prev_status.layer || + state->status.default_layer != prev_status.default_layer) { + + stop_keyframe_animation(&lcd_bitmap_leds_animation); + + lcd_state = LCD_STATE_LAYER_BITMAP; + start_keyframe_animation(&lcd_bitmap_animation); + } } - // You can also stop existing animations, and start your custom ones here - // remember that you should normally have only one animation for the LCD - // and one for the background. But you can also combine them if you want. - start_keyframe_animation(&lcd_animation); - start_keyframe_animation(&color_animation); } void user_visualizer_suspend(visualizer_state_t* state) { @@ -203,5 +230,6 @@ void user_visualizer_suspend(visualizer_state_t* state) { void user_visualizer_resume(visualizer_state_t* state) { state->current_lcd_color = initial_color; state->target_lcd_color = logo_background_color; + lcd_state = LCD_STATE_INITIAL; start_keyframe_animation(&resume_animation); } diff --git a/quantum/visualizer/visualizer.c b/quantum/visualizer/visualizer.c index 5826d909e45..62ebebceed3 100644 --- a/quantum/visualizer/visualizer.c +++ b/quantum/visualizer/visualizer.c @@ -56,6 +56,8 @@ SOFTWARE. // mods status #include "action_util.h" +#include "led.h" + static visualizer_keyboard_status_t current_status = { .layer = 0xFFFFFFFF, .default_layer = 0xFFFFFFFF, @@ -350,6 +352,39 @@ bool keyframe_display_mods_bitmap(keyframe_animation_t* animation, visualizer_st gdispFlush(); return false; } + +bool keyframe_display_led_states(keyframe_animation_t* animation, visualizer_state_t* state) +{ + char output[sizeof("NUM CAPS SCRL COMP KANA")]; + uint8_t pos = 0; + + if (state->status.leds & (1u << USB_LED_NUM_LOCK)) { + memcpy(output + pos, "NUM ", 4); + pos += 4; + } + if (state->status.leds & (1u << USB_LED_CAPS_LOCK)) { + memcpy(output + pos, "CAPS ", 5); + pos += 5; + } + if (state->status.leds & (1u << USB_LED_SCROLL_LOCK)) { + memcpy(output + pos, "SCRL ", 5); + pos += 5; + } + if (state->status.leds & (1u << USB_LED_COMPOSE)) { + memcpy(output + pos, "COMP ", 5); + pos += 5; + } + if (state->status.leds & (1u << USB_LED_KANA)) { + memcpy(output + pos, "KANA ", 5); + pos += 5; + } + output[pos] = 0; + gdispClear(White); + gdispDrawString(0, 10, output, state->font_dejavusansbold12, Black); + gdispFlush(); + return false; +} + #endif // LCD_ENABLE bool keyframe_disable_lcd_and_backlight(keyframe_animation_t* animation, visualizer_state_t* state) { @@ -433,8 +468,9 @@ static DECLARE_THREAD_FUNCTION(visualizerThread, arg) { user_visualizer_suspend(&state); } else { + visualizer_keyboard_status_t prev_status = state.status; state.status = current_status; - update_user_visualizer_state(&state); + update_user_visualizer_state(&state, prev_status); } state.prev_lcd_color = state.current_lcd_color; } diff --git a/quantum/visualizer/visualizer.h b/quantum/visualizer/visualizer.h index 315af50228a..2c81cb9f71e 100644 --- a/quantum/visualizer/visualizer.h +++ b/quantum/visualizer/visualizer.h @@ -136,6 +136,8 @@ bool keyframe_display_layer_text(keyframe_animation_t* animation, visualizer_sta bool keyframe_display_layer_bitmap(keyframe_animation_t* animation, visualizer_state_t* state); // Displays a bitmap (0/1) of all the currently active mods bool keyframe_display_mods_bitmap(keyframe_animation_t* animation, visualizer_state_t* state); +// Displays the keyboard led states (CAPS (Caps lock), NUM (Num lock), SCRL (Scroll lock), COMP (Compose), KANA) +bool keyframe_display_led_states(keyframe_animation_t* animation, visualizer_state_t* state); bool keyframe_disable_lcd_and_backlight(keyframe_animation_t* animation, visualizer_state_t* state); bool keyframe_enable_lcd_and_backlight(keyframe_animation_t* animation, visualizer_state_t* state); @@ -146,7 +148,7 @@ bool enable_visualization(keyframe_animation_t* animation, visualizer_state_t* s // These functions have to be implemented by the user void initialize_user_visualizer(visualizer_state_t* state); -void update_user_visualizer_state(visualizer_state_t* state); +void update_user_visualizer_state(visualizer_state_t* state, visualizer_keyboard_status_t prev_status); void user_visualizer_suspend(visualizer_state_t* state); void user_visualizer_resume(visualizer_state_t* state); From 39385144e7dc3337e623cdc8147b4a441f22fd62 Mon Sep 17 00:00:00 2001 From: Fred Sundvik Date: Sun, 2 Apr 2017 01:31:04 +0300 Subject: [PATCH 102/190] Emulate Ergodox EZ leds by LCD colors --- keyboards/ergodox/infinity/config.h | 2 + keyboards/ergodox/infinity/infinity.c | 22 ++- keyboards/ergodox/infinity/infinity.h | 71 ++++++---- keyboards/ergodox/infinity/visualizer.c | 175 ++++++++++++++++++++++-- quantum/visualizer/visualizer.c | 25 +++- quantum/visualizer/visualizer.h | 8 ++ 6 files changed, 258 insertions(+), 45 deletions(-) diff --git a/keyboards/ergodox/infinity/config.h b/keyboards/ergodox/infinity/config.h index 9e264083be7..6cde193e13c 100644 --- a/keyboards/ergodox/infinity/config.h +++ b/keyboards/ergodox/infinity/config.h @@ -54,6 +54,8 @@ along with this program. If not, see . // The visualizer needs gfx thread priorities #define VISUALIZER_THREAD_PRIORITY (NORMAL_PRIORITY - 2) +#define VISUALIZER_USER_DATA_SIZE 16 + /* * Feature disable options * These options are also useful to firmware size reduction. diff --git a/keyboards/ergodox/infinity/infinity.c b/keyboards/ergodox/infinity/infinity.c index ecc072abbe5..62259ed3f68 100644 --- a/keyboards/ergodox/infinity/infinity.c +++ b/keyboards/ergodox/infinity/infinity.c @@ -126,34 +126,48 @@ void matrix_scan_kb(void) { matrix_scan_user(); } +__attribute__ ((weak)) void ergodox_board_led_on(void){ } +__attribute__ ((weak)) void ergodox_right_led_1_on(void){ } +__attribute__ ((weak)) void ergodox_right_led_2_on(void){ } +__attribute__ ((weak)) void ergodox_right_led_3_on(void){ } -void ergodox_right_led_on(uint8_t led){ -} - +__attribute__ ((weak)) void ergodox_board_led_off(void){ } +__attribute__ ((weak)) void ergodox_right_led_1_off(void){ } +__attribute__ ((weak)) void ergodox_right_led_2_off(void){ } +__attribute__ ((weak)) void ergodox_right_led_3_off(void){ } -void ergodox_right_led_off(uint8_t led){ +__attribute__ ((weak)) +void ergodox_right_led_1_set(uint8_t n) { +} + +__attribute__ ((weak)) +void ergodox_right_led_2_set(uint8_t n) { +} + +__attribute__ ((weak)) +void ergodox_right_led_3_set(uint8_t n) { } #ifdef ONEHAND_ENABLE diff --git a/keyboards/ergodox/infinity/infinity.h b/keyboards/ergodox/infinity/infinity.h index fec9e565cd6..73a0f4bf704 100644 --- a/keyboards/ergodox/infinity/infinity.h +++ b/keyboards/ergodox/infinity/infinity.h @@ -7,13 +7,38 @@ void ergodox_board_led_on(void); void ergodox_right_led_1_on(void); void ergodox_right_led_2_on(void); void ergodox_right_led_3_on(void); -void ergodox_right_led_on(uint8_t led); + +inline void ergodox_right_led_on(uint8_t led) { + switch (led) { + case 0: + ergodox_right_led_1_on(); + break; + case 1: + ergodox_right_led_2_on(); + break; + case 2: + ergodox_right_led_3_on(); + break; + } +} void ergodox_board_led_off(void); void ergodox_right_led_1_off(void); void ergodox_right_led_2_off(void); void ergodox_right_led_3_off(void); -void ergodox_right_led_off(uint8_t led); +inline void ergodox_right_led_off(uint8_t led) { + switch (led) { + case 0: + ergodox_right_led_1_off(); + break; + case 1: + ergodox_right_led_2_off(); + break; + case 2: + ergodox_right_led_3_off(); + break; + } +} inline void ergodox_led_all_on(void) { @@ -31,36 +56,22 @@ inline void ergodox_led_all_off(void) ergodox_right_led_3_off(); } -inline void ergodox_right_led_1_set(uint8_t n){ - if (n) { - ergodox_right_led_1_on(); - } else { - ergodox_right_led_1_off(); - } -} - -inline void ergodox_right_led_2_set(uint8_t n){ - if (n) { - ergodox_right_led_2_on(); - } else { - ergodox_right_led_2_off(); - } -} - -inline void ergodox_right_led_3_set(uint8_t n){ - if (n) { - ergodox_right_led_3_on(); - } else { - ergodox_right_led_3_off(); - } -} +void ergodox_right_led_1_set(uint8_t n); +void ergodox_right_led_2_set(uint8_t n); +void ergodox_right_led_3_set(uint8_t n); inline void ergodox_right_led_set(uint8_t led, uint8_t n){ - if (n) { - ergodox_right_led_on(led); - } else { - ergodox_right_led_off(led); - } + switch (led) { + case 0: + ergodox_right_led_1_set(n); + break; + case 1: + ergodox_right_led_2_set(n); + break; + case 2: + ergodox_right_led_3_set(n); + break; + } } inline void ergodox_led_all_set(uint8_t n) { diff --git a/keyboards/ergodox/infinity/visualizer.c b/keyboards/ergodox/infinity/visualizer.c index 6af3a72ee1e..7bc42fbc705 100644 --- a/keyboards/ergodox/infinity/visualizer.c +++ b/keyboards/ergodox/infinity/visualizer.c @@ -27,6 +27,7 @@ along with this program. If not, see . #endif #include "visualizer.h" +#include "system/serial_link.h" // To generate an image array like this // Ensure the image is 128 x 32 or smaller @@ -73,6 +74,15 @@ static const uint8_t image_data_lcd_logo[512] = { static const uint32_t logo_background_color = LCD_COLOR(0x00, 0x00, 0xFF); static const uint32_t initial_color = LCD_COLOR(0, 0, 0); +static const uint32_t led_emulation_colors[4] = { + LCD_COLOR(0, 0, 0), + LCD_COLOR(255, 255, 255), + LCD_COLOR(84, 255, 255), + LCD_COLOR(168, 255, 255), +}; + +static uint32_t next_led_target_color = 0; + typedef enum { LCD_STATE_INITIAL, LCD_STATE_LAYER_BITMAP, @@ -81,6 +91,19 @@ typedef enum { static lcd_state_t lcd_state = LCD_STATE_INITIAL; +typedef struct { + uint8_t led_on; + uint8_t led1; + uint8_t led2; + uint8_t led3; +} visualizer_user_data_t; + +// Don't access from visualization function, use the visualizer state instead +static visualizer_user_data_t user_data_keyboard = {}; + +_Static_assert(sizeof(visualizer_user_data_t) <= VISUALIZER_USER_DATA_SIZE, + "Please increase the VISUALIZER_USER_DATA_SIZE"); + bool display_logo(keyframe_animation_t* animation, visualizer_state_t* state) { (void)state; (void)animation; @@ -117,16 +140,27 @@ static keyframe_animation_t startup_animation = { }; // The color animation animates the LCD color when you change layers -static keyframe_animation_t color_animation = { - .num_frames = 2, +static keyframe_animation_t one_led_color = { + .num_frames = 1, .loop = false, - // Note that there's a 200 ms no-operation frame, - // this prevents the color from changing when activating the layer - // momentarily - .frame_lengths = {gfxMillisecondsToTicks(200), gfxMillisecondsToTicks(500)}, - .frame_functions = {keyframe_no_operation, keyframe_animate_backlight_color}, + .frame_lengths = {gfxMillisecondsToTicks(0)}, + .frame_functions = {keyframe_set_backlight_color}, }; +bool swap_led_target_color(keyframe_animation_t* animation, visualizer_state_t* state) { + uint32_t temp = next_led_target_color; + next_led_target_color = state->target_lcd_color; + state->target_lcd_color = temp; + return false; +} + +// The color animation animates the LCD color when you change layers +static keyframe_animation_t two_led_colors = { + .num_frames = 2, + .loop = true, + .frame_lengths = {gfxMillisecondsToTicks(1000), gfxMillisecondsToTicks(0)}, + .frame_functions = {keyframe_set_backlight_color, swap_led_target_color}, +}; // The LCD animation alternates between the layer name display and a // bitmap that displays all active layers @@ -177,6 +211,45 @@ void initialize_user_visualizer(visualizer_state_t* state) { start_keyframe_animation(&startup_animation); } +static const uint32_t red; +static const uint32_t green; +static const uint32_t blue; + +inline bool is_led_on(visualizer_user_data_t* user_data, uint8_t num) { + return user_data->led_on & (1u << num); +} + +static uint8_t get_led_index_master(visualizer_user_data_t* user_data) { + for (int i=0; i < 3; i++) { + if (is_led_on(user_data, i)) { + return i + 1; + } + } + return 0; +} + +static uint8_t get_led_index_slave(visualizer_user_data_t* user_data) { + uint8_t master_index = get_led_index_master(user_data); + if (master_index!=0) { + for (int i=master_index; i < 3; i++) { + if (is_led_on(user_data, i)) { + return i + 1; + } + } + } + + return 0; +} + +static uint8_t get_secondary_led_index(visualizer_user_data_t* user_data) { + if (is_led_on(user_data, 0) && + is_led_on(user_data, 1) && + is_led_on(user_data, 2)) { + return 3; + } + return 0; +} + void update_user_visualizer_state(visualizer_state_t* state, visualizer_keyboard_status_t prev_status) { // Check the status here to start and stop animations // You might have to save some state, like the current animation here so that you can start the right @@ -186,9 +259,38 @@ void update_user_visualizer_state(visualizer_state_t* state, visualizer_keyboard // This is also important because the slave won't have access to the active layer for example outside the // status. - if (lcd_state == LCD_STATE_INITIAL) { - state->target_lcd_color = LCD_COLOR(0x40, 0xB0, 0xFF); - start_keyframe_animation(&color_animation); + + visualizer_user_data_t* user_data_new = (visualizer_user_data_t*)state->status.user_data; + visualizer_user_data_t* user_data_old = (visualizer_user_data_t*)prev_status.user_data; + + uint8_t new_index; + uint8_t old_index; + + if (is_serial_link_master()) { + new_index = get_led_index_master(user_data_new); + old_index = get_led_index_master(user_data_old); + } + else { + new_index = get_led_index_slave(user_data_new); + old_index = get_led_index_slave(user_data_old); + } + uint8_t new_secondary_index = get_secondary_led_index(user_data_new); + uint8_t old_secondary_index = get_secondary_led_index(user_data_old); + + if (lcd_state == LCD_STATE_INITIAL || + new_index != old_index || + new_secondary_index != old_secondary_index) { + + if (new_secondary_index != 0) { + state->target_lcd_color = led_emulation_colors[new_index]; + next_led_target_color = led_emulation_colors[new_secondary_index]; + stop_keyframe_animation(&one_led_color); + start_keyframe_animation(&two_led_colors); + } else { + state->target_lcd_color = led_emulation_colors[new_index]; + stop_keyframe_animation(&two_led_colors); + start_keyframe_animation(&one_led_color); + } } if (state->status.leds) { @@ -233,3 +335,56 @@ void user_visualizer_resume(visualizer_state_t* state) { lcd_state = LCD_STATE_INITIAL; start_keyframe_animation(&resume_animation); } + +void ergodox_board_led_on(void){ + // No board led support +} + +void ergodox_right_led_1_on(void){ + user_data_keyboard.led_on |= (1u << 0); + visualizer_set_user_data(&user_data_keyboard); +} + +void ergodox_right_led_2_on(void){ + user_data_keyboard.led_on |= (1u << 1); + visualizer_set_user_data(&user_data_keyboard); +} + +void ergodox_right_led_3_on(void){ + user_data_keyboard.led_on |= (1u << 2); + visualizer_set_user_data(&user_data_keyboard); +} + +void ergodox_board_led_off(void){ + // No board led support +} + +void ergodox_right_led_1_off(void){ + user_data_keyboard.led_on &= ~(1u << 0); + visualizer_set_user_data(&user_data_keyboard); +} + +void ergodox_right_led_2_off(void){ + user_data_keyboard.led_on &= ~(1u << 1); + visualizer_set_user_data(&user_data_keyboard); +} + +void ergodox_right_led_3_off(void){ + user_data_keyboard.led_on &= ~(1u << 2); + visualizer_set_user_data(&user_data_keyboard); +} + +void ergodox_right_led_1_set(uint8_t n) { + user_data_keyboard.led1 = n; + visualizer_set_user_data(&user_data_keyboard); +} + +void ergodox_right_led_2_set(uint8_t n) { + user_data_keyboard.led2 = n; + visualizer_set_user_data(&user_data_keyboard); +} + +void ergodox_right_led_3_set(uint8_t n) { + user_data_keyboard.led3 = n; + visualizer_set_user_data(&user_data_keyboard); +} diff --git a/quantum/visualizer/visualizer.c b/quantum/visualizer/visualizer.c index 62ebebceed3..bff0df4947f 100644 --- a/quantum/visualizer/visualizer.c +++ b/quantum/visualizer/visualizer.c @@ -64,6 +64,9 @@ static visualizer_keyboard_status_t current_status = { .mods = 0xFF, .leds = 0xFFFFFFFF, .suspended = false, +#ifdef VISUALIZER_USER_DATA_SIZE + .user_data = {0} +#endif }; static bool same_status(visualizer_keyboard_status_t* status1, visualizer_keyboard_status_t* status2) { @@ -71,11 +74,19 @@ static bool same_status(visualizer_keyboard_status_t* status1, visualizer_keyboa status1->default_layer == status2->default_layer && status1->mods == status2->mods && status1->leds == status2->leds && - status1->suspended == status2->suspended; + status1->suspended == status2->suspended +#ifdef VISUALIZER_USER_DATA_SIZE + && memcmp(status1->user_data, status2->user_data, VISUALIZER_USER_DATA_SIZE) == 0 +#endif + ; } static bool visualizer_enabled = false; +#ifdef VISUALIZER_USER_DATA_SIZE +static uint8_t user_data[VISUALIZER_USER_DATA_SIZE]; +#endif + #define MAX_SIMULTANEOUS_ANIMATIONS 4 static keyframe_animation_t* animations[MAX_SIMULTANEOUS_ANIMATIONS] = {}; @@ -431,6 +442,9 @@ static DECLARE_THREAD_FUNCTION(visualizerThread, arg) { .mods = 0xFF, .leds = 0xFFFFFFFF, .suspended = false, +#ifdef VISUALIZER_USER_DATA_SIZE + .user_data = {0}, +#endif }; visualizer_state_t state = { @@ -590,6 +604,12 @@ uint8_t visualizer_get_mods() { return mods; } +#ifdef VISUALIZER_USER_DATA_SIZE +void visualizer_set_user_data(void* u) { + memcpy(user_data, u, VISUALIZER_USER_DATA_SIZE); +} +#endif + void visualizer_update(uint32_t default_state, uint32_t state, uint8_t mods, uint32_t leds) { // Note that there's a small race condition here, the thread could read // a state where one of these are set but not the other. But this should @@ -618,6 +638,9 @@ void visualizer_update(uint32_t default_state, uint32_t state, uint8_t mods, uin .leds = leds, .suspended = current_status.suspended, }; +#ifdef VISUALIZER_USER_DATA_SIZE + memcpy(new_status.user_data, user_data, VISUALIZER_USER_DATA_SIZE); +#endif if (!same_status(¤t_status, &new_status)) { changed = true; current_status = new_status; diff --git a/quantum/visualizer/visualizer.h b/quantum/visualizer/visualizer.h index 2c81cb9f71e..beb8f2ab413 100644 --- a/quantum/visualizer/visualizer.h +++ b/quantum/visualizer/visualizer.h @@ -68,6 +68,9 @@ typedef struct { uint8_t mods; uint32_t leds; // See led.h for available statuses bool suspended; +#ifdef VISUALIZER_USER_DATA_SIZE + uint8_t user_data[VISUALIZER_USER_DATA_SIZE]; +#endif } visualizer_keyboard_status_t; // The state struct is used by the various keyframe functions @@ -146,6 +149,11 @@ bool keyframe_enable_lcd_and_backlight(keyframe_animation_t* animation, visualiz // directly from the initalize_user_visualizer function (the animation can be null) bool enable_visualization(keyframe_animation_t* animation, visualizer_state_t* state); +// The master can set userdata which will be transferred to the slave +#ifdef VISUALIZER_USER_DATA_SIZE +void visualizer_set_user_data(void* user_data); +#endif + // These functions have to be implemented by the user void initialize_user_visualizer(visualizer_state_t* state); void update_user_visualizer_state(visualizer_state_t* state, visualizer_keyboard_status_t prev_status); From 5fbaf31dc26a7bb27eb276ec419255e92b293d60 Mon Sep 17 00:00:00 2001 From: Fred Sundvik Date: Sun, 2 Apr 2017 02:29:50 +0300 Subject: [PATCH 103/190] Brightness for Ergodox Infinity emulated LEDs --- keyboards/ergodox/infinity/config.h | 2 +- keyboards/ergodox/infinity/visualizer.c | 76 ++++++++++++++++++------- quantum/visualizer/lcd_backlight.h | 4 ++ quantum/visualizer/visualizer.c | 2 +- quantum/visualizer/visualizer.h | 2 +- 5 files changed, 63 insertions(+), 23 deletions(-) diff --git a/keyboards/ergodox/infinity/config.h b/keyboards/ergodox/infinity/config.h index 6cde193e13c..95f713819e1 100644 --- a/keyboards/ergodox/infinity/config.h +++ b/keyboards/ergodox/infinity/config.h @@ -40,7 +40,7 @@ along with this program. If not, see . /* number of backlight levels */ #define BACKLIGHT_LEVELS 3 -#define LED_BRIGHTNESS_LO 15 +#define LED_BRIGHTNESS_LO 100 #define LED_BRIGHTNESS_HI 255 /* define if matrix has ghost */ diff --git a/keyboards/ergodox/infinity/visualizer.c b/keyboards/ergodox/infinity/visualizer.c index 7bc42fbc705..c7afd9384cf 100644 --- a/keyboards/ergodox/infinity/visualizer.c +++ b/keyboards/ergodox/infinity/visualizer.c @@ -99,7 +99,12 @@ typedef struct { } visualizer_user_data_t; // Don't access from visualization function, use the visualizer state instead -static visualizer_user_data_t user_data_keyboard = {}; +static visualizer_user_data_t user_data_keyboard = { + .led_on = 0, + .led1 = LED_BRIGHTNESS_HI, + .led2 = LED_BRIGHTNESS_HI, + .led3 = LED_BRIGHTNESS_HI, +}; _Static_assert(sizeof(visualizer_user_data_t) <= VISUALIZER_USER_DATA_SIZE, "Please increase the VISUALIZER_USER_DATA_SIZE"); @@ -250,18 +255,21 @@ static uint8_t get_secondary_led_index(visualizer_user_data_t* user_data) { return 0; } -void update_user_visualizer_state(visualizer_state_t* state, visualizer_keyboard_status_t prev_status) { - // Check the status here to start and stop animations - // You might have to save some state, like the current animation here so that you can start the right - // This function is called every time the status changes - - // NOTE that this is called from the visualizer thread, so don't access anything else outside the status - // This is also important because the slave won't have access to the active layer for example outside the - // status. - +static uint8_t get_brightness(visualizer_user_data_t* user_data, uint8_t index) { + switch (index) { + case 1: + return user_data->led1; + case 2: + return user_data->led2; + case 3: + return user_data->led3; + } + return 0; +} +static void update_emulated_leds(visualizer_state_t* state, visualizer_keyboard_status_t* prev_status) { visualizer_user_data_t* user_data_new = (visualizer_user_data_t*)state->status.user_data; - visualizer_user_data_t* user_data_old = (visualizer_user_data_t*)prev_status.user_data; + visualizer_user_data_t* user_data_old = (visualizer_user_data_t*)prev_status->user_data; uint8_t new_index; uint8_t old_index; @@ -277,27 +285,41 @@ void update_user_visualizer_state(visualizer_state_t* state, visualizer_keyboard uint8_t new_secondary_index = get_secondary_led_index(user_data_new); uint8_t old_secondary_index = get_secondary_led_index(user_data_old); + uint8_t old_brightness = get_brightness(user_data_old, old_index); + uint8_t new_brightness = get_brightness(user_data_new, new_index); + + uint8_t old_secondary_brightness = get_brightness(user_data_old, old_secondary_index); + uint8_t new_secondary_brightness = get_brightness(user_data_new, new_secondary_index); + if (lcd_state == LCD_STATE_INITIAL || new_index != old_index || - new_secondary_index != old_secondary_index) { + new_secondary_index != old_secondary_index || + new_brightness != old_brightness || + new_secondary_brightness != old_secondary_brightness) { if (new_secondary_index != 0) { - state->target_lcd_color = led_emulation_colors[new_index]; - next_led_target_color = led_emulation_colors[new_secondary_index]; + state->target_lcd_color = change_lcd_color_intensity( + led_emulation_colors[new_index], new_brightness); + next_led_target_color = change_lcd_color_intensity( + led_emulation_colors[new_secondary_index], new_secondary_brightness); + stop_keyframe_animation(&one_led_color); start_keyframe_animation(&two_led_colors); } else { - state->target_lcd_color = led_emulation_colors[new_index]; + state->target_lcd_color = change_lcd_color_intensity( + led_emulation_colors[new_index], new_brightness); stop_keyframe_animation(&two_led_colors); start_keyframe_animation(&one_led_color); } } +} +static void update_lcd_text(visualizer_state_t* state, visualizer_keyboard_status_t* prev_status) { if (state->status.leds) { if (lcd_state != LCD_STATE_BITMAP_AND_LEDS || - state->status.leds != prev_status.leds || - state->status.layer != prev_status.layer || - state->status.default_layer != prev_status.default_layer) { + state->status.leds != prev_status->leds || + state->status.layer != prev_status->layer || + state->status.default_layer != prev_status->default_layer) { // NOTE: that it doesn't matter if the animation isn't playing, stop will do nothing in that case stop_keyframe_animation(&lcd_bitmap_animation); @@ -310,8 +332,8 @@ void update_user_visualizer_state(visualizer_state_t* state, visualizer_keyboard } } else { if (lcd_state != LCD_STATE_LAYER_BITMAP || - state->status.layer != prev_status.layer || - state->status.default_layer != prev_status.default_layer) { + state->status.layer != prev_status->layer || + state->status.default_layer != prev_status->default_layer) { stop_keyframe_animation(&lcd_bitmap_leds_animation); @@ -321,6 +343,20 @@ void update_user_visualizer_state(visualizer_state_t* state, visualizer_keyboard } } +void update_user_visualizer_state(visualizer_state_t* state, visualizer_keyboard_status_t* prev_status) { + // Check the status here to start and stop animations + // You might have to save some state, like the current animation here so that you can start the right + // This function is called every time the status changes + + // NOTE that this is called from the visualizer thread, so don't access anything else outside the status + // This is also important because the slave won't have access to the active layer for example outside the + // status. + + update_emulated_leds(state, prev_status); + update_lcd_text(state, prev_status); + +} + void user_visualizer_suspend(visualizer_state_t* state) { state->layer_text = "Suspending..."; uint8_t hue = LCD_HUE(state->current_lcd_color); diff --git a/quantum/visualizer/lcd_backlight.h b/quantum/visualizer/lcd_backlight.h index dd3e37a064d..14dde64a1ab 100644 --- a/quantum/visualizer/lcd_backlight.h +++ b/quantum/visualizer/lcd_backlight.h @@ -32,6 +32,10 @@ SOFTWARE. #define LCD_SAT(color) ((color >> 8) & 0xFF) #define LCD_INT(color) (color & 0xFF) +inline uint32_t change_lcd_color_intensity(uint32_t color, uint8_t new_intensity) { + return (color & 0xFFFFFF00) | new_intensity; +} + void lcd_backlight_init(void); void lcd_backlight_color(uint8_t hue, uint8_t saturation, uint8_t intensity); void lcd_backlight_brightness(uint8_t b); diff --git a/quantum/visualizer/visualizer.c b/quantum/visualizer/visualizer.c index bff0df4947f..3b3f51b1ff8 100644 --- a/quantum/visualizer/visualizer.c +++ b/quantum/visualizer/visualizer.c @@ -484,7 +484,7 @@ static DECLARE_THREAD_FUNCTION(visualizerThread, arg) { else { visualizer_keyboard_status_t prev_status = state.status; state.status = current_status; - update_user_visualizer_state(&state, prev_status); + update_user_visualizer_state(&state, &prev_status); } state.prev_lcd_color = state.current_lcd_color; } diff --git a/quantum/visualizer/visualizer.h b/quantum/visualizer/visualizer.h index beb8f2ab413..e8ace5b37be 100644 --- a/quantum/visualizer/visualizer.h +++ b/quantum/visualizer/visualizer.h @@ -156,7 +156,7 @@ void visualizer_set_user_data(void* user_data); // These functions have to be implemented by the user void initialize_user_visualizer(visualizer_state_t* state); -void update_user_visualizer_state(visualizer_state_t* state, visualizer_keyboard_status_t prev_status); +void update_user_visualizer_state(visualizer_state_t* state, visualizer_keyboard_status_t* prev_status); void user_visualizer_suspend(visualizer_state_t* state); void user_visualizer_resume(visualizer_state_t* state); From 65e8127c91c6a0fc027a1a482de443302e00d019 Mon Sep 17 00:00:00 2001 From: Fred Sundvik Date: Mon, 3 Apr 2017 22:08:34 +0300 Subject: [PATCH 104/190] Add visualizer for Ergodox default --- .../ergodox/keymaps/default/visualizer.c | 426 ++++++++++++++++++ 1 file changed, 426 insertions(+) create mode 100644 keyboards/ergodox/keymaps/default/visualizer.c diff --git a/keyboards/ergodox/keymaps/default/visualizer.c b/keyboards/ergodox/keymaps/default/visualizer.c new file mode 100644 index 00000000000..c7afd9384cf --- /dev/null +++ b/keyboards/ergodox/keymaps/default/visualizer.c @@ -0,0 +1,426 @@ +/* +Copyright 2016 Fred Sundvik + +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 . +*/ + +// Currently we are assuming that both the backlight and LCD are enabled +// But it's entirely possible to write a custom visualizer that use only +// one of them +#ifndef LCD_BACKLIGHT_ENABLE +#error This visualizer needs that LCD backlight is enabled +#endif + +#ifndef LCD_ENABLE +#error This visualizer needs that LCD is enabled +#endif + +#include "visualizer.h" +#include "system/serial_link.h" + +// To generate an image array like this +// Ensure the image is 128 x 32 or smaller +// Convert the bitmap to a C array using a program like http://www.riuson.com/lcd-image-converter/ +// Ensure the the conversion process produces a monochrome format array - 1 bit/pixel, left to right, top to bottom +// Update array in the source code with the C array produced by the conversion program + +// The image below is generated from lcd_logo.png +static const uint8_t image_data_lcd_logo[512] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xf8, 0xfe, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x38, 0x38, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x38, 0x38, 0x38, 0x06, 0x29, 0x41, 0x24, 0x52, 0x24, 0x46, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x38, 0x38, 0x38, 0x09, 0x55, 0x42, 0xaa, 0xaa, 0xaa, 0xa8, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x38, 0x38, 0x38, 0x09, 0x55, 0x82, 0x28, 0xaa, 0xae, 0x8c, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x38, 0x38, 0x38, 0x09, 0x55, 0x43, 0x28, 0xaa, 0xaa, 0x88, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x38, 0x38, 0x38, 0x0a, 0x55, 0x42, 0x28, 0xaa, 0xaa, 0x88, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x38, 0x38, 0x38, 0x05, 0x45, 0x42, 0x28, 0x89, 0x4a, 0x86, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x18, 0x38, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x1c, 0x38, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x0e, 0x38, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x03, 0xff, 0x80, 0x04, 0x45, 0x14, 0xa4, 0x92, 0x83, 0x52, 0x22, 0x22, 0x36, 0x00, 0x00, + 0x00, 0x00, 0x38, 0x00, 0x0a, 0xaa, 0xaa, 0xaa, 0xba, 0x84, 0x55, 0x55, 0x57, 0x45, 0x00, 0x00, + 0x00, 0x00, 0x38, 0x00, 0x08, 0xaa, 0xaa, 0xaa, 0x92, 0xb2, 0x55, 0x55, 0x42, 0x65, 0x00, 0x00, + 0x00, 0x00, 0x38, 0x00, 0x08, 0xaa, 0xaa, 0xaa, 0x92, 0x81, 0x56, 0x65, 0x42, 0x45, 0x00, 0x00, + 0x00, 0x00, 0x38, 0x00, 0x0a, 0xaa, 0xaa, 0xaa, 0x92, 0x81, 0x54, 0x45, 0x42, 0x45, 0x00, 0x00, + 0x00, 0x00, 0x38, 0x00, 0x04, 0x48, 0xa2, 0x4a, 0x89, 0x06, 0x24, 0x42, 0x41, 0x36, 0x00, 0x00, + 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 +}; + +static const uint32_t logo_background_color = LCD_COLOR(0x00, 0x00, 0xFF); +static const uint32_t initial_color = LCD_COLOR(0, 0, 0); + +static const uint32_t led_emulation_colors[4] = { + LCD_COLOR(0, 0, 0), + LCD_COLOR(255, 255, 255), + LCD_COLOR(84, 255, 255), + LCD_COLOR(168, 255, 255), +}; + +static uint32_t next_led_target_color = 0; + +typedef enum { + LCD_STATE_INITIAL, + LCD_STATE_LAYER_BITMAP, + LCD_STATE_BITMAP_AND_LEDS, +} lcd_state_t; + +static lcd_state_t lcd_state = LCD_STATE_INITIAL; + +typedef struct { + uint8_t led_on; + uint8_t led1; + uint8_t led2; + uint8_t led3; +} visualizer_user_data_t; + +// Don't access from visualization function, use the visualizer state instead +static visualizer_user_data_t user_data_keyboard = { + .led_on = 0, + .led1 = LED_BRIGHTNESS_HI, + .led2 = LED_BRIGHTNESS_HI, + .led3 = LED_BRIGHTNESS_HI, +}; + +_Static_assert(sizeof(visualizer_user_data_t) <= VISUALIZER_USER_DATA_SIZE, + "Please increase the VISUALIZER_USER_DATA_SIZE"); + +bool display_logo(keyframe_animation_t* animation, visualizer_state_t* state) { + (void)state; + (void)animation; + (void)state; + // Read the uGFX documentation for information how to use the displays + // http://wiki.ugfx.org/index.php/Main_Page + gdispClear(White); + + // You can use static variables for things that can't be found in the animation + // or state structs, here we use the image + + //gdispGBlitArea is a tricky function to use since it supports blitting part of the image + // if you have full screen image, then just use 128 and 32 for both source and target dimensions + gdispGBlitArea(GDISP, 0, 0, 128, 32, 0, 0, 128, (pixel_t*)image_data_lcd_logo); + + // Always remember to flush the display + gdispFlush(); + return false; +} + +// Feel free to modify the animations below, or even add new ones if needed + +// Don't worry, if the startup animation is long, you can use the keyboard like normal +// during that time +static keyframe_animation_t startup_animation = { + .num_frames = 3, + .loop = false, + .frame_lengths = {0, gfxMillisecondsToTicks(10000), 0}, + .frame_functions = { + display_logo, + keyframe_animate_backlight_color, + enable_visualization + }, +}; + +// The color animation animates the LCD color when you change layers +static keyframe_animation_t one_led_color = { + .num_frames = 1, + .loop = false, + .frame_lengths = {gfxMillisecondsToTicks(0)}, + .frame_functions = {keyframe_set_backlight_color}, +}; + +bool swap_led_target_color(keyframe_animation_t* animation, visualizer_state_t* state) { + uint32_t temp = next_led_target_color; + next_led_target_color = state->target_lcd_color; + state->target_lcd_color = temp; + return false; +} + +// The color animation animates the LCD color when you change layers +static keyframe_animation_t two_led_colors = { + .num_frames = 2, + .loop = true, + .frame_lengths = {gfxMillisecondsToTicks(1000), gfxMillisecondsToTicks(0)}, + .frame_functions = {keyframe_set_backlight_color, swap_led_target_color}, +}; + +// The LCD animation alternates between the layer name display and a +// bitmap that displays all active layers +static keyframe_animation_t lcd_bitmap_animation = { + .num_frames = 1, + .loop = false, + .frame_lengths = {gfxMillisecondsToTicks(0)}, + .frame_functions = {keyframe_display_layer_bitmap}, +}; + +static keyframe_animation_t lcd_bitmap_leds_animation = { + .num_frames = 2, + .loop = true, + .frame_lengths = {gfxMillisecondsToTicks(2000), gfxMillisecondsToTicks(2000)}, + .frame_functions = {keyframe_display_layer_bitmap, keyframe_display_led_states}, +}; + +static keyframe_animation_t suspend_animation = { + .num_frames = 3, + .loop = false, + .frame_lengths = {0, gfxMillisecondsToTicks(1000), 0}, + .frame_functions = { + keyframe_display_layer_text, + keyframe_animate_backlight_color, + keyframe_disable_lcd_and_backlight, + }, +}; + +static keyframe_animation_t resume_animation = { + .num_frames = 4, + .loop = false, + .frame_lengths = {0, 0, gfxMillisecondsToTicks(10000), 0}, + .frame_functions = { + keyframe_enable_lcd_and_backlight, + display_logo, + keyframe_animate_backlight_color, + enable_visualization, + }, +}; + +void initialize_user_visualizer(visualizer_state_t* state) { + // The brightness will be dynamically adjustable in the future + // But for now, change it here. + lcd_backlight_brightness(130); + state->current_lcd_color = initial_color; + state->target_lcd_color = logo_background_color; + lcd_state = LCD_STATE_INITIAL; + start_keyframe_animation(&startup_animation); +} + +static const uint32_t red; +static const uint32_t green; +static const uint32_t blue; + +inline bool is_led_on(visualizer_user_data_t* user_data, uint8_t num) { + return user_data->led_on & (1u << num); +} + +static uint8_t get_led_index_master(visualizer_user_data_t* user_data) { + for (int i=0; i < 3; i++) { + if (is_led_on(user_data, i)) { + return i + 1; + } + } + return 0; +} + +static uint8_t get_led_index_slave(visualizer_user_data_t* user_data) { + uint8_t master_index = get_led_index_master(user_data); + if (master_index!=0) { + for (int i=master_index; i < 3; i++) { + if (is_led_on(user_data, i)) { + return i + 1; + } + } + } + + return 0; +} + +static uint8_t get_secondary_led_index(visualizer_user_data_t* user_data) { + if (is_led_on(user_data, 0) && + is_led_on(user_data, 1) && + is_led_on(user_data, 2)) { + return 3; + } + return 0; +} + +static uint8_t get_brightness(visualizer_user_data_t* user_data, uint8_t index) { + switch (index) { + case 1: + return user_data->led1; + case 2: + return user_data->led2; + case 3: + return user_data->led3; + } + return 0; +} + +static void update_emulated_leds(visualizer_state_t* state, visualizer_keyboard_status_t* prev_status) { + visualizer_user_data_t* user_data_new = (visualizer_user_data_t*)state->status.user_data; + visualizer_user_data_t* user_data_old = (visualizer_user_data_t*)prev_status->user_data; + + uint8_t new_index; + uint8_t old_index; + + if (is_serial_link_master()) { + new_index = get_led_index_master(user_data_new); + old_index = get_led_index_master(user_data_old); + } + else { + new_index = get_led_index_slave(user_data_new); + old_index = get_led_index_slave(user_data_old); + } + uint8_t new_secondary_index = get_secondary_led_index(user_data_new); + uint8_t old_secondary_index = get_secondary_led_index(user_data_old); + + uint8_t old_brightness = get_brightness(user_data_old, old_index); + uint8_t new_brightness = get_brightness(user_data_new, new_index); + + uint8_t old_secondary_brightness = get_brightness(user_data_old, old_secondary_index); + uint8_t new_secondary_brightness = get_brightness(user_data_new, new_secondary_index); + + if (lcd_state == LCD_STATE_INITIAL || + new_index != old_index || + new_secondary_index != old_secondary_index || + new_brightness != old_brightness || + new_secondary_brightness != old_secondary_brightness) { + + if (new_secondary_index != 0) { + state->target_lcd_color = change_lcd_color_intensity( + led_emulation_colors[new_index], new_brightness); + next_led_target_color = change_lcd_color_intensity( + led_emulation_colors[new_secondary_index], new_secondary_brightness); + + stop_keyframe_animation(&one_led_color); + start_keyframe_animation(&two_led_colors); + } else { + state->target_lcd_color = change_lcd_color_intensity( + led_emulation_colors[new_index], new_brightness); + stop_keyframe_animation(&two_led_colors); + start_keyframe_animation(&one_led_color); + } + } +} + +static void update_lcd_text(visualizer_state_t* state, visualizer_keyboard_status_t* prev_status) { + if (state->status.leds) { + if (lcd_state != LCD_STATE_BITMAP_AND_LEDS || + state->status.leds != prev_status->leds || + state->status.layer != prev_status->layer || + state->status.default_layer != prev_status->default_layer) { + + // NOTE: that it doesn't matter if the animation isn't playing, stop will do nothing in that case + stop_keyframe_animation(&lcd_bitmap_animation); + + lcd_state = LCD_STATE_BITMAP_AND_LEDS; + // For information: + // The logic in this function makes sure that this doesn't happen, but if you call start on an + // animation that is already playing it will be restarted. + start_keyframe_animation(&lcd_bitmap_leds_animation); + } + } else { + if (lcd_state != LCD_STATE_LAYER_BITMAP || + state->status.layer != prev_status->layer || + state->status.default_layer != prev_status->default_layer) { + + stop_keyframe_animation(&lcd_bitmap_leds_animation); + + lcd_state = LCD_STATE_LAYER_BITMAP; + start_keyframe_animation(&lcd_bitmap_animation); + } + } +} + +void update_user_visualizer_state(visualizer_state_t* state, visualizer_keyboard_status_t* prev_status) { + // Check the status here to start and stop animations + // You might have to save some state, like the current animation here so that you can start the right + // This function is called every time the status changes + + // NOTE that this is called from the visualizer thread, so don't access anything else outside the status + // This is also important because the slave won't have access to the active layer for example outside the + // status. + + update_emulated_leds(state, prev_status); + update_lcd_text(state, prev_status); + +} + +void user_visualizer_suspend(visualizer_state_t* state) { + state->layer_text = "Suspending..."; + uint8_t hue = LCD_HUE(state->current_lcd_color); + uint8_t sat = LCD_SAT(state->current_lcd_color); + state->target_lcd_color = LCD_COLOR(hue, sat, 0); + start_keyframe_animation(&suspend_animation); +} + +void user_visualizer_resume(visualizer_state_t* state) { + state->current_lcd_color = initial_color; + state->target_lcd_color = logo_background_color; + lcd_state = LCD_STATE_INITIAL; + start_keyframe_animation(&resume_animation); +} + +void ergodox_board_led_on(void){ + // No board led support +} + +void ergodox_right_led_1_on(void){ + user_data_keyboard.led_on |= (1u << 0); + visualizer_set_user_data(&user_data_keyboard); +} + +void ergodox_right_led_2_on(void){ + user_data_keyboard.led_on |= (1u << 1); + visualizer_set_user_data(&user_data_keyboard); +} + +void ergodox_right_led_3_on(void){ + user_data_keyboard.led_on |= (1u << 2); + visualizer_set_user_data(&user_data_keyboard); +} + +void ergodox_board_led_off(void){ + // No board led support +} + +void ergodox_right_led_1_off(void){ + user_data_keyboard.led_on &= ~(1u << 0); + visualizer_set_user_data(&user_data_keyboard); +} + +void ergodox_right_led_2_off(void){ + user_data_keyboard.led_on &= ~(1u << 1); + visualizer_set_user_data(&user_data_keyboard); +} + +void ergodox_right_led_3_off(void){ + user_data_keyboard.led_on &= ~(1u << 2); + visualizer_set_user_data(&user_data_keyboard); +} + +void ergodox_right_led_1_set(uint8_t n) { + user_data_keyboard.led1 = n; + visualizer_set_user_data(&user_data_keyboard); +} + +void ergodox_right_led_2_set(uint8_t n) { + user_data_keyboard.led2 = n; + visualizer_set_user_data(&user_data_keyboard); +} + +void ergodox_right_led_3_set(uint8_t n) { + user_data_keyboard.led3 = n; + visualizer_set_user_data(&user_data_keyboard); +} From fa6da78ff3c96a71ed65684e276352700843d539 Mon Sep 17 00:00:00 2001 From: Fred Sundvik Date: Mon, 3 Apr 2017 23:00:58 +0300 Subject: [PATCH 105/190] Simple layer display on Infinity Ergodox default layout --- .../ergodox/keymaps/default/visualizer.c | 284 ++++-------------- 1 file changed, 61 insertions(+), 223 deletions(-) diff --git a/keyboards/ergodox/keymaps/default/visualizer.c b/keyboards/ergodox/keymaps/default/visualizer.c index c7afd9384cf..d99d5f7026b 100644 --- a/keyboards/ergodox/keymaps/default/visualizer.c +++ b/keyboards/ergodox/keymaps/default/visualizer.c @@ -1,5 +1,5 @@ /* -Copyright 2016 Fred Sundvik +Copyright 2017 Fred Sundvik 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 @@ -74,15 +74,6 @@ static const uint8_t image_data_lcd_logo[512] = { static const uint32_t logo_background_color = LCD_COLOR(0x00, 0x00, 0xFF); static const uint32_t initial_color = LCD_COLOR(0, 0, 0); -static const uint32_t led_emulation_colors[4] = { - LCD_COLOR(0, 0, 0), - LCD_COLOR(255, 255, 255), - LCD_COLOR(84, 255, 255), - LCD_COLOR(168, 255, 255), -}; - -static uint32_t next_led_target_color = 0; - typedef enum { LCD_STATE_INITIAL, LCD_STATE_LAYER_BITMAP, @@ -91,24 +82,6 @@ typedef enum { static lcd_state_t lcd_state = LCD_STATE_INITIAL; -typedef struct { - uint8_t led_on; - uint8_t led1; - uint8_t led2; - uint8_t led3; -} visualizer_user_data_t; - -// Don't access from visualization function, use the visualizer state instead -static visualizer_user_data_t user_data_keyboard = { - .led_on = 0, - .led1 = LED_BRIGHTNESS_HI, - .led2 = LED_BRIGHTNESS_HI, - .led3 = LED_BRIGHTNESS_HI, -}; - -_Static_assert(sizeof(visualizer_user_data_t) <= VISUALIZER_USER_DATA_SIZE, - "Please increase the VISUALIZER_USER_DATA_SIZE"); - bool display_logo(keyframe_animation_t* animation, visualizer_state_t* state) { (void)state; (void)animation; @@ -144,43 +117,34 @@ static keyframe_animation_t startup_animation = { }, }; -// The color animation animates the LCD color when you change layers -static keyframe_animation_t one_led_color = { - .num_frames = 1, - .loop = false, - .frame_lengths = {gfxMillisecondsToTicks(0)}, - .frame_functions = {keyframe_set_backlight_color}, -}; - -bool swap_led_target_color(keyframe_animation_t* animation, visualizer_state_t* state) { - uint32_t temp = next_led_target_color; - next_led_target_color = state->target_lcd_color; - state->target_lcd_color = temp; - return false; -} - -// The color animation animates the LCD color when you change layers -static keyframe_animation_t two_led_colors = { - .num_frames = 2, - .loop = true, - .frame_lengths = {gfxMillisecondsToTicks(1000), gfxMillisecondsToTicks(0)}, - .frame_functions = {keyframe_set_backlight_color, swap_led_target_color}, -}; - // The LCD animation alternates between the layer name display and a // bitmap that displays all active layers -static keyframe_animation_t lcd_bitmap_animation = { - .num_frames = 1, - .loop = false, - .frame_lengths = {gfxMillisecondsToTicks(0)}, - .frame_functions = {keyframe_display_layer_bitmap}, -}; - -static keyframe_animation_t lcd_bitmap_leds_animation = { +static keyframe_animation_t lcd_layer_bitmap_animation = { .num_frames = 2, .loop = true, - .frame_lengths = {gfxMillisecondsToTicks(2000), gfxMillisecondsToTicks(2000)}, - .frame_functions = {keyframe_display_layer_bitmap, keyframe_display_led_states}, + .frame_lengths = { + gfxMillisecondsToTicks(2000), + gfxMillisecondsToTicks(2000) + }, + .frame_functions = { + keyframe_display_layer_text, + keyframe_display_layer_bitmap + }, +}; + +static keyframe_animation_t lcd_layer_bitmap_leds_animation = { + .num_frames = 3, + .loop = true, + .frame_lengths = { + gfxMillisecondsToTicks(2000), + gfxMillisecondsToTicks(2000), + gfxMillisecondsToTicks(2000) + }, + .frame_functions = { + keyframe_display_layer_text, + keyframe_display_led_states, + keyframe_display_layer_bitmap, + }, }; static keyframe_animation_t suspend_animation = { @@ -206,6 +170,17 @@ static keyframe_animation_t resume_animation = { }, }; +// The color animation animates the LCD color when you change layers +static keyframe_animation_t color_animation = { + .num_frames = 2, + .loop = false, + // Note that there's a 200 ms no-operation frame, + // this prevents the color from changing when activating the layer + // momentarily + .frame_lengths = {gfxMillisecondsToTicks(200), gfxMillisecondsToTicks(500)}, + .frame_functions = {keyframe_no_operation, keyframe_animate_backlight_color}, +}; + void initialize_user_visualizer(visualizer_state_t* state) { // The brightness will be dynamically adjustable in the future // But for now, change it here. @@ -216,105 +191,32 @@ void initialize_user_visualizer(visualizer_state_t* state) { start_keyframe_animation(&startup_animation); } -static const uint32_t red; -static const uint32_t green; -static const uint32_t blue; +void update_user_visualizer_state(visualizer_state_t* state, visualizer_keyboard_status_t* prev_status) { + // Add more tests, change the colors and layer texts here + // Usually you want to check the high bits (higher layers first) + // because that's the order layers are processed for keypresses + // You can for check for example: + // state->status.layer + // state->status.default_layer + // state->status.leds (see led.h for available statuses) -inline bool is_led_on(visualizer_user_data_t* user_data, uint8_t num) { - return user_data->led_on & (1u << num); -} - -static uint8_t get_led_index_master(visualizer_user_data_t* user_data) { - for (int i=0; i < 3; i++) { - if (is_led_on(user_data, i)) { - return i + 1; - } + if (state->status.layer & 0x4) { + state->target_lcd_color = LCD_COLOR(0, 0xB0, 0xFF); + state->layer_text = "Media & Mouse"; } - return 0; -} - -static uint8_t get_led_index_slave(visualizer_user_data_t* user_data) { - uint8_t master_index = get_led_index_master(user_data); - if (master_index!=0) { - for (int i=master_index; i < 3; i++) { - if (is_led_on(user_data, i)) { - return i + 1; - } - } - } - - return 0; -} - -static uint8_t get_secondary_led_index(visualizer_user_data_t* user_data) { - if (is_led_on(user_data, 0) && - is_led_on(user_data, 1) && - is_led_on(user_data, 2)) { - return 3; - } - return 0; -} - -static uint8_t get_brightness(visualizer_user_data_t* user_data, uint8_t index) { - switch (index) { - case 1: - return user_data->led1; - case 2: - return user_data->led2; - case 3: - return user_data->led3; - } - return 0; -} - -static void update_emulated_leds(visualizer_state_t* state, visualizer_keyboard_status_t* prev_status) { - visualizer_user_data_t* user_data_new = (visualizer_user_data_t*)state->status.user_data; - visualizer_user_data_t* user_data_old = (visualizer_user_data_t*)prev_status->user_data; - - uint8_t new_index; - uint8_t old_index; - - if (is_serial_link_master()) { - new_index = get_led_index_master(user_data_new); - old_index = get_led_index_master(user_data_old); + else if (state->status.layer & 0x2) { + state->target_lcd_color = LCD_COLOR(0x80, 0xB0, 0xFF); + state->layer_text = "Symbol"; } else { - new_index = get_led_index_slave(user_data_new); - old_index = get_led_index_slave(user_data_old); + state->target_lcd_color = LCD_COLOR(0x40, 0xB0, 0xFF); + state->layer_text = "Default"; } - uint8_t new_secondary_index = get_secondary_led_index(user_data_new); - uint8_t old_secondary_index = get_secondary_led_index(user_data_old); - uint8_t old_brightness = get_brightness(user_data_old, old_index); - uint8_t new_brightness = get_brightness(user_data_new, new_index); - - uint8_t old_secondary_brightness = get_brightness(user_data_old, old_secondary_index); - uint8_t new_secondary_brightness = get_brightness(user_data_new, new_secondary_index); - - if (lcd_state == LCD_STATE_INITIAL || - new_index != old_index || - new_secondary_index != old_secondary_index || - new_brightness != old_brightness || - new_secondary_brightness != old_secondary_brightness) { - - if (new_secondary_index != 0) { - state->target_lcd_color = change_lcd_color_intensity( - led_emulation_colors[new_index], new_brightness); - next_led_target_color = change_lcd_color_intensity( - led_emulation_colors[new_secondary_index], new_secondary_brightness); - - stop_keyframe_animation(&one_led_color); - start_keyframe_animation(&two_led_colors); - } else { - state->target_lcd_color = change_lcd_color_intensity( - led_emulation_colors[new_index], new_brightness); - stop_keyframe_animation(&two_led_colors); - start_keyframe_animation(&one_led_color); - } + if (lcd_state == LCD_STATE_INITIAL || state->status.layer != prev_status->layer) { + start_keyframe_animation(&color_animation); } -} -static void update_lcd_text(visualizer_state_t* state, visualizer_keyboard_status_t* prev_status) { if (state->status.leds) { if (lcd_state != LCD_STATE_BITMAP_AND_LEDS || state->status.leds != prev_status->leds || @@ -322,39 +224,28 @@ static void update_lcd_text(visualizer_state_t* state, visualizer_keyboard_statu state->status.default_layer != prev_status->default_layer) { // NOTE: that it doesn't matter if the animation isn't playing, stop will do nothing in that case - stop_keyframe_animation(&lcd_bitmap_animation); + stop_keyframe_animation(&lcd_layer_bitmap_animation); lcd_state = LCD_STATE_BITMAP_AND_LEDS; // For information: // The logic in this function makes sure that this doesn't happen, but if you call start on an // animation that is already playing it will be restarted. - start_keyframe_animation(&lcd_bitmap_leds_animation); + start_keyframe_animation(&lcd_layer_bitmap_leds_animation); } } else { if (lcd_state != LCD_STATE_LAYER_BITMAP || state->status.layer != prev_status->layer || state->status.default_layer != prev_status->default_layer) { - stop_keyframe_animation(&lcd_bitmap_leds_animation); + stop_keyframe_animation(&lcd_layer_bitmap_leds_animation); lcd_state = LCD_STATE_LAYER_BITMAP; - start_keyframe_animation(&lcd_bitmap_animation); + start_keyframe_animation(&lcd_layer_bitmap_animation); } } -} - -void update_user_visualizer_state(visualizer_state_t* state, visualizer_keyboard_status_t* prev_status) { - // Check the status here to start and stop animations - // You might have to save some state, like the current animation here so that you can start the right - // This function is called every time the status changes - - // NOTE that this is called from the visualizer thread, so don't access anything else outside the status - // This is also important because the slave won't have access to the active layer for example outside the - // status. - - update_emulated_leds(state, prev_status); - update_lcd_text(state, prev_status); - + // You can also stop existing animations, and start your custom ones here + // remember that you should normally have only one animation for the LCD + // and one for the background. But you can also combine them if you want. } void user_visualizer_suspend(visualizer_state_t* state) { @@ -371,56 +262,3 @@ void user_visualizer_resume(visualizer_state_t* state) { lcd_state = LCD_STATE_INITIAL; start_keyframe_animation(&resume_animation); } - -void ergodox_board_led_on(void){ - // No board led support -} - -void ergodox_right_led_1_on(void){ - user_data_keyboard.led_on |= (1u << 0); - visualizer_set_user_data(&user_data_keyboard); -} - -void ergodox_right_led_2_on(void){ - user_data_keyboard.led_on |= (1u << 1); - visualizer_set_user_data(&user_data_keyboard); -} - -void ergodox_right_led_3_on(void){ - user_data_keyboard.led_on |= (1u << 2); - visualizer_set_user_data(&user_data_keyboard); -} - -void ergodox_board_led_off(void){ - // No board led support -} - -void ergodox_right_led_1_off(void){ - user_data_keyboard.led_on &= ~(1u << 0); - visualizer_set_user_data(&user_data_keyboard); -} - -void ergodox_right_led_2_off(void){ - user_data_keyboard.led_on &= ~(1u << 1); - visualizer_set_user_data(&user_data_keyboard); -} - -void ergodox_right_led_3_off(void){ - user_data_keyboard.led_on &= ~(1u << 2); - visualizer_set_user_data(&user_data_keyboard); -} - -void ergodox_right_led_1_set(uint8_t n) { - user_data_keyboard.led1 = n; - visualizer_set_user_data(&user_data_keyboard); -} - -void ergodox_right_led_2_set(uint8_t n) { - user_data_keyboard.led2 = n; - visualizer_set_user_data(&user_data_keyboard); -} - -void ergodox_right_led_3_set(uint8_t n) { - user_data_keyboard.led3 = n; - visualizer_set_user_data(&user_data_keyboard); -} From 05bc4880ddc9e904cfa1773caff1ae81977d2a76 Mon Sep 17 00:00:00 2001 From: Fred Sundvik Date: Tue, 4 Apr 2017 22:29:40 +0300 Subject: [PATCH 106/190] Tweaks to the Ergodox default visualizer No animation, display led statuses and layer name on the same screen Don't display layer bitmap Fully saturated colors for caps, less saturated ones normally --- .../ergodox/keymaps/default/visualizer.c | 76 +++++-------------- quantum/visualizer/visualizer.c | 28 ++++++- quantum/visualizer/visualizer.h | 1 + 3 files changed, 44 insertions(+), 61 deletions(-) diff --git a/keyboards/ergodox/keymaps/default/visualizer.c b/keyboards/ergodox/keymaps/default/visualizer.c index d99d5f7026b..305aaae1575 100644 --- a/keyboards/ergodox/keymaps/default/visualizer.c +++ b/keyboards/ergodox/keymaps/default/visualizer.c @@ -28,6 +28,7 @@ along with this program. If not, see . #include "visualizer.h" #include "system/serial_link.h" +#include "led.h" // To generate an image array like this // Ensure the image is 128 x 32 or smaller @@ -117,34 +118,11 @@ static keyframe_animation_t startup_animation = { }, }; -// The LCD animation alternates between the layer name display and a -// bitmap that displays all active layers -static keyframe_animation_t lcd_layer_bitmap_animation = { - .num_frames = 2, - .loop = true, - .frame_lengths = { - gfxMillisecondsToTicks(2000), - gfxMillisecondsToTicks(2000) - }, - .frame_functions = { - keyframe_display_layer_text, - keyframe_display_layer_bitmap - }, -}; - -static keyframe_animation_t lcd_layer_bitmap_leds_animation = { - .num_frames = 3, - .loop = true, - .frame_lengths = { - gfxMillisecondsToTicks(2000), - gfxMillisecondsToTicks(2000), - gfxMillisecondsToTicks(2000) - }, - .frame_functions = { - keyframe_display_layer_text, - keyframe_display_led_states, - keyframe_display_layer_bitmap, - }, +static keyframe_animation_t lcd_layer_display = { + .num_frames = 1, + .loop = false, + .frame_lengths = {gfxMillisecondsToTicks(0)}, + .frame_functions = {keyframe_display_layer_and_led_states} }; static keyframe_animation_t suspend_animation = { @@ -200,49 +178,31 @@ void update_user_visualizer_state(visualizer_state_t* state, visualizer_keyboard // state->status.default_layer // state->status.leds (see led.h for available statuses) + uint8_t saturation = 60; + if (state->status.leds & (1u << USB_LED_CAPS_LOCK)) { + saturation = 255; + } if (state->status.layer & 0x4) { - state->target_lcd_color = LCD_COLOR(0, 0xB0, 0xFF); + state->target_lcd_color = LCD_COLOR(0, saturation, 0xFF); state->layer_text = "Media & Mouse"; } else if (state->status.layer & 0x2) { - state->target_lcd_color = LCD_COLOR(0x80, 0xB0, 0xFF); + state->target_lcd_color = LCD_COLOR(168, saturation, 0xFF); state->layer_text = "Symbol"; } else { - state->target_lcd_color = LCD_COLOR(0x40, 0xB0, 0xFF); + state->target_lcd_color = LCD_COLOR(84, saturation, 0xFF); state->layer_text = "Default"; } - if (lcd_state == LCD_STATE_INITIAL || state->status.layer != prev_status->layer) { + if (lcd_state == LCD_STATE_INITIAL || + state->status.layer != prev_status->layer || + state->status.default_layer != prev_status->default_layer || + state->status.leds != prev_status->leds) { start_keyframe_animation(&color_animation); + start_keyframe_animation(&lcd_layer_display); } - if (state->status.leds) { - if (lcd_state != LCD_STATE_BITMAP_AND_LEDS || - state->status.leds != prev_status->leds || - state->status.layer != prev_status->layer || - state->status.default_layer != prev_status->default_layer) { - - // NOTE: that it doesn't matter if the animation isn't playing, stop will do nothing in that case - stop_keyframe_animation(&lcd_layer_bitmap_animation); - - lcd_state = LCD_STATE_BITMAP_AND_LEDS; - // For information: - // The logic in this function makes sure that this doesn't happen, but if you call start on an - // animation that is already playing it will be restarted. - start_keyframe_animation(&lcd_layer_bitmap_leds_animation); - } - } else { - if (lcd_state != LCD_STATE_LAYER_BITMAP || - state->status.layer != prev_status->layer || - state->status.default_layer != prev_status->default_layer) { - - stop_keyframe_animation(&lcd_layer_bitmap_leds_animation); - - lcd_state = LCD_STATE_LAYER_BITMAP; - start_keyframe_animation(&lcd_layer_bitmap_animation); - } - } // You can also stop existing animations, and start your custom ones here // remember that you should normally have only one animation for the LCD // and one for the background. But you can also combine them if you want. diff --git a/quantum/visualizer/visualizer.c b/quantum/visualizer/visualizer.c index 3b3f51b1ff8..2533eb7090e 100644 --- a/quantum/visualizer/visualizer.c +++ b/quantum/visualizer/visualizer.c @@ -364,9 +364,9 @@ bool keyframe_display_mods_bitmap(keyframe_animation_t* animation, visualizer_st return false; } -bool keyframe_display_led_states(keyframe_animation_t* animation, visualizer_state_t* state) -{ - char output[sizeof("NUM CAPS SCRL COMP KANA")]; +#define LED_STATE_STRING_SIZE sizeof("NUM CAPS SCRL COMP KANA") + +static void get_led_state_string(char* output, visualizer_state_t* state) { uint8_t pos = 0; if (state->status.leds & (1u << USB_LED_NUM_LOCK)) { @@ -390,12 +390,34 @@ bool keyframe_display_led_states(keyframe_animation_t* animation, visualizer_sta pos += 5; } output[pos] = 0; +} + +bool keyframe_display_led_states(keyframe_animation_t* animation, visualizer_state_t* state) +{ + (void)animation; + char output[LED_STATE_STRING_SIZE]; + get_led_state_string(output, state); gdispClear(White); gdispDrawString(0, 10, output, state->font_dejavusansbold12, Black); gdispFlush(); return false; } +bool keyframe_display_layer_and_led_states(keyframe_animation_t* animation, visualizer_state_t* state) { + (void)animation; + gdispClear(White); + uint8_t y = 10; + if (state->status.leds) { + char output[LED_STATE_STRING_SIZE]; + get_led_state_string(output, state); + gdispDrawString(0, 1, output, state->font_dejavusansbold12, Black); + y = 17; + } + gdispDrawString(0, y, state->layer_text, state->font_dejavusansbold12, Black); + gdispFlush(); + return false; +} + #endif // LCD_ENABLE bool keyframe_disable_lcd_and_backlight(keyframe_animation_t* animation, visualizer_state_t* state) { diff --git a/quantum/visualizer/visualizer.h b/quantum/visualizer/visualizer.h index e8ace5b37be..3b05c305e21 100644 --- a/quantum/visualizer/visualizer.h +++ b/quantum/visualizer/visualizer.h @@ -141,6 +141,7 @@ bool keyframe_display_layer_bitmap(keyframe_animation_t* animation, visualizer_s bool keyframe_display_mods_bitmap(keyframe_animation_t* animation, visualizer_state_t* state); // Displays the keyboard led states (CAPS (Caps lock), NUM (Num lock), SCRL (Scroll lock), COMP (Compose), KANA) bool keyframe_display_led_states(keyframe_animation_t* animation, visualizer_state_t* state); +bool keyframe_display_layer_and_led_states(keyframe_animation_t* animation, visualizer_state_t* state); bool keyframe_disable_lcd_and_backlight(keyframe_animation_t* animation, visualizer_state_t* state); bool keyframe_enable_lcd_and_backlight(keyframe_animation_t* animation, visualizer_state_t* state); From 05530b193f4d4476b01c2e7f882619a81194888a Mon Sep 17 00:00:00 2001 From: Fred Sundvik Date: Wed, 5 Apr 2017 07:48:51 +0300 Subject: [PATCH 107/190] Delete visualizer example integration It's much better to refer to the actual code than to to try to keep some examples up to date. --- .../example_integration/callbacks.c | 36 -- .../visualizer/example_integration/gfxconf.h | 325 ------------------ .../example_integration/lcd_backlight_hal.c | 91 ----- .../example_integration/visualizer_user.c | 121 ------- 4 files changed, 573 deletions(-) delete mode 100644 quantum/visualizer/example_integration/callbacks.c delete mode 100644 quantum/visualizer/example_integration/gfxconf.h delete mode 100644 quantum/visualizer/example_integration/lcd_backlight_hal.c delete mode 100644 quantum/visualizer/example_integration/visualizer_user.c diff --git a/quantum/visualizer/example_integration/callbacks.c b/quantum/visualizer/example_integration/callbacks.c deleted file mode 100644 index 2539615d65d..00000000000 --- a/quantum/visualizer/example_integration/callbacks.c +++ /dev/null @@ -1,36 +0,0 @@ -/* -The MIT License (MIT) - -Copyright (c) 2016 Fred Sundvik - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. -*/ - -#include "keyboard.h" -#include "action_layer.h" -#include "visualizer.h" -#include "host.h" - -void post_keyboard_init(void) { - visualizer_init(); -} - -void post_keyboard_task() { - visualizer_set_state(default_layer_state, layer_state, host_keyboard_leds()); -} diff --git a/quantum/visualizer/example_integration/gfxconf.h b/quantum/visualizer/example_integration/gfxconf.h deleted file mode 100644 index 304c5d187a9..00000000000 --- a/quantum/visualizer/example_integration/gfxconf.h +++ /dev/null @@ -1,325 +0,0 @@ -/** - * This file has a different license to the rest of the uGFX system. - * You can copy, modify and distribute this file as you see fit. - * You do not need to publish your source modifications to this file. - * The only thing you are not permitted to do is to relicense it - * under a different license. - */ - -/** - * Copy this file into your project directory and rename it as gfxconf.h - * Edit your copy to turn on the uGFX features you want to use. - * The values below are the defaults. - * - * Only remove the comments from lines where you want to change the - * default value. This allows definitions to be included from - * driver makefiles when required and provides the best future - * compatibility for your project. - * - * Please use spaces instead of tabs in this file. - */ - -#ifndef _GFXCONF_H -#define _GFXCONF_H - - -/////////////////////////////////////////////////////////////////////////// -// GOS - One of these must be defined, preferably in your Makefile // -/////////////////////////////////////////////////////////////////////////// -#define GFX_USE_OS_CHIBIOS TRUE -//#define GFX_USE_OS_FREERTOS FALSE -// #define GFX_FREERTOS_USE_TRACE FALSE -//#define GFX_USE_OS_WIN32 FALSE -//#define GFX_USE_OS_LINUX FALSE -//#define GFX_USE_OS_OSX FALSE -//#define GFX_USE_OS_ECOS FALSE -//#define GFX_USE_OS_RAWRTOS FALSE -//#define GFX_USE_OS_ARDUINO FALSE -//#define GFX_USE_OS_KEIL FALSE -//#define GFX_USE_OS_CMSIS FALSE -//#define GFX_USE_OS_RAW32 FALSE -// #define INTERRUPTS_OFF() optional_code -// #define INTERRUPTS_ON() optional_code -// These are not defined by default for some reason -#define GOS_NEED_X_THREADS FALSE -#define GOS_NEED_X_HEAP FALSE - -// Options that (should where relevant) apply to all operating systems - #define GFX_NO_INLINE FALSE -// #define GFX_COMPILER GFX_COMPILER_UNKNOWN -// #define GFX_CPU GFX_CPU_UNKNOWN -// #define GFX_OS_HEAP_SIZE 0 -// #define GFX_OS_NO_INIT FALSE -// #define GFX_OS_INIT_NO_WARNING FALSE -// #define GFX_OS_PRE_INIT_FUNCTION myHardwareInitRoutine -// #define GFX_OS_EXTRA_INIT_FUNCTION myOSInitRoutine -// #define GFX_OS_EXTRA_DEINIT_FUNCTION myOSDeInitRoutine - - -/////////////////////////////////////////////////////////////////////////// -// GDISP // -/////////////////////////////////////////////////////////////////////////// -#define GFX_USE_GDISP TRUE - -//#define GDISP_NEED_AUTOFLUSH FALSE -//#define GDISP_NEED_TIMERFLUSH FALSE -//#define GDISP_NEED_VALIDATION TRUE -//#define GDISP_NEED_CLIP TRUE -//#define GDISP_NEED_CIRCLE FALSE -//#define GDISP_NEED_ELLIPSE FALSE -//#define GDISP_NEED_ARC FALSE -//#define GDISP_NEED_ARCSECTORS FALSE -//#define GDISP_NEED_CONVEX_POLYGON FALSE -//#define GDISP_NEED_SCROLL FALSE -//#define GDISP_NEED_PIXELREAD FALSE -//#define GDISP_NEED_CONTROL FALSE -//#define GDISP_NEED_QUERY FALSE -//#define GDISP_NEED_MULTITHREAD FALSE -//#define GDISP_NEED_STREAMING FALSE -#define GDISP_NEED_TEXT TRUE -// #define GDISP_NEED_TEXT_WORDWRAP FALSE -// #define GDISP_NEED_ANTIALIAS FALSE -// #define GDISP_NEED_UTF8 FALSE - #define GDISP_NEED_TEXT_KERNING TRUE -// #define GDISP_INCLUDE_FONT_UI1 FALSE -// #define GDISP_INCLUDE_FONT_UI2 FALSE // The smallest preferred font. -// #define GDISP_INCLUDE_FONT_LARGENUMBERS FALSE -// #define GDISP_INCLUDE_FONT_DEJAVUSANS10 FALSE -// #define GDISP_INCLUDE_FONT_DEJAVUSANS12 FALSE -// #define GDISP_INCLUDE_FONT_DEJAVUSANS16 FALSE -// #define GDISP_INCLUDE_FONT_DEJAVUSANS20 FALSE -// #define GDISP_INCLUDE_FONT_DEJAVUSANS24 FALSE -// #define GDISP_INCLUDE_FONT_DEJAVUSANS32 FALSE - #define GDISP_INCLUDE_FONT_DEJAVUSANSBOLD12 TRUE -// #define GDISP_INCLUDE_FONT_FIXED_10X20 FALSE -// #define GDISP_INCLUDE_FONT_FIXED_7X14 FALSE - #define GDISP_INCLUDE_FONT_FIXED_5X8 TRUE -// #define GDISP_INCLUDE_FONT_DEJAVUSANS12_AA FALSE -// #define GDISP_INCLUDE_FONT_DEJAVUSANS16_AA FALSE -// #define GDISP_INCLUDE_FONT_DEJAVUSANS20_AA FALSE -// #define GDISP_INCLUDE_FONT_DEJAVUSANS24_AA FALSE -// #define GDISP_INCLUDE_FONT_DEJAVUSANS32_AA FALSE -// #define GDISP_INCLUDE_FONT_DEJAVUSANSBOLD12_AA FALSE -// #define GDISP_INCLUDE_USER_FONTS FALSE - -//#define GDISP_NEED_IMAGE FALSE -// #define GDISP_NEED_IMAGE_NATIVE FALSE -// #define GDISP_NEED_IMAGE_GIF FALSE -// #define GDISP_NEED_IMAGE_BMP FALSE -// #define GDISP_NEED_IMAGE_BMP_1 FALSE -// #define GDISP_NEED_IMAGE_BMP_4 FALSE -// #define GDISP_NEED_IMAGE_BMP_4_RLE FALSE -// #define GDISP_NEED_IMAGE_BMP_8 FALSE -// #define GDISP_NEED_IMAGE_BMP_8_RLE FALSE -// #define GDISP_NEED_IMAGE_BMP_16 FALSE -// #define GDISP_NEED_IMAGE_BMP_24 FALSE -// #define GDISP_NEED_IMAGE_BMP_32 FALSE -// #define GDISP_NEED_IMAGE_JPG FALSE -// #define GDISP_NEED_IMAGE_PNG FALSE -// #define GDISP_NEED_IMAGE_ACCOUNTING FALSE - -//#define GDISP_NEED_PIXMAP FALSE -// #define GDISP_NEED_PIXMAP_IMAGE FALSE - -//#define GDISP_DEFAULT_ORIENTATION GDISP_ROTATE_LANDSCAPE // If not defined the native hardware orientation is used. -//#define GDISP_LINEBUF_SIZE 128 -//#define GDISP_STARTUP_COLOR Black -#define GDISP_NEED_STARTUP_LOGO FALSE - -//#define GDISP_TOTAL_DISPLAYS 1 - -//#define GDISP_DRIVER_LIST GDISPVMT_Win32, GDISPVMT_Win32 -// #ifdef GDISP_DRIVER_LIST -// // For code and speed optimization define as TRUE or FALSE if all controllers have the same capability -// #define GDISP_HARDWARE_STREAM_WRITE FALSE -// #define GDISP_HARDWARE_STREAM_READ FALSE -// #define GDISP_HARDWARE_STREAM_POS FALSE -// #define GDISP_HARDWARE_DRAWPIXEL FALSE -// #define GDISP_HARDWARE_CLEARS FALSE -// #define GDISP_HARDWARE_FILLS FALSE -// #define GDISP_HARDWARE_BITFILLS FALSE -// #define GDISP_HARDWARE_SCROLL FALSE -// #define GDISP_HARDWARE_PIXELREAD FALSE -// #define GDISP_HARDWARE_CONTROL FALSE -// #define GDISP_HARDWARE_QUERY FALSE -// #define GDISP_HARDWARE_CLIP FALSE - - #define GDISP_PIXELFORMAT GDISP_PIXELFORMAT_RGB888 -// #endif - -// The custom format is not defined for some reason, so define it as error -// so we don't get compiler warnings -#define GDISP_PIXELFORMAT_CUSTOM GDISP_PIXELFORMAT_ERROR - -#define GDISP_USE_GFXNET FALSE -// #define GDISP_GFXNET_PORT 13001 -// #define GDISP_GFXNET_CUSTOM_LWIP_STARTUP FALSE -// #define GDISP_DONT_WAIT_FOR_NET_DISPLAY FALSE -// #define GDISP_GFXNET_UNSAFE_SOCKETS FALSE - - -/////////////////////////////////////////////////////////////////////////// -// GWIN // -/////////////////////////////////////////////////////////////////////////// -#define GFX_USE_GWIN FALSE - -//#define GWIN_NEED_WINDOWMANAGER FALSE -// #define GWIN_REDRAW_IMMEDIATE FALSE -// #define GWIN_REDRAW_SINGLEOP FALSE -// #define GWIN_NEED_FLASHING FALSE -// #define GWIN_FLASHING_PERIOD 250 - -//#define GWIN_NEED_CONSOLE FALSE -// #define GWIN_CONSOLE_USE_HISTORY FALSE -// #define GWIN_CONSOLE_HISTORY_AVERAGING FALSE -// #define GWIN_CONSOLE_HISTORY_ATCREATE FALSE -// #define GWIN_CONSOLE_ESCSEQ FALSE -// #define GWIN_CONSOLE_USE_BASESTREAM FALSE -// #define GWIN_CONSOLE_USE_FLOAT FALSE -//#define GWIN_NEED_GRAPH FALSE -//#define GWIN_NEED_GL3D FALSE - -//#define GWIN_NEED_WIDGET FALSE -//#define GWIN_FOCUS_HIGHLIGHT_WIDTH 1 -// #define GWIN_NEED_LABEL FALSE -// #define GWIN_LABEL_ATTRIBUTE FALSE -// #define GWIN_NEED_BUTTON FALSE -// #define GWIN_BUTTON_LAZY_RELEASE FALSE -// #define GWIN_NEED_SLIDER FALSE -// #define GWIN_SLIDER_NOSNAP FALSE -// #define GWIN_SLIDER_DEAD_BAND 5 -// #define GWIN_SLIDER_TOGGLE_INC 20 -// #define GWIN_NEED_CHECKBOX FALSE -// #define GWIN_NEED_IMAGE FALSE -// #define GWIN_NEED_IMAGE_ANIMATION FALSE -// #define GWIN_NEED_RADIO FALSE -// #define GWIN_NEED_LIST FALSE -// #define GWIN_NEED_LIST_IMAGES FALSE -// #define GWIN_NEED_PROGRESSBAR FALSE -// #define GWIN_PROGRESSBAR_AUTO FALSE -// #define GWIN_NEED_KEYBOARD FALSE -// #define GWIN_KEYBOARD_DEFAULT_LAYOUT VirtualKeyboard_English1 -// #define GWIN_NEED_KEYBOARD_ENGLISH1 TRUE -// #define GWIN_NEED_TEXTEDIT FALSE -// #define GWIN_FLAT_STYLING FALSE -// #define GWIN_WIDGET_TAGS FALSE - -//#define GWIN_NEED_CONTAINERS FALSE -// #define GWIN_NEED_CONTAINER FALSE -// #define GWIN_NEED_FRAME FALSE -// #define GWIN_NEED_TABSET FALSE -// #define GWIN_TABSET_TABHEIGHT 18 - - -/////////////////////////////////////////////////////////////////////////// -// GEVENT // -/////////////////////////////////////////////////////////////////////////// -#define GFX_USE_GEVENT FALSE - -//#define GEVENT_ASSERT_NO_RESOURCE FALSE -//#define GEVENT_MAXIMUM_SIZE 32 -//#define GEVENT_MAX_SOURCE_LISTENERS 32 - - -/////////////////////////////////////////////////////////////////////////// -// GTIMER // -/////////////////////////////////////////////////////////////////////////// -#define GFX_USE_GTIMER FALSE - -//#define GTIMER_THREAD_PRIORITY HIGH_PRIORITY -//#define GTIMER_THREAD_WORKAREA_SIZE 2048 - - -/////////////////////////////////////////////////////////////////////////// -// GQUEUE // -/////////////////////////////////////////////////////////////////////////// -#define GFX_USE_GQUEUE FALSE - -//#define GQUEUE_NEED_ASYNC FALSE -//#define GQUEUE_NEED_GSYNC FALSE -//#define GQUEUE_NEED_FSYNC FALSE -//#define GQUEUE_NEED_BUFFERS FALSE - -/////////////////////////////////////////////////////////////////////////// -// GINPUT // -/////////////////////////////////////////////////////////////////////////// -#define GFX_USE_GINPUT FALSE - -//#define GINPUT_NEED_MOUSE FALSE -// #define GINPUT_TOUCH_STARTRAW FALSE -// #define GINPUT_TOUCH_NOTOUCH FALSE -// #define GINPUT_TOUCH_NOCALIBRATE FALSE -// #define GINPUT_TOUCH_NOCALIBRATE_GUI FALSE -// #define GINPUT_MOUSE_POLL_PERIOD 25 -// #define GINPUT_MOUSE_CLICK_TIME 300 -// #define GINPUT_TOUCH_CXTCLICK_TIME 700 -// #define GINPUT_TOUCH_USER_CALIBRATION_LOAD FALSE -// #define GINPUT_TOUCH_USER_CALIBRATION_SAVE FALSE -// #define GMOUSE_DRIVER_LIST GMOUSEVMT_Win32, GMOUSEVMT_Win32 -//#define GINPUT_NEED_KEYBOARD FALSE -// #define GINPUT_KEYBOARD_POLL_PERIOD 200 -// #define GKEYBOARD_DRIVER_LIST GKEYBOARDVMT_Win32, GKEYBOARDVMT_Win32 -// #define GKEYBOARD_LAYOUT_OFF FALSE -// #define GKEYBOARD_LAYOUT_SCANCODE2_US FALSE -//#define GINPUT_NEED_TOGGLE FALSE -//#define GINPUT_NEED_DIAL FALSE - - -/////////////////////////////////////////////////////////////////////////// -// GFILE // -/////////////////////////////////////////////////////////////////////////// -#define GFX_USE_GFILE FALSE - -//#define GFILE_NEED_PRINTG FALSE -//#define GFILE_NEED_SCANG FALSE -//#define GFILE_NEED_STRINGS FALSE -//#define GFILE_NEED_FILELISTS FALSE -//#define GFILE_NEED_STDIO FALSE -//#define GFILE_NEED_NOAUTOMOUNT FALSE -//#define GFILE_NEED_NOAUTOSYNC FALSE - -//#define GFILE_NEED_MEMFS FALSE -//#define GFILE_NEED_ROMFS FALSE -//#define GFILE_NEED_RAMFS FALSE -//#define GFILE_NEED_FATFS FALSE -//#define GFILE_NEED_NATIVEFS FALSE -//#define GFILE_NEED_CHBIOSFS FALSE - -//#define GFILE_ALLOW_FLOATS FALSE -//#define GFILE_ALLOW_DEVICESPECIFIC FALSE -//#define GFILE_MAX_GFILES 3 - -/////////////////////////////////////////////////////////////////////////// -// GADC // -/////////////////////////////////////////////////////////////////////////// -#define GFX_USE_GADC FALSE - -//#define GADC_MAX_LOWSPEED_DEVICES 4 - - -/////////////////////////////////////////////////////////////////////////// -// GAUDIO // -/////////////////////////////////////////////////////////////////////////// -#define GFX_USE_GAUDIO FALSE -// There seems to be a bug in the ugfx code, the wrong define is used -// So define it in order to avoid warnings -#define GFX_USE_GAUDIN GFX_USE_GAUDIO -// #define GAUDIO_NEED_PLAY FALSE -// #define GAUDIO_NEED_RECORD FALSE - - -/////////////////////////////////////////////////////////////////////////// -// GMISC // -/////////////////////////////////////////////////////////////////////////// -#define GFX_USE_GMISC FALSE - -//#define GMISC_NEED_ARRAYOPS FALSE -//#define GMISC_NEED_FASTTRIG FALSE -//#define GMISC_NEED_FIXEDTRIG FALSE -//#define GMISC_NEED_INVSQRT FALSE -// #define GMISC_INVSQRT_MIXED_ENDIAN FALSE -// #define GMISC_INVSQRT_REAL_SLOW FALSE -//#define GMISC_NEED_MATRIXFLOAT2D FALSE -//#define GMISC_NEED_MATRIXFIXED2D FALSE - -#endif /* _GFXCONF_H */ diff --git a/quantum/visualizer/example_integration/lcd_backlight_hal.c b/quantum/visualizer/example_integration/lcd_backlight_hal.c deleted file mode 100644 index 913131b1692..00000000000 --- a/quantum/visualizer/example_integration/lcd_backlight_hal.c +++ /dev/null @@ -1,91 +0,0 @@ -/* -The MIT License (MIT) - -Copyright (c) 2016 Fred Sundvik - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. -*/ - -#include "lcd_backlight.h" -#include "hal.h" - -#define RED_PIN 1 -#define GREEN_PIN 2 -#define BLUE_PIN 3 -#define CHANNEL_RED FTM0->CHANNEL[0] -#define CHANNEL_GREEN FTM0->CHANNEL[1] -#define CHANNEL_BLUE FTM0->CHANNEL[2] - -#define RGB_PORT PORTC -#define RGB_PORT_GPIO GPIOC - -// Base FTM clock selection (72 MHz system clock) -// @ 0xFFFF period, 72 MHz / (0xFFFF * 2) = Actual period -// Higher pre-scalar will use the most power (also look the best) -// Pre-scalar calculations -// 0 - 72 MHz -> 549 Hz -// 1 - 36 MHz -> 275 Hz -// 2 - 18 MHz -> 137 Hz -// 3 - 9 MHz -> 69 Hz (Slightly visible flicker) -// 4 - 4 500 kHz -> 34 Hz (Visible flickering) -// 5 - 2 250 kHz -> 17 Hz -// 6 - 1 125 kHz -> 9 Hz -// 7 - 562 500 Hz -> 4 Hz -// Using a higher pre-scalar without flicker is possible but FTM0_MOD will need to be reduced -// Which will reduce the brightness range -#define PRESCALAR_DEFINE 0 - -void lcd_backlight_hal_init(void) { - // Setup Backlight - SIM->SCGC6 |= SIM_SCGC6_FTM0; - FTM0->CNT = 0; // Reset counter - - // PWM Period - // 16-bit maximum - FTM0->MOD = 0xFFFF; - - // Set FTM to PWM output - Edge Aligned, Low-true pulses -#define CNSC_MODE FTM_SC_CPWMS | FTM_SC_PS(4) | FTM_SC_CLKS(0) - CHANNEL_RED.CnSC = CNSC_MODE; - CHANNEL_GREEN.CnSC = CNSC_MODE; - CHANNEL_BLUE.CnSC = CNSC_MODE; - - // System clock, /w prescalar setting - FTM0->SC = FTM_SC_CLKS(1) | FTM_SC_PS(PRESCALAR_DEFINE); - - CHANNEL_RED.CnV = 0; - CHANNEL_GREEN.CnV = 0; - CHANNEL_BLUE.CnV = 0; - - RGB_PORT_GPIO->PDDR |= (1 << RED_PIN); - RGB_PORT_GPIO->PDDR |= (1 << GREEN_PIN); - RGB_PORT_GPIO->PDDR |= (1 << BLUE_PIN); - -#define RGB_MODE PORTx_PCRn_SRE | PORTx_PCRn_DSE | PORTx_PCRn_MUX(4) - RGB_PORT->PCR[RED_PIN] = RGB_MODE; - RGB_PORT->PCR[GREEN_PIN] = RGB_MODE; - RGB_PORT->PCR[BLUE_PIN] = RGB_MODE; -} - -void lcd_backlight_hal_color(uint16_t r, uint16_t g, uint16_t b) { - CHANNEL_RED.CnV = r; - CHANNEL_GREEN.CnV = g; - CHANNEL_BLUE.CnV = b; -} - diff --git a/quantum/visualizer/example_integration/visualizer_user.c b/quantum/visualizer/example_integration/visualizer_user.c deleted file mode 100644 index fc09fe2eafc..00000000000 --- a/quantum/visualizer/example_integration/visualizer_user.c +++ /dev/null @@ -1,121 +0,0 @@ -/* -The MIT License (MIT) - -Copyright (c) 2016 Fred Sundvik - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. -*/ - -// Currently we are assuming that both the backlight and LCD are enabled -// But it's entirely possible to write a custom visualizer that use only -// one of them -#ifndef LCD_BACKLIGHT_ENABLE -#error This visualizer needs that LCD backlight is enabled -#endif - -#ifndef LCD_ENABLE -#error This visualizer needs that LCD is enabled -#endif - -#include "visualizer.h" - -static const char* welcome_text[] = {"TMK", "Infinity Ergodox"}; - -// Just an example how to write custom keyframe functions, we could have moved -// all this into the init function -bool display_welcome(keyframe_animation_t* animation, visualizer_state_t* state) { - (void)animation; - // Read the uGFX documentation for information how to use the displays - // http://wiki.ugfx.org/index.php/Main_Page - gdispClear(White); - // You can use static variables for things that can't be found in the animation - // or state structs - gdispDrawString(0, 3, welcome_text[0], state->font_dejavusansbold12, Black); - gdispDrawString(0, 15, welcome_text[1], state->font_dejavusansbold12, Black); - // Always remember to flush the display - gdispFlush(); - // you could set the backlight color as well, but we won't do it here, since - // it's part of the following animation - // lcd_backlight_color(hue, saturation, intensity); - // We don't need constant updates, just drawing the screen once is enough - return false; -} - -// Feel free to modify the animations below, or even add new ones if needed - -// Don't worry, if the startup animation is long, you can use the keyboard like normal -// during that time -static keyframe_animation_t startup_animation = { - .num_frames = 4, - .loop = false, - .frame_lengths = {0, MS2ST(1000), MS2ST(5000), 0}, - .frame_functions = {display_welcome, keyframe_animate_backlight_color, keyframe_no_operation, enable_visualization}, -}; - -// The color animation animates the LCD color when you change layers -static keyframe_animation_t color_animation = { - .num_frames = 2, - .loop = false, - // Note that there's a 200 ms no-operation frame, - // this prevents the color from changing when activating the layer - // momentarily - .frame_lengths = {MS2ST(200), MS2ST(500)}, - .frame_functions = {keyframe_no_operation, keyframe_animate_backlight_color}, -}; - -// The LCD animation alternates between the layer name display and a -// bitmap that displays all active layers -static keyframe_animation_t lcd_animation = { - .num_frames = 2, - .loop = true, - .frame_lengths = {MS2ST(2000), MS2ST(2000)}, - .frame_functions = {keyframe_display_layer_text, keyframe_display_layer_bitmap}, -}; - -void initialize_user_visualizer(visualizer_state_t* state) { - // The brightness will be dynamically adjustable in the future - // But for now, change it here. - lcd_backlight_brightness(0x50); - state->current_lcd_color = LCD_COLOR(0x00, 0x00, 0xFF); - state->target_lcd_color = LCD_COLOR(0x10, 0xFF, 0xFF); - start_keyframe_animation(&startup_animation); -} - -void update_user_visualizer_state(visualizer_state_t* state) { - // Add more tests, change the colors and layer texts here - // Usually you want to check the high bits (higher layers first) - // because that's the order layers are processed for keypresses - // You can for check for example: - // state->status.layer - // state->status.default_layer - // state->status.leds (see led.h for available statuses) - if (state->status.layer & 0x2) { - state->target_lcd_color = LCD_COLOR(0xA0, 0xB0, 0xFF); - state->layer_text = "Layer 2"; - } - else { - state->target_lcd_color = LCD_COLOR(0x50, 0xB0, 0xFF); - state->layer_text = "Layer 1"; - } - // You can also stop existing animations, and start your custom ones here - // remember that you should normally have only one animation for the LCD - // and one for the background. But you can also combine them if you want. - start_keyframe_animation(&lcd_animation); - start_keyframe_animation(&color_animation); -} From 5815c5d317b02d688990980fdf01848e81247c21 Mon Sep 17 00:00:00 2001 From: Fred Sundvik Date: Wed, 5 Apr 2017 08:40:39 +0300 Subject: [PATCH 108/190] Move LCD keyframes to its own file --- keyboards/ergodox/infinity/visualizer.c | 7 +- .../ergodox/keymaps/default/visualizer.c | 5 +- quantum/visualizer/lcd_keyframes.c | 160 ++++++++++++++++++ quantum/visualizer/lcd_keyframes.h | 33 ++++ quantum/visualizer/visualizer.c | 150 +--------------- quantum/visualizer/visualizer.h | 9 - quantum/visualizer/visualizer.mk | 1 + 7 files changed, 203 insertions(+), 162 deletions(-) create mode 100644 quantum/visualizer/lcd_keyframes.c create mode 100644 quantum/visualizer/lcd_keyframes.h diff --git a/keyboards/ergodox/infinity/visualizer.c b/keyboards/ergodox/infinity/visualizer.c index c7afd9384cf..3abed08db0b 100644 --- a/keyboards/ergodox/infinity/visualizer.c +++ b/keyboards/ergodox/infinity/visualizer.c @@ -27,6 +27,7 @@ along with this program. If not, see . #endif #include "visualizer.h" +#include "lcd_keyframes.h" #include "system/serial_link.h" // To generate an image array like this @@ -173,14 +174,14 @@ static keyframe_animation_t lcd_bitmap_animation = { .num_frames = 1, .loop = false, .frame_lengths = {gfxMillisecondsToTicks(0)}, - .frame_functions = {keyframe_display_layer_bitmap}, + .frame_functions = {lcd_keyframe_display_layer_bitmap}, }; static keyframe_animation_t lcd_bitmap_leds_animation = { .num_frames = 2, .loop = true, .frame_lengths = {gfxMillisecondsToTicks(2000), gfxMillisecondsToTicks(2000)}, - .frame_functions = {keyframe_display_layer_bitmap, keyframe_display_led_states}, + .frame_functions = {lcd_keyframe_display_layer_bitmap, lcd_keyframe_display_led_states}, }; static keyframe_animation_t suspend_animation = { @@ -188,7 +189,7 @@ static keyframe_animation_t suspend_animation = { .loop = false, .frame_lengths = {0, gfxMillisecondsToTicks(1000), 0}, .frame_functions = { - keyframe_display_layer_text, + lcd_keyframe_display_layer_text, keyframe_animate_backlight_color, keyframe_disable_lcd_and_backlight, }, diff --git a/keyboards/ergodox/keymaps/default/visualizer.c b/keyboards/ergodox/keymaps/default/visualizer.c index 305aaae1575..ef87ac41958 100644 --- a/keyboards/ergodox/keymaps/default/visualizer.c +++ b/keyboards/ergodox/keymaps/default/visualizer.c @@ -27,6 +27,7 @@ along with this program. If not, see . #endif #include "visualizer.h" +#include "lcd_keyframes.h" #include "system/serial_link.h" #include "led.h" @@ -122,7 +123,7 @@ static keyframe_animation_t lcd_layer_display = { .num_frames = 1, .loop = false, .frame_lengths = {gfxMillisecondsToTicks(0)}, - .frame_functions = {keyframe_display_layer_and_led_states} + .frame_functions = {lcd_keyframe_display_layer_and_led_states} }; static keyframe_animation_t suspend_animation = { @@ -130,7 +131,7 @@ static keyframe_animation_t suspend_animation = { .loop = false, .frame_lengths = {0, gfxMillisecondsToTicks(1000), 0}, .frame_functions = { - keyframe_display_layer_text, + lcd_keyframe_display_layer_text, keyframe_animate_backlight_color, keyframe_disable_lcd_and_backlight, }, diff --git a/quantum/visualizer/lcd_keyframes.c b/quantum/visualizer/lcd_keyframes.c new file mode 100644 index 00000000000..00d9734e6ae --- /dev/null +++ b/quantum/visualizer/lcd_keyframes.c @@ -0,0 +1,160 @@ +/* Copyright 2017 Fred Sundvik + * + * 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 "lcd_keyframes.h" +#include +#include "action_util.h" +#include "led.h" + +bool lcd_keyframe_display_layer_text(keyframe_animation_t* animation, visualizer_state_t* state) { + (void)animation; + gdispClear(White); + gdispDrawString(0, 10, state->layer_text, state->font_dejavusansbold12, Black); + gdispFlush(); + return false; +} + +static void format_layer_bitmap_string(uint16_t default_layer, uint16_t layer, char* buffer) { + for (int i=0; i<16;i++) + { + uint32_t mask = (1u << i); + if (default_layer & mask) { + if (layer & mask) { + *buffer = 'B'; + } else { + *buffer = 'D'; + } + } else if (layer & mask) { + *buffer = '1'; + } else { + *buffer = '0'; + } + ++buffer; + + if (i==3 || i==7 || i==11) { + *buffer = ' '; + ++buffer; + } + } + *buffer = 0; +} + +bool lcd_keyframe_display_layer_bitmap(keyframe_animation_t* animation, visualizer_state_t* state) { + (void)animation; + const char* layer_help = "1=On D=Default B=Both"; + char layer_buffer[16 + 4]; // 3 spaces and one null terminator + gdispClear(White); + gdispDrawString(0, 0, layer_help, state->font_fixed5x8, Black); + format_layer_bitmap_string(state->status.default_layer, state->status.layer, layer_buffer); + gdispDrawString(0, 10, layer_buffer, state->font_fixed5x8, Black); + format_layer_bitmap_string(state->status.default_layer >> 16, state->status.layer >> 16, layer_buffer); + gdispDrawString(0, 20, layer_buffer, state->font_fixed5x8, Black); + gdispFlush(); + return false; +} + +static void format_mods_bitmap_string(uint8_t mods, char* buffer) { + *buffer = ' '; + ++buffer; + + for (int i = 0; i<8; i++) + { + uint32_t mask = (1u << i); + if (mods & mask) { + *buffer = '1'; + } else { + *buffer = '0'; + } + ++buffer; + + if (i==3) { + *buffer = ' '; + ++buffer; + } + } + *buffer = 0; +} + +bool lcd_keyframe_display_mods_bitmap(keyframe_animation_t* animation, visualizer_state_t* state) { + (void)animation; + + const char* title = "Modifier states"; + const char* mods_header = " CSAG CSAG "; + char status_buffer[12]; + + gdispClear(White); + gdispDrawString(0, 0, title, state->font_fixed5x8, Black); + gdispDrawString(0, 10, mods_header, state->font_fixed5x8, Black); + format_mods_bitmap_string(state->status.mods, status_buffer); + gdispDrawString(0, 20, status_buffer, state->font_fixed5x8, Black); + + gdispFlush(); + return false; +} + +#define LED_STATE_STRING_SIZE sizeof("NUM CAPS SCRL COMP KANA") + +static void get_led_state_string(char* output, visualizer_state_t* state) { + uint8_t pos = 0; + + if (state->status.leds & (1u << USB_LED_NUM_LOCK)) { + memcpy(output + pos, "NUM ", 4); + pos += 4; + } + if (state->status.leds & (1u << USB_LED_CAPS_LOCK)) { + memcpy(output + pos, "CAPS ", 5); + pos += 5; + } + if (state->status.leds & (1u << USB_LED_SCROLL_LOCK)) { + memcpy(output + pos, "SCRL ", 5); + pos += 5; + } + if (state->status.leds & (1u << USB_LED_COMPOSE)) { + memcpy(output + pos, "COMP ", 5); + pos += 5; + } + if (state->status.leds & (1u << USB_LED_KANA)) { + memcpy(output + pos, "KANA ", 5); + pos += 5; + } + output[pos] = 0; +} + +bool lcd_keyframe_display_led_states(keyframe_animation_t* animation, visualizer_state_t* state) +{ + (void)animation; + char output[LED_STATE_STRING_SIZE]; + get_led_state_string(output, state); + gdispClear(White); + gdispDrawString(0, 10, output, state->font_dejavusansbold12, Black); + gdispFlush(); + return false; +} + +bool lcd_keyframe_display_layer_and_led_states(keyframe_animation_t* animation, visualizer_state_t* state) { + (void)animation; + gdispClear(White); + uint8_t y = 10; + if (state->status.leds) { + char output[LED_STATE_STRING_SIZE]; + get_led_state_string(output, state); + gdispDrawString(0, 1, output, state->font_dejavusansbold12, Black); + y = 17; + } + gdispDrawString(0, y, state->layer_text, state->font_dejavusansbold12, Black); + gdispFlush(); + return false; +} diff --git a/quantum/visualizer/lcd_keyframes.h b/quantum/visualizer/lcd_keyframes.h new file mode 100644 index 00000000000..0c9f39ab8c5 --- /dev/null +++ b/quantum/visualizer/lcd_keyframes.h @@ -0,0 +1,33 @@ +/* Copyright 2017 Fred Sundvik + * + * 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 QUANTUM_VISUALIZER_LCD_KEYFRAMES_H_ +#define QUANTUM_VISUALIZER_LCD_KEYFRAMES_H_ + +#include "visualizer.h" + +// Displays the layer text centered vertically on the screen +bool lcd_keyframe_display_layer_text(keyframe_animation_t* animation, visualizer_state_t* state); +// Displays a bitmap (0/1) of all the currently active layers +bool lcd_keyframe_display_layer_bitmap(keyframe_animation_t* animation, visualizer_state_t* state); +// Displays a bitmap (0/1) of all the currently active mods +bool lcd_keyframe_display_mods_bitmap(keyframe_animation_t* animation, visualizer_state_t* state); +// Displays the keyboard led states (CAPS (Caps lock), NUM (Num lock), SCRL (Scroll lock), COMP (Compose), KANA) +bool lcd_keyframe_display_led_states(keyframe_animation_t* animation, visualizer_state_t* state); +// Displays both the layer text and the led states +bool lcd_keyframe_display_layer_and_led_states(keyframe_animation_t* animation, visualizer_state_t* state); + +#endif /* QUANTUM_VISUALIZER_LCD_KEYFRAMES_H_ */ diff --git a/quantum/visualizer/visualizer.c b/quantum/visualizer/visualizer.c index 2533eb7090e..514d7c44e0d 100644 --- a/quantum/visualizer/visualizer.c +++ b/quantum/visualizer/visualizer.c @@ -48,16 +48,13 @@ SOFTWARE. #include "serial_link/system/serial_link.h" #endif +#include "action_util.h" + // Define this in config.h #ifndef VISUALIZER_THREAD_PRIORITY #define "Visualizer thread priority not defined" #endif -// mods status -#include "action_util.h" - -#include "led.h" - static visualizer_keyboard_status_t current_status = { .layer = 0xFFFFFFFF, .default_layer = 0xFFFFFFFF, @@ -277,149 +274,6 @@ bool keyframe_set_backlight_color(keyframe_animation_t* animation, visualizer_st } #endif // LCD_BACKLIGHT_ENABLE -#ifdef LCD_ENABLE -bool keyframe_display_layer_text(keyframe_animation_t* animation, visualizer_state_t* state) { - (void)animation; - gdispClear(White); - gdispDrawString(0, 10, state->layer_text, state->font_dejavusansbold12, Black); - gdispFlush(); - return false; -} - -static void format_layer_bitmap_string(uint16_t default_layer, uint16_t layer, char* buffer) { - for (int i=0; i<16;i++) - { - uint32_t mask = (1u << i); - if (default_layer & mask) { - if (layer & mask) { - *buffer = 'B'; - } else { - *buffer = 'D'; - } - } else if (layer & mask) { - *buffer = '1'; - } else { - *buffer = '0'; - } - ++buffer; - - if (i==3 || i==7 || i==11) { - *buffer = ' '; - ++buffer; - } - } - *buffer = 0; -} - -bool keyframe_display_layer_bitmap(keyframe_animation_t* animation, visualizer_state_t* state) { - (void)animation; - const char* layer_help = "1=On D=Default B=Both"; - char layer_buffer[16 + 4]; // 3 spaces and one null terminator - gdispClear(White); - gdispDrawString(0, 0, layer_help, state->font_fixed5x8, Black); - format_layer_bitmap_string(state->status.default_layer, state->status.layer, layer_buffer); - gdispDrawString(0, 10, layer_buffer, state->font_fixed5x8, Black); - format_layer_bitmap_string(state->status.default_layer >> 16, state->status.layer >> 16, layer_buffer); - gdispDrawString(0, 20, layer_buffer, state->font_fixed5x8, Black); - gdispFlush(); - return false; -} - -static void format_mods_bitmap_string(uint8_t mods, char* buffer) { - *buffer = ' '; - ++buffer; - - for (int i = 0; i<8; i++) - { - uint32_t mask = (1u << i); - if (mods & mask) { - *buffer = '1'; - } else { - *buffer = '0'; - } - ++buffer; - - if (i==3) { - *buffer = ' '; - ++buffer; - } - } - *buffer = 0; -} - -bool keyframe_display_mods_bitmap(keyframe_animation_t* animation, visualizer_state_t* state) { - (void)animation; - - const char* title = "Modifier states"; - const char* mods_header = " CSAG CSAG "; - char status_buffer[12]; - - gdispClear(White); - gdispDrawString(0, 0, title, state->font_fixed5x8, Black); - gdispDrawString(0, 10, mods_header, state->font_fixed5x8, Black); - format_mods_bitmap_string(state->status.mods, status_buffer); - gdispDrawString(0, 20, status_buffer, state->font_fixed5x8, Black); - - gdispFlush(); - return false; -} - -#define LED_STATE_STRING_SIZE sizeof("NUM CAPS SCRL COMP KANA") - -static void get_led_state_string(char* output, visualizer_state_t* state) { - uint8_t pos = 0; - - if (state->status.leds & (1u << USB_LED_NUM_LOCK)) { - memcpy(output + pos, "NUM ", 4); - pos += 4; - } - if (state->status.leds & (1u << USB_LED_CAPS_LOCK)) { - memcpy(output + pos, "CAPS ", 5); - pos += 5; - } - if (state->status.leds & (1u << USB_LED_SCROLL_LOCK)) { - memcpy(output + pos, "SCRL ", 5); - pos += 5; - } - if (state->status.leds & (1u << USB_LED_COMPOSE)) { - memcpy(output + pos, "COMP ", 5); - pos += 5; - } - if (state->status.leds & (1u << USB_LED_KANA)) { - memcpy(output + pos, "KANA ", 5); - pos += 5; - } - output[pos] = 0; -} - -bool keyframe_display_led_states(keyframe_animation_t* animation, visualizer_state_t* state) -{ - (void)animation; - char output[LED_STATE_STRING_SIZE]; - get_led_state_string(output, state); - gdispClear(White); - gdispDrawString(0, 10, output, state->font_dejavusansbold12, Black); - gdispFlush(); - return false; -} - -bool keyframe_display_layer_and_led_states(keyframe_animation_t* animation, visualizer_state_t* state) { - (void)animation; - gdispClear(White); - uint8_t y = 10; - if (state->status.leds) { - char output[LED_STATE_STRING_SIZE]; - get_led_state_string(output, state); - gdispDrawString(0, 1, output, state->font_dejavusansbold12, Black); - y = 17; - } - gdispDrawString(0, y, state->layer_text, state->font_dejavusansbold12, Black); - gdispFlush(); - return false; -} - -#endif // LCD_ENABLE - bool keyframe_disable_lcd_and_backlight(keyframe_animation_t* animation, visualizer_state_t* state) { (void)animation; (void)state; diff --git a/quantum/visualizer/visualizer.h b/quantum/visualizer/visualizer.h index 3b05c305e21..440044fd3da 100644 --- a/quantum/visualizer/visualizer.h +++ b/quantum/visualizer/visualizer.h @@ -133,15 +133,6 @@ bool keyframe_no_operation(keyframe_animation_t* animation, visualizer_state_t* bool keyframe_animate_backlight_color(keyframe_animation_t* animation, visualizer_state_t* state); // Sets the backlight color to the target color bool keyframe_set_backlight_color(keyframe_animation_t* animation, visualizer_state_t* state); -// Displays the layer text centered vertically on the screen -bool keyframe_display_layer_text(keyframe_animation_t* animation, visualizer_state_t* state); -// Displays a bitmap (0/1) of all the currently active layers -bool keyframe_display_layer_bitmap(keyframe_animation_t* animation, visualizer_state_t* state); -// Displays a bitmap (0/1) of all the currently active mods -bool keyframe_display_mods_bitmap(keyframe_animation_t* animation, visualizer_state_t* state); -// Displays the keyboard led states (CAPS (Caps lock), NUM (Num lock), SCRL (Scroll lock), COMP (Compose), KANA) -bool keyframe_display_led_states(keyframe_animation_t* animation, visualizer_state_t* state); -bool keyframe_display_layer_and_led_states(keyframe_animation_t* animation, visualizer_state_t* state); bool keyframe_disable_lcd_and_backlight(keyframe_animation_t* animation, visualizer_state_t* state); bool keyframe_enable_lcd_and_backlight(keyframe_animation_t* animation, visualizer_state_t* state); diff --git a/quantum/visualizer/visualizer.mk b/quantum/visualizer/visualizer.mk index 3861cb1f042..325cefd6f8e 100644 --- a/quantum/visualizer/visualizer.mk +++ b/quantum/visualizer/visualizer.mk @@ -34,6 +34,7 @@ endif ifeq ($(strip $(LCD_ENABLE)), yes) SRC += $(VISUALIZER_DIR)/lcd_backlight.c +SRC += $(VISUALIZER_DIR)/lcd_keyframes.c OPT_DEFS += -DLCD_BACKLIGHT_ENABLE endif From 5ba228b684a32c1099efc6207842a56ff102961a Mon Sep 17 00:00:00 2001 From: Fred Sundvik Date: Wed, 5 Apr 2017 08:48:30 +0300 Subject: [PATCH 109/190] Move LCD backlight keyframes to its own file --- keyboards/ergodox/infinity/visualizer.c | 11 ++-- .../ergodox/keymaps/default/visualizer.c | 9 +-- quantum/visualizer/lcd_backlight_keyframes.c | 61 +++++++++++++++++++ quantum/visualizer/lcd_backlight_keyframes.h | 27 ++++++++ quantum/visualizer/visualizer.c | 46 -------------- quantum/visualizer/visualizer.h | 4 -- quantum/visualizer/visualizer.mk | 1 + 7 files changed, 100 insertions(+), 59 deletions(-) create mode 100644 quantum/visualizer/lcd_backlight_keyframes.c create mode 100644 quantum/visualizer/lcd_backlight_keyframes.h diff --git a/keyboards/ergodox/infinity/visualizer.c b/keyboards/ergodox/infinity/visualizer.c index 3abed08db0b..bbed4e9897f 100644 --- a/keyboards/ergodox/infinity/visualizer.c +++ b/keyboards/ergodox/infinity/visualizer.c @@ -28,6 +28,7 @@ along with this program. If not, see . #include "visualizer.h" #include "lcd_keyframes.h" +#include "lcd_backlight_keyframes.h" #include "system/serial_link.h" // To generate an image array like this @@ -140,7 +141,7 @@ static keyframe_animation_t startup_animation = { .frame_lengths = {0, gfxMillisecondsToTicks(10000), 0}, .frame_functions = { display_logo, - keyframe_animate_backlight_color, + backlight_keyframe_animate_color, enable_visualization }, }; @@ -150,7 +151,7 @@ static keyframe_animation_t one_led_color = { .num_frames = 1, .loop = false, .frame_lengths = {gfxMillisecondsToTicks(0)}, - .frame_functions = {keyframe_set_backlight_color}, + .frame_functions = {backlight_keyframe_set_color}, }; bool swap_led_target_color(keyframe_animation_t* animation, visualizer_state_t* state) { @@ -165,7 +166,7 @@ static keyframe_animation_t two_led_colors = { .num_frames = 2, .loop = true, .frame_lengths = {gfxMillisecondsToTicks(1000), gfxMillisecondsToTicks(0)}, - .frame_functions = {keyframe_set_backlight_color, swap_led_target_color}, + .frame_functions = {backlight_keyframe_set_color, swap_led_target_color}, }; // The LCD animation alternates between the layer name display and a @@ -190,7 +191,7 @@ static keyframe_animation_t suspend_animation = { .frame_lengths = {0, gfxMillisecondsToTicks(1000), 0}, .frame_functions = { lcd_keyframe_display_layer_text, - keyframe_animate_backlight_color, + backlight_keyframe_animate_color, keyframe_disable_lcd_and_backlight, }, }; @@ -202,7 +203,7 @@ static keyframe_animation_t resume_animation = { .frame_functions = { keyframe_enable_lcd_and_backlight, display_logo, - keyframe_animate_backlight_color, + backlight_keyframe_animate_color, enable_visualization, }, }; diff --git a/keyboards/ergodox/keymaps/default/visualizer.c b/keyboards/ergodox/keymaps/default/visualizer.c index ef87ac41958..07f5a44ab3d 100644 --- a/keyboards/ergodox/keymaps/default/visualizer.c +++ b/keyboards/ergodox/keymaps/default/visualizer.c @@ -28,6 +28,7 @@ along with this program. If not, see . #include "visualizer.h" #include "lcd_keyframes.h" +#include "lcd_backlight_keyframes.h" #include "system/serial_link.h" #include "led.h" @@ -114,7 +115,7 @@ static keyframe_animation_t startup_animation = { .frame_lengths = {0, gfxMillisecondsToTicks(10000), 0}, .frame_functions = { display_logo, - keyframe_animate_backlight_color, + backlight_keyframe_animate_color, enable_visualization }, }; @@ -132,7 +133,7 @@ static keyframe_animation_t suspend_animation = { .frame_lengths = {0, gfxMillisecondsToTicks(1000), 0}, .frame_functions = { lcd_keyframe_display_layer_text, - keyframe_animate_backlight_color, + backlight_keyframe_animate_color, keyframe_disable_lcd_and_backlight, }, }; @@ -144,7 +145,7 @@ static keyframe_animation_t resume_animation = { .frame_functions = { keyframe_enable_lcd_and_backlight, display_logo, - keyframe_animate_backlight_color, + backlight_keyframe_animate_color, enable_visualization, }, }; @@ -157,7 +158,7 @@ static keyframe_animation_t color_animation = { // this prevents the color from changing when activating the layer // momentarily .frame_lengths = {gfxMillisecondsToTicks(200), gfxMillisecondsToTicks(500)}, - .frame_functions = {keyframe_no_operation, keyframe_animate_backlight_color}, + .frame_functions = {keyframe_no_operation, backlight_keyframe_animate_color}, }; void initialize_user_visualizer(visualizer_state_t* state) { diff --git a/quantum/visualizer/lcd_backlight_keyframes.c b/quantum/visualizer/lcd_backlight_keyframes.c new file mode 100644 index 00000000000..09647370874 --- /dev/null +++ b/quantum/visualizer/lcd_backlight_keyframes.c @@ -0,0 +1,61 @@ +/* Copyright 2017 Fred Sundvik + * + * 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 "lcd_backlight_keyframes.h" + +bool backlight_keyframe_animate_color(keyframe_animation_t* animation, visualizer_state_t* state) { + int frame_length = animation->frame_lengths[animation->current_frame]; + int current_pos = frame_length - animation->time_left_in_frame; + uint8_t t_h = LCD_HUE(state->target_lcd_color); + uint8_t t_s = LCD_SAT(state->target_lcd_color); + uint8_t t_i = LCD_INT(state->target_lcd_color); + uint8_t p_h = LCD_HUE(state->prev_lcd_color); + uint8_t p_s = LCD_SAT(state->prev_lcd_color); + uint8_t p_i = LCD_INT(state->prev_lcd_color); + + uint8_t d_h1 = t_h - p_h; //Modulo arithmetic since we want to wrap around + int d_h2 = t_h - p_h; + // Chose the shortest way around + int d_h = abs(d_h2) < d_h1 ? d_h2 : d_h1; + int d_s = t_s - p_s; + int d_i = t_i - p_i; + + int hue = (d_h * current_pos) / frame_length; + int sat = (d_s * current_pos) / frame_length; + int intensity = (d_i * current_pos) / frame_length; + //dprintf("%X -> %X = %X\n", p_h, t_h, hue); + hue += p_h; + sat += p_s; + intensity += p_i; + state->current_lcd_color = LCD_COLOR(hue, sat, intensity); + lcd_backlight_color( + LCD_HUE(state->current_lcd_color), + LCD_SAT(state->current_lcd_color), + LCD_INT(state->current_lcd_color)); + + return true; +} + +bool backlight_keyframe_set_color(keyframe_animation_t* animation, visualizer_state_t* state) { + (void)animation; + state->prev_lcd_color = state->target_lcd_color; + state->current_lcd_color = state->target_lcd_color; + lcd_backlight_color( + LCD_HUE(state->current_lcd_color), + LCD_SAT(state->current_lcd_color), + LCD_INT(state->current_lcd_color)); + return false; +} diff --git a/quantum/visualizer/lcd_backlight_keyframes.h b/quantum/visualizer/lcd_backlight_keyframes.h new file mode 100644 index 00000000000..8cd5a46c6ae --- /dev/null +++ b/quantum/visualizer/lcd_backlight_keyframes.h @@ -0,0 +1,27 @@ +/* Copyright 2017 Fred Sundvik + * + * 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 QUANTUM_VISUALIZER_LCD_BACKLIGHT_KEYFRAMES_H_ +#define QUANTUM_VISUALIZER_LCD_BACKLIGHT_KEYFRAMES_H_ + +#include "visualizer.h" + +// Animates the LCD backlight color between the current color and the target color (of the state) +bool backlight_keyframe_animate_color(keyframe_animation_t* animation, visualizer_state_t* state); +// Sets the backlight color to the target color +bool backlight_keyframe_set_color(keyframe_animation_t* animation, visualizer_state_t* state); + +#endif /* QUANTUM_VISUALIZER_LCD_BACKLIGHT_KEYFRAMES_H_ */ diff --git a/quantum/visualizer/visualizer.c b/quantum/visualizer/visualizer.c index 514d7c44e0d..6ebd806e40b 100644 --- a/quantum/visualizer/visualizer.c +++ b/quantum/visualizer/visualizer.c @@ -228,52 +228,6 @@ bool keyframe_no_operation(keyframe_animation_t* animation, visualizer_state_t* return false; } -#ifdef LCD_BACKLIGHT_ENABLE -bool keyframe_animate_backlight_color(keyframe_animation_t* animation, visualizer_state_t* state) { - int frame_length = animation->frame_lengths[animation->current_frame]; - int current_pos = frame_length - animation->time_left_in_frame; - uint8_t t_h = LCD_HUE(state->target_lcd_color); - uint8_t t_s = LCD_SAT(state->target_lcd_color); - uint8_t t_i = LCD_INT(state->target_lcd_color); - uint8_t p_h = LCD_HUE(state->prev_lcd_color); - uint8_t p_s = LCD_SAT(state->prev_lcd_color); - uint8_t p_i = LCD_INT(state->prev_lcd_color); - - uint8_t d_h1 = t_h - p_h; //Modulo arithmetic since we want to wrap around - int d_h2 = t_h - p_h; - // Chose the shortest way around - int d_h = abs(d_h2) < d_h1 ? d_h2 : d_h1; - int d_s = t_s - p_s; - int d_i = t_i - p_i; - - int hue = (d_h * current_pos) / frame_length; - int sat = (d_s * current_pos) / frame_length; - int intensity = (d_i * current_pos) / frame_length; - //dprintf("%X -> %X = %X\n", p_h, t_h, hue); - hue += p_h; - sat += p_s; - intensity += p_i; - state->current_lcd_color = LCD_COLOR(hue, sat, intensity); - lcd_backlight_color( - LCD_HUE(state->current_lcd_color), - LCD_SAT(state->current_lcd_color), - LCD_INT(state->current_lcd_color)); - - return true; -} - -bool keyframe_set_backlight_color(keyframe_animation_t* animation, visualizer_state_t* state) { - (void)animation; - state->prev_lcd_color = state->target_lcd_color; - state->current_lcd_color = state->target_lcd_color; - lcd_backlight_color( - LCD_HUE(state->current_lcd_color), - LCD_SAT(state->current_lcd_color), - LCD_INT(state->current_lcd_color)); - return false; -} -#endif // LCD_BACKLIGHT_ENABLE - bool keyframe_disable_lcd_and_backlight(keyframe_animation_t* animation, visualizer_state_t* state) { (void)animation; (void)state; diff --git a/quantum/visualizer/visualizer.h b/quantum/visualizer/visualizer.h index 440044fd3da..5c870dbfe94 100644 --- a/quantum/visualizer/visualizer.h +++ b/quantum/visualizer/visualizer.h @@ -129,10 +129,6 @@ void run_next_keyframe(keyframe_animation_t* animation, visualizer_state_t* stat // Some predefined keyframe functions that can be used by the user code // Does nothing, useful for adding delays bool keyframe_no_operation(keyframe_animation_t* animation, visualizer_state_t* state); -// Animates the LCD backlight color between the current color and the target color (of the state) -bool keyframe_animate_backlight_color(keyframe_animation_t* animation, visualizer_state_t* state); -// Sets the backlight color to the target color -bool keyframe_set_backlight_color(keyframe_animation_t* animation, visualizer_state_t* state); bool keyframe_disable_lcd_and_backlight(keyframe_animation_t* animation, visualizer_state_t* state); bool keyframe_enable_lcd_and_backlight(keyframe_animation_t* animation, visualizer_state_t* state); diff --git a/quantum/visualizer/visualizer.mk b/quantum/visualizer/visualizer.mk index 325cefd6f8e..c9eb8c5bbd5 100644 --- a/quantum/visualizer/visualizer.mk +++ b/quantum/visualizer/visualizer.mk @@ -35,6 +35,7 @@ endif ifeq ($(strip $(LCD_ENABLE)), yes) SRC += $(VISUALIZER_DIR)/lcd_backlight.c SRC += $(VISUALIZER_DIR)/lcd_keyframes.c +SRC += $(VISUALIZER_DIR)/lcd_backlight_keyframes.c OPT_DEFS += -DLCD_BACKLIGHT_ENABLE endif From 1e7585e76771e1a2d8ca733fc09c19f9fa0e903c Mon Sep 17 00:00:00 2001 From: Fred Sundvik Date: Wed, 5 Apr 2017 09:21:18 +0300 Subject: [PATCH 110/190] Separated backlight and LCD disable/enable Also moved them to correct places --- keyboards/ergodox/infinity/visualizer.c | 14 +++++++------ .../ergodox/keymaps/default/visualizer.c | 14 +++++++------ quantum/visualizer/lcd_backlight_keyframes.c | 16 ++++++++++++++ quantum/visualizer/lcd_backlight_keyframes.h | 3 +++ quantum/visualizer/lcd_keyframes.c | 14 +++++++++++++ quantum/visualizer/lcd_keyframes.h | 4 ++++ quantum/visualizer/visualizer.c | 21 ------------------- quantum/visualizer/visualizer.h | 3 --- 8 files changed, 53 insertions(+), 36 deletions(-) diff --git a/keyboards/ergodox/infinity/visualizer.c b/keyboards/ergodox/infinity/visualizer.c index bbed4e9897f..8e684d99195 100644 --- a/keyboards/ergodox/infinity/visualizer.c +++ b/keyboards/ergodox/infinity/visualizer.c @@ -186,22 +186,24 @@ static keyframe_animation_t lcd_bitmap_leds_animation = { }; static keyframe_animation_t suspend_animation = { - .num_frames = 3, + .num_frames = 4, .loop = false, - .frame_lengths = {0, gfxMillisecondsToTicks(1000), 0}, + .frame_lengths = {0, gfxMillisecondsToTicks(1000), 0, 0}, .frame_functions = { lcd_keyframe_display_layer_text, backlight_keyframe_animate_color, - keyframe_disable_lcd_and_backlight, + lcd_keyframe_disable, + lcd_keyframe_disable, }, }; static keyframe_animation_t resume_animation = { - .num_frames = 4, + .num_frames = 5, .loop = false, - .frame_lengths = {0, 0, gfxMillisecondsToTicks(10000), 0}, + .frame_lengths = {0, 0, 0, gfxMillisecondsToTicks(10000), 0}, .frame_functions = { - keyframe_enable_lcd_and_backlight, + lcd_keyframe_enable, + backlight_keyframe_enable, display_logo, backlight_keyframe_animate_color, enable_visualization, diff --git a/keyboards/ergodox/keymaps/default/visualizer.c b/keyboards/ergodox/keymaps/default/visualizer.c index 07f5a44ab3d..5ee49c9bc2a 100644 --- a/keyboards/ergodox/keymaps/default/visualizer.c +++ b/keyboards/ergodox/keymaps/default/visualizer.c @@ -128,22 +128,24 @@ static keyframe_animation_t lcd_layer_display = { }; static keyframe_animation_t suspend_animation = { - .num_frames = 3, + .num_frames = 4, .loop = false, - .frame_lengths = {0, gfxMillisecondsToTicks(1000), 0}, + .frame_lengths = {0, gfxMillisecondsToTicks(1000), 0, 0}, .frame_functions = { lcd_keyframe_display_layer_text, backlight_keyframe_animate_color, - keyframe_disable_lcd_and_backlight, + lcd_keyframe_disable, + lcd_keyframe_disable, }, }; static keyframe_animation_t resume_animation = { - .num_frames = 4, + .num_frames = 5, .loop = false, - .frame_lengths = {0, 0, gfxMillisecondsToTicks(10000), 0}, + .frame_lengths = {0, 0, 0, gfxMillisecondsToTicks(10000), 0}, .frame_functions = { - keyframe_enable_lcd_and_backlight, + lcd_keyframe_enable, + backlight_keyframe_enable, display_logo, backlight_keyframe_animate_color, enable_visualization, diff --git a/quantum/visualizer/lcd_backlight_keyframes.c b/quantum/visualizer/lcd_backlight_keyframes.c index 09647370874..8436d4e3dda 100644 --- a/quantum/visualizer/lcd_backlight_keyframes.c +++ b/quantum/visualizer/lcd_backlight_keyframes.c @@ -59,3 +59,19 @@ bool backlight_keyframe_set_color(keyframe_animation_t* animation, visualizer_st LCD_INT(state->current_lcd_color)); return false; } + +bool backlight_keyframe_disable(keyframe_animation_t* animation, visualizer_state_t* state) { + (void)animation; + (void)state; + lcd_backlight_hal_color(0, 0, 0); + return false; +} + +bool backlight_keyframe_enable(keyframe_animation_t* animation, visualizer_state_t* state) { + (void)animation; + (void)state; + lcd_backlight_color(LCD_HUE(state->current_lcd_color), + LCD_SAT(state->current_lcd_color), + LCD_INT(state->current_lcd_color)); + return false; +} diff --git a/quantum/visualizer/lcd_backlight_keyframes.h b/quantum/visualizer/lcd_backlight_keyframes.h index 8cd5a46c6ae..e1c125cf915 100644 --- a/quantum/visualizer/lcd_backlight_keyframes.h +++ b/quantum/visualizer/lcd_backlight_keyframes.h @@ -24,4 +24,7 @@ bool backlight_keyframe_animate_color(keyframe_animation_t* animation, visualize // Sets the backlight color to the target color bool backlight_keyframe_set_color(keyframe_animation_t* animation, visualizer_state_t* state); +bool backlight_keyframe_disable(keyframe_animation_t* animation, visualizer_state_t* state); +bool backlight_keyframe_enable(keyframe_animation_t* animation, visualizer_state_t* state); + #endif /* QUANTUM_VISUALIZER_LCD_BACKLIGHT_KEYFRAMES_H_ */ diff --git a/quantum/visualizer/lcd_keyframes.c b/quantum/visualizer/lcd_keyframes.c index 00d9734e6ae..74f6e3b4703 100644 --- a/quantum/visualizer/lcd_keyframes.c +++ b/quantum/visualizer/lcd_keyframes.c @@ -158,3 +158,17 @@ bool lcd_keyframe_display_layer_and_led_states(keyframe_animation_t* animation, gdispFlush(); return false; } + +bool lcd_keyframe_disable(keyframe_animation_t* animation, visualizer_state_t* state) { + (void)animation; + (void)state; + gdispSetPowerMode(powerOff); + return false; +} + +bool lcd_keyframe_enable(keyframe_animation_t* animation, visualizer_state_t* state) { + (void)animation; + (void)state; + gdispSetPowerMode(powerOn); + return false; +} diff --git a/quantum/visualizer/lcd_keyframes.h b/quantum/visualizer/lcd_keyframes.h index 0c9f39ab8c5..8f79a541c88 100644 --- a/quantum/visualizer/lcd_keyframes.h +++ b/quantum/visualizer/lcd_keyframes.h @@ -30,4 +30,8 @@ bool lcd_keyframe_display_led_states(keyframe_animation_t* animation, visualizer // Displays both the layer text and the led states bool lcd_keyframe_display_layer_and_led_states(keyframe_animation_t* animation, visualizer_state_t* state); +bool lcd_keyframe_disable(keyframe_animation_t* animation, visualizer_state_t* state); +bool lcd_keyframe_enable(keyframe_animation_t* animation, visualizer_state_t* state); + + #endif /* QUANTUM_VISUALIZER_LCD_KEYFRAMES_H_ */ diff --git a/quantum/visualizer/visualizer.c b/quantum/visualizer/visualizer.c index 6ebd806e40b..98cd7ba5541 100644 --- a/quantum/visualizer/visualizer.c +++ b/quantum/visualizer/visualizer.c @@ -228,27 +228,6 @@ bool keyframe_no_operation(keyframe_animation_t* animation, visualizer_state_t* return false; } -bool keyframe_disable_lcd_and_backlight(keyframe_animation_t* animation, visualizer_state_t* state) { - (void)animation; - (void)state; -#ifdef LCD_ENABLE - gdispSetPowerMode(powerOff); -#endif -#ifdef LCD_BACKLIGHT_ENABLE - lcd_backlight_hal_color(0, 0, 0); -#endif - return false; -} - -bool keyframe_enable_lcd_and_backlight(keyframe_animation_t* animation, visualizer_state_t* state) { - (void)animation; - (void)state; -#ifdef LCD_ENABLE - gdispSetPowerMode(powerOn); -#endif - return false; -} - bool enable_visualization(keyframe_animation_t* animation, visualizer_state_t* state) { (void)animation; (void)state; diff --git a/quantum/visualizer/visualizer.h b/quantum/visualizer/visualizer.h index 5c870dbfe94..f37ce8416e3 100644 --- a/quantum/visualizer/visualizer.h +++ b/quantum/visualizer/visualizer.h @@ -130,9 +130,6 @@ void run_next_keyframe(keyframe_animation_t* animation, visualizer_state_t* stat // Does nothing, useful for adding delays bool keyframe_no_operation(keyframe_animation_t* animation, visualizer_state_t* state); -bool keyframe_disable_lcd_and_backlight(keyframe_animation_t* animation, visualizer_state_t* state); -bool keyframe_enable_lcd_and_backlight(keyframe_animation_t* animation, visualizer_state_t* state); - // Call this once, when the initial animation has finished, alternatively you can call it // directly from the initalize_user_visualizer function (the animation can be null) bool enable_visualization(keyframe_animation_t* animation, visualizer_state_t* state); From 64d63ab42281318d891434fbc00277043298dd70 Mon Sep 17 00:00:00 2001 From: Fred Sundvik Date: Wed, 5 Apr 2017 10:08:25 +0300 Subject: [PATCH 111/190] Remove the need to manually enable the visualizer --- keyboards/ergodox/infinity/visualizer.c | 6 ++-- .../ergodox/keymaps/default/visualizer.c | 6 ++-- quantum/visualizer/visualizer.c | 28 ++++++++++--------- quantum/visualizer/visualizer.h | 14 ++++++---- 4 files changed, 27 insertions(+), 27 deletions(-) diff --git a/keyboards/ergodox/infinity/visualizer.c b/keyboards/ergodox/infinity/visualizer.c index 8e684d99195..0897ea348bb 100644 --- a/keyboards/ergodox/infinity/visualizer.c +++ b/keyboards/ergodox/infinity/visualizer.c @@ -136,13 +136,12 @@ bool display_logo(keyframe_animation_t* animation, visualizer_state_t* state) { // Don't worry, if the startup animation is long, you can use the keyboard like normal // during that time static keyframe_animation_t startup_animation = { - .num_frames = 3, + .num_frames = 2, .loop = false, .frame_lengths = {0, gfxMillisecondsToTicks(10000), 0}, .frame_functions = { display_logo, backlight_keyframe_animate_color, - enable_visualization }, }; @@ -198,7 +197,7 @@ static keyframe_animation_t suspend_animation = { }; static keyframe_animation_t resume_animation = { - .num_frames = 5, + .num_frames = 4, .loop = false, .frame_lengths = {0, 0, 0, gfxMillisecondsToTicks(10000), 0}, .frame_functions = { @@ -206,7 +205,6 @@ static keyframe_animation_t resume_animation = { backlight_keyframe_enable, display_logo, backlight_keyframe_animate_color, - enable_visualization, }, }; diff --git a/keyboards/ergodox/keymaps/default/visualizer.c b/keyboards/ergodox/keymaps/default/visualizer.c index 5ee49c9bc2a..73d864c646e 100644 --- a/keyboards/ergodox/keymaps/default/visualizer.c +++ b/keyboards/ergodox/keymaps/default/visualizer.c @@ -110,13 +110,12 @@ bool display_logo(keyframe_animation_t* animation, visualizer_state_t* state) { // Don't worry, if the startup animation is long, you can use the keyboard like normal // during that time static keyframe_animation_t startup_animation = { - .num_frames = 3, + .num_frames = 2, .loop = false, .frame_lengths = {0, gfxMillisecondsToTicks(10000), 0}, .frame_functions = { display_logo, backlight_keyframe_animate_color, - enable_visualization }, }; @@ -140,7 +139,7 @@ static keyframe_animation_t suspend_animation = { }; static keyframe_animation_t resume_animation = { - .num_frames = 5, + .num_frames = 4, .loop = false, .frame_lengths = {0, 0, 0, gfxMillisecondsToTicks(10000), 0}, .frame_functions = { @@ -148,7 +147,6 @@ static keyframe_animation_t resume_animation = { backlight_keyframe_enable, display_logo, backlight_keyframe_animate_color, - enable_visualization, }, }; diff --git a/quantum/visualizer/visualizer.c b/quantum/visualizer/visualizer.c index 98cd7ba5541..5fbd12031e0 100644 --- a/quantum/visualizer/visualizer.c +++ b/quantum/visualizer/visualizer.c @@ -154,6 +154,14 @@ void stop_all_keyframe_animations(void) { } } +static uint8_t get_num_running_animations(void) { + uint8_t count = 0; + for (int i=0;icurrent_frame, @@ -228,14 +236,6 @@ bool keyframe_no_operation(keyframe_animation_t* animation, visualizer_state_t* return false; } -bool enable_visualization(keyframe_animation_t* animation, visualizer_state_t* state) { - (void)animation; - (void)state; - dprint("User visualizer inited\n"); - visualizer_enabled = true; - return false; -} - // TODO: Optimize the stack size, this is probably way too big static DECLARE_THREAD_STACK(visualizerThreadStack, 1024); static DECLARE_THREAD_FUNCTION(visualizerThread, arg) { @@ -276,13 +276,15 @@ static DECLARE_THREAD_FUNCTION(visualizerThread, arg) { systemticks_t sleep_time = TIME_INFINITE; systemticks_t current_time = gfxSystemTicks(); + bool force_update = true; while(true) { systemticks_t new_time = gfxSystemTicks(); systemticks_t delta = new_time - current_time; current_time = new_time; bool enabled = visualizer_enabled; - if (!same_status(&state.status, ¤t_status)) { + if (force_update || !same_status(&state.status, ¤t_status)) { + force_update = false; if (visualizer_enabled) { if (current_status.suspended) { stop_all_keyframe_animations(); @@ -320,10 +322,10 @@ static DECLARE_THREAD_FUNCTION(visualizerThread, arg) { #ifdef EMULATOR draw_emulator(); #endif - // The animation can enable the visualizer - // And we might need to update the state when that happens - // so don't sleep - if (enabled != visualizer_enabled) { + // Enable the visualizer when the startup or the suspend animation has finished + if (!visualizer_enabled && state.status.suspended == false && get_num_running_animations() == 0) { + visualizer_enabled = true; + force_update = true; sleep_time = 0; } diff --git a/quantum/visualizer/visualizer.h b/quantum/visualizer/visualizer.h index f37ce8416e3..46393484928 100644 --- a/quantum/visualizer/visualizer.h +++ b/quantum/visualizer/visualizer.h @@ -130,20 +130,22 @@ void run_next_keyframe(keyframe_animation_t* animation, visualizer_state_t* stat // Does nothing, useful for adding delays bool keyframe_no_operation(keyframe_animation_t* animation, visualizer_state_t* state); -// Call this once, when the initial animation has finished, alternatively you can call it -// directly from the initalize_user_visualizer function (the animation can be null) -bool enable_visualization(keyframe_animation_t* animation, visualizer_state_t* state); - // The master can set userdata which will be transferred to the slave #ifdef VISUALIZER_USER_DATA_SIZE void visualizer_set_user_data(void* user_data); #endif // These functions have to be implemented by the user -void initialize_user_visualizer(visualizer_state_t* state); +// Called regularly each time the state has changed (but not every scan loop) void update_user_visualizer_state(visualizer_state_t* state, visualizer_keyboard_status_t* prev_status); +// Called when the computer goes to suspend, will also stop calling update_user_visualizer_state void user_visualizer_suspend(visualizer_state_t* state); +// You have to start at least one animation as a response to the following two functions +// When the animation has finished the visualizer will resume normal operation and start calling the +// update_user_visualizer_state again +// Called when the keyboard boots up +void initialize_user_visualizer(visualizer_state_t* state); +// Called when the computer resumes from a suspend void user_visualizer_resume(visualizer_state_t* state); - #endif /* VISUALIZER_H */ From b7041d06aef4dcf2f2a47504a699e538cfb1d9ac Mon Sep 17 00:00:00 2001 From: Fred Sundvik Date: Wed, 5 Apr 2017 10:14:24 +0300 Subject: [PATCH 112/190] Move common visualizer keyframes into visualizer_keyframes.h --- keyboards/ergodox/infinity/visualizer.c | 1 + .../ergodox/keymaps/default/visualizer.c | 1 + quantum/visualizer/visualizer.c | 6 ----- quantum/visualizer/visualizer.h | 6 +---- quantum/visualizer/visualizer.mk | 3 ++- quantum/visualizer/visualizer_keyframes.c | 23 ++++++++++++++++ quantum/visualizer/visualizer_keyframes.h | 26 +++++++++++++++++++ 7 files changed, 54 insertions(+), 12 deletions(-) create mode 100644 quantum/visualizer/visualizer_keyframes.c create mode 100644 quantum/visualizer/visualizer_keyframes.h diff --git a/keyboards/ergodox/infinity/visualizer.c b/keyboards/ergodox/infinity/visualizer.c index 0897ea348bb..2e10fdd7090 100644 --- a/keyboards/ergodox/infinity/visualizer.c +++ b/keyboards/ergodox/infinity/visualizer.c @@ -27,6 +27,7 @@ along with this program. If not, see . #endif #include "visualizer.h" +#include "visualizer_keyframes.h" #include "lcd_keyframes.h" #include "lcd_backlight_keyframes.h" #include "system/serial_link.h" diff --git a/keyboards/ergodox/keymaps/default/visualizer.c b/keyboards/ergodox/keymaps/default/visualizer.c index 73d864c646e..f6159e1ef15 100644 --- a/keyboards/ergodox/keymaps/default/visualizer.c +++ b/keyboards/ergodox/keymaps/default/visualizer.c @@ -27,6 +27,7 @@ along with this program. If not, see . #endif #include "visualizer.h" +#include "visualizer_keyframes.h" #include "lcd_keyframes.h" #include "lcd_backlight_keyframes.h" #include "system/serial_link.h" diff --git a/quantum/visualizer/visualizer.c b/quantum/visualizer/visualizer.c index 5fbd12031e0..2479a64c7f6 100644 --- a/quantum/visualizer/visualizer.c +++ b/quantum/visualizer/visualizer.c @@ -230,12 +230,6 @@ void run_next_keyframe(keyframe_animation_t* animation, visualizer_state_t* stat (*temp_animation.frame_functions[next_frame])(&temp_animation, &temp_state); } -bool keyframe_no_operation(keyframe_animation_t* animation, visualizer_state_t* state) { - (void)animation; - (void)state; - return false; -} - // TODO: Optimize the stack size, this is probably way too big static DECLARE_THREAD_STACK(visualizerThreadStack, 1024); static DECLARE_THREAD_FUNCTION(visualizerThread, arg) { diff --git a/quantum/visualizer/visualizer.h b/quantum/visualizer/visualizer.h index 46393484928..d6f279e1015 100644 --- a/quantum/visualizer/visualizer.h +++ b/quantum/visualizer/visualizer.h @@ -34,7 +34,7 @@ SOFTWARE. #include "lcd_backlight.h" #endif -// use this function to merget both real_mods and oneshot_mods in a uint16_t +// use this function to merge both real_mods and oneshot_mods in a uint16_t uint8_t visualizer_get_mods(void); // This need to be called once at the start @@ -126,10 +126,6 @@ void stop_keyframe_animation(keyframe_animation_t* animation); // Useful for crossfades for example void run_next_keyframe(keyframe_animation_t* animation, visualizer_state_t* state); -// Some predefined keyframe functions that can be used by the user code -// Does nothing, useful for adding delays -bool keyframe_no_operation(keyframe_animation_t* animation, visualizer_state_t* state); - // The master can set userdata which will be transferred to the slave #ifdef VISUALIZER_USER_DATA_SIZE void visualizer_set_user_data(void* user_data); diff --git a/quantum/visualizer/visualizer.mk b/quantum/visualizer/visualizer.mk index c9eb8c5bbd5..799379e3d61 100644 --- a/quantum/visualizer/visualizer.mk +++ b/quantum/visualizer/visualizer.mk @@ -20,7 +20,8 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE # SOFTWARE. -SRC += $(VISUALIZER_DIR)/visualizer.c +SRC += $(VISUALIZER_DIR)/visualizer.c \ + $(VISUALIZER_DIR)/visualizer_keyframes.c EXTRAINCDIRS += $(GFXINC) $(VISUALIZER_DIR) GFXLIB = $(LIB_PATH)/ugfx VPATH += $(VISUALIZER_PATH) diff --git a/quantum/visualizer/visualizer_keyframes.c b/quantum/visualizer/visualizer_keyframes.c new file mode 100644 index 00000000000..8f6a7e15a45 --- /dev/null +++ b/quantum/visualizer/visualizer_keyframes.c @@ -0,0 +1,23 @@ +/* Copyright 2017 Fred Sundvik + * + * 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 "visualizer_keyframes.h" + +bool keyframe_no_operation(keyframe_animation_t* animation, visualizer_state_t* state) { + (void)animation; + (void)state; + return false; +} diff --git a/quantum/visualizer/visualizer_keyframes.h b/quantum/visualizer/visualizer_keyframes.h new file mode 100644 index 00000000000..9ef7653c5e4 --- /dev/null +++ b/quantum/visualizer/visualizer_keyframes.h @@ -0,0 +1,26 @@ +/* Copyright 2017 Fred Sundvik + * + * 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 QUANTUM_VISUALIZER_VISUALIZER_KEYFRAMES_H_ +#define QUANTUM_VISUALIZER_VISUALIZER_KEYFRAMES_H_ + +#include "visualizer.h" + +// Some predefined keyframe functions that can be used by the user code +// Does nothing, useful for adding delays +bool keyframe_no_operation(keyframe_animation_t* animation, visualizer_state_t* state); + +#endif /* QUANTUM_VISUALIZER_VISUALIZER_KEYFRAMES_H_ */ From 3994fb1e79615af849aa03378293831f59c9b259 Mon Sep 17 00:00:00 2001 From: Fred Sundvik Date: Fri, 7 Apr 2017 10:51:53 +0300 Subject: [PATCH 113/190] Yet another try to fix the LCD corruption It turns out that the ChibiOS K20 SPI driver doesn't handle the chip select, so it needs to be done manually. Acquiring the bus is not enough since the pin was in the wrong mode. This is now fixed. Also increase the frequency of the SPI from around 200kHz to nearly 20 Mhz. --- .../gdisp/st7565ergodox/board_ST7565.h | 44 +++++++++---------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/keyboards/ergodox/infinity/drivers/gdisp/st7565ergodox/board_ST7565.h b/keyboards/ergodox/infinity/drivers/gdisp/st7565ergodox/board_ST7565.h index c2092b5e8d3..e8c17e6e336 100644 --- a/keyboards/ergodox/infinity/drivers/gdisp/st7565ergodox/board_ST7565.h +++ b/keyboards/ergodox/infinity/drivers/gdisp/st7565ergodox/board_ST7565.h @@ -45,15 +45,28 @@ static const SPIConfig spi1config = { .sspad=ST7565_SS_PIN, // SPI initialization data. .tar0 = - SPIx_CTARn_FMSZ(7) - | SPIx_CTARn_ASC(7) - | SPIx_CTARn_DT(7) - | SPIx_CTARn_CSSCK(7) - | SPIx_CTARn_PBR(0) - | SPIx_CTARn_BR(7) - //SPI_CR1_BR_0 + SPIx_CTARn_FMSZ(7) // Frame size = 8 bytes + | SPIx_CTARn_ASC(1) // After SCK Delay Scaler (min 50 ns) = 55.56ns + | SPIx_CTARn_DT(0) // Delay After Transfer Scaler (no minimum)= 27.78ns + | SPIx_CTARn_CSSCK(0) // PCS to SCK Delay Scaler (min 20 ns) = 27.78ns + | SPIx_CTARn_PBR(0) // Baud Rate Prescaler = 2 + | SPIx_CTARn_BR(0) // Baud rate (min 50ns) = 55.56ns }; +static GFXINLINE void acquire_bus(GDisplay *g) { + (void) g; + // Only the LCD is using the SPI bus, so no need to acquire + // spiAcquireBus(&SPID1); + spiSelect(&SPID1); +} + +static GFXINLINE void release_bus(GDisplay *g) { + (void) g; + // Only the LCD is using the SPI bus, so no need to release + //spiReleaseBus(&SPID1); + spiUnselect(&SPID1); +} + static GFXINLINE void init_board(GDisplay *g) { (void) g; palSetPadModeNamed(A0, PAL_MODE_OUTPUT_PUSHPULL); @@ -62,10 +75,11 @@ static GFXINLINE void init_board(GDisplay *g) { palSetPad(ST7565_GPIOPORT, ST7565_RST_PIN); palSetPadModeRaw(MOSI, ST7565_SPI_MODE); palSetPadModeRaw(SLCK, ST7565_SPI_MODE); - palSetPadModeRaw(SS, ST7565_SPI_MODE); + palSetPadModeRaw(SS, PAL_MODE_OUTPUT_PUSHPULL); spiInit(); spiStart(&SPID1, &spi1config); + release_bus(g); } static GFXINLINE void post_init_board(GDisplay *g) { @@ -82,20 +96,6 @@ static GFXINLINE void setpin_reset(GDisplay *g, bool_t state) { } } -static GFXINLINE void acquire_bus(GDisplay *g) { - (void) g; - // Only the LCD is using the SPI bus, so no need to acquire - // spiAcquireBus(&SPID1); - spiSelect(&SPID1); -} - -static GFXINLINE void release_bus(GDisplay *g) { - (void) g; - // Only the LCD is using the SPI bus, so no need to release - //spiReleaseBus(&SPID1); - spiUnselect(&SPID1); -} - static GFXINLINE void enter_data_mode(GDisplay *g) { palSetPad(ST7565_GPIOPORT, ST7565_A0_PIN); } From 995002fa912545128625ec2d8c53cff5de560b97 Mon Sep 17 00:00:00 2001 From: Fred Sundvik Date: Fri, 7 Apr 2017 10:55:29 +0300 Subject: [PATCH 114/190] LCD initialization sequence according to the docs The LCD initialization show now be much better and faster with no flickering at the startup. Also fix the contrast control. --- .../gdisp/st7565ergodox/gdisp_lld_ST7565.c | 40 +++++-------------- .../drivers/gdisp/st7565ergodox/st7565.h | 2 + 2 files changed, 13 insertions(+), 29 deletions(-) diff --git a/keyboards/ergodox/infinity/drivers/gdisp/st7565ergodox/gdisp_lld_ST7565.c b/keyboards/ergodox/infinity/drivers/gdisp/st7565ergodox/gdisp_lld_ST7565.c index 2c8a168e76b..0de457a7aec 100644 --- a/keyboards/ergodox/infinity/drivers/gdisp/st7565ergodox/gdisp_lld_ST7565.c +++ b/keyboards/ergodox/infinity/drivers/gdisp/st7565ergodox/gdisp_lld_ST7565.c @@ -26,7 +26,7 @@ #define GDISP_SCREEN_WIDTH 128 #endif #ifndef GDISP_INITIAL_CONTRAST -#define GDISP_INITIAL_CONTRAST 0 +#define GDISP_INITIAL_CONTRAST 35 #endif #ifndef GDISP_INITIAL_BACKLIGHT #define GDISP_INITIAL_BACKLIGHT 100 @@ -111,41 +111,25 @@ LLDSPEC bool_t gdisp_lld_init(GDisplay *g) { gfxSleepMilliseconds(20); setpin_reset(g, FALSE); gfxSleepMilliseconds(20); - acquire_bus(g); enter_cmd_mode(g); - write_cmd(g, ST7565_DISPLAY_OFF); + + write_cmd(g, ST7565_RESET); write_cmd(g, ST7565_LCD_BIAS); write_cmd(g, ST7565_ADC); write_cmd(g, ST7565_COM_SCAN); - write_cmd(g, ST7565_START_LINE | 0); + write_cmd(g, ST7565_RESISTOR_RATIO | 0x1); + write_cmd2(g, ST7565_CONTRAST, GDISP_INITIAL_CONTRAST); - write_cmd(g, ST7565_RESISTOR_RATIO | 0x6); - - // turn on voltage converter (VC=1, VR=0, VF=0) - write_cmd(g, ST7565_POWER_CONTROL | 0x04); - flush_cmd(g); - delay_ms(50); - - // turn on voltage regulator (VC=1, VR=1, VF=0) - write_cmd(g, ST7565_POWER_CONTROL | 0x06); - flush_cmd(g); - delay_ms(50); - - // turn on voltage follower (VC=1, VR=1, VF=1) + // turn on internal power supply (VC=1, VR=1, VF=1) write_cmd(g, ST7565_POWER_CONTROL | 0x07); - flush_cmd(g); - delay_ms(50); - write_cmd(g, 0xE2); - write_cmd(g, ST7565_COM_SCAN); - write_cmd2(g, ST7565_CONTRAST, GDISP_INITIAL_CONTRAST*64/101); - //write_cmd2(g, ST7565_CONTRAST, 0); - write_cmd(g, ST7565_DISPLAY_ON); - write_cmd(g, ST7565_ALLON_NORMAL); write_cmd(g, ST7565_INVERT_DISPLAY); + write_cmd(g, ST7565_ALLON_NORMAL); + write_cmd(g, ST7565_DISPLAY_ON); + write_cmd(g, ST7565_START_LINE | 0); write_cmd(g, ST7565_RMW); flush_cmd(g); @@ -331,14 +315,12 @@ LLDSPEC void gdisp_lld_control(GDisplay *g) { return; case GDISP_CONTROL_CONTRAST: - if ((unsigned)g->p.ptr > 100) - g->p.ptr = (void *)100; + g->g.Contrast = (unsigned)g->p.ptr & 63; acquire_bus(g); enter_cmd_mode(g); - write_cmd2(g, ST7565_CONTRAST, ((((unsigned)g->p.ptr)<<6)/101) & 0x3F); + write_cmd2(g, ST7565_CONTRAST, g->g.Contrast); flush_cmd(g); release_bus(g); - g->g.Contrast = (unsigned)g->p.ptr; return; } } diff --git a/keyboards/ergodox/infinity/drivers/gdisp/st7565ergodox/st7565.h b/keyboards/ergodox/infinity/drivers/gdisp/st7565ergodox/st7565.h index 48636b33d63..24924ff0504 100644 --- a/keyboards/ergodox/infinity/drivers/gdisp/st7565ergodox/st7565.h +++ b/keyboards/ergodox/infinity/drivers/gdisp/st7565ergodox/st7565.h @@ -34,4 +34,6 @@ #define ST7565_RESISTOR_RATIO 0x20 #define ST7565_POWER_CONTROL 0x28 +#define ST7565_RESET 0xE2 + #endif /* _ST7565_H */ From 3eb8785e8770c07e6a4280c50240d5d951461911 Mon Sep 17 00:00:00 2001 From: Fred Sundvik Date: Sat, 8 Apr 2017 20:10:20 +0300 Subject: [PATCH 115/190] Add automatic flush for the LCD screen --- .../infinity/drivers/gdisp/st7565ergodox/gdisp_lld_ST7565.c | 1 + keyboards/ergodox/infinity/visualizer.c | 2 -- keyboards/ergodox/keymaps/default/visualizer.c | 2 -- quantum/visualizer/lcd_keyframes.c | 5 ----- quantum/visualizer/visualizer.c | 4 ++++ 5 files changed, 5 insertions(+), 9 deletions(-) diff --git a/keyboards/ergodox/infinity/drivers/gdisp/st7565ergodox/gdisp_lld_ST7565.c b/keyboards/ergodox/infinity/drivers/gdisp/st7565ergodox/gdisp_lld_ST7565.c index 0de457a7aec..5b7b6d44c43 100644 --- a/keyboards/ergodox/infinity/drivers/gdisp/st7565ergodox/gdisp_lld_ST7565.c +++ b/keyboards/ergodox/infinity/drivers/gdisp/st7565ergodox/gdisp_lld_ST7565.c @@ -262,6 +262,7 @@ LLDSPEC void gdisp_lld_blit_area(GDisplay *g) { srcbit++; } } + g->flags |= GDISP_FLG_NEEDFLUSH; } #if GDISP_NEED_CONTROL && GDISP_HARDWARE_CONTROL diff --git a/keyboards/ergodox/infinity/visualizer.c b/keyboards/ergodox/infinity/visualizer.c index 2e10fdd7090..6f9b0210a7c 100644 --- a/keyboards/ergodox/infinity/visualizer.c +++ b/keyboards/ergodox/infinity/visualizer.c @@ -127,8 +127,6 @@ bool display_logo(keyframe_animation_t* animation, visualizer_state_t* state) { // if you have full screen image, then just use 128 and 32 for both source and target dimensions gdispGBlitArea(GDISP, 0, 0, 128, 32, 0, 0, 128, (pixel_t*)image_data_lcd_logo); - // Always remember to flush the display - gdispFlush(); return false; } diff --git a/keyboards/ergodox/keymaps/default/visualizer.c b/keyboards/ergodox/keymaps/default/visualizer.c index f6159e1ef15..1b0f12f2506 100644 --- a/keyboards/ergodox/keymaps/default/visualizer.c +++ b/keyboards/ergodox/keymaps/default/visualizer.c @@ -101,8 +101,6 @@ bool display_logo(keyframe_animation_t* animation, visualizer_state_t* state) { // if you have full screen image, then just use 128 and 32 for both source and target dimensions gdispGBlitArea(GDISP, 0, 0, 128, 32, 0, 0, 128, (pixel_t*)image_data_lcd_logo); - // Always remember to flush the display - gdispFlush(); return false; } diff --git a/quantum/visualizer/lcd_keyframes.c b/quantum/visualizer/lcd_keyframes.c index 74f6e3b4703..c6e04d0ca43 100644 --- a/quantum/visualizer/lcd_keyframes.c +++ b/quantum/visualizer/lcd_keyframes.c @@ -23,7 +23,6 @@ bool lcd_keyframe_display_layer_text(keyframe_animation_t* animation, visualizer (void)animation; gdispClear(White); gdispDrawString(0, 10, state->layer_text, state->font_dejavusansbold12, Black); - gdispFlush(); return false; } @@ -62,7 +61,6 @@ bool lcd_keyframe_display_layer_bitmap(keyframe_animation_t* animation, visualiz gdispDrawString(0, 10, layer_buffer, state->font_fixed5x8, Black); format_layer_bitmap_string(state->status.default_layer >> 16, state->status.layer >> 16, layer_buffer); gdispDrawString(0, 20, layer_buffer, state->font_fixed5x8, Black); - gdispFlush(); return false; } @@ -101,7 +99,6 @@ bool lcd_keyframe_display_mods_bitmap(keyframe_animation_t* animation, visualize format_mods_bitmap_string(state->status.mods, status_buffer); gdispDrawString(0, 20, status_buffer, state->font_fixed5x8, Black); - gdispFlush(); return false; } @@ -140,7 +137,6 @@ bool lcd_keyframe_display_led_states(keyframe_animation_t* animation, visualizer get_led_state_string(output, state); gdispClear(White); gdispDrawString(0, 10, output, state->font_dejavusansbold12, Black); - gdispFlush(); return false; } @@ -155,7 +151,6 @@ bool lcd_keyframe_display_layer_and_led_states(keyframe_animation_t* animation, y = 17; } gdispDrawString(0, y, state->layer_text, state->font_dejavusansbold12, Black); - gdispFlush(); return false; } diff --git a/quantum/visualizer/visualizer.c b/quantum/visualizer/visualizer.c index 2479a64c7f6..6f134097f07 100644 --- a/quantum/visualizer/visualizer.c +++ b/quantum/visualizer/visualizer.c @@ -313,6 +313,10 @@ static DECLARE_THREAD_FUNCTION(visualizerThread, arg) { gdispGFlush(LED_DISPLAY); #endif +#ifdef LCD_ENABLE + gdispGFlush(LCD_DISPLAY); +#endif + #ifdef EMULATOR draw_emulator(); #endif From df67169d4260881443d88b142855d4aa2def6dc3 Mon Sep 17 00:00:00 2001 From: Fred Sundvik Date: Sat, 8 Apr 2017 21:19:44 +0300 Subject: [PATCH 116/190] Move LCD logo to visualizer resources --- keyboards/ergodox/infinity/visualizer.c | 44 +------------ .../ergodox/keymaps/default/visualizer.c | 44 +------------ quantum/visualizer/resources/lcd_logo.c | 61 ++++++++++++++++++ .../visualizer/resources}/lcd_logo.png | Bin quantum/visualizer/resources/resources.h | 27 ++++++++ quantum/visualizer/visualizer.mk | 2 + 6 files changed, 94 insertions(+), 84 deletions(-) create mode 100644 quantum/visualizer/resources/lcd_logo.c rename {keyboards/ergodox/infinity => quantum/visualizer/resources}/lcd_logo.png (100%) create mode 100644 quantum/visualizer/resources/resources.h diff --git a/keyboards/ergodox/infinity/visualizer.c b/keyboards/ergodox/infinity/visualizer.c index 6f9b0210a7c..90933b00a4a 100644 --- a/keyboards/ergodox/infinity/visualizer.c +++ b/keyboards/ergodox/infinity/visualizer.c @@ -32,47 +32,7 @@ along with this program. If not, see . #include "lcd_backlight_keyframes.h" #include "system/serial_link.h" -// To generate an image array like this -// Ensure the image is 128 x 32 or smaller -// Convert the bitmap to a C array using a program like http://www.riuson.com/lcd-image-converter/ -// Ensure the the conversion process produces a monochrome format array - 1 bit/pixel, left to right, top to bottom -// Update array in the source code with the C array produced by the conversion program - -// The image below is generated from lcd_logo.png -static const uint8_t image_data_lcd_logo[512] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xf8, 0xfe, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x38, 0x38, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x38, 0x38, 0x38, 0x06, 0x29, 0x41, 0x24, 0x52, 0x24, 0x46, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x38, 0x38, 0x38, 0x09, 0x55, 0x42, 0xaa, 0xaa, 0xaa, 0xa8, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x38, 0x38, 0x38, 0x09, 0x55, 0x82, 0x28, 0xaa, 0xae, 0x8c, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x38, 0x38, 0x38, 0x09, 0x55, 0x43, 0x28, 0xaa, 0xaa, 0x88, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x38, 0x38, 0x38, 0x0a, 0x55, 0x42, 0x28, 0xaa, 0xaa, 0x88, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x38, 0x38, 0x38, 0x05, 0x45, 0x42, 0x28, 0x89, 0x4a, 0x86, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x18, 0x38, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x1c, 0x38, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x0e, 0x38, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x03, 0xff, 0x80, 0x04, 0x45, 0x14, 0xa4, 0x92, 0x83, 0x52, 0x22, 0x22, 0x36, 0x00, 0x00, - 0x00, 0x00, 0x38, 0x00, 0x0a, 0xaa, 0xaa, 0xaa, 0xba, 0x84, 0x55, 0x55, 0x57, 0x45, 0x00, 0x00, - 0x00, 0x00, 0x38, 0x00, 0x08, 0xaa, 0xaa, 0xaa, 0x92, 0xb2, 0x55, 0x55, 0x42, 0x65, 0x00, 0x00, - 0x00, 0x00, 0x38, 0x00, 0x08, 0xaa, 0xaa, 0xaa, 0x92, 0x81, 0x56, 0x65, 0x42, 0x45, 0x00, 0x00, - 0x00, 0x00, 0x38, 0x00, 0x0a, 0xaa, 0xaa, 0xaa, 0x92, 0x81, 0x54, 0x45, 0x42, 0x45, 0x00, 0x00, - 0x00, 0x00, 0x38, 0x00, 0x04, 0x48, 0xa2, 0x4a, 0x89, 0x06, 0x24, 0x42, 0x41, 0x36, 0x00, 0x00, - 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 -}; +#include "resources/resources.h" static const uint32_t logo_background_color = LCD_COLOR(0x00, 0x00, 0xFF); static const uint32_t initial_color = LCD_COLOR(0, 0, 0); @@ -125,7 +85,7 @@ bool display_logo(keyframe_animation_t* animation, visualizer_state_t* state) { //gdispGBlitArea is a tricky function to use since it supports blitting part of the image // if you have full screen image, then just use 128 and 32 for both source and target dimensions - gdispGBlitArea(GDISP, 0, 0, 128, 32, 0, 0, 128, (pixel_t*)image_data_lcd_logo); + gdispGBlitArea(GDISP, 0, 0, 128, 32, 0, 0, 128, (pixel_t*)resource_lcd_logo); return false; } diff --git a/keyboards/ergodox/keymaps/default/visualizer.c b/keyboards/ergodox/keymaps/default/visualizer.c index 1b0f12f2506..f03702f6020 100644 --- a/keyboards/ergodox/keymaps/default/visualizer.c +++ b/keyboards/ergodox/keymaps/default/visualizer.c @@ -33,47 +33,7 @@ along with this program. If not, see . #include "system/serial_link.h" #include "led.h" -// To generate an image array like this -// Ensure the image is 128 x 32 or smaller -// Convert the bitmap to a C array using a program like http://www.riuson.com/lcd-image-converter/ -// Ensure the the conversion process produces a monochrome format array - 1 bit/pixel, left to right, top to bottom -// Update array in the source code with the C array produced by the conversion program - -// The image below is generated from lcd_logo.png -static const uint8_t image_data_lcd_logo[512] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xf8, 0xfe, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x38, 0x38, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x38, 0x38, 0x38, 0x06, 0x29, 0x41, 0x24, 0x52, 0x24, 0x46, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x38, 0x38, 0x38, 0x09, 0x55, 0x42, 0xaa, 0xaa, 0xaa, 0xa8, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x38, 0x38, 0x38, 0x09, 0x55, 0x82, 0x28, 0xaa, 0xae, 0x8c, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x38, 0x38, 0x38, 0x09, 0x55, 0x43, 0x28, 0xaa, 0xaa, 0x88, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x38, 0x38, 0x38, 0x0a, 0x55, 0x42, 0x28, 0xaa, 0xaa, 0x88, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x38, 0x38, 0x38, 0x05, 0x45, 0x42, 0x28, 0x89, 0x4a, 0x86, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x18, 0x38, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x1c, 0x38, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x0e, 0x38, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x03, 0xff, 0x80, 0x04, 0x45, 0x14, 0xa4, 0x92, 0x83, 0x52, 0x22, 0x22, 0x36, 0x00, 0x00, - 0x00, 0x00, 0x38, 0x00, 0x0a, 0xaa, 0xaa, 0xaa, 0xba, 0x84, 0x55, 0x55, 0x57, 0x45, 0x00, 0x00, - 0x00, 0x00, 0x38, 0x00, 0x08, 0xaa, 0xaa, 0xaa, 0x92, 0xb2, 0x55, 0x55, 0x42, 0x65, 0x00, 0x00, - 0x00, 0x00, 0x38, 0x00, 0x08, 0xaa, 0xaa, 0xaa, 0x92, 0x81, 0x56, 0x65, 0x42, 0x45, 0x00, 0x00, - 0x00, 0x00, 0x38, 0x00, 0x0a, 0xaa, 0xaa, 0xaa, 0x92, 0x81, 0x54, 0x45, 0x42, 0x45, 0x00, 0x00, - 0x00, 0x00, 0x38, 0x00, 0x04, 0x48, 0xa2, 0x4a, 0x89, 0x06, 0x24, 0x42, 0x41, 0x36, 0x00, 0x00, - 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 -}; +#include "resources/resources.h" static const uint32_t logo_background_color = LCD_COLOR(0x00, 0x00, 0xFF); static const uint32_t initial_color = LCD_COLOR(0, 0, 0); @@ -99,7 +59,7 @@ bool display_logo(keyframe_animation_t* animation, visualizer_state_t* state) { //gdispGBlitArea is a tricky function to use since it supports blitting part of the image // if you have full screen image, then just use 128 and 32 for both source and target dimensions - gdispGBlitArea(GDISP, 0, 0, 128, 32, 0, 0, 128, (pixel_t*)image_data_lcd_logo); + gdispGBlitArea(GDISP, 0, 0, 128, 32, 0, 0, 128, (pixel_t*)resource_lcd_logo); return false; } diff --git a/quantum/visualizer/resources/lcd_logo.c b/quantum/visualizer/resources/lcd_logo.c new file mode 100644 index 00000000000..d1a0ffa7f94 --- /dev/null +++ b/quantum/visualizer/resources/lcd_logo.c @@ -0,0 +1,61 @@ +/* Copyright 2017 Fred Sundvik + * + * 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 "resources.h" + + +// To generate an image array like this +// Ensure the image is 128 x 32 or smaller +// Convert the bitmap to a C array using a program like http://www.riuson.com/lcd-image-converter/ +// Ensure the the conversion process produces a monochrome format array - 1 bit/pixel, left to right, top to bottom +// Update array in the source code with the C array produced by the conversion program + +// The image below is generated from lcd_logo.png +const uint8_t resource_lcd_logo[512] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xf8, 0xfe, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x38, 0x38, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x38, 0x38, 0x38, 0x06, 0x29, 0x41, 0x24, 0x52, 0x24, 0x46, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x38, 0x38, 0x38, 0x09, 0x55, 0x42, 0xaa, 0xaa, 0xaa, 0xa8, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x38, 0x38, 0x38, 0x09, 0x55, 0x82, 0x28, 0xaa, 0xae, 0x8c, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x38, 0x38, 0x38, 0x09, 0x55, 0x43, 0x28, 0xaa, 0xaa, 0x88, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x38, 0x38, 0x38, 0x0a, 0x55, 0x42, 0x28, 0xaa, 0xaa, 0x88, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x38, 0x38, 0x38, 0x05, 0x45, 0x42, 0x28, 0x89, 0x4a, 0x86, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x18, 0x38, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x1c, 0x38, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x0e, 0x38, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x03, 0xff, 0x80, 0x04, 0x45, 0x14, 0xa4, 0x92, 0x83, 0x52, 0x22, 0x22, 0x36, 0x00, 0x00, + 0x00, 0x00, 0x38, 0x00, 0x0a, 0xaa, 0xaa, 0xaa, 0xba, 0x84, 0x55, 0x55, 0x57, 0x45, 0x00, 0x00, + 0x00, 0x00, 0x38, 0x00, 0x08, 0xaa, 0xaa, 0xaa, 0x92, 0xb2, 0x55, 0x55, 0x42, 0x65, 0x00, 0x00, + 0x00, 0x00, 0x38, 0x00, 0x08, 0xaa, 0xaa, 0xaa, 0x92, 0x81, 0x56, 0x65, 0x42, 0x45, 0x00, 0x00, + 0x00, 0x00, 0x38, 0x00, 0x0a, 0xaa, 0xaa, 0xaa, 0x92, 0x81, 0x54, 0x45, 0x42, 0x45, 0x00, 0x00, + 0x00, 0x00, 0x38, 0x00, 0x04, 0x48, 0xa2, 0x4a, 0x89, 0x06, 0x24, 0x42, 0x41, 0x36, 0x00, 0x00, + 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 +}; + diff --git a/keyboards/ergodox/infinity/lcd_logo.png b/quantum/visualizer/resources/lcd_logo.png similarity index 100% rename from keyboards/ergodox/infinity/lcd_logo.png rename to quantum/visualizer/resources/lcd_logo.png diff --git a/quantum/visualizer/resources/resources.h b/quantum/visualizer/resources/resources.h new file mode 100644 index 00000000000..1ea27a5364a --- /dev/null +++ b/quantum/visualizer/resources/resources.h @@ -0,0 +1,27 @@ +/* Copyright 2017 Fred Sundvik + * + * 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 QUANTUM_VISUALIZER_RESOURCES_RESOURCES_H_ +#define QUANTUM_VISUALIZER_RESOURCES_RESOURCES_H_ + +#include + +#ifdef LCD_ENABLE +extern const uint8_t resource_lcd_logo[]; +#endif + + +#endif /* QUANTUM_VISUALIZER_RESOURCES_RESOURCES_H_ */ diff --git a/quantum/visualizer/visualizer.mk b/quantum/visualizer/visualizer.mk index 799379e3d61..7c8e98d67bb 100644 --- a/quantum/visualizer/visualizer.mk +++ b/quantum/visualizer/visualizer.mk @@ -37,6 +37,8 @@ ifeq ($(strip $(LCD_ENABLE)), yes) SRC += $(VISUALIZER_DIR)/lcd_backlight.c SRC += $(VISUALIZER_DIR)/lcd_keyframes.c SRC += $(VISUALIZER_DIR)/lcd_backlight_keyframes.c +# Note, that the linker will strip out any resources that are not actually in use +SRC += $(VISUALIZER_DIR)/resources/lcd_logo.c OPT_DEFS += -DLCD_BACKLIGHT_ENABLE endif From 3074269c4a07ff7f1ab2a76ebdb8904cd642e283 Mon Sep 17 00:00:00 2001 From: Fred Sundvik Date: Sat, 8 Apr 2017 21:30:11 +0300 Subject: [PATCH 117/190] Move the logo drawing keyframe to lcd_keyframes --- keyboards/ergodox/infinity/visualizer.c | 22 ++----------------- .../ergodox/keymaps/default/visualizer.c | 22 ++----------------- quantum/visualizer/lcd_keyframes.c | 19 ++++++++++++++++ quantum/visualizer/lcd_keyframes.h | 2 ++ 4 files changed, 25 insertions(+), 40 deletions(-) diff --git a/keyboards/ergodox/infinity/visualizer.c b/keyboards/ergodox/infinity/visualizer.c index 90933b00a4a..bac85c593cf 100644 --- a/keyboards/ergodox/infinity/visualizer.c +++ b/keyboards/ergodox/infinity/visualizer.c @@ -72,24 +72,6 @@ static visualizer_user_data_t user_data_keyboard = { _Static_assert(sizeof(visualizer_user_data_t) <= VISUALIZER_USER_DATA_SIZE, "Please increase the VISUALIZER_USER_DATA_SIZE"); -bool display_logo(keyframe_animation_t* animation, visualizer_state_t* state) { - (void)state; - (void)animation; - (void)state; - // Read the uGFX documentation for information how to use the displays - // http://wiki.ugfx.org/index.php/Main_Page - gdispClear(White); - - // You can use static variables for things that can't be found in the animation - // or state structs, here we use the image - - //gdispGBlitArea is a tricky function to use since it supports blitting part of the image - // if you have full screen image, then just use 128 and 32 for both source and target dimensions - gdispGBlitArea(GDISP, 0, 0, 128, 32, 0, 0, 128, (pixel_t*)resource_lcd_logo); - - return false; -} - // Feel free to modify the animations below, or even add new ones if needed // Don't worry, if the startup animation is long, you can use the keyboard like normal @@ -99,7 +81,7 @@ static keyframe_animation_t startup_animation = { .loop = false, .frame_lengths = {0, gfxMillisecondsToTicks(10000), 0}, .frame_functions = { - display_logo, + lcd_keyframe_draw_logo, backlight_keyframe_animate_color, }, }; @@ -162,7 +144,7 @@ static keyframe_animation_t resume_animation = { .frame_functions = { lcd_keyframe_enable, backlight_keyframe_enable, - display_logo, + lcd_keyframe_draw_logo, backlight_keyframe_animate_color, }, }; diff --git a/keyboards/ergodox/keymaps/default/visualizer.c b/keyboards/ergodox/keymaps/default/visualizer.c index f03702f6020..afa6f1bdd77 100644 --- a/keyboards/ergodox/keymaps/default/visualizer.c +++ b/keyboards/ergodox/keymaps/default/visualizer.c @@ -46,24 +46,6 @@ typedef enum { static lcd_state_t lcd_state = LCD_STATE_INITIAL; -bool display_logo(keyframe_animation_t* animation, visualizer_state_t* state) { - (void)state; - (void)animation; - (void)state; - // Read the uGFX documentation for information how to use the displays - // http://wiki.ugfx.org/index.php/Main_Page - gdispClear(White); - - // You can use static variables for things that can't be found in the animation - // or state structs, here we use the image - - //gdispGBlitArea is a tricky function to use since it supports blitting part of the image - // if you have full screen image, then just use 128 and 32 for both source and target dimensions - gdispGBlitArea(GDISP, 0, 0, 128, 32, 0, 0, 128, (pixel_t*)resource_lcd_logo); - - return false; -} - // Feel free to modify the animations below, or even add new ones if needed // Don't worry, if the startup animation is long, you can use the keyboard like normal @@ -73,7 +55,7 @@ static keyframe_animation_t startup_animation = { .loop = false, .frame_lengths = {0, gfxMillisecondsToTicks(10000), 0}, .frame_functions = { - display_logo, + lcd_keyframe_draw_logo, backlight_keyframe_animate_color, }, }; @@ -104,7 +86,7 @@ static keyframe_animation_t resume_animation = { .frame_functions = { lcd_keyframe_enable, backlight_keyframe_enable, - display_logo, + lcd_keyframe_draw_logo, backlight_keyframe_animate_color, }, }; diff --git a/quantum/visualizer/lcd_keyframes.c b/quantum/visualizer/lcd_keyframes.c index c6e04d0ca43..df11861ddc9 100644 --- a/quantum/visualizer/lcd_keyframes.c +++ b/quantum/visualizer/lcd_keyframes.c @@ -18,6 +18,7 @@ #include #include "action_util.h" #include "led.h" +#include "resources/resources.h" bool lcd_keyframe_display_layer_text(keyframe_animation_t* animation, visualizer_state_t* state) { (void)animation; @@ -154,6 +155,24 @@ bool lcd_keyframe_display_layer_and_led_states(keyframe_animation_t* animation, return false; } +bool lcd_keyframe_draw_logo(keyframe_animation_t* animation, visualizer_state_t* state) { + (void)state; + (void)animation; + // Read the uGFX documentation for information how to use the displays + // http://wiki.ugfx.org/index.php/Main_Page + gdispClear(White); + + // You can use static variables for things that can't be found in the animation + // or state structs, here we use the image + + //gdispGBlitArea is a tricky function to use since it supports blitting part of the image + // if you have full screen image, then just use 128 and 32 for both source and target dimensions + gdispGBlitArea(GDISP, 0, 0, 128, 32, 0, 0, 128, (pixel_t*)resource_lcd_logo); + + return false; +} + + bool lcd_keyframe_disable(keyframe_animation_t* animation, visualizer_state_t* state) { (void)animation; (void)state; diff --git a/quantum/visualizer/lcd_keyframes.h b/quantum/visualizer/lcd_keyframes.h index 8f79a541c88..2e912b4c73d 100644 --- a/quantum/visualizer/lcd_keyframes.h +++ b/quantum/visualizer/lcd_keyframes.h @@ -29,6 +29,8 @@ bool lcd_keyframe_display_mods_bitmap(keyframe_animation_t* animation, visualize bool lcd_keyframe_display_led_states(keyframe_animation_t* animation, visualizer_state_t* state); // Displays both the layer text and the led states bool lcd_keyframe_display_layer_and_led_states(keyframe_animation_t* animation, visualizer_state_t* state); +// Displays the QMK logo on the LCD screen +bool lcd_keyframe_draw_logo(keyframe_animation_t* animation, visualizer_state_t* state); bool lcd_keyframe_disable(keyframe_animation_t* animation, visualizer_state_t* state); bool lcd_keyframe_enable(keyframe_animation_t* animation, visualizer_state_t* state); From ed1710589f2f63e485c8780c7c8c03e0f65136a0 Mon Sep 17 00:00:00 2001 From: Fred Sundvik Date: Sat, 8 Apr 2017 21:34:30 +0300 Subject: [PATCH 118/190] Fix suspend not disabling backlight --- keyboards/ergodox/infinity/visualizer.c | 2 +- keyboards/ergodox/keymaps/default/visualizer.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/keyboards/ergodox/infinity/visualizer.c b/keyboards/ergodox/infinity/visualizer.c index bac85c593cf..8c3f3f29fcc 100644 --- a/keyboards/ergodox/infinity/visualizer.c +++ b/keyboards/ergodox/infinity/visualizer.c @@ -133,7 +133,7 @@ static keyframe_animation_t suspend_animation = { lcd_keyframe_display_layer_text, backlight_keyframe_animate_color, lcd_keyframe_disable, - lcd_keyframe_disable, + backlight_keyframe_disable, }, }; diff --git a/keyboards/ergodox/keymaps/default/visualizer.c b/keyboards/ergodox/keymaps/default/visualizer.c index afa6f1bdd77..6a7178968b1 100644 --- a/keyboards/ergodox/keymaps/default/visualizer.c +++ b/keyboards/ergodox/keymaps/default/visualizer.c @@ -75,7 +75,7 @@ static keyframe_animation_t suspend_animation = { lcd_keyframe_display_layer_text, backlight_keyframe_animate_color, lcd_keyframe_disable, - lcd_keyframe_disable, + backlight_keyframe_disable, }, }; From c6ca996f4eaa4cce90e02c123230e1e655c9465a Mon Sep 17 00:00:00 2001 From: Fred Sundvik Date: Sat, 8 Apr 2017 22:30:37 +0300 Subject: [PATCH 119/190] Combine startup and resume animations --- .../gdisp/st7565ergodox/gdisp_lld_ST7565.c | 3 +-- keyboards/ergodox/infinity/visualizer.c | 20 +++++-------------- quantum/visualizer/lcd_backlight.c | 8 ++++---- 3 files changed, 10 insertions(+), 21 deletions(-) diff --git a/keyboards/ergodox/infinity/drivers/gdisp/st7565ergodox/gdisp_lld_ST7565.c b/keyboards/ergodox/infinity/drivers/gdisp/st7565ergodox/gdisp_lld_ST7565.c index 5b7b6d44c43..b04ad029358 100644 --- a/keyboards/ergodox/infinity/drivers/gdisp/st7565ergodox/gdisp_lld_ST7565.c +++ b/keyboards/ergodox/infinity/drivers/gdisp/st7565ergodox/gdisp_lld_ST7565.c @@ -127,7 +127,6 @@ LLDSPEC bool_t gdisp_lld_init(GDisplay *g) { write_cmd(g, ST7565_INVERT_DISPLAY); write_cmd(g, ST7565_ALLON_NORMAL); - write_cmd(g, ST7565_DISPLAY_ON); write_cmd(g, ST7565_START_LINE | 0); write_cmd(g, ST7565_RMW); @@ -143,7 +142,7 @@ LLDSPEC bool_t gdisp_lld_init(GDisplay *g) { g->g.Width = GDISP_SCREEN_WIDTH; g->g.Height = GDISP_SCREEN_HEIGHT; g->g.Orientation = GDISP_ROTATE_0; - g->g.Powermode = powerOn; + g->g.Powermode = powerOff; g->g.Backlight = GDISP_INITIAL_BACKLIGHT; g->g.Contrast = GDISP_INITIAL_CONTRAST; return TRUE; diff --git a/keyboards/ergodox/infinity/visualizer.c b/keyboards/ergodox/infinity/visualizer.c index 8c3f3f29fcc..7ae371c5fc1 100644 --- a/keyboards/ergodox/infinity/visualizer.c +++ b/keyboards/ergodox/infinity/visualizer.c @@ -77,10 +77,12 @@ _Static_assert(sizeof(visualizer_user_data_t) <= VISUALIZER_USER_DATA_SIZE, // Don't worry, if the startup animation is long, you can use the keyboard like normal // during that time static keyframe_animation_t startup_animation = { - .num_frames = 2, + .num_frames = 4, .loop = false, - .frame_lengths = {0, gfxMillisecondsToTicks(10000), 0}, + .frame_lengths = {0, 0, 0, gfxMillisecondsToTicks(10000), 0}, .frame_functions = { + lcd_keyframe_enable, + backlight_keyframe_enable, lcd_keyframe_draw_logo, backlight_keyframe_animate_color, }, @@ -137,18 +139,6 @@ static keyframe_animation_t suspend_animation = { }, }; -static keyframe_animation_t resume_animation = { - .num_frames = 4, - .loop = false, - .frame_lengths = {0, 0, 0, gfxMillisecondsToTicks(10000), 0}, - .frame_functions = { - lcd_keyframe_enable, - backlight_keyframe_enable, - lcd_keyframe_draw_logo, - backlight_keyframe_animate_color, - }, -}; - void initialize_user_visualizer(visualizer_state_t* state) { // The brightness will be dynamically adjustable in the future // But for now, change it here. @@ -312,7 +302,7 @@ void user_visualizer_resume(visualizer_state_t* state) { state->current_lcd_color = initial_color; state->target_lcd_color = logo_background_color; lcd_state = LCD_STATE_INITIAL; - start_keyframe_animation(&resume_animation); + start_keyframe_animation(&startup_animation); } void ergodox_board_led_on(void){ diff --git a/quantum/visualizer/lcd_backlight.c b/quantum/visualizer/lcd_backlight.c index 70187d1e000..00de3fab52d 100644 --- a/quantum/visualizer/lcd_backlight.c +++ b/quantum/visualizer/lcd_backlight.c @@ -25,10 +25,10 @@ SOFTWARE. #include "lcd_backlight.h" #include -static uint8_t current_hue = 0x00; -static uint8_t current_saturation = 0x00; -static uint8_t current_intensity = 0xFF; -static uint8_t current_brightness = 0x7F; +static uint8_t current_hue = 0; +static uint8_t current_saturation = 0; +static uint8_t current_intensity = 0; +static uint8_t current_brightness = 0; void lcd_backlight_init(void) { lcd_backlight_hal_init(); From 306353bf06e5e5a76890ffb0c48a4dcca76c4399 Mon Sep 17 00:00:00 2001 From: Fred Sundvik Date: Sat, 8 Apr 2017 22:48:18 +0300 Subject: [PATCH 120/190] Create a file for shared Ergodox Infinity animations --- keyboards/ergodox/infinity/animations.c | 54 +++++++++++++++++++ keyboards/ergodox/infinity/animations.h | 25 +++++++++ keyboards/ergodox/infinity/rules.mk | 5 +- keyboards/ergodox/infinity/visualizer.c | 38 ++----------- .../ergodox/keymaps/default/visualizer.c | 45 ++-------------- 5 files changed, 90 insertions(+), 77 deletions(-) create mode 100644 keyboards/ergodox/infinity/animations.c create mode 100644 keyboards/ergodox/infinity/animations.h diff --git a/keyboards/ergodox/infinity/animations.c b/keyboards/ergodox/infinity/animations.c new file mode 100644 index 00000000000..54ab994607c --- /dev/null +++ b/keyboards/ergodox/infinity/animations.c @@ -0,0 +1,54 @@ +/* Copyright 2017 Fred Sundvik + * + * 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 "animations.h" +#include "visualizer.h" +#ifdef LCD_ENABLE +#include "lcd_keyframes.h" +#endif +#ifdef LCD_BACKLIGHT_ENABLE +#include "lcd_backlight_keyframes.h" +#endif + +#if defined(VISUALIZER_ENABLE) && defined(LCD_ENABLE) && defined(LCD_BACKLIGHT_ENABLE) + +// Don't worry, if the startup animation is long, you can use the keyboard like normal +// during that time +keyframe_animation_t default_startup_animation = { + .num_frames = 4, + .loop = false, + .frame_lengths = {0, 0, 0, gfxMillisecondsToTicks(5000), 0}, + .frame_functions = { + lcd_keyframe_enable, + backlight_keyframe_enable, + lcd_keyframe_draw_logo, + backlight_keyframe_animate_color, + }, +}; + +keyframe_animation_t default_suspend_animation = { + .num_frames = 4, + .loop = false, + .frame_lengths = {0, gfxMillisecondsToTicks(1000), 0, 0}, + .frame_functions = { + lcd_keyframe_display_layer_text, + backlight_keyframe_animate_color, + lcd_keyframe_disable, + backlight_keyframe_disable, + }, +}; + +#endif diff --git a/keyboards/ergodox/infinity/animations.h b/keyboards/ergodox/infinity/animations.h new file mode 100644 index 00000000000..0c441ff7e9c --- /dev/null +++ b/keyboards/ergodox/infinity/animations.h @@ -0,0 +1,25 @@ +/* Copyright 2017 Fred Sundvik + * + * 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 KEYBOARDS_ERGODOX_INFINITY_ANIMATIONS_H_ +#define KEYBOARDS_ERGODOX_INFINITY_ANIMATIONS_H_ + +#include "visualizer.h" + +extern keyframe_animation_t default_startup_animation; +extern keyframe_animation_t default_suspend_animation; + +#endif /* KEYBOARDS_ERGODOX_INFINITY_ANIMATIONS_H_ */ diff --git a/keyboards/ergodox/infinity/rules.mk b/keyboards/ergodox/infinity/rules.mk index aaadfe34b5f..9e6170d89ae 100644 --- a/keyboards/ergodox/infinity/rules.mk +++ b/keyboards/ergodox/infinity/rules.mk @@ -1,6 +1,7 @@ # project specific files SRC = matrix.c \ - led.c + led.c \ + animations.c ## chip/board settings # - the next two should match the directories in @@ -72,4 +73,4 @@ endif ifdef LED_ENABLE include $(SUBPROJECT_PATH)/drivers/gdisp/IS31FL3731C/driver.mk -endif +endif \ No newline at end of file diff --git a/keyboards/ergodox/infinity/visualizer.c b/keyboards/ergodox/infinity/visualizer.c index 7ae371c5fc1..a4b09a34d0f 100644 --- a/keyboards/ergodox/infinity/visualizer.c +++ b/keyboards/ergodox/infinity/visualizer.c @@ -31,8 +31,7 @@ along with this program. If not, see . #include "lcd_keyframes.h" #include "lcd_backlight_keyframes.h" #include "system/serial_link.h" - -#include "resources/resources.h" +#include "animations.h" static const uint32_t logo_background_color = LCD_COLOR(0x00, 0x00, 0xFF); static const uint32_t initial_color = LCD_COLOR(0, 0, 0); @@ -74,19 +73,6 @@ _Static_assert(sizeof(visualizer_user_data_t) <= VISUALIZER_USER_DATA_SIZE, // Feel free to modify the animations below, or even add new ones if needed -// Don't worry, if the startup animation is long, you can use the keyboard like normal -// during that time -static keyframe_animation_t startup_animation = { - .num_frames = 4, - .loop = false, - .frame_lengths = {0, 0, 0, gfxMillisecondsToTicks(10000), 0}, - .frame_functions = { - lcd_keyframe_enable, - backlight_keyframe_enable, - lcd_keyframe_draw_logo, - backlight_keyframe_animate_color, - }, -}; // The color animation animates the LCD color when you change layers static keyframe_animation_t one_led_color = { @@ -127,18 +113,6 @@ static keyframe_animation_t lcd_bitmap_leds_animation = { .frame_functions = {lcd_keyframe_display_layer_bitmap, lcd_keyframe_display_led_states}, }; -static keyframe_animation_t suspend_animation = { - .num_frames = 4, - .loop = false, - .frame_lengths = {0, gfxMillisecondsToTicks(1000), 0, 0}, - .frame_functions = { - lcd_keyframe_display_layer_text, - backlight_keyframe_animate_color, - lcd_keyframe_disable, - backlight_keyframe_disable, - }, -}; - void initialize_user_visualizer(visualizer_state_t* state) { // The brightness will be dynamically adjustable in the future // But for now, change it here. @@ -146,13 +120,9 @@ void initialize_user_visualizer(visualizer_state_t* state) { state->current_lcd_color = initial_color; state->target_lcd_color = logo_background_color; lcd_state = LCD_STATE_INITIAL; - start_keyframe_animation(&startup_animation); + start_keyframe_animation(&default_startup_animation); } -static const uint32_t red; -static const uint32_t green; -static const uint32_t blue; - inline bool is_led_on(visualizer_user_data_t* user_data, uint8_t num) { return user_data->led_on & (1u << num); } @@ -295,14 +265,14 @@ void user_visualizer_suspend(visualizer_state_t* state) { uint8_t hue = LCD_HUE(state->current_lcd_color); uint8_t sat = LCD_SAT(state->current_lcd_color); state->target_lcd_color = LCD_COLOR(hue, sat, 0); - start_keyframe_animation(&suspend_animation); + start_keyframe_animation(&default_suspend_animation); } void user_visualizer_resume(visualizer_state_t* state) { state->current_lcd_color = initial_color; state->target_lcd_color = logo_background_color; lcd_state = LCD_STATE_INITIAL; - start_keyframe_animation(&startup_animation); + start_keyframe_animation(&default_startup_animation); } void ergodox_board_led_on(void){ diff --git a/keyboards/ergodox/keymaps/default/visualizer.c b/keyboards/ergodox/keymaps/default/visualizer.c index 6a7178968b1..779de00506d 100644 --- a/keyboards/ergodox/keymaps/default/visualizer.c +++ b/keyboards/ergodox/keymaps/default/visualizer.c @@ -32,8 +32,7 @@ along with this program. If not, see . #include "lcd_backlight_keyframes.h" #include "system/serial_link.h" #include "led.h" - -#include "resources/resources.h" +#include "animations.h" static const uint32_t logo_background_color = LCD_COLOR(0x00, 0x00, 0xFF); static const uint32_t initial_color = LCD_COLOR(0, 0, 0); @@ -48,18 +47,6 @@ static lcd_state_t lcd_state = LCD_STATE_INITIAL; // Feel free to modify the animations below, or even add new ones if needed -// Don't worry, if the startup animation is long, you can use the keyboard like normal -// during that time -static keyframe_animation_t startup_animation = { - .num_frames = 2, - .loop = false, - .frame_lengths = {0, gfxMillisecondsToTicks(10000), 0}, - .frame_functions = { - lcd_keyframe_draw_logo, - backlight_keyframe_animate_color, - }, -}; - static keyframe_animation_t lcd_layer_display = { .num_frames = 1, .loop = false, @@ -67,30 +54,6 @@ static keyframe_animation_t lcd_layer_display = { .frame_functions = {lcd_keyframe_display_layer_and_led_states} }; -static keyframe_animation_t suspend_animation = { - .num_frames = 4, - .loop = false, - .frame_lengths = {0, gfxMillisecondsToTicks(1000), 0, 0}, - .frame_functions = { - lcd_keyframe_display_layer_text, - backlight_keyframe_animate_color, - lcd_keyframe_disable, - backlight_keyframe_disable, - }, -}; - -static keyframe_animation_t resume_animation = { - .num_frames = 4, - .loop = false, - .frame_lengths = {0, 0, 0, gfxMillisecondsToTicks(10000), 0}, - .frame_functions = { - lcd_keyframe_enable, - backlight_keyframe_enable, - lcd_keyframe_draw_logo, - backlight_keyframe_animate_color, - }, -}; - // The color animation animates the LCD color when you change layers static keyframe_animation_t color_animation = { .num_frames = 2, @@ -109,7 +72,7 @@ void initialize_user_visualizer(visualizer_state_t* state) { state->current_lcd_color = initial_color; state->target_lcd_color = logo_background_color; lcd_state = LCD_STATE_INITIAL; - start_keyframe_animation(&startup_animation); + start_keyframe_animation(&default_startup_animation); } void update_user_visualizer_state(visualizer_state_t* state, visualizer_keyboard_status_t* prev_status) { @@ -156,12 +119,12 @@ void user_visualizer_suspend(visualizer_state_t* state) { uint8_t hue = LCD_HUE(state->current_lcd_color); uint8_t sat = LCD_SAT(state->current_lcd_color); state->target_lcd_color = LCD_COLOR(hue, sat, 0); - start_keyframe_animation(&suspend_animation); + start_keyframe_animation(&default_suspend_animation); } void user_visualizer_resume(visualizer_state_t* state) { state->current_lcd_color = initial_color; state->target_lcd_color = logo_background_color; lcd_state = LCD_STATE_INITIAL; - start_keyframe_animation(&resume_animation); + start_keyframe_animation(&default_startup_animation); } From c5d2b7ff16f81a8061127e0ec636cf9b914725c5 Mon Sep 17 00:00:00 2001 From: Fred Sundvik Date: Sat, 8 Apr 2017 23:04:27 +0300 Subject: [PATCH 121/190] Rename led test to led_keyframes and move animation to Ergodox --- keyboards/ergodox/infinity/animations.c | 55 +++++++++++++++++- keyboards/ergodox/infinity/animations.h | 5 ++ .../{led_test.c => led_keyframes.c} | 57 +++---------------- .../{led_test.h => led_keyframes.h} | 20 +++---- quantum/visualizer/visualizer.mk | 2 +- 5 files changed, 78 insertions(+), 61 deletions(-) rename quantum/visualizer/{led_test.c => led_keyframes.c} (68%) rename quantum/visualizer/{led_test.h => led_keyframes.h} (69%) diff --git a/keyboards/ergodox/infinity/animations.c b/keyboards/ergodox/infinity/animations.c index 54ab994607c..4c9f6d9c85a 100644 --- a/keyboards/ergodox/infinity/animations.c +++ b/keyboards/ergodox/infinity/animations.c @@ -14,6 +14,8 @@ * along with this program. If not, see . */ +#if defined(VISUALIZER_ENABLE) + #include "animations.h" #include "visualizer.h" #ifdef LCD_ENABLE @@ -23,7 +25,14 @@ #include "lcd_backlight_keyframes.h" #endif -#if defined(VISUALIZER_ENABLE) && defined(LCD_ENABLE) && defined(LCD_BACKLIGHT_ENABLE) +#ifdef LED_ENABLE +#include "led_keyframes.h" +#endif + +#include "visualizer_keyframes.h" + + +#if defined(LCD_ENABLE) && defined(LCD_BACKLIGHT_ENABLE) // Don't worry, if the startup animation is long, you can use the keyboard like normal // during that time @@ -50,5 +59,49 @@ keyframe_animation_t default_suspend_animation = { backlight_keyframe_disable, }, }; +#endif + +#if defined(LED_ENABLE) +#define CROSSFADE_TIME 1000 +#define GRADIENT_TIME 3000 + +keyframe_animation_t led_test_animation = { + .num_frames = 14, + .loop = true, + .frame_lengths = { + gfxMillisecondsToTicks(1000), // fade in + gfxMillisecondsToTicks(1000), // no op (leds on) + gfxMillisecondsToTicks(1000), // fade out + gfxMillisecondsToTicks(CROSSFADE_TIME), // crossfade + gfxMillisecondsToTicks(GRADIENT_TIME), // left to rigt (outside in) + gfxMillisecondsToTicks(CROSSFADE_TIME), // crossfade + gfxMillisecondsToTicks(GRADIENT_TIME), // top_to_bottom + 0, // mirror leds + gfxMillisecondsToTicks(CROSSFADE_TIME), // crossfade + gfxMillisecondsToTicks(GRADIENT_TIME), // left_to_right (mirrored, so inside out) + gfxMillisecondsToTicks(CROSSFADE_TIME), // crossfade + gfxMillisecondsToTicks(GRADIENT_TIME), // top_to_bottom + 0, // normal leds + gfxMillisecondsToTicks(CROSSFADE_TIME), // crossfade + + }, + .frame_functions = { + led_keyframe_fade_in_all, + keyframe_no_operation, + led_keyframe_fade_out_all, + led_keyframe_crossfade, + led_keyframe_left_to_right_gradient, + led_keyframe_crossfade, + led_keyframe_top_to_bottom_gradient, + led_keyframe_mirror_orientation, + led_keyframe_crossfade, + led_keyframe_left_to_right_gradient, + led_keyframe_crossfade, + led_keyframe_top_to_bottom_gradient, + led_keyframe_normal_orientation, + led_keyframe_crossfade, + }, +}; +#endif #endif diff --git a/keyboards/ergodox/infinity/animations.h b/keyboards/ergodox/infinity/animations.h index 0c441ff7e9c..6d8b9830d9c 100644 --- a/keyboards/ergodox/infinity/animations.h +++ b/keyboards/ergodox/infinity/animations.h @@ -19,7 +19,12 @@ #include "visualizer.h" +// You can use these default animations, but of course you can also write your own custom ones instead extern keyframe_animation_t default_startup_animation; extern keyframe_animation_t default_suspend_animation; +// An animation for testing and demonstrating the led support, should probably not be used for real world +// cases +extern keyframe_animation_t led_test_animation; + #endif /* KEYBOARDS_ERGODOX_INFINITY_ANIMATIONS_H_ */ diff --git a/quantum/visualizer/led_test.c b/quantum/visualizer/led_keyframes.c similarity index 68% rename from quantum/visualizer/led_test.c rename to quantum/visualizer/led_keyframes.c index a9abace8df8..2dacd990d14 100644 --- a/quantum/visualizer/led_test.c +++ b/quantum/visualizer/led_keyframes.c @@ -21,50 +21,9 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#include "led_test.h" #include "gfx.h" #include "math.h" - -#define CROSSFADE_TIME 1000 -#define GRADIENT_TIME 3000 - -keyframe_animation_t led_test_animation = { - .num_frames = 14, - .loop = true, - .frame_lengths = { - gfxMillisecondsToTicks(1000), // fade in - gfxMillisecondsToTicks(1000), // no op (leds on) - gfxMillisecondsToTicks(1000), // fade out - gfxMillisecondsToTicks(CROSSFADE_TIME), // crossfade - gfxMillisecondsToTicks(GRADIENT_TIME), // left to rigt (outside in) - gfxMillisecondsToTicks(CROSSFADE_TIME), // crossfade - gfxMillisecondsToTicks(GRADIENT_TIME), // top_to_bottom - 0, // mirror leds - gfxMillisecondsToTicks(CROSSFADE_TIME), // crossfade - gfxMillisecondsToTicks(GRADIENT_TIME), // left_to_right (mirrored, so inside out) - gfxMillisecondsToTicks(CROSSFADE_TIME), // crossfade - gfxMillisecondsToTicks(GRADIENT_TIME), // top_to_bottom - 0, // normal leds - gfxMillisecondsToTicks(CROSSFADE_TIME), // crossfade - - }, - .frame_functions = { - keyframe_fade_in_all_leds, - keyframe_no_operation, - keyframe_fade_out_all_leds, - keyframe_led_crossfade, - keyframe_led_left_to_right_gradient, - keyframe_led_crossfade, - keyframe_led_top_to_bottom_gradient, - keyframe_mirror_led_orientation, - keyframe_led_crossfade, - keyframe_led_left_to_right_gradient, - keyframe_led_crossfade, - keyframe_led_top_to_bottom_gradient, - keyframe_normal_led_orientation, - keyframe_led_crossfade, - }, -}; +#include "led_keyframes.h" static uint8_t fade_led_color(keyframe_animation_t* animation, int from, int to) { int frame_length = animation->frame_lengths[animation->current_frame]; @@ -96,19 +55,19 @@ static uint8_t compute_gradient_color(float t, float index, float num) { return (uint8_t)(255.0f * v); } -bool keyframe_fade_in_all_leds(keyframe_animation_t* animation, visualizer_state_t* state) { +bool led_keyframe_fade_in_all(keyframe_animation_t* animation, visualizer_state_t* state) { (void)state; keyframe_fade_all_leds_from_to(animation, 0, 255); return true; } -bool keyframe_fade_out_all_leds(keyframe_animation_t* animation, visualizer_state_t* state) { +bool led_keyframe_fade_out_all(keyframe_animation_t* animation, visualizer_state_t* state) { (void)state; keyframe_fade_all_leds_from_to(animation, 255, 0); return true; } -bool keyframe_led_left_to_right_gradient(keyframe_animation_t* animation, visualizer_state_t* state) { +bool led_keyframe_left_to_right_gradient(keyframe_animation_t* animation, visualizer_state_t* state) { (void)state; float frame_length = animation->frame_lengths[animation->current_frame]; float current_pos = frame_length - animation->time_left_in_frame; @@ -120,7 +79,7 @@ bool keyframe_led_left_to_right_gradient(keyframe_animation_t* animation, visual return true; } -bool keyframe_led_top_to_bottom_gradient(keyframe_animation_t* animation, visualizer_state_t* state) { +bool led_keyframe_top_to_bottom_gradient(keyframe_animation_t* animation, visualizer_state_t* state) { (void)state; float frame_length = animation->frame_lengths[animation->current_frame]; float current_pos = frame_length - animation->time_left_in_frame; @@ -139,7 +98,7 @@ static void copy_current_led_state(uint8_t* dest) { } } } -bool keyframe_led_crossfade(keyframe_animation_t* animation, visualizer_state_t* state) { +bool led_keyframe_crossfade(keyframe_animation_t* animation, visualizer_state_t* state) { (void)state; if (animation->first_update_of_frame) { copy_current_led_state(&crossfade_start_frame[0][0]); @@ -155,14 +114,14 @@ bool keyframe_led_crossfade(keyframe_animation_t* animation, visualizer_state_t* return true; } -bool keyframe_mirror_led_orientation(keyframe_animation_t* animation, visualizer_state_t* state) { +bool led_keyframe_mirror_orientation(keyframe_animation_t* animation, visualizer_state_t* state) { (void)state; (void)animation; gdispGSetOrientation(LED_DISPLAY, GDISP_ROTATE_180); return false; } -bool keyframe_normal_led_orientation(keyframe_animation_t* animation, visualizer_state_t* state) { +bool led_keyframe_normal_orientation(keyframe_animation_t* animation, visualizer_state_t* state) { (void)state; (void)animation; gdispGSetOrientation(LED_DISPLAY, GDISP_ROTATE_0); diff --git a/quantum/visualizer/led_test.h b/quantum/visualizer/led_keyframes.h similarity index 69% rename from quantum/visualizer/led_test.h rename to quantum/visualizer/led_keyframes.h index 5e2325753ef..a689430417a 100644 --- a/quantum/visualizer/led_test.h +++ b/quantum/visualizer/led_keyframes.h @@ -22,20 +22,20 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#ifndef TMK_VISUALIZER_LED_TEST_H_ -#define TMK_VISUALIZER_LED_TEST_H_ +#ifndef LED_KEYFRAMES_H +#define LED_KEYFRAMES_H #include "visualizer.h" -bool keyframe_fade_in_all_leds(keyframe_animation_t* animation, visualizer_state_t* state); -bool keyframe_fade_out_all_leds(keyframe_animation_t* animation, visualizer_state_t* state); -bool keyframe_led_left_to_right_gradient(keyframe_animation_t* animation, visualizer_state_t* state); -bool keyframe_led_top_to_bottom_gradient(keyframe_animation_t* animation, visualizer_state_t* state); -bool keyframe_led_crossfade(keyframe_animation_t* animation, visualizer_state_t* state); -bool keyframe_mirror_led_orientation(keyframe_animation_t* animation, visualizer_state_t* state); -bool keyframe_normal_led_orientation(keyframe_animation_t* animation, visualizer_state_t* state); +bool led_keyframe_fade_in_all(keyframe_animation_t* animation, visualizer_state_t* state); +bool led_keyframe_fade_out_all(keyframe_animation_t* animation, visualizer_state_t* state); +bool led_keyframe_left_to_right_gradient(keyframe_animation_t* animation, visualizer_state_t* state); +bool led_keyframe_top_to_bottom_gradient(keyframe_animation_t* animation, visualizer_state_t* state); +bool led_keyframe_crossfade(keyframe_animation_t* animation, visualizer_state_t* state); +bool led_keyframe_mirror_orientation(keyframe_animation_t* animation, visualizer_state_t* state); +bool led_keyframe_normal_orientation(keyframe_animation_t* animation, visualizer_state_t* state); extern keyframe_animation_t led_test_animation; -#endif /* TMK_VISUALIZER_LED_TEST_H_ */ +#endif /* LED_KEYFRAMES_H */ diff --git a/quantum/visualizer/visualizer.mk b/quantum/visualizer/visualizer.mk index 7c8e98d67bb..5f710124bc9 100644 --- a/quantum/visualizer/visualizer.mk +++ b/quantum/visualizer/visualizer.mk @@ -43,7 +43,7 @@ OPT_DEFS += -DLCD_BACKLIGHT_ENABLE endif ifeq ($(strip $(LED_ENABLE)), yes) -SRC += $(VISUALIZER_DIR)/led_test.c +SRC += $(VISUALIZER_DIR)/led_keyframes.c OPT_DEFS += -DLED_ENABLE endif From 65b7bf68785b5b1d4257ba4fd95c3f53df230985 Mon Sep 17 00:00:00 2001 From: Fred Sundvik Date: Sun, 9 Apr 2017 18:32:10 +0300 Subject: [PATCH 122/190] Extract Ergodox default visualizer into simple_visualizer It's good enough if you only want to change the lcd text and color. --- .../ergodox/infinity/simple_visualizer.h | 123 ++++++++++++++++++ .../ergodox/keymaps/default/visualizer.c | 102 +-------------- 2 files changed, 130 insertions(+), 95 deletions(-) create mode 100644 keyboards/ergodox/infinity/simple_visualizer.h diff --git a/keyboards/ergodox/infinity/simple_visualizer.h b/keyboards/ergodox/infinity/simple_visualizer.h new file mode 100644 index 00000000000..ded8a3222ef --- /dev/null +++ b/keyboards/ergodox/infinity/simple_visualizer.h @@ -0,0 +1,123 @@ +/* Copyright 2017 Fred Sundvik + * + * 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 KEYBOARDS_ERGODOX_INFINITY_SIMPLE_VISUALIZER_H_ +#define KEYBOARDS_ERGODOX_INFINITY_SIMPLE_VISUALIZER_H_ + +// Currently we are assuming that both the backlight and LCD are enabled +// But it's entirely possible to write a custom visualizer that use only +// one of them +#ifndef LCD_BACKLIGHT_ENABLE +#error This visualizer needs that LCD backlight is enabled +#endif + +#ifndef LCD_ENABLE +#error This visualizer needs that LCD is enabled +#endif + +#include "visualizer.h" +#include "visualizer_keyframes.h" +#include "lcd_keyframes.h" +#include "lcd_backlight_keyframes.h" +#include "system/serial_link.h" +#include "led.h" +#include "animations.h" + +static const uint32_t logo_background_color = LCD_COLOR(0x00, 0x00, 0xFF); +static const uint32_t initial_color = LCD_COLOR(0, 0, 0); + +static bool initial_update = true; + +// Feel free to modify the animations below, or even add new ones if needed + +static keyframe_animation_t lcd_layer_display = { + .num_frames = 1, + .loop = false, + .frame_lengths = {gfxMillisecondsToTicks(0)}, + .frame_functions = {lcd_keyframe_display_layer_and_led_states} +}; + +// The color animation animates the LCD color when you change layers +static keyframe_animation_t color_animation = { + .num_frames = 2, + .loop = false, + // Note that there's a 200 ms no-operation frame, + // this prevents the color from changing when activating the layer + // momentarily + .frame_lengths = {gfxMillisecondsToTicks(200), gfxMillisecondsToTicks(500)}, + .frame_functions = {keyframe_no_operation, backlight_keyframe_animate_color}, +}; + +void initialize_user_visualizer(visualizer_state_t* state) { + // The brightness will be dynamically adjustable in the future + // But for now, change it here. + lcd_backlight_brightness(130); + state->current_lcd_color = initial_color; + state->target_lcd_color = logo_background_color; + initial_update = true; + start_keyframe_animation(&default_startup_animation); +} + + +// This function should be implemented by the keymap visualizer +// Don't change anything else than state->target_lcd_color and state->layer_text as that's the only thing +// that the simple_visualizer assumes that you are updating +// Also make sure that the buffer passed to state->layer_text remains valid until the previous animation is +// stopped. This can be done by either double buffering it or by using constant strings +static void get_visualizer_layer_and_color(visualizer_state_t* state); + +void update_user_visualizer_state(visualizer_state_t* state, visualizer_keyboard_status_t* prev_status) { + // Add more tests, change the colors and layer texts here + // Usually you want to check the high bits (higher layers first) + // because that's the order layers are processed for keypresses + // You can for check for example: + // state->status.layer + // state->status.default_layer + // state->status.leds (see led.h for available statuses) + + uint32_t prev_color = state->target_lcd_color; + const char* prev_layer_text = state->layer_text; + + get_visualizer_layer_and_color(state); + + if (initial_update || prev_color != state->target_lcd_color) { + start_keyframe_animation(&color_animation); + } + + if (initial_update || prev_layer_text != state->layer_text) { + start_keyframe_animation(&lcd_layer_display); + } + // You can also stop existing animations, and start your custom ones here + // remember that you should normally have only one animation for the LCD + // and one for the background. But you can also combine them if you want. +} + +void user_visualizer_suspend(visualizer_state_t* state) { + state->layer_text = "Suspending..."; + uint8_t hue = LCD_HUE(state->current_lcd_color); + uint8_t sat = LCD_SAT(state->current_lcd_color); + state->target_lcd_color = LCD_COLOR(hue, sat, 0); + start_keyframe_animation(&default_suspend_animation); +} + +void user_visualizer_resume(visualizer_state_t* state) { + state->current_lcd_color = initial_color; + state->target_lcd_color = logo_background_color; + initial_update = true; + start_keyframe_animation(&default_startup_animation); +} + +#endif /* KEYBOARDS_ERGODOX_INFINITY_SIMPLE_VISUALIZER_H_ */ diff --git a/keyboards/ergodox/keymaps/default/visualizer.c b/keyboards/ergodox/keymaps/default/visualizer.c index 779de00506d..502e53f3d15 100644 --- a/keyboards/ergodox/keymaps/default/visualizer.c +++ b/keyboards/ergodox/keymaps/default/visualizer.c @@ -15,75 +15,14 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . */ -// Currently we are assuming that both the backlight and LCD are enabled -// But it's entirely possible to write a custom visualizer that use only -// one of them -#ifndef LCD_BACKLIGHT_ENABLE -#error This visualizer needs that LCD backlight is enabled -#endif - -#ifndef LCD_ENABLE -#error This visualizer needs that LCD is enabled -#endif - -#include "visualizer.h" -#include "visualizer_keyframes.h" -#include "lcd_keyframes.h" -#include "lcd_backlight_keyframes.h" -#include "system/serial_link.h" -#include "led.h" -#include "animations.h" - -static const uint32_t logo_background_color = LCD_COLOR(0x00, 0x00, 0xFF); -static const uint32_t initial_color = LCD_COLOR(0, 0, 0); - -typedef enum { - LCD_STATE_INITIAL, - LCD_STATE_LAYER_BITMAP, - LCD_STATE_BITMAP_AND_LEDS, -} lcd_state_t; - -static lcd_state_t lcd_state = LCD_STATE_INITIAL; - -// Feel free to modify the animations below, or even add new ones if needed - -static keyframe_animation_t lcd_layer_display = { - .num_frames = 1, - .loop = false, - .frame_lengths = {gfxMillisecondsToTicks(0)}, - .frame_functions = {lcd_keyframe_display_layer_and_led_states} -}; - -// The color animation animates the LCD color when you change layers -static keyframe_animation_t color_animation = { - .num_frames = 2, - .loop = false, - // Note that there's a 200 ms no-operation frame, - // this prevents the color from changing when activating the layer - // momentarily - .frame_lengths = {gfxMillisecondsToTicks(200), gfxMillisecondsToTicks(500)}, - .frame_functions = {keyframe_no_operation, backlight_keyframe_animate_color}, -}; - -void initialize_user_visualizer(visualizer_state_t* state) { - // The brightness will be dynamically adjustable in the future - // But for now, change it here. - lcd_backlight_brightness(130); - state->current_lcd_color = initial_color; - state->target_lcd_color = logo_background_color; - lcd_state = LCD_STATE_INITIAL; - start_keyframe_animation(&default_startup_animation); -} - -void update_user_visualizer_state(visualizer_state_t* state, visualizer_keyboard_status_t* prev_status) { - // Add more tests, change the colors and layer texts here - // Usually you want to check the high bits (higher layers first) - // because that's the order layers are processed for keypresses - // You can for check for example: - // state->status.layer - // state->status.default_layer - // state->status.leds (see led.h for available statuses) +#include "simple_visualizer.h" +// This function should be implemented by the keymap visualizer +// Don't change anything else than state->target_lcd_color and state->layer_text as that's the only thing +// that the simple_visualizer assumes that you are updating +// Also make sure that the buffer passed to state->layer_text remains valid until the previous animation is +// stopped. This can be done by either double buffering it or by using constant strings +static void get_visualizer_layer_and_color(visualizer_state_t* state) { uint8_t saturation = 60; if (state->status.leds & (1u << USB_LED_CAPS_LOCK)) { saturation = 255; @@ -100,31 +39,4 @@ void update_user_visualizer_state(visualizer_state_t* state, visualizer_keyboard state->target_lcd_color = LCD_COLOR(84, saturation, 0xFF); state->layer_text = "Default"; } - - if (lcd_state == LCD_STATE_INITIAL || - state->status.layer != prev_status->layer || - state->status.default_layer != prev_status->default_layer || - state->status.leds != prev_status->leds) { - start_keyframe_animation(&color_animation); - start_keyframe_animation(&lcd_layer_display); - } - - // You can also stop existing animations, and start your custom ones here - // remember that you should normally have only one animation for the LCD - // and one for the background. But you can also combine them if you want. -} - -void user_visualizer_suspend(visualizer_state_t* state) { - state->layer_text = "Suspending..."; - uint8_t hue = LCD_HUE(state->current_lcd_color); - uint8_t sat = LCD_SAT(state->current_lcd_color); - state->target_lcd_color = LCD_COLOR(hue, sat, 0); - start_keyframe_animation(&default_suspend_animation); -} - -void user_visualizer_resume(visualizer_state_t* state) { - state->current_lcd_color = initial_color; - state->target_lcd_color = logo_background_color; - lcd_state = LCD_STATE_INITIAL; - start_keyframe_animation(&default_startup_animation); } From dc96fa24e488ebb899d38c8360916b27142f56eb Mon Sep 17 00:00:00 2001 From: Joe DeVivo Date: Mon, 10 Apr 2017 17:19:27 -0700 Subject: [PATCH 123/190] mimic atreus firmware defaults --- keyboards/atreus/keymaps/default/keymap.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/keyboards/atreus/keymaps/default/keymap.c b/keyboards/atreus/keymaps/default/keymap.c index ce92e89c9c2..15ebad14d49 100644 --- a/keyboards/atreus/keymaps/default/keymap.c +++ b/keyboards/atreus/keymaps/default/keymap.c @@ -39,8 +39,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_LW] = { /* [> LOWER <] */ {KC_INS, KC_HOME, KC_UP, KC_END, KC_PGUP, KC_TRNS, KC_UP, KC_F7, KC_F8, KC_F9, KC_F10}, {KC_DELT, KC_LEFT, KC_DOWN, KC_RGHT, KC_DOWN, KC_TRNS, KC_DOWN, KC_F4, KC_F5, KC_F6, KC_F11}, - {KC_TRNS, KC_VOLU, KC_TRNS, KC_TRNS, RESET, KC_LCTL, KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F12}, - {KC_TRNS, KC_VOLD, KC_LGUI, KC_LSFT, KC_BSPC, KC_LALT, KC_SPC, DF(_QW), KC_PSCR, KC_SLCK, KC_PAUS} + {KC_NO, KC_VOLU, KC_NO, KC_NO, RESET, KC_LCTL, KC_NO, KC_F1, KC_F2, KC_F3, KC_F12}, + {KC_NO, KC_VOLD, KC_LGUI, KC_LSFT, KC_BSPC, KC_LALT, KC_SPC, TO(_QW), KC_PSCR, KC_SLCK, KC_PAUS} }}; const uint16_t PROGMEM fn_actions[] = { From 1d5567a3a9ae1ca45bd5ff09f21edb7d1388afc3 Mon Sep 17 00:00:00 2001 From: Fred Sundvik Date: Wed, 12 Apr 2017 09:52:40 +0300 Subject: [PATCH 124/190] Fix code formatting in build_keyboard.mk --- build_keyboard.mk | 165 +++++++++++++++++++++++----------------------- 1 file changed, 83 insertions(+), 82 deletions(-) diff --git a/build_keyboard.mk b/build_keyboard.mk index 79d2b6b0f07..9da8277db94 100644 --- a/build_keyboard.mk +++ b/build_keyboard.mk @@ -7,11 +7,11 @@ endif include common.mk ifneq ($(SUBPROJECT),) - TARGET ?= $(KEYBOARD)_$(SUBPROJECT)_$(KEYMAP) - KEYBOARD_OUTPUT := $(BUILD_DIR)/obj_$(KEYBOARD)_$(SUBPROJECT) + TARGET ?= $(KEYBOARD)_$(SUBPROJECT)_$(KEYMAP) + KEYBOARD_OUTPUT := $(BUILD_DIR)/obj_$(KEYBOARD)_$(SUBPROJECT) else - TARGET ?= $(KEYBOARD)_$(KEYMAP) - KEYBOARD_OUTPUT := $(BUILD_DIR)/obj_$(KEYBOARD) + TARGET ?= $(KEYBOARD)_$(KEYMAP) + KEYBOARD_OUTPUT := $(BUILD_DIR)/obj_$(KEYBOARD) endif # Force expansion @@ -20,15 +20,15 @@ TARGET := $(TARGET) MASTER ?= left ifdef master - MASTER = $(master) + MASTER = $(master) endif ifeq ($(MASTER),right) - OPT_DEFS += -DMASTER_IS_ON_RIGHT + OPT_DEFS += -DMASTER_IS_ON_RIGHT else - ifneq ($(MASTER),left) + ifneq ($(MASTER),left) $(error MASTER does not have a valid value(left/right)) - endif + endif endif @@ -56,31 +56,31 @@ endif # We can assume a ChibiOS target When MCU_FAMILY is defined, since it's not used for LUFA ifdef MCU_FAMILY - PLATFORM=CHIBIOS + PLATFORM=CHIBIOS else - PLATFORM=AVR + PLATFORM=AVR endif ifeq ($(PLATFORM),CHIBIOS) - include $(TMK_PATH)/protocol/chibios.mk - include $(TMK_PATH)/chibios.mk - OPT_OS = chibios - ifneq ("$(wildcard $(SUBPROJECT_PATH)/bootloader_defs.h)","") - OPT_DEFS += -include $(SUBPROJECT_PATH)/bootloader_defs.h - else ifneq ("$(wildcard $(SUBPROJECT_PATH)/boards/$(BOARD)/bootloader_defs.h)","") - OPT_DEFS += -include $(SUBPROJECT_PATH)/boards/$(BOARD)/bootloader_defs.h - else ifneq ("$(wildcard $(KEYBOARD_PATH)/bootloader_defs.h)","") - OPT_DEFS += -include $(KEYBOARD_PATH)/bootloader_defs.h - else ifneq ("$(wildcard $(KEYBOARD_PATH)/boards/$(BOARD)/bootloader_defs.h)","") - OPT_DEFS += -include $(KEYBOARD_PATH)/boards/$(BOARD)/bootloader_defs.h - endif + include $(TMK_PATH)/protocol/chibios.mk + include $(TMK_PATH)/chibios.mk + OPT_OS = chibios + ifneq ("$(wildcard $(SUBPROJECT_PATH)/bootloader_defs.h)","") + OPT_DEFS += -include $(SUBPROJECT_PATH)/bootloader_defs.h + else ifneq ("$(wildcard $(SUBPROJECT_PATH)/boards/$(BOARD)/bootloader_defs.h)","") + OPT_DEFS += -include $(SUBPROJECT_PATH)/boards/$(BOARD)/bootloader_defs.h + else ifneq ("$(wildcard $(KEYBOARD_PATH)/bootloader_defs.h)","") + OPT_DEFS += -include $(KEYBOARD_PATH)/bootloader_defs.h + else ifneq ("$(wildcard $(KEYBOARD_PATH)/boards/$(BOARD)/bootloader_defs.h)","") + OPT_DEFS += -include $(KEYBOARD_PATH)/boards/$(BOARD)/bootloader_defs.h + endif endif CONFIG_H = $(KEYBOARD_PATH)/config.h ifneq ($(SUBPROJECT),) - ifneq ("$(wildcard $(SUBPROJECT_C))","") - CONFIG_H = $(SUBPROJECT_PATH)/config.h - endif + ifneq ("$(wildcard $(SUBPROJECT_C))","") + CONFIG_H = $(SUBPROJECT_PATH)/config.h + endif endif # Save the defines and includes here, so we don't include any keymap specific ones @@ -112,30 +112,30 @@ KEYMAP_OUTPUT := $(BUILD_DIR)/obj_$(TARGET) ifneq ("$(wildcard $(KEYMAP_PATH)/config.h)","") - CONFIG_H = $(KEYMAP_PATH)/config.h + CONFIG_H = $(KEYMAP_PATH)/config.h endif # # project specific files SRC += $(KEYBOARD_C) \ - $(KEYMAP_C) \ - $(QUANTUM_DIR)/quantum.c \ - $(QUANTUM_DIR)/keymap_common.c \ - $(QUANTUM_DIR)/keycode_config.c \ - $(QUANTUM_DIR)/process_keycode/process_leader.c + $(KEYMAP_C) \ + $(QUANTUM_DIR)/quantum.c \ + $(QUANTUM_DIR)/keymap_common.c \ + $(QUANTUM_DIR)/keycode_config.c \ + $(QUANTUM_DIR)/process_keycode/process_leader.c ifneq ($(SUBPROJECT),) - SRC += $(SUBPROJECT_C) + SRC += $(SUBPROJECT_C) endif ifndef CUSTOM_MATRIX - SRC += $(QUANTUM_DIR)/matrix.c + SRC += $(QUANTUM_DIR)/matrix.c endif ifeq ($(strip $(API_SYSEX_ENABLE)), yes) - OPT_DEFS += -DAPI_SYSEX_ENABLE - SRC += $(QUANTUM_DIR)/api/api_sysex.c - OPT_DEFS += -DAPI_ENABLE - SRC += $(QUANTUM_DIR)/api.c + OPT_DEFS += -DAPI_SYSEX_ENABLE + SRC += $(QUANTUM_DIR)/api/api_sysex.c + OPT_DEFS += -DAPI_ENABLE + SRC += $(QUANTUM_DIR)/api.c MIDI_ENABLE=yes endif @@ -144,25 +144,25 @@ MUSIC_ENABLE := 0 ifeq ($(strip $(AUDIO_ENABLE)), yes) OPT_DEFS += -DAUDIO_ENABLE MUSIC_ENABLE := 1 - SRC += $(QUANTUM_DIR)/process_keycode/process_audio.c - SRC += $(QUANTUM_DIR)/audio/audio.c - SRC += $(QUANTUM_DIR)/audio/voices.c - SRC += $(QUANTUM_DIR)/audio/luts.c + SRC += $(QUANTUM_DIR)/process_keycode/process_audio.c + SRC += $(QUANTUM_DIR)/audio/audio.c + SRC += $(QUANTUM_DIR)/audio/voices.c + SRC += $(QUANTUM_DIR)/audio/luts.c endif ifeq ($(strip $(MIDI_ENABLE)), yes) OPT_DEFS += -DMIDI_ENABLE - MUSIC_ENABLE := 1 - SRC += $(QUANTUM_DIR)/process_keycode/process_midi.c + MUSIC_ENABLE := 1 + SRC += $(QUANTUM_DIR)/process_keycode/process_midi.c endif ifeq ($(MUSIC_ENABLE), 1) - SRC += $(QUANTUM_DIR)/process_keycode/process_music.c + SRC += $(QUANTUM_DIR)/process_keycode/process_music.c endif ifeq ($(strip $(COMBO_ENABLE)), yes) OPT_DEFS += -DCOMBO_ENABLE - SRC += $(QUANTUM_DIR)/process_keycode/process_combo.c + SRC += $(QUANTUM_DIR)/process_keycode/process_combo.c endif ifeq ($(strip $(VIRTSER_ENABLE)), yes) @@ -171,79 +171,80 @@ endif ifeq ($(strip $(FAUXCLICKY_ENABLE)), yes) OPT_DEFS += -DFAUXCLICKY_ENABLE - SRC += $(QUANTUM_DIR)/fauxclicky.c + SRC += $(QUANTUM_DIR)/fauxclicky.c endif ifeq ($(strip $(UCIS_ENABLE)), yes) - OPT_DEFS += -DUCIS_ENABLE - SRC += $(QUANTUM_DIR)/process_keycode/process_unicode_common.c - SRC += $(QUANTUM_DIR)/process_keycode/process_ucis.c + OPT_DEFS += -DUCIS_ENABLE + SRC += $(QUANTUM_DIR)/process_keycode/process_unicode_common.c + SRC += $(QUANTUM_DIR)/process_keycode/process_ucis.c endif ifeq ($(strip $(UNICODEMAP_ENABLE)), yes) - OPT_DEFS += -DUNICODEMAP_ENABLE - SRC += $(QUANTUM_DIR)/process_keycode/process_unicode_common.c - SRC += $(QUANTUM_DIR)/process_keycode/process_unicodemap.c + OPT_DEFS += -DUNICODEMAP_ENABLE + SRC += $(QUANTUM_DIR)/process_keycode/process_unicode_common.c + SRC += $(QUANTUM_DIR)/process_keycode/process_unicodemap.c endif ifeq ($(strip $(UNICODE_ENABLE)), yes) OPT_DEFS += -DUNICODE_ENABLE - SRC += $(QUANTUM_DIR)/process_keycode/process_unicode_common.c - SRC += $(QUANTUM_DIR)/process_keycode/process_unicode.c + SRC += $(QUANTUM_DIR)/process_keycode/process_unicode_common.c + SRC += $(QUANTUM_DIR)/process_keycode/process_unicode.c endif ifeq ($(strip $(RGBLIGHT_ENABLE)), yes) - OPT_DEFS += -DRGBLIGHT_ENABLE - SRC += $(QUANTUM_DIR)/light_ws2812.c - SRC += $(QUANTUM_DIR)/rgblight.c + OPT_DEFS += -DRGBLIGHT_ENABLE + SRC += $(QUANTUM_DIR)/light_ws2812.c + SRC += $(QUANTUM_DIR)/rgblight.c CIE1931_CURVE = yes LED_BREATHING_TABLE = yes endif ifeq ($(strip $(TAP_DANCE_ENABLE)), yes) - OPT_DEFS += -DTAP_DANCE_ENABLE - SRC += $(QUANTUM_DIR)/process_keycode/process_tap_dance.c + OPT_DEFS += -DTAP_DANCE_ENABLE + SRC += $(QUANTUM_DIR)/process_keycode/process_tap_dance.c endif ifeq ($(strip $(PRINTING_ENABLE)), yes) - OPT_DEFS += -DPRINTING_ENABLE - SRC += $(QUANTUM_DIR)/process_keycode/process_printer.c - SRC += $(TMK_DIR)/protocol/serial_uart.c + OPT_DEFS += -DPRINTING_ENABLE + SRC += $(QUANTUM_DIR)/process_keycode/process_printer.c + SRC += $(TMK_DIR)/protocol/serial_uart.c endif ifeq ($(strip $(SERIAL_LINK_ENABLE)), yes) - SRC += $(patsubst $(QUANTUM_PATH)/%,%,$(SERIAL_SRC)) - OPT_DEFS += $(SERIAL_DEFS) - VAPTH += $(SERIAL_PATH) + SRC += $(patsubst $(QUANTUM_PATH)/%,%,$(SERIAL_SRC)) + OPT_DEFS += $(SERIAL_DEFS) + VAPTH += $(SERIAL_PATH) endif ifneq ($(strip $(VARIABLE_TRACE)),) - SRC += $(QUANTUM_DIR)/variable_trace.c - OPT_DEFS += -DNUM_TRACED_VARIABLES=$(strip $(VARIABLE_TRACE)) + SRC += $(QUANTUM_DIR)/variable_trace.c + OPT_DEFS += -DNUM_TRACED_VARIABLES=$(strip $(VARIABLE_TRACE)) ifneq ($(strip $(MAX_VARIABLE_TRACE_SIZE)),) - OPT_DEFS += -DMAX_VARIABLE_TRACE_SIZE=$(strip $(MAX_VARIABLE_TRACE_SIZE)) + OPT_DEFS += -DMAX_VARIABLE_TRACE_SIZE=$(strip $(MAX_VARIABLE_TRACE_SIZE)) endif endif ifeq ($(strip $(LCD_ENABLE)), yes) -CIE1931_CURVE = yes + CIE1931_CURVE = yes endif ifeq ($(strip $(LED_ENABLE)), yes) -CIE1931_CURVE = yes + CIE1931_CURVE = yes endif ifeq ($(strip $(CIE1931_CURVE)), yes) - OPT_DEFS += -DUSE_CIE1931_CURVE - LED_TABLES = yes + OPT_DEFS += -DUSE_CIE1931_CURVE + LED_TABLES = yes endif + ifeq ($(strip $(LED_BREATHING_TABLE)), yes) - OPT_DEFS += -DUSE_LED_BREATHING_TABLE - LED_TABLES = yes + OPT_DEFS += -DUSE_LED_BREATHING_TABLE + LED_TABLES = yes endif ifeq ($(strip $(LED_TABLES)), yes) - SRC += $(QUANTUM_DIR)/led_tables.c + SRC += $(QUANTUM_DIR)/led_tables.c endif # Optimize size but this may cause error "relocation truncated to fit" @@ -252,7 +253,7 @@ endif # Search Path VPATH += $(KEYMAP_PATH) ifneq ($(SUBPROJECT),) - VPATH += $(SUBPROJECT_PATH) + VPATH += $(SUBPROJECT_PATH) endif VPATH += $(KEYBOARD_PATH) VPATH += $(COMMON_VPATH) @@ -266,17 +267,17 @@ EXTRALDFLAGS += $(TMK_COMMON_LDFLAGS) ifeq ($(PLATFORM),AVR) ifeq ($(strip $(PROTOCOL)), VUSB) - include $(TMK_PATH)/protocol/vusb.mk + include $(TMK_PATH)/protocol/vusb.mk else - include $(TMK_PATH)/protocol/lufa.mk + include $(TMK_PATH)/protocol/lufa.mk endif - include $(TMK_PATH)/avr.mk + include $(TMK_PATH)/avr.mk endif ifeq ($(strip $(VISUALIZER_ENABLE)), yes) - VISUALIZER_DIR = $(QUANTUM_DIR)/visualizer - VISUALIZER_PATH = $(QUANTUM_PATH)/visualizer - include $(VISUALIZER_PATH)/visualizer.mk + VISUALIZER_DIR = $(QUANTUM_DIR)/visualizer + VISUALIZER_PATH = $(QUANTUM_PATH)/visualizer + include $(VISUALIZER_PATH)/visualizer.mk endif OUTPUTS := $(KEYMAP_OUTPUT) $(KEYBOARD_OUTPUT) From 446b34edecc644e03073b92ff6886f367d3bf29f Mon Sep 17 00:00:00 2001 From: kamisamamizu Date: Wed, 12 Apr 2017 12:18:38 +0200 Subject: [PATCH 125/190] Fixed position of BSLS and BSPC They were in the incorrect positions before. --- keyboards/xd60/keymaps/default/keymap.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/keyboards/xd60/keymaps/default/keymap.c b/keyboards/xd60/keymaps/default/keymap.c index 11be9afca23..784088d5309 100644 --- a/keyboards/xd60/keymaps/default/keymap.c +++ b/keyboards/xd60/keymaps/default/keymap.c @@ -5,8 +5,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // 0: Base Layer KEYMAP( - KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_GRV, \ - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC, \ + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_GRV, \ + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, \ KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NO, KC_ENT, \ KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_DEL, \ KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RGUI, F(0), KC_LEFT, KC_DOWN, KC_RIGHT), From 224fc8a20fc78927ed90326ca6c07370d33d00d5 Mon Sep 17 00:00:00 2001 From: Fred Sundvik Date: Sun, 9 Apr 2017 20:04:12 +0300 Subject: [PATCH 126/190] Add makefile option to break on errors --- Makefile | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/Makefile b/Makefile index 9d9c9629d54..297de0cafbd 100644 --- a/Makefile +++ b/Makefile @@ -21,6 +21,8 @@ override SILENT := false ON_ERROR := error_occurred=1 +BREAK_ON_ERRORS = no + STARTING_MAKEFILE := $(firstword $(MAKEFILE_LIST)) ROOT_MAKEFILE := $(lastword $(MAKEFILE_LIST)) ROOT_DIR := $(dir $(ROOT_MAKEFILE)) @@ -462,20 +464,25 @@ endef include $(ROOT_DIR)/message.mk +ifeq ($(strip $(BREAK_ON_ERRORS)), yes) +HANDLE_ERROR = exit 1 +else +HANDLE_ERROR = echo $$error_occurred > $(ERROR_FILE) +endif + # The empty line is important here, as it will force a new shell to be created for each command # Otherwise the command line will become too long with a lot of keyboards and keymaps define RUN_COMMAND +error_occurred=0;\ $(COMMAND_$(SILENT_MODE)_$(COMMAND))\ -if [ $$error_occurred -gt 0 ]; then echo $$error_occurred > $(ERROR_FILE); fi; +if [ $$error_occurred -gt 0 ]; then $(HANDLE_ERROR); fi; endef define RUN_TEST +error_occurred=0;\ $($(TEST)_COMMAND)\ -if [ $$error_occurred -gt 0 ]; then echo $$error_occurred > $(ERROR_FILE); fi; - +if [ $$error_occurred -gt 0 ]; then $(HANDLE_ERROR); fi; endef # Allow specifying just the subproject, in the keyboard directory, which will compile all keymaps From f39e9928eb7f0c77c366721ff489bd5276dad7e2 Mon Sep 17 00:00:00 2001 From: Fred Sundvik Date: Sun, 9 Apr 2017 20:04:41 +0300 Subject: [PATCH 127/190] Enable warnings as errors --- tmk_core/rules.mk | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tmk_core/rules.mk b/tmk_core/rules.mk index e4c8aecb2cf..25993354f2e 100644 --- a/tmk_core/rules.mk +++ b/tmk_core/rules.mk @@ -92,6 +92,7 @@ endif endif CFLAGS += -Wall CFLAGS += -Wstrict-prototypes +CFLAGS += -Werror #CFLAGS += -mshort-calls #CFLAGS += -fno-unit-at-a-time #CFLAGS += -Wundef @@ -115,6 +116,7 @@ CPPFLAGS += -O$(OPT) CPPFLAGS += -w CPPFLAGS += -Wall CPPFLAGS += -Wundef +CPPFLAGS += -Werror #CPPFLAGS += -mshort-calls #CPPFLAGS += -fno-unit-at-a-time #CPPFLAGS += -Wstrict-prototypes From a4ef86034c328ed7db9b9f0e2e49c5019d5aabc8 Mon Sep 17 00:00:00 2001 From: Fred Sundvik Date: Sun, 9 Apr 2017 20:08:46 +0300 Subject: [PATCH 128/190] Fix undefined eeprom warnings in unicode processing --- quantum/process_keycode/process_unicode.c | 1 + quantum/process_keycode/process_unicode_common.c | 1 + 2 files changed, 2 insertions(+) diff --git a/quantum/process_keycode/process_unicode.c b/quantum/process_keycode/process_unicode.c index 678a15234d9..fd008eca127 100644 --- a/quantum/process_keycode/process_unicode.c +++ b/quantum/process_keycode/process_unicode.c @@ -15,6 +15,7 @@ */ #include "process_unicode.h" #include "action_util.h" +#include "eeprom.h" static uint8_t first_flag = 0; diff --git a/quantum/process_keycode/process_unicode_common.c b/quantum/process_keycode/process_unicode_common.c index 1dbdec3e714..84b5d673dd4 100644 --- a/quantum/process_keycode/process_unicode_common.c +++ b/quantum/process_keycode/process_unicode_common.c @@ -15,6 +15,7 @@ */ #include "process_unicode_common.h" +#include "eeprom.h" static uint8_t input_mode; uint8_t mods; From 653580477663f527f322650f6d39824cdf6cddc0 Mon Sep 17 00:00:00 2001 From: Fred Sundvik Date: Sun, 9 Apr 2017 21:00:42 +0300 Subject: [PATCH 129/190] Disable array bounds warning in keymap_function_id_to_action --- quantum/keymap_common.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/quantum/keymap_common.c b/quantum/keymap_common.c index 6cf4f031fff..9dafc8b5165 100644 --- a/quantum/keymap_common.c +++ b/quantum/keymap_common.c @@ -179,5 +179,12 @@ uint16_t keymap_key_to_keycode(uint8_t layer, keypos_t key) __attribute__ ((weak)) uint16_t keymap_function_id_to_action( uint16_t function_id ) { + // The compiler sees the empty (weak) fn_actions and generates a warning + // This function should not be called in that case, so the warning is too strict + // If this function is called however, the keymap should have overridden fn_actions, and then the compile + // is comparing against the wrong array + #pragma GCC diagnostic push + #pragma GCC diagnostic ignored "-Warray-bounds" return pgm_read_word(&fn_actions[function_id]); + #pragma GCC diagnostic pop } From db6d7207b5f9026f8d265b150cf45778545095ea Mon Sep 17 00:00:00 2001 From: Fred Sundvik Date: Sun, 9 Apr 2017 21:02:45 +0300 Subject: [PATCH 130/190] Fix overflow warnings in dvorak_programmer --- keyboards/ergodox/keymaps/dvorak_programmer/keymap.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/keyboards/ergodox/keymaps/dvorak_programmer/keymap.c b/keyboards/ergodox/keymaps/dvorak_programmer/keymap.c index ae4fd444d15..d299d02c34a 100644 --- a/keyboards/ergodox/keymaps/dvorak_programmer/keymap.c +++ b/keyboards/ergodox/keymaps/dvorak_programmer/keymap.c @@ -311,12 +311,12 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) break; case SWITCH_NDS: if (record->event.pressed) { - return MACRO( D(LSFT), T(F11), U(LSFT), W(500), D(LALT), T(TAB), U(LALT), END); + return MACRO( D(LSFT), T(F11), U(LSFT), W(255), D(LALT), T(TAB), U(LALT), END); } break; case OPEN_CLOSE_PAREN: if (record->event.pressed) { - return MACRO( D(LSFT), T(LPRN), T(RPRN), U(LSFT), T(LEFT), END); + return MACRO( D(LSFT), T(9), T(0), U(LSFT), T(LEFT), END); } break; case OPEN_CLOSE_BRACKET: @@ -326,7 +326,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) break; case OPEN_CLOSE_CURLY: if (record->event.pressed) { - return MACRO( D(LSFT), T(LCBR), T(RCBR), U(LSFT), T(LEFT), END); + return MACRO( D(LSFT), T(LBRC), T(RBRC), U(LSFT), T(LEFT), END); } break; case OPEN_CLOSE_SINGLE_QUOTE: From 12159e782cc6233b82760bf21631be730d42087b Mon Sep 17 00:00:00 2001 From: Fred Sundvik Date: Sun, 9 Apr 2017 21:05:31 +0300 Subject: [PATCH 131/190] Fix overflow warning in ordinary keymap --- keyboards/ergodox/keymaps/ordinary/keymap.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/keyboards/ergodox/keymaps/ordinary/keymap.c b/keyboards/ergodox/keymaps/ordinary/keymap.c index 1dfdf7e6241..ac84df57014 100644 --- a/keyboards/ergodox/keymaps/ordinary/keymap.c +++ b/keyboards/ergodox/keymaps/ordinary/keymap.c @@ -392,7 +392,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) case NotEq: if (record->event.pressed) { - return MACRO( I(10), D(LSFT), T(EXLM), U(LSFT), T(EQL), END ); // != + return MACRO( I(10), D(LSFT), T(1), U(LSFT), T(EQL), END ); // != } break; From f7b59427faeaef210227017c8a173f1324fbc795 Mon Sep 17 00:00:00 2001 From: Fred Sundvik Date: Sun, 9 Apr 2017 21:17:32 +0300 Subject: [PATCH 132/190] Fix name collision between ChibiOS and keymap_german --- quantum/keymap_extras/keymap_german_ch.h | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/quantum/keymap_extras/keymap_german_ch.h b/quantum/keymap_extras/keymap_german_ch.h index 8332e00af3b..67350d66022 100644 --- a/quantum/keymap_extras/keymap_german_ch.h +++ b/quantum/keymap_extras/keymap_german_ch.h @@ -33,6 +33,10 @@ #define CH_E KC_E #define CH_F KC_F #define CH_G KC_G +#ifdef CH_H +// The ChibiOS ch.h file defines this... +#undef CH_H +#endif #define CH_H KC_H #define CH_I KC_I #define CH_J KC_J From 2d1528c69f13258de9193d9099d196a60f3892d4 Mon Sep 17 00:00:00 2001 From: Fred Sundvik Date: Sun, 9 Apr 2017 22:02:37 +0300 Subject: [PATCH 133/190] Fix keymap yoruian on Infinity --- keyboards/ergodox/keymaps/yoruian/keymap.c | 4 +-- keyboards/ergodox/keymaps/yoruian/yoruian.h | 31 +++++++-------------- 2 files changed, 12 insertions(+), 23 deletions(-) diff --git a/keyboards/ergodox/keymaps/yoruian/keymap.c b/keyboards/ergodox/keymaps/yoruian/keymap.c index d3635ddf3f6..41dfda3c6df 100644 --- a/keyboards/ergodox/keymaps/yoruian/keymap.c +++ b/keyboards/ergodox/keymaps/yoruian/keymap.c @@ -17,7 +17,7 @@ #include "yoruian.h" const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[0] = KEYMAP\ +[0] = KEYMAP_YORUIAN\ (9, 7, 5, 3, 1, GRV, MINS, EQL, LBRC, 0, 2, 4, 6, 8, ES, RBRC, Y, O, R, BSLS, P3, P3, J, V, D, F, W, Q, LC, U, I, A, N, SCLN, M, H, T, S, C, RC, @@ -26,7 +26,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { BSPC, RALT, P2, TAB, NO, NO, E, LSFT, NO, NO, ENT, SPC), -[1] = KEYMAP\ +[1] = KEYMAP_YORUIAN\ (TR, TR, TR, TR, TR, TR, TR, TR, TR, F5, F6, F7, F8, F9, TR, TR, TR, TR, TR, TR, TR, TR, TR, F1, F2, F3, F4, FT, TR, TR, TR, TR, TR, TR, PAUS, LEFT, DOWN, UP, RGHT, FE, diff --git a/keyboards/ergodox/keymaps/yoruian/yoruian.h b/keyboards/ergodox/keymaps/yoruian/yoruian.h index 1adcb7fd3fe..b3b13073c57 100644 --- a/keyboards/ergodox/keymaps/yoruian/yoruian.h +++ b/keyboards/ergodox/keymaps/yoruian/yoruian.h @@ -18,9 +18,7 @@ #include "debug.h" #include "action_layer.h" -#undef KEYMAP -#define KEYMAP\ -( \ +#define KEYMAP_YORUIAN( \ /* Spacial positions. */ \ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, \ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, \ @@ -30,24 +28,15 @@ k55, k56, k57, k58, \ k54, k59, \ k53, k52, k51, k5C, k5B, k5A) \ - \ - /* Matrix positions. */ \ - { \ - { KC_##k00, KC_##k10, KC_##k20, KC_##k30, KC_##k40, KC_NO }, \ - { KC_##k01, KC_##k11, KC_##k21, KC_##k31, KC_##k41, KC_##k51 }, \ - { KC_##k02, KC_##k12, KC_##k22, KC_##k32, KC_##k42, KC_##k52 }, \ - { KC_##k03, KC_##k13, KC_##k23, KC_##k33, KC_##k43, KC_##k53 }, \ - { KC_##k04, KC_##k14, KC_##k24, KC_##k34, KC_##k44, KC_##k54 }, \ - { KC_##k05, KC_##k15, KC_##k25, KC_##k35, KC_NO, KC_##k55 }, \ - { KC_##k06, KC_##k16, KC_NO, KC_##k36, KC_NO, KC_##k56 }, \ - { KC_##k07, KC_##k17, KC_NO, KC_##k37, KC_NO, KC_##k57 }, \ - { KC_##k08, KC_##k18, KC_##k28, KC_##k38, KC_NO, KC_##k58 }, \ - { KC_##k09, KC_##k19, KC_##k29, KC_##k39, KC_##k49, KC_##k59 }, \ - { KC_##k0A, KC_##k1A, KC_##k2A, KC_##k3A, KC_##k4A, KC_##k5A }, \ - { KC_##k0B, KC_##k1B, KC_##k2B, KC_##k3B, KC_##k4B, KC_##k5B }, \ - { KC_##k0C, KC_##k1C, KC_##k2C, KC_##k3C, KC_##k4C, KC_##k5C }, \ - { KC_##k0D, KC_##k1D, KC_##k2D, KC_##k3D, KC_##k4D, KC_NO } \ - } + KEYMAP( \ + KC_##k00, KC_##k01, KC_##k02, KC_##k03, KC_##k04, KC_##k05, KC_##k06, KC_##k07, KC_##k08, KC_##k09, KC_##k0A, KC_##k0B, KC_##k0C, KC_##k0D, \ + KC_##k10, KC_##k11, KC_##k12, KC_##k13, KC_##k14, KC_##k15, KC_##k16, KC_##k17, KC_##k18, KC_##k19, KC_##k1A, KC_##k1B, KC_##k1C, KC_##k1D, \ + KC_##k20, KC_##k21, KC_##k22, KC_##k23, KC_##k24, KC_##k25, KC_##k28, KC_##k29, KC_##k2A, KC_##k2B, KC_##k2C, KC_##k2D, \ + KC_##k30, KC_##k31, KC_##k32, KC_##k33, KC_##k34, KC_##k35, KC_##k36, KC_##k37, KC_##k38, KC_##k39, KC_##k3A, KC_##k3B, KC_##k3C, KC_##k3D, \ + KC_##k40, KC_##k41, KC_##k42, KC_##k43, KC_##k44, KC_##k49, KC_##k4A, KC_##k4B, KC_##k4C, KC_##k4D, \ + KC_##k55, KC_##k56, KC_##k57, KC_##k58, \ + KC_##k54, KC_##k59, \ + KC_##k53, KC_##k52, KC_##k51, KC_##k5C, KC_##k5B, KC_##k5A) #define KC_ES KC_ESC #define KC_LC KC_LCTL From e950d4e12fb92550b34ab7c2b48d45a11bf88026 Mon Sep 17 00:00:00 2001 From: Fred Sundvik Date: Sun, 9 Apr 2017 22:19:52 +0300 Subject: [PATCH 134/190] Fix frosty_flake warning when print is disabled --- keyboards/frosty_flake/matrix.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/keyboards/frosty_flake/matrix.c b/keyboards/frosty_flake/matrix.c index 05dffdb643b..cde7f63b95b 100644 --- a/keyboards/frosty_flake/matrix.c +++ b/keyboards/frosty_flake/matrix.c @@ -115,6 +115,7 @@ inline matrix_row_t matrix_get_row(uint8_t row) { } void matrix_print(void) { +#ifndef NO_PRINT print("\nr\\c ABCDEFGHIJKLMNOPQR\n"); for (uint8_t row = 0; row < MATRIX_ROWS; row++) { matrix_row_t matrix_row = matrix_get_row(row); @@ -125,6 +126,7 @@ void matrix_print(void) { } print("\n"); } +#endif } uint8_t matrix_key_count(void) { @@ -132,4 +134,4 @@ uint8_t matrix_key_count(void) { for (uint8_t row = 0; row < MATRIX_ROWS; row++) count += bitpop32(matrix[row]); return count; -} \ No newline at end of file +} From 738b8d2b9c458839d23f584843b251b1c8f29880 Mon Sep 17 00:00:00 2001 From: Fred Sundvik Date: Sun, 9 Apr 2017 22:48:35 +0300 Subject: [PATCH 135/190] Add SKIP_VERSION option to speed up compilation --- Makefile | 8 ++++++++ .../MS_sculpt_mobile.c} | 0 .../MS_sculpt_mobile.h} | 0 .../{MS-sculpt-mobile => MS_sculpt_mobile}/Makefile | 0 .../{MS-sculpt-mobile => MS_sculpt_mobile}/babblePaste.c | 0 .../{MS-sculpt-mobile => MS_sculpt_mobile}/babblePaste.h | 0 .../babblePaste.txt | 0 .../{MS-sculpt-mobile => MS_sculpt_mobile}/config.h | 0 .../keymaps/default/Makefile | 0 .../keymaps/default/config.h | 0 .../keymaps/default/keymap.c | 0 .../keymaps/default/readme.md | 0 .../keymaps/milestogo/Makefile | 0 .../keymaps/milestogo/config.h | 0 .../keymaps/milestogo/keymap.c | 0 .../keymaps/milestogo/readme.md | 0 .../{MS-sculpt-mobile => MS_sculpt_mobile}/readme.md | 0 .../{MS-sculpt-mobile => MS_sculpt_mobile}/rules.mk | 0 18 files changed, 8 insertions(+) rename keyboards/handwired/{MS-sculpt-mobile/MS-sculpt-mobile.c => MS_sculpt_mobile/MS_sculpt_mobile.c} (100%) rename keyboards/handwired/{MS-sculpt-mobile/MS-sculpt-mobile.h => MS_sculpt_mobile/MS_sculpt_mobile.h} (100%) rename keyboards/handwired/{MS-sculpt-mobile => MS_sculpt_mobile}/Makefile (100%) rename keyboards/handwired/{MS-sculpt-mobile => MS_sculpt_mobile}/babblePaste.c (100%) rename keyboards/handwired/{MS-sculpt-mobile => MS_sculpt_mobile}/babblePaste.h (100%) rename keyboards/handwired/{MS-sculpt-mobile => MS_sculpt_mobile}/babblePaste.txt (100%) rename keyboards/handwired/{MS-sculpt-mobile => MS_sculpt_mobile}/config.h (100%) rename keyboards/handwired/{MS-sculpt-mobile => MS_sculpt_mobile}/keymaps/default/Makefile (100%) rename keyboards/handwired/{MS-sculpt-mobile => MS_sculpt_mobile}/keymaps/default/config.h (100%) rename keyboards/handwired/{MS-sculpt-mobile => MS_sculpt_mobile}/keymaps/default/keymap.c (100%) rename keyboards/handwired/{MS-sculpt-mobile => MS_sculpt_mobile}/keymaps/default/readme.md (100%) rename keyboards/handwired/{MS-sculpt-mobile => MS_sculpt_mobile}/keymaps/milestogo/Makefile (100%) rename keyboards/handwired/{MS-sculpt-mobile => MS_sculpt_mobile}/keymaps/milestogo/config.h (100%) rename keyboards/handwired/{MS-sculpt-mobile => MS_sculpt_mobile}/keymaps/milestogo/keymap.c (100%) rename keyboards/handwired/{MS-sculpt-mobile => MS_sculpt_mobile}/keymaps/milestogo/readme.md (100%) rename keyboards/handwired/{MS-sculpt-mobile => MS_sculpt_mobile}/readme.md (100%) rename keyboards/handwired/{MS-sculpt-mobile => MS_sculpt_mobile}/rules.mk (100%) diff --git a/Makefile b/Makefile index 297de0cafbd..6a93692bf69 100644 --- a/Makefile +++ b/Makefile @@ -534,14 +534,22 @@ test: test-all .PHONY: test-clean test-clean: test-all-clean +ifdef SKIP_VERSION +SKIP_GIT := yes +endif + # Generate the version.h file ifndef SKIP_GIT GIT_VERSION := $(shell git describe --abbrev=6 --dirty --always --tags 2>/dev/null || date +"%Y-%m-%d-%H:%M:%S") else GIT_VERSION := NA endif +ifndef SKIP_VERSION BUILD_DATE := $(shell date +"%Y-%m-%d-%H:%M:%S") $(shell echo '#define QMK_VERSION "$(GIT_VERSION)"' > $(ROOT_DIR)/quantum/version.h) $(shell echo '#define QMK_BUILDDATE "$(BUILD_DATE)"' >> $(ROOT_DIR)/quantum/version.h) +else +BUILD_DATE := NA +endif include $(ROOT_DIR)/testlist.mk diff --git a/keyboards/handwired/MS-sculpt-mobile/MS-sculpt-mobile.c b/keyboards/handwired/MS_sculpt_mobile/MS_sculpt_mobile.c similarity index 100% rename from keyboards/handwired/MS-sculpt-mobile/MS-sculpt-mobile.c rename to keyboards/handwired/MS_sculpt_mobile/MS_sculpt_mobile.c diff --git a/keyboards/handwired/MS-sculpt-mobile/MS-sculpt-mobile.h b/keyboards/handwired/MS_sculpt_mobile/MS_sculpt_mobile.h similarity index 100% rename from keyboards/handwired/MS-sculpt-mobile/MS-sculpt-mobile.h rename to keyboards/handwired/MS_sculpt_mobile/MS_sculpt_mobile.h diff --git a/keyboards/handwired/MS-sculpt-mobile/Makefile b/keyboards/handwired/MS_sculpt_mobile/Makefile similarity index 100% rename from keyboards/handwired/MS-sculpt-mobile/Makefile rename to keyboards/handwired/MS_sculpt_mobile/Makefile diff --git a/keyboards/handwired/MS-sculpt-mobile/babblePaste.c b/keyboards/handwired/MS_sculpt_mobile/babblePaste.c similarity index 100% rename from keyboards/handwired/MS-sculpt-mobile/babblePaste.c rename to keyboards/handwired/MS_sculpt_mobile/babblePaste.c diff --git a/keyboards/handwired/MS-sculpt-mobile/babblePaste.h b/keyboards/handwired/MS_sculpt_mobile/babblePaste.h similarity index 100% rename from keyboards/handwired/MS-sculpt-mobile/babblePaste.h rename to keyboards/handwired/MS_sculpt_mobile/babblePaste.h diff --git a/keyboards/handwired/MS-sculpt-mobile/babblePaste.txt b/keyboards/handwired/MS_sculpt_mobile/babblePaste.txt similarity index 100% rename from keyboards/handwired/MS-sculpt-mobile/babblePaste.txt rename to keyboards/handwired/MS_sculpt_mobile/babblePaste.txt diff --git a/keyboards/handwired/MS-sculpt-mobile/config.h b/keyboards/handwired/MS_sculpt_mobile/config.h similarity index 100% rename from keyboards/handwired/MS-sculpt-mobile/config.h rename to keyboards/handwired/MS_sculpt_mobile/config.h diff --git a/keyboards/handwired/MS-sculpt-mobile/keymaps/default/Makefile b/keyboards/handwired/MS_sculpt_mobile/keymaps/default/Makefile similarity index 100% rename from keyboards/handwired/MS-sculpt-mobile/keymaps/default/Makefile rename to keyboards/handwired/MS_sculpt_mobile/keymaps/default/Makefile diff --git a/keyboards/handwired/MS-sculpt-mobile/keymaps/default/config.h b/keyboards/handwired/MS_sculpt_mobile/keymaps/default/config.h similarity index 100% rename from keyboards/handwired/MS-sculpt-mobile/keymaps/default/config.h rename to keyboards/handwired/MS_sculpt_mobile/keymaps/default/config.h diff --git a/keyboards/handwired/MS-sculpt-mobile/keymaps/default/keymap.c b/keyboards/handwired/MS_sculpt_mobile/keymaps/default/keymap.c similarity index 100% rename from keyboards/handwired/MS-sculpt-mobile/keymaps/default/keymap.c rename to keyboards/handwired/MS_sculpt_mobile/keymaps/default/keymap.c diff --git a/keyboards/handwired/MS-sculpt-mobile/keymaps/default/readme.md b/keyboards/handwired/MS_sculpt_mobile/keymaps/default/readme.md similarity index 100% rename from keyboards/handwired/MS-sculpt-mobile/keymaps/default/readme.md rename to keyboards/handwired/MS_sculpt_mobile/keymaps/default/readme.md diff --git a/keyboards/handwired/MS-sculpt-mobile/keymaps/milestogo/Makefile b/keyboards/handwired/MS_sculpt_mobile/keymaps/milestogo/Makefile similarity index 100% rename from keyboards/handwired/MS-sculpt-mobile/keymaps/milestogo/Makefile rename to keyboards/handwired/MS_sculpt_mobile/keymaps/milestogo/Makefile diff --git a/keyboards/handwired/MS-sculpt-mobile/keymaps/milestogo/config.h b/keyboards/handwired/MS_sculpt_mobile/keymaps/milestogo/config.h similarity index 100% rename from keyboards/handwired/MS-sculpt-mobile/keymaps/milestogo/config.h rename to keyboards/handwired/MS_sculpt_mobile/keymaps/milestogo/config.h diff --git a/keyboards/handwired/MS-sculpt-mobile/keymaps/milestogo/keymap.c b/keyboards/handwired/MS_sculpt_mobile/keymaps/milestogo/keymap.c similarity index 100% rename from keyboards/handwired/MS-sculpt-mobile/keymaps/milestogo/keymap.c rename to keyboards/handwired/MS_sculpt_mobile/keymaps/milestogo/keymap.c diff --git a/keyboards/handwired/MS-sculpt-mobile/keymaps/milestogo/readme.md b/keyboards/handwired/MS_sculpt_mobile/keymaps/milestogo/readme.md similarity index 100% rename from keyboards/handwired/MS-sculpt-mobile/keymaps/milestogo/readme.md rename to keyboards/handwired/MS_sculpt_mobile/keymaps/milestogo/readme.md diff --git a/keyboards/handwired/MS-sculpt-mobile/readme.md b/keyboards/handwired/MS_sculpt_mobile/readme.md similarity index 100% rename from keyboards/handwired/MS-sculpt-mobile/readme.md rename to keyboards/handwired/MS_sculpt_mobile/readme.md diff --git a/keyboards/handwired/MS-sculpt-mobile/rules.mk b/keyboards/handwired/MS_sculpt_mobile/rules.mk similarity index 100% rename from keyboards/handwired/MS-sculpt-mobile/rules.mk rename to keyboards/handwired/MS_sculpt_mobile/rules.mk From bbe8876c8df3d37c7fd2b85bd2ef9a1a60ad5fe1 Mon Sep 17 00:00:00 2001 From: Fred Sundvik Date: Sun, 9 Apr 2017 22:49:07 +0300 Subject: [PATCH 136/190] Rename MS-sculpt-mobile to MS_scuplpt_mobile Subprojects with "-" have problems, since the build system creates a define containing the subproject name, and "-" is illegal in macro names. --- keyboards/handwired/MS_sculpt_mobile/MS_sculpt_mobile.c | 2 +- keyboards/handwired/MS_sculpt_mobile/babblePaste.c | 7 ++++--- keyboards/handwired/MS_sculpt_mobile/babblePaste.h | 2 +- .../handwired/MS_sculpt_mobile/keymaps/default/config.h | 2 +- .../handwired/MS_sculpt_mobile/keymaps/default/keymap.c | 2 +- .../handwired/MS_sculpt_mobile/keymaps/milestogo/config.h | 2 +- .../handwired/MS_sculpt_mobile/keymaps/milestogo/keymap.c | 4 ++-- 7 files changed, 11 insertions(+), 10 deletions(-) diff --git a/keyboards/handwired/MS_sculpt_mobile/MS_sculpt_mobile.c b/keyboards/handwired/MS_sculpt_mobile/MS_sculpt_mobile.c index 4c735a6c29f..64982fb62df 100644 --- a/keyboards/handwired/MS_sculpt_mobile/MS_sculpt_mobile.c +++ b/keyboards/handwired/MS_sculpt_mobile/MS_sculpt_mobile.c @@ -1 +1 @@ -#include "MS-sculpt-mobile.h" +#include "MS_sculpt_mobile.h" diff --git a/keyboards/handwired/MS_sculpt_mobile/babblePaste.c b/keyboards/handwired/MS_sculpt_mobile/babblePaste.c index 3a9b86997d5..22394cc7d2d 100644 --- a/keyboards/handwired/MS_sculpt_mobile/babblePaste.c +++ b/keyboards/handwired/MS_sculpt_mobile/babblePaste.c @@ -7,7 +7,8 @@ Huge thanks to https://en.wikipedia.org/wiki/Table_of_keyboard_shortcuts and https://github.com/qmk/qmk_firmware/blob/master/keyboards/planck/keymaps/jeebak/keymap.c */ -#include "babblePaste.h" +#include "../MS_sculpt_mobile/babblePaste.h" + #include "action_macro.h" #ifdef USE_BABLPASTE @@ -27,7 +28,7 @@ macro_t* switch_babble_mode( uint8_t id) { // And else statements have problems, see https://gcc.gnu.org/onlinedocs/gcc-3.0.1/cpp_3.html#SEC15 #define BABLM(ent, macro...) \ if ( ent == shortcut ) \ - { action_macro_play( MACRO(macro)); return MACRO_NONE; } + { action_macro_play( MACRO(macro)); return MACRO_NONE; } /* this function runs the appropriate babblepaste macro, given @@ -456,4 +457,4 @@ const macro_t *babblePaste (keyrecord_t *record, uint8_t shortcut) { } -#endif \ No newline at end of file +#endif diff --git a/keyboards/handwired/MS_sculpt_mobile/babblePaste.h b/keyboards/handwired/MS_sculpt_mobile/babblePaste.h index 3067c854deb..cedd7d92bac 100644 --- a/keyboards/handwired/MS_sculpt_mobile/babblePaste.h +++ b/keyboards/handwired/MS_sculpt_mobile/babblePaste.h @@ -9,9 +9,9 @@ and jeebak & algernon's keymap */ #ifndef _babblePaste_h_included__ #define _babblePaste_h_included__ +#include "../MS_sculpt_mobile/config.h" #include "action_layer.h" #include "quantum_keycodes.h" -#include "config.h" #ifdef USE_BABLPASTE diff --git a/keyboards/handwired/MS_sculpt_mobile/keymaps/default/config.h b/keyboards/handwired/MS_sculpt_mobile/keymaps/default/config.h index 8893d122e04..4f3a425b7e8 100644 --- a/keyboards/handwired/MS_sculpt_mobile/keymaps/default/config.h +++ b/keyboards/handwired/MS_sculpt_mobile/keymaps/default/config.h @@ -1,7 +1,7 @@ #ifndef CONFIG_USER_H #define CONFIG_USER_H -#include "../../config.h" +#include "../../../MS_sculpt_mobile/config.h" // place overrides here diff --git a/keyboards/handwired/MS_sculpt_mobile/keymaps/default/keymap.c b/keyboards/handwired/MS_sculpt_mobile/keymaps/default/keymap.c index ab09dcdd1ce..a8802c99a41 100644 --- a/keyboards/handwired/MS_sculpt_mobile/keymaps/default/keymap.c +++ b/keyboards/handwired/MS_sculpt_mobile/keymaps/default/keymap.c @@ -1,4 +1,4 @@ -#include "MS-sculpt-mobile.h" +#include "../../MS_sculpt_mobile.h" const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* diff --git a/keyboards/handwired/MS_sculpt_mobile/keymaps/milestogo/config.h b/keyboards/handwired/MS_sculpt_mobile/keymaps/milestogo/config.h index 8cf4202cda2..5c04f647c30 100644 --- a/keyboards/handwired/MS_sculpt_mobile/keymaps/milestogo/config.h +++ b/keyboards/handwired/MS_sculpt_mobile/keymaps/milestogo/config.h @@ -1,7 +1,7 @@ #ifndef CONFIG_USER_H #define CONFIG_USER_H -#include "../../config.h" +#include "../../../MS_sculpt_mobile/config.h" #define USE_BABLPASTE diff --git a/keyboards/handwired/MS_sculpt_mobile/keymaps/milestogo/keymap.c b/keyboards/handwired/MS_sculpt_mobile/keymaps/milestogo/keymap.c index 395a9fb4706..c9a8ccdb69c 100644 --- a/keyboards/handwired/MS_sculpt_mobile/keymaps/milestogo/keymap.c +++ b/keyboards/handwired/MS_sculpt_mobile/keymaps/milestogo/keymap.c @@ -1,7 +1,7 @@ -#include "MS-sculpt-mobile.h" +#include "../../../MS_sculpt_mobile/babblePaste.h" +#include "../../MS_sculpt_mobile.h" #include "action_layer.h" #include "action_util.h" -#include "babblePaste.h" #ifdef AUDIO_ENABLE #include "audio.h" From 737c1fe641dd018c9f8a0e333480825d6337ddd1 Mon Sep 17 00:00:00 2001 From: Fred Sundvik Date: Mon, 10 Apr 2017 09:51:00 +0300 Subject: [PATCH 137/190] Make MOUSEKEY_MOVE_MAX and MOUSEKEY_WHEEL_MAX configurable Kitten_paw/ickerwx was doing that --- tmk_core/common/mousekey.h | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/tmk_core/common/mousekey.h b/tmk_core/common/mousekey.h index 6eede06b442..9338d0af779 100644 --- a/tmk_core/common/mousekey.h +++ b/tmk_core/common/mousekey.h @@ -23,8 +23,17 @@ along with this program. If not, see . /* max value on report descriptor */ -#define MOUSEKEY_MOVE_MAX 127 -#define MOUSEKEY_WHEEL_MAX 127 +#ifndef MOUSEKEY_MOVE_MAX + #define MOUSEKEY_MOVE_MAX 127 +#elif MOUSEKEY_MOVE_MAX > 127 + #error MOUSEKEY_MOVE_MAX needs to be smaller than 127 +#endif + +#ifndef MOUSEKEY_WHEEL_MAX + #define MOUSEKEY_WHEEL_MAX 127 +#elif MOUSEKEY_WHEEL_MAX > 127 + #error MOUSEKEY_WHEEL_MAX needs to be smaller than 127 +#endif #ifndef MOUSEKEY_MOVE_DELTA #define MOUSEKEY_MOVE_DELTA 5 From df30d18458b018d6b87c01678037767ddec3e9f4 Mon Sep 17 00:00:00 2001 From: Fred Sundvik Date: Mon, 10 Apr 2017 09:52:10 +0300 Subject: [PATCH 138/190] Fix warnings in kitten_paw/ickerwx keymap --- keyboards/kitten_paw/keymaps/ickerwx/config.h | 2 +- keyboards/kitten_paw/keymaps/ickerwx/keymap.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/keyboards/kitten_paw/keymaps/ickerwx/config.h b/keyboards/kitten_paw/keymaps/ickerwx/config.h index 04a2d253c79..142aba89094 100644 --- a/keyboards/kitten_paw/keymaps/ickerwx/config.h +++ b/keyboards/kitten_paw/keymaps/ickerwx/config.h @@ -22,7 +22,7 @@ #undef MOUSEKEY_WHEEL_MAX_SPEED #define MOUSEKEY_WHEEL_MAX_SPEED 3 #undef MOUSEKEY_WHEEL_TIME_TO_MAX -#define MOUSEKEY_WHEEL_TIME_TO_MAX 1000 +#define MOUSEKEY_WHEEL_TIME_TO_MAX 255 #undef ONESHOT_TIMEOUT #define ONESHOT_TIMEOUT 500 #undef TAPPING_TOGGLE diff --git a/keyboards/kitten_paw/keymaps/ickerwx/keymap.c b/keyboards/kitten_paw/keymaps/ickerwx/keymap.c index 9a00c80dc81..9dffbb272c0 100644 --- a/keyboards/kitten_paw/keymaps/ickerwx/keymap.c +++ b/keyboards/kitten_paw/keymaps/ickerwx/keymap.c @@ -64,7 +64,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______,S(NUBS),_______,_______,_______,_______,_______,_______,_______,KC_NUBS,S(NUBS),S(MINS), _______, _______, _______,_______,_______,_______, \ _______,_______,_______, _______, _______,_______,_______,_______, _______,_______,_______, _______,_______), /* Layer 3: media layer */ - [MEDIA] = KEYMAP(\ + [MEDIA] = KEYMAP(\ KC_PWR,KC_SLEP,KC_WAKE,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX, XXXXXXX,XXXXXXX,XXXXXXX, \ XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX, KC_MPRV,KC_MPLY,KC_MNXT, XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX, \ XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX, KC_VOLD,KC_MUTE,KC_VOLU, XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX, \ From a619b93e38c9d8dff86d5276ff9e549797045f3a Mon Sep 17 00:00:00 2001 From: Fred Sundvik Date: Mon, 10 Apr 2017 10:12:41 +0300 Subject: [PATCH 139/190] Fix warnings in planck/lucas keymap Register the unshifted version DE_LESS, rather than the shifted DE_MORE --- keyboards/planck/keymaps/lucas/keymap.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/keyboards/planck/keymaps/lucas/keymap.c b/keyboards/planck/keymaps/lucas/keymap.c index 2208780b182..491cd1d07d5 100644 --- a/keyboards/planck/keymaps/lucas/keymap.c +++ b/keyboards/planck/keymaps/lucas/keymap.c @@ -153,12 +153,12 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) case 1: // M(1) if (record->event.pressed) { unregister_code(KC_LSFT); - register_code(DE_MORE); + register_code(DE_LESS); } else { - unregister_code(DE_MORE); + unregister_code(DE_LESS); } break; } return MACRO_NONE; -}; \ No newline at end of file +}; From 109ae2f1e889a2450a98da41f17956c8ce9b79da Mon Sep 17 00:00:00 2001 From: Fred Sundvik Date: Mon, 10 Apr 2017 10:36:09 +0300 Subject: [PATCH 140/190] Fix warnings in process_printer --- quantum/process_keycode/process_printer.c | 22 ++++++++++---------- quantum/process_keycode/process_printer.h | 2 ++ quantum/process_keycode/process_printer_bb.c | 4 ++-- 3 files changed, 15 insertions(+), 13 deletions(-) diff --git a/quantum/process_keycode/process_printer.c b/quantum/process_keycode/process_printer.c index 807f7a0b91a..613af70183b 100644 --- a/quantum/process_keycode/process_printer.c +++ b/quantum/process_keycode/process_printer.c @@ -20,12 +20,12 @@ bool printing_enabled = false; uint8_t character_shift = 0; -void enabled_printing() { +void enable_printing(void) { printing_enabled = true; serial_init(); } -void disable_printing() { +void disable_printing(void) { printing_enabled = false; } @@ -41,9 +41,14 @@ void print_char(char c) { USB_Init(); } -void print_box_string(uint8_t text[]) { - uint8_t len = strlen(text); - uint8_t out[len * 3 + 8]; +void print_string(char c[]) { + for(uint8_t i = 0; i < strlen(c); i++) + print_char(c[i]); +} + +void print_box_string(const char text[]) { + size_t len = strlen(text); + char out[len * 3 + 8]; out[0] = 0xDA; for (uint8_t i = 0; i < len; i++) { out[i+1] = 0xC4; @@ -69,14 +74,9 @@ void print_box_string(uint8_t text[]) { print_string(out); } -void print_string(char c[]) { - for(uint8_t i = 0; i < strlen(c); i++) - print_char(c[i]); -} - bool process_printer(uint16_t keycode, keyrecord_t *record) { if (keycode == PRINT_ON) { - enabled_printing(); + enable_printing(); return false; } if (keycode == PRINT_OFF) { diff --git a/quantum/process_keycode/process_printer.h b/quantum/process_keycode/process_printer.h index aa494ac8a7f..71d3a4b56a6 100644 --- a/quantum/process_keycode/process_printer.h +++ b/quantum/process_keycode/process_printer.h @@ -21,4 +21,6 @@ #include "protocol/serial.h" +bool process_printer(uint16_t keycode, keyrecord_t *record); + #endif diff --git a/quantum/process_keycode/process_printer_bb.c b/quantum/process_keycode/process_printer_bb.c index 55d3b552b2f..3a00f169d8b 100644 --- a/quantum/process_keycode/process_printer_bb.c +++ b/quantum/process_keycode/process_printer_bb.c @@ -46,7 +46,7 @@ void serial_output(void) { } -void enabled_printing() { +void enable_printing() { printing_enabled = true; serial_output(); serial_high(); @@ -82,7 +82,7 @@ void print_string(char c[]) { bool process_printer(uint16_t keycode, keyrecord_t *record) { if (keycode == PRINT_ON) { - enabled_printing(); + enable_printing(); return false; } if (keycode == PRINT_OFF) { From 08b9eb26c5a7b0d0b1921dc7b4785adb95b5953e Mon Sep 17 00:00:00 2001 From: Fred Sundvik Date: Mon, 10 Apr 2017 11:52:26 +0300 Subject: [PATCH 141/190] Fix warnings in CMD-Preonic The startup_sound is defined using MUSICAL_NOTEs, since non-constant initializer expressions are not allowed in C. --- keyboards/preonic/keymaps/CMD-Preonic/keymap.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/keyboards/preonic/keymaps/CMD-Preonic/keymap.c b/keyboards/preonic/keymaps/CMD-Preonic/keymap.c index 5d217e26152..a500a364941 100644 --- a/keyboards/preonic/keymaps/CMD-Preonic/keymap.c +++ b/keyboards/preonic/keymaps/CMD-Preonic/keymap.c @@ -212,10 +212,10 @@ const uint16_t PROGMEM fn_actions[] = { #ifdef AUDIO_ENABLE float start_up[][2] = { - {440.0*pow(2.0,(14)/12.0), 20}, - {440.0*pow(2.0,(26)/12.0), 8}, - {440.0*pow(2.0,(18)/12.0), 20}, - {440.0*pow(2.0,(26)/12.0), 8} + MUSICAL_NOTE(_B5, 20), + MUSICAL_NOTE(_B6, 8), + MUSICAL_NOTE(_DS6, 20), + MUSICAL_NOTE(_B6, 8), }; float tone_qwerty[][2] = SONG(QWERTY_SOUND); @@ -323,7 +323,7 @@ void matrix_init_user(void) { #ifdef AUDIO_ENABLE -void play_goodbye_tone() +void play_goodbye_tone(void) { PLAY_NOTE_ARRAY(goodbye, false, 0); _delay_ms(150); From abda6ff7bbe00792c0ed7edea4a31b9dec6c13e8 Mon Sep 17 00:00:00 2001 From: Fred Sundvik Date: Wed, 12 Apr 2017 09:02:51 +0300 Subject: [PATCH 142/190] Include host.h from suspend.c --- tmk_core/common/avr/suspend.c | 1 + 1 file changed, 1 insertion(+) diff --git a/tmk_core/common/avr/suspend.c b/tmk_core/common/avr/suspend.c index 0c81e836121..1c7618ff51d 100644 --- a/tmk_core/common/avr/suspend.c +++ b/tmk_core/common/avr/suspend.c @@ -9,6 +9,7 @@ #include "suspend.h" #include "timer.h" #include "led.h" +#include "host.h" #ifdef PROTOCOL_LUFA #include "lufa.h" From 07fc34e962a54f87802f11e9e30ed5891325f07e Mon Sep 17 00:00:00 2001 From: Fred Sundvik Date: Wed, 12 Apr 2017 10:04:19 +0300 Subject: [PATCH 143/190] Fix warnings when ACTION_ONESHOT is disabled --- tmk_core/common/action.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tmk_core/common/action.c b/tmk_core/common/action.c index 94de36918d2..4ba1cc251a7 100644 --- a/tmk_core/common/action.c +++ b/tmk_core/common/action.c @@ -140,7 +140,6 @@ void process_record(keyrecord_t *record) void process_action(keyrecord_t *record, action_t action) { - bool do_release_oneshot = false; keyevent_t event = record->event; #ifndef NO_ACTION_TAPPING uint8_t tap_count = record->tap.count; @@ -152,6 +151,7 @@ void process_action(keyrecord_t *record, action_t action) } #ifndef NO_ACTION_ONESHOT + bool do_release_oneshot = false; // notice we only clear the one shot layer if the pressed key is not a modifier. if (is_oneshot_layer_active() && event.pressed && !IS_MOD(action.key.code)) { clear_oneshot_layer_state(ONESHOT_OTHER_KEY_PRESSED); From d8e2ff2964480182f0e3513785e310b4ee96c4ee Mon Sep 17 00:00:00 2001 From: Fred Sundvik Date: Thu, 13 Apr 2017 15:58:58 +0300 Subject: [PATCH 144/190] Fix process_unicode_common.c being included twice --- build_keyboard.mk | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/build_keyboard.mk b/build_keyboard.mk index 9da8277db94..9fa8c312632 100644 --- a/build_keyboard.mk +++ b/build_keyboard.mk @@ -176,22 +176,26 @@ endif ifeq ($(strip $(UCIS_ENABLE)), yes) OPT_DEFS += -DUCIS_ENABLE - SRC += $(QUANTUM_DIR)/process_keycode/process_unicode_common.c + UNICODE_COMMON = yes SRC += $(QUANTUM_DIR)/process_keycode/process_ucis.c endif ifeq ($(strip $(UNICODEMAP_ENABLE)), yes) OPT_DEFS += -DUNICODEMAP_ENABLE - SRC += $(QUANTUM_DIR)/process_keycode/process_unicode_common.c + UNICODE_COMMON = yes SRC += $(QUANTUM_DIR)/process_keycode/process_unicodemap.c endif ifeq ($(strip $(UNICODE_ENABLE)), yes) OPT_DEFS += -DUNICODE_ENABLE - SRC += $(QUANTUM_DIR)/process_keycode/process_unicode_common.c + UNICODE_COMMON = yes SRC += $(QUANTUM_DIR)/process_keycode/process_unicode.c endif +ifeq ($(strip $(UNICODE_COMMON)), yes) + SRC += $(QUANTUM_DIR)/process_keycode/process_unicode_common.c +endif + ifeq ($(strip $(RGBLIGHT_ENABLE)), yes) OPT_DEFS += -DRGBLIGHT_ENABLE SRC += $(QUANTUM_DIR)/light_ws2812.c From d68294615f9c67764c06a7524fb59c22c024a106 Mon Sep 17 00:00:00 2001 From: Fred Sundvik Date: Thu, 13 Apr 2017 16:12:55 +0300 Subject: [PATCH 145/190] Add make option for allowing warnings --- tmk_core/rules.mk | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/tmk_core/rules.mk b/tmk_core/rules.mk index 25993354f2e..b7cb0a559aa 100644 --- a/tmk_core/rules.mk +++ b/tmk_core/rules.mk @@ -92,7 +92,9 @@ endif endif CFLAGS += -Wall CFLAGS += -Wstrict-prototypes -CFLAGS += -Werror +ifneq ($(strip $(ALLOW_WARNINGS)), yes) + CFLAGS += -Werror +endif #CFLAGS += -mshort-calls #CFLAGS += -fno-unit-at-a-time #CFLAGS += -Wundef @@ -116,7 +118,9 @@ CPPFLAGS += -O$(OPT) CPPFLAGS += -w CPPFLAGS += -Wall CPPFLAGS += -Wundef -CPPFLAGS += -Werror +ifneq ($(strip $(ALLOW_WARNINGS)), yes) + CPPFLAGS += -Werror +endif #CPPFLAGS += -mshort-calls #CPPFLAGS += -fno-unit-at-a-time #CPPFLAGS += -Wstrict-prototypes From 5c251b5575a5008c81b35cd31313591c4910722a Mon Sep 17 00:00:00 2001 From: Fred Sundvik Date: Thu, 13 Apr 2017 21:40:06 +0300 Subject: [PATCH 146/190] Fix buffer overrun in lcd_keyframes This would often cause the keyboard to crash when restarting the computer. --- quantum/visualizer/lcd_keyframes.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/quantum/visualizer/lcd_keyframes.c b/quantum/visualizer/lcd_keyframes.c index df11861ddc9..82e4184d2ca 100644 --- a/quantum/visualizer/lcd_keyframes.c +++ b/quantum/visualizer/lcd_keyframes.c @@ -125,8 +125,8 @@ static void get_led_state_string(char* output, visualizer_state_t* state) { pos += 5; } if (state->status.leds & (1u << USB_LED_KANA)) { - memcpy(output + pos, "KANA ", 5); - pos += 5; + memcpy(output + pos, "KANA", 4); + pos += 4; } output[pos] = 0; } From 94b14bdd6ac09467686d330571ab05ff0f9bf380 Mon Sep 17 00:00:00 2001 From: Fred Sundvik Date: Thu, 13 Apr 2017 23:00:27 +0300 Subject: [PATCH 147/190] Add missing serial_link.h include Which fixes a warning when building Ergodox Infinity as a righthand master. --- keyboards/ergodox/infinity/matrix.c | 1 + 1 file changed, 1 insertion(+) diff --git a/keyboards/ergodox/infinity/matrix.c b/keyboards/ergodox/infinity/matrix.c index 1fda904849a..3364f8c905d 100644 --- a/keyboards/ergodox/infinity/matrix.c +++ b/keyboards/ergodox/infinity/matrix.c @@ -24,6 +24,7 @@ along with this program. If not, see . #include "print.h" #include "debug.h" #include "matrix.h" +#include "serial_link/system/serial_link.h" /* From bc7b1843ba1e722800c50563e456e93ec417f810 Mon Sep 17 00:00:00 2001 From: Thomas Fitzsimmons Date: Fri, 14 Apr 2017 02:06:58 -0400 Subject: [PATCH 148/190] Fix KEYMAP_YORUIAN macro Fix the ordering of the arguments to the KEYMAP macro. --- keyboards/ergodox/keymaps/yoruian/yoruian.h | 45 ++++++++++++--------- 1 file changed, 26 insertions(+), 19 deletions(-) diff --git a/keyboards/ergodox/keymaps/yoruian/yoruian.h b/keyboards/ergodox/keymaps/yoruian/yoruian.h index b3b13073c57..b5aaf74b1a6 100644 --- a/keyboards/ergodox/keymaps/yoruian/yoruian.h +++ b/keyboards/ergodox/keymaps/yoruian/yoruian.h @@ -18,25 +18,32 @@ #include "debug.h" #include "action_layer.h" -#define KEYMAP_YORUIAN( \ - /* Spacial positions. */ \ - k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, \ - k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, \ - k20, k21, k22, k23, k24, k25, k28, k29, k2A, k2B, k2C, k2D, \ - k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, \ - k40, k41, k42, k43, k44, k49, k4A, k4B, k4C, k4D, \ - k55, k56, k57, k58, \ - k54, k59, \ - k53, k52, k51, k5C, k5B, k5A) \ - KEYMAP( \ - KC_##k00, KC_##k01, KC_##k02, KC_##k03, KC_##k04, KC_##k05, KC_##k06, KC_##k07, KC_##k08, KC_##k09, KC_##k0A, KC_##k0B, KC_##k0C, KC_##k0D, \ - KC_##k10, KC_##k11, KC_##k12, KC_##k13, KC_##k14, KC_##k15, KC_##k16, KC_##k17, KC_##k18, KC_##k19, KC_##k1A, KC_##k1B, KC_##k1C, KC_##k1D, \ - KC_##k20, KC_##k21, KC_##k22, KC_##k23, KC_##k24, KC_##k25, KC_##k28, KC_##k29, KC_##k2A, KC_##k2B, KC_##k2C, KC_##k2D, \ - KC_##k30, KC_##k31, KC_##k32, KC_##k33, KC_##k34, KC_##k35, KC_##k36, KC_##k37, KC_##k38, KC_##k39, KC_##k3A, KC_##k3B, KC_##k3C, KC_##k3D, \ - KC_##k40, KC_##k41, KC_##k42, KC_##k43, KC_##k44, KC_##k49, KC_##k4A, KC_##k4B, KC_##k4C, KC_##k4D, \ - KC_##k55, KC_##k56, KC_##k57, KC_##k58, \ - KC_##k54, KC_##k59, \ - KC_##k53, KC_##k52, KC_##k51, KC_##k5C, KC_##k5B, KC_##k5A) +#define KEYMAP_YORUIAN( \ + /* Spacial positions. */ \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, \ + k20, k21, k22, k23, k24, k25, k28, k29, k2A, k2B, k2C, k2D, \ + k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, \ + k40, k41, k42, k43, k44, k49, k4A, k4B, k4C, k4D, \ + k55, k56, k57, k58, \ + k54, k59, \ + k53, k52, k51, k5C, k5B, k5A) \ + KEYMAP(KC_##k00, KC_##k01, KC_##k02, KC_##k03, KC_##k04, KC_##k05, KC_##k06, \ + KC_##k10, KC_##k11, KC_##k12, KC_##k13, KC_##k14, KC_##k15, KC_##k16, \ + KC_##k20, KC_##k21, KC_##k22, KC_##k23, KC_##k24, KC_##k25, \ + KC_##k30, KC_##k31, KC_##k32, KC_##k33, KC_##k34, KC_##k35, KC_##k36, \ + KC_##k40, KC_##k41, KC_##k42, KC_##k43, KC_##k44, \ + KC_##k55, KC_##k56, \ + KC_##k54, \ + KC_##k53, KC_##k52, KC_##k51, \ + KC_##k07, KC_##k08, KC_##k09, KC_##k0A, KC_##k0B, KC_##k0C, KC_##k0D, \ + KC_##k17, KC_##k18, KC_##k19, KC_##k1A, KC_##k1B, KC_##k1C, KC_##k1D, \ + KC_##k28, KC_##k29, KC_##k2A, KC_##k2B, KC_##k2C, KC_##k2D, \ + KC_##k37, KC_##k38, KC_##k39, KC_##k3A, KC_##k3B, KC_##k3C, KC_##k3D, \ + KC_##k49, KC_##k4A, KC_##k4B, KC_##k4C, KC_##k4D, \ + KC_##k57, KC_##k58, \ + KC_##k59, \ + KC_##k5C, KC_##k5B, KC_##k5A) #define KC_ES KC_ESC #define KC_LC KC_LCTL From b133b7489717c2bd14c4b81f475f6f0595946504 Mon Sep 17 00:00:00 2001 From: dbroqua Date: Sat, 15 Apr 2017 16:34:33 +0200 Subject: [PATCH 149/190] - Added S-60-X RGB directory (based on qmk.sized.io work) --- keyboards/s60-x-rgb/Makefile | 3 + keyboards/s60-x-rgb/config.h | 58 ++++++ keyboards/s60-x-rgb/keymaps/dbroqua/keymap.c | 194 ++++++++++++++++++ keyboards/s60-x-rgb/keymaps/default/keymap.c | 48 +++++ keyboards/s60-x-rgb/keymaps/default/readme.md | 27 +++ keyboards/s60-x-rgb/rules.mk | 56 +++++ keyboards/s60-x-rgb/s60-x-rgb.c | 1 + keyboards/s60-x-rgb/s60-x-rgb.h | 37 ++++ 8 files changed, 424 insertions(+) create mode 100644 keyboards/s60-x-rgb/Makefile create mode 100644 keyboards/s60-x-rgb/config.h create mode 100644 keyboards/s60-x-rgb/keymaps/dbroqua/keymap.c create mode 100644 keyboards/s60-x-rgb/keymaps/default/keymap.c create mode 100644 keyboards/s60-x-rgb/keymaps/default/readme.md create mode 100644 keyboards/s60-x-rgb/rules.mk create mode 100644 keyboards/s60-x-rgb/s60-x-rgb.c create mode 100644 keyboards/s60-x-rgb/s60-x-rgb.h diff --git a/keyboards/s60-x-rgb/Makefile b/keyboards/s60-x-rgb/Makefile new file mode 100644 index 00000000000..57b2ef62e5f --- /dev/null +++ b/keyboards/s60-x-rgb/Makefile @@ -0,0 +1,3 @@ +ifndef MAKEFILE_INCLUDED + include ../../Makefile +endif diff --git a/keyboards/s60-x-rgb/config.h b/keyboards/s60-x-rgb/config.h new file mode 100644 index 00000000000..1b98a51d6ed --- /dev/null +++ b/keyboards/s60-x-rgb/config.h @@ -0,0 +1,58 @@ +#ifndef CONFIG_H +#define CONFIG_H + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x6060 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Massdrop +#define PRODUCT S60-X RGB +#define DESCRIPTION q.m.k. keyboard firmware for S60-X RGB + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 15 + +/* key matrix pins */ +#define MATRIX_ROW_PINS { B5, B4, D7, D6, D4 } +#define MATRIX_COL_PINS { D0, D1, D2, D3, D5, B6, C6, C7, F1, F0, E6, B3, B2, B1, B0 } +#define UNUSED_PINS + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* number of backlight levels */ +#define BACKLIGHT_PIN B7 +#ifdef BACKLIGHT_PIN +#define BACKLIGHT_LEVELS 3 +#endif + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCING_DELAY 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 + +/* key combination for command */ +#define IS_COMMAND() ( \ + keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ +) + +/* prevent stuck modifiers */ +#define PREVENT_STUCK_MODIFIERS + +#define RGB_DI_PIN F6 +#ifdef RGB_DI_PIN +#define RGBLIGHT_ANIMATIONS +#define RGBLED_NUM 10 +#define RGBLIGHT_HUE_STEP 8 +#define RGBLIGHT_SAT_STEP 8 +#define RGBLIGHT_VAL_STEP 8 +#endif + +#endif \ No newline at end of file diff --git a/keyboards/s60-x-rgb/keymaps/dbroqua/keymap.c b/keyboards/s60-x-rgb/keymaps/dbroqua/keymap.c new file mode 100644 index 00000000000..9577a8f5d2f --- /dev/null +++ b/keyboards/s60-x-rgb/keymaps/dbroqua/keymap.c @@ -0,0 +1,194 @@ +#include "s60-x-rgb.h" + +#define _DEFAULT 0 +#define _FN 1 +#define _SFX 2 + +// Fillers to make layering more clear +#define ______ KC_TRNS + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* Qwerty gui/alt/space/alt/gui + * ,-----------------------------------------------------------------------------------------. + * | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | \ | ` | + * |-----------------------------------------------------------------------------------------+ + * | Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] | Bksp | + * |-----------------------------------------------------------------------------------------+ + * | Ctrl | A | S | D | F | G | H | J | K | L | ; | ' | Enter | + * |-----------------------------------------------------------------------------------------+ + * | Shift | Z | X | C | V | B | N | M | , | . | / | RShift | FN | + * |-----------------------------------------------------------------------------------------+ + * |LGUI | LAlt | Space | RAlt |RGUI | + * `-----------------------------------------------------------------' + */ + [_DEFAULT] = KEYMAP( /* Basic QWERTY */ + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_GRV, \ + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC, \ + KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, ______, KC_ENT, \ + KC_LSFT, ______, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, ______, KC_RSFT, MO(_FN), \ + ______, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, ______, ______ \ + ), + +/* FN Layer + * ,-----------------------------------------------------------------------------------------. + * | SFX | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | Ins | Del | + * |-----------------------------------------------------------------------------------------+ + * | CAPS | | | | | | | | Psc | Slck| Paus| Up | | | + * |-----------------------------------------------------------------------------------------+ + * | | Vol-| Vol+| Mute| | | * | / | Home| PgUp| Left|Right| | + * |-----------------------------------------------------------------------------------------+ + * | | Prev| Play| Next| | | + | - | End |PgDn| Down| | | + * |-----------------------------------------------------------------------------------------+ + * | | | | Stop | | + * `-----------------------------------------------------------------' + */ + [_FN] = KEYMAP( /* Layer 1 */ + TG(_SFX),KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_INS, KC_DEL, \ + KC_CAPS, ______, ______, ______, ______, ______, ______, ______, KC_PSCR, KC_SLCK, KC_PAUS, KC_UP, ______, ______, \ + ______, KC_VOLD, KC_VOLU, KC_MUTE, ______, ______, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT,______, ______, \ + ______, ______, KC_MPRV, KC_MPLY, KC_MNXT,______, ______, KC_PPLS, KC_PMNS, KC_END, KC_PGDN, KC_DOWN,______, ______, ______, \ + ______, ______, ______, TG(_WASD), KC_MSTP, ______, ______, ______ \ + ), + + +/* SFX Layer + * ,-----------------------------------------------------------------------------------------. + * | | | | | | | | | | | | | | | | + * |-----------------------------------------------------------------------------------------+ + * | | BL- | BL+ | BL | | | | | | | | | | | + * |-----------------------------------------------------------------------------------------+ + * | | RGBT| RGBM| | | | | | | | | | | + * |-----------------------------------------------------------------------------------------+ + * | | Hue+| Hue-| Sat+| Sat-| Val+| Val-| | | | | | | + * |-----------------------------------------------------------------------------------------+ + * | | | | | | + * `-----------------------------------------------------------------' + */ + [_SFX] = KEYMAP( + ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, \ + ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, \ + ______, F(0), F(1), ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, \ + ______, ______, F(2), F(3), F(4), F(5), F(6), F(7), ______, ______, ______, ______, ______, ______, ______, \ + ______, ______, ______, ______, ______, ______, ______, ______ \ + ) +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { + keyevent_t event = record->event; + + switch (id) { + + } + return MACRO_NONE; +} + +enum function_id { + RGBLED_TOGGLE, + RGBLED_STEP_MODE, + RGBLED_INCREASE_HUE, + RGBLED_DECREASE_HUE, + RGBLED_INCREASE_SAT, + RGBLED_DECREASE_SAT, + RGBLED_INCREASE_VAL, + RGBLED_DECREASE_VAL +}; + +const uint16_t PROGMEM fn_actions[] = { + [0] = ACTION_FUNCTION(RGBLED_TOGGLE), + [1] = ACTION_FUNCTION(RGBLED_STEP_MODE), + [2] = ACTION_FUNCTION(RGBLED_INCREASE_HUE), + [3] = ACTION_FUNCTION(RGBLED_DECREASE_HUE), + [4] = ACTION_FUNCTION(RGBLED_INCREASE_SAT), + [5] = ACTION_FUNCTION(RGBLED_DECREASE_SAT), + [6] = ACTION_FUNCTION(RGBLED_INCREASE_VAL), + [7] = ACTION_FUNCTION(RGBLED_DECREASE_VAL) +}; + +void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { + switch (id) { + case RGBLED_TOGGLE: + if (record->event.pressed) { + rgblight_toggle(); + } + break; + case RGBLED_INCREASE_HUE: + if (record->event.pressed) { + rgblight_increase_hue(); + } + break; + case RGBLED_DECREASE_HUE: + if (record->event.pressed) { + rgblight_decrease_hue(); + } + break; + case RGBLED_INCREASE_SAT: + if (record->event.pressed) { + rgblight_increase_sat(); + } + break; + case RGBLED_DECREASE_SAT: + if (record->event.pressed) { + rgblight_decrease_sat(); + } + break; + case RGBLED_INCREASE_VAL: + if (record->event.pressed) { + rgblight_increase_val(); + } + break; + case RGBLED_DECREASE_VAL: + if (record->event.pressed) { + rgblight_decrease_val(); + } + break; + case RGBLED_STEP_MODE: + if (record->event.pressed) { + rgblight_step(); + } + break; + } +} + +void matrix_init_user(void) { +} + +void matrix_scan_user(void) { +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + return true; +} + +void led_set_user(uint8_t usb_led) { + + if (usb_led & (1 << USB_LED_NUM_LOCK)) { + + } else { + + } + + if (usb_led & (1 << USB_LED_CAPS_LOCK)) { + + } else { + + } + + if (usb_led & (1 << USB_LED_SCROLL_LOCK)) { + + } else { + + } + + if (usb_led & (1 << USB_LED_COMPOSE)) { + + } else { + + } + + if (usb_led & (1 << USB_LED_KANA)) { + + } else { + + } + +} \ No newline at end of file diff --git a/keyboards/s60-x-rgb/keymaps/default/keymap.c b/keyboards/s60-x-rgb/keymaps/default/keymap.c new file mode 100644 index 00000000000..303f07638f1 --- /dev/null +++ b/keyboards/s60-x-rgb/keymaps/default/keymap.c @@ -0,0 +1,48 @@ +#include "s60-x-rgb.h" + +/* 0: Main layer +┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐ +│ ESC │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │▒▒▒▒▒│BKSPC│ +├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ +│ TAB │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ │█████│ +├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ +│CAPSL│ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │▒▒▒▒▒│ENTER│█████│ +├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ +│LSHFT│▒▒▒▒▒│ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │▒▒▒▒▒│RSHFT│▒▒▒▒▒│ +├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ +│LCTRL│L_GUI│L_ALT│█████│█████│█████│ SPC │█████│█████│█████│R_ALT│ FN0 │ APP │RCTRL│█████│ +└─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘ +*/ + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* 0: ANSI qwerty */ + LEGACY_KEYMAP(ESC, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS, EQL, NO, BSPC, \ + TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC, RBRC, BSLS, \ + CAPS, A, S, D, F, G, H, J, K, L, SCLN, QUOT, NO, ENT , \ + LSFT, NO, Z, X, C, V, B, N, M, COMM, DOT, SLSH, NO, RSFT, NO, \ + LCTL, LGUI, LALT, SPC, RALT, FN0, APP, RCTL), + +/* 1: Fn layer +┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐ +│GRAVE│ F1 │ F2 │ F3 │ F4 │ F5 │ F6 │ F7 │ F8 │ F9 │ F10 │ F11 │ F12 │▒▒▒▒▒│ │ +├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ +│ │ │ Up │ │ │ │ │ │PGUP │PGDWN│PRTSC│SCLCK│PAUSE│ │█████│ +├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ +│ │Left │Down │Right│ │ │ │ │ │ │ │ │▒▒▒▒▒│ │█████│ +├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ +│ │▒▒▒▒▒│ │ │ │ │ │ │ │ │ │ │▒▒▒▒▒│ │▒▒▒▒▒│ +├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ +│ │ │ │█████│█████│█████│ │█████│█████│█████│ │ │ │ │█████│ +└─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘ +*/ + LEGACY_KEYMAP( + GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, TRNS, TRNS, \ + TRNS, TRNS, UP, TRNS, TRNS, TRNS, TRNS, TRNS, PGUP, PGDN, PSCR, SLCK, PAUS, TRNS, \ + TRNS, LEFT, DOWN, RGHT, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, \ + TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, \ + TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS), +}; + +const uint16_t PROGMEM fn_actions[] = { + [0] = ACTION_LAYER_MOMENTARY(1), // to Fn overlay +}; diff --git a/keyboards/s60-x-rgb/keymaps/default/readme.md b/keyboards/s60-x-rgb/keymaps/default/readme.md new file mode 100644 index 00000000000..01cda9df9bb --- /dev/null +++ b/keyboards/s60-x-rgb/keymaps/default/readme.md @@ -0,0 +1,27 @@ +### 1 Standard - ANSI +The standard keymap is the one that is pre-flashed on the S60-X. + +#### 1.0 Default layer + ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐ + │ ESC │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │▒▒▒▒▒│BKSPC│ + ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ + │ TAB │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ │█████│ + ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ + │CAPSL│ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │▒▒▒▒▒│ENTER│█████│ + ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ + │LSHFT│▒▒▒▒▒│ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │▒▒▒▒▒│RSHFT│▒▒▒▒▒│ + ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ + │LCTRL│L_GUI│L_ALT│█████│█████│█████│ SPC │█████│█████│█████│R_ALT│ FN0 │ APP │RCTRL│█████│ + └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘ +#### 1.1 Fn layer + ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐ + │GRAVE│ F1 │ F2 │ F3 │ F4 │ F5 │ F6 │ F7 │ F8 │ F9 │ F10 │ F11 │ F12 │▒▒▒▒▒│ │ + ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ + │ │ │ Up │ │ │ │ │ │PGUP │PGDWN│PRTSC│SCLCK│PAUSE│ │█████│ + ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ + │ │Left │Down │Right│ │ │ │ │ │ │ │ │▒▒▒▒▒│ │█████│ + ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ + │ │▒▒▒▒▒│ │ │ │ │ │ │ │ │ │ │▒▒▒▒▒│ │▒▒▒▒▒│ + ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ + │ │ │ │█████│█████│█████│ │█████│█████│█████│ │ │ │ │█████│ + └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘ diff --git a/keyboards/s60-x-rgb/rules.mk b/keyboards/s60-x-rgb/rules.mk new file mode 100644 index 00000000000..c303af4bccd --- /dev/null +++ b/keyboards/s60-x-rgb/rules.mk @@ -0,0 +1,56 @@ +# MCU name +MCU = atmega32u4 + +# Processor frequency. +# This will define a symbol, F_CPU, in all source code files equal to the +# processor frequency in Hz. You can then use this symbol in your source code to +# calculate timings. Do NOT tack on a 'UL' at the end, this will be done +# automatically to create a 32-bit value in your source code. +# +# This will be an integer division of F_USB below, as it is sourced by +# F_USB after it has run through any CPU prescalers. Note that this value +# does not *change* the processor frequency - it should merely be updated to +# reflect the processor speed set externally so that the code can use accurate +# software delays. +F_CPU = 16000000 + +# +# LUFA specific +# +# Target architecture (see library "Board Types" documentation). +ARCH = AVR8 + +# Input clock frequency. +# This will define a symbol, F_USB, in all source code files equal to the +# input clock frequency (before any prescaling is performed) in Hz. This value may +# differ from F_CPU if prescaling is used on the latter, and is required as the +# raw input clock is fed directly to the PLL sections of the AVR for high speed +# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL' +# at the end, this will be done automatically to create a 32-bit value in your +# source code. +# +# If no clock division is performed on the input clock inside the AVR (via the +# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU. +F_USB = $(F_CPU) + +# Interrupt driven control endpoint task(+60) +OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT + + +# Boot Section Size in *bytes* +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(+4700) +EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450) +CONSOLE_ENABLE ?= no # Console for debug(+400) +COMMAND_ENABLE ?= no # Commands for debug and configuration +SLEEP_LED_ENABLE ?= no # 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 +AUDIO_ENABLE ?= no +RGBLIGHT_ENABLE ?= yes \ No newline at end of file diff --git a/keyboards/s60-x-rgb/s60-x-rgb.c b/keyboards/s60-x-rgb/s60-x-rgb.c new file mode 100644 index 00000000000..39d3a70e86a --- /dev/null +++ b/keyboards/s60-x-rgb/s60-x-rgb.c @@ -0,0 +1 @@ +#include "s60-x-rgb.h" diff --git a/keyboards/s60-x-rgb/s60-x-rgb.h b/keyboards/s60-x-rgb/s60-x-rgb.h new file mode 100644 index 00000000000..cb7a5f567ff --- /dev/null +++ b/keyboards/s60-x-rgb/s60-x-rgb.h @@ -0,0 +1,37 @@ +#ifndef S60XRGB_H +#define S60XRGB_H + +#include "quantum.h" + +#define KEYMAP( \ + K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, \ + K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, \ + K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, \ + K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314, \ + K400, K401, K402, K406, K410, K411, K412, K413 \ +) { \ + { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014 }, \ + { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, KC_NO }, \ + { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, KC_NO }, \ + { K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314 }, \ + { K400, K401, K402, KC_NO, KC_NO, KC_NO, K406, KC_NO, KC_NO, KC_NO, K410, K411, K412, K413, KC_NO } \ +} + +/*This special definition is used for S60-X keymaps that were ported from TMK + * QMK has a lot of keycodes that don't start with KC_, so using the regular KEYMAP macro is recommended + */ +#define LEGACY_KEYMAP( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, \ + K40, K41, K42, K46, K4A, K4B, K4C, K4D \ +) { \ + { KC_##K00, KC_##K01, KC_##K02, KC_##K03, KC_##K04, KC_##K05, KC_##K06, KC_##K07, KC_##K08, KC_##K09, KC_##K0A, KC_##K0B, KC_##K0C, KC_##K0D, KC_##K0E }, \ + { KC_##K10, KC_##K11, KC_##K12, KC_##K13, KC_##K14, KC_##K15, KC_##K16, KC_##K17, KC_##K18, KC_##K19, KC_##K1A, KC_##K1B, KC_##K1C, KC_##K1D, KC_NO }, \ + { KC_##K20, KC_##K21, KC_##K22, KC_##K23, KC_##K24, KC_##K25, KC_##K26, KC_##K27, KC_##K28, KC_##K29, KC_##K2A, KC_##K2B, KC_##K2C, KC_##K2D, KC_NO }, \ + { KC_##K30, KC_##K31, KC_##K32, KC_##K33, KC_##K34, KC_##K35, KC_##K36, KC_##K37, KC_##K38, KC_##K39, KC_##K3A, KC_##K3B, KC_##K3C, KC_##K3D, KC_##K3E }, \ + { KC_##K40, KC_##K41, KC_##K42, KC_NO, KC_NO, KC_NO, KC_##K46, KC_NO, KC_NO, KC_NO, KC_##K4A, KC_##K4B, KC_##K4C, KC_##K4D, KC_NO } \ +} + +#endif \ No newline at end of file From a22286e83438341db3b4d28c8013c12831e5575a Mon Sep 17 00:00:00 2001 From: Xyverz Date: Sun, 16 Apr 2017 21:09:23 -0700 Subject: [PATCH 150/190] Added keymap to TV44 Revamp --- keyboards/tv44/keymaps/xyverz/keymap.c | 113 ++++++++++++++++--------- 1 file changed, 73 insertions(+), 40 deletions(-) diff --git a/keyboards/tv44/keymaps/xyverz/keymap.c b/keyboards/tv44/keymaps/xyverz/keymap.c index 00347b01906..a2f4f48f894 100644 --- a/keyboards/tv44/keymaps/xyverz/keymap.c +++ b/keyboards/tv44/keymaps/xyverz/keymap.c @@ -4,16 +4,26 @@ extern keymap_config_t keymap_config; -#define _DV 0 -#define _QW 1 -#define _CM 2 -#define _L1 3 -#define _L2 4 +// Layer Names +#define _DVORAK 0 +#define _QWERTY 1 +#define _COLEMAK 2 +#define _LOWER 3 +#define _RAISE 4 +#define _ADJUST 16 -// Macro name shortcuts -#define DVORAK M(_DV) -#define QWERTY M(_QW) -#define COLEMAK M(_CM) +enum planck_keycodes { + DVORAK = SAFE_RANGE, + QWERTY, + COLEMAK, + LOWER, + RAISE +}; + +// Layer-Tapping macros +#define ESCLOWR LT(_LOWER, KC_ESC) +#define MINSRSE LT(_RAISE, KC_MINS) +#define QUOTRSE LT(_RAISE, KC_QUOT) // Fillers to make layering more clear #define _______ KC_TRNS @@ -21,41 +31,47 @@ extern keymap_config_t keymap_config; const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_DV] = { /* 0: Dvorak */ + [_DVORAK] = { /* 0: Dvorak */ {KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH }, - {MO(_L1), KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, LT(_L2, KC_MINS)}, + {ESCLOWR, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, MINSRSE }, {KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_RSFT }, - {KC_LCTL, KC_LALT, KC_LGUI, KC_BSPC, XXXXXXX, XXXXXXX, XXXXXXX, KC_SPC, KC_BSLS, KC_EQL, XXXXXXX, KC_ENT } + {KC_LCTL, KC_LALT, LOWER, KC_BSPC, XXXXXXX, XXXXXXX, XXXXXXX, KC_SPC, RAISE, KC_LGUI, XXXXXXX, KC_ENT } }, - [_QW] = { /* 1: Qwerty */ + [_QWERTY] = { /* 1: Qwerty */ {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC }, - {MO(_L1), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, LT(_L2, KC_QUOT)}, + {ESCLOWR, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, QUOTRSE }, {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT }, - {KC_LCTL, KC_LALT, KC_LGUI, KC_BSPC, XXXXXXX, XXXXXXX, XXXXXXX, KC_SPC, KC_SLSH, KC_MINS, XXXXXXX, KC_ENT } + {KC_LCTL, KC_LALT, LOWER, KC_BSPC, XXXXXXX, XXXXXXX, XXXXXXX, KC_SPC, RAISE, KC_LGUI, XXXXXXX, KC_ENT } }, - [_CM] = { /* 2: Colemak */ + [_COLEMAK] = { /* 2: Colemak */ {KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC }, - {MO(_L1), KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, LT(_L2, KC_QUOT)}, + {ESCLOWR, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, QUOTRSE }, {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT }, - {KC_LCTL, KC_LALT, KC_LGUI, KC_BSPC, XXXXXXX, XXXXXXX, XXXXXXX, KC_SPC, KC_SLSH, KC_MINS, XXXXXXX, KC_ENT } + {KC_LCTL, KC_LALT, LOWER, KC_BSPC, XXXXXXX, XXXXXXX, XXXXXXX, KC_SPC, RAISE, KC_LGUI, XXXXXXX, KC_ENT } }, - [_L1] = {/* 1: FN 1 */ - {KC_GRV, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL }, - {_______, KC_BSLS, KC_QUOT, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_DOWN, KC_UP, KC_LEFT, KC_RGHT, _______ }, - {_______, _______, _______, KC_PSCR, _______, _______, _______, KC_MSTP, KC_MPLY, KC_MPRV, KC_MNXT, KC_RSFT }, - {KC_ESC, KC_LGUI, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX, _______, _______, KC_EQL, _______, _______ } + [_LOWER] = {/* 1: FN 1 */ + {KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_PIPE }, + {_______, _______, _______, _______, _______, _______, _______, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE }, + {KC_CAPS, _______, _______, _______, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______ }, + {KC_LEFT, KC_RGHT, _______, KC_DEL, XXXXXXX, XXXXXXX, XXXXXXX, KC_INS, _______, KC_UP, XXXXXXX, KC_DOWN } }, - [_L2] = { /* 2: FN 2 */ - {KC_TILD, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_ESC }, - {_______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, _______, KC_HOME, KC_PGUP, KC_VOLU, _______ }, - {_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, KC_END, KC_PGDN, KC_VOLD, _______ }, - {QWERTY, DVORAK, COLEMAK, _______, XXXXXXX, XXXXXXX, XXXXXXX, _______, _______, KC_PLUS, _______, _______ } + [_RAISE] = { /* 2: FN 2 */ + {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSLS }, + {_______, _______, _______, _______, _______, _______, _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS }, + {KC_CAPS, _______, _______, _______, _______, _______, _______, KC_MPRV, KC_MPLY, KC_MNXT, _______, _______ }, + {KC_LEFT, KC_RGHT, _______, KC_DEL, XXXXXXX, XXXXXXX, XXXXXXX, KC_INS, _______, KC_UP, XXXXXXX, KC_DOWN } + }, + + [_ADJUST] = { + {KC_F11, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F12 }, + {_______, RESET, _______, _______, _______, _______, _______, QWERTY, COLEMAK, DVORAK, _______, _______}, + {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, + {KC_HOME, KC_END, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX, _______, _______, KC_PGUP, XXXXXXX, KC_PGDN} } - }; const uint16_t PROGMEM fn_actions[] = { @@ -67,26 +83,43 @@ void persistant_default_layer_set(uint16_t default_layer) { default_layer_set(default_layer); } -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) -{ - switch(id) { - case _DV: +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch(keycode) { + case DVORAK: if (record->event.pressed) { - persistant_default_layer_set(1UL<<_DV); + persistant_default_layer_set(1UL<<_DVORAK); } break; - case _QW: + case QWERTY: if (record->event.pressed) { - persistant_default_layer_set(1UL<<_QW); + persistant_default_layer_set(1UL<<_QWERTY); } break; - case _CM: + case COLEMAK: if (record->event.pressed) { - persistant_default_layer_set(1UL<<_CM); + persistant_default_layer_set(1UL<<_COLEMAK); } break; + case LOWER: + if (record->event.pressed) { + layer_on(_LOWER); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } else { + layer_off(_LOWER); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } + return false; + break; + case RAISE: + if (record->event.pressed) { + layer_on(_RAISE); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } else { + layer_off(_RAISE); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } + return false; + break; } return MACRO_NONE; }; - - From a343188dcfa1749214c2de0ae527b0e8e1676ee5 Mon Sep 17 00:00:00 2001 From: Xyverz Date: Sun, 16 Apr 2017 21:52:49 -0700 Subject: [PATCH 151/190] macros to make keymap reading easier. --- keyboards/tv44/keymaps/xyverz/keymap.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/keyboards/tv44/keymaps/xyverz/keymap.c b/keyboards/tv44/keymaps/xyverz/keymap.c index 00347b01906..f237073c04c 100644 --- a/keyboards/tv44/keymaps/xyverz/keymap.c +++ b/keyboards/tv44/keymaps/xyverz/keymap.c @@ -14,6 +14,9 @@ extern keymap_config_t keymap_config; #define DVORAK M(_DV) #define QWERTY M(_QW) #define COLEMAK M(_CM) +#define ESCLOWR LT(_L1, KC_ESC) +#define MINSRSE LT(_L2, KC_MINS) +#define QUOTRSE LT(_L2, KC_QUOT) // Fillers to make layering more clear #define _______ KC_TRNS @@ -23,21 +26,21 @@ extern keymap_config_t keymap_config; const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_DV] = { /* 0: Dvorak */ {KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH }, - {MO(_L1), KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, LT(_L2, KC_MINS)}, + {ESCLOWR, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, MINSRSE }, {KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_RSFT }, {KC_LCTL, KC_LALT, KC_LGUI, KC_BSPC, XXXXXXX, XXXXXXX, XXXXXXX, KC_SPC, KC_BSLS, KC_EQL, XXXXXXX, KC_ENT } }, [_QW] = { /* 1: Qwerty */ {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC }, - {MO(_L1), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, LT(_L2, KC_QUOT)}, + {ESCLOWR, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, QUOTRSE }, {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT }, {KC_LCTL, KC_LALT, KC_LGUI, KC_BSPC, XXXXXXX, XXXXXXX, XXXXXXX, KC_SPC, KC_SLSH, KC_MINS, XXXXXXX, KC_ENT } }, [_CM] = { /* 2: Colemak */ {KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC }, - {MO(_L1), KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, LT(_L2, KC_QUOT)}, + {ESCLOWR, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, QUOTRSE }, {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT }, {KC_LCTL, KC_LALT, KC_LGUI, KC_BSPC, XXXXXXX, XXXXXXX, XXXXXXX, KC_SPC, KC_SLSH, KC_MINS, XXXXXXX, KC_ENT } }, From acd63bc03cd2dec86b04df2d4199cce1d3e13768 Mon Sep 17 00:00:00 2001 From: David Baldwynn Date: Mon, 17 Apr 2017 12:05:47 -0700 Subject: [PATCH 152/190] Fixed dvorak layout for Atreus50 --- keyboards/handwired/atreus50/keymaps/default/keymap.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/keyboards/handwired/atreus50/keymaps/default/keymap.c b/keyboards/handwired/atreus50/keymaps/default/keymap.c index 415405ec233..77cf942c3a2 100644 --- a/keyboards/handwired/atreus50/keymaps/default/keymap.c +++ b/keyboards/handwired/atreus50/keymaps/default/keymap.c @@ -66,7 +66,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //,----+----+----+----+----+----. ,----+----+----+----+----+----. TAB ,QUOT,COMM,DOT , P , Y , F , G , C , R , L ,MINS, //|----+----+----+----+----+----| |----+----+----+----+----+----| - X0 , A , O , E , U , I , D , H , R , N , S ,SLSH, + X0 , A , O , E , U , I , D , H , T , N , S ,SLSH, //|----+----+----+----+----+----| |----+----+----+----+----+----| LSFT,SCLN, Q , J , K , X , B , M , W , V , Z , X4 , //|----+----+----+----+----+----|----+----|----+----+----+----+----+----| From a3aadd888f8ade69ff9d3e4118a762aeec223833 Mon Sep 17 00:00:00 2001 From: Xyverz Date: Mon, 17 Apr 2017 20:15:57 -0700 Subject: [PATCH 153/190] Updated my TV44 keymap to be more planck-like. Used the current default planck keymap as a guide. --- keyboards/tv44/keymaps/xyverz/keymap.c | 101 +++++++++++++------------ 1 file changed, 51 insertions(+), 50 deletions(-) diff --git a/keyboards/tv44/keymaps/xyverz/keymap.c b/keyboards/tv44/keymaps/xyverz/keymap.c index a2f4f48f894..d09a11c35c5 100644 --- a/keyboards/tv44/keymaps/xyverz/keymap.c +++ b/keyboards/tv44/keymaps/xyverz/keymap.c @@ -4,20 +4,22 @@ extern keymap_config_t keymap_config; -// Layer Names -#define _DVORAK 0 -#define _QWERTY 1 -#define _COLEMAK 2 -#define _LOWER 3 -#define _RAISE 4 -#define _ADJUST 16 +enum planck_layers { + _QWERTY, + _COLEMAK, + _DVORAK, + _LOWER, + _RAISE, + _ADJUST +}; enum planck_keycodes { DVORAK = SAFE_RANGE, QWERTY, COLEMAK, LOWER, - RAISE + RAISE, + ADJUST }; // Layer-Tapping macros @@ -74,52 +76,51 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { } }; -const uint16_t PROGMEM fn_actions[] = { - -}; - void persistant_default_layer_set(uint16_t default_layer) { eeconfig_update_default_layer(default_layer); default_layer_set(default_layer); } bool process_record_user(uint16_t keycode, keyrecord_t *record) { - switch(keycode) { - case DVORAK: - if (record->event.pressed) { - persistant_default_layer_set(1UL<<_DVORAK); - } - break; - case QWERTY: - if (record->event.pressed) { - persistant_default_layer_set(1UL<<_QWERTY); - } - break; - case COLEMAK: - if (record->event.pressed) { - persistant_default_layer_set(1UL<<_COLEMAK); - } - break; - case LOWER: - if (record->event.pressed) { - layer_on(_LOWER); - update_tri_layer(_LOWER, _RAISE, _ADJUST); - } else { - layer_off(_LOWER); - update_tri_layer(_LOWER, _RAISE, _ADJUST); - } - return false; - break; - case RAISE: - if (record->event.pressed) { - layer_on(_RAISE); - update_tri_layer(_LOWER, _RAISE, _ADJUST); - } else { - layer_off(_RAISE); - update_tri_layer(_LOWER, _RAISE, _ADJUST); - } - return false; - break; + switch (keycode) { + case QWERTY: + if (record->event.pressed) { + persistant_default_layer_set(1UL<<_QWERTY); } - return MACRO_NONE; -}; + return false; + break; + case COLEMAK: + if (record->event.pressed) { + persistant_default_layer_set(1UL<<_COLEMAK); + } + return false; + break; + case DVORAK: + if (record->event.pressed) { + persistant_default_layer_set(1UL<<_DVORAK); + } + return false; + break; + case LOWER: + if (record->event.pressed) { + layer_on(_LOWER); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } else { + layer_off(_LOWER); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } + return false; + break; + case RAISE: + if (record->event.pressed) { + layer_on(_RAISE); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } else { + layer_off(_RAISE); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } + return false; + break; + } + return true; +} From 41d45afd2a76ad5a0168b7aca615a0cd7a35cc00 Mon Sep 17 00:00:00 2001 From: Xyverz Date: Mon, 17 Apr 2017 21:54:02 -0700 Subject: [PATCH 154/190] Fixed a weird diff mishap. --- keyboards/tv44/keymaps/xyverz/keymap.c | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/keyboards/tv44/keymaps/xyverz/keymap.c b/keyboards/tv44/keymaps/xyverz/keymap.c index 9c1b3076e8e..d09a11c35c5 100644 --- a/keyboards/tv44/keymaps/xyverz/keymap.c +++ b/keyboards/tv44/keymaps/xyverz/keymap.c @@ -22,20 +22,10 @@ enum planck_keycodes { ADJUST }; -<<<<<<< HEAD -// Macro name shortcuts -#define DVORAK M(_DV) -#define QWERTY M(_QW) -#define COLEMAK M(_CM) -#define ESCLOWR LT(_L1, KC_ESC) -#define MINSRSE LT(_L2, KC_MINS) -#define QUOTRSE LT(_L2, KC_QUOT) -======= // Layer-Tapping macros #define ESCLOWR LT(_LOWER, KC_ESC) #define MINSRSE LT(_RAISE, KC_MINS) #define QUOTRSE LT(_RAISE, KC_QUOT) ->>>>>>> tv44_revamp // Fillers to make layering more clear #define _______ KC_TRNS From 93b2f23bba16348e2ea5d8c83d928e3a45e2b7cc Mon Sep 17 00:00:00 2001 From: Priyadi Iman Nurcahyo Date: Wed, 19 Apr 2017 01:38:08 +0700 Subject: [PATCH 155/190] Promethium rev2 * 10 more indicator LEDs * Piezo buzzer * Uses HC138 decoder to free up 5 pins * Trackpoint buttons are now part of matrix --- keyboards/handwired/promethium/config.h | 37 ++- .../promethium/keymaps/priyadi/Makefile | 1 + .../promethium/keymaps/priyadi/keymap.c | 48 ++- keyboards/handwired/promethium/matrix.c | 306 ++++++++++++++++++ keyboards/handwired/promethium/promethium.c | 5 + keyboards/handwired/promethium/rules.mk | 4 +- keyboards/planck/keymaps/priyadi/config.h | 3 +- 7 files changed, 374 insertions(+), 30 deletions(-) create mode 100644 keyboards/handwired/promethium/matrix.c diff --git a/keyboards/handwired/promethium/config.h b/keyboards/handwired/promethium/config.h index 24f02993fb3..a13406b0ddd 100644 --- a/keyboards/handwired/promethium/config.h +++ b/keyboards/handwired/promethium/config.h @@ -35,12 +35,13 @@ along with this program. If not, see . #define DESCRIPTION /* key matrix size */ -#define MATRIX_ROWS 8 #define MATRIX_COLS 6 +#define MATRIX_ROWS 9 /* default pin-out */ -#define MATRIX_COL_PINS { B6, B7, D6, C7, F6, F7 } -#define MATRIX_ROW_PINS { D7, C6, D0, D1, F5, F4, F1, F0 } +#define MATRIX_COL_PINS { F4, F1, F0, D6, D0, D1 } +#define MATRIX_ROW_PINS { F5, F6, F7 } +#define TRACKPOINT_PINS { B7, B6, D7 } #define UNUSED_PINS /* @@ -152,17 +153,20 @@ along with this program. If not, see . //#define NO_ACTION_MACRO //#define NO_ACTION_FUNCTION -#define PS2_INIT_DELAY 2000 +#define PS2_INIT_DELAY 3000 #define BATTERY_PIN 9 #define BATTERY_POLL 30000 #define MAX_VOLTAGE 4.2 #define MIN_VOLTAGE 3.2 +#define ___ KC_NO + #define KEYMAP( \ - k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, \ - k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, \ - k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, \ - k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4b, k4c \ + k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, \ + k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, \ + k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, \ + k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4b, k4c, \ + tp1, tp2, tp3 \ ) \ { \ {k11, k12, k13, k14, k15, k16}, \ @@ -172,18 +176,29 @@ along with this program. If not, see . {k17, k18, k19, k1a, k1b, k1c}, \ {k27, k28, k29, k2a, k2b, k2c}, \ {k37, k38, k39, k3a, k3b, k3c}, \ - {k47, k48, k49, k4a, k4b, k4c} \ + {k47, k48, k49, k4a, k4b, k4c}, \ + {tp1, tp2, tp3, ___, ___, ___} \ } #ifndef __ASSEMBLER__ // assembler doesn't like enum in .h file enum led_sequence { + LED_IND_LINUX, + LED_IND_APPLE, + LED_IND_WINDOWS, + LED_IND_QWERTY, + LED_IND_ALT, + LED_IND_AUDIO, LED_IND_BLUETOOTH, LED_IND_USB, - LED_IND_BATTERY, + LED_IND_BATTERY, + LED_IND_CAPSLOCK, + LED_IND_GUI, LED_IND_FUN, LED_IND_NUM, + LED_IND_PUNC, LED_IND_EMOJI, + LED_IND_GREEK, LED_BKSP, LED_ENT, @@ -261,7 +276,7 @@ enum led_sequence { # define PS2_CLOCK_PORT PORTD # define PS2_CLOCK_PIN PIND # define PS2_CLOCK_DDR DDRD -# define PS2_CLOCK_BIT 1 +# define PS2_CLOCK_BIT 3 # define PS2_DATA_PORT PORTD # define PS2_DATA_PIN PIND # define PS2_DATA_DDR DDRD diff --git a/keyboards/handwired/promethium/keymaps/priyadi/Makefile b/keyboards/handwired/promethium/keymaps/priyadi/Makefile index 46fdfa01183..e3428254f6a 100644 --- a/keyboards/handwired/promethium/keymaps/priyadi/Makefile +++ b/keyboards/handwired/promethium/keymaps/priyadi/Makefile @@ -19,6 +19,7 @@ BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. PS2_MOUSE_ENABLE = yes PS2_USE_INT = yes +FAUXCLICKY_ENABLE = yes # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend diff --git a/keyboards/handwired/promethium/keymaps/priyadi/keymap.c b/keyboards/handwired/promethium/keymaps/priyadi/keymap.c index cf7c67339d4..61af0a8893c 100644 --- a/keyboards/handwired/promethium/keymaps/priyadi/keymap.c +++ b/keyboards/handwired/promethium/keymaps/priyadi/keymap.c @@ -574,7 +574,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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_QUOT, KC_ENT , KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, - KC_LCTL, KC_LALT, KC_LGUI, EMPTY, NUM, LSPACE, RSPACE, FUN, GREEK, KC_RGUI, C_RALT, KC_RCTL + KC_LCTL, KC_LALT, KC_LGUI, EMPTY, NUM, LSPACE, RSPACE, FUN, GREEK, KC_RGUI, C_RALT, KC_RCTL, + _______, _______, _______ ), /* Dvorak @@ -593,7 +594,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, _______, _______, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, _______, _______, KC_SLSH, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______ ), #endif @@ -614,7 +616,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_QUOT, _______, _______, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, _______, _______, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______ ), #endif @@ -635,7 +638,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, KC_Q, KC_W, KC_D, KC_F, KC_K, KC_J, KC_U, KC_R, KC_L, KC_QUOT, _______, _______, KC_A, KC_S, KC_E, KC_T, KC_G, KC_Y, KC_N, KC_I, KC_O, KC_H, _______, _______, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_P, KC_M, KC_COMM, KC_DOT, KC_SLSH, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______ ), #endif @@ -656,7 +660,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, KC_Q, KC_D, KC_R, KC_W, KC_B, KC_J, KC_F, KC_U, KC_P, KC_QUOT, _______, _______, KC_A, KC_S, KC_H, KC_T, KC_G, KC_Y, KC_N, KC_E, KC_O, KC_I, _______, _______, KC_Z, KC_X, KC_M, KC_C, KC_V, KC_K, KC_L, KC_COMM, KC_DOT, KC_SLSH, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______ ), #endif @@ -675,7 +680,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, X(LTEQ), X(GTEQ), _______, KC_GRV, KC_ASTR, KC_BSLS, KC_MINS, KC_EQL, KC_SLSH, X(NOTEQ),KC_LPRN, KC_RPRN, KC_LABK, KC_RABK, _______, KC_AMPR, KC_CIRC, KC_PIPE, KC_UNDS, KC_PLUS, KC_QUES, X(PLMIN),KC_LBRC, KC_RBRC, KC_LCBR, KC_RCBR, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_COLN, _______ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_COLN, _______, + _______, _______, _______ ), /* Num @@ -690,10 +696,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `-----------------------------------------------------------------------------------' */ [_NUM] = KEYMAP( - KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, S(KC_A), KC_7, KC_8, KC_9, S(KC_D), _______, + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, S(KC_A), KC_1, KC_2, KC_3, S(KC_D), _______, KC_GRV, KC_ASTR, KC_BSLS, KC_MINS, KC_EQL, KC_SLSH, S(KC_B), KC_4, KC_5, KC_6, S(KC_E), _______, - KC_AMPR, KC_CIRC, KC_PIPE, KC_UNDS, KC_PLUS, KC_QUES, S(KC_C), KC_1, KC_2, KC_3, S(KC_F), _______, - _______, _______, KC_X, _______, _______, _______, _______, FUN0 , KC_COMM, KC_DOT, KC_COLN, _______ + KC_AMPR, KC_CIRC, KC_PIPE, KC_UNDS, KC_PLUS, KC_QUES, S(KC_C), KC_7, KC_8, KC_9, S(KC_F), _______, + _______, _______, KC_X, _______, _______, _______, _______, FUN0 , KC_COMM, KC_DOT, KC_COLN, _______, + _______, _______, _______ ), /* Func @@ -711,7 +718,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { XXXXXXX, KC_F1, KC_F2, KC_F3, KC_F4, KC_INS, XXXXXXX, KC_PGUP, KC_UP, KC_PGDN, KC_PGUP, KC_DEL, KC_CAPS, KC_F5, KC_F6, KC_F7, KC_F8, KC_PSCR, XXXXXXX, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, _______, _______, KC_F9, KC_F10, KC_F11, KC_F12, KC_PAUS, XXXXXXX, XXXXXXX, KC_HOME, KC_END, XXXXXXX, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______ ), /* Uppercase Greek @@ -729,7 +737,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, XXXXXXX, XXXXXXX,X(UEPSI), X(URHO), X(UTAU),X(UUPSI),X(UTHET),X(UIOTA),X(UOMIC), X(UPI), _______, _______,X(UALPH),X(USIGM),X(UDELT), X(UPHI),X(UGAMM), X(UETA), X(UXI),X(UKAPP),X(ULAMB), KC_QUOT, _______, _______,X(UZETA), X(UCHI), X(UPSI),X(UOMEG),X(UBETA), X(UNU), X(UMU), KC_COMM, KC_DOT, KC_SLSH, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______ ), /* Lowercase Greek @@ -747,7 +756,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, XXXXXXX,X(FSIGM),X(LEPSI), X(LRHO), X(LTAU),X(LUPSI),X(LTHET),X(LIOTA),X(LOMIC), X(LPI), _______, _______,X(LALPH),X(LSIGM),X(LDELT), X(LPHI),X(LGAMM), X(LETA), X(LXI),X(LKAPP),X(LLAMB), KC_QUOT, _______, _______,X(LZETA), X(LCHI), X(LPSI),X(LOMEG),X(LBETA), X(LNU), X(LMU), KC_COMM, KC_DOT, KC_SLSH, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______ ), /* Empty @@ -765,7 +775,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______ ), /* Emoji @@ -783,7 +794,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { X(HART2), X(CRY2),X(WEARY),X(EYERT),X(SMIRK), X(TJOY),X(RECYC),X(UNAMU),X(MUSIC),X(OKHND),X(PENSV), X(PHEW), X(THMUP), X(PRAY),X(SMILE),X(SMIL2),X(FLUSH), X(GRIN),X(HEART), X(BYE), X(KISS),X(CELEB), X(COOL),X(NOEVS), X(THMDN),X(SLEEP), X(CLAP), X(CRY), X(VIC),X(BHART), X(SUN),X(SMEYE), X(WINK), X(MOON),X(CONFU),X(NOEVH), - X(POO), X(EYES), X(HUNRD),_______, X(SKULL),X(HORNS), X(HALO), X(FEAR),_______,X(YUMMY),X(DISAP),X(NOEVK) + X(POO), X(EYES), X(HUNRD),_______, X(SKULL),X(HORNS), X(HALO), X(FEAR),_______,X(YUMMY),X(DISAP),X(NOEVK), + _______, _______, _______ ), /* GUI @@ -801,7 +813,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { XXXXXXX, G(KC_1), G(KC_2), G(KC_3), G(KC_4), G(KC_5), G(KC_6), G(KC_7), G(KC_8), G(KC_9), G(KC_0), XXXXXXX, KC_ESC, XXXXXXX, S(KC_TAB),KC_ESC, KC_TAB, XXXXXXX, XXXXXXX, KC_WWWB, XXXXXXX, KC_WWWF, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_VOLD, KC_MUTE, KC_VOLU, KC_SPC, KC_SPC, KC_MPRV, KC_MPLY, KC_MNXT, XXXXXXX, XXXXXXX, - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + _______, _______, _______ ), /* Sys @@ -816,10 +829,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `-----------------------------------------------------------------------------------' */ [_SYS] = KEYMAP( - XXXXXXX, QWERTY, WIN, XXXXXXX, RESET, XXXXXXX, XXXXXXX, OUT_USB, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + DEBUG, QWERTY, WIN, XXXXXXX, RESET, XXXXXXX, XXXXXXX, OUT_USB, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, FC_TOG, XXXXXXX, DVORAK, XXXXXXX, GLOW, XXXXXXX, XXXXXXX, WORKMAN, LINUX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, COLEMAK, XXXXXXX, OUT_BLE, NORMAN, OSX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______ + _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, + _______, _______, _______ ), diff --git a/keyboards/handwired/promethium/matrix.c b/keyboards/handwired/promethium/matrix.c new file mode 100644 index 00000000000..2b7ce2bf5e2 --- /dev/null +++ b/keyboards/handwired/promethium/matrix.c @@ -0,0 +1,306 @@ +/* +Copyright 2012 Jun Wako +Copyright 2014 Jack Humbert +Copyright 2017 Priyadi Iman Nurcahyo + +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 +#if defined(__AVR__) +#include +#endif +#include "wait.h" +#include "print.h" +#include "debug.h" +#include "util.h" +#include "matrix.h" +#include "timer.h" + + +/* Set 0 if debouncing isn't needed */ + +#ifndef DEBOUNCING_DELAY +# define DEBOUNCING_DELAY 5 +#endif + +#if (DEBOUNCING_DELAY > 0) + static uint16_t debouncing_time; + static bool debouncing = false; +#endif + +#if (MATRIX_COLS <= 8) +# define print_matrix_header() print("\nr/c 01234567\n") +# define print_matrix_row(row) print_bin_reverse8(matrix_get_row(row)) +# define matrix_bitpop(i) bitpop(matrix[i]) +# define ROW_SHIFTER ((uint8_t)1) +#elif (MATRIX_COLS <= 16) +# define print_matrix_header() print("\nr/c 0123456789ABCDEF\n") +# define print_matrix_row(row) print_bin_reverse16(matrix_get_row(row)) +# define matrix_bitpop(i) bitpop16(matrix[i]) +# define ROW_SHIFTER ((uint16_t)1) +#elif (MATRIX_COLS <= 32) +# define print_matrix_header() print("\nr/c 0123456789ABCDEF0123456789ABCDEF\n") +# define print_matrix_row(row) print_bin_reverse32(matrix_get_row(row)) +# define matrix_bitpop(i) bitpop32(matrix[i]) +# define ROW_SHIFTER ((uint32_t)1) +#endif + +#ifdef MATRIX_MASKED + extern const matrix_row_t matrix_mask[]; +#endif + +static const uint8_t col_pins[MATRIX_COLS] = MATRIX_COL_PINS; +static const uint8_t tp_pins[3] = TRACKPOINT_PINS; + +/* matrix state(1:on, 0:off) */ +static matrix_row_t matrix[MATRIX_ROWS]; +static matrix_row_t matrix_debouncing[MATRIX_ROWS]; + +static void init_cols(void); +static bool read_cols_on_row(matrix_row_t current_matrix[], uint8_t current_row); +static void unselect_rows(void); +static void select_row(uint8_t row); +static void unselect_row(uint8_t row); + +__attribute__ ((weak)) +void matrix_init_quantum(void) { + matrix_init_kb(); +} + +__attribute__ ((weak)) +void matrix_scan_quantum(void) { + matrix_scan_kb(); +} + +__attribute__ ((weak)) +void matrix_init_kb(void) { + matrix_init_user(); +} + +__attribute__ ((weak)) +void matrix_scan_kb(void) { + matrix_scan_user(); +} + +__attribute__ ((weak)) +void matrix_init_user(void) { +} + +__attribute__ ((weak)) +void matrix_scan_user(void) { +} + +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. + #if (defined(__AVR_AT90USB1286__) || defined(__AVR_AT90USB1287__) || defined(__AVR_ATmega32U4__)) + MCUCR |= _BV(JTD); + MCUCR |= _BV(JTD); + #endif + + // initialize row and col + unselect_rows(); + init_cols(); + + // initialize matrix state: all keys off + for (uint8_t i=0; i < MATRIX_ROWS; i++) { + matrix[i] = 0; + matrix_debouncing[i] = 0; + } + + matrix_init_quantum(); +} + +uint8_t matrix_scan(void +){ + // Set row, read cols + for (uint8_t current_row = 0; current_row < MATRIX_ROWS; current_row++) { +# if (DEBOUNCING_DELAY > 0) + bool matrix_changed = read_cols_on_row(matrix_debouncing, current_row); + + if (matrix_changed) { + debouncing = true; + debouncing_time = timer_read(); + } + +# else + read_cols_on_row(matrix, current_row); +# endif + + } + +# if (DEBOUNCING_DELAY > 0) + if (debouncing && (timer_elapsed(debouncing_time) > DEBOUNCING_DELAY)) { + for (uint8_t i = 0; i < MATRIX_ROWS; i++) { + matrix[i] = matrix_debouncing[i]; + } + debouncing = false; + } +# endif + + matrix_scan_quantum(); + return 1; +} + +bool matrix_is_modified(void) +{ +#if (DEBOUNCING_DELAY > 0) + if (debouncing) return false; +#endif + return true; +} + +inline +bool matrix_is_on(uint8_t row, uint8_t col) + +{ + return (matrix[row] & ((matrix_row_t)1> 4) + 1) &= ~_BV(pin & 0xF); // IN + _SFR_IO8((pin >> 4) + 2) |= _BV(pin & 0xF); // HI + } + + // rows + DDRF |= ROW_MASK; + PORTF &= ~ROW_MASK; + + // trackpoint + for(uint8_t x = 0; x < 3; x++) { + uint8_t pin = tp_pins[x]; + _SFR_IO8((pin >> 4) + 1) &= ~_BV(pin & 0xF); // IN + _SFR_IO8((pin >> 4) + 2) |= _BV(pin & 0xF); // HI + } +} + +static bool read_cols_on_row(matrix_row_t current_matrix[], uint8_t current_row) + { + // Store last value of row prior to reading + matrix_row_t last_row_value = current_matrix[current_row]; + + // Clear data in matrix row + current_matrix[current_row] = 0; + + // special case for trackpoint + if (current_row == 8) { + for(uint8_t tp_index = 0; tp_index < 3; tp_index++) { + + // Select the TP pin to read (active low) + uint8_t pin = tp_pins[tp_index]; + uint8_t pin_state = (_SFR_IO8(pin >> 4) & _BV(pin & 0xF)); + + // Populate the matrix row with the state of the col pin + current_matrix[current_row] |= pin_state ? 0 : (ROW_SHIFTER << tp_index); + } + return (last_row_value != current_matrix[current_row]); + } + + // Select row and wait for row selecton to stabilize + select_row(current_row); + _delay_us(5); // without this wait it won't read stable value. + // wait_us(50); + + // For each col... + for(uint8_t col_index = 0; col_index < MATRIX_COLS; col_index++) { + + // Select the col pin to read (active low) + uint8_t pin = col_pins[col_index]; + uint8_t pin_state = (_SFR_IO8(pin >> 4) & _BV(pin & 0xF)); + + // Populate the matrix row with the state of the col pin + current_matrix[current_row] |= pin_state ? 0 : (ROW_SHIFTER << col_index); + } + + // Unselect row + unselect_row(current_row); + + return (last_row_value != current_matrix[current_row]); +} + +static void select_row(uint8_t row) +{ + PORTF = row_bit[row] | (PORTF & ~ROW_MASK); +} + +static void unselect_row(uint8_t row) +{ +} + +static void unselect_rows(void) +{ +} + diff --git a/keyboards/handwired/promethium/promethium.c b/keyboards/handwired/promethium/promethium.c index 4943f8c9fc6..8b1a0c71f2c 100644 --- a/keyboards/handwired/promethium/promethium.c +++ b/keyboards/handwired/promethium/promethium.c @@ -2,6 +2,11 @@ #include "analog.h" #include "timer.h" #include "matrix.h" +#include "musical_notes.h" + +float fauxclicky_pressed_note[2] = MUSICAL_NOTE(_F3, .03125); +float fauxclicky_released_note[2] = MUSICAL_NOTE(_C3, .03125); +float fauxclicky_beep_note[2] = MUSICAL_NOTE(_C3, .03125); // cubic fit {3.3, 0}, {3.5, 2.9}, {3.6, 5}, {3.7, 8.6}, {3.8, 36}, {3.9, 62}, {4.0, 73}, {4.05, 83}, {4.1, 89}, {4.15, 94}, {4.2, 100} diff --git a/keyboards/handwired/promethium/rules.mk b/keyboards/handwired/promethium/rules.mk index e75cf4dde43..a5e503ff770 100644 --- a/keyboards/handwired/promethium/rules.mk +++ b/keyboards/handwired/promethium/rules.mk @@ -67,10 +67,12 @@ PS2_MOUSE_ENABLE ?= yes PS2_USE_INT ?= yes ADAFRUIT_BLE_ENABLE ?= yes API_SYSEX_ENABLE ?= no +CUSTOM_MATRIX ?= yes # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE SLEEP_LED_ENABLE ?= no # Breathing sleep LED during USB suspend SRC += $(QUANTUM_DIR)/light_ws2812.c SRC += rgbsps.c -SRC += $(QUANTUM_DIR)/analog.c \ No newline at end of file +SRC += $(QUANTUM_DIR)/analog.c +SRC += matrix.c diff --git a/keyboards/planck/keymaps/priyadi/config.h b/keyboards/planck/keymaps/priyadi/config.h index 82e4a25c606..adc1c69aa55 100644 --- a/keyboards/planck/keymaps/priyadi/config.h +++ b/keyboards/planck/keymaps/priyadi/config.h @@ -27,7 +27,8 @@ k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, \ k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, \ k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, \ - k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4b, k4c \ + k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4b, k4c, \ + tp1, tp2, tp3 \ ) \ { \ {k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c}, \ From ffa4c72a893b416da32efef80f4779b8bd48b4bb Mon Sep 17 00:00:00 2001 From: Priyadi Iman Nurcahyo Date: Wed, 19 Apr 2017 01:40:16 +0700 Subject: [PATCH 156/190] Faux clicky bug fixes --- quantum/fauxclicky.c | 15 ++++----------- quantum/fauxclicky.h | 10 +++++----- 2 files changed, 9 insertions(+), 16 deletions(-) diff --git a/quantum/fauxclicky.c b/quantum/fauxclicky.c index 13273e7058e..c3341ca3326 100644 --- a/quantum/fauxclicky.c +++ b/quantum/fauxclicky.c @@ -20,13 +20,6 @@ along with this program. If not, see . #include #include -__attribute__ ((weak)) -float fauxclicky_pressed_note[2] = MUSICAL_NOTE(_F3, 2); -__attribute__ ((weak)) -float fauxclicky_released_note[2] = MUSICAL_NOTE(_A3, 2); -__attribute__ ((weak)) -float fauxclicky_beep_note[2] = MUSICAL_NOTE(_C3, 2); - bool fauxclicky_enabled = true; uint16_t note_start = 0; bool note_playing = false; @@ -48,13 +41,13 @@ void fauxclicky_stop() note_playing = false; } -void fauxclicky_play(float note[2]) { +void fauxclicky_play(float note[]) { if (!fauxclicky_enabled) return; if (note_playing) fauxclicky_stop(); - FAUXCLICKY_TIMER_PERIOD = (uint16_t)(((float)F_CPU) / (note[0] * FAUXCLICKY_CPU_PRESCALER)); - FAUXCLICKY_DUTY_CYCLE = (uint16_t)((((float)F_CPU) / (note[0] * FAUXCLICKY_CPU_PRESCALER)) / 2); + FAUXCLICKY_TIMER_PERIOD = (uint16_t)(((float)F_CPU) / (note[0] * (float)FAUXCLICKY_CPU_PRESCALER)); + FAUXCLICKY_DUTY_CYCLE = (uint16_t)((((float)F_CPU) / (note[0] * (float)FAUXCLICKY_CPU_PRESCALER)) / (float)2); note_playing = true; - note_period = (note[1] / 16) * (60 / (float)FAUXCLICKY_TEMPO) * 100; // check this + note_period = (note[1] / (float)16) * ((float)60 / (float)FAUXCLICKY_TEMPO) * 1000; note_start = timer_read(); FAUXCLICKY_ENABLE_OUTPUT; } diff --git a/quantum/fauxclicky.h b/quantum/fauxclicky.h index 109bd0d83eb..1a8e188dd53 100644 --- a/quantum/fauxclicky.h +++ b/quantum/fauxclicky.h @@ -21,11 +21,11 @@ along with this program. If not, see . #include "stdbool.h" __attribute__ ((weak)) -float fauxclicky_pressed_note[2]; +float fauxclicky_pressed_note[2] = MUSICAL_NOTE(_D4, 0.25); __attribute__ ((weak)) -float fauxclicky_released_note[2]; +float fauxclicky_released_note[2] = MUSICAL_NOTE(_C4, 0.125); __attribute__ ((weak)) -float fauxclicky_beep_note[2]; +float fauxclicky_beep_note[2] = MUSICAL_NOTE(_C4, 0.25); bool fauxclicky_enabled; @@ -73,11 +73,11 @@ bool fauxclicky_enabled; #endif #ifndef FAUXCLICKY_ENABLE_OUTPUT -#define FAUXCLICKY_ENABLE_OUTPUT TCCR3A |= _BV(COM3A1); +#define FAUXCLICKY_ENABLE_OUTPUT TCCR3A |= _BV(COM3A1) #endif #ifndef FAUXCLICKY_DISABLE_OUTPUT -#define FAUXCLICKY_DISABLE_OUTPUT TCCR3A &= ~(_BV(COM3A1) | _BV(COM3A0)); +#define FAUXCLICKY_DISABLE_OUTPUT TCCR3A &= ~(_BV(COM3A1) | _BV(COM3A0)) #endif #ifndef FAUXCLICKY_TIMER_PERIOD From 3fa0b66289770ccc4d8a5b39eaf66ff3b7c67529 Mon Sep 17 00:00:00 2001 From: Priyadi Iman Nurcahyo Date: Wed, 19 Apr 2017 02:52:57 +0700 Subject: [PATCH 157/190] Keymap updates and some adjustment for latest version of QMK --- .../promethium/keymaps/priyadi/Makefile | 1 + .../promethium/keymaps/priyadi/README.md | 4 +- .../promethium/keymaps/priyadi/keymap.c | 144 +++++++++++++++--- keyboards/handwired/promethium/rules.mk | 2 +- 4 files changed, 126 insertions(+), 25 deletions(-) diff --git a/keyboards/handwired/promethium/keymaps/priyadi/Makefile b/keyboards/handwired/promethium/keymaps/priyadi/Makefile index e3428254f6a..bd1a06734c3 100644 --- a/keyboards/handwired/promethium/keymaps/priyadi/Makefile +++ b/keyboards/handwired/promethium/keymaps/priyadi/Makefile @@ -20,6 +20,7 @@ RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this PS2_MOUSE_ENABLE = yes PS2_USE_INT = yes FAUXCLICKY_ENABLE = yes +BLUETOOTH = AdafruitBLE # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend diff --git a/keyboards/handwired/promethium/keymaps/priyadi/README.md b/keyboards/handwired/promethium/keymaps/priyadi/README.md index ddeaed939e2..48824b9f73b 100644 --- a/keyboards/handwired/promethium/keymaps/priyadi/README.md +++ b/keyboards/handwired/promethium/keymaps/priyadi/README.md @@ -37,8 +37,8 @@ On Promethium, USB or Bluetooth output is detected on startup. If USB is connect SYS-W, SYS-L, SYS-M switch Unicode input method. SYS-Q, SYS-D, SYS-C, SYS-K, SYS-N switch to QWERTY, DVORAK, Colemak, Workman and Norman, respectively. -On Planck, SYS-A (mnemonic: audio) toggles faux clicky: use buzzer to emit clicks on key presses and releases. +SYS-A (mnemonic: audio) toggles faux clicky: use buzzer to emit clicks on key presses and releases. -On Promethium there are 6 indicator LEDs, and under switch LEDs on each switches, including Trackpoint buttons. Totaling 57 LEDs. Output is limited to 0xF for each LEDs to conserve power. SYS-G (mnemonic: glow) toggles various backlighting modes. +On Promethium there are 16 indicator LEDs, and under switch LEDs on each switches, including Trackpoint buttons. Totaling 67 LEDs. Output is limited to 0xF for each LEDs to conserve power. SYS-G (mnemonic: glow) toggles various backlighting modes. On Promethium, there's a LED to indicate battery level. Hue indicates level: green is full, red is empty. \ No newline at end of file diff --git a/keyboards/handwired/promethium/keymaps/priyadi/keymap.c b/keyboards/handwired/promethium/keymaps/priyadi/keymap.c index 61af0a8893c..55e028f1849 100644 --- a/keyboards/handwired/promethium/keymaps/priyadi/keymap.c +++ b/keyboards/handwired/promethium/keymaps/priyadi/keymap.c @@ -38,6 +38,19 @@ along with this program. If not, see . #endif #ifdef FAUXCLICKY_ENABLE #include "fauxclicky.h" +#ifdef RGBSPS_ENABLE +#undef FAUXCLICKY_OFF +#define FAUXCLICKY_OFF do { \ + fauxclicky_enabled = false; \ + rgbsps_set(LED_AUDIO, 0, 0, 0); \ + fauxclicky_stop(); \ +} while (0) +#undef FAUXCLICKY_ON +#define FAUXCLICKY_ON do { \ + fauxclicky_enabled = true; \ + rgbsps_set(LED_AUDIO, 8, 0, 8); \ +} while (0) +#endif #endif #include "outputselect.h" #include "led.h" @@ -128,8 +141,8 @@ enum planck_keycodes { #ifndef FAUXCLICKY_ENABLE FC_TOG, #endif -#ifndef ADAFRUIT_BLE_ENABLE - OUT_BLE, +#ifndef MODULE_ADAFRUIT_BLE + OUT_BT, #endif KEYCODE_END }; @@ -428,12 +441,23 @@ const uint8_t PROGMEM LED_FN[] = { }; const uint8_t PROGMEM LED_INDICATORS[] = { - LED_IND_EMOJI, - LED_IND_NUM, - LED_IND_FUN, - LED_IND_BATTERY, - LED_IND_USB, + LED_IND_LINUX, + LED_IND_APPLE, + LED_IND_WINDOWS, + LED_IND_QWERTY, + LED_IND_ALT, + LED_IND_AUDIO, LED_IND_BLUETOOTH, + LED_IND_USB, + + LED_IND_BATTERY, + LED_IND_CAPSLOCK, + LED_IND_GUI, + LED_IND_FUN, + LED_IND_NUM, + LED_IND_PUNC, + LED_IND_EMOJI, + LED_IND_GREEK, }; const uint8_t PROGMEM LED_TRACKPOINT[] = { @@ -486,15 +510,31 @@ void led_reset(void) { } } +void led_set_default_layer_indicator(void) { + uint8_t default_layer = biton32(default_layer_state); + if (default_layer == _QWERTY) { + rgbsps_set(LED_IND_QWERTY, 15, 10, 0); + rgbsps_set(LED_IND_ALT, 0, 0, 0); + } else { + rgbsps_set(LED_IND_QWERTY, 0, 0, 0); + rgbsps_set(LED_IND_ALT, 15, 10, 0); + } + rgbsps_send(); + return; +} + void led_set_layer_indicator(void) { static uint8_t oldlayer = 255; - rgbsps_set(LED_IND_FUN, 0, 0, 0); - // rgbsps_set(LED_IND_NUM, 0, 0, 0); - rgbsps_set(LED_IND_EMOJI, 0, 0, 0); - led_reset(); + rgbsps_set(LED_IND_GUI, 0, 0, 0); + rgbsps_set(LED_IND_FUN, 0, 0, 0); + rgbsps_set(LED_IND_NUM, 0, 0, 0); + rgbsps_set(LED_IND_PUNC, 0, 0, 0); + rgbsps_set(LED_IND_GREEK, 0, 0, 0); + rgbsps_set(LED_IND_EMOJI, 0, 0, 0); + uint8_t layer = biton32(layer_state); if (oldlayer == layer) { return; @@ -508,24 +548,57 @@ void led_set_layer_indicator(void) { } switch(layer) { + case _GUI: + rgbsps_set(LED_IND_GUI, 15, 0, 15); + break; case _FUN: rgbsps_set(LED_IND_FUN, 15, 0, 0); break; - // case _NUM: - // rgbsps_set(LED_IND_NUM, 0, 0, 15); - // break; + case _NUM: + rgbsps_set(LED_IND_NUM, 0, 0, 15); + break; + case _PUNC: + rgbsps_set(LED_IND_PUNC, 0, 15, 0); + break; + case _GREEKL: + case _GREEKU: + rgbsps_set(LED_IND_GREEK, 0, 15, 15); + break; case _EMOJI: rgbsps_set(LED_IND_EMOJI, 15, 15, 0); break; default: + rgbsps_set(LED_IND_GUI, 3, 3, 3); rgbsps_set(LED_IND_FUN, 3, 3, 3); - // rgbsps_set(LED_IND_NUM, 3, 3, 3); + rgbsps_set(LED_IND_NUM, 3, 3, 3); + rgbsps_set(LED_IND_PUNC, 3, 3, 3); + rgbsps_set(LED_IND_GREEK, 3, 3, 3); rgbsps_set(LED_IND_EMOJI, 3, 3, 3); } rgbsps_send(); } +void led_set_unicode_input_mode(void) { + rgbsps_set(LED_IND_LINUX, 0, 0, 0); + rgbsps_set(LED_IND_APPLE, 0, 0, 0); + rgbsps_set(LED_IND_WINDOWS, 0, 0, 0); + + switch (get_unicode_input_mode()) { + case UC_LNX: + rgbsps_set(LED_IND_LINUX, 15, 15, 15); + break; + case UC_OSX: + rgbsps_set(LED_IND_APPLE, 15, 15, 15); + break; + case UC_WIN: + case UC_WINC: + rgbsps_set(LED_IND_WINDOWS, 15, 15, 15); + break; + } + rgbsps_send(); +} + void led_set_output_ble(void) { rgbsps_set(LED_IND_BLUETOOTH, 0, 0, 15); rgbsps_set(LED_IND_USB, 0, 0, 0); @@ -552,7 +625,16 @@ void led_init(void) { rgbsps_set(LED_TRACKPOINT1, 15, 0, 0); rgbsps_set(LED_TRACKPOINT2, 0, 0, 15); rgbsps_set(LED_TRACKPOINT3, 15, 0, 0); + + // unicode input mode + led_set_unicode_input_mode(); + + // layer indicator + led_set_layer_indicator(); + led_set_default_layer_indicator(); } + + #endif // RGBSPS_ENABLE // keymaps @@ -831,7 +913,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_SYS] = KEYMAP( DEBUG, QWERTY, WIN, XXXXXXX, RESET, XXXXXXX, XXXXXXX, OUT_USB, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, FC_TOG, XXXXXXX, DVORAK, XXXXXXX, GLOW, XXXXXXX, XXXXXXX, WORKMAN, LINUX, XXXXXXX, XXXXXXX, - XXXXXXX, XXXXXXX, XXXXXXX, COLEMAK, XXXXXXX, OUT_BLE, NORMAN, OSX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, COLEMAK, XXXXXXX, OUT_BT, NORMAN, OSX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, _______, _______, _______ ), @@ -842,6 +924,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { void persistant_default_layer_set(uint16_t default_layer) { eeconfig_update_default_layer(default_layer); default_layer_set(default_layer); + led_set_default_layer_indicator(); } #ifdef DOUBLESPACE_LAYER_ENABLE @@ -1086,14 +1169,23 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { // OS switchers case LINUX: set_unicode_input_mode(UC_LNX); +#ifdef RGBSPS_ENABLE + led_set_unicode_input_mode(); +#endif return false; break; case WIN: set_unicode_input_mode(UC_WINC); +#ifdef RGBSPS_ENABLE + led_set_unicode_input_mode(); +#endif return false; break; case OSX: set_unicode_input_mode(UC_OSX); +#ifdef RGBSPS_ENABLE + led_set_unicode_input_mode(); +#endif return false; break; @@ -1115,6 +1207,14 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { // faux clicky indicator #ifdef FAUXCLICKY_ENABLE case FC_TOG: +#ifdef RGBSPS_ENABLE + if (fauxclicky_enabled) { + rgbsps_set(LED_IND_AUDIO, 0, 0, 0); + } else { + rgbsps_set(LED_IND_AUDIO, 5, 11, 13); + } + rgbsps_send(); +#endif return true; break; #endif @@ -1123,12 +1223,12 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { } void set_output_user(uint8_t output) { -#ifdef ADAFRUIT_BLE_ENABLE +#ifdef MODULE_ADAFRUIT_BLE switch(output) { case OUTPUT_USB: led_set_output_usb(); break; - case OUTPUT_ADAFRUIT_BLE: + case OUTPUT_BLUETOOTH: led_set_output_ble(); break; default: @@ -1147,12 +1247,12 @@ void matrix_init_user() { #endif // auto detect output on init -#ifdef ADAFRUIT_BLE_ENABLE +#ifdef MODULE_ADAFRUIT_BLE uint8_t output = auto_detect_output(); if (output == OUTPUT_USB) { set_output(OUTPUT_USB); } else { - set_output(OUTPUT_ADAFRUIT_BLE); + set_output(OUTPUT_BLUETOOTH); } #endif } @@ -1178,9 +1278,9 @@ void turn_off_capslock() { bool new_capslock = usb_led & (1< Date: Wed, 19 Apr 2017 02:55:19 +0700 Subject: [PATCH 158/190] Fix Planck compatibility --- keyboards/handwired/promethium/keymaps/priyadi/keymap.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/keyboards/handwired/promethium/keymaps/priyadi/keymap.c b/keyboards/handwired/promethium/keymaps/priyadi/keymap.c index 55e028f1849..efa5d9756e7 100644 --- a/keyboards/handwired/promethium/keymaps/priyadi/keymap.c +++ b/keyboards/handwired/promethium/keymaps/priyadi/keymap.c @@ -924,7 +924,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { void persistant_default_layer_set(uint16_t default_layer) { eeconfig_update_default_layer(default_layer); default_layer_set(default_layer); +#ifdef RGBSPS_ENABLE led_set_default_layer_indicator(); +#endif } #ifdef DOUBLESPACE_LAYER_ENABLE From fecb932945e37fa8c234d162ae1643014bac7b1a Mon Sep 17 00:00:00 2001 From: dbroqua Date: Tue, 18 Apr 2017 22:26:32 +0200 Subject: [PATCH 159/190] - Fixed bug in keymap for s60-X RGB --- keyboards/s60-x-rgb/keymaps/dbroqua/keymap.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/keyboards/s60-x-rgb/keymaps/dbroqua/keymap.c b/keyboards/s60-x-rgb/keymaps/dbroqua/keymap.c index 9577a8f5d2f..210e2846224 100644 --- a/keyboards/s60-x-rgb/keymaps/dbroqua/keymap.c +++ b/keyboards/s60-x-rgb/keymaps/dbroqua/keymap.c @@ -47,7 +47,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_CAPS, ______, ______, ______, ______, ______, ______, ______, KC_PSCR, KC_SLCK, KC_PAUS, KC_UP, ______, ______, \ ______, KC_VOLD, KC_VOLU, KC_MUTE, ______, ______, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT,______, ______, \ ______, ______, KC_MPRV, KC_MPLY, KC_MNXT,______, ______, KC_PPLS, KC_PMNS, KC_END, KC_PGDN, KC_DOWN,______, ______, ______, \ - ______, ______, ______, TG(_WASD), KC_MSTP, ______, ______, ______ \ + ______, ______, ______, ______, KC_MSTP, ______, ______, ______ \ ), From 3a00aafd39a8442e039207233b1ccc19c37f7311 Mon Sep 17 00:00:00 2001 From: Xyverz Date: Tue, 18 Apr 2017 18:15:46 -0700 Subject: [PATCH 160/190] swapped RAISE with LOWER in layer-tapping macros. --- keyboards/tv44/keymaps/xyverz/keymap.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/keyboards/tv44/keymaps/xyverz/keymap.c b/keyboards/tv44/keymaps/xyverz/keymap.c index d09a11c35c5..a28828dfb93 100644 --- a/keyboards/tv44/keymaps/xyverz/keymap.c +++ b/keyboards/tv44/keymaps/xyverz/keymap.c @@ -23,9 +23,9 @@ enum planck_keycodes { }; // Layer-Tapping macros -#define ESCLOWR LT(_LOWER, KC_ESC) -#define MINSRSE LT(_RAISE, KC_MINS) -#define QUOTRSE LT(_RAISE, KC_QUOT) +#define ESCRAIS LT(_RAISE, KC_ESC) +#define MINSLWR LT(_LOWER, KC_MINS) +#define QUOTLWR LT(_LOWER, KC_QUOT) // Fillers to make layering more clear #define _______ KC_TRNS @@ -35,21 +35,21 @@ enum planck_keycodes { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_DVORAK] = { /* 0: Dvorak */ {KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH }, - {ESCLOWR, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, MINSRSE }, + {ESCRAIS, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, MINSLWR }, {KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_RSFT }, {KC_LCTL, KC_LALT, LOWER, KC_BSPC, XXXXXXX, XXXXXXX, XXXXXXX, KC_SPC, RAISE, KC_LGUI, XXXXXXX, KC_ENT } }, [_QWERTY] = { /* 1: Qwerty */ {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC }, - {ESCLOWR, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, QUOTRSE }, + {ESCRAIS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, QUOTLWR }, {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT }, {KC_LCTL, KC_LALT, LOWER, KC_BSPC, XXXXXXX, XXXXXXX, XXXXXXX, KC_SPC, RAISE, KC_LGUI, XXXXXXX, KC_ENT } }, [_COLEMAK] = { /* 2: Colemak */ {KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC }, - {ESCLOWR, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, QUOTRSE }, + {ESCRAIS, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, QUOTLWR }, {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT }, {KC_LCTL, KC_LALT, LOWER, KC_BSPC, XXXXXXX, XXXXXXX, XXXXXXX, KC_SPC, RAISE, KC_LGUI, XXXXXXX, KC_ENT } }, From b844fe7efd5439a518003d6f08427b25d9f26f40 Mon Sep 17 00:00:00 2001 From: Xyverz Date: Tue, 18 Apr 2017 20:36:26 -0700 Subject: [PATCH 161/190] LT doesn't work with tri_layer. Removed it from this keymap. --- keyboards/tv44/keymaps/xyverz/keymap.c | 45 ++++++++++++-------------- 1 file changed, 20 insertions(+), 25 deletions(-) diff --git a/keyboards/tv44/keymaps/xyverz/keymap.c b/keyboards/tv44/keymaps/xyverz/keymap.c index a28828dfb93..3ff16de35f0 100644 --- a/keyboards/tv44/keymaps/xyverz/keymap.c +++ b/keyboards/tv44/keymaps/xyverz/keymap.c @@ -22,11 +22,6 @@ enum planck_keycodes { ADJUST }; -// Layer-Tapping macros -#define ESCRAIS LT(_RAISE, KC_ESC) -#define MINSLWR LT(_LOWER, KC_MINS) -#define QUOTLWR LT(_LOWER, KC_QUOT) - // Fillers to make layering more clear #define _______ KC_TRNS #define XXXXXXX KC_NO @@ -34,38 +29,38 @@ enum planck_keycodes { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_DVORAK] = { /* 0: Dvorak */ - {KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH }, - {ESCRAIS, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, MINSLWR }, - {KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_RSFT }, - {KC_LCTL, KC_LALT, LOWER, KC_BSPC, XXXXXXX, XXXXXXX, XXXXXXX, KC_SPC, RAISE, KC_LGUI, XXXXXXX, KC_ENT } + {KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH}, + {KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS}, + {KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_RSFT}, + {KC_LCTL, KC_LALT, LOWER, KC_BSPC, XXXXXXX, XXXXXXX, XXXXXXX, KC_SPC, RAISE, KC_LGUI, XXXXXXX, KC_ENT } }, [_QWERTY] = { /* 1: Qwerty */ - {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC }, - {ESCRAIS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, QUOTLWR }, - {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT }, - {KC_LCTL, KC_LALT, LOWER, KC_BSPC, XXXXXXX, XXXXXXX, XXXXXXX, KC_SPC, RAISE, KC_LGUI, XXXXXXX, KC_ENT } + {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_RSFT}, + {KC_LCTL, KC_LALT, LOWER, KC_BSPC, XXXXXXX, XXXXXXX, XXXXXXX, KC_SPC, RAISE, KC_LGUI, XXXXXXX, KC_ENT } }, [_COLEMAK] = { /* 2: Colemak */ - {KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC }, - {ESCRAIS, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, QUOTLWR }, - {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT }, - {KC_LCTL, KC_LALT, LOWER, KC_BSPC, XXXXXXX, XXXXXXX, XXXXXXX, KC_SPC, RAISE, KC_LGUI, XXXXXXX, KC_ENT } + {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_RSFT}, + {KC_LCTL, KC_LALT, LOWER, KC_BSPC, XXXXXXX, XXXXXXX, XXXXXXX, KC_SPC, RAISE, KC_LGUI, XXXXXXX, KC_ENT } }, [_LOWER] = {/* 1: FN 1 */ - {KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_PIPE }, - {_______, _______, _______, _______, _______, _______, _______, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE }, - {KC_CAPS, _______, _______, _______, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______ }, - {KC_LEFT, KC_RGHT, _______, KC_DEL, XXXXXXX, XXXXXXX, XXXXXXX, KC_INS, _______, KC_UP, XXXXXXX, KC_DOWN } + {KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_PIPE}, + {_______, _______, _______, _______, _______, _______, _______, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE}, + {KC_CAPS, _______, _______, _______, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______}, + {KC_LEFT, KC_RGHT, _______, KC_DEL, XXXXXXX, XXXXXXX, XXXXXXX, KC_INS, _______, KC_UP, XXXXXXX, KC_DOWN} }, [_RAISE] = { /* 2: FN 2 */ - {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSLS }, - {_______, _______, _______, _______, _______, _______, _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS }, - {KC_CAPS, _______, _______, _______, _______, _______, _______, KC_MPRV, KC_MPLY, KC_MNXT, _______, _______ }, - {KC_LEFT, KC_RGHT, _______, KC_DEL, XXXXXXX, XXXXXXX, XXXXXXX, KC_INS, _______, KC_UP, XXXXXXX, KC_DOWN } + {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSLS}, + {_______, _______, _______, _______, _______, _______, _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS}, + {KC_CAPS, _______, _______, _______, _______, _______, _______, KC_MPRV, KC_MPLY, KC_MNXT, _______, _______}, + {KC_LEFT, KC_RGHT, _______, KC_DEL, XXXXXXX, XXXXXXX, XXXXXXX, KC_INS, _______, KC_UP, XXXXXXX, KC_DOWN} }, [_ADJUST] = { From 0a8df2c5e30ad3c4eb0fe3acb9949e9e4f22d103 Mon Sep 17 00:00:00 2001 From: Ryan MacLean Date: Tue, 18 Apr 2017 21:53:10 -0700 Subject: [PATCH 162/190] Adding Maximized Keymap For use with grid layout pads. --- keyboards/amjpad/amjpad.h | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/keyboards/amjpad/amjpad.h b/keyboards/amjpad/amjpad.h index b9b4d3686a0..ffba1c9b949 100644 --- a/keyboards/amjpad/amjpad.h +++ b/keyboards/amjpad/amjpad.h @@ -39,7 +39,22 @@ {k40, k41, k42, k43}, \ {k50, XXX, k52, XXX} \ } - +#define MAXKEYMAP( \ + k00, k01, k02, k03, \ + k10, k11, k12, k13, \ + k20, k21, k22, k23, \ + k30, k31, k32, k33, \ + k40, k41, k42, k43, \ + k50, k51, k52, k53\ +) \ +{ \ + {k00, k01, k02, k03}, \ + {k10, k11, k12, k13}, \ + {k20, k21, k22, k23}, \ + {k30, k31, k32, k33}, \ + {k40, k41, k42, k43}, \ + {k50, k51, k52, k53} \ +} void matrix_init_user(void); void matrix_scan_user(void); From 34130d56f1c5ceb3fa80e434f1a9a3ec2ae17fa6 Mon Sep 17 00:00:00 2001 From: Ryan MacLean Date: Tue, 18 Apr 2017 21:54:58 -0700 Subject: [PATCH 163/190] Adding Sample Max Layout --- keyboards/amjpad/keymaps/max/keymap.c | 102 ++++++++++++++++++++++++++ 1 file changed, 102 insertions(+) create mode 100644 keyboards/amjpad/keymaps/max/keymap.c diff --git a/keyboards/amjpad/keymaps/max/keymap.c b/keyboards/amjpad/keymaps/max/keymap.c new file mode 100644 index 00000000000..926a494a907 --- /dev/null +++ b/keyboards/amjpad/keymaps/max/keymap.c @@ -0,0 +1,102 @@ +#include "amjpad.h" + +#ifdef RGBLIGHT_ENABLE +#include "rgblight.h" +#endif + +// Used for SHIFT_ESC +#define MODS_CTRL_MASK (MOD_BIT(KC_LSHIFT)|MOD_BIT(KC_RSHIFT)) + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +// Layer names don't all need to be of the same length, obviously, and you can also skip them +// entirely and just use numbers. +#define _BL 0 +#define _FL 1 + +#define _______ KC_TRNS + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Keymap _BL: (Base Layer) Default Layer + * ,-------------------. + * |Esc |Setp| - | = | + * |----|----|----|----| + * | F1 | F2 | F3 | F4 | + * |----|----|----|----| + * | 7 | 8 | 9 | - | + * |----|----|----|----| + * | 4 | 5 | 6 | LF | + * |----|----|----|----| + * | 1 | 2 | 3 | \ | + * |----|----|----|----| + * |Left|Down| Up |Rght| + * `-------------------' + */ + +[_BL] = MAXKEYMAP( + + KC_ESC, KC_TAB, KC_MINS,KC_EQL, \ + KC_F1, KC_F2, KC_F3, KC_F4, \ + KC_P7, KC_P8, KC_P9, KC_PMNS, \ + KC_P4, KC_P5, KC_P6, KC_PENT, \ + KC_P1, KC_P2, KC_P3, KC_BSLS, \ + KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT), + + /* Keymap _FL: Function Layer + * ,-------------------. + * |Esc |TAB |BS | = | + * |----|----|----|----| + * | NL | / | * | - | + * |----|----|----|----| + * | 7 | 8 | 9 | | + * |----|----|----|RST | + * | 4 | 5 | 6 | | + * |----|----|----|----| + * | 1 | 2 | 3 | | + * |----|----|----| En | + * | 0 |./FN| | + * `-------------------' + */ +[_FL] = MAXKEYMAP( + + KC_ESC,KC_TAB,KC_BSPC,KC_PEQL, \ + KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, \ + KC_P7, KC_P8, KC_P9, RESET, \ + KC_P4, KC_P5, KC_P6, KC_PENT, \ + KC_P1, KC_P2, KC_P3, KC_PENT, \ + KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT), +}; + +enum function_id { + SHIFT_ESC, +}; + +const uint16_t PROGMEM fn_actions[] = { + [0] = ACTION_FUNCTION(SHIFT_ESC), +}; + +void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { + static uint8_t shift_esc_shift_mask; + switch (id) { + case SHIFT_ESC: + shift_esc_shift_mask = get_mods()&MODS_CTRL_MASK; + if (record->event.pressed) { + if (shift_esc_shift_mask) { + add_key(KC_GRV); + send_keyboard_report(); + } else { + add_key(KC_ESC); + send_keyboard_report(); + } + } else { + if (shift_esc_shift_mask) { + del_key(KC_GRV); + send_keyboard_report(); + } else { + del_key(KC_ESC); + send_keyboard_report(); + } + } + break; + } +} From 430a8e17508926718759b860977cb59831720fca Mon Sep 17 00:00:00 2001 From: Fred Sundvik Date: Wed, 19 Apr 2017 07:59:39 +0300 Subject: [PATCH 164/190] Fix LCD SS pin configuration There was a typo, so the attempted configuration proably didn't do what it should have done. I think it left the pin floating, and could cause the LCD problems issue-1230. --- .../ergodox/infinity/drivers/gdisp/st7565ergodox/board_ST7565.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/keyboards/ergodox/infinity/drivers/gdisp/st7565ergodox/board_ST7565.h b/keyboards/ergodox/infinity/drivers/gdisp/st7565ergodox/board_ST7565.h index e8c17e6e336..9650ffb4405 100644 --- a/keyboards/ergodox/infinity/drivers/gdisp/st7565ergodox/board_ST7565.h +++ b/keyboards/ergodox/infinity/drivers/gdisp/st7565ergodox/board_ST7565.h @@ -75,7 +75,7 @@ static GFXINLINE void init_board(GDisplay *g) { palSetPad(ST7565_GPIOPORT, ST7565_RST_PIN); palSetPadModeRaw(MOSI, ST7565_SPI_MODE); palSetPadModeRaw(SLCK, ST7565_SPI_MODE); - palSetPadModeRaw(SS, PAL_MODE_OUTPUT_PUSHPULL); + palSetPadModeNamed(SS, PAL_MODE_OUTPUT_PUSHPULL); spiInit(); spiStart(&SPID1, &spi1config); From ce0efa6b9a92387af395fded796e8ccb8927b52d Mon Sep 17 00:00:00 2001 From: Priyadi Iman Nurcahyo Date: Wed, 19 Apr 2017 12:03:48 +0700 Subject: [PATCH 165/190] Fix LED sequence; bug fixes --- keyboards/handwired/promethium/config.h | 12 ++++++------ .../promethium/keymaps/priyadi/keymap.c | 16 ++++++++++++---- 2 files changed, 18 insertions(+), 10 deletions(-) diff --git a/keyboards/handwired/promethium/config.h b/keyboards/handwired/promethium/config.h index a13406b0ddd..04f7caa55c6 100644 --- a/keyboards/handwired/promethium/config.h +++ b/keyboards/handwired/promethium/config.h @@ -205,7 +205,7 @@ enum led_sequence { LED_RSFT, LED_RCTL, - LED_RGUI, + LED_RALT, LED_SLSH, LED_SCLN, LED_P, @@ -213,9 +213,9 @@ enum led_sequence { LED_O, LED_L, LED_DOT, - LED_RALT, + LED_RGUI, - LED_EMOJI, + LED_GREEK, LED_COMM, LED_K, LED_I, @@ -244,7 +244,7 @@ enum led_sequence { LED_V, LED_NUM, - LED_PUNC, + LED_EMPTY, LED_C, LED_D, LED_E, @@ -252,9 +252,9 @@ enum led_sequence { LED_W, LED_S, LED_X, - LED_LALT, - LED_LGUI, + + LED_LALT, LED_Z, LED_A, LED_Q, diff --git a/keyboards/handwired/promethium/keymaps/priyadi/keymap.c b/keyboards/handwired/promethium/keymaps/priyadi/keymap.c index efa5d9756e7..7a18b02fd41 100644 --- a/keyboards/handwired/promethium/keymaps/priyadi/keymap.c +++ b/keyboards/handwired/promethium/keymaps/priyadi/keymap.c @@ -434,10 +434,10 @@ const uint8_t PROGMEM LED_MODS[] = { }; const uint8_t PROGMEM LED_FN[] = { - LED_PUNC, + LED_EMPTY, LED_NUM, LED_FUN, - LED_EMOJI + LED_GREEK }; const uint8_t PROGMEM LED_INDICATORS[] = { @@ -632,6 +632,14 @@ void led_init(void) { // layer indicator led_set_layer_indicator(); led_set_default_layer_indicator(); + + // clicky + if (fauxclicky_enabled) { + rgbsps_set(LED_IND_AUDIO, 5, 11, 13); + } else { + rgbsps_set(LED_IND_AUDIO, 0, 0, 0); + } + rgbsps_send(); } @@ -1211,9 +1219,9 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { case FC_TOG: #ifdef RGBSPS_ENABLE if (fauxclicky_enabled) { - rgbsps_set(LED_IND_AUDIO, 0, 0, 0); - } else { rgbsps_set(LED_IND_AUDIO, 5, 11, 13); + } else { + rgbsps_set(LED_IND_AUDIO, 0, 0, 0); } rgbsps_send(); #endif From f9d226ca50ba243133847d19893d2c3b844eec12 Mon Sep 17 00:00:00 2001 From: Priyadi Iman Nurcahyo Date: Wed, 19 Apr 2017 12:35:05 +0700 Subject: [PATCH 166/190] tune clicks --- keyboards/handwired/promethium/promethium.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/keyboards/handwired/promethium/promethium.c b/keyboards/handwired/promethium/promethium.c index 8b1a0c71f2c..544e94be59d 100644 --- a/keyboards/handwired/promethium/promethium.c +++ b/keyboards/handwired/promethium/promethium.c @@ -4,9 +4,9 @@ #include "matrix.h" #include "musical_notes.h" -float fauxclicky_pressed_note[2] = MUSICAL_NOTE(_F3, .03125); -float fauxclicky_released_note[2] = MUSICAL_NOTE(_C3, .03125); -float fauxclicky_beep_note[2] = MUSICAL_NOTE(_C3, .03125); +float fauxclicky_pressed_note[2] = MUSICAL_NOTE(_C5, 0.25); +float fauxclicky_released_note[2] = MUSICAL_NOTE(_C4, 0.25); +float fauxclicky_beep_note[2] = MUSICAL_NOTE(_C6, 0.25); // cubic fit {3.3, 0}, {3.5, 2.9}, {3.6, 5}, {3.7, 8.6}, {3.8, 36}, {3.9, 62}, {4.0, 73}, {4.05, 83}, {4.1, 89}, {4.15, 94}, {4.2, 100} From e27c50669a3774680d0c77c01659344b8e4e5b0d Mon Sep 17 00:00:00 2001 From: reversebias Date: Wed, 19 Apr 2017 20:12:50 +1000 Subject: [PATCH 167/190] Create temp --- keyboards/mitosis/temp | 1 + 1 file changed, 1 insertion(+) create mode 100644 keyboards/mitosis/temp diff --git a/keyboards/mitosis/temp b/keyboards/mitosis/temp new file mode 100644 index 00000000000..8b137891791 --- /dev/null +++ b/keyboards/mitosis/temp @@ -0,0 +1 @@ + From 3c3be98a064388db79127ca420592f46d2753150 Mon Sep 17 00:00:00 2001 From: reversebias Date: Wed, 19 Apr 2017 20:15:44 +1000 Subject: [PATCH 168/190] Delete temp --- keyboards/mitosis/temp | 1 - 1 file changed, 1 deletion(-) delete mode 100644 keyboards/mitosis/temp diff --git a/keyboards/mitosis/temp b/keyboards/mitosis/temp deleted file mode 100644 index 8b137891791..00000000000 --- a/keyboards/mitosis/temp +++ /dev/null @@ -1 +0,0 @@ - From 43964438fbe0708158a4a6d076ab5b5dc4ea0012 Mon Sep 17 00:00:00 2001 From: cam Date: Wed, 19 Apr 2017 20:27:49 +1000 Subject: [PATCH 169/190] First Commit --- keyboards/mitosis/Makefile | 3 + keyboards/mitosis/config.h | 87 ++++++++ keyboards/mitosis/keymaps/default/keymap.c | 221 +++++++++++++++++++++ keyboards/mitosis/matrix.c | 164 +++++++++++++++ keyboards/mitosis/mitosis.c | 31 +++ keyboards/mitosis/mitosis.h | 67 +++++++ keyboards/mitosis/readme.md | 185 +++++++++++++++++ keyboards/mitosis/rules.mk | 81 ++++++++ 8 files changed, 839 insertions(+) create mode 100644 keyboards/mitosis/Makefile create mode 100644 keyboards/mitosis/config.h create mode 100644 keyboards/mitosis/keymaps/default/keymap.c create mode 100644 keyboards/mitosis/matrix.c create mode 100644 keyboards/mitosis/mitosis.c create mode 100644 keyboards/mitosis/mitosis.h create mode 100644 keyboards/mitosis/readme.md create mode 100644 keyboards/mitosis/rules.mk diff --git a/keyboards/mitosis/Makefile b/keyboards/mitosis/Makefile new file mode 100644 index 00000000000..4e2a6f00fd8 --- /dev/null +++ b/keyboards/mitosis/Makefile @@ -0,0 +1,3 @@ +ifndef MAKEFILE_INCLUDED + include ../../Makefile +endif \ No newline at end of file diff --git a/keyboards/mitosis/config.h b/keyboards/mitosis/config.h new file mode 100644 index 00000000000..cb6378ab4cd --- /dev/null +++ b/keyboards/mitosis/config.h @@ -0,0 +1,87 @@ +/* +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 . +*/ + +#ifndef CONFIG_H +#define CONFIG_H + +#include "config_common.h" + +/* USB Device descriptor parameter */ + +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x6060 +#define DEVICE_VER 0x0001 +#define MANUFACTURER unknown +#define PRODUCT Mitosis +#define DESCRIPTION q.m.k. keyboard firmware for Mitosis + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 10 + +/* define if matrix has ghost */ +//#define MATRIX_HAS_GHOST + +/* number of backlight levels */ +//#define BACKLIGHT_LEVELS 3 + +#define ONESHOT_TIMEOUT 500 + + +/* key combination for command */ +#define IS_COMMAND() ( \ + keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ +) + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +#define PREVENT_STUCK_MODIFIERS + +/* disable debug print */ +//#define NO_DEBUG + +/* disable print */ +//#define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT +//#define NO_ACTION_MACRO +//#define NO_ACTION_FUNCTION + +//UART settings for communication with the RF microcontroller +#define SERIAL_UART_BAUD 1000000 +#define SERIAL_UART_DATA UDR1 +#define SERIAL_UART_UBRR (F_CPU / (16UL * SERIAL_UART_BAUD) - 1) +#define SERIAL_UART_TXD_READY (UCSR1A & _BV(UDRE1)) +#define SERIAL_UART_RXD_PRESENT (UCSR1A & _BV(RXC1)) +#define SERIAL_UART_INIT() do { \ + /* baud rate */ \ + UBRR1L = SERIAL_UART_UBRR; \ + /* baud rate */ \ + UBRR1H = SERIAL_UART_UBRR >> 8; \ + /* enable TX and RX */ \ + UCSR1B = _BV(TXEN1) | _BV(RXEN1); \ + /* 8-bit data */ \ + UCSR1C = _BV(UCSZ11) | _BV(UCSZ10); \ + } while(0) + +#endif diff --git a/keyboards/mitosis/keymaps/default/keymap.c b/keyboards/mitosis/keymaps/default/keymap.c new file mode 100644 index 00000000000..320d33db680 --- /dev/null +++ b/keyboards/mitosis/keymaps/default/keymap.c @@ -0,0 +1,221 @@ +// this is the style you want to emulate. +// This is the canonical layout file for the Quantum project. If you want to add another keyboard, + +#include "mitosis.h" + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +// Layer names don't all need to be of the same length, obviously, and you can also skip them +// entirely and just use numbers. +enum mitosis_layers +{ + _MALT, + _SHIFTED, + _FUNCTION, + _FUNCSHIFT +}; + +enum mitosis_keycodes +{ + FNKEY = SAFE_RANGE, + SHIFT +}; + + +// Macro definitions for readability +enum mitosis_macros +{ + VOLU, + VOLD, + ESCM +}; + +#define LONGPRESS_DELAY 150 +#define LAYER_TOGGLE_DELAY 300 + +// Fillers to make layering more clear +#define _______ KC_TRNS +#define XXXXXXX KC_NO + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[_MALT] = { /* Malt Layout, customised for reduced columns (ex: quote and shift locations) */ + {KC_Q, KC_P, KC_Y, KC_C, KC_B, KC_V, KC_M, KC_U, KC_Z, KC_L }, + {KC_A, KC_N, KC_I, KC_S, KC_F, KC_D, KC_T, KC_H, KC_O, KC_R }, + {KC_COMM, KC_DOT, KC_J, KC_G, KC_SLSH, KC_SCLN, KC_W, KC_K, KC_QUOT, KC_X }, + {XXXXXXX, M(VOLU), M(ESCM), KC_TAB, KC_LCTL, KC_LALT, KC_ENT, KC_DEL, KC_PGUP, XXXXXXX }, + {XXXXXXX, M(VOLD), KC_LGUI, KC_E, FNKEY, SHIFT, KC_SPC, KC_BSPC, KC_PGDN, XXXXXXX } +}, + + +[_SHIFTED] = { /* Shifted Layer, layered so that tri_layer can be used, or selectively + able to modify individual key's shifted behaviour */ + {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, + {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, + {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, + {XXXXXXX, _______, _______, _______, _______, _______, _______, _______, _______, XXXXXXX }, + {XXXXXXX, _______, _______, _______, _______, _______, _______, _______, _______, XXXXXXX } +}, + + + +[_FUNCTION] = { /* Function Layer, primary alternative layer featuring numpad on right hand, + cursor keys on left hand, and all symbols*/ + {KC_AMPR, KC_PERC, KC_UP, KC_CIRC, KC_PIPE, KC_LBRC, KC_7, KC_8, KC_9, KC_MINS }, + {KC_AT, KC_LEFT, KC_DOWN, KC_RGHT, KC_HASH, KC_LPRN, KC_4, KC_5, KC_6, KC_PLUS }, + {KC_ASTR, KC_UNDS, KC_EXLM, KC_DLR, KC_BSLS, KC_LCBR, KC_1, KC_2, KC_3, KC_ENT }, + {XXXXXXX, KC_HOME, KC_GRV, KC_PWR, _______, _______, KC_EQL, KC_TILD, KC_DOT, XXXXXXX }, + {XXXXXXX, KC_END, _______, _______, _______, _______, KC_0, _______, KC_PSCR, XXXXXXX } +}, + + +[_FUNCSHIFT] = { /* Function Shifted Layer, secondary alternative layer with closing brackets, + and F-keys under their numpad equivalents*/ + {_______, _______, _______, _______, _______, KC_RBRC, KC_F7, KC_F8, KC_F9, KC_F10 }, + {_______, _______, _______, _______, _______, KC_RPRN, KC_F4, KC_F5, KC_F6, KC_F11 }, + {_______, _______, _______, _______, _______, KC_RCBR, KC_F1, KC_F2, KC_F3, KC_F12 }, + {XXXXXXX, _______, _______, _______, _______, _______, _______, _______, _______, XXXXXXX }, + {XXXXXXX, _______, _______, _______, _______, _______, _______, _______, _______, XXXXXXX } +} + +}; + + +const uint16_t PROGMEM fn_actions[] = { + +}; + +static uint16_t key_timer; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + // MACRODOWN only works in this function + switch(id) { + + //switch multiplexing for media, short tap for volume up, long press for play/pause + case VOLU: + if (record->event.pressed) { + key_timer = timer_read(); // if the key is being pressed, we start the timer. + } else { // this means the key was just released, so we can figure out how long it was pressed for (tap or "held down"). + if (timer_elapsed(key_timer) > LONGPRESS_DELAY) { // LONGPRESS_DELAY being 150ms, the threshhold we pick for counting something as a tap. + return MACRO(T(MPLY), END); + } else { + return MACRO(T(VOLU), END); + } + } + break; + + //switch multiplexing for media, short tap for volume down, long press for next track + case VOLD: + if (record->event.pressed) { + key_timer = timer_read(); + } else { + if (timer_elapsed(key_timer) > LONGPRESS_DELAY) { + return MACRO(T(MNXT), END); + } else { + return MACRO(T(VOLD), END); + } + } + break; + + //switch multiplexing for escape, short tap for escape, long press for context menu + case ESCM: + if (record->event.pressed) { + key_timer = timer_read(); + } else { + if (timer_elapsed(key_timer) > LONGPRESS_DELAY) { + return MACRO(T(APP), END); + } else { + return MACRO(T(ESC), END); + } + } + break; + + break; + } + return MACRO_NONE; +}; + +static bool singular_key = false; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + + uint8_t layer; + layer = biton32(layer_state); // get the current layer + + //custom layer handling for tri_layer, + switch (keycode) { + case FNKEY: + if (record->event.pressed) { + key_timer = timer_read(); + singular_key = true; + layer_on(_FUNCTION); + } else { + if (timer_elapsed(key_timer) < LAYER_TOGGLE_DELAY || !singular_key) { + layer_off(_FUNCTION); + } + } + update_tri_layer(_FUNCTION, _SHIFTED, _FUNCSHIFT); + return false; + break; + //SHIFT is handled as LSHIFT in the general case + case SHIFT: + if (record->event.pressed) { + key_timer = timer_read(); + singular_key = true; + layer_on(_SHIFTED); + register_code(KC_LSFT); + } else { + if (timer_elapsed(key_timer) < LAYER_TOGGLE_DELAY || !singular_key) { + layer_off(_SHIFTED); + unregister_code(KC_LSFT); + } + } + update_tri_layer(_FUNCTION, _SHIFTED, _FUNCSHIFT); + return false; + break; + + //If any other key was pressed during the layer mod hold period, + //then the layer mod was used momentarily, and should block latching + default: + singular_key = false; + break; + } + + //FUNCSHIFT has been shifted by the SHIFT handling, some keys need to be excluded + if (layer == _FUNCSHIFT) { + //F1-F12 should be sent as unshifted keycodes, + //and ] needs to be unshifted or it is sent as } + if ( (keycode >= KC_F1 && keycode <= KC_F12) + || keycode == KC_RBRC ) { + if (record->event.pressed) { + unregister_mods(MOD_LSFT); + } else { + register_mods(MOD_LSFT); + } + } + } + + return true; +}; + +void matrix_scan_user(void) { + uint8_t layer = biton32(layer_state); + + switch (layer) { + case _MALT: + set_led_off; + break; + case _FUNCTION: + set_led_blue; + break; + case _SHIFTED: + set_led_red; + break; + case _FUNCSHIFT: + set_led_green; + break; + default: + break; + } +}; + diff --git a/keyboards/mitosis/matrix.c b/keyboards/mitosis/matrix.c new file mode 100644 index 00000000000..0d046339ea4 --- /dev/null +++ b/keyboards/mitosis/matrix.c @@ -0,0 +1,164 @@ +/* +Copyright 2012 Jun Wako +Copyright 2014 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 +#include +#if defined(__AVR__) +#include +#endif +#include "wait.h" +#include "print.h" +#include "debug.h" +#include "util.h" +#include "matrix.h" +#include "timer.h" + +#if (MATRIX_COLS <= 8) +# define print_matrix_header() print("\nr/c 01234567\n") +# define print_matrix_row(row) print_bin_reverse8(matrix_get_row(row)) +# define matrix_bitpop(i) bitpop(matrix[i]) +# define ROW_SHIFTER ((uint8_t)1) +#elif (MATRIX_COLS <= 16) +# define print_matrix_header() print("\nr/c 0123456789ABCDEF\n") +# define print_matrix_row(row) print_bin_reverse16(matrix_get_row(row)) +# define matrix_bitpop(i) bitpop16(matrix[i]) +# define ROW_SHIFTER ((uint16_t)1) +#elif (MATRIX_COLS <= 32) +# define print_matrix_header() print("\nr/c 0123456789ABCDEF0123456789ABCDEF\n") +# define print_matrix_row(row) print_bin_reverse32(matrix_get_row(row)) +# define matrix_bitpop(i) bitpop32(matrix[i]) +# define ROW_SHIFTER ((uint32_t)1) +#endif + +/* matrix state(1:on, 0:off) */ +static matrix_row_t matrix[MATRIX_ROWS]; + +__attribute__ ((weak)) +void matrix_init_quantum(void) { + matrix_init_kb(); +} + +__attribute__ ((weak)) +void matrix_scan_quantum(void) { + matrix_scan_kb(); +} + +__attribute__ ((weak)) +void matrix_init_kb(void) { + matrix_init_user(); +} + +__attribute__ ((weak)) +void matrix_scan_kb(void) { + matrix_scan_user(); +} + +__attribute__ ((weak)) +void matrix_init_user(void) { +} + +__attribute__ ((weak)) +void matrix_scan_user(void) { +} + +inline +uint8_t matrix_rows(void) { + return MATRIX_ROWS; +} + +inline +uint8_t matrix_cols(void) { + return MATRIX_COLS; +} + +void matrix_init(void) { + + matrix_init_quantum(); +} + +uint8_t matrix_scan(void) +{ + SERIAL_UART_INIT(); + + uint32_t timeout = 0; + + //the s character requests the RF slave to send the matrix + SERIAL_UART_DATA = 's'; + + //trust the external keystates entirely, erase the last data + uint8_t uart_data[11] = {0}; + + //there are 10 bytes corresponding to 10 columns, and an end byte + for (uint8_t i = 0; i < 11; i++) { + //wait for the serial data, timeout if it's been too long + //this only happened in testing with a loose wire, but does no + //harm to leave it in here + while(!SERIAL_UART_RXD_PRESENT){ + timeout++; + if (timeout > 10000){ + break; + } + } + uart_data[i] = SERIAL_UART_DATA; + } + + //check for the end packet, the key state bytes use the LSBs, so 0xE0 + //will only show up here if the correct bytes were recieved + if (uart_data[10] == 0xE0) + { + //shifting and transferring the keystates to the QMK matrix variable + for (uint8_t i = 0; i < MATRIX_ROWS; i++) { + matrix[i] = (uint16_t) uart_data[i*2] | (uint16_t) uart_data[i*2+1] << 5; + } + } + + + matrix_scan_quantum(); + return 1; +} + +inline +bool matrix_is_on(uint8_t row, uint8_t col) +{ + return (matrix[row] & ((matrix_row_t)1 + +#define red_led_off PORTF |= (1<<5) +#define red_led_on PORTF &= ~(1<<5) +#define blu_led_off PORTF |= (1<<4) +#define blu_led_on PORTF &= ~(1<<4) +#define grn_led_off PORTD |= (1<<1) +#define grn_led_on PORTD &= ~(1<<1) + +#define set_led_off red_led_off; grn_led_off; blu_led_off +#define set_led_red red_led_on; grn_led_off; blu_led_off +#define set_led_blue red_led_off; grn_led_off; blu_led_on +#define set_led_green red_led_off; grn_led_on; blu_led_off +#define set_led_yellow red_led_on; grn_led_on; blu_led_off +#define set_led_magenta red_led_on; grn_led_off; blu_led_on +#define set_led_cyan red_led_off; grn_led_on; blu_led_on +#define set_led_white red_led_on; grn_led_on; blu_led_on + +/* +#define LED_B 5 +#define LED_R 6 +#define LED_G 7 + +#define all_leds_off PORTF &= ~(1<event.pressed` (see keymap_default.c). + +```c +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) // this is the function signature -- just copy/paste it into your keymap file as it is. +{ + switch(id) { + case 0: // this would trigger when you hit a key mapped as M(0) + if (record->event.pressed) { + return MACRO( I(255), T(H), T(E), T(L), T(L), W(255), T(O), END ); // this sends the string 'hello' when the macro executes + } + break; + } + return MACRO_NONE; +}; +``` +A macro can include the following commands: + +* I() change interval of stroke in milliseconds. +* D() press key. +* U() release key. +* T() type key(press and release). +* W() wait (milliseconds). +* END end mark. + +So above you can see the stroke interval changed to 255ms between each keystroke, then a bunch of keys being typed, waits a while, then the macro ends. + +Note: Using macros to have your keyboard send passwords for you is a bad idea. + +### Additional keycode aliases for software-implemented layouts (Colemak, Dvorak, etc) + +Everything is assuming you're in Qwerty (in software) by default, but there is built-in support for using a Colemak or Dvorak layout by including this at the top of your keymap: + + #include "keymap_.h" + +Where is "colemak" or "dvorak". After including this line, you will get access to: + + * `CM_*` for all of the Colemak-equivalent characters + * `DV_*` for all of the Dvorak-equivalent characters + +These implementations assume you're using Colemak or Dvorak on your OS, not on your keyboard - this is referred to as a software-implemented layout. If your computer is in Qwerty and your keymap is in Colemak or Dvorak, this is referred to as a firmware-implemented layout, and you won't need these features. + +To give an example, if you're using software-implemented Colemak, and want to get an `F`, you would use `CM_F` - `KC_F` under these same circumstances would result in `T`. + +## Additional language support + +In `quantum/keymap_extras/`, you'll see various language files - these work the same way as the alternative layout ones do. Most are defined by their two letter country/language code followed by an underscore and a 4-letter abbreviation of its name. `FR_UGRV` which will result in a `ù` when using a software-implemented AZERTY layout. It's currently difficult to send such characters in just the firmware (but it's being worked on - see Unicode support). + +## Unicode support + +You can currently send 4 hex digits with your OS-specific modifier key (RALT for OSX with the "Unicode Hex Input" layout) - this is currently limited to supporting one OS at a time, and requires a recompile for switching. 8 digit hex codes are being worked on. The keycode function is `UC(n)`, where *n* is a 4 digit hexidecimal. Enable from the Makefile. + +## Other firmware shortcut keycodes + +* `RESET` - puts the MCU in DFU mode for flashing new firmware (with `make dfu`) +* `DEBUG` - the firmware into debug mode - you'll need hid_listen to see things +* `BL_ON` - turns the backlight on +* `BL_OFF` - turns the backlight off +* `BL_` - sets the backlight to level *n* +* `BL_INC` - increments the backlight level by one +* `BL_DEC` - decrements the backlight level by one +* `BL_TOGG` - toggles the backlight +* `BL_STEP` - steps through the backlight levels + +Enable the backlight from the Makefile. + +## MIDI functionalty + +This is still a WIP, but check out `quantum/keymap_midi.c` to see what's happening. Enable from the Makefile. + +## Bluetooth functionality + +This requires [some hardware changes](https://www.reddit.com/r/MechanicalKeyboards/comments/3psx0q/the_planck_keyboard_with_bluetooth_guide_and/?ref=search_posts), but can be enabled via the Makefile. The firmware will still output characters via USB, so be aware of this when charging via a computer. It would make sense to have a switch on the Bluefruit to turn it off at will. + +## Building + +Download or clone the whole firmware and navigate to the keyboards/atreus 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 run `make default`. + +### 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 a keymap just do `make` with a keymap like this: + +``` +$ make [default|jack|] +``` +Keymaps follow the format **__\.c__** and are stored in the `keymaps` folder. diff --git a/keyboards/mitosis/rules.mk b/keyboards/mitosis/rules.mk new file mode 100644 index 00000000000..4e4eba82bc8 --- /dev/null +++ b/keyboards/mitosis/rules.mk @@ -0,0 +1,81 @@ + +OPT_DEFS += -DMITOSIS_PROMICRO +OPT_DEFS += -DCATERINA_BOOTLOADER +MITOSIS_UPLOAD_COMMAND = while [ ! -r $(USB) ]; do sleep 1; done; \ + avrdude -p $(MCU) -c avr109 -U flash:w:$(TARGET).hex -P $(USB) + +# # project specific files +SRC = matrix.c + + +# MCU name +#MCU = at90usb1287 +MCU = atmega32u4 + +# Processor frequency. +# This will define a symbol, F_CPU, in all source code files equal to the +# processor frequency in Hz. You can then use this symbol in your source code to +# calculate timings. Do NOT tack on a 'UL' at the end, this will be done +# automatically to create a 32-bit value in your source code. +# +# This will be an integer division of F_USB below, as it is sourced by +# F_USB after it has run through any CPU prescalers. Note that this value +# does not *change* the processor frequency - it should merely be updated to +# reflect the processor speed set externally so that the code can use accurate +# software delays. +F_CPU = 16000000 + + +# +# LUFA specific +# +# Target architecture (see library "Board Types" documentation). +ARCH = AVR8 + +# Input clock frequency. +# This will define a symbol, F_USB, in all source code files equal to the +# input clock frequency (before any prescaling is performed) in Hz. This value may +# differ from F_CPU if prescaling is used on the latter, and is required as the +# raw input clock is fed directly to the PLL sections of the AVR for high speed +# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL' +# at the end, this will be done automatically to create a 32-bit value in your +# source code. +# +# If no clock division is performed on the input clock inside the AVR (via the +# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU. +F_USB = $(F_CPU) + +# Interrupt driven control endpoint task(+60) +OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT + + +# Boot Section Size in *bytes* +# Teensy halfKay 512 +# Teensy++ halfKay 1024 +# Atmel DFU loader 4096 +# LUFA bootloader 4096 +# USBaspLoader 2048 +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(+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 +CUSTOM_MATRIX ?= yes # Remote matrix from the wireless bridge +# 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 +# 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 + +USB ?= /dev/ttyACM0 + +upload: build + $(MITOSIS_UPLOAD_COMMAND) From 43fd889d7e42c8955fb64273fa1ddde519896284 Mon Sep 17 00:00:00 2001 From: reversebias Date: Wed, 19 Apr 2017 22:39:44 +1000 Subject: [PATCH 170/190] Update readme.md --- keyboards/mitosis/readme.md | 164 ++---------------------------------- 1 file changed, 6 insertions(+), 158 deletions(-) diff --git a/keyboards/mitosis/readme.md b/keyboards/mitosis/readme.md index a764bdf7b13..70755e32ac1 100644 --- a/keyboards/mitosis/readme.md +++ b/keyboards/mitosis/readme.md @@ -1,169 +1,17 @@ -mitosis keyboard firmware +Mitosis Keyboard Firmware ====================== -## Quantum MK Firmware - -You have access to a bunch of goodies! Check out the Makefile to enable/disable some of the features. Uncomment the `#` to enable them. Setting them to `no` does nothing and will only confuse future you. - - BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality - MIDI_ENABLE = yes # MIDI controls - # UNICODE_ENABLE = yes # Unicode support - this is commented out, just as an example. You have to use #, not // - BLUETOOTH_ENABLE = yes # Enable Bluetooth with the Adafruit EZ-Key HID - -## Mitosis specific information - These configuration files were based off the Atreus keyboard. It assumes a Pro Micro is being used, however retains the 'make upload' feature from the Atreus branch. This keyboard uses a completely different 'matrix scan' system to other keyboards, it relies on an external nRF51822 microcontroller maintaining a matrix of keystates received from the keyboard halves. The matrix.c file contains the code to poll the external microcontroller for the key matrix. As long as this file is not changed, all other QMK features are supported. -## Quick aliases to common actions +Build log of the keyboard can be found [here](https://www.reddit.com/r/MechanicalKeyboards/comments/66588f/wireless_split_qmk_mitosis/) -Your keymap can include shortcuts to common operations (called "function actions" in tmk). +Hardware design files can be found [here](https://github.com/reversebias/mitosis-hardware) -### Switching and toggling layers +Firmware for the nordic MCUs can be found [here](https://github.com/reversebias/mitosis) -`MO(layer)` - momentary switch to *layer*. As soon as you let go of the key, the layer is deactivated and you pop back out to the previous layer. When you apply this to a key, that same key must be set as `KC_TRNS` on the destination layer. Otherwise, you won't make it back to the original layer when you release the key (and you'll get a keycode sent). You can only switch to layers *above* your current layer. If you're on layer 0 and you use `MO(1)`, that will switch to layer 1 just fine. But if you include `MO(3)` on layer 5, that won't do anything for you -- because layer 3 is lower than layer 5 on the stack. +## Quantum MK Firmware -`LT(layer, kc)` - momentary switch to *layer* when held, and *kc* when tapped. Like `MO()`, this only works upwards in the layer stack (`layer` must be higher than the current layer). - -`TG(layer)` - toggles a layer on or off. As with `MO()`, you should set this key as `KC_TRNS` in the destination layer so that tapping it again actually toggles back to the original layer. Only works upwards in the layer stack. - -### Fun with modifier keys - -* `LSFT(kc)` - applies left Shift to *kc* (keycode) - `S(kc)` is an alias -* `RSFT(kc)` - applies right Shift to *kc* -* `LCTL(kc)` - applies left Control to *kc* -* `RCTL(kc)` - applies right Control to *kc* -* `LALT(kc)` - applies left Alt to *kc* -* `RALT(kc)` - applies right Alt to *kc* -* `LGUI(kc)` - applies left GUI (command/win) to *kc* -* `RGUI(kc)` - applies right GUI (command/win) to *kc* - -You can also chain these, like this: - - LALT(LCTL(KC_DEL)) -- this makes a key that sends Alt, Control, and Delete in a single keypress. - -The following shortcuts automatically add `LSFT()` to keycodes to get commonly used symbols. Their long names are also available and documented in `/quantum/keymap_common.h`. - - KC_TILD ~ - KC_EXLM ! - KC_AT @ - KC_HASH # - KC_DLR $ - KC_PERC % - KC_CIRC ^ - KC_AMPR & - KC_ASTR * - KC_LPRN ( - KC_RPRN ) - KC_UNDS _ - KC_PLUS + - KC_LCBR { - KC_RCBR } - KC_PIPE | - KC_COLN : - -`MT(mod, kc)` - is *mod* (modifier key - MOD_LCTL, MOD_LSFT) when held, and *kc* when tapped. In other words, you can have a key that sends Esc (or the letter O or whatever) when you tap it, but works as a Control key or a Shift key when you hold it down. - -These are the values you can use for the `mod` in `MT()` (right-hand modifiers are not available): - - * MOD_LCTL - * MOD_LSFT - * MOD_LALT - * MOD_LGUI - -These can also be combined like `MOD_LCTL | MOD_LSFT` e.g. `MT(MOD_LCTL | MOD_LSFT, KC_ESC)` which would activate Control and Shift when held, and send Escape when tapped. - -We've added shortcuts to make common modifier/tap (mod-tap) mappings more compact: - - * `CTL_T(kc)` - is LCTL when held and *kc* when tapped - * `SFT_T(kc)` - is LSFT when held and *kc* when tapped - * `ALT_T(kc)` - is LALT when held and *kc* when tapped - * `GUI_T(kc)` - is LGUI when held and *kc* when tapped - * `ALL_T(kc)` - is Hyper (all mods) when held and *kc* when tapped. To read more about what you can do with a Hyper key, see [this blog post by Brett Terpstra](http://brettterpstra.com/2012/12/08/a-useful-caps-lock-key/) - -### Temporarily setting the default layer - -`DF(layer)` - sets default layer to *layer*. The default layer is the one at the "bottom" of the layer stack - the ultimate fallback layer. This currently does not persist over power loss. When you plug the keyboard back in, layer 0 will always be the default. It is theoretically possible to work around that, but that's not what `DF` does. - -### Remember: These are just aliases - -These functions work the same way that their `ACTION_*` functions do - they're just quick aliases. To dig into all of the tmk ACTION_* functions, please see the [TMK documentation](https://github.com/jackhumbert/qmk_firmware/blob/master/tmk_core/doc/keymap.md#2-action). - -Instead of using `FNx` when defining `ACTION_*` functions, you can use `F(x)` - the benefit here is being able to use more than 32 function actions (up to 4096), if you happen to need them. - -## Macro shortcuts: Send a whole string when pressing just one key - -Instead of using the `ACTION_MACRO` function, you can simply use `M(n)` to access macro *n* - *n* will get passed into the `action_get_macro` as the `id`, and you can use a switch statement to trigger it. This gets called on the keydown and keyup, so you'll need to use an if statement testing `record->event.pressed` (see keymap_default.c). - -```c -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) // this is the function signature -- just copy/paste it into your keymap file as it is. -{ - switch(id) { - case 0: // this would trigger when you hit a key mapped as M(0) - if (record->event.pressed) { - return MACRO( I(255), T(H), T(E), T(L), T(L), W(255), T(O), END ); // this sends the string 'hello' when the macro executes - } - break; - } - return MACRO_NONE; -}; -``` -A macro can include the following commands: - -* I() change interval of stroke in milliseconds. -* D() press key. -* U() release key. -* T() type key(press and release). -* W() wait (milliseconds). -* END end mark. - -So above you can see the stroke interval changed to 255ms between each keystroke, then a bunch of keys being typed, waits a while, then the macro ends. - -Note: Using macros to have your keyboard send passwords for you is a bad idea. - -### Additional keycode aliases for software-implemented layouts (Colemak, Dvorak, etc) - -Everything is assuming you're in Qwerty (in software) by default, but there is built-in support for using a Colemak or Dvorak layout by including this at the top of your keymap: - - #include "keymap_.h" - -Where is "colemak" or "dvorak". After including this line, you will get access to: - - * `CM_*` for all of the Colemak-equivalent characters - * `DV_*` for all of the Dvorak-equivalent characters - -These implementations assume you're using Colemak or Dvorak on your OS, not on your keyboard - this is referred to as a software-implemented layout. If your computer is in Qwerty and your keymap is in Colemak or Dvorak, this is referred to as a firmware-implemented layout, and you won't need these features. - -To give an example, if you're using software-implemented Colemak, and want to get an `F`, you would use `CM_F` - `KC_F` under these same circumstances would result in `T`. - -## Additional language support - -In `quantum/keymap_extras/`, you'll see various language files - these work the same way as the alternative layout ones do. Most are defined by their two letter country/language code followed by an underscore and a 4-letter abbreviation of its name. `FR_UGRV` which will result in a `ù` when using a software-implemented AZERTY layout. It's currently difficult to send such characters in just the firmware (but it's being worked on - see Unicode support). - -## Unicode support - -You can currently send 4 hex digits with your OS-specific modifier key (RALT for OSX with the "Unicode Hex Input" layout) - this is currently limited to supporting one OS at a time, and requires a recompile for switching. 8 digit hex codes are being worked on. The keycode function is `UC(n)`, where *n* is a 4 digit hexidecimal. Enable from the Makefile. - -## Other firmware shortcut keycodes - -* `RESET` - puts the MCU in DFU mode for flashing new firmware (with `make dfu`) -* `DEBUG` - the firmware into debug mode - you'll need hid_listen to see things -* `BL_ON` - turns the backlight on -* `BL_OFF` - turns the backlight off -* `BL_` - sets the backlight to level *n* -* `BL_INC` - increments the backlight level by one -* `BL_DEC` - decrements the backlight level by one -* `BL_TOGG` - toggles the backlight -* `BL_STEP` - steps through the backlight levels - -Enable the backlight from the Makefile. - -## MIDI functionalty - -This is still a WIP, but check out `quantum/keymap_midi.c` to see what's happening. Enable from the Makefile. - -## Bluetooth functionality - -This requires [some hardware changes](https://www.reddit.com/r/MechanicalKeyboards/comments/3psx0q/the_planck_keyboard_with_bluetooth_guide_and/?ref=search_posts), but can be enabled via the Makefile. The firmware will still output characters via USB, so be aware of this when charging via a computer. It would make sense to have a switch on the Bluefruit to turn it off at will. +For the full Quantum feature list, see [the parent readme](/). ## Building From 215dd126d08b29939c53bf0eaa006ce6ecdedb83 Mon Sep 17 00:00:00 2001 From: dbroqua Date: Wed, 19 Apr 2017 22:12:23 +0200 Subject: [PATCH 171/190] - Moved S60-X RGB in sub project for S60-X --- keyboards/s60-x-rgb/config.h | 58 --------- keyboards/s60-x-rgb/keymaps/default/keymap.c | 48 ------- keyboards/s60-x-rgb/keymaps/default/readme.md | 27 ---- keyboards/s60-x-rgb/s60-x-rgb.c | 1 - keyboards/s60-x/Makefile | 2 + keyboards/s60-x/config.h | 120 +----------------- keyboards/s60-x/default/Makefile | 3 + keyboards/s60-x/default/config.h | 25 ++++ keyboards/s60-x/default/default.c | 28 ++++ keyboards/s60-x/default/default.h | 69 ++++++++++ keyboards/s60-x/default/rules.mk | 1 + .../keymaps/dbroqua/keymap.c | 2 +- keyboards/{s60-x-rgb => s60-x/rgb}/Makefile | 2 +- keyboards/s60-x/rgb/config.h | 31 +++++ keyboards/s60-x/rgb/rgb.c | 1 + .../s60-x-rgb.h => s60-x/rgb/rgb.h} | 0 keyboards/{s60-x-rgb => s60-x/rgb}/rules.mk | 0 keyboards/s60-x/s60-x.c | 29 +---- keyboards/s60-x/s60-x.h | 70 +--------- 19 files changed, 171 insertions(+), 346 deletions(-) delete mode 100644 keyboards/s60-x-rgb/config.h delete mode 100644 keyboards/s60-x-rgb/keymaps/default/keymap.c delete mode 100644 keyboards/s60-x-rgb/keymaps/default/readme.md delete mode 100644 keyboards/s60-x-rgb/s60-x-rgb.c create mode 100644 keyboards/s60-x/default/Makefile create mode 100644 keyboards/s60-x/default/config.h create mode 100644 keyboards/s60-x/default/default.c create mode 100644 keyboards/s60-x/default/default.h create mode 100644 keyboards/s60-x/default/rules.mk rename keyboards/{s60-x-rgb => s60-x}/keymaps/dbroqua/keymap.c (99%) rename keyboards/{s60-x-rgb => s60-x/rgb}/Makefile (53%) create mode 100644 keyboards/s60-x/rgb/config.h create mode 100644 keyboards/s60-x/rgb/rgb.c rename keyboards/{s60-x-rgb/s60-x-rgb.h => s60-x/rgb/rgb.h} (100%) rename keyboards/{s60-x-rgb => s60-x/rgb}/rules.mk (100%) diff --git a/keyboards/s60-x-rgb/config.h b/keyboards/s60-x-rgb/config.h deleted file mode 100644 index 1b98a51d6ed..00000000000 --- a/keyboards/s60-x-rgb/config.h +++ /dev/null @@ -1,58 +0,0 @@ -#ifndef CONFIG_H -#define CONFIG_H - -#include "config_common.h" - -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x6060 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Massdrop -#define PRODUCT S60-X RGB -#define DESCRIPTION q.m.k. keyboard firmware for S60-X RGB - -/* key matrix size */ -#define MATRIX_ROWS 5 -#define MATRIX_COLS 15 - -/* key matrix pins */ -#define MATRIX_ROW_PINS { B5, B4, D7, D6, D4 } -#define MATRIX_COL_PINS { D0, D1, D2, D3, D5, B6, C6, C7, F1, F0, E6, B3, B2, B1, B0 } -#define UNUSED_PINS - -/* COL2ROW or ROW2COL */ -#define DIODE_DIRECTION COL2ROW - -/* number of backlight levels */ -#define BACKLIGHT_PIN B7 -#ifdef BACKLIGHT_PIN -#define BACKLIGHT_LEVELS 3 -#endif - -/* Set 0 if debouncing isn't needed */ -#define DEBOUNCING_DELAY 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 - -/* key combination for command */ -#define IS_COMMAND() ( \ - keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ -) - -/* prevent stuck modifiers */ -#define PREVENT_STUCK_MODIFIERS - -#define RGB_DI_PIN F6 -#ifdef RGB_DI_PIN -#define RGBLIGHT_ANIMATIONS -#define RGBLED_NUM 10 -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 -#endif - -#endif \ No newline at end of file diff --git a/keyboards/s60-x-rgb/keymaps/default/keymap.c b/keyboards/s60-x-rgb/keymaps/default/keymap.c deleted file mode 100644 index 303f07638f1..00000000000 --- a/keyboards/s60-x-rgb/keymaps/default/keymap.c +++ /dev/null @@ -1,48 +0,0 @@ -#include "s60-x-rgb.h" - -/* 0: Main layer -┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐ -│ ESC │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │▒▒▒▒▒│BKSPC│ -├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ -│ TAB │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ │█████│ -├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ -│CAPSL│ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │▒▒▒▒▒│ENTER│█████│ -├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ -│LSHFT│▒▒▒▒▒│ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │▒▒▒▒▒│RSHFT│▒▒▒▒▒│ -├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ -│LCTRL│L_GUI│L_ALT│█████│█████│█████│ SPC │█████│█████│█████│R_ALT│ FN0 │ APP │RCTRL│█████│ -└─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘ -*/ - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - /* 0: ANSI qwerty */ - LEGACY_KEYMAP(ESC, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS, EQL, NO, BSPC, \ - TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC, RBRC, BSLS, \ - CAPS, A, S, D, F, G, H, J, K, L, SCLN, QUOT, NO, ENT , \ - LSFT, NO, Z, X, C, V, B, N, M, COMM, DOT, SLSH, NO, RSFT, NO, \ - LCTL, LGUI, LALT, SPC, RALT, FN0, APP, RCTL), - -/* 1: Fn layer -┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐ -│GRAVE│ F1 │ F2 │ F3 │ F4 │ F5 │ F6 │ F7 │ F8 │ F9 │ F10 │ F11 │ F12 │▒▒▒▒▒│ │ -├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ -│ │ │ Up │ │ │ │ │ │PGUP │PGDWN│PRTSC│SCLCK│PAUSE│ │█████│ -├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ -│ │Left │Down │Right│ │ │ │ │ │ │ │ │▒▒▒▒▒│ │█████│ -├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ -│ │▒▒▒▒▒│ │ │ │ │ │ │ │ │ │ │▒▒▒▒▒│ │▒▒▒▒▒│ -├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ -│ │ │ │█████│█████│█████│ │█████│█████│█████│ │ │ │ │█████│ -└─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘ -*/ - LEGACY_KEYMAP( - GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, TRNS, TRNS, \ - TRNS, TRNS, UP, TRNS, TRNS, TRNS, TRNS, TRNS, PGUP, PGDN, PSCR, SLCK, PAUS, TRNS, \ - TRNS, LEFT, DOWN, RGHT, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, \ - TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, \ - TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS), -}; - -const uint16_t PROGMEM fn_actions[] = { - [0] = ACTION_LAYER_MOMENTARY(1), // to Fn overlay -}; diff --git a/keyboards/s60-x-rgb/keymaps/default/readme.md b/keyboards/s60-x-rgb/keymaps/default/readme.md deleted file mode 100644 index 01cda9df9bb..00000000000 --- a/keyboards/s60-x-rgb/keymaps/default/readme.md +++ /dev/null @@ -1,27 +0,0 @@ -### 1 Standard - ANSI -The standard keymap is the one that is pre-flashed on the S60-X. - -#### 1.0 Default layer - ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐ - │ ESC │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │▒▒▒▒▒│BKSPC│ - ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ - │ TAB │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ │█████│ - ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ - │CAPSL│ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │▒▒▒▒▒│ENTER│█████│ - ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ - │LSHFT│▒▒▒▒▒│ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │▒▒▒▒▒│RSHFT│▒▒▒▒▒│ - ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ - │LCTRL│L_GUI│L_ALT│█████│█████│█████│ SPC │█████│█████│█████│R_ALT│ FN0 │ APP │RCTRL│█████│ - └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘ -#### 1.1 Fn layer - ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐ - │GRAVE│ F1 │ F2 │ F3 │ F4 │ F5 │ F6 │ F7 │ F8 │ F9 │ F10 │ F11 │ F12 │▒▒▒▒▒│ │ - ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ - │ │ │ Up │ │ │ │ │ │PGUP │PGDWN│PRTSC│SCLCK│PAUSE│ │█████│ - ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ - │ │Left │Down │Right│ │ │ │ │ │ │ │ │▒▒▒▒▒│ │█████│ - ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ - │ │▒▒▒▒▒│ │ │ │ │ │ │ │ │ │ │▒▒▒▒▒│ │▒▒▒▒▒│ - ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ - │ │ │ │█████│█████│█████│ │█████│█████│█████│ │ │ │ │█████│ - └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘ diff --git a/keyboards/s60-x-rgb/s60-x-rgb.c b/keyboards/s60-x-rgb/s60-x-rgb.c deleted file mode 100644 index 39d3a70e86a..00000000000 --- a/keyboards/s60-x-rgb/s60-x-rgb.c +++ /dev/null @@ -1 +0,0 @@ -#include "s60-x-rgb.h" diff --git a/keyboards/s60-x/Makefile b/keyboards/s60-x/Makefile index 4e2a6f00fd8..879e493a21d 100644 --- a/keyboards/s60-x/Makefile +++ b/keyboards/s60-x/Makefile @@ -1,3 +1,5 @@ +SUBPROJECT_DEFAULT = default + ifndef MAKEFILE_INCLUDED include ../../Makefile endif \ No newline at end of file diff --git a/keyboards/s60-x/config.h b/keyboards/s60-x/config.h index ac7951c247d..8e7bc78be21 100644 --- a/keyboards/s60-x/config.h +++ b/keyboards/s60-x/config.h @@ -27,138 +27,20 @@ along with this program. If not, see . #define PRODUCT_ID 0x6060 #define DEVICE_VER 0x0001 #define MANUFACTURER Massdrop -#define PRODUCT S60-X -#define DESCRIPTION q.m.k. keyboard firmware for S60-X /* key matrix size */ #define MATRIX_ROWS 5 #define MATRIX_COLS 15 -/* - * 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 MATRIX_ROW_PINS { B7, B3, B2, B1, B0 } -#define MATRIX_COL_PINS { D0, D1, D2, D3, D5, D4, D6, D7, B4, B5, B6, C6, C7, E6, F1 } -#define UNUSED_PINS { F0 } - /* COL2ROW or ROW2COL */ #define DIODE_DIRECTION COL2ROW - -// #define BACKLIGHT_PIN B7 -// #define BACKLIGHT_BREATHING -// #define BACKLIGHT_LEVELS 3 - /* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ #define DEBOUNCING_DELAY 5 -/* define if matrix has ghost (lacks anti-ghosting diodes) */ -//#define MATRIX_HAS_GHOST - -/* number of backlight levels */ - -/* 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 - * - * 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 - * - * 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 */ +/* key combination for 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. - */ - -/* disable debug print */ -//#define NO_DEBUG - -/* disable print */ -//#define NO_PRINT - -/* disable action features */ -//#define NO_ACTION_LAYER -//#define NO_ACTION_TAPPING -#define NO_ACTION_ONESHOT -#define NO_ACTION_MACRO -#define NO_ACTION_FUNCTION - #endif diff --git a/keyboards/s60-x/default/Makefile b/keyboards/s60-x/default/Makefile new file mode 100644 index 00000000000..191c6bb664d --- /dev/null +++ b/keyboards/s60-x/default/Makefile @@ -0,0 +1,3 @@ +ifndef MAKEFILE_INCLUDED + include ../../../Makefile +endif \ No newline at end of file diff --git a/keyboards/s60-x/default/config.h b/keyboards/s60-x/default/config.h new file mode 100644 index 00000000000..436c6fa8b64 --- /dev/null +++ b/keyboards/s60-x/default/config.h @@ -0,0 +1,25 @@ +#ifndef DEFAULT_CONFIG_H +#define DEFAULT_CONFIG_H + +#include "../config.h" + +#define PRODUCT S60-X +#define DESCRIPTION q.m.k. keyboard firmware for S60-X + +#define MATRIX_ROW_PINS { B7, B3, B2, B1, B0 } +#define MATRIX_COL_PINS { D0, D1, D2, D3, D5, D4, D6, D7, B4, B5, B6, C6, C7, E6, F1 } +#define UNUSED_PINS { F0 } + +#define LOCKING_SUPPORT_ENABLE +#define LOCKING_RESYNC_ENABLE + +/* key combination for magic key command */ +#define IS_COMMAND() ( \ + keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ +) + +#define NO_ACTION_ONESHOT +#define NO_ACTION_MACRO +#define NO_ACTION_FUNCTION + +#endif diff --git a/keyboards/s60-x/default/default.c b/keyboards/s60-x/default/default.c new file mode 100644 index 00000000000..253f5495c20 --- /dev/null +++ b/keyboards/s60-x/default/default.c @@ -0,0 +1,28 @@ +#include "default.h" + +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) + + matrix_scan_user(); +} + +bool process_record_kb(uint16_t keycode, keyrecord_t *record) { + // put your per-action keyboard code here + // runs for every action, just before processing by the firmware + + return process_record_user(keycode, 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); +} diff --git a/keyboards/s60-x/default/default.h b/keyboards/s60-x/default/default.h new file mode 100644 index 00000000000..86233ef7e0d --- /dev/null +++ b/keyboards/s60-x/default/default.h @@ -0,0 +1,69 @@ +/* +Copyright 2012,2013 Jun Wako +Copyright 2015 Vin�cius Nery Cordeiro +Copyright 2016 Felix Uhl + +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 DEFAULT_H +#define DEFAULT_H + +#include "quantum.h" + +#ifdef __INTELLISENSE__ +#define PROGMEM +#include "../config.h" +#endif + +/* S60-X keymap definition macro +* K31 is the extra key next to short left ISO shift +* K2C is the moved key next to enter on ISO boards +* K3C is the extra key next to short right JIS shift +* K0D is extra key from split backspace +* K3E is extra key from HHKB-style split right shift +*/ + +#define KEYMAP( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, \ + K40, K41, K42, K46, K4A, K4B, K4C, K4D \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, KC_NO }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, KC_NO }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E }, \ + { K40, K41, K42, KC_NO, KC_NO, KC_NO, K46, KC_NO, KC_NO, KC_NO, K4A, K4B, K4C, K4D, KC_NO } \ +} + +/*This special definition is used for S60-X keymaps that were ported from TMK + * QMK has a lot of keycodes that don't start with KC_, so using the regular KEYMAP macro is recommended + */ +#define LEGACY_KEYMAP( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, \ + K40, K41, K42, K46, K4A, K4B, K4C, K4D \ +) { \ + { KC_##K00, KC_##K01, KC_##K02, KC_##K03, KC_##K04, KC_##K05, KC_##K06, KC_##K07, KC_##K08, KC_##K09, KC_##K0A, KC_##K0B, KC_##K0C, KC_##K0D, KC_##K0E }, \ + { KC_##K10, KC_##K11, KC_##K12, KC_##K13, KC_##K14, KC_##K15, KC_##K16, KC_##K17, KC_##K18, KC_##K19, KC_##K1A, KC_##K1B, KC_##K1C, KC_##K1D, KC_NO }, \ + { KC_##K20, KC_##K21, KC_##K22, KC_##K23, KC_##K24, KC_##K25, KC_##K26, KC_##K27, KC_##K28, KC_##K29, KC_##K2A, KC_##K2B, KC_##K2C, KC_##K2D, KC_NO }, \ + { KC_##K30, KC_##K31, KC_##K32, KC_##K33, KC_##K34, KC_##K35, KC_##K36, KC_##K37, KC_##K38, KC_##K39, KC_##K3A, KC_##K3B, KC_##K3C, KC_##K3D, KC_##K3E }, \ + { KC_##K40, KC_##K41, KC_##K42, KC_NO, KC_NO, KC_NO, KC_##K46, KC_NO, KC_NO, KC_NO, KC_##K4A, KC_##K4B, KC_##K4C, KC_##K4D, KC_NO } \ +} + +#endif \ No newline at end of file diff --git a/keyboards/s60-x/default/rules.mk b/keyboards/s60-x/default/rules.mk new file mode 100644 index 00000000000..b8ff7626071 --- /dev/null +++ b/keyboards/s60-x/default/rules.mk @@ -0,0 +1 @@ +RGBLIGHT_ENABLE ?= no \ No newline at end of file diff --git a/keyboards/s60-x-rgb/keymaps/dbroqua/keymap.c b/keyboards/s60-x/keymaps/dbroqua/keymap.c similarity index 99% rename from keyboards/s60-x-rgb/keymaps/dbroqua/keymap.c rename to keyboards/s60-x/keymaps/dbroqua/keymap.c index 210e2846224..940119e52fc 100644 --- a/keyboards/s60-x-rgb/keymaps/dbroqua/keymap.c +++ b/keyboards/s60-x/keymaps/dbroqua/keymap.c @@ -1,4 +1,4 @@ -#include "s60-x-rgb.h" +#include "s60-x.h" #define _DEFAULT 0 #define _FN 1 diff --git a/keyboards/s60-x-rgb/Makefile b/keyboards/s60-x/rgb/Makefile similarity index 53% rename from keyboards/s60-x-rgb/Makefile rename to keyboards/s60-x/rgb/Makefile index 57b2ef62e5f..bd09e5885d0 100644 --- a/keyboards/s60-x-rgb/Makefile +++ b/keyboards/s60-x/rgb/Makefile @@ -1,3 +1,3 @@ ifndef MAKEFILE_INCLUDED - include ../../Makefile + include ../../../Makefile endif diff --git a/keyboards/s60-x/rgb/config.h b/keyboards/s60-x/rgb/config.h new file mode 100644 index 00000000000..26b246e573e --- /dev/null +++ b/keyboards/s60-x/rgb/config.h @@ -0,0 +1,31 @@ +#ifndef RBG_CONFIG_H +#define RBG_CONFIG_H + +#include "../config.h" + +#define PRODUCT S60-X-RGB +#define DESCRIPTION q.m.k. keyboard firmware for S60-X RGB + +/* key matrix pins */ +#define MATRIX_ROW_PINS { B5, B4, D7, D6, D4 } +#define MATRIX_COL_PINS { D0, D1, D2, D3, D5, B6, C6, C7, F1, F0, E6, B3, B2, B1, B0 } + +/* number of backlight levels */ +#define BACKLIGHT_PIN B7 +#ifdef BACKLIGHT_PIN +#define BACKLIGHT_LEVELS 3 +#endif + +/* prevent stuck modifiers */ +#define PREVENT_STUCK_MODIFIERS + +#define RGB_DI_PIN F6 +#ifdef RGB_DI_PIN +#define RGBLIGHT_ANIMATIONS +#define RGBLED_NUM 10 +#define RGBLIGHT_HUE_STEP 8 +#define RGBLIGHT_SAT_STEP 8 +#define RGBLIGHT_VAL_STEP 8 +#endif + +#endif \ No newline at end of file diff --git a/keyboards/s60-x/rgb/rgb.c b/keyboards/s60-x/rgb/rgb.c new file mode 100644 index 00000000000..0117e14ae55 --- /dev/null +++ b/keyboards/s60-x/rgb/rgb.c @@ -0,0 +1 @@ +#include "rgb.h" diff --git a/keyboards/s60-x-rgb/s60-x-rgb.h b/keyboards/s60-x/rgb/rgb.h similarity index 100% rename from keyboards/s60-x-rgb/s60-x-rgb.h rename to keyboards/s60-x/rgb/rgb.h diff --git a/keyboards/s60-x-rgb/rules.mk b/keyboards/s60-x/rgb/rules.mk similarity index 100% rename from keyboards/s60-x-rgb/rules.mk rename to keyboards/s60-x/rgb/rules.mk diff --git a/keyboards/s60-x/s60-x.c b/keyboards/s60-x/s60-x.c index 417358140cb..f031dd770d2 100644 --- a/keyboards/s60-x/s60-x.c +++ b/keyboards/s60-x/s60-x.c @@ -1,28 +1 @@ -#include "s60-x.h" - -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) - - matrix_scan_user(); -} - -bool process_record_kb(uint16_t keycode, keyrecord_t *record) { - // put your per-action keyboard code here - // runs for every action, just before processing by the firmware - - return process_record_user(keycode, 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); -} +#include "s60-x.h" \ No newline at end of file diff --git a/keyboards/s60-x/s60-x.h b/keyboards/s60-x/s60-x.h index 29a2a27b22b..5bf8cfcefa1 100644 --- a/keyboards/s60-x/s60-x.h +++ b/keyboards/s60-x/s60-x.h @@ -1,69 +1,13 @@ -/* -Copyright 2012,2013 Jun Wako -Copyright 2015 Vincius Nery Cordeiro -Copyright 2016 Felix Uhl - -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 S60X_H #define S60X_H +#ifdef SUBPROJECT_default + #include "default.h" +#endif +#ifdef SUBPROJECT_rgb + #include "rgb.h" +#endif + #include "quantum.h" -#ifdef __INTELLISENSE__ -#define PROGMEM -#include "config.h" -#endif - -/* S60-X keymap definition macro -* K31 is the extra key next to short left ISO shift -* K2C is the moved key next to enter on ISO boards -* K3C is the extra key next to short right JIS shift -* K0D is extra key from split backspace -* K3E is extra key from HHKB-style split right shift -*/ - -#define KEYMAP( \ - K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, \ - K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \ - K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, \ - K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, \ - K40, K41, K42, K46, K4A, K4B, K4C, K4D \ -) { \ - { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E }, \ - { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, KC_NO }, \ - { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, KC_NO }, \ - { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E }, \ - { K40, K41, K42, KC_NO, KC_NO, KC_NO, K46, KC_NO, KC_NO, KC_NO, K4A, K4B, K4C, K4D, KC_NO } \ -} - -/*This special definition is used for S60-X keymaps that were ported from TMK - * QMK has a lot of keycodes that don't start with KC_, so using the regular KEYMAP macro is recommended - */ -#define LEGACY_KEYMAP( \ - K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, \ - K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \ - K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, \ - K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, \ - K40, K41, K42, K46, K4A, K4B, K4C, K4D \ -) { \ - { KC_##K00, KC_##K01, KC_##K02, KC_##K03, KC_##K04, KC_##K05, KC_##K06, KC_##K07, KC_##K08, KC_##K09, KC_##K0A, KC_##K0B, KC_##K0C, KC_##K0D, KC_##K0E }, \ - { KC_##K10, KC_##K11, KC_##K12, KC_##K13, KC_##K14, KC_##K15, KC_##K16, KC_##K17, KC_##K18, KC_##K19, KC_##K1A, KC_##K1B, KC_##K1C, KC_##K1D, KC_NO }, \ - { KC_##K20, KC_##K21, KC_##K22, KC_##K23, KC_##K24, KC_##K25, KC_##K26, KC_##K27, KC_##K28, KC_##K29, KC_##K2A, KC_##K2B, KC_##K2C, KC_##K2D, KC_NO }, \ - { KC_##K30, KC_##K31, KC_##K32, KC_##K33, KC_##K34, KC_##K35, KC_##K36, KC_##K37, KC_##K38, KC_##K39, KC_##K3A, KC_##K3B, KC_##K3C, KC_##K3D, KC_##K3E }, \ - { KC_##K40, KC_##K41, KC_##K42, KC_NO, KC_NO, KC_NO, KC_##K46, KC_NO, KC_NO, KC_NO, KC_##K4A, KC_##K4B, KC_##K4C, KC_##K4D, KC_NO } \ -} - #endif From 973e91078b443b2ee22f3c5e1b2c3bbd4aec936c Mon Sep 17 00:00:00 2001 From: skullY Date: Fri, 21 Apr 2017 21:46:01 -0700 Subject: [PATCH 172/190] Tweak the shift_fn keymap so it works --- keyboards/clueboard/keymaps/shift_fn/keymap.c | 6 ++-- keyboards/clueboard/keymaps/skully/keymap.c | 35 ++++++++++--------- 2 files changed, 22 insertions(+), 19 deletions(-) diff --git a/keyboards/clueboard/keymaps/shift_fn/keymap.c b/keyboards/clueboard/keymaps/shift_fn/keymap.c index c4fae036982..fdec37a5401 100644 --- a/keyboards/clueboard/keymaps/shift_fn/keymap.c +++ b/keyboards/clueboard/keymaps/shift_fn/keymap.c @@ -19,8 +19,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { F(0), KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_GRV, KC_BSPC, KC_PGUP, \ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGDN, \ KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, \ - KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RO, KC_RSFT, KC_UP, \ - KC_LCTL, KC_LGUI, KC_LALT, KC_MHEN, KC_SPC,KC_SPC, KC_HENK, KC_RALT, KC_RCTL, MO(_FL), KC_LEFT, KC_DOWN, KC_RGHT), + MO(_FL), KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RO, KC_RSFT, KC_UP, \ + KC_LCTL, KC_LGUI, KC_LALT,KC_MHEN, KC_SPC, KC_SPC, KC_HENK, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), /* Keymap _FL: Function Layer */ @@ -29,7 +29,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { S(KC_TAB), S(KC_Q), S(KC_W),S(KC_E),S(KC_R),S(KC_T), S(KC_Y), S(KC_U),S(KC_I),S(KC_O), S(KC_P), S(KC_LBRC),S(KC_RBRC),S(KC_BSLS), S(KC_PGDN), \ S(KC_LCTL),S(KC_A), MO(_CL),S(KC_D),S(KC_F),S(KC_G), S(KC_H), S(KC_J),S(KC_K),S(KC_L), S(KC_SCLN),S(KC_QUOT),S(KC_NUHS),S(KC_ENT), \ MO(_FL), S(KC_NUBS),S(KC_Z),S(KC_X),S(KC_C),S(KC_V), S(KC_B), S(KC_N),S(KC_M),S(KC_COMM),S(KC_DOT), S(KC_SLSH),S(KC_RO), KC_RSFT, KC_PGUP, \ - KC_LCTL, KC_LALT, KC_LGUI,MO(_FL), S(KC_SPC),S(KC_SPC), MO(_FL), KC_RGUI, KC_RALT, KC_RCTL, KC_HOME, KC_PGDN, KC_END), + KC_LCTL, KC_LALT, KC_LGUI,KC_MHEN, S(KC_SPC),S(KC_SPC), KC_HENK, KC_RGUI, KC_RALT, KC_RCTL, KC_HOME, KC_PGDN, KC_END), /* Keymap _CL: Control layer */ diff --git a/keyboards/clueboard/keymaps/skully/keymap.c b/keyboards/clueboard/keymaps/skully/keymap.c index 077d214facc..df7757a9222 100644 --- a/keyboards/clueboard/keymaps/skully/keymap.c +++ b/keyboards/clueboard/keymaps/skully/keymap.c @@ -16,33 +16,36 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Keymap _BL: Base Layer (Default Layer) */ [_BL] = KEYMAP( - F(0), KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_GRV, KC_BSPC, KC_PGUP, \ - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGDN, \ - KC_LCTL,KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, \ - KC_LSFT,KC_NUBS,KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RO, KC_RSFT, KC_UP, \ - KC_LCTL,KC_LALT,KC_LGUI,MO(_FL), KC_SPC, KC_SPC, MO(_FL), KC_RGUI, KC_RCTL, MO(_FL), KC_LEFT, KC_DOWN, KC_RGHT), + F(0), KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_GRV, KC_BSPC, KC_PGUP, \ + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGDN, \ + KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, \ + MO(_FL), KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RO, KC_RSFT, KC_UP, \ + KC_LCTL, KC_LALT, KC_LGUI,KC_MHEN, KC_SPC, KC_SPC, KC_HENK, KC_RGUI, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), /* Keymap _FL: Function Layer */ [_FL] = KEYMAP( - KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______,KC_DEL, BL_STEP, \ - _______,_______,_______,_______,_______,_______,_______,_______,KC_PSCR,KC_SLCK,KC_PAUS,_______,_______,_______, _______, \ - _______,_______,MO(_CL),_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, \ - _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, KC_PGUP, \ - _______,_______,_______,MO(_FL), _______,_______, MO(_FL),_______,_______,MO(_FL),KC_HOME,KC_PGDN,KC_END), + S(KC_GRV), KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, S(KC_GRV), KC_DEL, BL_STEP, \ + S(KC_TAB), S(KC_Q), S(KC_W),S(KC_E),S(KC_R),S(KC_T), S(KC_Y), S(KC_U),S(KC_I),S(KC_O), S(KC_P), S(KC_LBRC),S(KC_RBRC),S(KC_BSLS), S(KC_PGDN), \ + S(KC_LCTL),S(KC_A), MO(_CL),S(KC_D),S(KC_F),S(KC_G), S(KC_H), S(KC_J),S(KC_K),S(KC_L), S(KC_SCLN),S(KC_QUOT),S(KC_NUHS),S(KC_ENT), \ + MO(_FL), S(KC_NUBS),S(KC_Z),S(KC_X),S(KC_C),S(KC_V), S(KC_B), S(KC_N),S(KC_M),S(KC_COMM),S(KC_DOT), S(KC_SLSH),S(KC_RO), KC_RSFT, KC_PGUP, \ + KC_LCTL, KC_LALT, KC_LGUI,KC_MHEN, S(KC_SPC),S(KC_SPC), KC_HENK, KC_RGUI, KC_RALT, KC_RCTL, KC_HOME, KC_PGDN, KC_END), /* Keymap _CL: Control layer */ [_CL] = KEYMAP( - _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, \ - _______,_______,_______,_______,RESET, _______,_______,_______,_______,_______,_______,_______,_______,_______, _______, \ - _______,_______,MO(_CL),_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, \ - _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, \ - _______,_______,_______,_______, _______,_______, _______,_______,_______,MO(_FL),_______, _______, _______), + _______, _______, _______,_______,_______,_______,_______,_______,_______,_______, _______, _______, _______, _______, RGB_TOG, RGB_VAI, \ + _______, _______, _______,_______,RESET, _______,_______,_______,_______,_______, _______, _______, _______, _______, RGB_VAD, \ + _______, _______, MO(_CL),_______,_______,_______,_______,_______,_______,_______, _______, _______, _______, _______, \ + MO(_FL), _______, _______,_______,_______,_______,_______,_______,_______,_______, _______, _______, _______, MO(_FL), RGB_SAI, \ + _______, _______, _______,_______, RGB_MOD,RGB_MOD, _______, _______, _______, _______, RGB_HUD,RGB_SAD,RGB_HUI), }; +/* This is a list of user defined functions. F(N) corresponds to item N + of this list. + */ const uint16_t PROGMEM fn_actions[] = { - [0] = ACTION_FUNCTION(0), + [0] = ACTION_FUNCTION(0), // Calls action_function() }; void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { From 187c78f3cb725cca4200a03e96cbadf9cd560cdd Mon Sep 17 00:00:00 2001 From: Solomon Date: Sat, 22 Apr 2017 09:25:41 -0400 Subject: [PATCH 173/190] Added an additional clueboard layout. (#1252) * Current building keymap * Working media keys * Added mute key. Fixed volume. Fixed media * Updating readme * Swapped readme order --- keyboards/clueboard/keymaps/serubin/Makefile | 4 + keyboards/clueboard/keymaps/serubin/keymap.c | 103 ++++++++++++++++++ .../clueboard/keymaps/serubin/layout-base.png | Bin 0 -> 38703 bytes .../clueboard/keymaps/serubin/layout-fn.png | Bin 0 -> 35216 bytes .../keymaps/serubin/layout-media.png | Bin 0 -> 28944 bytes keyboards/clueboard/keymaps/serubin/readme.md | 23 ++++ 6 files changed, 130 insertions(+) create mode 100644 keyboards/clueboard/keymaps/serubin/Makefile create mode 100644 keyboards/clueboard/keymaps/serubin/keymap.c create mode 100644 keyboards/clueboard/keymaps/serubin/layout-base.png create mode 100644 keyboards/clueboard/keymaps/serubin/layout-fn.png create mode 100644 keyboards/clueboard/keymaps/serubin/layout-media.png create mode 100644 keyboards/clueboard/keymaps/serubin/readme.md diff --git a/keyboards/clueboard/keymaps/serubin/Makefile b/keyboards/clueboard/keymaps/serubin/Makefile new file mode 100644 index 00000000000..ba997f86967 --- /dev/null +++ b/keyboards/clueboard/keymaps/serubin/Makefile @@ -0,0 +1,4 @@ + +MOUSEKEY_ENABLE = yes +EXTRAKEY_ENABLE = yes + diff --git a/keyboards/clueboard/keymaps/serubin/keymap.c b/keyboards/clueboard/keymaps/serubin/keymap.c new file mode 100644 index 00000000000..18446eb31d7 --- /dev/null +++ b/keyboards/clueboard/keymaps/serubin/keymap.c @@ -0,0 +1,103 @@ +#include "clueboard.h" + +// Helpful defines +#define GRAVE_MODS (MOD_BIT(KC_LSHIFT)|MOD_BIT(KC_RSHIFT)|MOD_BIT(KC_LGUI)|MOD_BIT(KC_RGUI)|MOD_BIT(KC_LALT)|MOD_BIT(KC_RALT)) +#define _______ KC_TRNS + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +// Layer names don't all need to be of the same length, obviously, and you can also skip them +// entirely and just use numbers. +#define _BL 0 +#define _FL 1 +#define _ME 2 +#define _CL 3 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Keymap _BL: Base Layer (Default Layer) + */ +[_BL] = KEYMAP( + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_GRV, KC_BSPC, KC_PGUP, \ + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGDN, \ + F(1), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, \ + KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RO, KC_RSFT, KC_UP, \ + KC_LCTL, KC_LGUI, KC_LALT, KC_MHEN, KC_SPC,KC_SPC, KC_HENK, KC_RGUI, MO(_FL), MO(_ME), KC_LEFT, KC_DOWN, KC_RGHT), + + /* Keymap _FL: Function Layer + */ +[_FL] = KEYMAP( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, KC_DEL, KC_HOME, \ + _______, _______, _______,_______,_______,_______,_______,_______,KC_PSCR,KC_SLCK, KC_PAUS, _______, _______, KC_PSCR, KC_END, \ + _______, _______, MO(_CL),_______,_______,_______,_______,_______,_______,_______, _______, _______, _______, _______, \ + _______, _______, _______,_______,_______,_______,_______,_______,_______,_______, _______, _______, _______, _______, KC_PGUP, \ + _______, _______, _______, _______, _______,_______, _______, _______, MO(_FL), MO(_ME), KC_HOME, KC_PGDN, KC_END), + +/* Keymap _FL: Function Layer + */ +[_ME] = KEYMAP( + _______, _______, _______,_______,_______,_______,_______,_______,_______,_______, _______, _______, _______, _______, KC_MUTE, KC_VOLU, \ + _______, _______, _______,_______,_______,_______,_______,_______,KC_PSCR,KC_SLCK, KC_PAUS, _______, _______, _______, KC_VOLD, \ + _______, _______, MO(_CL),_______,_______,_______,_______,_______,_______,_______, _______, _______, _______, _______, \ + _______, _______, _______,_______,_______,_______,_______,_______,_______,_______, _______, _______, _______ , _______, _______, \ + _______, _______, _______, _______, _______,_______, _______, _______, MO(_FL), MO(_ME), KC_MPRV, KC_MPLY, KC_MNXT), + + + /* Keymap _CL: Control layer + */ +[_CL] = KEYMAP( + _______, _______, _______,_______,_______,_______,_______,_______,_______,_______, _______, _______, _______, _______, RGB_TOG, RGB_VAI, \ + _______, _______, _______,_______,RESET, _______,_______,_______,_______,_______, _______, _______, _______, _______, RGB_VAD, \ + _______, _______, MO(_CL),_______,_______,_______,_______,_______,_______,_______, _______, _______, _______, _______, \ + MO(_FL), _______, _______,_______,_______,_______,_______,_______,_______,_______, _______, _______, MO(_FL), _______, RGB_SAI, \ + _______, _______, _______,_______, RGB_MOD, RGB_MOD, _______, _______, _______, _______, RGB_HUD, RGB_SAD, RGB_HUI), +}; + +/* This is a list of user defined functions. F(N) corresponds to item N + of this list. + */ +const uint16_t PROGMEM fn_actions[] = { + [0] = ACTION_FUNCTION(0), // Calls action_function() + [1] = ACTION_MODS_TAP_KEY(MOD_LCTL, KC_ESC), +}; + +void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { + static uint8_t mods_pressed; + static bool mod_flag; + + switch (id) { + case 0: + /* Handle the combined Grave/Esc key + */ + mods_pressed = get_mods()&GRAVE_MODS; // Check to see what mods are pressed + + if (record->event.pressed) { + /* The key is being pressed. + */ + if (mods_pressed) { + mod_flag = true; + add_key(KC_GRV); + send_keyboard_report(); + } else { + add_key(KC_ESC); + send_keyboard_report(); + } + } else { + /* The key is being released. + */ + if (mod_flag) { + mod_flag = false; + del_key(KC_GRV); + send_keyboard_report(); + } else { + del_key(KC_ESC); + send_keyboard_report(); + } + } + break; + case 1: + if(record->event.pressed) { + del_key(KC_ESC); + } + break; + } +} diff --git a/keyboards/clueboard/keymaps/serubin/layout-base.png b/keyboards/clueboard/keymaps/serubin/layout-base.png new file mode 100644 index 0000000000000000000000000000000000000000..8dcdc064355dcbf2405ceaab447eac84aebb8aee GIT binary patch literal 38703 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 Date: Sat, 22 Apr 2017 15:15:17 -0700 Subject: [PATCH 174/190] Added lae3 keymap --- keyboards/planck/keymaps/lae3/Makefile | 23 +++ keyboards/planck/keymaps/lae3/config.h | 8 + keyboards/planck/keymaps/lae3/keymap.c | 262 ++++++++++++++++++++++++ keyboards/planck/keymaps/lae3/readme.md | 1 + 4 files changed, 294 insertions(+) create mode 100644 keyboards/planck/keymaps/lae3/Makefile create mode 100644 keyboards/planck/keymaps/lae3/config.h create mode 100644 keyboards/planck/keymaps/lae3/keymap.c create mode 100644 keyboards/planck/keymaps/lae3/readme.md diff --git a/keyboards/planck/keymaps/lae3/Makefile b/keyboards/planck/keymaps/lae3/Makefile new file mode 100644 index 00000000000..595803e322f --- /dev/null +++ b/keyboards/planck/keymaps/lae3/Makefile @@ -0,0 +1,23 @@ +# Build Options +# change to "no" to disable the options, or define them in the Makefile in +# the appropriate keymap folder that will get included automatically +# +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE = yes # Mouse keys(+4700) +EXTRAKEY_ENABLE = yes # Audio control and System control(+450) +CONSOLE_ENABLE = no # Console for debug(+400) +COMMAND_ENABLE = no # Commands for debug and configuration +NKRO_ENABLE = yes # 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 = no # MIDI controls +AUDIO_ENABLE = yes # Audio output on port C6 +UNICODE_ENABLE = no # Unicode +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. + +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend + +ifndef QUANTUM_DIR + include ../../../../Makefile +endif diff --git a/keyboards/planck/keymaps/lae3/config.h b/keyboards/planck/keymaps/lae3/config.h new file mode 100644 index 00000000000..a28634e696d --- /dev/null +++ b/keyboards/planck/keymaps/lae3/config.h @@ -0,0 +1,8 @@ +#ifndef LAE3_KEYMAP_H +#define LAE3_KEYMAP_H + +#include "../../config.h" + +#define PREVENT_STUCK_MODIFIERS + +#endif diff --git a/keyboards/planck/keymaps/lae3/keymap.c b/keyboards/planck/keymaps/lae3/keymap.c new file mode 100644 index 00000000000..5ad30610cf7 --- /dev/null +++ b/keyboards/planck/keymaps/lae3/keymap.c @@ -0,0 +1,262 @@ +#include "planck.h" +#include "action_layer.h" +#ifdef AUDIO_ENABLE +#include "audio.h" +#endif +#include "eeconfig.h" + +extern keymap_config_t keymap_config; + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +// Layer names don't all need to be of the same length, obviously, and you can also skip them +// entirely and just use numbers. +enum planck_layers { + _QWERTY, + _ARROW, + _NUMPAD, + _MOVEMENT, + _LOWER, + _RAISE, + _ADJUST +}; + +#define _MV _MOVEMENT + +enum planck_keycodes { + QWERTY = SAFE_RANGE, + ARROW, + NUMPAD, + LOWER, + RAISE, +}; + +// Fillers to make layering more clear +#define _______ KC_TRNS +#define XXXXXXX KC_NO + +#define KC_MUP KC_MS_UP +#define KC_MDN KC_MS_DOWN +#define KC_MLFT KC_MS_LEFT +#define KC_MRGT KC_MS_RIGHT +#define KC_MB1 KC_MS_BTN1 +#define KC_MB2 KC_MS_BTN2 +#define KC_MB3 KC_MS_BTN3 +#define KC_MB4 KC_MS_BTN4 +#define KC_MB5 KC_MS_BTN5 +#define KC_MWUP KC_MS_WH_UP +#define KC_MWDN KC_MS_WH_DOWN + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + /* Qwerty + * ,-----------------------------------------------------------------------------------. + * | Esc | Q | W | E | R | T | Y | U | I | O | P | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Tab | A | S | D | F | G | H | J | K | L | ; |Enter | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * |Shift | Z | X | C | V | B | N | M | , | . | / |Shift | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Ctrl | Alt | GUI | Move |Lower | Space |Raise | Move | GUI | Alt | Ctrl | + * `-----------------------------------------------------------------------------------' + */ + [_QWERTY] = { + {KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, + {KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT }, + {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT}, + {KC_LCTL, KC_LALT, KC_LGUI, MO(_MV), LOWER, KC_SPC, KC_SPC, RAISE, MO(_MV), KC_RGUI, KC_RALT, KC_RCTL} + }, + + /* Arrow + * ,-----------------------------------------------------------------------------------. + * | | | | | | | | | | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | | Up | | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | | | | | | | | | Left | Down | Right| + * `-----------------------------------------------------------------------------------' + */ + [_ARROW] = { + {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, + {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, + {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_UP, _______}, + {_______, _______, _______, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT} + }, + + /* Numpad + * ,-----------------------------------------------------------------------------------. + * | | | | | | |NumLck| 7 | 8 | 9 | / | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | |Enter | 4 | 5 | 6 | * | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | 3 | 2 | 1 | - | | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | | | | | | | | 0 | = | + | | + * `-----------------------------------------------------------------------------------' + */ + [_NUMPAD] = { + {_______, _______, _______, _______, _______, _______, KC_NLCK, KC_P7, KC_P8, KC_P9, KC_PSLS, _______}, + {_______, _______, _______, _______, _______, _______, KC_PENT, KC_P4, KC_P5, KC_P6, KC_PAST, _______}, + {_______, _______, _______, _______, _______, _______, _______, KC_P1, KC_P2, KC_P3, KC_PMNS, _______}, + {_______, _______, _______, _______, _______, _______, _______, _______, KC_P0, KC_PDOT, KC_PPLS, _______} + }, + + /* Movement + * ,-----------------------------------------------------------------------------------. + * | |MsBut2|Ms Up |MsBut1|MsWhUp| | Home | PgDn | PgUp | End | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | |Ms Lft|Ms Dn |Ms Rgt|MsWhDn| | Left | Down | Up | Right| | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | | | | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | | | | | | | | | | | | + * `-----------------------------------------------------------------------------------' + */ + [_MOVEMENT] = { + {_______, KC_MB2, KC_MUP, KC_MB1, KC_MWUP, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END, _______, _______}, + {_______, KC_MLFT, KC_MDN, KC_MRGT, KC_MWDN, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, _______}, + {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, + {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} + }, + + /* Lower + * ,-----------------------------------------------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | - | = | Del | End | PgDn | | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Caps | 6 | 7 | 8 | 9 | 0 | [ | ] | \ | ' | | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | F1 | F2 | F3 | F4 | | | F5 | F6 | F7 | F8 | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | | | + * `-----------------------------------------------------------------------------------' + */ + [_LOWER] = { + {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_MINS, KC_EQL, KC_DEL, KC_END, KC_PGDN, _______}, + {KC_CAPS, KC_6, KC_7, KC_8, KC_9, KC_0, KC_LBRC, KC_RBRC, KC_BSLS, KC_QUOT, XXXXXXX, _______}, + {_______, KC_F1, KC_F2, KC_F3, KC_F4, XXXXXXX, XXXXXXX, KC_F5, KC_F6, KC_F7, KC_F8, _______}, + {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} + }, + + /* Raise + * ,-----------------------------------------------------------------------------------. + * | ~ | ! | @ | # | $ | % | _ | + | Ins | Home | PgUp | | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Caps | ^ | & | * | ( | ) | { | } | | | " | | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | F9 | F10 | F11 | F12 | | | | | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | | | + * `-----------------------------------------------------------------------------------' + */ + [_RAISE] = { + {KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_UNDS, KC_PLUS, KC_INS, KC_HOME, KC_PGUP, _______}, + {KC_CAPS, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_LCBR, KC_RCBR, KC_PIPE, KC_DQUO, XXXXXXX, _______}, + {_______, KC_F9, KC_F10, KC_F11, KC_F12, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______}, + {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} + }, + + /* Adjust (Lower + Raise) + * ,-----------------------------------------------------------------------------------. + * |Reset | | | | | | | | | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | |Bcklgt| Mute |Vol Dn|Vol Up| | |Qwerty|Arrow |Numpad| | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | | | | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | | | | | | | | | | | | + * `-----------------------------------------------------------------------------------' + */ + [_ADJUST] = { + {RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, + {_______, BL_STEP, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, QWERTY, ARROW, NUMPAD, _______, _______}, + {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, + {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} + } + +}; + +#ifdef AUDIO_ENABLE + +float tone_startup[][2] = SONG(STARTUP_SOUND); +float music_scale[][2] = SONG(MUSIC_SCALE_SOUND); + +float tone_goodbye[][2] = SONG(GOODBYE_SOUND); + +#endif + +bool process_record_user(uint16_t keycode, keyrecord_t *record) +{ + switch (keycode) { + case LOWER: + if (record->event.pressed) { + layer_on(_LOWER); + } else { + layer_off(_LOWER); + } + update_tri_layer(_LOWER, _RAISE, _ADJUST); + return false; + case RAISE: + if (record->event.pressed) { + layer_on(_RAISE); + } else { + layer_off(_RAISE); + } + update_tri_layer(_LOWER, _RAISE, _ADJUST); + return false; + case QWERTY: + if (record->event.pressed) { + layer_off(_ARROW); + layer_off(_NUMPAD); + } + return false; + case ARROW: + if (record->event.pressed) { + layer_off(_NUMPAD); + layer_on(_ARROW); + } + return false; + case NUMPAD: + if (record->event.pressed) { + layer_off(_ARROW); + layer_on(_NUMPAD); + } + return false; + } + return true; +} + +void matrix_init_user(void) +{ +#ifdef AUDIO_ENABLE + startup_user(); +#endif +} + +#ifdef AUDIO_ENABLE + +void startup_user() +{ + _delay_ms(100); // gets rid of tick + PLAY_NOTE_ARRAY(tone_startup, false, 0); +} + +void shutdown_user() +{ + PLAY_NOTE_ARRAY(tone_goodbye, false, 0); + _delay_ms(150); + stop_all_notes(); +} + +void music_on_user(void) +{ + music_scale_user(); +} + +void music_scale_user(void) +{ + PLAY_NOTE_ARRAY(music_scale, false, 0); +} + +#endif diff --git a/keyboards/planck/keymaps/lae3/readme.md b/keyboards/planck/keymaps/lae3/readme.md new file mode 100644 index 00000000000..429b51456a8 --- /dev/null +++ b/keyboards/planck/keymaps/lae3/readme.md @@ -0,0 +1 @@ +Keymap based around mode-switching for extended functionality From 2e62ff9807e3a5bd0a0ff77045673d74ce16ddba Mon Sep 17 00:00:00 2001 From: Ryan MacLean Date: Sat, 22 Apr 2017 20:49:34 -0700 Subject: [PATCH 175/190] Initial Ortho Commit (LEFT SIDE) Using only one layer, and activating it with two keys at the moment. As with previous comments, this isn't final, but is a good starting point for a one-handed keyboard, half a Planck-like ortholinear keyboard, or a sample to show a layout with a function layer. --- keyboards/amjpad/keymaps/ortho_left/keymap.c | 65 ++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 keyboards/amjpad/keymaps/ortho_left/keymap.c diff --git a/keyboards/amjpad/keymaps/ortho_left/keymap.c b/keyboards/amjpad/keymaps/ortho_left/keymap.c new file mode 100644 index 00000000000..d3e4d9944b6 --- /dev/null +++ b/keyboards/amjpad/keymaps/ortho_left/keymap.c @@ -0,0 +1,65 @@ +#include "amjpad.h" + +#ifdef RGBLIGHT_ENABLE +#include "rgblight.h" +#endif + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +// Layer names don't all need to be of the same length, obviously, and you can also skip them +// entirely and just use numbers. +#define _BL 0 +#define _FL 1 + +#define _______ KC_TRNS + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Keymap _BL: (Base Layer) Default Layer + * ,-------------------. + * | T | G | B |Spac| + * |----|----|----|----| + * | R | F | V | Fn | + * |----|----|----|----| + * | E | D | C | OS | + * |----|----|----|----| + * | W | S | X | Alt| + * |----|----|----|----| + * | Q | A | Z | Ctl| + * |----|----|----|----| + * | Esc| Tab|Shft| Fn2| + * `-------------------' + */ + +[_BL] = MAXKEYMAP( + + KC_T, KC_G, KC_B, KC_SPACE,\ + KC_R, KC_F, KC_V, MO(1), \ + KC_E, KC_D, KC_C, KC_LGUI, \ + KC_W, KC_S, KC_X, KC_LALT, \ + KC_Q, KC_A, KC_Z, KC_LCTL, \ + KC_TAB, KC_ESC, KC_LSHIFT, MO(1)), + + /* Keymap _FL: Function Layer + * ,-------------------. + * | 5 | F5 | F11|Spac| + * |----|----|----|----| + * | 4 | F4 | F10| | + * |----|----|----|----| + * | 3 | F3 | F9 | OS | + * |----|----|----|----| + * | 2 | F2 | F8 | Alt| + * |----|----|----|----| + * | 1 | F1 | F7 | Ctl| + * |----|----|----|----| + * | ` | Del|Shft| | + * `-------------------' + */ +[_FL] = MAXKEYMAP( + + KC_5, KC_F5, KC_F11, _______, \ + KC_4, KC_F4, KC_F10, _______, \ + KC_3, KC_F3, KC_F9, _______, \ + KC_2, KC_F2, KC_F8, _______, \ + KC_1, KC_F1, KC_F7, _______, \ + KC_GRV,KC_DEL, _______, _______), +}; From d27ff5ccf6dbb3aa1dbdd05e53c7027c8894e733 Mon Sep 17 00:00:00 2001 From: Ryan MacLean Date: Sat, 22 Apr 2017 22:34:14 -0700 Subject: [PATCH 177/190] Adding Right Layout --- keyboards/amjpad/keymaps/ortho_right/keymap.c | 65 +++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 keyboards/amjpad/keymaps/ortho_right/keymap.c diff --git a/keyboards/amjpad/keymaps/ortho_right/keymap.c b/keyboards/amjpad/keymaps/ortho_right/keymap.c new file mode 100644 index 00000000000..33e599abdc0 --- /dev/null +++ b/keyboards/amjpad/keymaps/ortho_right/keymap.c @@ -0,0 +1,65 @@ +#include "amjpad.h" + +#ifdef RGBLIGHT_ENABLE +#include "rgblight.h" +#endif + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +// Layer names don't all need to be of the same length, obviously, and you can also skip them +// entirely and just use numbers. +#define _BL 0 +#define _FL 1 + +#define _______ KC_TRNS + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Keymap _BL: (Base Layer) Default Layer + * ,-------------------. + * |Spac| N | H | Y | + * |----|----|----|----| + * | Fn | M | J | U | + * |----|----|----|----| + * |Left| , | K | I | + * |----|----|----|----| + * |Down| . | L | O | + * |----|----|----|----| + * | Up | / | ; | P | + * |----|----|----|----| + * |Rght| Ret| " |Bspc| + * `-------------------' + */ + +[_BL] = MAXKEYMAP( + + KC_SPACE, KC_N, KC_H, KC_Y, \ + MO(1), KC_M, KC_J, KC_U, \ + KC_LEFT, KC_COMM, KC_K, KC_I, \ + KC_DOWN, KC_DOT, KC_L, KC_O, \ + KC_UP, KC_SLASH, KC_SCLN, KC_P, \ + KC_RIGHT, KC_ENT, KC_QUOT, KC_BSPC), + + /* Keymap _FL: Function Layer + * ,-------------------. + * |Esc | F12| F6 | 6 | + * |----|----|----|----| + * | NL | M | - | 7 | + * |----|----|----|----| + * |Left| , | = | 8 | + * |----|----|----|----| + * |Down| . | [ | 9 | + * |----|----|----|----| + * | Up | / | ] | 0 | + * |----|----|----|----| + * |Rght| Ret| \ | Del| + * `-------------------' + */ +[_FL] = MAXKEYMAP( + + _______, KC_F12, KC_F6, KC_6, \ + _______, _______, KC_MINS, KC_7, \ + _______, _______, KC_EQL, KC_8, \ + _______, _______, KC_LBRC, KC_9, \ + _______, _______, KC_RBRC, KC_0, \ + _______, _______, KC_BSLS, KC_DEL), +}; From e2a5dfdba60eeac559ad152d8506aec5c4d15138 Mon Sep 17 00:00:00 2001 From: Justin Frank Date: Sun, 23 Apr 2017 19:38:40 -0700 Subject: [PATCH 178/190] Switched Alt and GUI key places --- keyboards/planck/keymaps/lae3/keymap.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/keyboards/planck/keymaps/lae3/keymap.c b/keyboards/planck/keymaps/lae3/keymap.c index 5ad30610cf7..81f94ccd619 100644 --- a/keyboards/planck/keymaps/lae3/keymap.c +++ b/keyboards/planck/keymaps/lae3/keymap.c @@ -57,14 +57,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |------+------+------+------+------+------|------+------+------+------+------+------| * |Shift | Z | X | C | V | B | N | M | , | . | / |Shift | * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Ctrl | Alt | GUI | Move |Lower | Space |Raise | Move | GUI | Alt | Ctrl | + * | Ctrl | GUI | Alt | Move |Lower | Space |Raise | Move | Alt | GUI | Ctrl | * `-----------------------------------------------------------------------------------' */ [_QWERTY] = { {KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, {KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT }, {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT}, - {KC_LCTL, KC_LALT, KC_LGUI, MO(_MV), LOWER, KC_SPC, KC_SPC, RAISE, MO(_MV), KC_RGUI, KC_RALT, KC_RCTL} + {KC_LCTL, KC_LGUI, KC_LALT, MO(_MV), LOWER, KC_SPC, KC_SPC, RAISE, MO(_MV), KC_RALT, KC_RGUI, KC_RCTL} }, /* Arrow From 4cc41de50ba6246f08eadcdf8465deb35e6fc20e Mon Sep 17 00:00:00 2001 From: Stephen Tudor Date: Mon, 24 Apr 2017 11:16:14 -0400 Subject: [PATCH 179/190] Add smt keymap for HHKB --- keyboards/hhkb/keymaps/smt/keymap.c | 176 ++++++++++++++++++++++++++++ 1 file changed, 176 insertions(+) create mode 100644 keyboards/hhkb/keymaps/smt/keymap.c diff --git a/keyboards/hhkb/keymaps/smt/keymap.c b/keyboards/hhkb/keymaps/smt/keymap.c new file mode 100644 index 00000000000..a7ea54de80a --- /dev/null +++ b/keyboards/hhkb/keymaps/smt/keymap.c @@ -0,0 +1,176 @@ +/* -*- eval: (turn-on-orgtbl); -*- + * default HHKB Layout + */ +#include "hhkb.h" + +#define _QWERTY 0 +#define _COLEMAK 1 +#define _DVORAK 2 +#define _HHKB 3 + +enum planck_keycodes { + QWERTY = SAFE_RANGE, + COLEMAK, + DVORAK, + HHKB +}; + +// Fillers to make layering more clear +#define _______ KC_TRNS +#define XXXXXXX KC_NO + +// Custom macros +#define CTL_ESC CTL_T(KC_ESC) // Tap for Esc, hold for Ctrl +#define SFT_ENT SFT_T(KC_ENT) // Tap for Enter, hold for Shift +#define HPR_TAB ALL_T(KC_TAB) // Tap for Tab, hold for Hyper (Super+Ctrl+Alt+Shift) +#define MEH_GRV MEH_T(KC_GRV) // Tap for Backtick, hold for Meh (Ctrl+Alt+Shift) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + /* Layer QWERTY: Qwerty Layer + |-------+---+---+---+---+---+---+---+---+---+---+-------+-----+-------+---| + | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | \ | ` | + |-------+---+---+---+---+---+---+---+---+---+---+-------+-----+-------+---| + | Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] | Backs | | + |-------+---+---+---+---+---+---+---+---+---+---+-------+-----+-------+---| + | Cont | A | S | D | F | G | H | J | K | L | ; | ' | Ent | | | + |-------+---+---+---+---+---+---+---+---+---+---+-------+-----+-------+---| + | Shift | Z | X | C | V | B | N | M | , | . | / | Shift | Fn | | | + |-------+---+---+---+---+---+---+---+---+---+---+-------+-----+-------+---| + + |------+------+-----------------------+------+------| + | LAlt | LGUI | ******* Space ******* | RGUI | RAlt | + |------+------+-----------------------+------+------| + */ + + [_QWERTY] = KEYMAP( // Qwerty layer + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, MEH_GRV, \ + HPR_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC, \ + CTL_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, SFT_ENT, \ + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(_HHKB), \ + KC_LALT, KC_LGUI, /* */ KC_SPC, KC_RGUI, KC_RALT), + + + + /* Layer COLEMAK: Colemak Layer + |-------+---+---+---+---+---+---+---+---+---+---+-------+-----+-------+---| + | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | \ | ` | + |-------+---+---+---+---+---+---+---+---+---+---+-------+-----+-------+---| + | Tab | Q | W | F | P | G | J | L | U | Y | ; | [ | ] | Backs | | + |-------+---+---+---+---+---+---+---+---+---+---+-------+-----+-------+---| + | Cont | A | R | S | T | D | H | N | E | I | O | ' | Ent | | | + |-------+---+---+---+---+---+---+---+---+---+---+-------+-----+-------+---| + | Shift | Z | X | C | V | B | K | M | , | . | / | Shift | Fn | | | + |-------+---+---+---+---+---+---+---+---+---+---+-------+-----+-------+---| + + |------+------+-----------------------+------+------| + | LAlt | LGUI | ******* Space ******* | RGUI | RAlt | + |------+------+-----------------------+------+------| + */ + + [_COLEMAK] = KEYMAP( // Colemak layer + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, MEH_GRV, \ + HPR_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_LBRC, KC_RBRC, KC_BSPC, \ + CTL_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, SFT_ENT, \ + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(_HHKB), \ + KC_LALT, KC_LGUI, /* */ KC_SPC, KC_RGUI, KC_RALT), + + + + /* Layer DVORAK: Dvorak Layer + |-------+---+---+---+---+---+---+---+---+---+---+-------+-----+-------+---| + | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | [ | ] | \ | ` | + |-------+---+---+---+---+---+---+---+---+---+---+-------+-----+-------+---| + | Tab | ' | , | . | P | Y | F | G | C | R | L | / | = | Backs | | + |-------+---+---+---+---+---+---+---+---+---+---+-------+-----+-------+---| + | Cont | A | O | E | U | I | D | H | T | N | S | - | Ent | | | + |-------+---+---+---+---+---+---+---+---+---+---+-------+-----+-------+---| + | Shift | ; | Q | J | K | X | B | M | W | V | Z | Shift | Fn | | | + |-------+---+---+---+---+---+---+---+---+---+---+-------+-----+-------+---| + + |------+------+-----------------------+------+------| + | LAlt | LGUI | ******* Space ******* | RGUI | RAlt | + |------+------+-----------------------+------+------| + */ + + [_DVORAK] = KEYMAP( // Dvorak layer + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_LBRC, KC_RBRC, KC_BSLS, MEH_GRV, \ + HPR_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH, KC_EQL, KC_BSPC, \ + CTL_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS, SFT_ENT, \ + KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_RSFT, MO(_HHKB), \ + KC_LALT, KC_LGUI, /* */ KC_SPC, KC_RGUI, KC_RALT), + + + + /* Layer HHKB: HHKB mode (HHKB Fn) + |------+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-------+-------+-----| + | Pwr | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | Ins | Del | + |------+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-------+-------+-----| + | Caps | | | | | | | | Psc | Slk | Pus | Up | | Backs | | + |------+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-------+-------+-----| + | | VoD | VoU | Mut | | | * | / | Hom | PgU | Lef | Rig | Enter | | | + |------+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-------+-------+-----| + | | | Qwt | Cmk | Dvk | | + | - | End | PgD | Dow | | | | | + |------+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-------+-------+-----| + + |------+------+----------------------+------+------+ + | **** | **** | ******************** | **** | **** | + |------+------+----------------------+------+------+ + + */ + + [_HHKB] = KEYMAP( + KC_PWR, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_INS, KC_DEL, \ + KC_CAPS, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, KC_SLCK, KC_PAUS, KC_UP, _______, KC_BSPC, \ + _______, KC_VOLD, KC_VOLU, KC_MUTE, _______, _______, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, KC_PENT, \ + _______, _______, QWERTY, COLEMAK, DVORAK, _______, KC_PPLS, KC_PMNS, KC_END, KC_PGDN, KC_DOWN, _______, _______, \ + _______, _______, _______, _______, _______)}; + + +const uint16_t PROGMEM fn_actions[] = { + +}; + +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; +}; + +void persistant_default_layer_set(uint16_t default_layer) { + eeconfig_update_default_layer(default_layer); + default_layer_set(default_layer); +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case QWERTY: + if (record->event.pressed) { + persistant_default_layer_set(1UL<<_QWERTY); + } + return false; + break; + case COLEMAK: + if (record->event.pressed) { + persistant_default_layer_set(1UL<<_COLEMAK); + } + return false; + break; + case DVORAK: + if (record->event.pressed) { + persistant_default_layer_set(1UL<<_DVORAK); + } + return false; + break; + } + return true; +} From d6386b108b616cab088dca901b57effc20497597 Mon Sep 17 00:00:00 2001 From: Josh Black Date: Tue, 25 Apr 2017 18:51:45 +0100 Subject: [PATCH 180/190] Add RAMA x Machine Industries M10A to the keyboards directory --- keyboards/M10A/M10A.c | 5 ++ keyboards/M10A/M10A.h | 19 ++++++ keyboards/M10A/Makefile | 3 + keyboards/M10A/config.h | 82 +++++++++++++++++++++++++ keyboards/M10A/keymaps/default/Makefile | 3 + keyboards/M10A/keymaps/default/keymap.c | 49 +++++++++++++++ keyboards/M10A/rules.mk | 68 ++++++++++++++++++++ 7 files changed, 229 insertions(+) create mode 100644 keyboards/M10A/M10A.c create mode 100644 keyboards/M10A/M10A.h create mode 100644 keyboards/M10A/Makefile create mode 100644 keyboards/M10A/config.h create mode 100644 keyboards/M10A/keymaps/default/Makefile create mode 100644 keyboards/M10A/keymaps/default/keymap.c create mode 100644 keyboards/M10A/rules.mk diff --git a/keyboards/M10A/M10A.c b/keyboards/M10A/M10A.c new file mode 100644 index 00000000000..9a3bd15e1a0 --- /dev/null +++ b/keyboards/M10A/M10A.c @@ -0,0 +1,5 @@ +#include "M10A.h" + +void matrix_init_kb(void) { + matrix_init_user(); +} \ No newline at end of file diff --git a/keyboards/M10A/M10A.h b/keyboards/M10A/M10A.h new file mode 100644 index 00000000000..6ec334fb3c2 --- /dev/null +++ b/keyboards/M10A/M10A.h @@ -0,0 +1,19 @@ +#ifndef M10A_H +#define M10A_H + +#include "quantum.h" + +#define M10A( \ + k00, k01, k02, \ + k10, k11, k12, \ + k20, k21, k22, \ + k30, k31, k32 \ +) \ +{ \ + { k00, k01, k02 }, \ + { k10, k11, k12 }, \ + { k20, k21, k22 }, \ + { k30, k31, k32 } \ +} + +#endif diff --git a/keyboards/M10A/Makefile b/keyboards/M10A/Makefile new file mode 100644 index 00000000000..4e2a6f00fd8 --- /dev/null +++ b/keyboards/M10A/Makefile @@ -0,0 +1,3 @@ +ifndef MAKEFILE_INCLUDED + include ../../Makefile +endif \ No newline at end of file diff --git a/keyboards/M10A/config.h b/keyboards/M10A/config.h new file mode 100644 index 00000000000..f052ab62974 --- /dev/null +++ b/keyboards/M10A/config.h @@ -0,0 +1,82 @@ +/* +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 . +*/ + +#ifndef CONFIG_H +#define CONFIG_H + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x0007 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Machine Industries +#define PRODUCT M10-A +#define DESCRIPTION RAMA x Machine Industries M10-A + +/* key matrix size */ +#define MATRIX_ROWS 4 +#define MATRIX_COLS 3 + +/* Planck PCB default pin-out */ +#define MATRIX_ROW_PINS { B6, F7, F6, D6 } +#define MATRIX_COL_PINS { F5, F1, F0 } +#define UNUSED_PINS + +#define BACKLIGHT_PIN B7 + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION ROW2COL + +/* define if matrix has ghost */ +//#define MATRIX_HAS_GHOST + +/* number of backlight levels */ +#define BACKLIGHT_LEVELS 6 + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCING_DELAY 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 + +/* key combination for command */ +#define IS_COMMAND() ( \ + keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ +) + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +//#define NO_DEBUG + +/* disable print */ +//#define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT +//#define NO_ACTION_MACRO +//#define NO_ACTION_FUNCTION + +#endif diff --git a/keyboards/M10A/keymaps/default/Makefile b/keyboards/M10A/keymaps/default/Makefile new file mode 100644 index 00000000000..457a3d01d4a --- /dev/null +++ b/keyboards/M10A/keymaps/default/Makefile @@ -0,0 +1,3 @@ +ifndef QUANTUM_DIR + include ../../../../Makefile +endif diff --git a/keyboards/M10A/keymaps/default/keymap.c b/keyboards/M10A/keymaps/default/keymap.c new file mode 100644 index 00000000000..75abeb5b75a --- /dev/null +++ b/keyboards/M10A/keymaps/default/keymap.c @@ -0,0 +1,49 @@ +// This is the canonical layout file for the Quantum project. If you want to add another keyboard, +// this is the style you want to emulate. + +#include "M10A.h" +#include "action_layer.h" +#include "eeconfig.h" + +extern keymap_config_t keymap_config; + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +// Layer names don't all need to be of the same length, obviously, and you can also skip them +// entirely and just use numbers. + +enum layers { + _LAYER0, + _LAYER1, + _LAYER2, + _LAYER3, + _LAYER4, + _LAYER5, + _LAYER6, + _LAYER7, + _LAYER8, + _LAYER9 +}; + +// // Fillers to make layering more clear +// #define _______ KC_TRNS +// #define XXXXXXX KC_NO + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_LAYER0] = {{KC_A, KC_B, KC_C}, {KC_D, KC_E, KC_F}, {KC_G, KC_H, KC_I}, {KC_NO, KC_NO, KC_J}}, + [_LAYER1] = {{KC_A, KC_B, KC_C}, {KC_D, KC_E, KC_F}, {KC_G, KC_H, KC_I}, {KC_NO, KC_NO, KC_J}}, + [_LAYER2] = {{KC_A, KC_B, KC_C}, {KC_D, KC_E, KC_F}, {KC_G, KC_H, KC_I}, {KC_NO, KC_NO, KC_J}}, + [_LAYER3] = {{KC_A, KC_B, KC_C}, {KC_D, KC_E, KC_F}, {KC_G, KC_H, KC_I}, {KC_NO, KC_NO, KC_J}}, + [_LAYER4] = {{KC_A, KC_B, KC_C}, {KC_D, KC_E, KC_F}, {KC_G, KC_H, KC_I}, {KC_NO, KC_NO, KC_J}}, + [_LAYER5] = {{KC_A, KC_B, KC_C}, {KC_D, KC_E, KC_F}, {KC_G, KC_H, KC_I}, {KC_NO, KC_NO, KC_J}}, + [_LAYER6] = {{KC_A, KC_B, KC_C}, {KC_D, KC_E, KC_F}, {KC_G, KC_H, KC_I}, {KC_NO, KC_NO, KC_J}}, + [_LAYER7] = {{KC_A, KC_B, KC_C}, {KC_D, KC_E, KC_F}, {KC_G, KC_H, KC_I}, {KC_NO, KC_NO, KC_J}}, + [_LAYER8] = {{KC_A, KC_B, KC_C}, {KC_D, KC_E, KC_F}, {KC_G, KC_H, KC_I}, {KC_NO, KC_NO, KC_J}}, + [_LAYER9] = {{KC_A, KC_B, KC_C}, {KC_D, KC_E, KC_F}, {KC_G, KC_H, KC_I}, {KC_NO, KC_NO, KC_J}} +}; + +void matrix_init_user(void) { + #ifdef BACKLIGHT_ENABLE + backlight_level(0); + #endif +} diff --git a/keyboards/M10A/rules.mk b/keyboards/M10A/rules.mk new file mode 100644 index 00000000000..f5a785dbcc3 --- /dev/null +++ b/keyboards/M10A/rules.mk @@ -0,0 +1,68 @@ +# MCU name +#MCU = at90usb1287 +MCU = atmega32u4 + +# Processor frequency. +# This will define a symbol, F_CPU, in all source code files equal to the +# processor frequency in Hz. You can then use this symbol in your source code to +# calculate timings. Do NOT tack on a 'UL' at the end, this will be done +# automatically to create a 32-bit value in your source code. +# +# This will be an integer division of F_USB below, as it is sourced by +# F_USB after it has run through any CPU prescalers. Note that this value +# does not *change* the processor frequency - it should merely be updated to +# reflect the processor speed set externally so that the code can use accurate +# software delays. +F_CPU = 16000000 + +# +# LUFA specific +# +# Target architecture (see library "Board Types" documentation). +ARCH = AVR8 + +# Input clock frequency. +# This will define a symbol, F_USB, in all source code files equal to the +# input clock frequency (before any prescaling is performed) in Hz. This value may +# differ from F_CPU if prescaling is used on the latter, and is required as the +# raw input clock is fed directly to the PLL sections of the AVR for high speed +# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL' +# at the end, this will be done automatically to create a 32-bit value in your +# source code. +# +# If no clock division is performed on the input clock inside the AVR (via the +# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU. +F_USB = $(F_CPU) + +# Interrupt driven control endpoint task(+60) +OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT + + +# Boot Section Size in *bytes* +# Teensy halfKay 512 +# Teensy++ halfKay 1024 +# Atmel DFU loader 4096 +# LUFA bootloader 4096 +# USBaspLoader 2048 +OPT_DEFS += -DBOOTLOADER_SIZE=4096 + +# Build Options +# change to "no" to disable the options, or define them in the Makefile in +# the appropriate keymap folder that will get included automatically +# +BOOTMAGIC_ENABLE ?= no # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE ?= yes # Mouse keys(+4700) +EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450) +CONSOLE_ENABLE ?= no # Console for debug(+400) +COMMAND_ENABLE ?= no # Commands for debug and configuration +NKRO_ENABLE ?= yes # 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 ?= no # MIDI controls +AUDIO_ENABLE ?= no # Audio output on port C6 +UNICODE_ENABLE ?= yes # Unicode +BLUETOOTH_ENABLE ?= no # Enable Bluetooth with the Adafruit EZ-Key HID +RGBLIGHT_ENABLE ?= no # Enable WS2812 RGB underlight. +API_SYSEX_ENABLE = yes + +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE ?= no # Breathing sleep LED during USB suspend From 196740a0bb9e63b5293eaaf11ac66f24be8404a6 Mon Sep 17 00:00:00 2001 From: laelath Date: Wed, 26 Apr 2017 13:56:01 -0700 Subject: [PATCH 181/190] Expanded lae3 keymap readme --- keyboards/planck/keymaps/lae3/keymap.c | 26 +++--- keyboards/planck/keymaps/lae3/readme.md | 112 +++++++++++++++++++++++- 2 files changed, 124 insertions(+), 14 deletions(-) diff --git a/keyboards/planck/keymaps/lae3/keymap.c b/keyboards/planck/keymaps/lae3/keymap.c index 81f94ccd619..4127a3ae131 100644 --- a/keyboards/planck/keymaps/lae3/keymap.c +++ b/keyboards/planck/keymaps/lae3/keymap.c @@ -52,11 +52,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Qwerty * ,-----------------------------------------------------------------------------------. * | Esc | Q | W | E | R | T | Y | U | I | O | P | Bksp | - * |------+------+------+------+------+-------------+------+------+------+------+------| - * | Tab | A | S | D | F | G | H | J | K | L | ; |Enter | - * |------+------+------+------+------+------|------+------+------+------+------+------| - * |Shift | Z | X | C | V | B | N | M | , | . | / |Shift | * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Tab | A | S | D | F | G | H | J | K | L | ; |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * |Shift | Z | X | C | V | B | N | M | , | . | / |Shift | + * |------+------+------+------+------+-------------+------+------+------+------+------| * | Ctrl | GUI | Alt | Move |Lower | Space |Raise | Move | Alt | GUI | Ctrl | * `-----------------------------------------------------------------------------------' */ @@ -93,7 +93,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |------+------+------+------+------+------+------+------+------+------+------+------| * | | | | | | | | 3 | 2 | 1 | - | | * |------+------+------+------+------+-------------+------+------+------+------+------| - * | | | | | | | | 0 | = | + | | + * | | | | | | | | 0 | . | + | | * `-----------------------------------------------------------------------------------' */ [_NUMPAD] = { @@ -124,11 +124,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Lower * ,-----------------------------------------------------------------------------------. * | ` | 1 | 2 | 3 | 4 | 5 | - | = | Del | End | PgDn | | - * |------+------+------+------+------+-------------+------+------+------+------+------| - * | Caps | 6 | 7 | 8 | 9 | 0 | [ | ] | \ | ' | | | - * |------+------+------+------+------+------|------+------+------+------+------+------| - * | | F1 | F2 | F3 | F4 | | | F5 | F6 | F7 | F8 | | * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Caps | 6 | 7 | 8 | 9 | 0 | [ | ] | \ | ' | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | F1 | F2 | F3 | F4 | | | F5 | F6 | F7 | F8 | | + * |------+------+------+------+------+-------------+------+------+------+------+------| * | | | | | | | | | | | | * `-----------------------------------------------------------------------------------' */ @@ -142,11 +142,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Raise * ,-----------------------------------------------------------------------------------. * | ~ | ! | @ | # | $ | % | _ | + | Ins | Home | PgUp | | - * |------+------+------+------+------+-------------+------+------+------+------+------| - * | Caps | ^ | & | * | ( | ) | { | } | | | " | | | - * |------+------+------+------+------+------|------+------+------+------+------+------| - * | | F9 | F10 | F11 | F12 | | | | | | | | * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Caps | ^ | & | * | ( | ) | { | } | | | " | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | F9 | F10 | F11 | F12 | | | | | | | | + * |------+------+------+------+------+-------------+------+------+------+------+------| * | | | | | | | | | | | | * `-----------------------------------------------------------------------------------' */ diff --git a/keyboards/planck/keymaps/lae3/readme.md b/keyboards/planck/keymaps/lae3/readme.md index 429b51456a8..57a2f38ddc7 100644 --- a/keyboards/planck/keymaps/lae3/readme.md +++ b/keyboards/planck/keymaps/lae3/readme.md @@ -1 +1,111 @@ -Keymap based around mode-switching for extended functionality +# Lae3 +_Keymap based around mode-switching for extended functionality_ + +## Base Layout + + ┌-----------------------------------------------------------------------------------┐ + | Esc | Q | W | E | R | T | Y | U | I | O | P | Bksp | + |------+------+------+------+------+------+------+------+------+------+------+------| + | Tab | A | S | D | F | G | H | J | K | L | ; |Enter | + |------+------+------+------+------+------+------+------+------+------+------+------| + |Shift | Z | X | C | V | B | N | M | , | . | / |Shift | + |------+------+------+------+------+-------------+------+------+------+------+------| + | Ctrl | GUI | Alt | Move |Lower | Space |Raise | Move | Alt | GUI | Ctrl | + └-----------------------------------------------------------------------------------┘ + +This is more similar to a standard keyboard layout than the standard planck +layout, but I have found that this is better for programming, especially for +editor shortcuts. + +## Lower Layer + + ┌-----------------------------------------------------------------------------------┐ + | ` | 1 | 2 | 3 | 4 | 5 | - | = | Del | End | PgDn | | + |------+------+------+------+------+------+------+------+------+------+------+------| + | Caps | 6 | 7 | 8 | 9 | 0 | [ | ] | \ | ' | | | + |------+------+------+------+------+------+------+------+------+------+------+------| + | | F1 | F2 | F3 | F4 | | | F5 | F6 | F7 | F8 | | + |------+------+------+------+------+-------------+------+------+------+------+------| + | | | | | | | | | | | | + └-----------------------------------------------------------------------------------┘ + +All the numbers are on one hand so that they can all be easily accessed when +playing games. The punctuation was placed in a way that is as similar as +possible the qwerty punctuation layout on a standard keyboard. + +## Raise Layer + + ┌-----------------------------------------------------------------------------------┐ + | ~ | ! | @ | # | $ | % | _ | + | Ins | Home | PgUp | | + |------+------+------+------+------+------+------+------+------+------+------+------| + | Caps | ^ | & | * | ( | ) | { | } | | | " | | | + |------+------+------+------+------+------+------+------+------+------+------+------| + | | F9 | F10 | F11 | F12 | | | | | | | | + |------+------+------+------+------+-------------+------+------+------+------+------| + | | | | | | | | | | | | + └-----------------------------------------------------------------------------------┘ + +This layer with the exception of the function and control keys is effectively +the lower layer in combination with the shift key, like on the standard planck +layout. + +## Movement Layer + + ┌-----------------------------------------------------------------------------------┐ + | |MsBut2|Ms Up |MsBut1|MsWhUp| | Home | PgDn | PgUp | End | | | + |------+------+------+------+------+------+------+------+------+------+------+------| + | |Ms Lft|Ms Dn |Ms Rgt|MsWhDn| | Left | Down | Up | Right| | | + |------+------+------+------+------+------+------+------+------+------+------+------| + | | | | | | | | | | | | | + |------+------+------+------+------+-------------+------+------+------+------+------| + | | | | | | | | | | | | + └-----------------------------------------------------------------------------------┘ + +Layer for simplifying movement. + +## Meta Layer + + ┌-----------------------------------------------------------------------------------┐ + |Reset | | | | | | | | | | | | + |------+------+------+------+------+------+------+------+------+------+------+------| + | |Bcklgt| Mute |Vol Dn|Vol Up| | |Qwerty|Arrow |Numpad| | | + |------+------+------+------+------+------+------+------+------+------+------+------| + | | | | | | | | | | | | | + |------+------+------+------+------+-------------+------+------+------+------+------| + | | | | | | | | | | | | + └-----------------------------------------------------------------------------------┘ + +This Layer is activated when pressing both the Lower and Raise keys. The Arrow +and Numpad keys each activate a layer between the base layer and the Movement +layer. The Qwerty key disables both of the layers leaving just the base layer +active. + +## Arrow Layer + + ┌-----------------------------------------------------------------------------------┐ + | | | | | | | | | | | | | + |------+------+------+------+------+------+------+------+------+------+------+------| + | | | | | | | | | | | | | + |------+------+------+------+------+------+------+------+------+------+------+------| + | | | | | | | | | | | Up | | + |------+------+------+------+------+-------------+------+------+------+------+------| + | | | | | | | | | Left | Down | Right| + └-----------------------------------------------------------------------------------┘ + +Replaces the bottom right of the keyboard with arrow keys for games like The +Binding of Isaac. + +## Numpad Layer + + ┌-----------------------------------------------------------------------------------┐ + | | | | | | |NumLck| 7 | 8 | 9 | / | | + |------+------+------+------+------+------+------+------+------+------+------+------| + | | | | | | |Enter | 4 | 5 | 6 | * | | + |------+------+------+------+------+------+------+------+------+------+------+------| + | | | | | | | | 3 | 2 | 1 | - | | + |------+------+------+------+------+-------------+------+------+------+------+------| + | | | | | | | | 0 | . | + | | + └-----------------------------------------------------------------------------------┘ + +Replaces the majority of the right side of the keyboard with a numpad because +why not? From d8f1949029297b0bec395606bbaedf4f6d4c0760 Mon Sep 17 00:00:00 2001 From: Priyadi Iman Nurcahyo Date: Sat, 29 Apr 2017 13:21:27 +0700 Subject: [PATCH 182/190] Promethium update: demo LED, fix PS2 delay, fix LED ordering, change click frequency --- keyboards/handwired/promethium/config.h | 38 +++++++++---------- .../promethium/keymaps/priyadi/config.h | 1 + .../promethium/keymaps/priyadi/keymap.c | 34 ++++++++++++++++- keyboards/handwired/promethium/promethium.c | 4 +- 4 files changed, 55 insertions(+), 22 deletions(-) diff --git a/keyboards/handwired/promethium/config.h b/keyboards/handwired/promethium/config.h index 04f7caa55c6..efb9ebdd74f 100644 --- a/keyboards/handwired/promethium/config.h +++ b/keyboards/handwired/promethium/config.h @@ -153,7 +153,7 @@ along with this program. If not, see . //#define NO_ACTION_MACRO //#define NO_ACTION_FUNCTION -#define PS2_INIT_DELAY 3000 +#define PS2_MOUSE_INIT_DELAY 2000 #define BATTERY_PIN 9 #define BATTERY_POLL 30000 #define MAX_VOLTAGE 4.2 @@ -234,35 +234,35 @@ enum led_sequence { LED_TRACKPOINT2, LED_TRACKPOINT1, - LED_LSPC, - LED_B, - LED_G, LED_T, + LED_G, + LED_B, + LED_LSPC, - LED_R, - LED_F, - LED_V, LED_NUM, + LED_V, + LED_F, + LED_R, - LED_EMPTY, - LED_C, - LED_D, LED_E, + LED_D, + LED_C, + LED_EMPTY, - LED_W, - LED_S, - LED_X, LED_LGUI, + LED_X, + LED_S, + LED_W, - LED_LALT, - LED_Z, - LED_A, LED_Q, + LED_A, + LED_Z, + LED_LALT, - LED_TAB, - LED_ESC, - LED_LSFT, LED_LCTL, + LED_LSFT, + LED_ESC, + LED_TAB, LED_TOTAL }; diff --git a/keyboards/handwired/promethium/keymaps/priyadi/config.h b/keyboards/handwired/promethium/keymaps/priyadi/config.h index 3f5dd5817d1..fa86e224794 100644 --- a/keyboards/handwired/promethium/keymaps/priyadi/config.h +++ b/keyboards/handwired/promethium/keymaps/priyadi/config.h @@ -14,6 +14,7 @@ #define PREVENT_STUCK_MODIFIERS #define RGBSPS_ENABLE +#define RGBSPS_DEMO_ENABLE #define UNICODE_TYPE_DELAY 0 diff --git a/keyboards/handwired/promethium/keymaps/priyadi/keymap.c b/keyboards/handwired/promethium/keymaps/priyadi/keymap.c index 7a18b02fd41..4cc3d6d60a6 100644 --- a/keyboards/handwired/promethium/keymaps/priyadi/keymap.c +++ b/keyboards/handwired/promethium/keymaps/priyadi/keymap.c @@ -144,6 +144,7 @@ enum planck_keycodes { #ifndef MODULE_ADAFRUIT_BLE OUT_BT, #endif + RGBDEMO, KEYCODE_END }; @@ -478,6 +479,27 @@ void led_turnoff_keys(void) { } } +#ifdef RGBSPS_DEMO_ENABLE +void led_demo(void) { + rgbsps_set(LED_IND_LINUX, 15, 15, 15); + rgbsps_set(LED_IND_APPLE, 15, 15, 15); + rgbsps_set(LED_IND_WINDOWS, 15, 15, 15); + rgbsps_set(LED_IND_QWERTY, 15, 10, 0); + rgbsps_set(LED_IND_ALT, 15, 10, 0); + rgbsps_set(LED_IND_AUDIO, 5, 11, 13); + rgbsps_set(LED_IND_BLUETOOTH, 0, 0, 15); + rgbsps_set(LED_IND_USB, 15, 15, 15); + rgbsps_set(LED_IND_CAPSLOCK, 15, 0, 0); + rgbsps_set(LED_IND_GUI, 15, 0, 15); + rgbsps_set(LED_IND_FUN, 15, 0, 0); + rgbsps_set(LED_IND_NUM, 0, 0, 15); + rgbsps_set(LED_IND_PUNC, 0, 15, 0); + rgbsps_set(LED_IND_GREEK, 0, 15, 15); + rgbsps_set(LED_IND_EMOJI, 15, 15, 0); + rgbsps_send(); +} +#endif + void led_reset(void) { switch (glow_mode) { case GLOW_NONE: @@ -634,11 +656,14 @@ void led_init(void) { led_set_default_layer_indicator(); // clicky +#ifdef FAUXCLICKY_ENABLE if (fauxclicky_enabled) { rgbsps_set(LED_IND_AUDIO, 5, 11, 13); } else { rgbsps_set(LED_IND_AUDIO, 0, 0, 0); } +#endif + rgbsps_send(); } @@ -919,7 +944,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `-----------------------------------------------------------------------------------' */ [_SYS] = KEYMAP( - DEBUG, QWERTY, WIN, XXXXXXX, RESET, XXXXXXX, XXXXXXX, OUT_USB, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + DEBUG, QWERTY, WIN, XXXXXXX, RESET, XXXXXXX, XXXXXXX, OUT_USB, XXXXXXX, XXXXXXX, XXXXXXX, RGBDEMO, XXXXXXX, FC_TOG, XXXXXXX, DVORAK, XXXXXXX, GLOW, XXXXXXX, XXXXXXX, WORKMAN, LINUX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, COLEMAK, XXXXXXX, OUT_BT, NORMAN, OSX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, @@ -1228,6 +1253,13 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { return true; break; #endif + +#ifdef RGBSPS_DEMO_ENABLE + case RGBDEMO: + led_demo(); + return false; + break; +#endif } return true; } diff --git a/keyboards/handwired/promethium/promethium.c b/keyboards/handwired/promethium/promethium.c index 544e94be59d..3cc0f5a8c82 100644 --- a/keyboards/handwired/promethium/promethium.c +++ b/keyboards/handwired/promethium/promethium.c @@ -4,8 +4,8 @@ #include "matrix.h" #include "musical_notes.h" -float fauxclicky_pressed_note[2] = MUSICAL_NOTE(_C5, 0.25); -float fauxclicky_released_note[2] = MUSICAL_NOTE(_C4, 0.25); +float fauxclicky_pressed_note[2] = MUSICAL_NOTE(_A4, 0.0625); +float fauxclicky_released_note[2] = MUSICAL_NOTE(_A4, 0.0625); float fauxclicky_beep_note[2] = MUSICAL_NOTE(_C6, 0.25); // cubic fit {3.3, 0}, {3.5, 2.9}, {3.6, 5}, {3.7, 8.6}, {3.8, 36}, {3.9, 62}, {4.0, 73}, {4.05, 83}, {4.1, 89}, {4.15, 94}, {4.2, 100} From 838aae164568a1092ae269267f8d8772d3aba781 Mon Sep 17 00:00:00 2001 From: dbroqua Date: Sat, 29 Apr 2017 15:02:54 +0200 Subject: [PATCH 183/190] - Fixed bugs in rules.mk for S60-X - Updated dbroqua layout for S60-X (added backlight) --- keyboards/s60-x/default/rules.mk | 10 +++- keyboards/s60-x/keymaps/dbroqua/keymap.c | 2 +- keyboards/s60-x/rgb/config.h | 7 +++ keyboards/s60-x/rgb/rules.mk | 63 +++--------------------- keyboards/s60-x/rules.mk | 4 -- 5 files changed, 25 insertions(+), 61 deletions(-) diff --git a/keyboards/s60-x/default/rules.mk b/keyboards/s60-x/default/rules.mk index b8ff7626071..aaa3764df63 100644 --- a/keyboards/s60-x/default/rules.mk +++ b/keyboards/s60-x/default/rules.mk @@ -1 +1,9 @@ -RGBLIGHT_ENABLE ?= no \ No newline at end of file +CONSOLE_ENABLE ?= no # Console for debug(+400) +COMMAND_ENABLE ?= no # Commands for debug and configuration +NKRO_ENABLE ?= no # 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 +RGBLIGHT_ENABLE ?= no + +ifndef QUANTUM_DIR + include ../../../Makefile +endif \ No newline at end of file diff --git a/keyboards/s60-x/keymaps/dbroqua/keymap.c b/keyboards/s60-x/keymaps/dbroqua/keymap.c index 940119e52fc..0a714445ced 100644 --- a/keyboards/s60-x/keymaps/dbroqua/keymap.c +++ b/keyboards/s60-x/keymaps/dbroqua/keymap.c @@ -66,7 +66,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [_SFX] = KEYMAP( ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, \ - ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, \ + ______, BL_TOGG,BL_STEP,BL_DEC, BL_INC, ______, ______, ______, ______, ______, ______, ______, ______, ______, \ ______, F(0), F(1), ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, \ ______, ______, F(2), F(3), F(4), F(5), F(6), F(7), ______, ______, ______, ______, ______, ______, ______, \ ______, ______, ______, ______, ______, ______, ______, ______ \ diff --git a/keyboards/s60-x/rgb/config.h b/keyboards/s60-x/rgb/config.h index 26b246e573e..fbc143487ee 100644 --- a/keyboards/s60-x/rgb/config.h +++ b/keyboards/s60-x/rgb/config.h @@ -9,6 +9,7 @@ /* key matrix pins */ #define MATRIX_ROW_PINS { B5, B4, D7, D6, D4 } #define MATRIX_COL_PINS { D0, D1, D2, D3, D5, B6, C6, C7, F1, F0, E6, B3, B2, B1, B0 } +#define UNUSED_PINS /* number of backlight levels */ #define BACKLIGHT_PIN B7 @@ -16,6 +17,12 @@ #define BACKLIGHT_LEVELS 3 #endif +/* 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 + /* prevent stuck modifiers */ #define PREVENT_STUCK_MODIFIERS diff --git a/keyboards/s60-x/rgb/rules.mk b/keyboards/s60-x/rgb/rules.mk index c303af4bccd..6953cc6d6d3 100644 --- a/keyboards/s60-x/rgb/rules.mk +++ b/keyboards/s60-x/rgb/rules.mk @@ -1,56 +1,9 @@ -# MCU name -MCU = atmega32u4 +CONSOLE_ENABLE ?= no # Console for debug(+400) +COMMAND_ENABLE ?= no # Commands for debug and configuration +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 +RGBLIGHT_ENABLE ?= yes # Enable RGB light -# Processor frequency. -# This will define a symbol, F_CPU, in all source code files equal to the -# processor frequency in Hz. You can then use this symbol in your source code to -# calculate timings. Do NOT tack on a 'UL' at the end, this will be done -# automatically to create a 32-bit value in your source code. -# -# This will be an integer division of F_USB below, as it is sourced by -# F_USB after it has run through any CPU prescalers. Note that this value -# does not *change* the processor frequency - it should merely be updated to -# reflect the processor speed set externally so that the code can use accurate -# software delays. -F_CPU = 16000000 - -# -# LUFA specific -# -# Target architecture (see library "Board Types" documentation). -ARCH = AVR8 - -# Input clock frequency. -# This will define a symbol, F_USB, in all source code files equal to the -# input clock frequency (before any prescaling is performed) in Hz. This value may -# differ from F_CPU if prescaling is used on the latter, and is required as the -# raw input clock is fed directly to the PLL sections of the AVR for high speed -# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL' -# at the end, this will be done automatically to create a 32-bit value in your -# source code. -# -# If no clock division is performed on the input clock inside the AVR (via the -# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU. -F_USB = $(F_CPU) - -# Interrupt driven control endpoint task(+60) -OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT - - -# Boot Section Size in *bytes* -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(+4700) -EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450) -CONSOLE_ENABLE ?= no # Console for debug(+400) -COMMAND_ENABLE ?= no # Commands for debug and configuration -SLEEP_LED_ENABLE ?= no # 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 -AUDIO_ENABLE ?= no -RGBLIGHT_ENABLE ?= yes \ No newline at end of file +ifndef QUANTUM_DIR + include ../../../Makefile +endif \ No newline at end of file diff --git a/keyboards/s60-x/rules.mk b/keyboards/s60-x/rules.mk index 7ec93933a94..0c568efe95b 100644 --- a/keyboards/s60-x/rules.mk +++ b/keyboards/s60-x/rules.mk @@ -56,13 +56,9 @@ OPT_DEFS += -DBOOTLOADER_SIZE=4096 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 # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE SLEEP_LED_ENABLE ?= no # Breathing sleep LED during USB suspend # if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work -NKRO_ENABLE ?= no # USB Nkey Rollover -BACKLIGHT_ENABLE ?= no # Enable keyboard backlight functionality on B7 by default MIDI_ENABLE ?= no # MIDI controls UNICODE_ENABLE ?= no # Unicode BLUETOOTH_ENABLE ?= no # Enable Bluetooth with the Adafruit EZ-Key HID From 18b4d24cc304bdc8882deee99b4ff765a718a5c3 Mon Sep 17 00:00:00 2001 From: Fred Sundvik Date: Sat, 29 Apr 2017 23:45:27 +0300 Subject: [PATCH 184/190] Add possibility to override the command to execute when flashing --- tmk_core/avr.mk | 42 +++++++++++++++++++++++------------------- tmk_core/chibios.mk | 4 +++- 2 files changed, 26 insertions(+), 20 deletions(-) diff --git a/tmk_core/avr.mk b/tmk_core/avr.mk index 5df539def51..ccecdb19293 100644 --- a/tmk_core/avr.mk +++ b/tmk_core/avr.mk @@ -89,9 +89,9 @@ DEBUG_HOST = localhost #============================================================================ # Autodecct teensy loader ifneq (, $(shell which teensy-loader-cli 2>/dev/null)) - TEENSY_LOADER_CLI = teensy-loader-cli + TEENSY_LOADER_CLI ?= teensy-loader-cli else - TEENSY_LOADER_CLI = teensy_loader_cli + TEENSY_LOADER_CLI ?= teensy_loader_cli endif # Program the device. @@ -100,43 +100,47 @@ program: $(BUILD_DIR)/$(TARGET).hex $(BUILD_DIR)/$(TARGET).eep teensy: $(BUILD_DIR)/$(TARGET).hex $(TEENSY_LOADER_CLI) -mmcu=$(MCU) -w -v $(BUILD_DIR)/$(TARGET).hex + +BATCHISP ?= batchisp flip: $(BUILD_DIR)/$(TARGET).hex - batchisp -hardware usb -device $(MCU) -operation erase f - batchisp -hardware usb -device $(MCU) -operation loadbuffer $(BUILD_DIR)/$(TARGET).hex program - batchisp -hardware usb -device $(MCU) -operation start reset 0 + $(BATCHISP) -hardware usb -device $(MCU) -operation erase f + $(BATCHISP) -hardware usb -device $(MCU) -operation loadbuffer $(BUILD_DIR)/$(TARGET).hex program + $(BATCHISP) -hardware usb -device $(MCU) -operation start reset 0 + +DFU_PROGRAMMER ?= dfu-programmer dfu: $(BUILD_DIR)/$(TARGET).hex sizeafter - until dfu-programmer $(MCU) get bootloader-version; do\ + until $(DFU_PROGRAMMER) $(MCU) get bootloader-version; do\ echo "Error: Bootloader not found. Trying again in 5s." ;\ sleep 5 ;\ done -ifneq (, $(findstring 0.7, $(shell dfu-programmer --version 2>&1))) - dfu-programmer $(MCU) erase --force +ifneq (, $(findstring 0.7, $(shell $(DFU_PROGRAMMER) --version 2>&1))) + $(DFU_PROGRAMMER) $(MCU) erase --force else - dfu-programmer $(MCU) erase + $(DFU_PROGRAMMER) $(MCU) erase endif - dfu-programmer $(MCU) flash $(BUILD_DIR)/$(TARGET).hex - dfu-programmer $(MCU) reset + $(DFU_PROGRAMMER) $(MCU) flash $(BUILD_DIR)/$(TARGET).hex + $(DFU_PROGRAMMER) $(MCU) reset dfu-start: - dfu-programmer $(MCU) reset - dfu-programmer $(MCU) start + $(DFU_PROGRAMMER) $(MCU) reset + $(DFU_PROGRAMMER) $(MCU) start flip-ee: $(BUILD_DIR)/$(TARGET).hex $(BUILD_DIR)/$(TARGET).eep $(COPY) $(BUILD_DIR)/$(TARGET).eep $(BUILD_DIR)/$(TARGET)eep.hex - batchisp -hardware usb -device $(MCU) -operation memory EEPROM erase - batchisp -hardware usb -device $(MCU) -operation memory EEPROM loadbuffer $(BUILD_DIR)/$(TARGET)eep.hex program - batchisp -hardware usb -device $(MCU) -operation start reset 0 + $(BATCHISP) -hardware usb -device $(MCU) -operation memory EEPROM erase + $(BATCHISP) -hardware usb -device $(MCU) -operation memory EEPROM loadbuffer $(BUILD_DIR)/$(TARGET)eep.hex program + $(BATCHISP) -hardware usb -device $(MCU) -operation start reset 0 $(REMOVE) $(BUILD_DIR)/$(TARGET)eep.hex dfu-ee: $(BUILD_DIR)/$(TARGET).hex $(BUILD_DIR)/$(TARGET).eep ifneq (, $(findstring 0.7, $(shell dfu-programmer --version 2>&1))) - dfu-programmer $(MCU) flash --eeprom $(BUILD_DIR)/$(TARGET).eep + $(DFU_PROGRAMMER) $(MCU) flash --eeprom $(BUILD_DIR)/$(TARGET).eep else - dfu-programmer $(MCU) flash-eeprom $(BUILD_DIR)/$(TARGET).eep + $(DFU_PROGRAMMER) $(MCU) flash-eeprom $(BUILD_DIR)/$(TARGET).eep endif - dfu-programmer $(MCU) reset + $(DFU_PROGRAMMER) $(MCU) reset # Convert hex to bin. flashbin: $(BUILD_DIR)/$(TARGET).hex diff --git a/tmk_core/chibios.mk b/tmk_core/chibios.mk index eb0c40138a2..2a8d32fb99d 100644 --- a/tmk_core/chibios.mk +++ b/tmk_core/chibios.mk @@ -151,5 +151,7 @@ endif # List any extra directories to look for libraries here. EXTRALIBDIRS = $(RULESPATH)/ld +DFU_UTIL ?= dfu-util + dfu-util: $(BUILD_DIR)/$(TARGET).bin sizeafter - dfu-util $(DFU_ARGS) -D $(BUILD_DIR)/$(TARGET).bin + $(DFU_UTIL) $(DFU_ARGS) -D $(BUILD_DIR)/$(TARGET).bin From 9122b34a476908db49ddb5fcec0b0b05c67c75c2 Mon Sep 17 00:00:00 2001 From: Ryan MacLean Date: Sat, 29 Apr 2017 16:16:21 -0700 Subject: [PATCH 185/190] Adding Maximized Layout Both split shifts and HHKB split backspace. --- keyboards/amj60/amj60.h | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/keyboards/amj60/amj60.h b/keyboards/amj60/amj60.h index a0cb4733107..c508e479ca6 100644 --- a/keyboards/amj60/amj60.h +++ b/keyboards/amj60/amj60.h @@ -147,6 +147,21 @@ {k40, k41, k42, XXX, XXX, k45, XXX, XXX, XXX, XXX, k4a, k4b, k4c, k4d} \ } +#define KEYMAP_MAX( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k49,\ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2d, \ + k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3d, k3c, \ + k40, k41, k42, k45, k4a, k4b, k4c, k4d \ +) \ +{ \ + {k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d}, \ + {k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d}, \ + {k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, XXX, k2d}, \ + {k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d}, \ + {k40, k41, k42, XXX, XXX, k45, XXX, XXX, XXX, k49, k4a, k4b, k4c, k4d} \ +} + void matrix_init_user(void); void matrix_scan_user(void); From ff512ea5b4934638d28244c8667e840549784f2b Mon Sep 17 00:00:00 2001 From: Ryan MacLean Date: Sat, 29 Apr 2017 16:18:26 -0700 Subject: [PATCH 186/190] Addind Sample Maxed Out Keymap Keeping hold space for fn1, adding three other user-mappable keys. --- keyboards/amj60/keymaps/maximized/keymap.c | 61 ++++++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 keyboards/amj60/keymaps/maximized/keymap.c diff --git a/keyboards/amj60/keymaps/maximized/keymap.c b/keyboards/amj60/keymaps/maximized/keymap.c new file mode 100644 index 00000000000..d2a4be59f33 --- /dev/null +++ b/keyboards/amj60/keymaps/maximized/keymap.c @@ -0,0 +1,61 @@ +// This is the canonical layout file for the Quantum project. If you want to add another keyboard, +// this is the style you want to emulate. + +#include "amj60.h" + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +// Layer names don't all need to be of the same length, obviously, and you can also skip them +// entirely and just use numbers. +#define _DEF 0 +#define _SPC 1 + +// dual-role shortcuts +#define SPACEDUAL LT(_SPC, KC_SPACE) + + +// increase readability +#define _______ KC_TRNS + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Keymap _DEF: Default Layer + * ,-----------------------------------------------------------. + * |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =| \ | ~ | + * |-----------------------------------------------------------| + * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| bspc| + * |-----------------------------------------------------------| + * |Caps | A| S| D| F| G| H| J| K| L| ;| '| Return | + * |-----------------------------------------------------------| + * |Sft | Fn0| Z| X| C| V| B| N| M| ,| .| /| Sft |Fn2| + * |-----------------------------------------------------------| + * |Ctrl|Win |Alt | Space/Fn0 |Alt |Win |Menu|RCtl| + * `-----------------------------------------------------------' + */ + [_DEF] = KEYMAP_MAX( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_GRV, \ + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC, \ + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, \ + KC_LSFT, F(0), KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, F(1), \ + KC_LCTL, KC_LALT, KC_LGUI, SPACEDUAL, KC_RGUI, KC_RALT, KC_RCTL, F(2)), + + /* Keymap 1: F-and-vim Layer, modified with Space (by holding space) + * ,-----------------------------------------------------------. + * |PrSc| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12| | | + * |-----------------------------------------------------------| + * | |Paus| Up| [ | ] | | | | ( | ) | | | | Del | + * |-----------------------------------------------------------| + * | |Lft|Dwn|Rgt| | |Left|Down|Right|Up| | | PLAY | + * |-----------------------------------------------------------| + * | | | | | < | > | |M0 | | | | | Vol+ | | + * |-----------------------------------------------------------| + * | | | | |Alt |Prev|Vol-|Next| + * `-----------------------------------------------------------' + */ + [_SPC] = KEYMAP_MAX( + KC_PSCR, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, \ + _______, KC_PAUS, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL, \ + _______, KC_LEFT, KC_DOWN, KC_RIGHT, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, _______, KC_MPLY, \ + _______, _______, _______, _______, _______, _______, KC_SPACE, M(0), _______, _______, _______, _______, KC_VOLU, _______, \ + _______, _______, _______, _______, _______, KC_MPRV, KC_VOLD, KC_MNXT), + +}; From 2f28652dcc22c74db4f3c60537fa07f6774451f9 Mon Sep 17 00:00:00 2001 From: Priyadi Iman Nurcahyo Date: Sun, 30 Apr 2017 18:03:03 +0700 Subject: [PATCH 187/190] Syntax fix --- keyboards/handwired/promethium/matrix.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/keyboards/handwired/promethium/matrix.c b/keyboards/handwired/promethium/matrix.c index 2b7ce2bf5e2..72dbe8d4d00 100644 --- a/keyboards/handwired/promethium/matrix.c +++ b/keyboards/handwired/promethium/matrix.c @@ -133,8 +133,8 @@ void matrix_init(void) { matrix_init_quantum(); } -uint8_t matrix_scan(void -){ +uint8_t matrix_scan(void) +{ // Set row, read cols for (uint8_t current_row = 0; current_row < MATRIX_ROWS; current_row++) { # if (DEBOUNCING_DELAY > 0) From 343f8d368e7ce51a3b34705147b890445a12e3ea Mon Sep 17 00:00:00 2001 From: Priyadi Iman Nurcahyo Date: Sun, 30 Apr 2017 18:04:58 +0700 Subject: [PATCH 188/190] Simple RGB backlight theming --- keyboards/handwired/promethium/color.h | 15 ++ .../promethium/keymaps/priyadi/keymap.c | 145 +++++++++--------- .../promethium/keymaps/priyadi/rgbtheme.h | 1 + .../keymaps/priyadi/rgbtheme_carbon.h | 36 +++++ .../keymaps/priyadi/rgbtheme_default.h | 36 +++++ 5 files changed, 161 insertions(+), 72 deletions(-) create mode 100644 keyboards/handwired/promethium/color.h create mode 100644 keyboards/handwired/promethium/keymaps/priyadi/rgbtheme.h create mode 100644 keyboards/handwired/promethium/keymaps/priyadi/rgbtheme_carbon.h create mode 100644 keyboards/handwired/promethium/keymaps/priyadi/rgbtheme_default.h diff --git a/keyboards/handwired/promethium/color.h b/keyboards/handwired/promethium/color.h new file mode 100644 index 00000000000..077242d5f17 --- /dev/null +++ b/keyboards/handwired/promethium/color.h @@ -0,0 +1,15 @@ +#define COLOR_BLANK 0, 0, 0 + +#define COLOR_BLACK 0, 0, 0 +#define COLOR_WHITE 15,15,15 +#define COLOR_GRAY 7, 7, 7 + +#define COLOR_RED 15, 0, 0 +#define COLOR_GREEN 0,15, 0 +#define COLOR_BLUE 0, 0,15 + +#define COLOR_YELLOW 15,15, 0 +#define COLOR_MAGENTA 15, 0,15 +#define COLOR_CYAN 0,15,15 + +#define COLOR_ORANGE 15, 5, 0 \ No newline at end of file diff --git a/keyboards/handwired/promethium/keymaps/priyadi/keymap.c b/keyboards/handwired/promethium/keymaps/priyadi/keymap.c index 4cc3d6d60a6..d562c7bbf81 100644 --- a/keyboards/handwired/promethium/keymaps/priyadi/keymap.c +++ b/keyboards/handwired/promethium/keymaps/priyadi/keymap.c @@ -31,6 +31,7 @@ along with this program. If not, see . #include "quantum.h" #ifdef RGBSPS_ENABLE #include "rgbsps.h" +#include "rgbtheme.h" #endif #ifdef PS2_MOUSE_ENABLE #include "ps2_mouse.h" @@ -42,13 +43,13 @@ along with this program. If not, see . #undef FAUXCLICKY_OFF #define FAUXCLICKY_OFF do { \ fauxclicky_enabled = false; \ - rgbsps_set(LED_AUDIO, 0, 0, 0); \ + rgbsps_set(LED_AUDIO, COLOR_BLANK); \ fauxclicky_stop(); \ } while (0) #undef FAUXCLICKY_ON #define FAUXCLICKY_ON do { \ fauxclicky_enabled = true; \ - rgbsps_set(LED_AUDIO, 8, 0, 8); \ + rgbsps_set(LED_AUDIO, THEME_COLOR_AUDIO); \ } while (0) #endif #endif @@ -469,33 +470,33 @@ const uint8_t PROGMEM LED_TRACKPOINT[] = { void led_turnoff_keys(void) { for(uint8_t i = 0; i < COUNT(LED_ALNUM); i++) { - rgbsps_set(pgm_read_byte(&LED_ALNUM[i]), 0, 0, 0); + rgbsps_set(pgm_read_byte(&LED_ALNUM[i]), COLOR_BLACK); } for(uint8_t i = 0; i < COUNT(LED_MODS); i++) { - rgbsps_set(pgm_read_byte(&LED_MODS[i]), 0, 0, 0); + rgbsps_set(pgm_read_byte(&LED_MODS[i]), COLOR_BLACK); } for(uint8_t i = 0; i < COUNT(LED_FN); i++) { - rgbsps_set(pgm_read_byte(&LED_FN[i]), 0, 0, 0); + rgbsps_set(pgm_read_byte(&LED_FN[i]), COLOR_BLACK); } } #ifdef RGBSPS_DEMO_ENABLE void led_demo(void) { - rgbsps_set(LED_IND_LINUX, 15, 15, 15); - rgbsps_set(LED_IND_APPLE, 15, 15, 15); - rgbsps_set(LED_IND_WINDOWS, 15, 15, 15); - rgbsps_set(LED_IND_QWERTY, 15, 10, 0); - rgbsps_set(LED_IND_ALT, 15, 10, 0); - rgbsps_set(LED_IND_AUDIO, 5, 11, 13); - rgbsps_set(LED_IND_BLUETOOTH, 0, 0, 15); - rgbsps_set(LED_IND_USB, 15, 15, 15); - rgbsps_set(LED_IND_CAPSLOCK, 15, 0, 0); - rgbsps_set(LED_IND_GUI, 15, 0, 15); - rgbsps_set(LED_IND_FUN, 15, 0, 0); - rgbsps_set(LED_IND_NUM, 0, 0, 15); - rgbsps_set(LED_IND_PUNC, 0, 15, 0); - rgbsps_set(LED_IND_GREEK, 0, 15, 15); - rgbsps_set(LED_IND_EMOJI, 15, 15, 0); + rgbsps_set(LED_IND_LINUX, THEME_COLOR_LINUX); + rgbsps_set(LED_IND_APPLE, THEME_COLOR_APPLE); + rgbsps_set(LED_IND_WINDOWS, THEME_COLOR_WINDOWS); + rgbsps_set(LED_IND_QWERTY, THEME_COLOR_QWERTY); + rgbsps_set(LED_IND_ALT, THEME_COLOR_ALT); + rgbsps_set(LED_IND_AUDIO, THEME_COLOR_AUDIO); + rgbsps_set(LED_IND_BLUETOOTH, THEME_COLOR_BLUETOOTH); + rgbsps_set(LED_IND_USB, THEME_COLOR_USB); + rgbsps_set(LED_IND_CAPSLOCK, THEME_COLOR_CAPSLOCK); + rgbsps_set(LED_IND_GUI, THEME_COLOR_GUI); + rgbsps_set(LED_IND_FUN, THEME_COLOR_FUN); + rgbsps_set(LED_IND_NUM, THEME_COLOR_NUM); + rgbsps_set(LED_IND_PUNC, THEME_COLOR_PUNC); + rgbsps_set(LED_IND_GREEK, THEME_COLOR_GREEK); + rgbsps_set(LED_IND_EMOJI, THEME_COLOR_EMOJI); rgbsps_send(); } #endif @@ -508,26 +509,26 @@ void led_reset(void) { case GLOW_MIN: led_turnoff_keys(); for(uint8_t i = 0; i < COUNT(LED_HOMING); i++) { - rgbsps_set(pgm_read_byte(&LED_HOMING[i]), 8, 8, 8); + rgbsps_set(pgm_read_byte(&LED_HOMING[i]), THEME_COLOR_GLOW1_HOME); } - rgbsps_set(LED_F, 15, 0, 0); - rgbsps_set(LED_J, 15, 0, 0); + rgbsps_set(LED_F, THEME_COLOR_GLOW1_HOMING); + rgbsps_set(LED_J, THEME_COLOR_GLOW1_HOMING); break; case GLOW_FULL: for(uint8_t i = 0; i < COUNT(LED_ALNUM); i++) { - rgbsps_set(pgm_read_byte(&LED_ALNUM[i]), 8, 8, 8); + rgbsps_set(pgm_read_byte(&LED_ALNUM[i]), THEME_COLOR_GLOW2_ALPHA); } for(uint8_t i = 0; i < COUNT(LED_MODS); i++) { - rgbsps_set(pgm_read_byte(&LED_MODS[i]), 0, 15, 0); + rgbsps_set(pgm_read_byte(&LED_MODS[i]), THEME_COLOR_GLOW2_MODS); } for(uint8_t i = 0; i < COUNT(LED_FN); i++) { - rgbsps_set(pgm_read_byte(&LED_FN[i]), 0, 0, 15); + rgbsps_set(pgm_read_byte(&LED_FN[i]), THEME_COLOR_GLOW2_FN); } for(uint8_t i = 0; i < COUNT(LED_HOMING); i++) { - rgbsps_set(pgm_read_byte(&LED_HOMING[i]), 15, 0, 0); + rgbsps_set(pgm_read_byte(&LED_HOMING[i]), THEME_COLOR_GLOW2_HOME); } - rgbsps_set(LED_F, 15, 15, 0); - rgbsps_set(LED_J, 15, 15, 0); + rgbsps_set(LED_F, THEME_COLOR_GLOW2_HOMING); + rgbsps_set(LED_J, THEME_COLOR_GLOW2_HOMING); break; } } @@ -535,11 +536,11 @@ void led_reset(void) { void led_set_default_layer_indicator(void) { uint8_t default_layer = biton32(default_layer_state); if (default_layer == _QWERTY) { - rgbsps_set(LED_IND_QWERTY, 15, 10, 0); - rgbsps_set(LED_IND_ALT, 0, 0, 0); + rgbsps_set(LED_IND_QWERTY, THEME_COLOR_QWERTY); + rgbsps_set(LED_IND_ALT, COLOR_BLANK); } else { - rgbsps_set(LED_IND_QWERTY, 0, 0, 0); - rgbsps_set(LED_IND_ALT, 15, 10, 0); + rgbsps_set(LED_IND_QWERTY, COLOR_BLANK); + rgbsps_set(LED_IND_ALT, THEME_COLOR_ALT); } rgbsps_send(); return; @@ -550,12 +551,12 @@ void led_set_layer_indicator(void) { led_reset(); - rgbsps_set(LED_IND_GUI, 0, 0, 0); - rgbsps_set(LED_IND_FUN, 0, 0, 0); - rgbsps_set(LED_IND_NUM, 0, 0, 0); - rgbsps_set(LED_IND_PUNC, 0, 0, 0); - rgbsps_set(LED_IND_GREEK, 0, 0, 0); - rgbsps_set(LED_IND_EMOJI, 0, 0, 0); + rgbsps_set(LED_IND_GUI, COLOR_BLANK); + rgbsps_set(LED_IND_FUN, COLOR_BLANK); + rgbsps_set(LED_IND_NUM, COLOR_BLANK); + rgbsps_set(LED_IND_PUNC, COLOR_BLANK); + rgbsps_set(LED_IND_GREEK, COLOR_BLANK); + rgbsps_set(LED_IND_EMOJI, COLOR_BLANK); uint8_t layer = biton32(layer_state); if (oldlayer == layer) { @@ -571,71 +572,71 @@ void led_set_layer_indicator(void) { switch(layer) { case _GUI: - rgbsps_set(LED_IND_GUI, 15, 0, 15); + rgbsps_set(LED_IND_GUI, THEME_COLOR_GUI); break; case _FUN: - rgbsps_set(LED_IND_FUN, 15, 0, 0); + rgbsps_set(LED_IND_FUN, THEME_COLOR_FUN); break; case _NUM: - rgbsps_set(LED_IND_NUM, 0, 0, 15); + rgbsps_set(LED_IND_NUM, THEME_COLOR_NUM); break; case _PUNC: - rgbsps_set(LED_IND_PUNC, 0, 15, 0); + rgbsps_set(LED_IND_PUNC, THEME_COLOR_PUNC); break; case _GREEKL: case _GREEKU: - rgbsps_set(LED_IND_GREEK, 0, 15, 15); + rgbsps_set(LED_IND_GREEK, THEME_COLOR_GREEK); break; case _EMOJI: - rgbsps_set(LED_IND_EMOJI, 15, 15, 0); + rgbsps_set(LED_IND_EMOJI, THEME_COLOR_EMOJI); break; default: - rgbsps_set(LED_IND_GUI, 3, 3, 3); - rgbsps_set(LED_IND_FUN, 3, 3, 3); - rgbsps_set(LED_IND_NUM, 3, 3, 3); - rgbsps_set(LED_IND_PUNC, 3, 3, 3); - rgbsps_set(LED_IND_GREEK, 3, 3, 3); - rgbsps_set(LED_IND_EMOJI, 3, 3, 3); + rgbsps_set(LED_IND_GUI, THEME_COLOR_OTHERLAYER); + rgbsps_set(LED_IND_FUN, THEME_COLOR_OTHERLAYER); + rgbsps_set(LED_IND_NUM, THEME_COLOR_OTHERLAYER); + rgbsps_set(LED_IND_PUNC, THEME_COLOR_OTHERLAYER); + rgbsps_set(LED_IND_GREEK, THEME_COLOR_OTHERLAYER); + rgbsps_set(LED_IND_EMOJI, THEME_COLOR_OTHERLAYER); } rgbsps_send(); } void led_set_unicode_input_mode(void) { - rgbsps_set(LED_IND_LINUX, 0, 0, 0); - rgbsps_set(LED_IND_APPLE, 0, 0, 0); - rgbsps_set(LED_IND_WINDOWS, 0, 0, 0); + rgbsps_set(LED_IND_LINUX, COLOR_BLANK); + rgbsps_set(LED_IND_APPLE, COLOR_BLANK); + rgbsps_set(LED_IND_WINDOWS, COLOR_BLANK); switch (get_unicode_input_mode()) { case UC_LNX: - rgbsps_set(LED_IND_LINUX, 15, 15, 15); + rgbsps_set(LED_IND_LINUX, THEME_COLOR_LINUX); break; case UC_OSX: - rgbsps_set(LED_IND_APPLE, 15, 15, 15); + rgbsps_set(LED_IND_APPLE, THEME_COLOR_APPLE); break; case UC_WIN: case UC_WINC: - rgbsps_set(LED_IND_WINDOWS, 15, 15, 15); + rgbsps_set(LED_IND_WINDOWS, THEME_COLOR_WINDOWS); break; } rgbsps_send(); } void led_set_output_ble(void) { - rgbsps_set(LED_IND_BLUETOOTH, 0, 0, 15); - rgbsps_set(LED_IND_USB, 0, 0, 0); + rgbsps_set(LED_IND_BLUETOOTH, THEME_COLOR_BLUETOOTH); + rgbsps_set(LED_IND_USB, COLOR_BLANK); rgbsps_send(); } void led_set_output_usb(void) { - rgbsps_set(LED_IND_BLUETOOTH, 0, 0, 0); - rgbsps_set(LED_IND_USB, 15, 15, 15); + rgbsps_set(LED_IND_BLUETOOTH, COLOR_BLANK); + rgbsps_set(LED_IND_USB, THEME_COLOR_USB); rgbsps_send(); } void led_set_output_none(void) { - rgbsps_set(LED_IND_BLUETOOTH, 0, 0, 0); - rgbsps_set(LED_IND_USB, 0, 0, 0); + rgbsps_set(LED_IND_BLUETOOTH, COLOR_BLANK); + rgbsps_set(LED_IND_USB, COLOR_BLANK); rgbsps_send(); } @@ -644,9 +645,9 @@ void led_init(void) { rgbsps_turnoff(); // set trackpoint color - rgbsps_set(LED_TRACKPOINT1, 15, 0, 0); - rgbsps_set(LED_TRACKPOINT2, 0, 0, 15); - rgbsps_set(LED_TRACKPOINT3, 15, 0, 0); + rgbsps_set(LED_TRACKPOINT1, THEME_COLOR_TP1); + rgbsps_set(LED_TRACKPOINT2, THEME_COLOR_TP2); + rgbsps_set(LED_TRACKPOINT3, THEME_COLOR_TP3); // unicode input mode led_set_unicode_input_mode(); @@ -658,9 +659,9 @@ void led_init(void) { // clicky #ifdef FAUXCLICKY_ENABLE if (fauxclicky_enabled) { - rgbsps_set(LED_IND_AUDIO, 5, 11, 13); + rgbsps_set(LED_IND_AUDIO, THEME_COLOR_AUDIO); } else { - rgbsps_set(LED_IND_AUDIO, 0, 0, 0); + rgbsps_set(LED_IND_AUDIO, COLOR_BLANK); } #endif @@ -1244,9 +1245,9 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { case FC_TOG: #ifdef RGBSPS_ENABLE if (fauxclicky_enabled) { - rgbsps_set(LED_IND_AUDIO, 5, 11, 13); + rgbsps_set(LED_IND_AUDIO, THEME_COLOR_AUDIO); } else { - rgbsps_set(LED_IND_AUDIO, 0, 0, 0); + rgbsps_set(LED_IND_AUDIO, COLOR_BLANK); } rgbsps_send(); #endif @@ -1320,9 +1321,9 @@ void turn_off_capslock() { bool new_capslock = usb_led & (1< Date: Sun, 30 Apr 2017 10:48:17 -0400 Subject: [PATCH 189/190] fixes s60_x keyboard --- keyboards/s60-x/s60-x.c | 1 - keyboards/s60-x/s60-x_precompiled.zip | Bin 276106 -> 0 bytes keyboards/{s60-x => s60_x}/Makefile | 0 keyboards/{s60-x => s60_x}/config.h | 13 +++++++++ keyboards/{s60-x => s60_x}/default/Makefile | 0 keyboards/{s60-x => s60_x}/default/config.h | 0 keyboards/{s60-x => s60_x}/default/default.c | 0 keyboards/{s60-x => s60_x}/default/default.h | 0 keyboards/{s60-x => s60_x}/default/rules.mk | 0 .../keymaps/ansi_qwertz/Makefile | 0 .../keymaps/ansi_qwertz/config.h | 0 .../docs/KB_US-International-Alternative.png | Bin .../docs/KB_US-International-Alternative.svg | 0 ...-Alternative.svg.2016_08_18_09_06_36.0.svg | 0 .../ansi_qwertz/docs/KB_US-International.png | Bin .../ansi_qwertz/docs/KB_US-International.svg | 0 .../keymaps/ansi_qwertz/docs/base_layer.PNG | Bin .../ansi_qwertz/docs/function_layer.PNG | Bin .../keymaps/ansi_qwertz/docs/gaming_layer.PNG | Bin .../keymaps/ansi_qwertz/keymap.c | 2 +- .../keymaps/ansi_qwertz/readme.md | 0 .../{s60-x => s60_x}/keymaps/custom/keymap.c | 2 +- .../{s60-x => s60_x}/keymaps/custom/readme.md | 0 .../{s60-x => s60_x}/keymaps/dbroqua/keymap.c | 25 +++++++++++++----- .../{s60-x => s60_x}/keymaps/default/keymap.c | 2 +- .../keymaps/default/readme.md | 0 .../{s60-x => s60_x}/keymaps/hasu/keymap.c | 2 +- .../{s60-x => s60_x}/keymaps/hasu/readme.md | 0 .../{s60-x => s60_x}/keymaps/hhkb/keymap.c | 2 +- .../{s60-x => s60_x}/keymaps/hhkb/readme.md | 0 .../{s60-x => s60_x}/keymaps/iso/keymap.c | 2 +- .../{s60-x => s60_x}/keymaps/iso/readme.md | 0 .../{s60-x => s60_x}/keymaps/jpec/keymap.c | 2 +- .../{s60-x => s60_x}/keymaps/jpec/readme.md | 0 .../{s60-x => s60_x}/keymaps/plain/keymap.c | 2 +- .../{s60-x => s60_x}/keymaps/plain/readme.md | 0 .../{s60-x => s60_x}/keymaps/poker/keymap.c | 2 +- .../{s60-x => s60_x}/keymaps/poker/readme.md | 0 .../keymaps/poker_bit/keymap.c | 2 +- .../keymaps/poker_bit/readme.md | 0 .../keymaps/poker_set/keymap.c | 2 +- .../keymaps/poker_set/readme.md | 0 .../{s60-x => s60_x}/keymaps/spacefn/keymap.c | 2 +- .../keymaps/spacefn/readme.md | 0 keyboards/{s60-x => s60_x}/readme.md | 5 ---- keyboards/{s60-x => s60_x}/rgb/Makefile | 0 keyboards/{s60-x => s60_x}/rgb/config.h | 6 ----- keyboards/{s60-x => s60_x}/rgb/rgb.c | 0 keyboards/{s60-x => s60_x}/rgb/rgb.h | 0 keyboards/{s60-x => s60_x}/rgb/rules.mk | 0 keyboards/{s60-x => s60_x}/rules.mk | 0 keyboards/s60_x/s60_x.c | 1 + keyboards/{s60-x/s60-x.h => s60_x/s60_x.h} | 0 53 files changed, 44 insertions(+), 31 deletions(-) delete mode 100644 keyboards/s60-x/s60-x.c delete mode 100644 keyboards/s60-x/s60-x_precompiled.zip rename keyboards/{s60-x => s60_x}/Makefile (100%) rename keyboards/{s60-x => s60_x}/config.h (85%) rename keyboards/{s60-x => s60_x}/default/Makefile (100%) rename keyboards/{s60-x => s60_x}/default/config.h (100%) rename keyboards/{s60-x => s60_x}/default/default.c (100%) rename keyboards/{s60-x => s60_x}/default/default.h (100%) rename keyboards/{s60-x => s60_x}/default/rules.mk (100%) rename keyboards/{s60-x => s60_x}/keymaps/ansi_qwertz/Makefile (100%) rename keyboards/{s60-x => s60_x}/keymaps/ansi_qwertz/config.h (100%) rename keyboards/{s60-x => s60_x}/keymaps/ansi_qwertz/docs/KB_US-International-Alternative.png (100%) rename keyboards/{s60-x => s60_x}/keymaps/ansi_qwertz/docs/KB_US-International-Alternative.svg (100%) rename keyboards/{s60-x => s60_x}/keymaps/ansi_qwertz/docs/KB_US-International-Alternative.svg.2016_08_18_09_06_36.0.svg (100%) rename keyboards/{s60-x => s60_x}/keymaps/ansi_qwertz/docs/KB_US-International.png (100%) rename keyboards/{s60-x => s60_x}/keymaps/ansi_qwertz/docs/KB_US-International.svg (100%) rename keyboards/{s60-x => s60_x}/keymaps/ansi_qwertz/docs/base_layer.PNG (100%) rename keyboards/{s60-x => s60_x}/keymaps/ansi_qwertz/docs/function_layer.PNG (100%) rename keyboards/{s60-x => s60_x}/keymaps/ansi_qwertz/docs/gaming_layer.PNG (100%) rename keyboards/{s60-x => s60_x}/keymaps/ansi_qwertz/keymap.c (99%) rename keyboards/{s60-x => s60_x}/keymaps/ansi_qwertz/readme.md (100%) rename keyboards/{s60-x => s60_x}/keymaps/custom/keymap.c (99%) rename keyboards/{s60-x => s60_x}/keymaps/custom/readme.md (100%) rename keyboards/{s60-x => s60_x}/keymaps/dbroqua/keymap.c (95%) rename keyboards/{s60-x => s60_x}/keymaps/default/keymap.c (99%) rename keyboards/{s60-x => s60_x}/keymaps/default/readme.md (100%) rename keyboards/{s60-x => s60_x}/keymaps/hasu/keymap.c (99%) rename keyboards/{s60-x => s60_x}/keymaps/hasu/readme.md (100%) rename keyboards/{s60-x => s60_x}/keymaps/hhkb/keymap.c (99%) rename keyboards/{s60-x => s60_x}/keymaps/hhkb/readme.md (100%) rename keyboards/{s60-x => s60_x}/keymaps/iso/keymap.c (99%) rename keyboards/{s60-x => s60_x}/keymaps/iso/readme.md (100%) rename keyboards/{s60-x => s60_x}/keymaps/jpec/keymap.c (99%) rename keyboards/{s60-x => s60_x}/keymaps/jpec/readme.md (100%) rename keyboards/{s60-x => s60_x}/keymaps/plain/keymap.c (99%) rename keyboards/{s60-x => s60_x}/keymaps/plain/readme.md (100%) rename keyboards/{s60-x => s60_x}/keymaps/poker/keymap.c (99%) rename keyboards/{s60-x => s60_x}/keymaps/poker/readme.md (100%) rename keyboards/{s60-x => s60_x}/keymaps/poker_bit/keymap.c (99%) rename keyboards/{s60-x => s60_x}/keymaps/poker_bit/readme.md (100%) rename keyboards/{s60-x => s60_x}/keymaps/poker_set/keymap.c (99%) rename keyboards/{s60-x => s60_x}/keymaps/poker_set/readme.md (100%) rename keyboards/{s60-x => s60_x}/keymaps/spacefn/keymap.c (99%) rename keyboards/{s60-x => s60_x}/keymaps/spacefn/readme.md (100%) rename keyboards/{s60-x => s60_x}/readme.md (99%) rename keyboards/{s60-x => s60_x}/rgb/Makefile (100%) rename keyboards/{s60-x => s60_x}/rgb/config.h (86%) rename keyboards/{s60-x => s60_x}/rgb/rgb.c (100%) rename keyboards/{s60-x => s60_x}/rgb/rgb.h (100%) rename keyboards/{s60-x => s60_x}/rgb/rules.mk (100%) rename keyboards/{s60-x => s60_x}/rules.mk (100%) create mode 100644 keyboards/s60_x/s60_x.c rename keyboards/{s60-x/s60-x.h => s60_x/s60_x.h} (100%) diff --git a/keyboards/s60-x/s60-x.c b/keyboards/s60-x/s60-x.c deleted file mode 100644 index f031dd770d2..00000000000 --- a/keyboards/s60-x/s60-x.c +++ /dev/null @@ -1 +0,0 @@ -#include "s60-x.h" \ No newline at end of file diff --git a/keyboards/s60-x/s60-x_precompiled.zip b/keyboards/s60-x/s60-x_precompiled.zip deleted file mode 100644 index 00d99ca8a15040294f7a6e2c3dbe997c2d947c5e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 276106 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

2&q3Cif2b+0-Y3!UfDR?ww3EVo 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 z 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. #define MATRIX_ROWS 5 #define MATRIX_COLS 15 +/* number of backlight levels */ +#define BACKLIGHT_PIN B7 +#ifdef BACKLIGHT_PIN +#define BACKLIGHT_LEVELS 3 +#endif + /* COL2ROW or ROW2COL */ #define DIODE_DIRECTION COL2ROW @@ -43,4 +49,11 @@ along with this program. If not, see . keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ ) +#ifdef SUBPROJECT_default + #include "default/config.h" +#endif +#ifdef SUBPROJECT_rgb + #include "rgb/config.h" +#endif + #endif diff --git a/keyboards/s60-x/default/Makefile b/keyboards/s60_x/default/Makefile similarity index 100% rename from keyboards/s60-x/default/Makefile rename to keyboards/s60_x/default/Makefile diff --git a/keyboards/s60-x/default/config.h b/keyboards/s60_x/default/config.h similarity index 100% rename from keyboards/s60-x/default/config.h rename to keyboards/s60_x/default/config.h diff --git a/keyboards/s60-x/default/default.c b/keyboards/s60_x/default/default.c similarity index 100% rename from keyboards/s60-x/default/default.c rename to keyboards/s60_x/default/default.c diff --git a/keyboards/s60-x/default/default.h b/keyboards/s60_x/default/default.h similarity index 100% rename from keyboards/s60-x/default/default.h rename to keyboards/s60_x/default/default.h diff --git a/keyboards/s60-x/default/rules.mk b/keyboards/s60_x/default/rules.mk similarity index 100% rename from keyboards/s60-x/default/rules.mk rename to keyboards/s60_x/default/rules.mk diff --git a/keyboards/s60-x/keymaps/ansi_qwertz/Makefile b/keyboards/s60_x/keymaps/ansi_qwertz/Makefile similarity index 100% rename from keyboards/s60-x/keymaps/ansi_qwertz/Makefile rename to keyboards/s60_x/keymaps/ansi_qwertz/Makefile diff --git a/keyboards/s60-x/keymaps/ansi_qwertz/config.h b/keyboards/s60_x/keymaps/ansi_qwertz/config.h similarity index 100% rename from keyboards/s60-x/keymaps/ansi_qwertz/config.h rename to keyboards/s60_x/keymaps/ansi_qwertz/config.h diff --git a/keyboards/s60-x/keymaps/ansi_qwertz/docs/KB_US-International-Alternative.png b/keyboards/s60_x/keymaps/ansi_qwertz/docs/KB_US-International-Alternative.png similarity index 100% rename from keyboards/s60-x/keymaps/ansi_qwertz/docs/KB_US-International-Alternative.png rename to keyboards/s60_x/keymaps/ansi_qwertz/docs/KB_US-International-Alternative.png diff --git a/keyboards/s60-x/keymaps/ansi_qwertz/docs/KB_US-International-Alternative.svg b/keyboards/s60_x/keymaps/ansi_qwertz/docs/KB_US-International-Alternative.svg similarity index 100% rename from keyboards/s60-x/keymaps/ansi_qwertz/docs/KB_US-International-Alternative.svg rename to keyboards/s60_x/keymaps/ansi_qwertz/docs/KB_US-International-Alternative.svg diff --git a/keyboards/s60-x/keymaps/ansi_qwertz/docs/KB_US-International-Alternative.svg.2016_08_18_09_06_36.0.svg b/keyboards/s60_x/keymaps/ansi_qwertz/docs/KB_US-International-Alternative.svg.2016_08_18_09_06_36.0.svg similarity index 100% rename from keyboards/s60-x/keymaps/ansi_qwertz/docs/KB_US-International-Alternative.svg.2016_08_18_09_06_36.0.svg rename to keyboards/s60_x/keymaps/ansi_qwertz/docs/KB_US-International-Alternative.svg.2016_08_18_09_06_36.0.svg diff --git a/keyboards/s60-x/keymaps/ansi_qwertz/docs/KB_US-International.png b/keyboards/s60_x/keymaps/ansi_qwertz/docs/KB_US-International.png similarity index 100% rename from keyboards/s60-x/keymaps/ansi_qwertz/docs/KB_US-International.png rename to keyboards/s60_x/keymaps/ansi_qwertz/docs/KB_US-International.png diff --git a/keyboards/s60-x/keymaps/ansi_qwertz/docs/KB_US-International.svg b/keyboards/s60_x/keymaps/ansi_qwertz/docs/KB_US-International.svg similarity index 100% rename from keyboards/s60-x/keymaps/ansi_qwertz/docs/KB_US-International.svg rename to keyboards/s60_x/keymaps/ansi_qwertz/docs/KB_US-International.svg diff --git a/keyboards/s60-x/keymaps/ansi_qwertz/docs/base_layer.PNG b/keyboards/s60_x/keymaps/ansi_qwertz/docs/base_layer.PNG similarity index 100% rename from keyboards/s60-x/keymaps/ansi_qwertz/docs/base_layer.PNG rename to keyboards/s60_x/keymaps/ansi_qwertz/docs/base_layer.PNG diff --git a/keyboards/s60-x/keymaps/ansi_qwertz/docs/function_layer.PNG b/keyboards/s60_x/keymaps/ansi_qwertz/docs/function_layer.PNG similarity index 100% rename from keyboards/s60-x/keymaps/ansi_qwertz/docs/function_layer.PNG rename to keyboards/s60_x/keymaps/ansi_qwertz/docs/function_layer.PNG diff --git a/keyboards/s60-x/keymaps/ansi_qwertz/docs/gaming_layer.PNG b/keyboards/s60_x/keymaps/ansi_qwertz/docs/gaming_layer.PNG similarity index 100% rename from keyboards/s60-x/keymaps/ansi_qwertz/docs/gaming_layer.PNG rename to keyboards/s60_x/keymaps/ansi_qwertz/docs/gaming_layer.PNG diff --git a/keyboards/s60-x/keymaps/ansi_qwertz/keymap.c b/keyboards/s60_x/keymaps/ansi_qwertz/keymap.c similarity index 99% rename from keyboards/s60-x/keymaps/ansi_qwertz/keymap.c rename to keyboards/s60_x/keymaps/ansi_qwertz/keymap.c index 317a245bef3..ebb3aece348 100644 --- a/keyboards/s60-x/keymaps/ansi_qwertz/keymap.c +++ b/keyboards/s60_x/keymaps/ansi_qwertz/keymap.c @@ -14,7 +14,7 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . */ -#include "s60-x.h" +#include "s60_x.h" //make keymap a little easier to read #define _______ KC_TRNS diff --git a/keyboards/s60-x/keymaps/ansi_qwertz/readme.md b/keyboards/s60_x/keymaps/ansi_qwertz/readme.md similarity index 100% rename from keyboards/s60-x/keymaps/ansi_qwertz/readme.md rename to keyboards/s60_x/keymaps/ansi_qwertz/readme.md diff --git a/keyboards/s60-x/keymaps/custom/keymap.c b/keyboards/s60_x/keymaps/custom/keymap.c similarity index 99% rename from keyboards/s60-x/keymaps/custom/keymap.c rename to keyboards/s60_x/keymaps/custom/keymap.c index fb2a40b85e4..66eac333564 100644 --- a/keyboards/s60-x/keymaps/custom/keymap.c +++ b/keyboards/s60_x/keymaps/custom/keymap.c @@ -1,4 +1,4 @@ -#include "s60-x.h" +#include "s60_x.h" /* Main layer: Test layout, using all keys. diff --git a/keyboards/s60-x/keymaps/custom/readme.md b/keyboards/s60_x/keymaps/custom/readme.md similarity index 100% rename from keyboards/s60-x/keymaps/custom/readme.md rename to keyboards/s60_x/keymaps/custom/readme.md diff --git a/keyboards/s60-x/keymaps/dbroqua/keymap.c b/keyboards/s60_x/keymaps/dbroqua/keymap.c similarity index 95% rename from keyboards/s60-x/keymaps/dbroqua/keymap.c rename to keyboards/s60_x/keymaps/dbroqua/keymap.c index 0a714445ced..8d1887e75a2 100644 --- a/keyboards/s60-x/keymaps/dbroqua/keymap.c +++ b/keyboards/s60_x/keymaps/dbroqua/keymap.c @@ -1,4 +1,4 @@ -#include "s60-x.h" +#include "s60_x.h" #define _DEFAULT 0 #define _FN 1 @@ -73,12 +73,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ) }; -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { - keyevent_t event = record->event; - - switch (id) { - - } +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { return MACRO_NONE; } @@ -108,42 +103,58 @@ void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { switch (id) { case RGBLED_TOGGLE: if (record->event.pressed) { + #ifdef RGB_ENABLE rgblight_toggle(); + #endif } break; case RGBLED_INCREASE_HUE: if (record->event.pressed) { + #ifdef RGB_ENABLE rgblight_increase_hue(); + #endif } break; case RGBLED_DECREASE_HUE: if (record->event.pressed) { + #ifdef RGB_ENABLE rgblight_decrease_hue(); + #endif } break; case RGBLED_INCREASE_SAT: if (record->event.pressed) { + #ifdef RGB_ENABLE rgblight_increase_sat(); + #endif } break; case RGBLED_DECREASE_SAT: if (record->event.pressed) { + #ifdef RGB_ENABLE rgblight_decrease_sat(); + #endif } break; case RGBLED_INCREASE_VAL: if (record->event.pressed) { + #ifdef RGB_ENABLE rgblight_increase_val(); + #endif } break; case RGBLED_DECREASE_VAL: if (record->event.pressed) { + #ifdef RGB_ENABLE rgblight_decrease_val(); + #endif } break; case RGBLED_STEP_MODE: if (record->event.pressed) { + #ifdef RGB_ENABLE rgblight_step(); + #endif } break; } diff --git a/keyboards/s60-x/keymaps/default/keymap.c b/keyboards/s60_x/keymaps/default/keymap.c similarity index 99% rename from keyboards/s60-x/keymaps/default/keymap.c rename to keyboards/s60_x/keymaps/default/keymap.c index eb0c6b056ea..a616e79b34e 100644 --- a/keyboards/s60-x/keymaps/default/keymap.c +++ b/keyboards/s60_x/keymaps/default/keymap.c @@ -1,4 +1,4 @@ -#include "s60-x.h" +#include "s60_x.h" /* 0: Main layer ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐ diff --git a/keyboards/s60-x/keymaps/default/readme.md b/keyboards/s60_x/keymaps/default/readme.md similarity index 100% rename from keyboards/s60-x/keymaps/default/readme.md rename to keyboards/s60_x/keymaps/default/readme.md diff --git a/keyboards/s60-x/keymaps/hasu/keymap.c b/keyboards/s60_x/keymaps/hasu/keymap.c similarity index 99% rename from keyboards/s60-x/keymaps/hasu/keymap.c rename to keyboards/s60_x/keymaps/hasu/keymap.c index cbeaae0281d..ac90dc6b205 100644 --- a/keyboards/s60-x/keymaps/hasu/keymap.c +++ b/keyboards/s60_x/keymaps/hasu/keymap.c @@ -1,4 +1,4 @@ -#include "s60-x.h" +#include "s60_x.h" /* * Hasu diff --git a/keyboards/s60-x/keymaps/hasu/readme.md b/keyboards/s60_x/keymaps/hasu/readme.md similarity index 100% rename from keyboards/s60-x/keymaps/hasu/readme.md rename to keyboards/s60_x/keymaps/hasu/readme.md diff --git a/keyboards/s60-x/keymaps/hhkb/keymap.c b/keyboards/s60_x/keymaps/hhkb/keymap.c similarity index 99% rename from keyboards/s60-x/keymaps/hhkb/keymap.c rename to keyboards/s60_x/keymaps/hhkb/keymap.c index 9afd1247f8a..dc1bfffc473 100644 --- a/keyboards/s60-x/keymaps/hhkb/keymap.c +++ b/keyboards/s60_x/keymaps/hhkb/keymap.c @@ -1,4 +1,4 @@ -#include "s60-x.h" +#include "s60_x.h" /* * HHKB Layout diff --git a/keyboards/s60-x/keymaps/hhkb/readme.md b/keyboards/s60_x/keymaps/hhkb/readme.md similarity index 100% rename from keyboards/s60-x/keymaps/hhkb/readme.md rename to keyboards/s60_x/keymaps/hhkb/readme.md diff --git a/keyboards/s60-x/keymaps/iso/keymap.c b/keyboards/s60_x/keymaps/iso/keymap.c similarity index 99% rename from keyboards/s60-x/keymaps/iso/keymap.c rename to keyboards/s60_x/keymaps/iso/keymap.c index 43a9c48b058..f6fc7417288 100644 --- a/keyboards/s60-x/keymaps/iso/keymap.c +++ b/keyboards/s60_x/keymaps/iso/keymap.c @@ -1,4 +1,4 @@ -#include "s60-x.h" +#include "s60_x.h" /* 0: Main layer ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐ diff --git a/keyboards/s60-x/keymaps/iso/readme.md b/keyboards/s60_x/keymaps/iso/readme.md similarity index 100% rename from keyboards/s60-x/keymaps/iso/readme.md rename to keyboards/s60_x/keymaps/iso/readme.md diff --git a/keyboards/s60-x/keymaps/jpec/keymap.c b/keyboards/s60_x/keymaps/jpec/keymap.c similarity index 99% rename from keyboards/s60-x/keymaps/jpec/keymap.c rename to keyboards/s60_x/keymaps/jpec/keymap.c index c8fc1332884..21e77c10b2b 100644 --- a/keyboards/s60-x/keymaps/jpec/keymap.c +++ b/keyboards/s60_x/keymaps/jpec/keymap.c @@ -14,7 +14,7 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . */ -#include "s60-x.h" +#include "s60_x.h" const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Layout 0: Default Layer diff --git a/keyboards/s60-x/keymaps/jpec/readme.md b/keyboards/s60_x/keymaps/jpec/readme.md similarity index 100% rename from keyboards/s60-x/keymaps/jpec/readme.md rename to keyboards/s60_x/keymaps/jpec/readme.md diff --git a/keyboards/s60-x/keymaps/plain/keymap.c b/keyboards/s60_x/keymaps/plain/keymap.c similarity index 99% rename from keyboards/s60-x/keymaps/plain/keymap.c rename to keyboards/s60_x/keymaps/plain/keymap.c index 790ac88e73e..d5075a07b9a 100644 --- a/keyboards/s60-x/keymaps/plain/keymap.c +++ b/keyboards/s60_x/keymaps/plain/keymap.c @@ -1,4 +1,4 @@ -#include "s60-x.h" +#include "s60_x.h" /* Main layer: ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐ diff --git a/keyboards/s60-x/keymaps/plain/readme.md b/keyboards/s60_x/keymaps/plain/readme.md similarity index 100% rename from keyboards/s60-x/keymaps/plain/readme.md rename to keyboards/s60_x/keymaps/plain/readme.md diff --git a/keyboards/s60-x/keymaps/poker/keymap.c b/keyboards/s60_x/keymaps/poker/keymap.c similarity index 99% rename from keyboards/s60-x/keymaps/poker/keymap.c rename to keyboards/s60_x/keymaps/poker/keymap.c index 0a8691792a9..5b917704e40 100644 --- a/keyboards/s60-x/keymaps/poker/keymap.c +++ b/keyboards/s60_x/keymaps/poker/keymap.c @@ -1,4 +1,4 @@ -#include "s60-x.h" +#include "s60_x.h" const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* 0: qwerty diff --git a/keyboards/s60-x/keymaps/poker/readme.md b/keyboards/s60_x/keymaps/poker/readme.md similarity index 100% rename from keyboards/s60-x/keymaps/poker/readme.md rename to keyboards/s60_x/keymaps/poker/readme.md diff --git a/keyboards/s60-x/keymaps/poker_bit/keymap.c b/keyboards/s60_x/keymaps/poker_bit/keymap.c similarity index 99% rename from keyboards/s60-x/keymaps/poker_bit/keymap.c rename to keyboards/s60_x/keymaps/poker_bit/keymap.c index 7626038f426..1f7b1b633d9 100644 --- a/keyboards/s60-x/keymaps/poker_bit/keymap.c +++ b/keyboards/s60_x/keymaps/poker_bit/keymap.c @@ -1,4 +1,4 @@ -#include "s60-x.h" +#include "s60_x.h" // Poker fix with toggle and bit operation // Fn + Esc = ` diff --git a/keyboards/s60-x/keymaps/poker_bit/readme.md b/keyboards/s60_x/keymaps/poker_bit/readme.md similarity index 100% rename from keyboards/s60-x/keymaps/poker_bit/readme.md rename to keyboards/s60_x/keymaps/poker_bit/readme.md diff --git a/keyboards/s60-x/keymaps/poker_set/keymap.c b/keyboards/s60_x/keymaps/poker_set/keymap.c similarity index 99% rename from keyboards/s60-x/keymaps/poker_set/keymap.c rename to keyboards/s60_x/keymaps/poker_set/keymap.c index 09423e75b37..52eee53218d 100644 --- a/keyboards/s60-x/keymaps/poker_set/keymap.c +++ b/keyboards/s60_x/keymaps/poker_set/keymap.c @@ -1,4 +1,4 @@ -#include "s60-x.h" +#include "s60_x.h" // Poker fix with set(state transition) // Fn + Esc = ` diff --git a/keyboards/s60-x/keymaps/poker_set/readme.md b/keyboards/s60_x/keymaps/poker_set/readme.md similarity index 100% rename from keyboards/s60-x/keymaps/poker_set/readme.md rename to keyboards/s60_x/keymaps/poker_set/readme.md diff --git a/keyboards/s60-x/keymaps/spacefn/keymap.c b/keyboards/s60_x/keymaps/spacefn/keymap.c similarity index 99% rename from keyboards/s60-x/keymaps/spacefn/keymap.c rename to keyboards/s60_x/keymaps/spacefn/keymap.c index b6dc7ca7eb8..28369580ede 100644 --- a/keyboards/s60-x/keymaps/spacefn/keymap.c +++ b/keyboards/s60_x/keymaps/spacefn/keymap.c @@ -1,4 +1,4 @@ -#include "s60-x.h" +#include "s60_x.h" /* * SpaceFN diff --git a/keyboards/s60-x/keymaps/spacefn/readme.md b/keyboards/s60_x/keymaps/spacefn/readme.md similarity index 100% rename from keyboards/s60-x/keymaps/spacefn/readme.md rename to keyboards/s60_x/keymaps/spacefn/readme.md diff --git a/keyboards/s60-x/readme.md b/keyboards/s60_x/readme.md similarity index 99% rename from keyboards/s60-x/readme.md rename to keyboards/s60_x/readme.md index 408ad13ac2c..e30b2f76ce2 100644 --- a/keyboards/s60-x/readme.md +++ b/keyboards/s60_x/readme.md @@ -5,11 +5,6 @@ DIY compact keyboard designed by VinnyCordeiro for Sentraq. Most of the keymaps ## S60X Resources - [Massdrop page](https://www.massdrop.com/buy/sentraq-60-diy-keyboard-kit?mode=guest_open) -## Quickstart - -If you just want to test a few layouts, the archive [s60-x_precompiled.zip](s60-x_precompiled.zip) contains pre-compiled .hex-files for all available keymaps. Not all of them are tested. -You only need to flash them onto your keyboard, which is explained below, there's no need to setup a build environment. For a full list - ## Flashing your keyboard The recommended programs for flashing your keyboard are [Atmel FLIP](http://www.atmel.com/tools/FLIP.aspx) (Windows) and [dfu-programmer](http://dfu-programmer.sourceforge.net/) (Linux/Windows). diff --git a/keyboards/s60-x/rgb/Makefile b/keyboards/s60_x/rgb/Makefile similarity index 100% rename from keyboards/s60-x/rgb/Makefile rename to keyboards/s60_x/rgb/Makefile diff --git a/keyboards/s60-x/rgb/config.h b/keyboards/s60_x/rgb/config.h similarity index 86% rename from keyboards/s60-x/rgb/config.h rename to keyboards/s60_x/rgb/config.h index fbc143487ee..81efc87d54e 100644 --- a/keyboards/s60-x/rgb/config.h +++ b/keyboards/s60_x/rgb/config.h @@ -11,12 +11,6 @@ #define MATRIX_COL_PINS { D0, D1, D2, D3, D5, B6, C6, C7, F1, F0, E6, B3, B2, B1, B0 } #define UNUSED_PINS -/* number of backlight levels */ -#define BACKLIGHT_PIN B7 -#ifdef BACKLIGHT_PIN -#define BACKLIGHT_LEVELS 3 -#endif - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE diff --git a/keyboards/s60-x/rgb/rgb.c b/keyboards/s60_x/rgb/rgb.c similarity index 100% rename from keyboards/s60-x/rgb/rgb.c rename to keyboards/s60_x/rgb/rgb.c diff --git a/keyboards/s60-x/rgb/rgb.h b/keyboards/s60_x/rgb/rgb.h similarity index 100% rename from keyboards/s60-x/rgb/rgb.h rename to keyboards/s60_x/rgb/rgb.h diff --git a/keyboards/s60-x/rgb/rules.mk b/keyboards/s60_x/rgb/rules.mk similarity index 100% rename from keyboards/s60-x/rgb/rules.mk rename to keyboards/s60_x/rgb/rules.mk diff --git a/keyboards/s60-x/rules.mk b/keyboards/s60_x/rules.mk similarity index 100% rename from keyboards/s60-x/rules.mk rename to keyboards/s60_x/rules.mk diff --git a/keyboards/s60_x/s60_x.c b/keyboards/s60_x/s60_x.c new file mode 100644 index 00000000000..595418bfacc --- /dev/null +++ b/keyboards/s60_x/s60_x.c @@ -0,0 +1 @@ +#include "s60_x.h" \ No newline at end of file diff --git a/keyboards/s60-x/s60-x.h b/keyboards/s60_x/s60_x.h similarity index 100% rename from keyboards/s60-x/s60-x.h rename to keyboards/s60_x/s60_x.h From 7ce94eb468ff34f904f8ef8fdeb3c5fe2d09d78c Mon Sep 17 00:00:00 2001 From: Ryan MacLean Date: Sun, 30 Apr 2017 15:04:00 -0700 Subject: [PATCH 190/190] Cleaning Up Dockerfile Layers Per Official Docs From the official docs: ``` Note: The official Debian and Ubuntu images automatically run apt-get clean, so explicit invocation is not required. ``` Also added ` && rm -rf /var/lib/apt/lists/*` as part of the install line which probably does what was intended (no need to make a new layer). Added apt-get update to the RUN payload, as it should be part of the same layer. Both are documented here: https://docs.docker.com/engine/userguide/eng-image/dockerfile_best-practices/ --- Dockerfile | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/Dockerfile b/Dockerfile index 744ded85797..88da06f02a6 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,8 +1,7 @@ FROM debian:jessie MAINTAINER Erik Dasque -RUN apt-get update -RUN apt-get install --no-install-recommends -y build-essential \ +RUN apt-get update && apt-get install --no-install-recommends -y build-essential \ gcc \ unzip \ wget \ @@ -15,10 +14,8 @@ RUN apt-get install --no-install-recommends -y build-essential \ gcc-arm-none-eabi \ binutils-arm-none-eabi \ libnewlib-arm-none-eabi \ - git - -RUN apt-get clean -RUN rm -rf /var/lib/apt/lists/* + git \ + && rm -rf /var/lib/apt/lists/* ENV keyboard=ergodox ENV subproject=ez