From 34bce6f206e30c06f4b6ccd22d461690732ea607 Mon Sep 17 00:00:00 2001 From: Jason Janse van Rensburg Date: Sun, 24 Jul 2016 04:08:40 +0200 Subject: [PATCH 01/34] fixed stupid errors --- keyboards/planck/keymaps/bone2planck/keymap.c | 29 +++++++++++-------- 1 file changed, 17 insertions(+), 12 deletions(-) diff --git a/keyboards/planck/keymaps/bone2planck/keymap.c b/keyboards/planck/keymaps/bone2planck/keymap.c index ceb5564251..4cac60ff9f 100644 --- a/keyboards/planck/keymaps/bone2planck/keymap.c +++ b/keyboards/planck/keymaps/bone2planck/keymap.c @@ -3,10 +3,15 @@ #ifdef BACKLIGHT_ENABLE #include "backlight.h" #endif +#include "keymap_german.h" + +/* for intellisense, comment for building #include "..\..\..\..\quantum\keymap_extras\keymap_german.h" #include "..\..\..\..\quantum\keymap_common.h" #include "..\..\..\..\tmk_core\common\keycode.h" -#define _______ = KC_TRNS; +*/ + +#define _______ KC_TRNS /* This Layout tries to emulate the Bone2 Variant of Neo2, and is intended to be used with a German QWERTZ Softwarelayout. It has "üäöß" as it is optimized for a mix of German & English. @@ -26,14 +31,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |------+------+------+------+------+------|------+------+------+------+------+------| * | Shift| F | V | Ü | Ä | Ö | Y | Z | , | . | K |Shift | * |------+------+------+------+------+------+------+------+------+------+------+------| -* | GUI | Ctrl | Alt | M4 | M2 | Space | M2 | M4 | | Ctrl | Esc | +* | GUI | Ctrl | Alt | M4 | M2 | Space | M2 | M4 | Alt | Ctrl | Esc | * `-----------------------------------------------------------------------------------' */ [0] = { { DE_Q, DE_J, DE_D, DE_U, DE_A, DE_X, DE_P, DE_H, DE_L, DE_M, DE_W, DE_SS }, { LT(1,KC_TAB), DE_C, DE_T, DE_I, DE_E, DE_O, DE_B, DE_N, DE_R, DE_S, DE_G, LT(1,KC_ENT) }, { KC_LSFT, DE_F, DE_V, DE_UE, DE_AE, DE_OE, DE_Y, DE_Z, DE_COMM, DE_DOT, DE_K, KC_LSFT }, - { KC_LGUI, KC_LCTL, KC_LALT, MO(4), MO(2), KC_SPC, KC_SPC, MO(2), MO(4), KC_NO, KC_RCTL, KC_ESC } + { KC_RGUI, KC_LCTL, KC_LALT, MO(4), MO(2), KC_SPC, KC_SPC, MO(2), MO(4), KC_RALT, KC_RCTL, KC_ESC } }, /* M1 Special Characters @@ -45,7 +50,7 @@ very ergonomic placement for coding * |------+------+------+------+------+------|------+------+------+------+------+------| * | Shift| # | $ | | | ~ | € | + | % | " | ' | ; |Shift | * |------+------+------+------+------+------+------+------+------+------+------+------| -* | GUI | Ctrl | Alt | M4 | M2 | Space | M2 | M4 | | Ctrl | Esc | +* | GUI | Ctrl | Alt | M4 | M2 | Space | M2 | M4 | Alt | Ctrl | Esc | * `-----------------------------------------------------------------------------------' */ [1] = { @@ -64,7 +69,7 @@ very easy to get used to & intuituve placement * |------+------+------+------+------+------|------+------+------+------+------+------| * | Shift| | Tab | Ins | Enter| | 0 | 1 | 2 | 3 | ; |Shift | * |------+------+------+------+------+------+------+------+------+------+------+------| -* | GUI | Ctrl | Alt | M3 | M2 | Space | M2 | M3 | | Ctrl | Esc | +* | GUI | Ctrl | Alt | M3 | M2 | Space | M2 | M3 | Alt | Ctrl | Esc | * `-----------------------------------------------------------------------------------' */ [2] = { @@ -83,12 +88,12 @@ accessed by sliding from M2 to M3 with thumb * |------+------+------+------+------+------|------+------+------+------+------+------| * | Shift| 0 | 1 | 2 | 3 | ; | | Tab | Ins | Enter| |Shift | * |------+------+------+------+------+------+------+------+------+------+------+------| -* | GUI | Ctrl | Alt | M3 | | Space | | M3 | | Ctrl | Esc | +* | GUI | Ctrl | Alt | M3 | | Space | | M3 | Alt | Ctrl | Esc | * `-----------------------------------------------------------------------------------' */ [3] = { - { KC_NO, KC_NO, DE_7, DE_8 DE_9, KC_NO, KC_PGUP, KC_BSPC, KC_UP, KC_DEL, KC_PGDN, KC_NO }, + { KC_NO, KC_NO, DE_7, DE_8, DE_9, KC_NO, KC_PGUP, KC_BSPC, KC_UP, KC_DEL, KC_PGDN, KC_NO }, { _______, DE_DOT, DE_4, DE_5, DE_6, DE_COMM, KC_HOME, KC_LEFT, KC_DOWN, KC_RGHT, KC_END, _______ }, { _______, DE_0, DE_1, DE_2, DE_3, DE_SCLN, KC_NO, KC_TAB, KC_INS, KC_ENT, KC_NO, _______ }, { _______, _______, _______, _______, KC_NO, _______, _______, KC_NO, _______, _______, _______, _______ } @@ -104,7 +109,7 @@ slide from m4 to m5 to access flipped version * |------+------+------+------+------+------|------+------+------+------+------+------| * | Shift| | Prev | Play | Next | | ² | F1 | F2 | F3 | F10 |Shift | * |------+------+------+------+------+------+------+------+------+------+------+------| -* | GUI | Ctrl | Alt | M4 | M5 | Space | M5 | M4 | | Ctrl | Esc | +* | GUI | Ctrl | Alt | M4 | M5 | Space | M5 | M4 | Alt | Ctrl | Esc | * `-----------------------------------------------------------------------------------' */ [4] = { @@ -112,7 +117,7 @@ slide from m4 to m5 to access flipped version { KC_NO, KC_NO, KC_MUTE, KC_VOLD, KC_VOLU, KC_NO, DE_SQ3, KC_F4, KC_F5, KC_F6, KC_F11, KC_NO }, { _______, KC_NO, KC_MPRV, KC_MPLY, KC_MNXT, KC_NO, DE_SQ2, KC_F1, KC_F2, KC_F3, KC_F10, _______ }, { _______, _______, _______, _______, MO(5), _______, _______, MO(5), _______, _______, _______, _______ } -} +}, /* flipped Function & Media Keys @@ -123,13 +128,13 @@ slide from m4 to m5 to access flipped version * |------+------+------+------+------+------|------+------+------+------+------+------| * | Shift| ² | F1 | F2 | F3 | | | Prev | Play | Next | |Shift | * |------+------+------+------+------+------+------+------+------+------+------+------| -* | GUI | Ctrl | Alt | | M5 | Space | M5 | | | Ctrl | Esc | +* | GUI | Ctrl | Alt | | M5 | Space | M5 | | Alt | Ctrl | Esc | * `-----------------------------------------------------------------------------------' */ [5] = { { KC_NO, KC_NO, KC_F7, KC_F8, KC_F9, KC_NO, KC_NO, KC_PSCR, KC_SLCK, KC_PAUS, KC_NO, KC_NO }, - { KC_NO, KC_SQ3, KC_F4, KC_F5, KC_F6, KC_NO, KC_NO, KC_MUTE, KC_VOLD, KC_VOLU, KC_NO, KC_NO }, - { _______, KC_SQ2, KC_F1, KC_F2, KC_F3, KC_NO, KC_NO, KC_MPRV, KC_MPLY, KC_MNXT, KC_NO, _______ }, + { KC_NO, DE_SQ3, KC_F4, KC_F5, KC_F6, KC_NO, KC_NO, KC_MUTE, KC_VOLD, KC_VOLU, KC_NO, KC_NO }, + { _______, DE_SQ2, KC_F1, KC_F2, KC_F3, KC_NO, KC_NO, KC_MPRV, KC_MPLY, KC_MNXT, KC_NO, _______ }, { _______, _______, _______, KC_NO, _______, _______, _______, _______, KC_NO, _______, _______, _______ } } }; From 58f092cf872a8f3f584b98445672f3e6809672c2 Mon Sep 17 00:00:00 2001 From: Jason Janse van Rensburg Date: Sun, 24 Jul 2016 04:52:35 +0200 Subject: [PATCH 02/34] moved ctrl --- keyboards/planck/keymaps/bone2planck/keymap.c | 23 ++++++++++--------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/keyboards/planck/keymaps/bone2planck/keymap.c b/keyboards/planck/keymaps/bone2planck/keymap.c index 4cac60ff9f..440de7f0da 100644 --- a/keyboards/planck/keymaps/bone2planck/keymap.c +++ b/keyboards/planck/keymaps/bone2planck/keymap.c @@ -5,7 +5,8 @@ #endif #include "keymap_german.h" -/* for intellisense, comment for building +// for intellisense, comment for building +/* #include "..\..\..\..\quantum\keymap_extras\keymap_german.h" #include "..\..\..\..\quantum\keymap_common.h" #include "..\..\..\..\tmk_core\common\keycode.h" @@ -31,14 +32,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |------+------+------+------+------+------|------+------+------+------+------+------| * | Shift| F | V | Ü | Ä | Ö | Y | Z | , | . | K |Shift | * |------+------+------+------+------+------+------+------+------+------+------+------| -* | GUI | Ctrl | Alt | M4 | M2 | Space | M2 | M4 | Alt | Ctrl | Esc | +* | Ctrl | GUI | Alt | M4 | M2 | Space | M2 | M4 | Alt | Esc | Ctrl | * `-----------------------------------------------------------------------------------' */ [0] = { - { DE_Q, DE_J, DE_D, DE_U, DE_A, DE_X, DE_P, DE_H, DE_L, DE_M, DE_W, DE_SS }, - { LT(1,KC_TAB), DE_C, DE_T, DE_I, DE_E, DE_O, DE_B, DE_N, DE_R, DE_S, DE_G, LT(1,KC_ENT) }, - { KC_LSFT, DE_F, DE_V, DE_UE, DE_AE, DE_OE, DE_Y, DE_Z, DE_COMM, DE_DOT, DE_K, KC_LSFT }, - { KC_RGUI, KC_LCTL, KC_LALT, MO(4), MO(2), KC_SPC, KC_SPC, MO(2), MO(4), KC_RALT, KC_RCTL, KC_ESC } + { DE_Q, DE_J, DE_D, DE_U, DE_A, DE_X, DE_P, DE_H, DE_L, DE_M, DE_W, DE_SS }, + { LT(1,KC_TAB), DE_C, DE_T, DE_I, DE_E, DE_O, DE_B, DE_N, DE_R, DE_S, DE_G, LT(1,KC_ENT) }, + { KC_LSFT, DE_F, DE_V, DE_UE, DE_AE, DE_OE, DE_Y, DE_Z, DE_COMM, DE_DOT, DE_K, KC_LSFT }, + { KC_LCTL, KC_RGUI, KC_LALT, MO(4), MO(2), KC_SPC, KC_SPC, MO(2), MO(4), KC_RALT, KC_ESC, KC_RCTL } }, /* M1 Special Characters @@ -50,7 +51,7 @@ very ergonomic placement for coding * |------+------+------+------+------+------|------+------+------+------+------+------| * | Shift| # | $ | | | ~ | € | + | % | " | ' | ; |Shift | * |------+------+------+------+------+------+------+------+------+------+------+------| -* | GUI | Ctrl | Alt | M4 | M2 | Space | M2 | M4 | Alt | Ctrl | Esc | +* | Ctrl | GUI | Alt | M4 | M2 | Space | M2 | M4 | Alt | Esc | Ctrl | * `-----------------------------------------------------------------------------------' */ [1] = { @@ -69,7 +70,7 @@ very easy to get used to & intuituve placement * |------+------+------+------+------+------|------+------+------+------+------+------| * | Shift| | Tab | Ins | Enter| | 0 | 1 | 2 | 3 | ; |Shift | * |------+------+------+------+------+------+------+------+------+------+------+------| -* | GUI | Ctrl | Alt | M3 | M2 | Space | M2 | M3 | Alt | Ctrl | Esc | +* | Ctrl | GUI | Alt | M3 | M2 | Space | M2 | M3 | Alt | Esc | Ctrl | * `-----------------------------------------------------------------------------------' */ [2] = { @@ -88,7 +89,7 @@ accessed by sliding from M2 to M3 with thumb * |------+------+------+------+------+------|------+------+------+------+------+------| * | Shift| 0 | 1 | 2 | 3 | ; | | Tab | Ins | Enter| |Shift | * |------+------+------+------+------+------+------+------+------+------+------+------| -* | GUI | Ctrl | Alt | M3 | | Space | | M3 | Alt | Ctrl | Esc | +* | Ctrl | GUI | Alt | M3 | | Space | | M3 | Alt | Esc | Ctrl | * `-----------------------------------------------------------------------------------' */ @@ -109,7 +110,7 @@ slide from m4 to m5 to access flipped version * |------+------+------+------+------+------|------+------+------+------+------+------| * | Shift| | Prev | Play | Next | | ² | F1 | F2 | F3 | F10 |Shift | * |------+------+------+------+------+------+------+------+------+------+------+------| -* | GUI | Ctrl | Alt | M4 | M5 | Space | M5 | M4 | Alt | Ctrl | Esc | +* | Ctrl | GUI | Alt | M4 | M5 | Space | M5 | M4 | Alt | Esc | Ctrl | * `-----------------------------------------------------------------------------------' */ [4] = { @@ -128,7 +129,7 @@ slide from m4 to m5 to access flipped version * |------+------+------+------+------+------|------+------+------+------+------+------| * | Shift| ² | F1 | F2 | F3 | | | Prev | Play | Next | |Shift | * |------+------+------+------+------+------+------+------+------+------+------+------| -* | GUI | Ctrl | Alt | | M5 | Space | M5 | | Alt | Ctrl | Esc | +* | Ctrl | GUI | Alt | | M5 | Space | M5 | | Alt | Esc | Ctrl | * `-----------------------------------------------------------------------------------' */ [5] = { From 1bfd57e2345119d5c60e95cdf82e14eb81a3b027 Mon Sep 17 00:00:00 2001 From: Jason Janse van Rensburg Date: Sun, 24 Jul 2016 05:02:06 +0200 Subject: [PATCH 03/34] moved insert --- keyboards/planck/keymaps/bone2planck/keymap.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/keyboards/planck/keymaps/bone2planck/keymap.c b/keyboards/planck/keymaps/bone2planck/keymap.c index 440de7f0da..6390e12897 100644 --- a/keyboards/planck/keymaps/bone2planck/keymap.c +++ b/keyboards/planck/keymaps/bone2planck/keymap.c @@ -64,19 +64,19 @@ very ergonomic placement for coding /* Navigation & Number Blocks very easy to get used to & intuituve placement * ,-----------------------------------------------------------------------------------. -* | | PgUp | Bksp | Up | DEL | PgDn | | 7 | 8 | 9 | | | +* | | PgUp | Bksp | Up | DEL | PgDn | | 7 | 8 | 9 | | Ins | * |------+------+------+------+------+-------------+------+------+------+------+------| * | Tab | Home | Lft | Down | Right| End | . | 4 | 5 | 6 | , | Enter| * |------+------+------+------+------+------|------+------+------+------+------+------| -* | Shift| | Tab | Ins | Enter| | 0 | 1 | 2 | 3 | ; |Shift | +* | Shift| | Tab | | Enter| | 0 | 1 | 2 | 3 | ; |Shift | * |------+------+------+------+------+------+------+------+------+------+------+------| * | Ctrl | GUI | Alt | M3 | M2 | Space | M2 | M3 | Alt | Esc | Ctrl | * `-----------------------------------------------------------------------------------' */ [2] = { - { KC_NO, KC_PGUP, KC_BSPC, KC_UP, KC_DEL, KC_PGDN, KC_NO, DE_7, DE_8, DE_9, KC_NO, KC_NO }, + { KC_NO, KC_PGUP, KC_BSPC, KC_UP, KC_DEL, KC_PGDN, KC_NO, DE_7, DE_8, DE_9, KC_NO, KC_INS }, { KC_TAB, KC_HOME, KC_LEFT, KC_DOWN, KC_RGHT, KC_END, DE_DOT, DE_4, DE_5, DE_6, DE_COMM, KC_ENT }, - { _______, KC_NO, KC_TAB, KC_INS, KC_ENT, KC_NO, DE_0, DE_1, DE_2, DE_3, DE_SCLN, _______ }, + { _______, KC_NO, KC_TAB, KC_NO, KC_ENT, KC_NO, DE_0, DE_1, DE_2, DE_3, DE_SCLN, _______ }, { _______, _______, _______, MO(3), _______, _______, _______, _______, MO(3), _______, _______, _______ } }, @@ -94,7 +94,7 @@ accessed by sliding from M2 to M3 with thumb */ [3] = { - { KC_NO, KC_NO, DE_7, DE_8, DE_9, KC_NO, KC_PGUP, KC_BSPC, KC_UP, KC_DEL, KC_PGDN, KC_NO }, + { KC_NO, KC_NO, DE_7, DE_8, DE_9, KC_NO, KC_PGUP, KC_BSPC, KC_UP, KC_DEL, KC_PGDN, KC_NO }, { _______, DE_DOT, DE_4, DE_5, DE_6, DE_COMM, KC_HOME, KC_LEFT, KC_DOWN, KC_RGHT, KC_END, _______ }, { _______, DE_0, DE_1, DE_2, DE_3, DE_SCLN, KC_NO, KC_TAB, KC_INS, KC_ENT, KC_NO, _______ }, { _______, _______, _______, _______, KC_NO, _______, _______, KC_NO, _______, _______, _______, _______ } From 4e0bf283f695b4b584bb62d31bb4cd6d7d1f2203 Mon Sep 17 00:00:00 2001 From: Jason Janse van Rensburg Date: Sun, 24 Jul 2016 05:11:07 +0200 Subject: [PATCH 04/34] added readme --- keyboards/planck/keymaps/bone2planck/readme.md | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 keyboards/planck/keymaps/bone2planck/readme.md diff --git a/keyboards/planck/keymaps/bone2planck/readme.md b/keyboards/planck/keymaps/bone2planck/readme.md new file mode 100644 index 0000000000..3c425efddb --- /dev/null +++ b/keyboards/planck/keymaps/bone2planck/readme.md @@ -0,0 +1,8 @@ +check keymap.c to the layers + +This Layout tries to emulate the Bone2 Variant of Neo2, and is intended to be used with a German QWERTZ Softwarelayout. +It has "üäöß" as it is optimized for a mix of German & English. +My favourite features are the placement of the special characters often used for programming right on the home row +and the number & navigation block combo, so you never have to move your hands from their home position. + +Bone2 wiki page: http://wiki.neo-layout.org/wiki/Bone \ No newline at end of file From 3e462fac3101955ad3561a104c24ca6125e85acd Mon Sep 17 00:00:00 2001 From: Jason Janse van Rensburg Date: Mon, 25 Jul 2016 20:21:32 +0200 Subject: [PATCH 05/34] added missing F keys in flipped layer --- keyboards/planck/keymaps/bone2planck/keymap.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/keyboards/planck/keymaps/bone2planck/keymap.c b/keyboards/planck/keymaps/bone2planck/keymap.c index 6390e12897..5abae692c6 100644 --- a/keyboards/planck/keymaps/bone2planck/keymap.c +++ b/keyboards/planck/keymaps/bone2planck/keymap.c @@ -123,19 +123,19 @@ slide from m4 to m5 to access flipped version /* flipped Function & Media Keys * ,-----------------------------------------------------------------------------------. -* | | | F7 | F8 | F9 | | | Print|Scroll| Pause| | | +* | | | F7 | F8 | F9 | F12 | | Print|Scroll| Pause| | | * |------+------+------+------+------+-------------+------+------+------+------+------| -* | | ³ | F4 | F5 | F6 | | | Mute | Vol- | Vol+ | | | +* | | ³ | F4 | F5 | F6 | F11 | | Mute | Vol- | Vol+ | | | * |------+------+------+------+------+------|------+------+------+------+------+------| -* | Shift| ² | F1 | F2 | F3 | | | Prev | Play | Next | |Shift | +* | Shift| ² | F1 | F2 | F3 | F10 | | Prev | Play | Next | |Shift | * |------+------+------+------+------+------+------+------+------+------+------+------| * | Ctrl | GUI | Alt | | M5 | Space | M5 | | Alt | Esc | Ctrl | * `-----------------------------------------------------------------------------------' */ [5] = { - { KC_NO, KC_NO, KC_F7, KC_F8, KC_F9, KC_NO, KC_NO, KC_PSCR, KC_SLCK, KC_PAUS, KC_NO, KC_NO }, - { KC_NO, DE_SQ3, KC_F4, KC_F5, KC_F6, KC_NO, KC_NO, KC_MUTE, KC_VOLD, KC_VOLU, KC_NO, KC_NO }, - { _______, DE_SQ2, KC_F1, KC_F2, KC_F3, KC_NO, KC_NO, KC_MPRV, KC_MPLY, KC_MNXT, KC_NO, _______ }, + { KC_NO, KC_NO, KC_F7, KC_F8, KC_F9, KC_F12, KC_NO, KC_PSCR, KC_SLCK, KC_PAUS, KC_NO, KC_NO }, + { KC_NO, DE_SQ3, KC_F4, KC_F5, KC_F6, KC_F11, KC_NO, KC_MUTE, KC_VOLD, KC_VOLU, KC_NO, KC_NO }, + { _______, DE_SQ2, KC_F1, KC_F2, KC_F3, KC_F10, KC_NO, KC_MPRV, KC_MPLY, KC_MNXT, KC_NO, _______ }, { _______, _______, _______, KC_NO, _______, _______, _______, _______, KC_NO, _______, _______, _______ } } }; From 8244fa40ccd89ad16ddc00210d5b1b169fb655c2 Mon Sep 17 00:00:00 2001 From: Jason Janse van Rensburg Date: Tue, 26 Jul 2016 14:58:17 +0200 Subject: [PATCH 06/34] added config.h, and missing Ins of filpped navigation layer --- keyboards/planck/keymaps/bone2planck/config.h | 90 +++++++++++++++++++ keyboards/planck/keymaps/bone2planck/keymap.c | 6 +- 2 files changed, 93 insertions(+), 3 deletions(-) create mode 100644 keyboards/planck/keymaps/bone2planck/config.h diff --git a/keyboards/planck/keymaps/bone2planck/config.h b/keyboards/planck/keymaps/bone2planck/config.h new file mode 100644 index 0000000000..ba157db92a --- /dev/null +++ b/keyboards/planck/keymaps/bone2planck/config.h @@ -0,0 +1,90 @@ +/* +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 + +#define PREVENT_STUCK_MODIFIERS + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x6060 +#define MANUFACTURER Ortholinear Keyboards +#define PRODUCT The Planck Keyboard +#define DESCRIPTION A compact ortholinear keyboard + +/* key matrix size */ +#define MATRIX_ROWS 4 +#define MATRIX_COLS 12 + +/* Planck PCB default pin-out */ +#define MATRIX_ROW_PINS { D0, D5, B5, B6 } +#define MATRIX_COL_PINS { F1, F0, B0, C7, F4, F5, F6, F7, D4, D6, B4, D7 } +#define UNUSED_PINS + +#define BACKLIGHT_PIN B7 + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* define if matrix has ghost */ +//#define MATRIX_HAS_GHOST + +/* number of backlight levels */ +#define BACKLIGHT_LEVELS 3 + +/* 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 + +#ifdef SUBPROJECT_rev3 + #include "rev3/config.h" +#endif +#ifdef SUBPROJECT_rev4 + #include "rev4/config.h" +#endif + +#endif diff --git a/keyboards/planck/keymaps/bone2planck/keymap.c b/keyboards/planck/keymaps/bone2planck/keymap.c index 5abae692c6..7db3197a72 100644 --- a/keyboards/planck/keymaps/bone2planck/keymap.c +++ b/keyboards/planck/keymaps/bone2planck/keymap.c @@ -5,7 +5,7 @@ #endif #include "keymap_german.h" -// for intellisense, comment for building +// for intellisense, has to be commented for building /* #include "..\..\..\..\quantum\keymap_extras\keymap_german.h" #include "..\..\..\..\quantum\keymap_common.h" @@ -83,7 +83,7 @@ very easy to get used to & intuituve placement /* Flipped Navigation & Number Blocks for one handed use accessed by sliding from M2 to M3 with thumb * ,-----------------------------------------------------------------------------------. -* | | | 7 | 8 | 9 | | PgUp | Bksp | Up | DEL | PgDn | | +* | Ins | | 7 | 8 | 9 | | PgUp | Bksp | Up | DEL | PgDn | | * |------+------+------+------+------+-------------+------+------+------+------+------| * | Tab | . | 4 | 5 | 6 | , | Home | Left | Down | Right| End | Enter| * |------+------+------+------+------+------|------+------+------+------+------+------| @@ -94,7 +94,7 @@ accessed by sliding from M2 to M3 with thumb */ [3] = { - { KC_NO, KC_NO, DE_7, DE_8, DE_9, KC_NO, KC_PGUP, KC_BSPC, KC_UP, KC_DEL, KC_PGDN, KC_NO }, + { KC_INS, KC_NO, DE_7, DE_8, DE_9, KC_NO, KC_PGUP, KC_BSPC, KC_UP, KC_DEL, KC_PGDN, KC_NO }, { _______, DE_DOT, DE_4, DE_5, DE_6, DE_COMM, KC_HOME, KC_LEFT, KC_DOWN, KC_RGHT, KC_END, _______ }, { _______, DE_0, DE_1, DE_2, DE_3, DE_SCLN, KC_NO, KC_TAB, KC_INS, KC_ENT, KC_NO, _______ }, { _______, _______, _______, _______, KC_NO, _______, _______, KC_NO, _______, _______, _______, _______ } From a41a7a9100b9f4c6bfdf49b39b05e626ffd95397 Mon Sep 17 00:00:00 2001 From: Jason Janse van Rensburg Date: Tue, 26 Jul 2016 16:19:34 +0200 Subject: [PATCH 07/34] include base config.h instead of copying it --- keyboards/planck/keymaps/bone2planck/config.h | 93 +------------------ 1 file changed, 5 insertions(+), 88 deletions(-) diff --git a/keyboards/planck/keymaps/bone2planck/config.h b/keyboards/planck/keymaps/bone2planck/config.h index ba157db92a..60aff6db0d 100644 --- a/keyboards/planck/keymaps/bone2planck/config.h +++ b/keyboards/planck/keymaps/bone2planck/config.h @@ -1,90 +1,7 @@ -/* -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 - -#define PREVENT_STUCK_MODIFIERS - -#include "config_common.h" - -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x6060 -#define MANUFACTURER Ortholinear Keyboards -#define PRODUCT The Planck Keyboard -#define DESCRIPTION A compact ortholinear keyboard - -/* key matrix size */ -#define MATRIX_ROWS 4 -#define MATRIX_COLS 12 - -/* Planck PCB default pin-out */ -#define MATRIX_ROW_PINS { D0, D5, B5, B6 } -#define MATRIX_COL_PINS { F1, F0, B0, C7, F4, F5, F6, F7, D4, D6, B4, D7 } -#define UNUSED_PINS - -#define BACKLIGHT_PIN B7 - -/* COL2ROW or ROW2COL */ -#define DIODE_DIRECTION COL2ROW - -/* define if matrix has ghost */ -//#define MATRIX_HAS_GHOST - -/* number of backlight levels */ -#define BACKLIGHT_LEVELS 3 - -/* 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 - -#ifdef SUBPROJECT_rev3 - #include "rev3/config.h" -#endif -#ifdef SUBPROJECT_rev4 - #include "rev4/config.h" +#ifndef CONFIG_USER_H +#define CONFIG_USER_H #endif -#endif +#include "../../config.h" + +#define PREVENT_STUCK_MODIFIERS \ No newline at end of file From 5f37b11f2c300a95e0e9e34517c5c29a3345be83 Mon Sep 17 00:00:00 2001 From: Callum Oakley Date: Tue, 9 Aug 2016 11:03:12 +0100 Subject: [PATCH 08/34] changed order of bottom row of symbol layer to ease acess to brackets --- keyboards/planck/keymaps/callum/keymap.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/keyboards/planck/keymaps/callum/keymap.c b/keyboards/planck/keymaps/callum/keymap.c index a747dcb159..ed187df1da 100644 --- a/keyboards/planck/keymaps/callum/keymap.c +++ b/keyboards/planck/keymaps/callum/keymap.c @@ -71,7 +71,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |-----------------------------------------------------------------------------------. * | Del | ! | @ | # | $ | % | ^ | & | * | ( | ) | Del | * |------+------+------+------+------+-------------+------+------+------+------+------| - * | | ~ | | | + | [ | { | } | ] | = | \ | ` | | + * | | ~ | ` | + | = | | | \ | [ | ] | { | } | | * |------+------+------+------+------+------+------+------+------+------+------+------| * | | | | | | | | | | | | | * `-----------------------------------------------------------------------------------' @@ -79,7 +79,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_SYMB] = { {KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_ESC }, {KC_DEL, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL }, - {_______, KC_TILD, KC_PIPE, KC_PLUS, KC_LBRC, KC_LCBR, KC_RCBR, KC_RBRC, KC_EQL, KC_BSLS, KC_GRV, _______}, + {_______, KC_TILD, KC_GRV, KC_PLUS, KC_EQL, KC_PIPE, KC_BSLS, KC_LBRC, KC_RBRC, KC_LCBR, KC_RCBR, _______}, {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} }, From 725dd7328f9963959f72318af912ed66f5a5f513 Mon Sep 17 00:00:00 2001 From: Callum Oakley Date: Tue, 9 Aug 2016 11:09:52 +0100 Subject: [PATCH 09/34] updated readme.md to reflect keymap changes --- keyboards/planck/keymaps/callum/readme.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/keyboards/planck/keymaps/callum/readme.md b/keyboards/planck/keymaps/callum/readme.md index d4f3449f15..030def7f77 100644 --- a/keyboards/planck/keymaps/callum/readme.md +++ b/keyboards/planck/keymaps/callum/readme.md @@ -31,9 +31,9 @@ On *macOS* I recommend using [Karabiner](https://pqrs.org/osx/karabiner/) and ti None of the modifiers are overwritten so that `shift-alt-arrows` etc work as expected. ## The `SYMB` layer -![](http://i.imgur.com/iuU144Y.png) +![](http://i.imgur.com/thh1ne2.png) -The symbol layer has all the numbers and their usual corresponding symbols in the first two rows, with the symbols on the home row since I use them more frequently than the numbers. The third row contains all the remaining symbols, with brackets in the centre; then normally shifted symbols to the left, and non shifted to the right, in order of most to least used. +The symbol layer has all the numbers and their usual corresponding symbols in the first two rows, with the symbols on the home row since I use them more frequently than the numbers. The third row contains all the remaining symbols, arranged roughly so that the most used symbols are accessible with the strongest fingers. `esc` and `del` are repeated here since I wanted to be able to reach either, one handed, with either hand. From 993d72b11fca8d50296570dc85e9354f8045c4a6 Mon Sep 17 00:00:00 2001 From: Callum Oakley Date: Fri, 12 Aug 2016 21:05:52 +0100 Subject: [PATCH 10/34] added a lock screen key --- keyboards/planck/keymaps/callum/keymap.c | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/keyboards/planck/keymaps/callum/keymap.c b/keyboards/planck/keymaps/callum/keymap.c index ed187df1da..494ed30b06 100644 --- a/keyboards/planck/keymaps/callum/keymap.c +++ b/keyboards/planck/keymaps/callum/keymap.c @@ -20,7 +20,8 @@ enum planck_keycodes { BASE = SAFE_RANGE, MOVE, SYMB, - FUNC + FUNC, + LOCK }; // Fillers to make layering more clear @@ -87,7 +88,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * ,-----------------------------------------------------------------------------------. * | F12 | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | * |-----------------------------------------------------------------------------------. - * | | Play | Prev | Next | BL+ | | | | | | | | + * | | Play | Prev | Next | BL+ | | | Lock | | | | | * |------+------+------+------+------+------|------+------+------+------+------+------| * | | Mute | Vol- | Vol+ | BL- | | | | | | | | * |------+------+------+------+------+------+------+------+------+------+------+------| @@ -96,7 +97,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [_FUNC] = { {KC_F12, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11 }, - {_______, KC_MPLY, KC_MPRV, KC_MNXT, KC_PAUS, _______, _______, _______, _______, _______, _______, _______}, + {_______, KC_MPLY, KC_MPRV, KC_MNXT, KC_PAUS, _______, _______, LOCK, _______, _______, _______, _______}, {_______, KC_MUTE, KC_VOLD, KC_VOLU, KC_SLCK, _______, _______, _______, _______, _______, _______, _______}, {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET } } @@ -133,6 +134,18 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { } return false; break; + case LOCK: + if (record->event.pressed) { + register_code(KC_RSFT); + register_code(KC_RGUI); + register_code(KC_POWER); + } else { + unregister_code(KC_POWER); + unregister_code(KC_RGUI); + unregister_code(KC_RSFT); + } + return false; + break; } return true; } From f512179e66e4d4dfbcc92c6ba1aaa1b6cf1ef12b Mon Sep 17 00:00:00 2001 From: Gergely Nagy Date: Wed, 24 Aug 2016 13:17:01 +0200 Subject: [PATCH 11/34] ergodox: Update algernon's keymap to v1.6 Major changes include: Base layer changes ------------------ * The parentheses & bracket keys have been merged: tapping them results in `[` or `{` (if it was shifted), double tapping leads to `(`. * The `:;` and `-_` keys are now available on the base layer, on their **ADORE** location, too, just below `[{(`/`]})`. * The `Apps` key has been replaced by `F12`. * The `-`/`_` is no longer a tap-dance key. ADORE layer changes ------------------- * Adjustments were made to the **ADORE** layer, to separate some inconvenient combinations. Miscellaneous changes --------------------- * `LEAD u` now starts the symbolic unicode input system, instead of the OS-one. * The mouse acceleration keys on the **Navigation and Media* layer have been turned into toggles: tap them once to turn them on, until tapped again. Tapping an accelerator button will turn all the others off. * When the **ARROW** layer is on, the *red* and *blue* LEDs light up now. Heatmap ------- * The built-in keylogger has been greatly enhanced, it now outputs the pressed state, and the layer (Dvorak or ADORE). As such, the `ADORE_AUTOLOG` option has been removed, instead there is `AUTOLOG_ENABLE` now, which when enabled, makes the keylogger start when the keyboard boots. It defaults to off. * The heatmap generator received a lot of updates. Signed-off-by: Gergely Nagy --- keyboards/ergodox/keymaps/algernon/Makefile | 9 +- .../keymaps/algernon/images/adore-layer.png | Bin 93748 -> 93893 bytes .../keymaps/algernon/images/base-layer.png | Bin 95222 -> 95204 bytes keyboards/ergodox/keymaps/algernon/keymap.c | 498 ++++++------------ keyboards/ergodox/keymaps/algernon/readme.md | 67 ++- ...-layout.json => heatmap-layout.ADORE.json} | 110 ++-- ...layout.json => heatmap-layout.Dvorak.json} | 29 +- .../keymaps/algernon/tools/log-to-heatmap.py | 342 +++++++----- 8 files changed, 542 insertions(+), 513 deletions(-) rename keyboards/ergodox/keymaps/algernon/tools/{heatmap-adore-layout.json => heatmap-layout.ADORE.json} (91%) rename keyboards/ergodox/keymaps/algernon/tools/{heatmap-base-layout.json => heatmap-layout.Dvorak.json} (97%) diff --git a/keyboards/ergodox/keymaps/algernon/Makefile b/keyboards/ergodox/keymaps/algernon/Makefile index 00194857ac..7c2b3ad97c 100644 --- a/keyboards/ergodox/keymaps/algernon/Makefile +++ b/keyboards/ergodox/keymaps/algernon/Makefile @@ -1,22 +1,23 @@ BOOTMAGIC_ENABLE=no COMMAND_ENABLE=no SLEEP_LED_ENABLE=no -UNICODE_ENABLE=no FORCE_NKRO ?= yes DEBUG_ENABLE = no CONSOLE_ENABLE = no TAP_DANCE_ENABLE = yes KEYLOGGER_ENABLE ?= yes +UCIS_ENABLE = yes +MOUSEKEY_ENABLE ?= yes -ADORE_AUTOLOG ?= no +AUTOLOG_ENABLE ?= no ifeq (${FORCE_NKRO},yes) OPT_DEFS += -DFORCE_NKRO endif -ifeq (${ADORE_AUTOLOG},yes) +ifeq (${AUTOLOG_ENABLE},yes) KEYLOGGER_ENABLE = yes -OPT_DEFS += -DADORE_AUTOLOG +OPT_DEFS += -DAUTOLOG_ENABLE endif ifeq (${KEYLOGGER_ENABLE},yes) diff --git a/keyboards/ergodox/keymaps/algernon/images/adore-layer.png b/keyboards/ergodox/keymaps/algernon/images/adore-layer.png index 44ad8a1eb7560b552aa6010b2051fcabb00f01cd..3d0a5fb20cd426a3a79d1b581b1a84d1cd71a8c1 100644 GIT binary patch literal 93893 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 literal 93748 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

{4mc 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 #include "ergodox.h" #include "led.h" #include "debug.h" @@ -33,7 +34,6 @@ enum { // Buttons that do extra stuff A_GUI, A_PLVR, - A_ESC, A_MPN, // Function / number keys @@ -47,7 +47,6 @@ enum { KF_8, KF_9, KF_10, - KF_11, // =, F11 // Application select keys APP_SLK, // Slack @@ -62,6 +61,11 @@ enum { A_MDL, A_MDR, + // Mouse acceleration + A_ACL0, + A_ACL1, + A_ACL2, + // Hungarian layer keys HU_AA, // Á HU_OO, // Ó @@ -89,7 +93,6 @@ enum { enum { CT_CLN = 0, - CT_MNS, CT_TA, CT_LBP, CT_RBP @@ -102,7 +105,11 @@ uint16_t gui_timer = 0; uint16_t kf_timers[12]; #if KEYLOGGER_ENABLE +# ifdef AUTOLOG_ENABLE +bool log_enable = true; +# else bool log_enable = false; +# endif #endif bool time_travel = false; @@ -114,12 +121,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Keymap 0: Base Layer * * ,-----------------------------------------------------. ,-----------------------------------------------------. - * | Next/Prev | 1 F1 | 2 F2 | 3 F3 | 4 F4 | 5 F5 | Plvr | | Apps | 6 F6 | 7 F7 | 8 F8 | 9 F9 | 0 F10| F11 | + * | Next/Prev | 1 F1 | 2 F2 | 3 F3 | 4 F4 | 5 F5 | Plvr | | F12 | 6 F6 | 7 F7 | 8 F8 | 9 F9 | 0 F10| F11 | * |-----------+------+------+------+------+-------------| |------+------+------+------+------+------+-----------| - * | ~ | ' | , | . | P | Y | [ | | ] | F | G | C | R | L | \ | - * |-----------+------+------+------+------+------| | | |------+------+------+------+------+-----------| + * | ~ | ' | , | . | P | Y | ( | | ) | F | G | C | R | L | \ | + * |-----------+------+------+------+------+------| [ | | ] |------+------+------+------+------+-----------| * | Tab/ARROW | A | O | E | U | I |------| |------| D | H | T | N | S | = / Arrow | - * |-----------+------+------+------+------+------| ( | | ) |------+------+------+------+------+-----------| + * |-----------+------+------+------+------+------| : | | - |------+------+------+------+------+-----------| * | Play/Pause| / | Q | J | K | X | | | | B | M | W | V | Z | Stop | * `-----------+------+------+------+------+-------------' `-------------+------+------+------+------+-----------' * | | | | | : | | - | | | | | @@ -135,21 +142,21 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [BASE] = KEYMAP( // left hand M(A_MPN) ,M(KF_1) ,M(KF_2) ,M(KF_3),M(KF_4),M(KF_5),M(A_PLVR) -,KC_GRV ,KC_QUOT ,KC_COMM ,KC_DOT ,KC_P ,KC_Y ,KC_LBRC +,KC_GRV ,KC_QUOT ,KC_COMM ,KC_DOT ,KC_P ,KC_Y ,TD(CT_LBP) ,TD(CT_TA) ,KC_A ,KC_O ,KC_E ,KC_U ,KC_I -,KC_MPLY ,KC_SLSH ,KC_Q ,KC_J ,KC_K ,KC_X ,KC_LPRN +,KC_MPLY ,KC_SLSH ,KC_Q ,KC_J ,KC_K ,KC_X ,TD(CT_CLN) ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,TD(CT_CLN) ,F(F_ALT),F(F_GUI) ,F(F_CTRL) - ,KC_BSPC,F(F_SFT),M(A_ESC) + ,KC_BSPC,F(F_SFT),KC_ESC // right hand - ,KC_APP ,M(KF_6),M(KF_7) ,M(KF_8),M(KF_9) ,M(KF_10) ,KC_F11 - ,KC_RBRC ,KC_F ,KC_G ,KC_C ,KC_R ,KC_L ,KC_BSLS + ,KC_F12 ,M(KF_6),M(KF_7) ,M(KF_8),M(KF_9) ,M(KF_10) ,KC_F11 + ,TD(CT_RBP),KC_F ,KC_G ,KC_C ,KC_R ,KC_L ,KC_BSLS ,KC_D ,KC_H ,KC_T ,KC_N ,KC_S ,KC_EQL - ,KC_RPRN ,KC_B ,KC_M ,KC_W ,KC_V ,KC_Z ,KC_MSTP - ,TD(CT_MNS),KC_NO ,KC_NO ,KC_NO ,KC_NO + ,KC_MINS ,KC_B ,KC_M ,KC_W ,KC_V ,KC_Z ,KC_MSTP + ,KC_MINS ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,OSL(NMDIA),KC_DEL ,KC_LEAD @@ -159,13 +166,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Keymap 1: Adore layer * * ,-----------------------------------------------------. ,-----------------------------------------------------. - * | Play/Pause| 1 F1 | 2 F2 | 3 F3 | 4 F4 | 5 F5 | Plvr | | Apps | 6 F6 | 7 F7 | 8 F8 | 9 F9 | 0 F10| F11 | + * | Play/Pause| 1 F1 | 2 F2 | 3 F3 | 4 F4 | 5 F5 | Plvr | | F12 | 6 F6 | 7 F7 | 8 F8 | 9 F9 | 0 F10| F11 | * |-----------+------+------+------+------+-------------| |------+------+------+------+------+------+-----------| - * | `~ | X | W | K | L | M | ( | | ) | F | H | C | P | Y | \ | + * | `~ | Y | W | G | L | M | ( | | ) | F | H | C | P | X | \ | * |-----------+------+------+------+------+------| [ | | ] |------+------+------+------+------+-----------| * | Tab/Arrow | A | O | E | I | U |------| |------| D | R | T | N | S | = | * |-----------+------+------+------+------+------| | | |------+------+------+------+------+-----------| - * | | Z | Q | ' | , | . | : | | - | B | G | V | J | / | | + * | | Z | Q | ' | , | . | : | | - | B | K | V | J | / | | * `-----------+------+------+------+------+-------------' `-------------+------+------+------+------+-----------' * | | | | | | | | | | | | * `-----------------------------------' `-----------------------------------' @@ -180,20 +187,20 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [ADORE] = KEYMAP( // left hand KC_MPLY ,M(KF_1) ,M(KF_2) ,M(KF_3),M(KF_4),M(KF_5),M(A_PLVR) -,KC_GRV ,KC_X ,KC_W ,KC_K ,KC_L ,KC_M ,TD(CT_LBP) +,KC_GRV ,KC_Y ,KC_W ,KC_G ,KC_L ,KC_M ,TD(CT_LBP) ,TD(CT_TA) ,KC_A ,KC_O ,KC_E ,KC_I ,KC_U ,KC_NO ,KC_Z ,KC_Q ,KC_QUOT,KC_COMM,KC_DOT ,TD(CT_CLN) ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,F(F_ALT),F(F_GUI) ,F(F_CTRL) - ,KC_BSPC,F(F_SFT),M(A_ESC) + ,KC_BSPC,F(F_SFT),KC_ESC // right hand - ,KC_APP ,M(KF_6),M(KF_7),M(KF_8),M(KF_9) ,M(KF_10) ,KC_F11 - ,TD(CT_RBP),KC_F ,KC_H ,KC_C ,KC_P ,KC_Y ,KC_BSLS + ,KC_F12 ,M(KF_6),M(KF_7),M(KF_8),M(KF_9) ,M(KF_10) ,KC_F11 + ,TD(CT_RBP),KC_F ,KC_H ,KC_C ,KC_P ,KC_X ,KC_BSLS ,KC_D ,KC_R ,KC_T ,KC_N ,KC_S ,KC_EQL - ,TD(CT_MNS),KC_B ,KC_G ,KC_V ,KC_J ,KC_SLSH ,KC_NO + ,KC_MINS ,KC_B ,KC_K ,KC_V ,KC_J ,KC_SLSH ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,OSL(NMDIA),KC_DEL @@ -363,14 +370,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [NMDIA] = KEYMAP( // left hand - KC_ACL0 ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,LGUI(KC_L) -,KC_ACL1 ,KC_NO ,KC_HOME ,KC_UP ,KC_PGUP ,KC_NO ,KC_NO -,KC_ACL2 ,KC_NO ,KC_LEFT ,KC_DOWN ,KC_RIGHT,KC_NO + M(A_ACL0) ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,LGUI(KC_L) +,M(A_ACL1) ,KC_NO ,KC_HOME ,KC_UP ,KC_PGUP ,KC_NO ,KC_NO +,M(A_ACL2) ,KC_NO ,KC_LEFT ,KC_DOWN ,KC_RIGHT,KC_NO ,KC_MPLY ,KC_NO ,KC_END ,KC_DOWN ,KC_PGDN ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_MUTE ,KC_VOLU ,KC_VOLD - ,KC_SPC,KC_ENTER,M(A_ESC) + ,KC_SPC,KC_ENTER,KC_ESC // right hand ,LGUI(KC_L),KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO @@ -439,7 +446,7 @@ const uint16_t PROGMEM fn_actions[] = { ,[F_CTRL] = ACTION_MODS_ONESHOT (MOD_LCTL) }; -void toggle_steno(int pressed) +static void toggle_steno(int pressed) { uint8_t layer = biton32(layer_state); @@ -462,7 +469,7 @@ void toggle_steno(int pressed) } } -macro_t *ang_do_hun (keyrecord_t *record, uint16_t accent, uint16_t hun_char) +static macro_t *ang_do_hun (keyrecord_t *record, uint16_t accent, uint16_t hun_char) { uint8_t need_shift = 0; uint8_t hold_shift = 0; @@ -507,46 +514,43 @@ macro_t *ang_do_hun (keyrecord_t *record, uint16_t accent, uint16_t hun_char) return MACRO_NONE; } -void ang_handle_kf (keyrecord_t *record, uint8_t id) +static bool from_appsel; + +static void ang_handle_kf (keyrecord_t *record, uint8_t id) { uint8_t code = id - KF_1; if (record->event.pressed) { kf_timers[code] = timer_read (); } else { - uint8_t kc; + uint8_t kc_base; - if (timer_elapsed (kf_timers[code]) > TAPPING_TERM) { - // Long press - kc = KC_F1 + code; - } else { - if (id == KF_11) - kc = KC_EQL; - else - kc = KC_1 + code; + if (from_appsel) { + from_appsel = false; + return; } - register_code (kc); - unregister_code (kc); + if (kf_timers[code] && timer_elapsed (kf_timers[code]) > TAPPING_TERM) { + // Long press + kc_base = KC_F1; + } else { + kc_base = KC_1; + } + kf_timers[code] = 0; + code += kc_base; + + register_code (code); + unregister_code (code); } } +static struct { + uint8_t idx; +} m_accel_state; + const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { switch(id) { - case A_ESC: - if (record->event.pressed) { - if ((get_oneshot_mods ()) && !has_oneshot_mods_timed_out ()) { - clear_oneshot_mods (); - } else { - register_code (KC_ESC); - } - layer_off (HUN); - } else { - unregister_code (KC_ESC); - } - break; - case A_MPN: if (record->event.pressed) { if (keyboard_report->mods & MOD_BIT(KC_LSFT) || @@ -588,6 +592,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) case HU_UEE: return ang_do_hun (record, KC_EQL, KC_U); +#if MOUSEKEY_ENABLE /* Mouse movement */ case A_MUL: if (record->event.pressed) { @@ -633,6 +638,24 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) mousekey_send(); break; + case A_ACL0 ... A_ACL2: + if (record->event.pressed) { + uint8_t idx = id - A_ACL0; + if (m_accel_state.idx == id) { + mousekey_off(m_accel_state.idx - A_ACL0 + KC_ACL0); + m_accel_state.idx = 0; + } else { + if (m_accel_state.idx) { + mousekey_off(m_accel_state.idx - A_ACL0 + KC_ACL0); + m_accel_state.idx = 0; + } + mousekey_on(KC_ACL0 + idx); + m_accel_state.idx = id; + } + } + break; +#endif + /* Plover base */ case A_PLVR: toggle_steno(record->event.pressed); @@ -663,22 +686,34 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) break; case APP_SLK: + from_appsel = true; return MACRODOWN(T(S), T(L), T(A), T(C), T(K), T(ENT), END); case APP_EMCS: + from_appsel = true; return MACRODOWN(T(G), T(N), T(U), T(SPC), T(E), T(M), T(A), T(C), T(S), T(SPC), T(2), T(4), T(ENT), END); case APP_TERM: - return MACRODOWN(T(T), T(E), T(R), T(M), T(ENT), END); + from_appsel = true; + if (!record->event.pressed) { + register_code(KC_ESC); + unregister_code(KC_ESC); + wait_ms(TAPPING_TERM + 25); + register_code(KC_DEL); + unregister_code(KC_DEL); + } + break; case APP_CHRM: + from_appsel = true; return MACRODOWN(T(C), T(H), T(R), T(O), T(M), T(ENT), END); case APP_MSIC: + from_appsel = true; return MACRODOWN(T(R), T(H), T(Y), T(T), T(H), T(M), T(B), T(O), T(X), T(ENT), END); /* Function keys */ - case KF_1 ... KF_11: + case KF_1 ... KF_10: ang_handle_kf (record, id); break; } @@ -686,12 +721,14 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) return MACRO_NONE; }; -uint8_t is_adore = 0; +static uint8_t is_adore = 0; // Runs just one time when the keyboard initializes. void matrix_init_user(void) { uint8_t dl; + set_unicode_input_mode(UC_LNX); + ergodox_led_all_on(); for (int i = LED_BRIGHTNESS_HI; i > LED_BRIGHTNESS_LO; i--) { ergodox_led_all_set (i); @@ -709,120 +746,38 @@ void matrix_init_user(void) { dl = eeconfig_read_default_layer (); if (dl == (1UL << ADORE)) { is_adore = 1; -#if ADORE_AUTOLOG - log_enable = true; -#endif } }; LEADER_EXTERNS(); -void ang_do_unicode (void) { - register_code (KC_RCTL); - register_code (KC_RSFT); - register_code (KC_U); - unregister_code (KC_U); - unregister_code (KC_RSFT); - unregister_code (KC_RCTL); - wait_ms (100); -} +static void ang_tap (uint8_t code, ...) { + uint8_t kc = code; + va_list ap; -void ang_tap (uint16_t codes[]) { - for (int i = 0; codes[i] != 0; i++) { - register_code (codes[i]); - unregister_code (codes[i]); - wait_ms (50); - } + va_start(ap, code); + + do { + register_code(kc); + unregister_code(kc); + wait_ms(50); + kc = va_arg(ap, int); + } while (kc != 0); + va_end(ap); } #define TAP_ONCE(code) \ register_code (code); \ unregister_code (code) -void ang_tap_dance_bp_finished (qk_tap_dance_state_t *state, void *user_data) { - bool left, parens; - - if (state->count > 2) { - state->count = 0; - return; - } - - if (state->keycode == TD(CT_LBP)) - left = true; - else - left = false; - - if (state->count == 1) - parens = false; - else - parens = true; - - if (parens) { - register_code (KC_RSFT); - if (left) { - TAP_ONCE(KC_9); - } else { - TAP_ONCE(KC_0); - } - unregister_code (KC_RSFT); - } else { - if (left) { - TAP_ONCE (KC_LBRC); - } else { - TAP_ONCE (KC_RBRC); - } - } -} - -void ang_tap_dance_cln_finished (qk_tap_dance_state_t *state, void *user_data) { - if (state->count == 1) { - register_code (KC_RSFT); - register_code (KC_SCLN); - } else if (state->count == 2) { - register_code (KC_SCLN); - } -} - -void ang_tap_dance_cln_reset (qk_tap_dance_state_t *state, void *user_data) { - if (state->count == 1) { - unregister_code (KC_SCLN); - unregister_code (KC_RSFT); - } else if (state->count == 2) { - unregister_code (KC_SCLN); - } -} - -void ang_tap_dance_mns_finished (qk_tap_dance_state_t *state, void *user_data) { - if (state->count == 1) { - register_code (KC_MINS); - } else if (state->count == 2) { - register_code (KC_RSFT); - register_code (KC_MINS); - } -} - -void ang_tap_dance_mns_reset (qk_tap_dance_state_t *state, void *user_data) { - if (state->count == 1) { - unregister_code (KC_MINS); - } else if (state->count == 2) { - unregister_code (KC_RSFT); - unregister_code (KC_MINS); - } -} - typedef struct { bool layer_toggle; bool sticky; - bool finished_once; } td_ta_state_t; -void ang_tap_dance_ta_finished (qk_tap_dance_state_t *state, void *user_data) { +static void ang_tap_dance_ta_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->finished_once) { - return; - } - if (td_ta->sticky) { td_ta->sticky = false; td_ta->layer_toggle = false; @@ -830,7 +785,6 @@ void ang_tap_dance_ta_finished (qk_tap_dance_state_t *state, void *user_data) { return; } - td_ta->finished_once = true; if (state->count == 1 && !state->pressed) { register_code (KC_TAB); td_ta->sticky = false; @@ -842,35 +796,29 @@ void ang_tap_dance_ta_finished (qk_tap_dance_state_t *state, void *user_data) { } } -void ang_tap_dance_ta_reset (qk_tap_dance_state_t *state, void *user_data) { +static void ang_tap_dance_ta_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_TAB); if (!td_ta->sticky) layer_off (ARRW); - - td_ta->finished_once = false; } qk_tap_dance_action_t tap_dance_actions[] = { - [CT_CLN] = ACTION_TAP_DANCE_FN_ADVANCED (NULL, ang_tap_dance_cln_finished, ang_tap_dance_cln_reset) - ,[CT_MNS] = ACTION_TAP_DANCE_FN_ADVANCED (NULL, ang_tap_dance_mns_finished, ang_tap_dance_mns_reset) + [CT_CLN] = ACTION_TAP_DANCE_DOUBLE (KC_COLN, KC_SCLN) ,[CT_TA] = { .fn = { NULL, ang_tap_dance_ta_finished, ang_tap_dance_ta_reset }, - .user_data = (void *)&((td_ta_state_t) { false, false, false }) + .user_data = (void *)&((td_ta_state_t) { false, false }) } - ,[CT_LBP] = ACTION_TAP_DANCE_FN (ang_tap_dance_bp_finished) - ,[CT_RBP] = ACTION_TAP_DANCE_FN (ang_tap_dance_bp_finished) + ,[CT_LBP] = ACTION_TAP_DANCE_DOUBLE (KC_LBRC, KC_LPRN) + ,[CT_RBP] = ACTION_TAP_DANCE_DOUBLE (KC_RBRC, KC_RPRN) }; -static uint16_t uni[32]; -static uint8_t unicnt; -static bool unimagic = false; - // Runs constantly in the background, in a loop. void matrix_scan_user(void) { uint8_t layer = biton32(layer_state); + bool is_arrow = false; if (gui_timer && timer_elapsed (gui_timer) > TAPPING_TERM) unregister_code (KC_LGUI); @@ -893,13 +841,19 @@ void matrix_scan_user(void) { ergodox_right_led_2_set (LED_BRIGHTNESS_HI); } + if (layer_state & (1UL << ARRW)) { + ergodox_right_led_1_on (); + ergodox_right_led_3_on (); + is_arrow = true; + } + if (keyboard_report->mods & MOD_BIT(KC_LSFT) || ((get_oneshot_mods() & MOD_BIT(KC_LSFT)) && !has_oneshot_mods_timed_out())) { ergodox_right_led_1_set (LED_BRIGHTNESS_HI); ergodox_right_led_1_on (); } else { ergodox_right_led_1_set (LED_BRIGHTNESS_LO); - if (layer != NMDIA && layer != PLVR && layer != ADORE) + if (layer != NMDIA && layer != PLVR && layer != ADORE && !is_arrow) ergodox_right_led_1_off (); } @@ -919,7 +873,7 @@ void matrix_scan_user(void) { ergodox_right_led_3_on (); } else { ergodox_right_led_3_set (LED_BRIGHTNESS_LO); - if (layer != HUN && layer != PLVR && layer != ADORE) + if (layer != HUN && layer != PLVR && layer != ADORE && !is_arrow) ergodox_right_led_3_off (); } @@ -936,20 +890,17 @@ void matrix_scan_user(void) { } #endif + SEQ_ONE_KEY (KC_Q) { + register_code16 (LCTL(KC_1)); + unregister_code16 (LCTL(KC_1)); + } + SEQ_ONE_KEY (KC_T) { time_travel = !time_travel; } SEQ_ONE_KEY (KC_U) { - ang_do_unicode (); - } - - SEQ_TWO_KEYS (KC_LEAD, KC_U) { - unicnt = 0; - unimagic = true; - register_code(KC_RSFT); - TAP_ONCE(KC_U); - unregister_code(KC_RSFT); + qk_ucis_start(); } SEQ_ONE_KEY (KC_V) { @@ -958,25 +909,23 @@ void matrix_scan_user(void) { SEQ_ONE_KEY (KC_L) { /* λ */ - ang_do_unicode (); - - uint16_t codes[] = {KC_0, KC_3, KC_B, KC_B, KC_ENT, 0}; - ang_tap (codes); + unicode_input_start(); + register_hex(0x03bb); + unicode_input_finish(); } SEQ_ONE_KEY (KC_Y) { - uint16_t codes[] = {KC_BSLS, KC_O, KC_SLSH, 0}; - ang_tap (codes); + ang_tap (KC_BSLS, KC_O, KC_SLSH, 0); } SEQ_ONE_KEY (KC_S) { - ang_do_unicode (); TAP_ONCE (KC_A); TAP_ONCE (KC_F); TAP_ONCE (KC_SPC); + unicode_input_start(); register_hex(0xaf); unicode_input_finish(); TAP_ONCE (KC_BSLS); register_code (KC_RSFT); TAP_ONCE (KC_MINS); TAP_ONCE (KC_9); unregister_code (KC_RSFT); - ang_do_unicode (); TAP_ONCE (KC_3); TAP_ONCE (KC_0); TAP_ONCE (KC_C); TAP_ONCE (KC_4); TAP_ONCE (KC_SPC); + unicode_input_start (); register_hex(0x30c4); unicode_input_finish(); register_code (KC_RSFT); TAP_ONCE (KC_0); TAP_ONCE (KC_MINS); unregister_code (KC_RSFT); TAP_ONCE (KC_SLSH); - ang_do_unicode (); TAP_ONCE (KC_A); TAP_ONCE (KC_F); TAP_ONCE (KC_SPC); + unicode_input_start (); register_hex(0xaf); unicode_input_finish(); } SEQ_TWO_KEYS (KC_W, KC_M) { @@ -987,8 +936,7 @@ void matrix_scan_user(void) { wait_ms (1000); - uint16_t codes[] = {KC_M, KC_A, KC_X, KC_MINS, KC_F, KC_O, KC_C, KC_U, KC_S, KC_E, KC_D, KC_ENT, 0}; - ang_tap (codes); + ang_tap (KC_M, KC_A, KC_X, KC_MINS, KC_F, KC_O, KC_C, KC_U, KC_S, KC_E, KC_D, KC_ENT, 0); register_code (KC_LGUI); register_code (KC_UP); unregister_code (KC_UP); @@ -1013,13 +961,7 @@ void matrix_scan_user(void) { ergodox_right_led_2_off (); wait_ms (100); ergodox_right_led_1_off (); -#if ADORE_AUTOLOG - log_enable = true; -#endif } else { -#if ADORE_AUTOLOG - log_enable = false; -#endif is_adore = 0; default_layer_and (0); default_layer_or (1UL << BASE); @@ -1043,140 +985,38 @@ void matrix_scan_user(void) { static uint16_t last4[4]; -bool is_uni_seq(char *seq) { - uint8_t i; - - for (i = 0; seq[i]; i++) { - uint16_t code; - if (('1' <= seq[i]) && (seq[i] <= '9')) - code = seq[i] - '1' + KC_1; - else if (seq[i] == '0') - code = KC_0; - else - code = seq[i] - 'a' + KC_A; - - if (i > unicnt) - return false; - if (uni[i] != code) - return false; - } - - if (uni[i] == KC_ENT || uni[i] == KC_SPC) - return true; - - return false; -} - -uint16_t hex_to_keycode(uint8_t hex) -{ - if (hex == 0x0) { - return KC_0; - } else if (hex < 0xA) { - return KC_1 + (hex - 0x1); - } else { - return KC_A + (hex - 0xA); - } -} - -void register_hex(uint16_t hex) { - bool leading_zeros = true; - - for(int i = 3; i >= 0; i--) { - uint8_t digit = ((hex >> (i*4)) & 0xF); - if (digit != 0) - leading_zeros = false; - else if (leading_zeros) - continue; - register_code(hex_to_keycode(digit)); - unregister_code(hex_to_keycode(digit)); - wait_ms(10); - } -} - -typedef struct { - char *symbol; - uint16_t codes[4]; -} qk_ucis_symbol_t; - -static qk_ucis_symbol_t ucis_symbol_table[] = { - {"poop", {0x1, 0xf4a9, 0}}, - {"rofl", {0x1, 0xf923, 0}}, - {"kiss", {0x1, 0xf619, 0}}, - {"snowman", {0x2603, 0}}, - {NULL, {}} -}; - -bool process_record_ucis (uint16_t keycode, keyrecord_t *record) { - uint8_t i; - - if (!unimagic) - return true; - - if (!record->event.pressed) - return true; - - uni[unicnt] = keycode; - unicnt++; - - if (keycode == KC_BSPC) { - if (unicnt >= 2) { - unicnt-= 2; - return true; - } else { - unicnt--; - return false; - } - } - - if (keycode == KC_ENT || keycode == KC_SPC) { - bool symbol_found = false; - - for (i = unicnt; i > 0; i--) { - register_code (KC_BSPC); - unregister_code (KC_BSPC); - wait_ms(10); - } - - ang_do_unicode(); - wait_ms(10); - for (i = 0; ucis_symbol_table[i].symbol; i++) { - if (is_uni_seq (ucis_symbol_table[i].symbol)) { - symbol_found = true; - for (uint8_t j = 0; ucis_symbol_table[i].codes[j]; j++) { - register_hex(ucis_symbol_table[i].codes[j]); - } - break; - } - } - if (!symbol_found) { - for (i = 0; i < unicnt - 1; i++) { - uint8_t code; - - if (uni[i] > KF_1) - code = uni[i] - KF_1 + KC_1; - else - code = uni[i]; - TAP_ONCE(code); - wait_ms (10); - } - } - - unimagic = false; - return true; - } - return true; -} +const qk_ucis_symbol_t ucis_symbol_table[] = UCIS_TABLE +( + UCIS_SYM("poop", 0x1f4a9), + UCIS_SYM("rofl", 0x1f923), + UCIS_SYM("kiss", 0x1f619), + UCIS_SYM("snowman", 0x2603), + UCIS_SYM("coffee", 0x2615), + UCIS_SYM("heart", 0x2764), + UCIS_SYM("bolt", 0x26a1) +); bool process_record_user (uint16_t keycode, keyrecord_t *record) { #if KEYLOGGER_ENABLE if (log_enable) { - xprintf ("KL: col=%d, row=%d\n", record->event.key.col, - record->event.key.row); + xprintf ("KL: col=%02d, row=%02d, pressed=%d, layer=%s\n", record->event.key.col, + record->event.key.row, record->event.pressed, (is_adore) ? "ADORE" : "Dvorak"); } #endif - if (!process_record_ucis (keycode, record)) - return false; + if (keycode == KC_ESC && record->event.pressed) { + bool queue = true; + + if ((get_oneshot_mods ()) && !has_oneshot_mods_timed_out ()) { + clear_oneshot_mods (); + queue = false; + } + if (layer_state & (1UL<event.pressed) { uint8_t p; @@ -1188,15 +1028,13 @@ bool process_record_user (uint16_t keycode, keyrecord_t *record) { last4[3] = keycode; if (last4[0] == KC_D && last4[1] == KC_A && last4[2] == KC_T && last4[3] == KC_E) { - uint16_t codes[] = {KC_E, KC_SPC, KC_MINS, KC_D, KC_SPC, KC_QUOT, 0}; - ang_tap (codes); + ang_tap (KC_E, KC_SPC, KC_MINS, KC_D, KC_SPC, KC_QUOT, 0); register_code (KC_RSFT); register_code (KC_EQL); unregister_code (KC_EQL); unregister_code (KC_RSFT); - uint16_t codes2[] = {KC_4, KC_SPC, KC_D, KC_A, KC_Y, KC_S, KC_QUOT, 0}; - ang_tap (codes2); + ang_tap (KC_4, KC_SPC, KC_D, KC_A, KC_Y, KC_S, KC_QUOT, 0); return false; } @@ -1204,3 +1042,17 @@ bool process_record_user (uint16_t keycode, keyrecord_t *record) { return true; } + +void qk_ucis_symbol_fallback (void) { + for (uint8_t i = 0; i < qk_ucis_state.count - 1; i++) { + uint8_t code; + + if (qk_ucis_state.codes[i] > KF_1) + code = qk_ucis_state.codes[i] - KF_1 + KC_1; + else + code = qk_ucis_state.codes[i]; + register_code(code); + unregister_code(code); + wait_ms (10); + } +} diff --git a/keyboards/ergodox/keymaps/algernon/readme.md b/keyboards/ergodox/keymaps/algernon/readme.md index 26dfddbe6a..5e7adb3320 100644 --- a/keyboards/ergodox/keymaps/algernon/readme.md +++ b/keyboards/ergodox/keymaps/algernon/readme.md @@ -3,11 +3,15 @@ algernon's layout ======================= -This is an unconventional layout for the ErgoDox EZ. For more details about the history of the layout, see my [blog posts about my ErgoDox journey][blog-ergodox]. +This is an unconventional layout for the [ErgoDox EZ][ez]. For more details about the history of the layout, see my [blog posts about my ErgoDox journey][blog-ergodox]. + [ez]: https://ergodox-ez.com/ [blog-ergodox]: https://asylum.madhouse-project.org/blog/tags/ergodox/ -Some of the things in the layout only work when one uses Spacemacs and GNOME under Linux. Your mileage may vary. +Some of the things in the layout only work when one uses [Spacemacs][spacemacs] and [GNOME][gnome] under Linux. Your mileage may vary. + + [spacemacs]: http://spacemacs.org/ + [gnome]: https://www.gnome.org/ ## Table of Contents @@ -40,10 +44,10 @@ At its core, this is a Dvorak layout, with some minor changes. The more interest * The `GUI` key is special, because when I double-tap it, it sends `GUI + w`, which pops up an application selector. It also switches to a one-shot layer, where the number row on the left half turns into app selector macros, for the most common things I usually want to switch to. Otherwise it behaves as on a normal layout. * The `ESC` key also doubles as a one-shot cancel key: if tapped while any of the one-shot modifiers are in-flight (as in, single-tapped, and not expired yet), it cancels all one-shot modifiers. It also cancels the **Hun** layer, if active. Otherwise it sends the usual keycode. * The **Media** and **Hun** layer keys are one-shot, the **STENO** key is a toggle. -* When holding any of the **Arrow** layer keys, the arrow layer activates while the layer key is held. Tapping the key produces the normal key. +* When holding the `Tab`/**Arrow** key, the arrow layer activates while the key is held. Tapping the key produces the normal, `Tab` key. Double-tapping it toggles the **Arrow** layer on until a third tap. * Tapping the `:` key once yields `:`, tapping it twice yields `;`. +* Tapping the `[{(`/`)}]` keys once yields `[` (or `{` when shifted), tapping them twice yields `(`. * The **Lead** key allows me to type in a sequence of keys, and trigger some actions: - - `LEAD u` enters unicode input mode, by sending the GTK+ key sequence that does this. - `LEAD l` uses the unicode input method to enter a `λ`. - `LEAD s` does a lot of magic to type in a shruggie: `¯\_(ツ)_/¯` - `LEAD y` types `\o/`. @@ -52,7 +56,7 @@ At its core, this is a Dvorak layout, with some minor changes. The more interest - `LEAD v` prints the firmware version, the keyboard and the keymap. - `LEAD d` toggles logging keypress positions to the HID console. - `LEAD t` toggles time travel. Figuring out the current `date` is left as an exercise to the reader. - - `LEAD LEAD u` enters the [Unicode symbol input][#unicode-symbol-input] mode. + - `LEAD u` enters the [Unicode symbol input](#unicode-symbol-input) mode. ## ADORE layer @@ -91,6 +95,7 @@ For the layers, the following rules apply: * When the [ADORE layer](#adore-layer) is toggled on, LEDs will light up from left to right in a sequence, then turn off. When the layer is toggled off, the LEDs light up and turn off in the other direction. No LEDs are on while the layer is active. * When the [Hungarian layer](#hungarian-layer) is active, the *green* and *blue* LEDs are on. * When the [Navigation and media layer](#navigation-and-media-layer) is active, the *red* and *green* ones are on. +* When the **ARROW** layer is active, the *red* and *blue* ones are on. * For the [Steno layer](#steno-layer), all LEDs will be turned on. Unless noted otherwise, the layers use a dim light for the LEDs, while modifiers use a stronger one, and modifiers override any layer preferences. For example, when on the one-handed layer, with the left side active (*red* light blinking), if `Shift` is on, the *red* light will be constantly on. @@ -116,7 +121,7 @@ This is an experimental feature, and may or may not work reliably. When the keypress logging functionality is enabled (by `LEAD d`), the keyboard will output a line every time a key is pressed, containing the position of the key in the matrix. This allows one to collect this information, and build analytics over it, such as a heat map, including dead keys too. -Included with the firmware is a small tool that can parse these logs, and create a heatmap that one can import into [KLE][kle]. To use it, simply point `tools/log-to-heatmap.py` to a base layout file (one is included in the `tools/` directory), and the key position log. The latter one can create by running `hid-listen`, and redirecting its output to a file. +Included with the firmware is a small tool that can parse these logs, and create a heatmap that one can import into [KLE][kle]. To use it, either pipe the output of `hid_listen` into it, or pipe it an already saved log, and it will save the results into files in an output directory (given on the command-line). See the output of `tools/log-to-heatmap.py --help` for more information. [kle]: http://www.keyboard-layout-editor.com/ @@ -151,7 +156,35 @@ The keymap default to forcing NKRO, which seems to upset Windows, and except the # Changelog -## v1.5 - 2016-08-12 +## v1.6 + +*2016-08-24* + +### Base layer changes + +* The parentheses & bracket keys have been merged: tapping them results in `[` or `{` (if it was shifted), double tapping leads to `(`. +* The `:;` and `-_` keys are now available on the base layer, on their [ADORE](#adore-layer) location, too, just below `[{(`/`]})`. +* The `Apps` key has been replaced by `F12`. +* The `-`/`_` is no longer a tap-dance key. + +### ADORE layer changes + +* Adjustments were made to the [ADORE](#adore-layer) layer, to separate some inconvenient combinations. + +### Miscellaneous changes + +* `LEAD u` now starts the symbolic unicode input system, instead of the OS-one. +* The mouse acceleration keys on the [Navigation and Media](#navigation-and-media-layer) layer have been turned into toggles: tap them once to turn them on, until tapped again. Tapping an accelerator button will turn all the others off. +* When the **ARROW** layer is on, the *red* and *blue* LEDs light up now. + +### Heatmap + +* The built-in keylogger has been greatly enhanced, it now outputs the pressed state, and the layer (Dvorak or ADORE). As such, the `ADORE_AUTOLOG` option has been removed, instead there is `AUTOLOG_ENABLE` now, which when enabled, makes the keylogger start when the keyboard boots. It defaults to off. +* The heatmap generator received a lot of updates. + +## v1.5 + +*2016-08-12* * The **1HAND** layer has been removed. * A `Delete` key is now available on the right thumb cluster. @@ -161,7 +194,9 @@ The keymap default to forcing NKRO, which seems to upset Windows, and except the * On the **ARROW** layer, `Backspace` has been replaced by `Enter`. * There is some experimental support for entering Unicode symbols. -## v1.4 - 2016-07-29 +## v1.4 + +*2016-07-29* * When toggling the key logging on or off, the LEDs will do a little dance. * The keylogger is now optional, but enabled by default. Use `KEYLOGGER_ENABLE=no` on the `make` command line to disable it. @@ -169,14 +204,18 @@ The keymap default to forcing NKRO, which seems to upset Windows, and except the * The `-`/`_` key was turned into a tap-dance key too. * There is now a way to travel time with the keyboard, toggle the feature on by hitting `LEAD t`. -## v1.3 - 2016-07-06 +## v1.3 + +*2016-07-06* * Added support for logging keys, by pressing `LEAD d`. Also included is a tool to generate a [heatmap](#heatmap) out of the logs. * The arrow and navigation keys were rearranged again, and now require an additional key being held to activate. See the [base layer](#base-layer) for an image that shows where arrows are. * The **experimental** layer has been redone, and is now called [ADORE](#adore-layer), and as such, can be enabled by `LEAD a` now. * Switching between Dvorak and ADORE is now persisted into EEPROM, and survives a reboot. -## v1.2 - 2016-06-22 +## v1.2 + +*2016-06-22* * The forced NKRO mode can be easily toggled off at compile-time, to make the firmware compatible with [certain operating systems](#using-on-windows). * The `:;` key has changed behaviour: to access the `;` symbol, the key needs to be double-tapped, instead of shifted. @@ -187,7 +226,9 @@ The keymap default to forcing NKRO, which seems to upset Windows, and except the * On the **experimental** layer, the `L` and `Q`, and the `K` and `G` keys were swapped. * The [Steno](#steno-layer) layer gained a few more `#` and `*` keys, to make it easier on my fingers. -## v1.1 - 2016-06-14 +## v1.1 + +*2016-06-14* * The keyboard starts in NKRO mode, bootmagic and other things are disabled. * A [Steno](#steno-layer) layer was added, to be used with Plover. @@ -201,7 +242,9 @@ The keymap default to forcing NKRO, which seems to upset Windows, and except the - `:` now inputs `;` when shifted. * `ESC` cancels the [Hungarian](#hungarian-layer) layer too, not just modifiers. -## v1.0 - 2016-05-26 +## v1.0 + +*2016-05-26* Initial version. diff --git a/keyboards/ergodox/keymaps/algernon/tools/heatmap-adore-layout.json b/keyboards/ergodox/keymaps/algernon/tools/heatmap-layout.ADORE.json similarity index 91% rename from keyboards/ergodox/keymaps/algernon/tools/heatmap-adore-layout.json rename to keyboards/ergodox/keymaps/algernon/tools/heatmap-layout.ADORE.json index 544f61ce87..4dfa877a78 100644 --- a/keyboards/ergodox/keymaps/algernon/tools/heatmap-adore-layout.json +++ b/keyboards/ergodox/keymaps/algernon/tools/heatmap-layout.ADORE.json @@ -75,9 +75,9 @@ "STENO", { "x": 4.5, - "f": 6 + "f": 3 }, - "", + "F12", { "c": "#7adabd", "a": 4, @@ -94,12 +94,20 @@ { "y": -0.875, "c": "#ffb2d2", - "f": 3, + "f": 9, + "a": 6, "w": 1.5 }, - "\n\n~\n`", + "\n\n", { - "t": "#0d0d0b" + "t": "#0d0d0b", + "f": 3, + "a": 4, + "fa": [ + 0, + 0, + 2 + ] }, "!\n1\nF1", { @@ -120,7 +128,7 @@ "t": "#000000", "a": 6 }, - "L", + "G", { "x": 10.5 }, @@ -132,16 +140,16 @@ "x": 2.5, "c": "#bfbad1", "t": "#0d0d0b", - "a": 4 + "a": 6 }, - ">\n.", + "W", { "x": 1, "c": "#7adabd", "t": "#000000", "a": 6 }, - "W", + "L", { "x": 8.5 }, @@ -164,14 +172,15 @@ { "c": "#93c9b7", "a": 4, + "fa": [0, 0, 0], "h": 1.5 }, - "{\n[", + "{\n(\n[", { "x": 4.5, "h": 1.5 }, - "}\n]", + "}\n)\n]", { "c": "#7adabd", "a": 6 @@ -183,21 +192,22 @@ "y": -0.875, "c": "#ffb07b", "t": "#0d0d0b", - "f": 6, + "f": 3, + "a": 4, "w": 1.5 }, - "\n\n", + "\n\n~\n`", { "c": "#ffb2d2", - "a": 4, + "a": 6, "f": 3 }, - "<\n,", + "Y", { "x": 14.5, "a": 6 }, - "Y", + "X", { "a": 4, "w": 1.5 @@ -300,15 +310,14 @@ "x": 6.5, "c": "#93c9b7", "t": "#000000", - "a": 7, "h": 1.5 }, - "(", + ";\n:", { "x": 4.5, "h": 1.5 }, - ")" + "_\n-" ], [ { @@ -320,7 +329,9 @@ }, "\"\n'", { - "x": 10.5 + "x": 10.5, + "a": 6, + "f": 3 }, "V" ], @@ -329,19 +340,22 @@ "y": -0.875, "x": 2.5, "c": "#bfbad1", - "t": "#0d0d0b" + "t": "#0d0d0b", + "a": 6 }, - "Z", + "Q", { "x": 1, "c": "#7adabd", - "t": "#000000" + "t": "#000000", + "a": 4 + }, + "<\n,", + { + "x": 8.5, + "a": 6 }, "K", - { - "x": 8.5 - }, - "G", { "x": 1, "c": "#bfbad1", @@ -354,11 +368,13 @@ "y": -0.875, "x": 5.5, "c": "#7adabd", - "t": "#000000" + "t": "#000000", + "a": 4 }, - "X", + ">\n.", { - "x": 6.5 + "x": 6.5, + "a": 6 }, "B" ], @@ -367,28 +383,32 @@ "y": -0.875, "c": "#ffb07b", "f": 9, - "w": 1.5 + "w": 1.5, + "g": true }, - "\n\n", + "", { "c": "#ffb2d2", "t": "#0d0d0b", - "a": 4, - "f": 3 + "a": 6, + "f": 3, + "g": false }, - "?\n/", + "Z", { "x": 14.5, - "a": 6 + "a": 4 }, - "Q", + "?\n/", { "c": "#ffb07b", "t": "#000000", "f": 9, - "w": 1.5 + "g": true, + "w": 1.5, + "a": 4 }, - "" + "" ], [ { @@ -414,14 +434,14 @@ { "x": 1, "c": "#d4872a", - "g": false, + "g": true, "a": 5 }, - ";\n:", + "", { "x": 8.5 }, - "_\n-", + "", { "x": 1, "c": "#d9dae0", @@ -503,13 +523,13 @@ }, "MEDIA", {}, - "1HAND" + "DEL" ], [ { "x": -3 }, - "LEAD", + "HUN", { "c": "#d4872a", "f": 9, @@ -528,6 +548,6 @@ "c": "#f9cd31", "f": 2 }, - "HUN" + "LEAD" ] ] diff --git a/keyboards/ergodox/keymaps/algernon/tools/heatmap-base-layout.json b/keyboards/ergodox/keymaps/algernon/tools/heatmap-layout.Dvorak.json similarity index 97% rename from keyboards/ergodox/keymaps/algernon/tools/heatmap-base-layout.json rename to keyboards/ergodox/keymaps/algernon/tools/heatmap-layout.Dvorak.json index 148bb1f23b..1248d36af7 100644 --- a/keyboards/ergodox/keymaps/algernon/tools/heatmap-base-layout.json +++ b/keyboards/ergodox/keymaps/algernon/tools/heatmap-layout.Dvorak.json @@ -75,9 +75,9 @@ "STENO", { "x": 4.5, - "f": 6 + "f": 3 }, - "", + "F12", { "c": "#7adabd", "a": 4, @@ -94,12 +94,21 @@ { "y": -0.875, "c": "#ffb2d2", - "f": 3, + "f": 6, + "a": 6, "w": 1.5 }, - "\n\n~\n`", + "\n\n", { - "t": "#0d0d0b" + "f": 3, + "t": "#0d0d0b", + "a": 4, + "fa": [ + 0, + 0, + 2 + ] + }, "!\n1\nF1", { @@ -167,12 +176,12 @@ "a": 4, "h": 1.5 }, - "{\n[", + "{\n(\n[", { "x": 4.5, "h": 1.5 }, - "}\n]", + "}\n)\n]", { "c": "#7adabd", "a": 6 @@ -184,10 +193,10 @@ "y": -0.875, "c": "#ffb07b", "t": "#0d0d0b", - "f": 6, + "f": 3, "w": 1.5 }, - "\n\n", + "\n\n~\n`", { "c": "#ffb2d2", "a": 4, @@ -503,7 +512,7 @@ }, "MEDIA", {}, - "1HAND" + "DEL" ], [ { diff --git a/keyboards/ergodox/keymaps/algernon/tools/log-to-heatmap.py b/keyboards/ergodox/keymaps/algernon/tools/log-to-heatmap.py index a13d12e81a..68585843be 100755 --- a/keyboards/ergodox/keymaps/algernon/tools/log-to-heatmap.py +++ b/keyboards/ergodox/keymaps/algernon/tools/log-to-heatmap.py @@ -3,143 +3,247 @@ import json import os import sys import re +import argparse from math import floor +from os.path import dirname -cr_coord_map = [ - [ - # Row 0 - [ 4, 0], [ 4, 2], [ 2, 0], [ 1, 0], [ 2, 2], [ 3, 0], [ 3, 2], - [ 3, 4], [ 3, 6], [ 2, 4], [ 1, 2], [ 2, 6], [ 4, 4], [ 4, 6], - ], - [ - # Row 1 - [ 8, 0], [ 8, 2], [ 6, 0], [ 5, 0], [ 6, 2], [ 7, 0], [ 7, 2], - [ 7, 4], [ 7, 6], [ 6, 4], [ 5, 2], [ 6, 6], [ 8, 4], [ 8, 6], - ], - [ - # Row 2 - [12, 0], [12, 2], [10, 0], [ 9, 0], [10, 2], [11, 0], [ ], - [ ], [11, 2], [10, 4], [ 9, 2], [10, 6], [12, 4], [12, 6], - ], - [ - # Row 3 - [17, 0], [17, 2], [15, 0], [14, 0], [15, 2], [16, 0], [13, 0], - [13, 2], [16, 2], [15, 4], [14, 2], [15, 6], [17, 4], [17, 6], - ], - [ - # Row 4 - [20, 0], [20, 2], [19, 0], [18, 0], [19, 2], [], [], [], [], - [19, 4], [18, 2], [19, 6], [20, 4], [20, 6], - ], - [ - # Row 5 - [ ], [23, 0], [22, 2], [22, 0], [22, 4], [21, 0], [21, 2], - [24, 0], [24, 2], [25, 0], [25, 4], [25, 2], [26, 0], [ ], - ], -] +class Heatmap(object): + coords = [ + [ + # Row 0 + [ 4, 0], [ 4, 2], [ 2, 0], [ 1, 0], [ 2, 2], [ 3, 0], [ 3, 2], + [ 3, 4], [ 3, 6], [ 2, 4], [ 1, 2], [ 2, 6], [ 4, 4], [ 4, 6], + ], + [ + # Row 1 + [ 8, 0], [ 8, 2], [ 6, 0], [ 5, 0], [ 6, 2], [ 7, 0], [ 7, 2], + [ 7, 4], [ 7, 6], [ 6, 4], [ 5, 2], [ 6, 6], [ 8, 4], [ 8, 6], + ], + [ + # Row 2 + [12, 0], [12, 2], [10, 0], [ 9, 0], [10, 2], [11, 0], [ ], + [ ], [11, 2], [10, 4], [ 9, 2], [10, 6], [12, 4], [12, 6], + ], + [ + # Row 3 + [17, 0], [17, 2], [15, 0], [14, 0], [15, 2], [16, 0], [13, 0], + [13, 2], [16, 2], [15, 4], [14, 2], [15, 6], [17, 4], [17, 6], + ], + [ + # Row 4 + [20, 0], [20, 2], [19, 0], [18, 0], [19, 2], [], [], [], [], + [19, 4], [18, 2], [19, 6], [20, 4], [20, 6], + ], + [ + # Row 5 + [ ], [23, 0], [22, 2], [22, 0], [22, 4], [21, 0], [21, 2], + [24, 0], [24, 2], [25, 0], [25, 4], [25, 2], [26, 0], [ ], + ], + ] -def set_attr_at(j, b, n, attr, fn, val): - blk = j[b][n] - if attr in blk: - blk[attr] = fn(blk[attr], val) - else: - blk[attr] = fn(None, val) + def set_attr_at(self, block, n, attr, fn, val): + blk = self.heatmap[block][n] + if attr in blk: + blk[attr] = fn(blk[attr], val) + else: + blk[attr] = fn(None, val) -def coord(col, row): - return cr_coord_map[row][col] + def coord(self, col, row): + return self.coords[row][col] -def set_attr(orig, new): - return new + @staticmethod + def set_attr(orig, new): + return new -def set_bg(j, (b, n), color): - set_attr_at(j, b, n, "c", set_attr, color) - #set_attr_at(j, b, n, "g", set_attr, False) + def set_bg(self, (block, n), color): + self.set_attr_at(block, n, "c", self.set_attr, color) + #self.set_attr_at(block, n, "g", self.set_attr, False) -def _set_tap_info(o, count, cap): - ns = 4 - o.count ("\n") - return o + "\n" * ns + "%.02f%%" % (float(count) / float(cap) * 100) + def set_tap_info(self, (block, n), count, cap): + def _set_tap_info(o, _count, _cap): + ns = 4 - o.count ("\n") + return o + "\n" * ns + "%.02f%%" % (float(_count) / float(_cap) * 100) -def set_tap_info(j, (b, n), count, cap): - j[b][n + 1] = _set_tap_info (j[b][n + 1], count, cap) + if not cap: + cap = 1 + self.heatmap[block][n + 1] = _set_tap_info (self.heatmap[block][n + 1], count, cap) -def heatmap_color (v): - colors = [ [0.3, 0.3, 1], [0.3, 1, 0.3], [1, 1, 0.3], [1, 0.3, 0.3]] - fb = 0 - if v <= 0: - idx1, idx2 = 0, 0 - elif v >= 1: - idx1, idx2 = len(colors) - 1, len(colors) - 1 - else: - val = v * (len(colors) - 1) - idx1 = int(floor(val)) - idx2 = idx1 + 1 - fb = val - float(idx1) + @staticmethod + def heatmap_color (v): + colors = [ [0.3, 0.3, 1], [0.3, 1, 0.3], [1, 1, 0.3], [1, 0.3, 0.3]] + fb = 0 + if v <= 0: + idx1, idx2 = 0, 0 + elif v >= 1: + idx1, idx2 = len(colors) - 1, len(colors) - 1 + else: + val = v * (len(colors) - 1) + idx1 = int(floor(val)) + idx2 = idx1 + 1 + fb = val - float(idx1) - r = (colors[idx2][0] - colors[idx1][0]) * fb + colors[idx1][0] - g = (colors[idx2][1] - colors[idx1][1]) * fb + colors[idx1][1] - b = (colors[idx2][2] - colors[idx1][2]) * fb + colors[idx1][2] + r = (colors[idx2][0] - colors[idx1][0]) * fb + colors[idx1][0] + g = (colors[idx2][1] - colors[idx1][1]) * fb + colors[idx1][1] + b = (colors[idx2][2] - colors[idx1][2]) * fb + colors[idx1][2] - r, g, b = [x * 255 for x in r, g, b] - return "#%02x%02x%02x" % (r, g, b) + r, g, b = [x * 255 for x in r, g, b] + return "#%02x%02x%02x" % (r, g, b) -# Load the keylog -def load_keylog(fname, restrict_row): - keylog = {} - total = 0 - with open(fname, "r") as f: - lines = f.readlines() - for line in lines: - m = re.search ('KL: col=(\d+), row=(\d+)', line) + def __init__(self, layout): + self.log = {} + self.total = 0 + self.max_cnt = 0 + self.layout = layout + + def update_log(self, (c, r)): + if not (c, r) in self.log: + self.log[(c, r)] = 0 + self.log[(c, r)] = self.log[(c, r)] + 1 + self.total = self.total + 1 + if self.max_cnt < self.log[(c, r)]: + self.max_cnt = self.log[(c, r)] + + def get_heatmap(self): + with open("%s/heatmap-layout.%s.json" % (dirname(sys.argv[0]), self.layout), "r") as f: + self.heatmap = json.load (f) + + ## Reset colors + for row in self.coords: + for coord in row: + if coord != []: + self.set_bg (coord, "#d9dae0") + + for (c, r) in self.log: + coords = self.coord(c, r) + b, n = coords + cap = self.max_cnt + if cap == 0: + cap = 1 + v = float(self.log[(c, r)]) / cap + self.set_bg (coords, self.heatmap_color (v)) + self.set_tap_info (coords, self.log[(c, r)], self.total) + return self.heatmap + + def get_stats(self): + usage = [ + # left hand + [0, 0, 0, 0, 0], + # right hand + [0, 0, 0, 0, 0] + ] + finger_map = [0, 0, 1, 2, 3, 4, 4] + for (c, r) in self.log: + if r == 5: # thumb cluster + if c <= 6: # left side + usage[0][4] = usage[0][4] + self.log[(c, r)] + else: + usage[1][4] = usage[1][4] + self.log[(c, r)] + else: + fc = c + hand = 0 + if fc >= 7: + fc = fc - 7 + hand = 1 + fm = finger_map[fc] + usage[hand][fm] = usage[hand][fm] + self.log[(c, r)] + hand_usage = [0, 0] + for f in usage[0]: + hand_usage[0] = hand_usage[0] + f + for f in usage[1]: + hand_usage[1] = hand_usage[1] + f + + total = self.total + if total == 0: + total = 1 + stats = { + "hands": { + "left": { + "usage": float(hand_usage[0]) / total * 100, + "fingers": { + "0 - pinky": 0, + "1 - ring": 0, + "2 - middle": 0, + "3 - index": 0, + "4 - thumb": 0, + } + }, + "right": { + "usage": float(hand_usage[1]) / total * 100, + "fingers": { + "0 - thumb": 0, + "1 - index": 0, + "2 - middle": 0, + "3 - ring": 0, + "4 - pinky": 0, + } + }, + } + } + + hmap = ['left', 'right'] + fmap = ['0 - pinky', '1 - ring', '2 - middle', '3 - index', '4 - thumb', + '0 - thumb', '1 - index', '2 - middle', '3 - ring', '4 - pinky'] + for hand_idx in range(len(usage)): + hand = usage[hand_idx] + for finger_idx in range(len(hand)): + stats['hands'][hmap[hand_idx]]['fingers'][fmap[finger_idx + hand_idx * 5]] = float(hand[finger_idx]) / total * 100 + return stats + +def dump_all(out_dir, heatmaps): + for layer in heatmaps.keys(): + if len(heatmaps[layer].log) == 0: + continue + + with open ("%s/%s.json" % (out_dir, layer), "w") as f: + json.dump(heatmaps[layer].get_heatmap(), f) + print >>sys.stderr, "%s stats:" % (layer) + json.dump (heatmaps[layer].get_stats(), sys.stderr, + indent = 4, sort_keys = True) + print >>sys.stderr, "" + print >>sys.stderr, "" + +def main(opts): + + heatmaps = {"Dvorak": Heatmap("Dvorak"), + "ADORE": Heatmap("ADORE") + } + cnt = 0 + restrict_row = opts.restrict_row + out_dir = opts.outdir + + while True: + line = sys.stdin.readline() + if not line: + break + m = re.search ('KL: col=(\d+), row=(\d+), pressed=(\d+), layer=(.*)', line) if not m: continue - (c, r) = (int(m.group (2)), int(m.group (1))) - if restrict_row != None and r != int(restrict_row): + + cnt = cnt + 1 + (c, r, l) = (int(m.group (2)), int(m.group (1)), m.group (4)) + if restrict_row != -1 and r != restrict_row: + continue + if c in opts.ignore_columns: continue - if (c, r) in keylog: - keylog[(c, r)] = keylog[(c, r)] + 1 - else: - keylog[(c, r)] = 1 - total = total + 1 - return total / 2, keylog -def l_flat(s): - f = s.split("\n") - return ", ".join (f) + heatmaps[l].update_log ((c, r)) -def main(base_fn, log_fn, restrict_row = None): + if opts.dump_interval != -1 and cnt >= opts.dump_interval: + cnt = 0 + dump_all(out_dir, heatmaps) - with open(base_fn, "r") as f: - layout = json.load (f) - - ## Reset colors - for row in cr_coord_map: - for col in row: - if col != []: - set_bg (layout, col, "#d9dae0") - #set_attr_at (layout, col[0], col[1], "g", set_attr, True) - - total, log = load_keylog (log_fn, restrict_row) - max_cnt = 0 - for (c, r) in log: - max_cnt = max(max_cnt, log[(c, r)]) - - # Create the heatmap - for (c, r) in log: - coords = coord(c, r) - b, n = coords - cap = max_cnt - v = float(log[(c, r)]) / cap - print >> sys.stderr, "%s => %d/%d => %f = %s" % (l_flat(layout[b][n+1]), log[(c,r)], cap, v, heatmap_color(v)) - set_bg (layout, coord(c, r), heatmap_color (v)) - set_tap_info (layout, coord (c, r), log[(c, r)], total) - - print json.dumps(layout) + dump_all (out_dir, heatmaps) if __name__ == "__main__": - if len(sys.argv) < 3: - print """Log to Heatmap -- creates a heatmap out of keyboard logs - -Usage: log-to-heatmap.py base-layout.json logfile [row] >layout.json""" - sys.exit (1) - main(*sys.argv[1:]) + parser = argparse.ArgumentParser (description = "keylog to heatmap processor") + parser.add_argument ('outdir', action = 'store', + help = 'Output directory') + parser.add_argument ('--row', dest = 'restrict_row', action = 'store', type = int, + default = -1, help = 'Restrict processing to this row only') + parser.add_argument ('--dump-interval', dest = 'dump_interval', action = 'store', type = int, + default = 100, help = 'Dump stats and heatmap at every Nth event, -1 for dumping at EOF only') + parser.add_argument ('--ignore-column', dest = 'ignore_columns', action = 'append', type = int, + default = [], help = 'Ignore the specified columns') + args = parser.parse_args() + main(args) From 5b58d7d1458502ad52b7a8e2be52afab17dc51a5 Mon Sep 17 00:00:00 2001 From: coderkun Date: Sun, 21 Aug 2016 19:31:34 +0200 Subject: [PATCH 12/34] =?UTF-8?q?Disable=20debugging=20for=20Ergodox=20key?= =?UTF-8?q?map=20=E2=80=9Ccoderkun=5Fneo2=E2=80=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- keyboards/ergodox/keymaps/coderkun_neo2/Makefile | 1 + keyboards/ergodox/keymaps/coderkun_neo2/keymap.c | 1 - 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/keyboards/ergodox/keymaps/coderkun_neo2/Makefile b/keyboards/ergodox/keymaps/coderkun_neo2/Makefile index 6c0a79b110..b0fe90ab1d 100644 --- a/keyboards/ergodox/keymaps/coderkun_neo2/Makefile +++ b/keyboards/ergodox/keymaps/coderkun_neo2/Makefile @@ -1,2 +1,3 @@ SLEEP_LED_ENABLE = no UNICODE_ENABLE = yes +COMMAND_ENABLE = no diff --git a/keyboards/ergodox/keymaps/coderkun_neo2/keymap.c b/keyboards/ergodox/keymaps/coderkun_neo2/keymap.c index 2ac06eef85..90651956af 100644 --- a/keyboards/ergodox/keymaps/coderkun_neo2/keymap.c +++ b/keyboards/ergodox/keymaps/coderkun_neo2/keymap.c @@ -1,5 +1,4 @@ #include "ergodox.h" -#include "debug.h" #include "action_layer.h" #include "led.h" #include "keymap_extras/keymap_neo2.h" From c78b44fb18194fb130ec3c49c38abc5afb6fee34 Mon Sep 17 00:00:00 2001 From: coderkun Date: Sun, 21 Aug 2016 20:39:09 +0200 Subject: [PATCH 13/34] =?UTF-8?q?Set=20Unicode=20input=20mode=20and=20over?= =?UTF-8?q?ride=20unicode=5Finput=5Fstart()=20method=20to=20keymap=20?= =?UTF-8?q?=E2=80=9Ccoderkun=5Fneo2=E2=80=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- keyboards/ergodox/keymaps/coderkun_neo2/keymap.c | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/keyboards/ergodox/keymaps/coderkun_neo2/keymap.c b/keyboards/ergodox/keymaps/coderkun_neo2/keymap.c index 90651956af..b665a5f3ae 100644 --- a/keyboards/ergodox/keymaps/coderkun_neo2/keymap.c +++ b/keyboards/ergodox/keymaps/coderkun_neo2/keymap.c @@ -155,8 +155,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [FMU] = KEYMAP( // left hand KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, - KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,UC(0x2713),KC_TRNS,KC_TRNS, - KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,UC(0x2715),KC_TRNS, + KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,UC(0x2715),KC_TRNS,KC_TRNS, + KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,UC(0x2713),KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_MS_L, KC_MS_U, @@ -244,6 +244,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) // Runs just one time when the keyboard initializes. void matrix_init_user(void) { + set_unicode_input_mode(UC_LNX); }; @@ -278,3 +279,14 @@ void matrix_scan_user(void) } }; + + +// Override Unicode start method to use NEO_U instead of KC_U +void unicode_input_start (void) { + register_code(KC_LCTL); + register_code(KC_LSFT); + register_code(NEO_U); + unregister_code(NEO_U); + unregister_code(KC_LSFT); + unregister_code(KC_LCTL); +}; From 137eb118e352201f7d324743e34ed57e6885b689 Mon Sep 17 00:00:00 2001 From: coderkun Date: Fri, 26 Aug 2016 13:26:16 +0200 Subject: [PATCH 14/34] =?UTF-8?q?Add=20box-drawing=20Unicode=20characters?= =?UTF-8?q?=20to=20keymap=20=E2=80=9Ccoderkun=5Fneo2=E2=80=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- keyboards/ergodox/keymaps/coderkun_neo2/keymap.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/keyboards/ergodox/keymaps/coderkun_neo2/keymap.c b/keyboards/ergodox/keymaps/coderkun_neo2/keymap.c index b665a5f3ae..0eedecf3dd 100644 --- a/keyboards/ergodox/keymaps/coderkun_neo2/keymap.c +++ b/keyboards/ergodox/keymaps/coderkun_neo2/keymap.c @@ -137,11 +137,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * ┌───────┬─────┬─────┬─────┬─────┬─────┬─────┐ ┌─────┬─────┬─────┬─────┬─────┬─────┬───────┐ * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ * ├───────┼─────┼─────┼─────┼─────┼─────┼─────┤ ├─────┼─────┼─────┼─────┼─────┼─────┼───────┤ - * │ │ │ │ │ ✕ │ │ │ │ │ │ F9 │ F10 │ F11 │ F12 │ │ + * │ │ ┌ │ ┬ │ ┐ │ ─ │ │ │ │ │ │ │ F9 │ F10 │ F11 │ F12 │ │ * ├───────┼─────┼─────┼─────╆─────╅─────┤ │ │ ├─────╆─────╅─────┼─────┼─────┼───────┤ - * │ │ │ │ │ ✓ │ ├─────┤ ├─────┤ │ F5 │ F6 │ F7 │ F8 │ │ + * │ │ ├ │ ┼ │ ┤ │ ✓ │ ✕ ├─────┤ ├─────┤ │ F5 │ F6 │ F7 │ F8 │ │ * ├───────┼─────┼─────┼─────╄─────╃─────┤(TL2)│ │(TL3)├─────╄─────╃─────┼─────┼─────┼───────┤ - * │ │ │ │ │ │ │ │ │ │ │ F1 │ F2 │ F3 │ F4 │ │ + * │ │ └ │ ┴ │ ┘ │ │ │ │ │ │ │ F1 │ F2 │ F3 │ F4 │ │ * └─┬─────┼─────┼─────┼─────┼─────┼─────┴─────┘ └─────┴─────┼─────┼─────┼─────┼─────┼─────┬─┘ * │ │ │(MO1)│ │(MO4)│ │(MO4)│ │(MO1)│ │ │ * └─────┴─────┴─────┴─────┴─────┘ ┌─────┬─────┐ ┌─────┬─────┐ └─────┴─────┴─────┴─────┴─────┘ @@ -155,9 +155,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [FMU] = KEYMAP( // left hand KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, - KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,UC(0x2715),KC_TRNS,KC_TRNS, - KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,UC(0x2713),KC_TRNS, - KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, + KC_TRNS, UC(0x250C),UC(0x252C),UC(0x2510),UC(0x2500),UC(0x2502),KC_TRNS, + KC_TRNS, UC(0x251C),UC(0x253C),UC(0x2524),UC(0x2713),UC(0x2715), + KC_TRNS, UC(0x2514),UC(0x2534),UC(0x2518),KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_MS_L, KC_MS_U, KC_BTN1, From 2f0395ce725581b93b68a88899c207014ee68901 Mon Sep 17 00:00:00 2001 From: Gergely Nagy Date: Mon, 29 Aug 2016 11:30:38 +0200 Subject: [PATCH 15/34] build_keyboard.mk: Restore UCIS_ENABLE support During the build system refactor, support for enabling UCIS seems to have been lost. This little patch adds that back, so that keymaps using UCIS can be compiled again. Signed-off-by: Gergely Nagy --- build_keyboard.mk | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/build_keyboard.mk b/build_keyboard.mk index 04632c1c94..03a69b1464 100644 --- a/build_keyboard.mk +++ b/build_keyboard.mk @@ -148,6 +148,11 @@ ifeq ($(strip $(AUDIO_ENABLE)), yes) SRC += $(QUANTUM_DIR)/audio/luts.c endif +ifeq ($(strip $(UCIS_ENABLE)), yes) + OPT_DEFS += -DUCIS_ENABLE + UNICODE_ENABLE = yes +endif + ifeq ($(strip $(UNICODE_ENABLE)), yes) OPT_DEFS += -DUNICODE_ENABLE SRC += $(QUANTUM_DIR)/process_keycode/process_unicode.c From 42f1ce08dc09ff784add32750e55aa03e2427f5e Mon Sep 17 00:00:00 2001 From: Jack Henahan Date: Mon, 29 Aug 2016 11:35:07 -0400 Subject: [PATCH 16/34] jhenahan layout --- keyboards/planck/keymaps/jhenahan/Makefile | 25 ++ keyboards/planck/keymaps/jhenahan/config.h | 9 + keyboards/planck/keymaps/jhenahan/keymap.c | 314 ++++++++++++++++++++ keyboards/planck/keymaps/jhenahan/readme.md | 35 +++ 4 files changed, 383 insertions(+) create mode 100644 keyboards/planck/keymaps/jhenahan/Makefile create mode 100644 keyboards/planck/keymaps/jhenahan/config.h create mode 100644 keyboards/planck/keymaps/jhenahan/keymap.c create mode 100644 keyboards/planck/keymaps/jhenahan/readme.md diff --git a/keyboards/planck/keymaps/jhenahan/Makefile b/keyboards/planck/keymaps/jhenahan/Makefile new file mode 100644 index 0000000000..de01ad2404 --- /dev/null +++ b/keyboards/planck/keymaps/jhenahan/Makefile @@ -0,0 +1,25 @@ + + +# 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 = 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/jhenahan/config.h b/keyboards/planck/keymaps/jhenahan/config.h new file mode 100644 index 0000000000..cd3adc41cc --- /dev/null +++ b/keyboards/planck/keymaps/jhenahan/config.h @@ -0,0 +1,9 @@ +#ifndef CONFIG_USER_H +#define CONFIG_USER_H + +#include "../../config.h" + +#define FORCE_NKRO +#define WORKMAN_SOUND COLEMAK_SOUND + +#endif diff --git a/keyboards/planck/keymaps/jhenahan/keymap.c b/keyboards/planck/keymaps/jhenahan/keymap.c new file mode 100644 index 0000000000..2bda4b6956 --- /dev/null +++ b/keyboards/planck/keymaps/jhenahan/keymap.c @@ -0,0 +1,314 @@ +// 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 "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. +#define _WORKMAN 0 +#define _DEAD 1 +#define _QWERTY 2 +#define _LOWER 3 +#define _RAISE 4 +#define _PLOVER 5 +#define _ADJUST 16 + +enum planck_keycodes { + WORKMAN = SAFE_RANGE, + DEAD, + QWERTY, + LOWER, + RAISE, + PLOVER, + EXT_PLV, + TOG_PLV +}; + +// Fillers to make layering more clear +#define _______ KC_TRNS +#define XXXXXXX KC_NO + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + +/* Workman + * ,-----------------------------------------------------------------------------------. + * | Tab | Q | D | R | W | B | J | F | U | P | ; | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | A | S | H | T | G | Y | N | E | O | I | " | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| Z | X | M | C | V | K | L | Dead | . | / |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Ctrl | RAlt | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ +[_WORKMAN] = { + {KC_TAB, KC_Q, KC_D, KC_R, KC_W, KC_B, KC_J, KC_F, KC_U, KC_P, KC_SCLN, KC_BSPC}, + {MT(MOD_LCTL,KC_ESC), KC_A, KC_S, KC_H, KC_T, KC_G, KC_Y, KC_N, KC_E, KC_O, KC_I, KC_QUOT}, + {KC_LSFT, KC_Z, KC_X, KC_M, KC_C, KC_V, KC_K, KC_L, DEAD, KC_DOT, KC_SLSH, KC_ENT}, + {KC_LCTL, KC_RALT, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} +}, + +/* Workman Dead Layer + * ,-----------------------------------------------------------------------------------. + * | | % | & | ? | + | @ | $ | _ | [ | ] | ! | | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | | / | ( | = | 0 | { | } | 1 | * | ) | - | " | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | 6 | 7 | 8 | 9 | | | \ | 2 | 3 | 4 | 5 | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | < | ~ | ` | , | # | ^ | > | | | + * `-----------------------------------------------------------------------------------' + */ +[_DEAD] = { + {XXXXXXX, KC_PERC, KC_AMPR, KC_QUES, KC_PLUS, KC_AT, KC_DLR, KC_UNDS, KC_LBRC, KC_RBRC, KC_EXLM, XXXXXXX}, + {XXXXXXX, KC_SLSH, KC_LPRN, KC_EQL, KC_0, KC_LCBR, KC_RCBR, KC_1, KC_ASTR, KC_RPRN, KC_MINS, XXXXXXX}, + {XXXXXXX, KC_6, KC_7, KC_8, KC_9, KC_PIPE, KC_BSLS, KC_2, KC_3, KC_4, KC_5, XXXXXXX}, + {XXXXXXX, XXXXXXX, KC_LT, KC_TILD, KC_GRV, KC_COMM, KC_COMM, KC_HASH, KC_CIRC, KC_GT, XXXXXXX, XXXXXXX} +}, + +/* 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 | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Ctrl | RAlt | Alt | GUI |Lower | 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_ENT }, + {KC_LCTL, KC_RALT, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} +}, + +/* Lower + * ,-----------------------------------------------------------------------------------. + * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO ~ |ISO | | | Vol+ |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | Prev | Next | Vol- | Play | + * `-----------------------------------------------------------------------------------' + */ +[_LOWER] = { + {KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC}, + {KC_DEL, 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,S(KC_NUHS),S(KC_NUBS), _______, KC_VOLU, _______}, + {_______, _______, _______, _______, _______, _______, _______, _______, KC_MPRV, KC_MNXT, KC_VOLD, KC_MPLY} +}, + +/* Raise - KWM Interaction + * ,-----------------------------------------------------------------------------------. + * |Restrt| |TgSplt|Flotng|Parent|FlScrn|InsMrk| InsW | InsS | InsN | InsE | | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | | Mark |Rotate|Prefix| Term | BSP |SwpMrk|SwapW |SwapS |SwapN |SwapE | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | |MarkW |MarkS |MarkN |MarkE |Monocl|Float |FocusW|FocusS|FocusN|FocusE| | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | | | + * `-----------------------------------------------------------------------------------' + */ +[_RAISE] = { + {LCAG(KC_Q), XXXXXXX, LCAG(KC_S), LCAG(KC_W), LCAG(KC_D), LCAG(KC_F), LCTL(S(KC_X)), LCTL(S(KC_H)), LCTL(S(KC_J)), LCTL(S(KC_K)), LCTL(S(KC_L)), XXXXXXX}, + {XXXXXXX, LCAG(KC_M), LGUI(LCTL(KC_R)), LCAG(KC_DOT), LCAG(KC_T), LGUI(LCTL(KC_A)), LCTL(LALT(KC_M)), LCTL(LALT(KC_H)), LCTL(LALT(KC_J)), LCTL(LALT(KC_K)), LCTL(LALT(KC_L)), XXXXXXX}, + {_______, LCAG(KC_H), LCAG(KC_J), LCAG(KC_K), LCAG(KC_L), LGUI(LCTL(KC_S)), LGUI(LCTL(KC_D)), LGUI(LALT(KC_H)), LGUI(LALT(KC_J)), LGUI(LALT(KC_K)), LGUI(LALT(KC_L)), _______}, + {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} +}, + +/* Plover layer (http://opensteno.org) + * ,-----------------------------------------------------------------------------------. + * | # | # | # | # | # | # | # | # | # | # | # | # | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | | S | T | P | H | * | * | F | P | L | T | D | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * |TogOut| S | K | W | R | * | * | R | B | G | S | Z | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Exit | | | A | O | | E | U | | | | + * `-----------------------------------------------------------------------------------' + */ + +[_PLOVER] = { + {KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1 }, + {XXXXXXX, KC_Q, KC_D, KC_R, KC_W, KC_B, KC_J, KC_F, KC_U, KC_P, KC_SCLN, KC_BSPC}, + {TOG_PLV, KC_A, KC_S, KC_H, KC_T, KC_G, KC_Y, KC_N, KC_E, KC_O, KC_I, KC_QUOT}, + {EXT_PLV, XXXXXXX, XXXXXXX, KC_M, KC_C, XXXXXXX, XXXXXXX, KC_L, KC_COMM, XXXXXXX, XXXXXXX, XXXXXXX} +}, + +/* Adjust (Lower + Raise) + * ,-----------------------------------------------------------------------------------. + * | | Reset| | | | | | | | | | Del | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | | | |Aud on|Audoff|AGnorm|AGswap|Qwerty|Workmn|Plover| | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | |Voice-|Voice+|Mus on|Musoff|MIDIon|MIDIof| | | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | | | + * `-----------------------------------------------------------------------------------' + */ +[_ADJUST] = { + {_______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL}, + {_______, _______, _______, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, WORKMAN, PLOVER, _______, _______}, + {_______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, _______, _______, _______, _______, _______}, + {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} +} + + +}; + +#ifdef AUDIO_ENABLE + +float tone_startup[][2] = SONG(STARTUP_SOUND); +float tone_qwerty[][2] = SONG(QWERTY_SOUND); +float tone_workman[][2] = SONG(WORKMAN_SOUND); +float tone_plover[][2] = SONG(PLOVER_SOUND); +float tone_plover_gb[][2] = SONG(PLOVER_GOODBYE_SOUND); +float music_scale[][2] = SONG(MUSIC_SCALE_SOUND); + +float tone_goodbye[][2] = SONG(GOODBYE_SOUND); +#endif + + +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 WORKMAN: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + PLAY_NOTE_ARRAY(tone_workman, false, 0); + #endif + persistant_default_layer_set(1UL<<_WORKMAN); + } + return false; + break; + case DEAD: + if (record->event.pressed) { + layer_on(_DEAD); + set_oneshot_layer(_DEAD, ONESHOT_START); + clear_oneshot_layer_state(ONESHOT_PRESSED); + } + return false; + break; + 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 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; + case PLOVER: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + stop_all_notes(); + PLAY_NOTE_ARRAY(tone_plover, false, 0); + #endif + layer_off(_RAISE); + layer_off(_LOWER); + layer_off(_ADJUST); + layer_on(_PLOVER); + if (!eeconfig_is_enabled()) { + eeconfig_init(); + } + keymap_config.raw = eeconfig_read_keymap(); + keymap_config.nkro = 1; + eeconfig_update_keymap(keymap_config.raw); + } + return false; + break; + case EXT_PLV: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + PLAY_NOTE_ARRAY(tone_plover_gb, false, 0); + #endif + layer_off(_PLOVER); + } + return false; + break; + case TOG_PLV: + if (record->event.pressed) { + register_code(KC_R); + register_code(KC_W); + register_code(KC_T); + register_code(KC_C); + register_code(KC_P); + register_code(KC_O); + clear_keyboard(); + } + return false; + break; + } + return true; +} + +void matrix_init_user(void) { + #ifdef AUDIO_ENABLE + startup_user(); + #endif +} + +#ifdef AUDIO_ENABLE + +void startup_user() +{ + _delay_ms(20); // 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/jhenahan/readme.md b/keyboards/planck/keymaps/jhenahan/readme.md new file mode 100644 index 0000000000..1d803fe321 --- /dev/null +++ b/keyboards/planck/keymaps/jhenahan/readme.md @@ -0,0 +1,35 @@ +# jhenahan's layout + +## Layout + +The base layer is based on the +[Workman Dead](https://github.com/ojbucao/Workman/tree/master/mac) layout. The +primary interaction layer is a slightly modified Workman layout with a 'dead' +key on the third row under the middle finger. The dead key activates a layer of +special characters. + +## [Layers](http://www.keyboard-layout-editor.com/#/gists/2b875f7d5d76fe4408c0a5b3bd76ddae) +### Function Layer + +This is very slightly modified from the default, mainly just to rearrange the media keys. + +### [KWM](https://github.com/koekeishiya/kwm) Interaction Layer + +`kwm` is a tiling window manager for OS X. The keys defined in my keymap +correspond to the settings I use in +[my `kwmrc` file](https://github.com/jhenahan/dotfiles/blob/master/kwm/kwmrc). + +### QWERTY + +Just in case. + +### [Plover](http://www.openstenoproject.org/plover/) + +The Plover layer in this keymap is identical to that of the default. This layout +functions exactly as a QWERTY layout unless you're running the Plover +application. + +### Adjust Layer + +This layer is only slightly modified from the default to remove Dvorak and +Colemak and replace them with Workman. From 6d7637ae3eb4b37ab7d294818aa92ea9562df4b9 Mon Sep 17 00:00:00 2001 From: Jack Henahan Date: Mon, 29 Aug 2016 11:43:06 -0400 Subject: [PATCH 17/34] Update README --- keyboards/planck/keymaps/jhenahan/readme.md | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/keyboards/planck/keymaps/jhenahan/readme.md b/keyboards/planck/keymaps/jhenahan/readme.md index 1d803fe321..a80506fc9d 100644 --- a/keyboards/planck/keymaps/jhenahan/readme.md +++ b/keyboards/planck/keymaps/jhenahan/readme.md @@ -25,9 +25,15 @@ Just in case. ### [Plover](http://www.openstenoproject.org/plover/) -The Plover layer in this keymap is identical to that of the default. This layout -functions exactly as a QWERTY layout unless you're running the Plover -application. +This layout functions exactly as a Workman layout unless you're running the Plover +application. Includes a key for toggling Plover while it's running. + +Add this in the appropriate section of your `plover.cfg` to allow this altered layout: + +``` ini +[System: English Stenotype] +keymap[keyboard] = [["#", ["1", "2", "3", "4", "5", "6", "7", "8", "9", "0", "-", "="]], ["S-", ["q", "a"]], ["T-", ["d"]], ["K-", ["s"]], ["P-", ["r"]], ["W-", ["h"]], ["H-", ["w"]], ["R-", ["t"]], ["A-", ["m"]], ["O-", ["c"]], ["*", ["y", "g", "j", "b"]], ["-E", ["l"]], ["-U", [","]], ["-F", ["f"]], ["-R", ["n"]], ["-P", ["u"]], ["-B", ["e"]], ["-L", ["p"]], ["-G", ["o"]], ["-T", [";"]], ["-S", ["i"]], ["-D", ["BackSpace"]], ["-Z", ["'"]], ["no-op", ["\\", "]", "x", ".", "/"]], ["arpeggiate", ["space"]]] +``` ### Adjust Layer From c9ea236fc35d350c0ff33de0af84d3dee7d0eb95 Mon Sep 17 00:00:00 2001 From: Gergely Nagy Date: Wed, 31 Aug 2016 08:21:52 +0200 Subject: [PATCH 18/34] process_unicode: Add get_unicode_input_mode() There may be cases where one would like to know the current Unicode input mode, without having to keep track of it themselves. Add a function that does just this. Signed-off-by: Gergely Nagy --- quantum/process_keycode/process_unicode.c | 4 ++++ quantum/process_keycode/process_unicode.h | 1 + 2 files changed, 5 insertions(+) diff --git a/quantum/process_keycode/process_unicode.c b/quantum/process_keycode/process_unicode.c index 06c1694f2e..a5d7dca21e 100644 --- a/quantum/process_keycode/process_unicode.c +++ b/quantum/process_keycode/process_unicode.c @@ -18,6 +18,10 @@ void set_unicode_input_mode(uint8_t os_target) input_mode = os_target; } +uint8_t get_unicode_input_mode(void) { + return input_mode; +} + __attribute__((weak)) void unicode_input_start (void) { switch(input_mode) { diff --git a/quantum/process_keycode/process_unicode.h b/quantum/process_keycode/process_unicode.h index 02ce3dd7e0..27f8072ee6 100644 --- a/quantum/process_keycode/process_unicode.h +++ b/quantum/process_keycode/process_unicode.h @@ -13,6 +13,7 @@ #endif void set_unicode_input_mode(uint8_t os_target); +uint8_t get_unicode_input_mode(void); void unicode_input_start(void); void unicode_input_finish(void); void register_hex(uint16_t hex); From acda2b793f69c6e0e9b9667e9ebe8a0325eb5ecd Mon Sep 17 00:00:00 2001 From: Gergely Nagy Date: Thu, 1 Sep 2016 08:32:47 +0200 Subject: [PATCH 19/34] tap-dance: Do not start a sequence on keyup There was an odd case, which confused the hell out of tap-dance: suppose you had a number of tap-dance keys, on a layer, and as part of the tap-dance, you turned that layer off - or had it on one-shot to begin with. In this case, the keydown event would trigger the tap-dance key, but the keyup would not. This had two funky consequences: - tap-dance did not correctly register that the dance has ended. - pressing any other tap-dance key would interrupt the previous tap-dance, and potentially input unwanted characters. To fix this, we simply do not start a tap-dance sequence on keyup, only when it is pressed. This way the previous sequence has enough time to time-out and finish properly, and we don't get confused. This fixes algernon/ergodox-layout#107. Signed-off-by: Gergely Nagy --- quantum/process_keycode/process_tap_dance.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/quantum/process_keycode/process_tap_dance.c b/quantum/process_keycode/process_tap_dance.c index 07de3ecb8f..79ade4d000 100644 --- a/quantum/process_keycode/process_tap_dance.c +++ b/quantum/process_keycode/process_tap_dance.c @@ -65,9 +65,9 @@ bool process_tap_dance(uint16_t keycode, keyrecord_t *record) { highest_td = idx; action = &tap_dance_actions[idx]; - action->state.keycode = keycode; action->state.pressed = record->event.pressed; if (record->event.pressed) { + action->state.keycode = keycode; action->state.count++; action->state.timer = timer_read(); @@ -77,8 +77,9 @@ bool process_tap_dance(uint16_t keycode, keyrecord_t *record) { process_tap_dance_action_on_dance_finished (paction); reset_tap_dance (&paction->state); } + + last_td = keycode; } - last_td = keycode; break; From 8b2a235c8de7123187e0aa1dd950947f20a51f07 Mon Sep 17 00:00:00 2001 From: Callum Oakley Date: Thu, 1 Sep 2016 18:14:39 +0100 Subject: [PATCH 20/34] changed order of modifiers after experimentation, updated readme --- keyboards/planck/keymaps/callum/keymap.c | 4 ++-- keyboards/planck/keymaps/callum/readme.md | 15 +++++---------- 2 files changed, 7 insertions(+), 12 deletions(-) diff --git a/keyboards/planck/keymaps/callum/keymap.c b/keyboards/planck/keymaps/callum/keymap.c index 494ed30b06..572756a383 100644 --- a/keyboards/planck/keymaps/callum/keymap.c +++ b/keyboards/planck/keymaps/callum/keymap.c @@ -38,14 +38,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |------+------+------+------+------+------|------+------+------+------+------+------| * | Shift| Z | X | C | V | B | K | M | , | . | / |Shift | * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Func | GUI | Alt | Ctrl | Symb |Enter |Space | Move | GUI | Alt | Ctrl |Caps | + * | Func | Ctrl | Alt | GUI | Symb |Enter |Space | Move | GUI | Alt | Ctrl |Caps | * `-----------------------------------------------------------------------------------' */ [_BASE] = { {KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_MINS}, {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}, - {FUNC, KC_LGUI, KC_LALT, KC_LCTL, SYMB, KC_ENT, KC_SPC, MOVE, KC_RGUI, KC_RALT, KC_RCTL, KC_CAPS} + {FUNC, KC_LCTL, KC_LALT, KC_LGUI, SYMB, KC_ENT, KC_SPC, MOVE, KC_RGUI, KC_RALT, KC_RCTL, KC_CAPS} }, /* MOVE diff --git a/keyboards/planck/keymaps/callum/readme.md b/keyboards/planck/keymaps/callum/readme.md index 030def7f77..c7ad5d163c 100644 --- a/keyboards/planck/keymaps/callum/readme.md +++ b/keyboards/planck/keymaps/callum/readme.md @@ -2,24 +2,19 @@ This is a layout for the grid planck, built with a few ideals in mind. These ideals are just my opinion mind! The great thing about *qmk* is that we can all afford to have different opinions about what makes a good layout: -- Minimal response times should be maintained. i.e. keys that react differently depending on whether they are tapped or held, keys that react differently if they are double tapped, etc. should be avoided --- since they inevitably send their keycode later than a normal key, interrupting the immediate feedback from the screen. Therefore we restrict ourselves to chording. +- Minimal response times should be maintained. i.e. keys that react differently depending on whether they are tapped or held, keys that react differently if they are double tapped, etc. should be avoided — since they inevitably send their keycode later than a normal key, interrupting the immediate feedback from the screen. Therefore we restrict ourselves to chording. - The hands should never need to leave the home position. The usual culprit for this is the arrow cluster, so the arrow cluster should be as close to home as possible. - There should be two of every modifier (one on each side), since otherwise certain long key combinations become hard to make. - Backspace should be in the “capslock position” as God intended. -- The keyboard should be usable without any firmware changes on any operating system. In my case that means it should work on *Windows* and *Linux* without any software modifications, while I can change the behaviour slightly on *macOS* in software since that’s my home OS. The images reflect the intended use on *macOS* **after** minor software tweaks; which will be noted. We have four layers. A `BASE` layer, in colemak; a `MOVE` layer, with an arrow cluster etc, a `SYMB` layer, with numbers and symbols; and a `FUNC` layer, with function keys and media keys. ## The `BASE` layer -![](http://i.imgur.com/aEXOlWl.png) +![](http://i.imgur.com/tVNI3SE.png) This is the default layer; in [colemak](https://colemak.com). `esc` and `del` are conspicuously absent but are especially easy to reach from either of the other main layers (see below). The `backspace` location is standard colemak. The `caps` key is still on the `BASE` layer but only because I don’t really use the bottom corners so there’s nothing else I would rather put there. Having `enter` on a thumb means I can still have `quote` immediately to the right of `O`, something that would have annoyed me endlessly otherwise. `minus` is in the upper right because I had an extra space and it’s probably my next most used key that didn’t yet have a home. -The `MOVE` and `SYMB` layers are reached by holding down the `move` and `symb` keys respectively. The `FUNC` layer is reached by holding down both the `move` and `symb` keys simultaneosly, *or* by holding down the `fn` key. The intended use is that whenever both hands are on the keyboard, the former method is used, and the latter is only used when, for example, reaching over to the keyboard with one hand to access the media controls. - -The `ctrl`, `alt`, `cmd` cluster is asymmetric around the centre so that at least one of each of the modifiers can be reached with the thumbs. The intended use is to always hit the left `cmd` and the right `ctrl`, unless an awkward key combination dictates otherwise. - -In firmware `ctrl` and `cmd`/`GUI` are swapped with respect to the image above --- I swap them to the illustrated location when using *macOS* and leave them be for *Windows* and *Linux*. (so that `cmd-z,x,c,v,...` becomes `ctrl-z,x,c,v,...` saving me some confusion) +The `MOVE` and `SYMB` layers are reached by holding down the `move` and `symb` keys respectively. The `FUNC` layer is reached by holding down both the `move` and `symb` keys simultaneously, *or* by holding down the `fn` key. The intended use is that whenever both hands are on the keyboard, the former method is used, and the latter is only used when, for example, reaching over to the keyboard with one hand to access the media controls. ## The `MOVE` layer ![](http://i.imgur.com/KXRSuHT.png) @@ -40,9 +35,9 @@ The symbol layer has all the numbers and their usual corresponding symbols in th Again none of the modifiers are overwritten so that shortcuts involving numbers or symbols work as expected. ## The `FUNC` layer -![](http://i.imgur.com/skxRZiH.png) +![](http://i.imgur.com/1VKFBBU.png) -The only thing of note here is that `bl+` and `bl-` are short for *backlight up* and *backlight down* respectively, and in firmware are actually `KC_PAUS` and `KC_SLCK` respectively, since *macOS* interprets these as the backlight keys. +The only things of note here are that `bl+` and `bl-` are short for *backlight up* and *backlight down*, and in firmware are actually `KC_PAUS` and `KC_SLCK` respectively, since *macOS* interprets these as the backlight keys. And that `lock` is currently a macro hard coded to turn off the screen on *macOS*. (By activating the shortcut `shift-cmd-power`.) ## Other changes from the default I have LEDs and sound disabled, simply because I have no need of them. \ No newline at end of file From 4c67ccc81ee8006190438c5f54cda871bcb2afa6 Mon Sep 17 00:00:00 2001 From: Callum Oakley Date: Thu, 1 Sep 2016 18:30:49 +0100 Subject: [PATCH 21/34] changed some of the wording in the readme --- keyboards/planck/keymaps/callum/readme.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/keyboards/planck/keymaps/callum/readme.md b/keyboards/planck/keymaps/callum/readme.md index c7ad5d163c..2d38e6355a 100644 --- a/keyboards/planck/keymaps/callum/readme.md +++ b/keyboards/planck/keymaps/callum/readme.md @@ -1,11 +1,11 @@ # callum’s planck layout -This is a layout for the grid planck, built with a few ideals in mind. These ideals are just my opinion mind! The great thing about *qmk* is that we can all afford to have different opinions about what makes a good layout: +This is a layout for the grid planck, built with a few ideals in mind: -- Minimal response times should be maintained. i.e. keys that react differently depending on whether they are tapped or held, keys that react differently if they are double tapped, etc. should be avoided — since they inevitably send their keycode later than a normal key, interrupting the immediate feedback from the screen. Therefore we restrict ourselves to chording. +- Minimal response times should be maintained. i.e. keys that react differently depending on whether they are tapped or held, keys that react differently if they are double tapped, etc. should be avoided — they inevitably send their keycode later than a normal key, interrupting the immediate feedback from the screen. Therefore we restrict ourselves to chording. - The hands should never need to leave the home position. The usual culprit for this is the arrow cluster, so the arrow cluster should be as close to home as possible. -- There should be two of every modifier (one on each side), since otherwise certain long key combinations become hard to make. -- Backspace should be in the “capslock position” as God intended. +- There should be two of every modifier (one on each side), otherwise certain long key combinations become hard to make. +- Backspace should be in the “capslock position” in the colemak tradition. We have four layers. A `BASE` layer, in colemak; a `MOVE` layer, with an arrow cluster etc, a `SYMB` layer, with numbers and symbols; and a `FUNC` layer, with function keys and media keys. From e4167c8c53b0cf7c68192bbe4db368785f24b970 Mon Sep 17 00:00:00 2001 From: Callum Oakley Date: Fri, 2 Sep 2016 09:03:39 +0100 Subject: [PATCH 22/34] fixed incorrect key combination for locking screen on macOS --- keyboards/planck/keymaps/callum/keymap.c | 4 ++-- keyboards/planck/keymaps/callum/readme.md | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/keyboards/planck/keymaps/callum/keymap.c b/keyboards/planck/keymaps/callum/keymap.c index 572756a383..6c34311339 100644 --- a/keyboards/planck/keymaps/callum/keymap.c +++ b/keyboards/planck/keymaps/callum/keymap.c @@ -137,11 +137,11 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { case LOCK: if (record->event.pressed) { register_code(KC_RSFT); - register_code(KC_RGUI); + register_code(KC_RCTL); register_code(KC_POWER); } else { unregister_code(KC_POWER); - unregister_code(KC_RGUI); + unregister_code(KC_RCTL); unregister_code(KC_RSFT); } return false; diff --git a/keyboards/planck/keymaps/callum/readme.md b/keyboards/planck/keymaps/callum/readme.md index 2d38e6355a..b70de3f1e2 100644 --- a/keyboards/planck/keymaps/callum/readme.md +++ b/keyboards/planck/keymaps/callum/readme.md @@ -14,7 +14,7 @@ We have four layers. A `BASE` layer, in colemak; a `MOVE` layer, with an arrow c This is the default layer; in [colemak](https://colemak.com). `esc` and `del` are conspicuously absent but are especially easy to reach from either of the other main layers (see below). The `backspace` location is standard colemak. The `caps` key is still on the `BASE` layer but only because I don’t really use the bottom corners so there’s nothing else I would rather put there. Having `enter` on a thumb means I can still have `quote` immediately to the right of `O`, something that would have annoyed me endlessly otherwise. `minus` is in the upper right because I had an extra space and it’s probably my next most used key that didn’t yet have a home. -The `MOVE` and `SYMB` layers are reached by holding down the `move` and `symb` keys respectively. The `FUNC` layer is reached by holding down both the `move` and `symb` keys simultaneously, *or* by holding down the `fn` key. The intended use is that whenever both hands are on the keyboard, the former method is used, and the latter is only used when, for example, reaching over to the keyboard with one hand to access the media controls. +The `MOVE` and `SYMB` layers are reached by holding down the `move` and `symb` keys respectively. The `FUNC` layer is reached by holding down both the `move` and `symb` keys simultaneously, *or* by holding down the `fn` key. The intended use is that whenever both hands are on the keyboard, the former method is used, and the latter is only used when, for example, reaching over to the keyboard with one hand to access the media controls. ## The `MOVE` layer ![](http://i.imgur.com/KXRSuHT.png) @@ -37,7 +37,7 @@ Again none of the modifiers are overwritten so that shortcuts involving numbers ## The `FUNC` layer ![](http://i.imgur.com/1VKFBBU.png) -The only things of note here are that `bl+` and `bl-` are short for *backlight up* and *backlight down*, and in firmware are actually `KC_PAUS` and `KC_SLCK` respectively, since *macOS* interprets these as the backlight keys. And that `lock` is currently a macro hard coded to turn off the screen on *macOS*. (By activating the shortcut `shift-cmd-power`.) +The only things of note here are that `bl+` and `bl-` are short for *backlight up* and *backlight down*, and in firmware are actually `KC_PAUS` and `KC_SLCK` respectively, since *macOS* interprets these as the backlight keys. And that `lock` is currently a macro hard coded to turn off the screen on *macOS*. (By activating the shortcut `shift-ctrl-power`.) ## Other changes from the default -I have LEDs and sound disabled, simply because I have no need of them. \ No newline at end of file +I have LEDs and sound disabled, simply because I have no need of them. From 295ef0d9649b7482c380f38dd6157879df4af91d Mon Sep 17 00:00:00 2001 From: Major Koos Date: Fri, 2 Sep 2016 16:14:40 -0700 Subject: [PATCH 23/34] Add support for JD40 MKII PCB RGB Included. --- keyboards/jd40/Makefile | 74 +++++++++++ keyboards/jd40/config.h | 79 ++++++++++++ keyboards/jd40/jd40.c | 26 ++++ keyboards/jd40/jd40.h | 45 +++++++ keyboards/jd40/keymaps/default/keymap.c | 164 ++++++++++++++++++++++++ keyboards/jd40/readme.md | 17 +++ 6 files changed, 405 insertions(+) create mode 100644 keyboards/jd40/Makefile create mode 100644 keyboards/jd40/config.h create mode 100644 keyboards/jd40/jd40.c create mode 100644 keyboards/jd40/jd40.h create mode 100644 keyboards/jd40/keymaps/default/keymap.c create mode 100644 keyboards/jd40/readme.md diff --git a/keyboards/jd40/Makefile b/keyboards/jd40/Makefile new file mode 100644 index 0000000000..242748111c --- /dev/null +++ b/keyboards/jd40/Makefile @@ -0,0 +1,74 @@ + + +# 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 ?= yes # Enable RGB Underglow + +ifndef QUANTUM_DIR + include ../../Makefile +endif + diff --git a/keyboards/jd40/config.h b/keyboards/jd40/config.h new file mode 100644 index 0000000000..e2594f4b37 --- /dev/null +++ b/keyboards/jd40/config.h @@ -0,0 +1,79 @@ +/* +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 geekhack +#define PRODUCT jd40v2 +#define DESCRIPTION t.m.k. keyboard firmware for JD40 MKII + +/* key matrix size */ +#define MATRIX_ROWS 4 +#define MATRIX_COLS 12 + +/* + * 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, F1, F5, B4 } +#define MATRIX_COL_PINS { F4, D7, B5, B6, C6, C7, D4, D6, D5, D0, D1, D2 } +#define UNUSED_PINS + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* 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 */ +#define BACKLIGHT_LEVELS 3 + +/* 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 magic key command */ +#define IS_COMMAND() ( \ + keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ +) + +#define RGB_DI_PIN D3 +#define RGBLIGHT_TIMER +#define RGBLED_NUM 12 // Number of LEDs +#define RGBLIGHT_HUE_STEP 8 +#define RGBLIGHT_SAT_STEP 8 +#define RGBLIGHT_VAL_STEP 8 + +#endif diff --git a/keyboards/jd40/jd40.c b/keyboards/jd40/jd40.c new file mode 100644 index 0000000000..fa06356d97 --- /dev/null +++ b/keyboards/jd40/jd40.c @@ -0,0 +1,26 @@ +#include "jd40.h" + +void led_set_kb(uint8_t usb_led) { + // put your keyboard LED indicator (ex: Caps Lock LED) toggling code here + + + // if (usb_led & (1<event.pressed) { + register_code(KC_RSFT); + } else { + unregister_code(KC_RSFT); + } + break; + } + return MACRO_NONE; +}; + +void matrix_scan_user(void) { + +// Layer LED indicators +// ESC led on when in function layer, WASD cluster leds enabled when on arrow cluster + uint32_t layer = layer_state; + if (layer & (1<<1)) { + //gh60_wasd_leds_on(); + } else { + //gh60_wasd_leds_off(); + } + + if (layer & (1<<2)) { + //gh60_esc_led_on(); + } else { + //gh60_esc_led_off(); + } +}; + +#define MODS_CTRL_MASK (MOD_BIT(KC_LSHIFT)|MOD_BIT(KC_RSHIFT)) + +void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { + switch (id) { + case RGBLED_TOGGLE: + //led operations + 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; + static uint8_t shift_esc_shift_mask; + // Shift + ESC = ~ + 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/jd40/readme.md b/keyboards/jd40/readme.md new file mode 100644 index 0000000000..7daa0980eb --- /dev/null +++ b/keyboards/jd40/readme.md @@ -0,0 +1,17 @@ +## jd40 mkii keyboard firmware + + Pins: + MATRIX_ROW_PINS { F0, F1, F5, B4 } + MATRIX_COL_PINS { F4, D7, B5, B6, C6, C7, D4, D6, D5, D0, D1, D2 } + RGB_DI_PIN D3 + +====================== + +## Quantum MK Firmware + +For the full Quantum feature list, see [the parent readme.md](/readme.md). + +## Building + +Download or clone the whole firmware and navigate to the keyboards/jd40 folder. +Once your dev env is setup, you'll be able to type `make` to generate your .hex - you can then use the Amtel Flip to program your .hex file. From 11224a00fe79bcba8ed596847000b7ad8118b95f Mon Sep 17 00:00:00 2001 From: Major Koos Date: Fri, 2 Sep 2016 16:42:40 -0700 Subject: [PATCH 24/34] Add rules.mk file --- keyboards/jd40/rules.mk | 69 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 keyboards/jd40/rules.mk diff --git a/keyboards/jd40/rules.mk b/keyboards/jd40/rules.mk new file mode 100644 index 0000000000..2f18fdf10d --- /dev/null +++ b/keyboards/jd40/rules.mk @@ -0,0 +1,69 @@ + + +# 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 ?= yes # Enable RGB Underglow \ No newline at end of file From 7fd5b6581a660b2d1d6e1605533a6b6f8bda3472 Mon Sep 17 00:00:00 2001 From: IBNobody Date: Sat, 3 Sep 2016 20:29:29 -0500 Subject: [PATCH 25/34] Updated readme to have better backlight breathing info. --- readme.md | 264 +++++++++++++++++++++--------------------------------- 1 file changed, 104 insertions(+), 160 deletions(-) diff --git a/readme.md b/readme.md index 70725bf81a..371470bc36 100644 --- a/readme.md +++ b/readme.md @@ -54,11 +54,11 @@ Here are the steps 1. Install the Windows 10 subsystem for Linux, following [these instructions](http://www.howtogeek.com/249966/how-to-install-and-use-the-linux-bash-shell-on-windows-10/). 2. If you have previously cloned the repository using the normal Git bash, you will need to clean up the line endings. If you have cloned it after 20th of August 2016, you are likely fine. To clean up the line endings do the following 1. Make sure that you have no changes you haven't committed by running `git status`, if you do commit them first - 2. From within the Git bash run `git rm --cached -r .` + 2. From within the Git bash run �git rm --cached -r .` 3. Followed by `git reset --hard` 3. Start the "Bash On Ubuntu On Windows" from the start menu -4. With the bash open, navigate to your Git checkout. The harddisk can be accessed from `/mnt` for example `/mnt/c` for the `c:\` drive. -5. Run `sudo util/install_dependencies.sh`. +4. With the bash open, navigate to your git checkout. The harddisk can be accessed from `/mnt` for example `/mnt/c` for the `c:\` drive. +5. Run `sudo util/install_dependencies.sh`. 6. After a while the installation will finish, and you are good to go **Note** From time to time, the dependencies might change, so just run `install_dependencies.sh` again if things are not working. @@ -69,12 +69,11 @@ Here are the steps ### Windows (Vista and later) 1. If you have ever installed WinAVR, uninstall it. 2. Install [MHV AVR Tools](https://infernoembedded.com/sites/default/files/project/MHV_AVR_Tools_20131101.exe). Disable smatch, but **be sure to leave the option to add the tools to the PATH checked**. -3. If you are going to flash Infinity based keyboards you will need to install dfu-util, refer to the instructions by [Input Club](https://github.com/kiibohd/controller/wiki/Loading-DFU-Firmware). -4. Install [MinGW](https://sourceforge.net/projects/mingw/files/Installer/mingw-get-setup.exe/download). During installation, uncheck the option to install a graphical user interface. **DO NOT change the default installation folder.** The scripts depend on the default location. -5. Clone this repository. [This link will download it as a zip file, which you'll need to extract.](https://github.com/jackhumbert/qmk_firmware/archive/master.zip) Open the extracted folder in Windows Explorer. -6. Double-click on the 1-setup-path-win batch script to run it. You'll need to accept a User Account Control prompt. Press the spacebar to dismiss the success message in the command prompt that pops up. -7. Right-click on the 2-setup-environment-win batch script, select "Run as administrator", and accept the User Account Control prompt. This part may take a couple of minutes, and you'll need to approve a driver installation, but once it finishes, your environment is complete! -8. Future build commands should be run from the MHV AVR Shell, which sets up an environment compatible with colorful build output. The standard Command Prompt will also work, but add `COLOR=false` to the end of all make commands when using it. +3. Install [MinGW](https://sourceforge.net/projects/mingw/files/Installer/mingw-get-setup.exe/download). During installation, uncheck the option to install a graphical user interface. **DO NOT change the default installation folder.** The scripts depend on the default location. +4. Clone this repository. [This link will download it as a zip file, which you'll need to extract.](https://github.com/jackhumbert/qmk_firmware/archive/master.zip) Open the extracted folder in Windows Explorer. +5. Double-click on the 1-setup-path-win batch script to run it. You'll need to accept a User Account Control prompt. Press the spacebar to dismiss the success message in the command prompt that pops up. +6. Right-click on the 2-setup-environment-win batch script, select "Run as administrator", and accept the User Account Control prompt. This part may take a couple of minutes, and you'll need to approve a driver installation, but once it finishes, your environment is complete! +7. Future build commands should be run from the MHV AVR Shell, which sets up an environment compatible with colorful build output. The standard Command Prompt will also work, but add `COLOR=false` to the end of all make commands when using it. ### Mac If you're using [homebrew,](http://brew.sh/) you can use the following commands: @@ -91,13 +90,9 @@ You can also try these instructions: 2. Install the Command Line Tools from `Xcode->Preferences->Downloads`. 3. Install [DFU-Programmer][dfu-prog]. -If you are going to flash Infinity based keyboards you will also need dfu-util - - brew install dfu-util - ### Linux -To ensure you are always up to date, you can just run `sudo utils/install_dependencies.sh`. That should always install all the dependencies needed. +To ensure you are always up to date, you can just run `sudo utils/install_dependencies.sh`. That should always install all the dependencies needed. You can also install things manually, but this documentation might not be always up to date with all requirements. @@ -158,107 +153,47 @@ In every keymap folder, the following files are recommended: * `config.h` - the options to configure your keymap * `keymap.c` - all of your keymap code, required * `Makefile` - the features of QMK that are enabled, required to run `make` in your keymap folder -* `readme.md` - a description of your keymap, how others might use it, and explanations of features +* `readme.md` - a description of your keymap, how others might use it, and explanations of features ## The `make` command -The `make` command is how you compile the firmware into a .hex file, which can be loaded by a dfu programmer (like dfu-progammer via `make dfu`) or the [Teensy loader](https://www.pjrc.com/teensy/loader.html) (only used with Teensys). +The `make` command is how you compile the firmware into a .hex file, which can be loaded by a dfu programmer (like dfu-progammer via `make dfu`) or the [Teensy loader](https://www.pjrc.com/teensy/loader.html) (only used with Teensys). You can run `make` from the root (`/`), your keyboard folder (`/keyboards//`), or your keymap folder (`/keyboards//keymaps//`) if you have a `Makefile` there (see the example [here](/doc/keymap_makefile_example.mk)). -**NOTE:** To abort a make command press `Ctrl-c` +By default, this will generate a `_.hex` file in whichever folder you run `make` from. These files are ignored by git, so don't worry about deleting them when committing/creating pull requests. -The following instruction refers to these folders. +Below are some definitions that will be useful: -* The `root` (`/`) folder is the qmk_firmware folder, in which are `doc`, `keyboard`, `quantum`, etc. -* The `keyboard` folder is any keyboard project's folder, like `/keyboards/planck`. -* The `keymap` folder is any keymap's folder, like `/keyboards/planck/keymaps/default`. -* The `subproject` folder is the subproject folder of a keyboard, like `/keyboards/ergodox/ez` +* The "root" (`/`) folder is the qmk_firmware folder, in which are `doc`, `keyboard`, `quantum`, etc. +* The "keyboard" folder is any keyboard project's folder, like `/keyboards/planck`. +* The "keymap" folder is any keymap's folder, like `/keyboards/planck/keymaps/default`. -### Simple instructions for building and uploading a keyboard +Below is a list of the useful `make` commands in QMK: -**Most keyboards have more specific instructions in the keyboard specific readme.md file, so please check that first** - -If the `keymap` folder contains a file name `Makefile` - -1. Change the directory to the `keymap` folder -2. Run `make -` - -Otherwise, if there's no `Makefile` in the `keymap` folder - -1. Enter the `keyboard` folder -2. Run `make --` - -In the above commands, replace: - -* `` with the name of your keymap -* `` with the name of the subproject (revision or sub-model of your keyboard). For example, for Ergodox it can be `ez` or `infinity`, and for Planck `rev3` or `rev4`. - * If the keyboard doesn't have a subproject, or if you are happy with the default (defined in `rules.mk` file of the `keyboard` folder), you can leave it out. But remember to also remove the dash (`-`) from the command. -* `` The programmer to use. Most keyboards use `dfu`, but some use `teensy`. Infinity keyboards use `dfu-util`. Check the readme file in the keyboard folder to find out which programmer to use. - * If you don't add `----`, where: - -* `` is the name of the keyboard, for example `planck` - * Use `allkb` to compile all keyboards -* `` is the name of the subproject (revision or sub-model of the keyboard). For example, for Ergodox it can be `ez` or `infinity`, and for Planck `rev3` or `rev4`. - * If the keyboard doesn't have any subprojects, it can be left out - * To compile the default subproject, you can leave it out, or specify `defaultsp` - * Use `allsp` to compile all subprojects -* `` is the name of the keymap, for example `algernon` - * Use `allkm` to compile all keymaps -* `` will be explained in more detail below. - -**Note:** When you leave some parts of the command out, you should also remove the dash (`-`). - -As mentioned above, there are some shortcuts, when you are in a: - -* `keyboard` folder, the command will automatically fill the `` part. So you only need to type `--` -* `subproject` folder, it will fill in both `` and `` -* `keymap` folder, then `` and `` will be filled in. If you need to specify the `` use the following syntax `-` - * Note in order to support this shortcut, the keymap needs its own Makefile (see the example [here](/doc/keymap_makefile_example.mk)) -* `keymap` folder of a `subproject`, then everything except the `` will be filled in - -The `` means the following -* If no target is given, then it's the same as `all` below -* `all` compiles the keyboard and generates a `_.hex` file in whichever folder you run `make` from. These files are ignored by git, so don't worry about deleting them when committing/creating pull requests. -* `dfu`, `teensy` or `dfu-util`, compile and upload the firmware to the keyboard. If the compilation fails, then nothing will be uploaded. The programmer to use depends on the keyboard. For most keyboards it's `dfu`, but for Infinity keyboards you should use `dfu-util`, and `teensy` for standard Teensys. To find out which command you should use for your keyboard, check the keyboard specific readme. **Note** that some operating systems needs root access for these commands to work, so in that case you need to run for example `sudo make dfu`. -* `clean`, cleans the build output folders to make sure that everything is built from scratch. Run this before normal compilation if you have some unexplainable problems. - -Some other targets are supported but, but not important enough to be documented here. Check the source code of the make files for more information. - -You can also add extra options at the end of the make command line, after the target +* `make` - builds your keyboard and keymap depending on which folder you're in. This defaults to the "default" layout (unless in a keymap folder), and Planck keyboard in the root folder + * `make keyboard=` - specifies the keyboard (only to be used in root) + * `make keymap=` - specifies the keymap (only to be used in root and keyboard folder - not needed when in keymap folder) +* `make clean` - cleans the `.build` folder, ensuring that everything is re-built +* `make dfu` - (requires dfu-programmer) builds and flashes the keymap to your keyboard once placed in reset/dfu mode (button or press `KC_RESET`). This does not work for Teensy-based keyboards like the ErgoDox EZ. + * `keyboard=` and `keymap=` are compatible with this +* `make all-keyboards` - builds all keymaps for all keyboards and outputs status of each (use in root) +* `make all-keyboards-default` - builds all default keymaps for all keyboards and outputs status of each (use in root) +* `make all-keymaps [keyboard=]` - builds all of the keymaps for whatever keyboard folder you're in, or specified by `` +* `make all-keyboards-*`, `make all-keyboards-default-*` and `make all-keymaps-* [keyboard=]` - like the normal "make-all-*" commands, but the last string aftter the `-` (for example clean) is passed to the keyboard make command. +Other, less useful functionality: * `make COLOR=false` - turns off color output * `make SILENT=true` - turns off output besides errors/warnings -* `make VERBOSE=true` - outputs all of the gcc stuff (not interesting, unless you need to debug) - -The make command itself also has some additional options, type `make --help` for more information. The most useful is probably `-jx`, which specifies that you want to compile using more than one CPU, the `x` represents the number of CPUs that you want to use. Setting that can greatly reduce the compile times, especially if you are compiling many keyboards/keymaps. I usually set it to one less than the number of CPUs that I have, so that I have some left for doing other things while it's compiling. Note that not all operating systems and make versions supports that option. - -Here are some examples commands - -* `make allkb-allsp-allkm` builds everything (all keyboards, all subprojects, all keymaps). Running just `make` from the `root` will also run this. -* `make` from within a `keyboard` directory, is the same as `make keyboard-allsp-allkm`, which compiles all subprojects and keymaps of the keyboard. **NOTE** that this behaviour has changed. Previously it compiled just the default keymap. -* `make ergodox-infinity-algernon-clean` will clean the build output of the Ergodox Infinity keyboard. This example uses the full syntax and can be run from any folder with a `Makefile` -* `make dfu COLOR=false` from within a keymap folder, builds and uploads the keymap, but without color output. +* `make VERBOSE=true` - outputs all of the avr-gcc stuff (not interesting) ## The `Makefile` -There are 5 different `make` and `Makefile` locations: +There are 3 different `make` and `Makefile` locations: * root (`/`) * keyboard (`/keyboards//`) * keymap (`/keyboards//keymaps//`) -* subproject (`/keyboards//`) -* subproject keymap (`/keyboards///keymaps/`) -The root contains the code used to automatically figure out which keymap or keymaps to compile based on your current directory and commandline arguments. It's considered stable, and shouldn't be modified. The keyboard one will contain the MCU set-up and default settings for your keyboard, and shouldn't be modified unless you are the producer of that keyboard. The keymap Makefile can be modified by users, and is optional. It is included automatically if it exists. You can see an example [here](/doc/keymap_makefile_example.mk) - the last few lines are the most important. The settings you set here will override any defaults set in the keyboard Makefile. **The file is required if you want to run `make` in the keymap folder.** - -For keyboards and subprojects, the make files are split in two parts `Makefile` and `rules.mk`. All settings can be found in the `rules.mk` file, while the `Makefile` is just there for support and including the root `Makefile`. Keymaps contain just one `Makefile` for simplicity. +The root contains the code used to automatically figure out which keymap or keymaps to compile based on your current directory and commandline arguments. It's considered stable, and shouldn't be modified. The keyboard one will contain the MCU set-up and default settings for your keyboard, and shouldn't be modified unless you are the producer of that keyboard. The keymap Makefile can be modified by users, and is optional. It is included automatically if it exists. You can see an example [here](/doc/keymap_makefile_example.mk) - the last few lines are the most important. The settings you set here will override any defaults set in the keyboard Makefile. **It is required if you want to run `make` in the keymap folder.** ### Makefile options @@ -433,7 +368,7 @@ We've added shortcuts to make common modifier/tap (mod-tap) mappings more compac Steve Losh [described](http://stevelosh.com/blog/2012/10/a-modern-space-cadet/) the Space Cadet Shift quite well. Essentially, you hit the left Shift on its own, and you get an opening parenthesis; hit the right Shift on its own, and you get the closing one. When hit with other keys, the Shift key keeps working as it always does. Yes, it's as cool as it sounds. -To use it, use `KC_LSPO` (Left Shift, Parens Open) for your left Shift on your keymap, and `KC_RSPC` (Right Shift, Parens Close) for your right Shift. +To use it, use `KC_LSPO` (Left Shift, Parens Open) for your left Shift on your keymap, and `KC_RSPC` (Right Shift, Parens Close) for your right Shift. It's defaulted to work on US keyboards, but if your layout uses different keys for parenthesis, you can define those in your `config.h` like this: @@ -530,11 +465,11 @@ For the sake of flexibility, tap-dance actions can be either a pair of keycodes, ### Examples -Here's a simple example for a single definition: +Here's a simple example for a single definition: 1. In your `makefile`, add `TAP_DANCE_ENABLE = yes` 2. In your `config.h` (which you can copy from `qmk_firmware/keyboards/planck/config.h` to your keymap directory), add `#define TAPPING_TERM 200` -3. In your `keymap.c` file, define the variables and definitions, then add to your keymap: +3. In your `keymap.c` file, define the variables and definitions, then add to your keymap: ```c //Tap Dance Declarations @@ -550,10 +485,10 @@ qk_tap_dance_action_t tap_dance_actions[] = { }; //In Layer declaration, add tap dance item in place of a key code -TD(TD_ESC_CAPS) +TD(TD_ESC_CAPS) ``` -Here's a more complex example involving custom actions: +Here's a more complex example involving custom actions: ```c enum { @@ -828,11 +763,11 @@ To enable them, first add a new element to the `planck_keycodes` enum -- `DYNAMI Afterwards create a new layer called `_DYN`: #define _DYN 6 /* almost any other free number should be ok */ - + Below these two modifications include the `dynamic_macro.h` header: #include "dynamic_macro.h"` - + Then define the `_DYN` layer with the following keys: `DYN_REC_START1`, `DYN_MACRO_PLAY1`,`DYN_REC_START2` and `DYN_MACRO_PLAY2`. It may also contain other keys, it doesn't matter apart from the fact that you won't be able to record these keys in the dynamic macros. [_DYN]= { @@ -841,7 +776,7 @@ Then define the `_DYN` layer with the following keys: `DYN_REC_START1`, `DYN_MAC {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} }, - + Add the following code to the very beginning of your `process_record_user()` function: if (!process_record_dynamic_macro(keycode, record)) { @@ -1030,6 +965,66 @@ In the default script of AutoHotkey you can define custom hotkeys. The hotkeys above are for the combination CtrlAltGui and CtrlAltGuiShift plus the letter a. AutoHotkey inserts the Text right of `Send, ` when this combination is pressed. +## Backlight Breathing + +In order to enable backlight breathing, the following line must be added to your config.h file. + + #define BACKLIGHT_BREATHING + +The following function calls are used to control the breathing effect. + +* ```breathing_enable()``` - Enable the free-running breathing effect. +* ```breathing_disable()``` - Disable the free-running breathing effect immediately. +* ```breathing_self_disable()``` - Disable the free-running breathing effect after the current effect ends. +* ```breathing_toggle()``` - Toggle the free-running breathing effect. +* ```breathing_defaults()``` - Reset the speed and brightness settings of the breathing effect. + +The following function calls are used to control the maximum brightness of the breathing effect. + +* ```breathing_intensity_set(value)``` - Set the brightness of the breathing effect when it is at its max value. +* ```breathing_intensity_default()``` - Reset the brightness of the breathing effect to the default value based on the current backlight intensity. + +The following function calls are used to control the cycling speed of the breathing effect. + +* ```breathing_speed_set(value)``` - Set the speed of the breathing effect - how fast it cycles. +* ```breathing_speed_inc(value)``` - Increase the speed of the breathing effect by a fixed value. +* ```breathing_speed_dec(value)``` - Decrease the speed of the breathing effect by a fixed value. +* ```breathing_speed_default()``` - Reset the speed of the breathing effect to the default value. + +The following example shows how to enable the backlight breathing effect when the FUNCTION layer macro button is pressed: + + case MACRO_FUNCTION: + if (record->event.pressed) + { + breathing_speed_set(3); + breathing_enable(); + layer_on(LAYER_FUNCTION); + } + else + { + breathing_speed_set(1); + breathing_self_disable(); + layer_off(LAYER_FUNCTION); + } + break; + +The following example shows how to pulse the backlight on-off-on when the RAISED layer macro button is pressed: + + case MACRO_RAISED: + if (record->event.pressed) + { + layer_on(LAYER_RAISED); + breathing_speed_set(2); + breathing_pulse(); + update_tri_layer(LAYER_LOWER, LAYER_RAISED, LAYER_ADJUST); + } + else + { + layer_off(LAYER_RAISED); + update_tri_layer(LAYER_LOWER, LAYER_RAISED, LAYER_ADJUST); + } + break; + ## RGB Under Glow Mod ![Planck with RGB Underglow](https://raw.githubusercontent.com/jackhumbert/qmk_firmware/master/keyboards/planck/keymaps/yang/planck-with-rgb-underglow.jpg) @@ -1043,7 +1038,7 @@ For this mod, you need an unused pin wiring to DI of WS2812 strip. After wiring In order to use the underglow timer functions, you need to have `#define RGBLIGHT_TIMER` in your `config.h`, and have audio disabled (`AUDIO_ENABLE = no` in your Makefile). Please add the following options into your config.h, and set them up according your hardware configuration. These settings are for the `F4` pin by default: - + #define RGB_DI_PIN F4 // The pin your RGB strip is wired to #define RGBLIGHT_TIMER // Require for fancier stuff (not compatible with audio) #define RGBLED_NUM 14 // Number of LEDs @@ -1090,15 +1085,15 @@ If your keyboard is running an Atmega chip (atmega32u4 and others), it's pretty The `USB Device descriptor parameter` block contains parameters are used to uniquely identify your keyboard, but they don't really matter to the machine. -Your `MATRIX_ROWS` and `MATRIX_COLS` are the numbers of rows and cols in your keyboard matrix - this may be different than the number of actual rows and columns on your keyboard. There are some tricks you can pull to increase the number of keys in a given matrix, but most keyboards are pretty straight-forward. +Your `MATRIX_ROWS` and `MATRIX_COLS` are the numbers of rows and cols in your keyboard matrix - this may be different than the number of actual rows and columns on your keyboard. There are some tricks you can pull to increase the number of keys in a given matrix, but most keyboards are pretty straight-forward. The `MATRIX_ROW_PINS` and `MATRIX_COL_PINS` are the pins your MCU uses on each row/column. Your schematic (if you have one) will have this information on it, and the values will vary depending on your setup. This is one of the most important things to double-check in getting your keyboard setup correctly. For the `DIODE_DIRECTION`, most hand-wiring guides will instruct you to wire the diodes in the `COL2ROW` position, but it's possible that they are in the other - people coming from EasyAVR often use `ROW2COL`. Nothing will function if this is incorrect. -`BACKLIGHT_PIN` is the pin that your PWM-controlled backlight (if one exists) is hooked-up to. Currently only B5, B6, and B7 are supported. +`BACKLIGHT_PIN` is the pin that your PWM-controlled backlight (if one exists) is hooked-up to. Currently only B5, B6, and B7 are supported. -`BACKLIGHT_BREATHING` is a fancier backlight feature, and uses one of the timers. +`BACKLIGHT_BREATHING` is a fancier backlight feature that adds breathing/pulsing/fading effects to the backlight. It uses the same timer as the normal backlight. These breathing effects must be called by code in your keymap. `BACKLIGHT_LEVELS` is how many levels exist for your backlight - max is 15, and they are computed automatically from this number. @@ -1141,55 +1136,4 @@ Here is where you can (optionally) define your `KEYMAP` function to remap your m } ``` -Each of the `kxx` variables needs to be unique, and usually follows the format `k`. You can place `KC_NO` where your dead keys are in your matrix. - -# Unit Testing - -If you are new to unit testing, then you can find many good resources on internet. However most of it is scattered around in small pieces here and there, and there's also many different opinions, so I won't give any recommendations. - -Instead I recommend these two books, explaining two different styles of Unit Testing in detail. - -* "Test Driven Development: By Example: Kent Beck" -* "Growing Object-Oriented Software, Guided By Tests: Steve Freeman, Nat Pryce" - -If you prefer videos there are Uncle Bob's [Clean Coders Videos](https://cleancoders.com/), which unfortunately cost quite a bit, especially if you want to watch many of them. But James Shore has a free [Let's Play](http://www.jamesshore.com/Blog/Lets-Play) video series. - -## Google Test and Google Mock -It's possible to Unit Test your code using [Google Test](https://github.com/google/googletest). The Google Test framework also includes another component for writing testing mocks and stubs, called "Google Mock". For information how to write the actual tests, please refer to the documentation on that site. - -## Use of C++ - -Note that Google Test and therefore any test has to be written in C++, even if the rest of the QMK codebases is written in C. This should hopefully not be a problem even if you don't know any C++, since there's quite clear documentation and examples of the required C++ features, and you can write the rest of the test code almost as you would write normal C. Note that some compiler errors which you might get can look quite scary, but just read carefully what it says, and you should be ok. - -One thing to remember, is that you have to append `extern "C"` around all of your C file includes. - -## Adding tests for new or existing features - -If you want to unit test some feature, then take a look at the existing serial_link tests, in the `quantum/serial_link/tests folder`, and follow the steps below to create a similar structure. - -1. If it doesn't already exist, add a test subfolder to the folder containing the feature. -2. Create a `testlist.mk` and a `rules.mk` file in that folder. -3. Include those files from the root folder `testlist.mk`and `build_test.mk` respectively. -4. Add a new name for your testgroup to the `testlist.mk` file. Each group defined there will be a separate executable. And that's how you can support mocking out different parts. Note that it's worth adding some common prefix, just like it's done for the serial_link tests. The reason for that is that the make command allows substring filtering, so this way you can easily run a subset of the tests. -5. Define the source files and required options in the `rules.mk` file. - * `_SRC` for source files - * `_DEFS` for additional defines - * `_INC` for additional include folders -6. Write the tests in a new cpp file inside the test folder you created. That file has to be one of the files included from the `rules.mk` file. - -Note how there's several different tests, each mocking out a separate part. Also note that each of them only compiles the very minimum that's needed for the tests. It's recommend that you try to do the same. For a relevant video check out [Matt Hargett "Advanced Unit Testing in C & C++](https://www.youtube.com/watch?v=Wmy6g-aVgZI) - -## Running the tests - -To run all the tests in the codebase, type `make test`. You can also run test matching a substring by typing `make test-matchingsubstring` Note that the tests are always compiled with the native compiler of your platform, so they are also run like any other program on your computer. - -## Debugging the tests - -If there are problems with the tests, you can find the executable in the `./build/test` folder. You should be able to run those with GDB or a similar debugger. - -## Full Integration tests - -It's not yet possible to do a full integration test, where you would compile the whole firmware and define a keymap that you are going to test. However there are plans for doing that, because writing tests that way would probably be easier, at least for people that are not used to unit testing. - -In that model you would emulate the input, and expect a certain output from the emulated keyboard. - +Each of the `kxx` variables needs to be unique, and usually follows the format `k`. You can place `KC_NO` where your dead keys are in your matrix. \ No newline at end of file From f065652812e6ac783db50e58a42fbb01ea817fbc Mon Sep 17 00:00:00 2001 From: IBNobody Date: Sat, 3 Sep 2016 20:33:34 -0500 Subject: [PATCH 26/34] Updated doc to contain breathing information. --- readme.md | 173 +++++++++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 144 insertions(+), 29 deletions(-) diff --git a/readme.md b/readme.md index 371470bc36..903c2b1e8c 100644 --- a/readme.md +++ b/readme.md @@ -54,10 +54,10 @@ Here are the steps 1. Install the Windows 10 subsystem for Linux, following [these instructions](http://www.howtogeek.com/249966/how-to-install-and-use-the-linux-bash-shell-on-windows-10/). 2. If you have previously cloned the repository using the normal Git bash, you will need to clean up the line endings. If you have cloned it after 20th of August 2016, you are likely fine. To clean up the line endings do the following 1. Make sure that you have no changes you haven't committed by running `git status`, if you do commit them first - 2. From within the Git bash run �git rm --cached -r .` + 2. From within the Git bash run `git rm --cached -r .` 3. Followed by `git reset --hard` 3. Start the "Bash On Ubuntu On Windows" from the start menu -4. With the bash open, navigate to your git checkout. The harddisk can be accessed from `/mnt` for example `/mnt/c` for the `c:\` drive. +4. With the bash open, navigate to your Git checkout. The harddisk can be accessed from `/mnt` for example `/mnt/c` for the `c:\` drive. 5. Run `sudo util/install_dependencies.sh`. 6. After a while the installation will finish, and you are good to go @@ -69,11 +69,12 @@ Here are the steps ### Windows (Vista and later) 1. If you have ever installed WinAVR, uninstall it. 2. Install [MHV AVR Tools](https://infernoembedded.com/sites/default/files/project/MHV_AVR_Tools_20131101.exe). Disable smatch, but **be sure to leave the option to add the tools to the PATH checked**. -3. Install [MinGW](https://sourceforge.net/projects/mingw/files/Installer/mingw-get-setup.exe/download). During installation, uncheck the option to install a graphical user interface. **DO NOT change the default installation folder.** The scripts depend on the default location. -4. Clone this repository. [This link will download it as a zip file, which you'll need to extract.](https://github.com/jackhumbert/qmk_firmware/archive/master.zip) Open the extracted folder in Windows Explorer. -5. Double-click on the 1-setup-path-win batch script to run it. You'll need to accept a User Account Control prompt. Press the spacebar to dismiss the success message in the command prompt that pops up. -6. Right-click on the 2-setup-environment-win batch script, select "Run as administrator", and accept the User Account Control prompt. This part may take a couple of minutes, and you'll need to approve a driver installation, but once it finishes, your environment is complete! -7. Future build commands should be run from the MHV AVR Shell, which sets up an environment compatible with colorful build output. The standard Command Prompt will also work, but add `COLOR=false` to the end of all make commands when using it. +3. If you are going to flash Infinity based keyboards you will need to install dfu-util, refer to the instructions by [Input Club](https://github.com/kiibohd/controller/wiki/Loading-DFU-Firmware). +4. Install [MinGW](https://sourceforge.net/projects/mingw/files/Installer/mingw-get-setup.exe/download). During installation, uncheck the option to install a graphical user interface. **DO NOT change the default installation folder.** The scripts depend on the default location. +5. Clone this repository. [This link will download it as a zip file, which you'll need to extract.](https://github.com/jackhumbert/qmk_firmware/archive/master.zip) Open the extracted folder in Windows Explorer. +6. Double-click on the 1-setup-path-win batch script to run it. You'll need to accept a User Account Control prompt. Press the spacebar to dismiss the success message in the command prompt that pops up. +7. Right-click on the 2-setup-environment-win batch script, select "Run as administrator", and accept the User Account Control prompt. This part may take a couple of minutes, and you'll need to approve a driver installation, but once it finishes, your environment is complete! +8. Future build commands should be run from the MHV AVR Shell, which sets up an environment compatible with colorful build output. The standard Command Prompt will also work, but add `COLOR=false` to the end of all make commands when using it. ### Mac If you're using [homebrew,](http://brew.sh/) you can use the following commands: @@ -90,6 +91,10 @@ You can also try these instructions: 2. Install the Command Line Tools from `Xcode->Preferences->Downloads`. 3. Install [DFU-Programmer][dfu-prog]. +If you are going to flash Infinity based keyboards you will also need dfu-util + + brew install dfu-util + ### Linux To ensure you are always up to date, you can just run `sudo utils/install_dependencies.sh`. That should always install all the dependencies needed. @@ -157,43 +162,103 @@ In every keymap folder, the following files are recommended: ## The `make` command -The `make` command is how you compile the firmware into a .hex file, which can be loaded by a dfu programmer (like dfu-progammer via `make dfu`) or the [Teensy loader](https://www.pjrc.com/teensy/loader.html) (only used with Teensys). You can run `make` from the root (`/`), your keyboard folder (`/keyboards//`), or your keymap folder (`/keyboards//keymaps//`) if you have a `Makefile` there (see the example [here](/doc/keymap_makefile_example.mk)). +The `make` command is how you compile the firmware into a .hex file, which can be loaded by a dfu programmer (like dfu-progammer via `make dfu`) or the [Teensy loader](https://www.pjrc.com/teensy/loader.html) (only used with Teensys). -By default, this will generate a `_.hex` file in whichever folder you run `make` from. These files are ignored by git, so don't worry about deleting them when committing/creating pull requests. +**NOTE:** To abort a make command press `Ctrl-c` -Below are some definitions that will be useful: +The following instruction refers to these folders. -* The "root" (`/`) folder is the qmk_firmware folder, in which are `doc`, `keyboard`, `quantum`, etc. -* The "keyboard" folder is any keyboard project's folder, like `/keyboards/planck`. -* The "keymap" folder is any keymap's folder, like `/keyboards/planck/keymaps/default`. +* The `root` (`/`) folder is the qmk_firmware folder, in which are `doc`, `keyboard`, `quantum`, etc. +* The `keyboard` folder is any keyboard project's folder, like `/keyboards/planck`. +* The `keymap` folder is any keymap's folder, like `/keyboards/planck/keymaps/default`. +* The `subproject` folder is the subproject folder of a keyboard, like `/keyboards/ergodox/ez` -Below is a list of the useful `make` commands in QMK: +### Simple instructions for building and uploading a keyboard -* `make` - builds your keyboard and keymap depending on which folder you're in. This defaults to the "default" layout (unless in a keymap folder), and Planck keyboard in the root folder - * `make keyboard=` - specifies the keyboard (only to be used in root) - * `make keymap=` - specifies the keymap (only to be used in root and keyboard folder - not needed when in keymap folder) -* `make clean` - cleans the `.build` folder, ensuring that everything is re-built -* `make dfu` - (requires dfu-programmer) builds and flashes the keymap to your keyboard once placed in reset/dfu mode (button or press `KC_RESET`). This does not work for Teensy-based keyboards like the ErgoDox EZ. - * `keyboard=` and `keymap=` are compatible with this -* `make all-keyboards` - builds all keymaps for all keyboards and outputs status of each (use in root) -* `make all-keyboards-default` - builds all default keymaps for all keyboards and outputs status of each (use in root) -* `make all-keymaps [keyboard=]` - builds all of the keymaps for whatever keyboard folder you're in, or specified by `` -* `make all-keyboards-*`, `make all-keyboards-default-*` and `make all-keymaps-* [keyboard=]` - like the normal "make-all-*" commands, but the last string aftter the `-` (for example clean) is passed to the keyboard make command. -Other, less useful functionality: +**Most keyboards have more specific instructions in the keyboard specific readme.md file, so please check that first** + +If the `keymap` folder contains a file name `Makefile` + +1. Change the directory to the `keymap` folder +2. Run `make -` + +Otherwise, if there's no `Makefile` in the `keymap` folder + +1. Enter the `keyboard` folder +2. Run `make --` + +In the above commands, replace: + +* `` with the name of your keymap +* `` with the name of the subproject (revision or sub-model of your keyboard). For example, for Ergodox it can be `ez` or `infinity`, and for Planck `rev3` or `rev4`. + * If the keyboard doesn't have a subproject, or if you are happy with the default (defined in `rules.mk` file of the `keyboard` folder), you can leave it out. But remember to also remove the dash (`-`) from the command. +* `` The programmer to use. Most keyboards use `dfu`, but some use `teensy`. Infinity keyboards use `dfu-util`. Check the readme file in the keyboard folder to find out which programmer to use. + * If you don't add `----`, where: + +* `` is the name of the keyboard, for example `planck` + * Use `allkb` to compile all keyboards +* `` is the name of the subproject (revision or sub-model of the keyboard). For example, for Ergodox it can be `ez` or `infinity`, and for Planck `rev3` or `rev4`. + * If the keyboard doesn't have any subprojects, it can be left out + * To compile the default subproject, you can leave it out, or specify `defaultsp` + * Use `allsp` to compile all subprojects +* `` is the name of the keymap, for example `algernon` + * Use `allkm` to compile all keymaps +* `` will be explained in more detail below. + +**Note:** When you leave some parts of the command out, you should also remove the dash (`-`). + +As mentioned above, there are some shortcuts, when you are in a: + +* `keyboard` folder, the command will automatically fill the `` part. So you only need to type `--` +* `subproject` folder, it will fill in both `` and `` +* `keymap` folder, then `` and `` will be filled in. If you need to specify the `` use the following syntax `-` + * Note in order to support this shortcut, the keymap needs its own Makefile (see the example [here](/doc/keymap_makefile_example.mk)) +* `keymap` folder of a `subproject`, then everything except the `` will be filled in + +The `` means the following +* If no target is given, then it's the same as `all` below +* `all` compiles the keyboard and generates a `_.hex` file in whichever folder you run `make` from. These files are ignored by git, so don't worry about deleting them when committing/creating pull requests. +* `dfu`, `teensy` or `dfu-util`, compile and upload the firmware to the keyboard. If the compilation fails, then nothing will be uploaded. The programmer to use depends on the keyboard. For most keyboards it's `dfu`, but for Infinity keyboards you should use `dfu-util`, and `teensy` for standard Teensys. To find out which command you should use for your keyboard, check the keyboard specific readme. **Note** that some operating systems needs root access for these commands to work, so in that case you need to run for example `sudo make dfu`. +* `clean`, cleans the build output folders to make sure that everything is built from scratch. Run this before normal compilation if you have some unexplainable problems. + +Some other targets are supported but, but not important enough to be documented here. Check the source code of the make files for more information. + +You can also add extra options at the end of the make command line, after the target * `make COLOR=false` - turns off color output * `make SILENT=true` - turns off output besides errors/warnings -* `make VERBOSE=true` - outputs all of the avr-gcc stuff (not interesting) +* `make VERBOSE=true` - outputs all of the gcc stuff (not interesting, unless you need to debug) + +The make command itself also has some additional options, type `make --help` for more information. The most useful is probably `-jx`, which specifies that you want to compile using more than one CPU, the `x` represents the number of CPUs that you want to use. Setting that can greatly reduce the compile times, especially if you are compiling many keyboards/keymaps. I usually set it to one less than the number of CPUs that I have, so that I have some left for doing other things while it's compiling. Note that not all operating systems and make versions supports that option. + +Here are some examples commands + +* `make allkb-allsp-allkm` builds everything (all keyboards, all subprojects, all keymaps). Running just `make` from the `root` will also run this. +* `make` from within a `keyboard` directory, is the same as `make keyboard-allsp-allkm`, which compiles all subprojects and keymaps of the keyboard. **NOTE** that this behaviour has changed. Previously it compiled just the default keymap. +* `make ergodox-infinity-algernon-clean` will clean the build output of the Ergodox Infinity keyboard. This example uses the full syntax and can be run from any folder with a `Makefile` +* `make dfu COLOR=false` from within a keymap folder, builds and uploads the keymap, but without color output. ## The `Makefile` -There are 3 different `make` and `Makefile` locations: +There are 5 different `make` and `Makefile` locations: * root (`/`) * keyboard (`/keyboards//`) * keymap (`/keyboards//keymaps//`) +* subproject (`/keyboards//`) +* subproject keymap (`/keyboards///keymaps/`) -The root contains the code used to automatically figure out which keymap or keymaps to compile based on your current directory and commandline arguments. It's considered stable, and shouldn't be modified. The keyboard one will contain the MCU set-up and default settings for your keyboard, and shouldn't be modified unless you are the producer of that keyboard. The keymap Makefile can be modified by users, and is optional. It is included automatically if it exists. You can see an example [here](/doc/keymap_makefile_example.mk) - the last few lines are the most important. The settings you set here will override any defaults set in the keyboard Makefile. **It is required if you want to run `make` in the keymap folder.** +The root contains the code used to automatically figure out which keymap or keymaps to compile based on your current directory and commandline arguments. It's considered stable, and shouldn't be modified. The keyboard one will contain the MCU set-up and default settings for your keyboard, and shouldn't be modified unless you are the producer of that keyboard. The keymap Makefile can be modified by users, and is optional. It is included automatically if it exists. You can see an example [here](/doc/keymap_makefile_example.mk) - the last few lines are the most important. The settings you set here will override any defaults set in the keyboard Makefile. **The file is required if you want to run `make` in the keymap folder.** + +For keyboards and subprojects, the make files are split in two parts `Makefile` and `rules.mk`. All settings can be found in the `rules.mk` file, while the `Makefile` is just there for support and including the root `Makefile`. Keymaps contain just one `Makefile` for simplicity. ### Makefile options @@ -1136,4 +1201,54 @@ Here is where you can (optionally) define your `KEYMAP` function to remap your m } ``` -Each of the `kxx` variables needs to be unique, and usually follows the format `k`. You can place `KC_NO` where your dead keys are in your matrix. \ No newline at end of file +Each of the `kxx` variables needs to be unique, and usually follows the format `k`. You can place `KC_NO` where your dead keys are in your matrix. + +# Unit Testing + +If you are new to unit testing, then you can find many good resources on internet. However most of it is scattered around in small pieces here and there, and there's also many different opinions, so I won't give any recommendations. + +Instead I recommend these two books, explaining two different styles of Unit Testing in detail. + +* "Test Driven Development: By Example: Kent Beck" +* "Growing Object-Oriented Software, Guided By Tests: Steve Freeman, Nat Pryce" + +If you prefer videos there are Uncle Bob's [Clean Coders Videos](https://cleancoders.com/), which unfortunately cost quite a bit, especially if you want to watch many of them. But James Shore has a free [Let's Play](http://www.jamesshore.com/Blog/Lets-Play) video series. + +## Google Test and Google Mock +It's possible to Unit Test your code using [Google Test](https://github.com/google/googletest). The Google Test framework also includes another component for writing testing mocks and stubs, called "Google Mock". For information how to write the actual tests, please refer to the documentation on that site. + +## Use of C++ + +Note that Google Test and therefore any test has to be written in C++, even if the rest of the QMK codebases is written in C. This should hopefully not be a problem even if you don't know any C++, since there's quite clear documentation and examples of the required C++ features, and you can write the rest of the test code almost as you would write normal C. Note that some compiler errors which you might get can look quite scary, but just read carefully what it says, and you should be ok. + +One thing to remember, is that you have to append `extern "C"` around all of your C file includes. + +## Adding tests for new or existing features + +If you want to unit test some feature, then take a look at the existing serial_link tests, in the `quantum/serial_link/tests folder`, and follow the steps below to create a similar structure. + +1. If it doesn't already exist, add a test subfolder to the folder containing the feature. +2. Create a `testlist.mk` and a `rules.mk` file in that folder. +3. Include those files from the root folder `testlist.mk`and `build_test.mk` respectively. +4. Add a new name for your testgroup to the `testlist.mk` file. Each group defined there will be a separate executable. And that's how you can support mocking out different parts. Note that it's worth adding some common prefix, just like it's done for the serial_link tests. The reason for that is that the make command allows substring filtering, so this way you can easily run a subset of the tests. +5. Define the source files and required options in the `rules.mk` file. + * `_SRC` for source files + * `_DEFS` for additional defines + * `_INC` for additional include folders +6. Write the tests in a new cpp file inside the test folder you created. That file has to be one of the files included from the `rules.mk` file. + +Note how there's several different tests, each mocking out a separate part. Also note that each of them only compiles the very minimum that's needed for the tests. It's recommend that you try to do the same. For a relevant video check out [Matt Hargett "Advanced Unit Testing in C & C++](https://www.youtube.com/watch?v=Wmy6g-aVgZI) + +## Running the tests + +To run all the tests in the codebase, type `make test`. You can also run test matching a substring by typing `make test-matchingsubstring` Note that the tests are always compiled with the native compiler of your platform, so they are also run like any other program on your computer. + +## Debugging the tests + +If there are problems with the tests, you can find the executable in the `./build/test` folder. You should be able to run those with GDB or a similar debugger. + +## Full Integration tests + +It's not yet possible to do a full integration test, where you would compile the whole firmware and define a keymap that you are going to test. However there are plans for doing that, because writing tests that way would probably be easier, at least for people that are not used to unit testing. + +In that model you would emulate the input, and expect a certain output from the emulated keyboard. From d55a705bbb362934306a3be632d6bacb99fd9de2 Mon Sep 17 00:00:00 2001 From: IBNobody Date: Sat, 3 Sep 2016 23:21:24 -0500 Subject: [PATCH 27/34] Moved breathing backlighting section in readme.md --- readme.md | 120 +++++++++++++++++++++++++++--------------------------- 1 file changed, 60 insertions(+), 60 deletions(-) diff --git a/readme.md b/readme.md index 903c2b1e8c..7ee3b28d43 100644 --- a/readme.md +++ b/readme.md @@ -877,6 +877,66 @@ In `quantum/keymap_extras/`, you'll see various language files - these work the 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. +## Backlight Breathing + +In order to enable backlight breathing, the following line must be added to your config.h file. + + #define BACKLIGHT_BREATHING + +The following function calls are used to control the breathing effect. + +* ```breathing_enable()``` - Enable the free-running breathing effect. +* ```breathing_disable()``` - Disable the free-running breathing effect immediately. +* ```breathing_self_disable()``` - Disable the free-running breathing effect after the current effect ends. +* ```breathing_toggle()``` - Toggle the free-running breathing effect. +* ```breathing_defaults()``` - Reset the speed and brightness settings of the breathing effect. + +The following function calls are used to control the maximum brightness of the breathing effect. + +* ```breathing_intensity_set(value)``` - Set the brightness of the breathing effect when it is at its max value. +* ```breathing_intensity_default()``` - Reset the brightness of the breathing effect to the default value based on the current backlight intensity. + +The following function calls are used to control the cycling speed of the breathing effect. + +* ```breathing_speed_set(value)``` - Set the speed of the breathing effect - how fast it cycles. +* ```breathing_speed_inc(value)``` - Increase the speed of the breathing effect by a fixed value. +* ```breathing_speed_dec(value)``` - Decrease the speed of the breathing effect by a fixed value. +* ```breathing_speed_default()``` - Reset the speed of the breathing effect to the default value. + +The following example shows how to enable the backlight breathing effect when the FUNCTION layer macro button is pressed: + + case MACRO_FUNCTION: + if (record->event.pressed) + { + breathing_speed_set(3); + breathing_enable(); + layer_on(LAYER_FUNCTION); + } + else + { + breathing_speed_set(1); + breathing_self_disable(); + layer_off(LAYER_FUNCTION); + } + break; + +The following example shows how to pulse the backlight on-off-on when the RAISED layer macro button is pressed: + + case MACRO_RAISED: + if (record->event.pressed) + { + layer_on(LAYER_RAISED); + breathing_speed_set(2); + breathing_pulse(); + update_tri_layer(LAYER_LOWER, LAYER_RAISED, LAYER_ADJUST); + } + else + { + layer_off(LAYER_RAISED); + update_tri_layer(LAYER_LOWER, LAYER_RAISED, LAYER_ADJUST); + } + break; + ## Other firmware shortcut keycodes * `RESET` - puts the MCU in DFU mode for flashing new firmware (with `make dfu`) @@ -1030,66 +1090,6 @@ In the default script of AutoHotkey you can define custom hotkeys. The hotkeys above are for the combination CtrlAltGui and CtrlAltGuiShift plus the letter a. AutoHotkey inserts the Text right of `Send, ` when this combination is pressed. -## Backlight Breathing - -In order to enable backlight breathing, the following line must be added to your config.h file. - - #define BACKLIGHT_BREATHING - -The following function calls are used to control the breathing effect. - -* ```breathing_enable()``` - Enable the free-running breathing effect. -* ```breathing_disable()``` - Disable the free-running breathing effect immediately. -* ```breathing_self_disable()``` - Disable the free-running breathing effect after the current effect ends. -* ```breathing_toggle()``` - Toggle the free-running breathing effect. -* ```breathing_defaults()``` - Reset the speed and brightness settings of the breathing effect. - -The following function calls are used to control the maximum brightness of the breathing effect. - -* ```breathing_intensity_set(value)``` - Set the brightness of the breathing effect when it is at its max value. -* ```breathing_intensity_default()``` - Reset the brightness of the breathing effect to the default value based on the current backlight intensity. - -The following function calls are used to control the cycling speed of the breathing effect. - -* ```breathing_speed_set(value)``` - Set the speed of the breathing effect - how fast it cycles. -* ```breathing_speed_inc(value)``` - Increase the speed of the breathing effect by a fixed value. -* ```breathing_speed_dec(value)``` - Decrease the speed of the breathing effect by a fixed value. -* ```breathing_speed_default()``` - Reset the speed of the breathing effect to the default value. - -The following example shows how to enable the backlight breathing effect when the FUNCTION layer macro button is pressed: - - case MACRO_FUNCTION: - if (record->event.pressed) - { - breathing_speed_set(3); - breathing_enable(); - layer_on(LAYER_FUNCTION); - } - else - { - breathing_speed_set(1); - breathing_self_disable(); - layer_off(LAYER_FUNCTION); - } - break; - -The following example shows how to pulse the backlight on-off-on when the RAISED layer macro button is pressed: - - case MACRO_RAISED: - if (record->event.pressed) - { - layer_on(LAYER_RAISED); - breathing_speed_set(2); - breathing_pulse(); - update_tri_layer(LAYER_LOWER, LAYER_RAISED, LAYER_ADJUST); - } - else - { - layer_off(LAYER_RAISED); - update_tri_layer(LAYER_LOWER, LAYER_RAISED, LAYER_ADJUST); - } - break; - ## RGB Under Glow Mod ![Planck with RGB Underglow](https://raw.githubusercontent.com/jackhumbert/qmk_firmware/master/keyboards/planck/keymaps/yang/planck-with-rgb-underglow.jpg) From f6cb08a5bd0d3c34c64691c7f51911742b562c05 Mon Sep 17 00:00:00 2001 From: IBNobody Date: Sun, 4 Sep 2016 01:07:36 -0500 Subject: [PATCH 28/34] Added diagonal mice macros, breathing ala Atomic --- keyboards/planck/keymaps/pvc/config.h | 9 +- keyboards/planck/keymaps/pvc/keymap.c | 444 ++++++++++++++------------ 2 files changed, 246 insertions(+), 207 deletions(-) diff --git a/keyboards/planck/keymaps/pvc/config.h b/keyboards/planck/keymaps/pvc/config.h index c857a3e89d..1113372b0a 100644 --- a/keyboards/planck/keymaps/pvc/config.h +++ b/keyboards/planck/keymaps/pvc/config.h @@ -59,13 +59,8 @@ along with this program. If not, see . keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ ) -/* ws2812 RGB LED */ -#define RGB_DI_PIN D1 -#define RGBLIGHT_TIMER -#define RGBLED_NUM 28 // Number of LEDs -#define RGBLIGHT_HUE_STEP 10 -#define RGBLIGHT_SAT_STEP 17 -#define RGBLIGHT_VAL_STEP 17 +#define BACKLIGHT_PIN B7 +#define BACKLIGHT_BREATHING /* * Feature disable options diff --git a/keyboards/planck/keymaps/pvc/keymap.c b/keyboards/planck/keymaps/pvc/keymap.c index 0bb7f0def2..8ff40f377c 100644 --- a/keyboards/planck/keymaps/pvc/keymap.c +++ b/keyboards/planck/keymaps/pvc/keymap.c @@ -2,48 +2,50 @@ #include "action_layer.h" #include "eeconfig.h" #include "led.h" +#include "mousekey.h" #ifdef AUDIO_ENABLE #include "audio.h" #include "song_list.h" #endif -#define LAYER_QWERTY 0 -#define LAYER_COLEMAK 1 -#define LAYER_DVORAK 2 -#define LAYER_UPPER 3 -#define LAYER_LOWER 4 -#define LAYER_FUNCTION 5 -#define LAYER_MOUSE 6 -#define LAYER_ADJUST 7 - -#define MACRO_QWERTY 0 -#define MACRO_COLEMAK 1 -#define MACRO_DVORAK 2 -#define MACRO_UPPER 3 -#define MACRO_LOWER 4 -#define MACRO_FUNCTION 5 -#define MACRO_MOUSE 6 -#define MACRO_TIMBRE_1 7 -#define MACRO_TIMBRE_2 8 -#define MACRO_TIMBRE_3 9 -#define MACRO_TIMBRE_4 10 -#define MACRO_TEMPO_U 11 -#define MACRO_TEMPO_D 12 -#define MACRO_TONE_DEFAULT 13 -#define MACRO_MUSIC_TOGGLE 14 -#define MACRO_AUDIO_TOGGLE 16 -#define MACRO_INC_VOICE 18 -#define MACRO_DEC_VOICE 19 -#define MACRO_BACKLIGHT 20 -#define MACRO_BREATH_TOGGLE 21 -#define MACRO_BREATH_SPEED_INC 23 -#define MACRO_BREATH_SPEED_DEC 24 -#define MACRO_BREATH_DEFAULT 25 +enum keyboard_layers { + LAYER_QWERTY = 0, + LAYER_UPPER, + LAYER_LOWER, + LAYER_FUNCTION, + LAYER_MOUSE, + LAYER_ADJUST, +}; +enum keyboard_macros { + MACRO_QWERTY = 0, + MACRO_UPPER, + MACRO_LOWER, + MACRO_FUNCTION, + MACRO_MOUSE, + MACRO_TIMBRE_1, + MACRO_TIMBRE_2, + MACRO_TIMBRE_3, + MACRO_TIMBRE_4, + MACRO_TEMPO_U, + MACRO_TEMPO_D, + MACRO_TONE_DEFAULT, + MACRO_MUSIC_TOGGLE, + MACRO_AUDIO_TOGGLE, + MACRO_INC_VOICE, + MACRO_DEC_VOICE, + MACRO_BACKLIGHT, + MACRO_BREATH_TOGGLE, + MACRO_BREATH_SPEED_INC, + MACRO_BREATH_SPEED_DEC, + MACRO_BREATH_DEFAULT, + MACRO_MOUSE_MOVE_UL, + MACRO_MOUSE_MOVE_UR, + MACRO_MOUSE_MOVE_DL, + MACRO_MOUSE_MOVE_DR, +}; #define M_QWRTY M(MACRO_QWERTY) -#define M_COLMK M(MACRO_COLEMAK) -#define M_DVORK M(MACRO_DVORAK) #define M_UPPER M(MACRO_UPPER) #define M_LOWER M(MACRO_LOWER) #define M_FUNCT M(MACRO_FUNCTION) @@ -60,6 +62,10 @@ #define M_BSPDU M(MACRO_BREATH_SPEED_INC) #define M_BSPDD M(MACRO_BREATH_SPEED_DEC) #define M_BDFLT M(MACRO_BREATH_DEFAULT) +#define M_MS_UL M(MACRO_MOUSE_MOVE_UL) +#define M_MS_UR M(MACRO_MOUSE_MOVE_UR) +#define M_MS_DL M(MACRO_MOUSE_MOVE_DL) +#define M_MS_DR M(MACRO_MOUSE_MOVE_DR) #define VC_UP M(MACRO_INC_VOICE) @@ -86,147 +92,124 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -/* QWERTY - * .-----------------------------------------------------------------------------------------------------------. - * | TAB | Q | W | E | R | T | Y | U | I | O | P | BACKSP | - * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| - * | ESC | A | S | D | F | G | H | J | K | L | ; | ' | - * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| - * | LSHIFT | Z | X | C | V | B | N | M | , | . | UP | ENTER | - * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| - * | LCTRL | LWIN | FN | LALT | UPPER | SPACE | SPACE | LOWER | SHIFT | LEFT | DOWN | RIGHT | - * '-----------------------------------------------------------------------------------------------------------' - */ +/* LAYER = LAYER_QWERTY + .-----------------------------------------------------------------------------------------------------------. + | TAB | Q | W | E | R | T | Y | U | I | O | P | BACKSP | + |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + | ESC | A | S | D | F | G | H | J | K | L | ; | ' | + |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + | LSHIFT | Z | X | C | V | B | N | M | , | . | UP | ENTER | + |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + | LCTRL | LWIN | FN | LALT | UPPER | SPACE | SPACE | LOWER | OSHIFT | LEFT | DOWN | RIGHT | + '-----------------------------------------------------------------------------------------------------------' +*/ - [LAYER_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_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_UP, KC_ENT }, - { KC_LCTL, KC_LGUI, M_FUNCT, KC_LALT, M_UPPER, KC_SPC, KC_SPC, M_LOWER, OS_SHFT, KC_LEFT, KC_DOWN, KC_RGHT }, - }, +[LAYER_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_UP , KC_ENT }, + { KC_LCTL, KC_LGUI, M_FUNCT, KC_LALT, M_UPPER, KC_SPC , KC_SPC , M_LOWER, OS_SHFT, KC_LEFT, KC_DOWN, KC_RGHT } +}, -/* COLEMAK - * .-----------------------------------------------------------------------------------------------------------. - * | TAB | Q | W | F | P | G | J | L | U | Y | ; | ESC | - * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| - * | BACKSP | A | R | S | T | D | H | N | E | I | O | ' | - * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| - * | LSHIFT | Z | X | C | V | B | K | M | , | . | UP | ENTER | - * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| - * | LCTRL | LWIN | FN | LALT | UPPER | SPACE | SPACE | LOWER | SHIFT | LEFT | DOWN | RIGHT | - * '-----------------------------------------------------------------------------------------------------------' - */ +/* LAYER = LAYER_UPPER + .-----------------------------------------------------------------------------------------------------------. + | PRINT | F1 | F2 | F3 | F4 | NUM LK | KP / | KP 7 | KP 8 | KP 9 | KP - | DEL | + |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + | PAUSE | F5 | F6 | F7 | F8 | SCR LK | KP * | KP 4 | KP 5 | KP 6 | KP + | INS | + |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + | ______ | F9 | F10 | F11 | F12 | PAUSE | KP 0 | KP 1 | KP 2 | KP 3 | KP ENT | HOME | + |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + | ______ | ______ | ______ | ______ | UPPER | KP 0 | KP 0 | ______ | RALT | KP . | KP ENT | END | + '-----------------------------------------------------------------------------------------------------------' +*/ - [LAYER_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_ESC }, - { 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_UP, KC_ENT }, - { KC_LCTL, KC_LGUI, M_FUNCT, KC_LALT, M_UPPER, KC_SPC, KC_SPC, M_LOWER, OS_SHFT, KC_LEFT, KC_DOWN, KC_RGHT }, - }, +[LAYER_UPPER] = { + { KC_PSCR, KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_NLCK, KC_PSLS, KC_KP_7, KC_KP_8, KC_KP_9, KC_PMNS, KC_DEL }, + { KC_PAUS, KC_F5 , KC_F6 , KC_F7 , KC_F8 , KC_SLCK, KC_PAST, KC_KP_4, KC_KP_5, KC_KP_6, KC_PPLS, KC_INS }, + { _______, KC_F9 , KC_F10 , KC_F11 , KC_F12 , KC_PAUS, KC_KP_0, KC_KP_1, KC_KP_2, KC_KP_3, KC_PENT, KC_HOME }, + { _______, _______, _______, _______, M_UPPER, KC_KP_0, KC_KP_0, _______, KC_RALT, KC_PDOT, KC_PENT, KC_END } +}, -/* DVORAK - * .-----------------------------------------------------------------------------------------------------------. - * | TAB | ' | , | . | P | Y | F | G | C | R | L | BACKSP | - * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| - * | ESC | A | O | E | U | I | D | H | T | N | S | / | - * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| - * | LSHIFT | ; | Q | J | K | X | B | M | W | V | Z | ENTER | - * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| - * | LCTRL | LWIN | FN | LALT | UPPER | SPACE | SPACE | LOWER | UP | DOWN | LEFT | RIGHT | - * '-----------------------------------------------------------------------------------------------------------' - */ +/* LAYER = LAYER_LOWER + .-----------------------------------------------------------------------------------------------------------. + | ______ | $ | { | [ | ( | % | # | ) | ] | } | @ | PG UP | + |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + | ______ | ^ | * | + | - | / | \ | _ | ' | " | ` | PG DN | + |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + | ______ | | | & | ! | ~ | ; | : | = | < | > | ? | HOME | + |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + | ______ | ______ | ______ | ______ | ______ | ______ | ______ | LOWER | ______ | ______ | ______ | END | + '-----------------------------------------------------------------------------------------------------------' +*/ - [LAYER_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_BSPC }, - { KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH }, - { KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_ENT }, - { KC_LCTL, KC_LGUI, M_FUNCT, KC_LALT, M_UPPER, KC_SPC, KC_SPC, M_LOWER, KC_UP, KC_DOWN, KC_LEFT, KC_RGHT }, - }, +[LAYER_LOWER] = { + { _______, KC_DLR , KC_LCBR, KC_LBRC, KC_LPRN, KC_PERC, KC_HASH, KC_RPRN, KC_RBRC, KC_RCBR, KC_AT , KC_PGUP }, + { _______, KC_CIRC, KC_ASTR, KC_PLUS, KC_MINS, KC_SLSH, KC_BSLS, KC_UNDS, KC_QUOT, KC_DQT , KC_GRV , KC_PGDN }, + { _______, KC_PIPE, KC_AMPR, KC_EXLM, KC_TILD, KC_SCLN, KC_COLN, KC_EQL , KC_LT , KC_GT , KC_QUES, KC_HOME }, + { _______, _______, _______, _______, _______, _______, _______, M_LOWER, _______, _______, _______, KC_END } +}, -/* UPPER - * .-----------------------------------------------------------------------------------------------------------. - * | PRINT | F1 | F2 | F3 | F4 | NUM LK | / | 7 | 8 | 9 | - | DEL | - * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| - * | CAP LK | F5 | F6 | F7 | F8 | SCR LK | * | 4 | 5 | 6 | + | INS | - * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| - * | | F9 | F10 | F11 | F12 | PAUSE | | 1 | 2 | 3 | ENTER | HOME | - * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------| - * | | | | | | 0 | 0 | | RALT | . | ENTER | END | - * '-----------------------------------------------------------------------------------------------------------' - */ +/* LAYER = LAYER_FUNCTION + .-----------------------------------------------------------------------------------------------------------. + | XXXXXX | F13 | F14 | F15 | F16 | NUM LK | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | + |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + | XXXXXX | F17 | F18 | F19 | F20 | SCR LK | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | + |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + | ______ | F21 | F22 | F23 | F24 | CAP LK | XXXXXX | XXXXXX | XXXXXX | XXXXXX | VOL UP | MUTE | + |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + | ______ | ______ | FN | ______ | ______ | PLAY | PLAY | ______ | ______ | PREV | VOL DN | NEXT | + '-----------------------------------------------------------------------------------------------------------' +*/ - [LAYER_UPPER] = { // UPPER - { KC_PSCR, KC_F1, KC_F2, KC_F3, KC_F4, KC_NLCK, KC_PSLS, KC_KP_7, KC_KP_8, KC_KP_9, KC_PMNS, KC_DEL }, - { KC_CAPS, KC_F5, KC_F6, KC_F7, KC_F8, KC_SLCK, KC_PAST, KC_KP_4, KC_KP_5, KC_KP_6, KC_PPLS, KC_INS }, - { _______, KC_F9, KC_F10, KC_F11, KC_F12, KC_PAUS, XXXXXXX, KC_KP_1, KC_KP_2, KC_KP_3, KC_PENT, KC_HOME }, - { _______, _______, _______, _______, _______, KC_KP_0, KC_KP_0, _______, KC_RALT, KC_PDOT, KC_PENT, KC_END }, - }, - -/* LOWER - * .-----------------------------------------------------------------------------------------------------------. - * | | $ | { | [ | ( | % | # | ) | ] | } | @ | PG UP | - * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| - * | | ^ | * | + | - | / | \ | _ | ' | " | ` | PG DN | - * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| - * | | | | & | ! | ~ | ; | : | = | < | > | ? | HOME | - * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------| - * | | | | | | | | | | | | END | - * '-----------------------------------------------------------------------------------------------------------' - */ - - [LAYER_LOWER] = { // LOWER - { _______, KC_DLR, KC_LCBR, KC_LBRC, KC_LPRN, KC_PERC, KC_HASH, KC_RPRN, KC_RBRC, KC_RCBR, KC_AT, KC_PGUP }, - { _______, KC_CIRC, KC_ASTR, KC_PPLS, KC_PMNS, KC_SLSH, KC_BSLS, KC_UNDS, KC_QUOT, KC_DQT, KC_GRV, KC_PGDN }, - { _______, KC_PIPE, KC_AMPR, KC_EXLM, KC_TILD, KC_SCLN, KC_COLN, KC_EQL, KC_LT, KC_GT, KC_QUES, KC_HOME }, - { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_END }, - }, - - -/* FUNCTION - * .-----------------------------------------------------------------------------------------------------------. - * | NUM LK | F13 | F14 | F15 | F16 | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | PAUSE | - * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| - * | CAP LK | F17 | F18 | F19 | F20 | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | PRINT | - * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| - * | SCR LK | F21 | F22 | F23 | F24 | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | MUTE | - * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| - * | LCTRL | LWIN | FN | LALT | UPPER | PLAY | PLAY | LOWER | VOL UP | VOL DN | NEXT | PREV | - * '-----------------------------------------------------------------------------------------------------------' - */ - [LAYER_FUNCTION] = { // FUNCTION - { KC_NLCK, KC_F13, KC_F14, KC_F15, KC_F16, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_PAUS }, - { KC_CAPS, KC_F17, KC_F18, KC_F19, KC_F20, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_PSCR }, - { KC_SLCK, KC_F21, KC_F22, KC_F23, KC_F24, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_MUTE }, - { _______, _______, _______, _______, _______, KC_MPLY, KC_MPLY, _______, KC_VOLU, KC_VOLD, KC_MPRV, KC_MNXT }, - }, +[LAYER_FUNCTION] = { + { XXXXXXX, KC_F13 , KC_F14 , KC_F15 , KC_F16 , KC_NLCK, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX }, + { XXXXXXX, KC_F17 , KC_F18 , KC_F19 , KC_F20 , KC_SLCK, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX }, + { _______, KC_F21 , KC_F22 , KC_F23 , KC_F24 , KC_CAPS, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_VOLU, KC_MUTE }, + { _______, _______, M_FUNCT, _______, _______, KC_MPLY, KC_MPLY, _______, _______, KC_MPRV, KC_VOLD, KC_MNXT } +}, #ifdef MOUSEKEY_ENABLE - [LAYER_MOUSE] = { // MOUSE - { KC_ESC, KC_ACL0, KC_ACL1, KC_ACL2, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_ESC }, - { XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX }, - { _______, KC_BTN5, KC_BTN4, KC_BTN3, KC_BTN2, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_WH_U, KC_WH_D }, - { _______, _______, _______, _______, _______, KC_BTN1, KC_BTN1, _______, KC_MS_U, KC_MS_D, KC_MS_L, KC_MS_R }, - }, +/* LAYER = LAYER_MOUSE + .-----------------------------------------------------------------------------------------------------------. + | ESC | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | MS UL | MS U | MS UR | MS WHL | MS WHR | + |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + | XXXXXX | MS BT5 | MS BT4 | MS BT3 | MS BT2 | XXXXXX | XXXXXX | MS L | XXXXXX | MS R | XXXXXX | MS WHU | + |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + | ______ | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | MS DL | MS D | MS DR | MS U | MS WHD | + |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + | ______ | ______ | ______ | ______ | ______ | MS BT1 | MS BT1 | ______ | ______ | MS L | MS D | MS R | + '-----------------------------------------------------------------------------------------------------------' +*/ + +[LAYER_MOUSE] = { + { KC_ESC , XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, M_MS_UL, KC_MS_U, M_MS_UR, KC_WH_L, KC_WH_R }, + { XXXXXXX, KC_BTN5, KC_BTN4, KC_BTN3, KC_BTN2, XXXXXXX, XXXXXXX, KC_MS_L, XXXXXXX, KC_MS_R, XXXXXXX, KC_WH_U }, + { _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, M_MS_DL, KC_MS_D, M_MS_DR, KC_MS_U, KC_WH_D }, + { _______, _______, _______, _______, _______, KC_BTN1, KC_BTN1, _______, _______, KC_MS_L, KC_MS_D, KC_MS_R } +}, #endif - [LAYER_ADJUST] = { // ADJUST - { _______, TIMBR_1, TIMBR_2, TIMBR_3, TIMBR_4, TMPO_UP, TMPO_DN, TMPO_DF, _______, _______, MU_TOG, AU_TOG }, - { _______, M_QWRTY, M_COLMK, M_DVORK, _______, _______, _______, _______, _______, _______, _______, _______ }, - { _______, _______, _______, _______, M_BACKL, RESET, _______, M_MOUSE, _______, _______, MUV_IN, _______ }, - { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, MUV_DE, _______ }, - }, - -/* - [LAYER_EMPTY] = { - { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, }, - { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, }, - { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, }, - { _______, _______, _______, _______, _______, ________________, _______, _______, _______, _______, _______, }, - }, +/* LAYER = LAYER_ADJUST + .-----------------------------------------------------------------------------------------------------------. + | XXXXXX | BRTOG | BRSPD+ | BRSPD- | BRDFLT | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | MUSIC | AUDIO | + |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | + |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + | XXXXXX | QWERTY | XXXXXX | XXXXXX | BACKLT | RESET | XXXXXX | MOUSE | XXXXXX | XXXXXX | VOICE+ | XXXXXX | + |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + | XXXXXX | XXXXXX | XXXXXX | XXXXXX | UPPER | XXXXXX | XXXXXX | LOWER | XXXXXX | TEMPO- | VOICE- | TEMPO+ | + '-----------------------------------------------------------------------------------------------------------' */ +[LAYER_ADJUST] = { + { XXXXXXX, M_BRTOG, M_BSPDU, M_BSPDD, M_BDFLT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, MU_TOG , AU_TOG }, + { XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX }, + { XXXXXXX, M_QWRTY, XXXXXXX, XXXXXXX, M_BACKL, RESET , XXXXXXX, M_MOUSE, XXXXXXX, XXXXXXX, MUV_IN , XXXXXXX }, + { XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, M_UPPER, XXXXXXX, XXXXXXX, M_LOWER, XXXXXXX, TMPO_DN, MUV_DE , TMPO_UP } +}, + }; #ifdef AUDIO_ENABLE @@ -234,10 +217,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { float tone_my_startup[][2] = SONG(ODE_TO_JOY); float tone_my_goodbye[][2] = SONG(ROCK_A_BYE_BABY); -float tone_qwerty[][2] = SONG(QWERTY_SOUND); -float tone_dvorak[][2] = SONG(DVORAK_SOUND); -float tone_colemak[][2] = SONG(COLEMAK_SOUND); - float tone_audio_on[][2] = SONG(CLOSE_ENCOUNTERS_5_NOTE); float tone_music_on[][2] = SONG(DOE_A_DEER); float tone_caps_on[][2] = SONG(CAPS_LOCK_ON_SOUND); @@ -267,46 +246,38 @@ 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; + case MACRO_QWERTY: if (record->event.pressed) { persistant_default_layer_set(1UL<event.pressed) - { - persistant_default_layer_set(1UL<event.pressed) - { - persistant_default_layer_set(1UL<event.pressed) - { - layer_on(LAYER_LOWER); - update_tri_layer(LAYER_LOWER, LAYER_UPPER, LAYER_ADJUST); - } - else - { - layer_off(LAYER_LOWER); - update_tri_layer(LAYER_LOWER, LAYER_UPPER, LAYER_ADJUST); } break; @@ -314,6 +285,8 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) if (record->event.pressed) { layer_on(LAYER_UPPER); + breathing_speed_set(2); + breathing_pulse(); update_tri_layer(LAYER_LOWER, LAYER_UPPER, LAYER_ADJUST); } else @@ -323,13 +296,32 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) } break; + case MACRO_LOWER: + if (record->event.pressed) + { + layer_on(LAYER_LOWER); + breathing_speed_set(2); + breathing_pulse(); + update_tri_layer(LAYER_LOWER, LAYER_UPPER, LAYER_ADJUST); + } + else + { + layer_off(LAYER_LOWER); + update_tri_layer(LAYER_LOWER, LAYER_UPPER, LAYER_ADJUST); + } + break; + case MACRO_FUNCTION: if (record->event.pressed) { + breathing_speed_set(3); + breathing_enable(); layer_on(LAYER_FUNCTION); } else { + breathing_speed_set(1); + breathing_self_disable(); layer_off(LAYER_FUNCTION); } break; @@ -352,6 +344,58 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) } break; + case MACRO_MOUSE_MOVE_UL: + if (record->event.pressed) + { + mousekey_on(KC_MS_UP); + mousekey_on(KC_MS_LEFT); + } + else + { + mousekey_off(KC_MS_UP); + mousekey_off(KC_MS_LEFT); + } + break; + + case MACRO_MOUSE_MOVE_UR: + if (record->event.pressed) + { + mousekey_on(KC_MS_UP); + mousekey_on(KC_MS_RIGHT); + } + else + { + mousekey_off(KC_MS_UP); + mousekey_off(KC_MS_RIGHT); + } + break; + + case MACRO_MOUSE_MOVE_DL: + if (record->event.pressed) + { + mousekey_on(KC_MS_DOWN); + mousekey_on(KC_MS_LEFT); + } + else + { + mousekey_off(KC_MS_DOWN); + mousekey_off(KC_MS_LEFT); + } + break; + + case MACRO_MOUSE_MOVE_DR: + if (record->event.pressed) + { + mousekey_on(KC_MS_DOWN); + mousekey_on(KC_MS_RIGHT); + } + else + { + mousekey_off(KC_MS_DOWN); + mousekey_off(KC_MS_RIGHT); + } + break; + #endif /* MOUSEKEY_ENABLE */ #ifdef AUDIO_ENABLE From 13f3c73386da9b15b255b014f5da81cd51613ca1 Mon Sep 17 00:00:00 2001 From: Fred Sundvik Date: Sun, 4 Sep 2016 23:26:49 +0300 Subject: [PATCH 29/34] Fix the ldflags.txt and obj.txt checks There was a minor typo, which caused the files to not be generated and therefore the elf files were always linked. --- tmk_core/rules.mk | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/tmk_core/rules.mk b/tmk_core/rules.mk index 79fc7119a6..e4c8aecb2c 100644 --- a/tmk_core/rules.mk +++ b/tmk_core/rules.mk @@ -332,11 +332,13 @@ $1/compiler.txt: $1/force $$(CC) --version | cmp -s - $$@ || $$(CC) --version > $$@ endef +.PRECIOUS: $(MASTER_OUTPUT)/obj.txt $(MASTER_OUTPUT)/obj.txt: $(MASTER_OUTPUT)/force - echo '$(OBJ)' | cmp -s - $$@ || echo '$(OBJ)' > $$@ + echo '$(OBJ)' | cmp -s - $@ || echo '$(OBJ)' > $@ +.PRECIOUS: $(MASTER_OUTPUT)/ldflags.txt $(MASTER_OUTPUT)/ldflags.txt: $(MASTER_OUTPUT)/force - echo '$(LDFLAGS)' | cmp -s - $$@ || echo '$(LDFLAGS)' > $$@ + echo '$(LDFLAGS)' | cmp -s - $@ || echo '$(LDFLAGS)' > $@ # We have to use static rules for the .d files for some reason From bf5941b335268748ee7877fc24cdd538a9faacd0 Mon Sep 17 00:00:00 2001 From: Samuel Ryan Goodwin Date: Mon, 5 Sep 2016 15:53:52 +0200 Subject: [PATCH 30/34] Add my keymap. --- keyboards/planck/keymaps/sgoodwin/Makefile | 25 +++ keyboards/planck/keymaps/sgoodwin/keymap.c | 233 ++++++++++++++++++++ keyboards/planck/keymaps/sgoodwin/readme.md | 10 + 3 files changed, 268 insertions(+) create mode 100644 keyboards/planck/keymaps/sgoodwin/Makefile create mode 100644 keyboards/planck/keymaps/sgoodwin/keymap.c create mode 100644 keyboards/planck/keymaps/sgoodwin/readme.md diff --git a/keyboards/planck/keymaps/sgoodwin/Makefile b/keyboards/planck/keymaps/sgoodwin/Makefile new file mode 100644 index 0000000000..581e08cd02 --- /dev/null +++ b/keyboards/planck/keymaps/sgoodwin/Makefile @@ -0,0 +1,25 @@ + + +# 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 \ No newline at end of file diff --git a/keyboards/planck/keymaps/sgoodwin/keymap.c b/keyboards/planck/keymaps/sgoodwin/keymap.c new file mode 100644 index 0000000000..4d5d3d7ef6 --- /dev/null +++ b/keyboards/planck/keymaps/sgoodwin/keymap.c @@ -0,0 +1,233 @@ +// This is sgoodwin's layout file for the Quantum project. +// It doesn't have Plover or Dvorak layers because he doesn't use that. +// It Also doesn't allow for swapping alt with CMD because that only happens in error. + +#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. +#define _QWERTY 1 +#define _COLEMAK 0 +#define _LOWER 3 +#define _RAISE 4 +#define _ADJUST 16 + +enum planck_keycodes { + COLEMAK = SAFE_RANGE, + QWERTY, + 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] = { + +/* 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 | , | . | / |SHEnt | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Hyper| Ctrl | Alt | GUI |Lower | 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, MT(MOD_RSFT, KC_ENT) }, + {ALL_T(KC_NO), KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} +}, + +/* 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 | , | . | / |SHEnt | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Hyper| Ctrl | Alt | GUI |Lower | 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, MT(MOD_RSFT, KC_ENT) }, + {ALL_T(KC_NO), KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} +}, + +/* Lower + * ,-----------------------------------------------------------------------------------. + * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO ~ |ISO | | | |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | Next | Vol- | Vol+ | Play | + * `-----------------------------------------------------------------------------------' + */ +[_LOWER] = { + {KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC}, + {KC_DEL, 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,S(KC_NUHS),S(KC_NUBS),_______, _______, _______}, + {BACKLIT, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} +}, + +/* Raise + * ,-----------------------------------------------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO # |ISO / | | |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | Next | Vol- | Vol+ | Play | + * `-----------------------------------------------------------------------------------' + */ +[_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_DEL, 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_NUHS, KC_NUBS, _______, _______, _______}, + {BACKLIT, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} +}, + +/* Adjust (Lower + Raise) + * ,-----------------------------------------------------------------------------------. + * | | Reset| | | | | | | | | | Del | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | | | |Aud on|Audoff| | |Qwerty|Colemk| | | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | |Voice-|Voice+|Mus on|Musoff|MIDIon|MIDIof| | | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | | | + * `-----------------------------------------------------------------------------------' + */ +[_ADJUST] = { + {_______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL}, + {_______, _______, _______, AU_ON, AU_OFF, _______, _______, QWERTY, COLEMAK, _______, _______, _______}, + {_______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, _______, _______, _______, _______, _______}, + {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} +} + + +}; + +#ifdef AUDIO_ENABLE + +float tone_startup[][2] = SONG(STARTUP_SOUND); +float tone_qwerty[][2] = SONG(QWERTY_SOUND); +float tone_colemak[][2] = SONG(COLEMAK_SOUND); +float music_scale[][2] = SONG(MUSIC_SCALE_SOUND); + +float tone_goodbye[][2] = SONG(GOODBYE_SOUND); +#endif + + +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) { + #ifdef AUDIO_ENABLE + PLAY_NOTE_ARRAY(tone_qwerty, false, 0); + #endif + persistant_default_layer_set(1UL<<_QWERTY); + } + return false; + break; + 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 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; + case BACKLIT: + if (record->event.pressed) { + register_code(KC_RSFT); + #ifdef BACKLIGHT_ENABLE + backlight_step(); + #endif + } else { + unregister_code(KC_RSFT); + } + return false; + break; + } + return true; +} + +void matrix_init_user(void) { + #ifdef AUDIO_ENABLE + startup_user(); + #endif +} + +#ifdef AUDIO_ENABLE + +void startup_user() +{ + _delay_ms(20); // 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/sgoodwin/readme.md b/keyboards/planck/keymaps/sgoodwin/readme.md new file mode 100644 index 0000000000..dfa88f380d --- /dev/null +++ b/keyboards/planck/keymaps/sgoodwin/readme.md @@ -0,0 +1,10 @@ +# sgoodwin's Planck Layout + +Includes: + +1. No Dvorak or Plover +2. No alt-swapping +3. Right enter is shift when held down, enter when tapped. +4. Bottom left corner in normal layers is Hyper and not brightness control. +5. Brightness is instead in the bottom corner on raise/lower. + From e9ce4960c15066c14c775b1d769f1f89ec450787 Mon Sep 17 00:00:00 2001 From: Thomas Fitzsimmons Date: Mon, 5 Sep 2016 17:40:03 -0400 Subject: [PATCH 31/34] Add new ErgoDox EZ keymap, YORUIAN --- .../keymaps/yoruian/90-ergodox-yoruian.conf | 6 ++ keyboards/ergodox/keymaps/yoruian/Makefile | 13 +++ keyboards/ergodox/keymaps/yoruian/README | 102 ++++++++++++++++++ .../ergodox/keymaps/yoruian/ergodox_yoruian | 34 ++++++ keyboards/ergodox/keymaps/yoruian/keymap.c | 61 +++++++++++ keyboards/ergodox/keymaps/yoruian/yoruian.h | 61 +++++++++++ 6 files changed, 277 insertions(+) create mode 100644 keyboards/ergodox/keymaps/yoruian/90-ergodox-yoruian.conf create mode 100644 keyboards/ergodox/keymaps/yoruian/Makefile create mode 100644 keyboards/ergodox/keymaps/yoruian/README create mode 100644 keyboards/ergodox/keymaps/yoruian/ergodox_yoruian create mode 100644 keyboards/ergodox/keymaps/yoruian/keymap.c create mode 100644 keyboards/ergodox/keymaps/yoruian/yoruian.h diff --git a/keyboards/ergodox/keymaps/yoruian/90-ergodox-yoruian.conf b/keyboards/ergodox/keymaps/yoruian/90-ergodox-yoruian.conf new file mode 100644 index 0000000000..c8a92c5c5b --- /dev/null +++ b/keyboards/ergodox/keymaps/yoruian/90-ergodox-yoruian.conf @@ -0,0 +1,6 @@ +Section "InputClass" + Identifier "ErgoDox EZ" + MatchIsKeyboard "on" + MatchProduct "ErgoDox EZ ErgoDox EZ" + Option "XkbLayout" "ergodox_ez_yoruian" +EndSection diff --git a/keyboards/ergodox/keymaps/yoruian/Makefile b/keyboards/ergodox/keymaps/yoruian/Makefile new file mode 100644 index 0000000000..b43a24c611 --- /dev/null +++ b/keyboards/ergodox/keymaps/yoruian/Makefile @@ -0,0 +1,13 @@ +ifndef QUANTUM_DIR + include ../../../../Makefile +endif + +install-xorg-configuration: + install -m 0664 90-$(KEYBOARD)-$(KEYMAP).conf \ + /etc/X11/xorg.conf.d/90-$(KEYBOARD)-$(KEYMAP).conf + install -m 0644 $(KEYBOARD)_$(KEYMAP) \ + /usr/share/X11/xkb/symbols/$(KEYBOARD)_$(KEYMAP) + +uninstall-xorg-configuration: + -rm -f /etc/X11/xorg.conf.d/90-$(KEYBOARD)-$(KEYMAP).conf + -rm -f /usr/share/X11/xkb/symbols/$(KEYBOARD)_$(KEYMAP) diff --git a/keyboards/ergodox/keymaps/yoruian/README b/keyboards/ergodox/keymaps/yoruian/README new file mode 100644 index 0000000000..99b41434ef --- /dev/null +++ b/keyboards/ergodox/keymaps/yoruian/README @@ -0,0 +1,102 @@ + Snarfangel's YORUIAN for the ErgoDox EZ + ‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾ +DEFAULT +┏━━━┯━━━┯━━━┯━━━┯━━━┯━━━┯━━━┓ ┏━━━┯━━━┯━━━┯━━━┯━━━┯━━━┯━━━┓ +┃ ` │ ; │ : │ - │ / │ ( │ < ┃ ┃ > │ ) │ ^ │ * │ ~ │ Γ │ σ ┃ +┠───┼───┼───┼───┼───┼───┼───┨ ┠───┼───┼───┼───┼───┼───┼───┨ +┃ ⎋ │ . │ y │ o │ r │ ? │ ✦ ┃ ┃ ✦ │ j │ v │ d │ f │ w │ q ┃ +┠───┼───┼───┼───┼───┼───┤ ┃ ┃ ├───┼───┼───┼───┼───┼───┨ +┃ ⎈ │ u │ i │ a │ n │ ! ├───┨ ┠───┤ m │ h │ t │ s │ c │ ⎈ ┃ +┠───┼───┼───┼───┼───┼───┤ ❖ ┃ ┃ ❖ ├───┼───┼───┼───┼───┼───┨ +┃ λ │ ' │ " │ , │ _ │ = │ ┃ ┃ │ k │ l │ p │ g │ b │ x ┃ +┠───┼───┼───┼───┼───╆━━━┷━━━┛ ┗━━━┷━━━╅───┼───┼───┼───┼───┨ +┃ ⎀ │ E │ │ │ ◆ ┃ ┃ ◆ │ │ │ z │ ⎙ ┃ +┗━━━┷━━━┷━━━┷━━━┷━━━┛ ┗━━━┷━━━┷━━━┷━━━┷━━━┛ + ┏━━━┯━━━┓ ┏━━━┯━━━┓ + ┃ ⌫ │ ⌥ ┃ ┃ ⎄ │ ↹ ┃ + ┏━━━╃───┼───┨ ┠───┼───╄━━━┓ + ┃ │ │ ┃ ┃ │ │ ┃ + ┃ e │ ⇧ ├───┨ ┠───┤ ⏎ │ ␣ ┃ + ┃ │ │ ┃ ┃ │ │ ┃ + ┗━━━┷━━━┷━━━┛ ┗━━━┷━━━┷━━━┛ +SHIFTED +┏━━━┯━━━┯━━━┯━━━┯━━━┯━━━┯━━━┓ ┏━━━┯━━━┯━━━┯━━━┯━━━┯━━━┯━━━┓ +┃ 9 │ 7 │ 5 │ 3 │ 1 │ [ │ { ┃ ┃ } │ ] │ 0 │ 2 │ 4 │ 6 │ 8 ┃ +┠───┼───┼───┼───┼───┼───┼───┨ ┠───┼───┼───┼───┼───┼───┼───┨ +┃ │ * │ Y │ O │ R │ \ │ ┃ ┃ │ J │ V │ D │ F │ W │ Q ┃ +┠───┼───┼───┼───┼───┼───┤ ┃ ┃ ├───┼───┼───┼───┼───┼───┨ +┃ │ U │ I │ A │ N │ | ├───┨ ┠───┤ M │ H │ T │ S │ C │ ┃ +┠───┼───┼───┼───┼───┼───┤ ┃ ┃ ├───┼───┼───┼───┼───┼───┨ +┃ │ # │ $ │ @ │ & │ + │ ┃ ┃ │ K │ L │ P │ G │ B │ X ┃ +┠───┼───┼───┼───┼───╆━━━┷━━━┛ ┗━━━┷━━━╅───┼───┼───┼───┼───┨ +┃ │ │ │ │ ┃ ┃ │ │ │ Z │ ┃ +┗━━━┷━━━┷━━━┷━━━┷━━━┛ ┗━━━┷━━━┷━━━┷━━━┷━━━┛ + ┏━━━┯━━━┓ ┏━━━┯━━━┓ + ┃ │ ┃ ┃ │ ┃ + ┏━━━╃───┼───┨ ┠───┼───╄━━━┓ + ┃ │ │ ┃ ┃ │ │ ┃ + ┃ │ ├───┨ ┠───┤ │ ┃ + ┃ │ │ ┃ ┃ │ │ ┃ + ┗━━━┷━━━┷━━━┛ ┗━━━┷━━━┷━━━┛ +λ LAYER +┏━━━┯━━━┯━━━┯━━━┯━━━┯━━━┯━━━┓ ┏━━━┯━━━┯━━━┯━━━┯━━━┯━━━┯━━━┓ +┃ │ │ │ │ │ │ ┃ ┃ │ │ ⑤ │ ⑥ │ ⑦ │ ⑧ │ ⑨ ┃ +┠───┼───┼───┼───┼───┼───┼───┨ ┠───┼───┼───┼───┼───┼───┼───┨ +┃ │ │ │ │ │ │ ┃ ┃ │ │ ① │ ② │ ③ │ ④ │ ⑩ ┃ +┠───┼───┼───┼───┼───┼───┤ ┃ ┃ ├───┼───┼───┼───┼───┼───┨ +┃ │ │ │ │ │ ├───┨ ┠───┤ ⎉ │ ← │ ↓ │ ↑ │ → │ ⑪ ┃ +┠───┼───┼───┼───┼───┼───┤ ┃ ┃ ├───┼───┼───┼───┼───┼───┨ +┃ λ │ │ │ │ │ │ ┃ ┃ │ │ ⇱ │ ⎘ │ ⎗ │ ⇲ │ ⑫ ┃ +┠───┼───┼───┼───┼───╆━━━┷━━━┛ ┗━━━┷━━━╅───┼───┼───┼───┼───┨ +┃ │ │ │ │ ┃ ┃ │ │ │ │ ┃ +┗━━━┷━━━┷━━━┷━━━┷━━━┛ ┗━━━┷━━━┷━━━┷━━━┷━━━┛ + ┏━━━┯━━━┓ ┏━━━┯━━━┓ + ┃ │ ┃ ┃ │ ┃ + ┏━━━╃───┼───┨ ┠───┼───╄━━━┓ + ┃ │ │ ┃ ┃ │ │ ┃ + ┃ │ ├───┨ ┠───┤ │ ┃ + ┃ │ │ ┃ ┃ │ │ ┃ + ┗━━━┷━━━┷━━━┛ ┗━━━┷━━━┷━━━┛ + +Installation (X only) +‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾ + 1. Build and flash firmware as usual + + 2. sudo make install-xorg-configuration + + 3. Restart X + +Features +‾‾‾‾‾‾‾‾ + • E on the thumb + + • Emacs-friendly + + • Symmetric control keys for finger wear levelling + + • Greek and subscript dead keys + + • Compose key for arbitrary Unicode input via ~/.XCompose + +Don't Cares +‾‾‾‾‾‾‾‾‾‾‾ + • Easy migration from QWERTY + + • Compatbility with non-XKB systems + + • Mouse emulation + + • Media keys + +Acknowledgements +‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾ +Snarfangel, for designing the layout. + +The GNU FreeFont project and Steve White, for adding new keyboard +symbols. + +Xah Lee, for http://xahlee.info/comp/unicode_computing_symbols.html + +Colophon +‾‾‾‾‾‾‾‾ +This file is best-viewed with an SVN version of GNU FreeFont Mono. diff --git a/keyboards/ergodox/keymaps/yoruian/ergodox_yoruian b/keyboards/ergodox/keymaps/yoruian/ergodox_yoruian new file mode 100644 index 0000000000..7343143948 --- /dev/null +++ b/keyboards/ergodox/keymaps/yoruian/ergodox_yoruian @@ -0,0 +1,34 @@ +partial alphanumeric_keys modifier_keys +xkb_symbols "ergodox_ez_yoruian" { + include "us" + name[Group1]= "English (yoruian-1.0.0)"; + + replace key { [ Multi_key, Multi_key ] }; + replace key { [ Hyper_L, Hyper_L ] }; + replace key { [ grave, 9 ] }; + replace key { [ semicolon, 7 ] }; + replace key { [ colon, 5 ] }; + replace key { [ minus, 3 ] }; + replace key { [ slash, 1 ] }; + replace key { [ asciicircum, 0 ] }; + replace key { [ percent, 2 ] }; + replace key { [ asciitilde, 4 ] }; + replace key { [ dead_greek, 6 ] }; + replace key { [ dead_caron, 8 ] }; + replace key { [ E, E ] }; + replace key { [ period, asterisk ] }; + replace key { [ question, backslash ] }; + replace key { [ exclam, bar ] }; + replace key { [ apostrophe, numbersign ] }; + replace key { [ quotedbl, dollar ] }; + replace key { [ comma, at ] }; + replace key { [ underscore, ampersand ] }; + replace key { [ equal, plus ] }; + replace key { [ parenleft, bracketleft ] }; + replace key { [ less, braceleft ] }; + replace key { [ greater, braceright ] }; + replace key { [ parenright, bracketright ] }; + + modifier_map none { }; + modifier_map Mod3 { }; +}; diff --git a/keyboards/ergodox/keymaps/yoruian/keymap.c b/keyboards/ergodox/keymaps/yoruian/keymap.c new file mode 100644 index 0000000000..d3635ddf3f --- /dev/null +++ b/keyboards/ergodox/keymaps/yoruian/keymap.c @@ -0,0 +1,61 @@ +/* + * Copyright 2016 Thomas Fitzsimmons + * + * 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 3 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 "yoruian.h" + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[0] = KEYMAP\ +(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, + FF, QUOT, COMM, DOT, SLSH, P0, LGUI, LGUI, K, L, P, G, B, X, + IN, P1, NO, NO, LALT, LALT, NO, NO, Z, PS, + BSPC, RALT, P2, TAB, + NO, NO, + E, LSFT, NO, NO, ENT, SPC), +[1] = KEYMAP\ +(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, + TR, TR, TR, TR, TR, TR, TR, TR, TR, HOME, PGDN, PGUP, END, FW, + TR, TR, TR, TR, TR, TR, TR, TR, TR, TR, + TR, TR, TR, TR, + TR, TR, + TR, TR, TR, TR, TR, TR), +}; + +const uint16_t PROGMEM fn_actions[] = { +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { + return MACRO_NONE; +}; + +void matrix_init_user(void) { +}; + +void matrix_scan_user(void) { + ergodox_board_led_off(); + ergodox_right_led_1_off(); + ergodox_right_led_2_off(); + ergodox_right_led_3_off(); +}; + +/* + * Local Variables: + * electric-indent-mode: nil + * End: + */ diff --git a/keyboards/ergodox/keymaps/yoruian/yoruian.h b/keyboards/ergodox/keymaps/yoruian/yoruian.h new file mode 100644 index 0000000000..1adcb7fd3f --- /dev/null +++ b/keyboards/ergodox/keymaps/yoruian/yoruian.h @@ -0,0 +1,61 @@ +/* + * Copyright 2016 Thomas Fitzsimmons + * + * 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 3 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 "ergodox.h" +#include "debug.h" +#include "action_layer.h" + +#undef KEYMAP +#define KEYMAP\ +( \ + /* 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) \ + \ + /* 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 } \ + } + +#define KC_ES KC_ESC +#define KC_LC KC_LCTL +#define KC_RC KC_RCTL +#define KC_FF MO(1) +#define KC_IN KC_INS +#define KC_PS KC_PSCR +#define KC_TR KC_TRNS +#define KC_FT KC_F10 +#define KC_FE KC_F11 +#define KC_FW KC_F12 From ce53c0643d4eaf8f13ac1140d3bd91dfa5f90e22 Mon Sep 17 00:00:00 2001 From: Thomas Fitzsimmons Date: Tue, 6 Sep 2016 00:09:14 -0400 Subject: [PATCH 32/34] Fix ergodox_yoruian XKB naming --- keyboards/ergodox/keymaps/yoruian/90-ergodox-yoruian.conf | 2 +- keyboards/ergodox/keymaps/yoruian/ergodox_yoruian | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/keyboards/ergodox/keymaps/yoruian/90-ergodox-yoruian.conf b/keyboards/ergodox/keymaps/yoruian/90-ergodox-yoruian.conf index c8a92c5c5b..ce4fce3b1d 100644 --- a/keyboards/ergodox/keymaps/yoruian/90-ergodox-yoruian.conf +++ b/keyboards/ergodox/keymaps/yoruian/90-ergodox-yoruian.conf @@ -2,5 +2,5 @@ Section "InputClass" Identifier "ErgoDox EZ" MatchIsKeyboard "on" MatchProduct "ErgoDox EZ ErgoDox EZ" - Option "XkbLayout" "ergodox_ez_yoruian" + Option "XkbLayout" "ergodox_yoruian" EndSection diff --git a/keyboards/ergodox/keymaps/yoruian/ergodox_yoruian b/keyboards/ergodox/keymaps/yoruian/ergodox_yoruian index 7343143948..0d13fbfd4c 100644 --- a/keyboards/ergodox/keymaps/yoruian/ergodox_yoruian +++ b/keyboards/ergodox/keymaps/yoruian/ergodox_yoruian @@ -1,5 +1,5 @@ partial alphanumeric_keys modifier_keys -xkb_symbols "ergodox_ez_yoruian" { +xkb_symbols "ergodox_yoruian" { include "us" name[Group1]= "English (yoruian-1.0.0)"; From a3e7042084ac2a117cea129e4dd4995904f247e8 Mon Sep 17 00:00:00 2001 From: joar Date: Tue, 6 Sep 2016 16:00:08 +0200 Subject: [PATCH 33/34] norwegian programmer-friendly layout --- .../keyboard-layout.png | Bin 0 -> 140077 bytes .../norwegian_programmer_osx_pc/keymap.c | 180 ++++++++++++++++++ .../norwegian_programmer_osx_pc/readme.md | 30 +++ .../keyboard-layout.png | Bin 0 -> 97519 bytes .../keymap.c | 180 ++++++++++++++++++ .../readme.md | 30 +++ 6 files changed, 420 insertions(+) create mode 100644 keyboards/ergodox/keymaps/norwegian_programmer_osx_pc/keyboard-layout.png create mode 100644 keyboards/ergodox/keymaps/norwegian_programmer_osx_pc/keymap.c create mode 100644 keyboards/ergodox/keymaps/norwegian_programmer_osx_pc/readme.md create mode 100644 keyboards/ergodox/keymaps/norwegian_programmer_osx_pc_colemak/keyboard-layout.png create mode 100644 keyboards/ergodox/keymaps/norwegian_programmer_osx_pc_colemak/keymap.c create mode 100644 keyboards/ergodox/keymaps/norwegian_programmer_osx_pc_colemak/readme.md diff --git a/keyboards/ergodox/keymaps/norwegian_programmer_osx_pc/keyboard-layout.png b/keyboards/ergodox/keymaps/norwegian_programmer_osx_pc/keyboard-layout.png new file mode 100644 index 0000000000000000000000000000000000000000..544b5658e9d6124962d3f85725f349df2a782c29 GIT binary patch literal 140077 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%0DU8d#nz0M|2yVMO#;3x$=~#eEiASZAanuj;0VS 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 | @ | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | + | Q | W | E | R | T | " | | ' | Y | U | I | O | P | Å | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | / | A | S | D | F | G |------| |------| H | J | K | L | Ø | Æ | + * |--------+------+------+------+------+------| ; | | = |------+------+------+------+------+--------| + * | - | Z | X | C | V | B | | | | N | M | RIGHT| DOWN | UP | _ | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * |Alt/esc| ! | ? | : | TAB | | LEFT | _ | & | | |Num/fn| + * `----------------------------------' `----------------------------------' + * ,-------------. ,--------------. + * | # | ` | |Insert| % | + * ,------|------|------| |------+-------+------. + * | | | ´ | | Del | | | + * | Shift|Ctrl/.|------| |------| Enter |Space | + * | | |GUI/, | | Bspc | | | + * `--------------------' `---------------------' + */ +[BASE] = KEYMAP( + // left hand + KC_PAST, NO_LBRC, NO_RBRC, NO_LCBR, NO_RCBR, KC_FN2, TG(1), + KC_PPLS, KC_Q, KC_W, KC_E, KC_R, KC_T, NO_QUO2, + KC_PSLS, KC_A, KC_S, KC_D, KC_F, KC_G, + KC_PMNS, KC_Z, KC_X, KC_C, KC_V, KC_B, NO_SCLN, + ALT_T(KC_ESC), KC_EXLM , NO_QUES, NO_COLN, KC_TAB, + KC_HASH, KC_FN7, + KC_FN6, + KC_FN1,CTL_T(KC_DOT),GUI_T(KC_COMMA), + // right hand + KC_FN5, NO_DLR, NO_LPRN, NO_RPRN ,KC_FN3, KC_FN4,NO_AT, + NO_APOS, KC_Y, KC_U, KC_I, KC_O, KC_P, NO_AA , + KC_H, KC_J, KC_K, KC_L, NO_OSLH, NO_AE, + NO_EQL, KC_N, KC_M, KC_RIGHT, KC_DOWN, KC_UP, NO_BSLS, + KC_LEFT, NO_UNDS, NO_AMPR, NO_PIPE, OSL(2), + KC_INSERT, KC_PERC, + KC_DELT, + KC_BSPC,KC_ENT,KC_SPC + ), +/* Keymap 1: Basic layer MACS (Same as pc, except for cmd/ctrl, which are swapped) + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | \ | | | { | } | | | | | $ | | | < | > | @ | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | | | | | | | | | | | | | | | + * |--------+------+------+------+------+------| | | ' |------+------+------+------+------+--------| + * | | | | | | |------| |------| | | | | | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | | | | | | | | | | | | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | |,/Ctrl| | | | ` | |Num/fn| + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | ` | | | | + * ,------|------|------| |------+------+------. + * | | | ´ | | | | | + * | |GUI/. |------| |------| | | + * | | |crtl/,| | | | | + * `--------------------' `--------------------' + */ +[BASE_MAC] = KEYMAP( + KC_TRNS, KC_TRNS,KC_TRNS, NO_LCBR_MAC,NO_RCBR_MAC, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS , KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, NO_GRV_MAC, + KC_FN10, + KC_TRNS,GUI_T(KC_DOT) , CTL_T(KC_COMMA), + // right hand + KC_TRNS, NO_DLR_MAC, KC_TRNS,KC_TRNS,KC_FN8, KC_FN9,NO_AT_MAC, + NO_APOS_MAC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, NO_BSLS_MAC, + KC_TRNS, KC_TRNS, KC_TRNS, NO_PIPE_MAC, OSL(2), + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS +), + +/* Keymap 2: Number ++´ánd Fn layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | | | | | | | | | | F9 | F10 | F11 | F12 | | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | 8 | 7 | 6 | 5 | 9 | | | | | F5 | F6 | F7 | F8 | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | 4 | 3 | 2 | 1 | 0 |------| |------| | F1 | F2 | F3 | F4 | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | | | | | | | | | END | PGDWN| PGUP | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | | | | HOME | | | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | | | + * | | |------| |------| | | + * | | | | | | | | + * `--------------------' `--------------------' + */ +[NUMB_FUNC] = KEYMAP( + NO_ASTR, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + NO_PLUS, KC_8, KC_7,KC_6,KC_5, KC_9 , KC_TRNS, + NO_SLSH , KC_4 , KC_3 , KC_2 , KC_1 , KC_0, + NO_MINS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, + // right hand + KC_TRNS, KC_TRNS, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, + KC_TRNS, KC_TRNS, KC_F5, KC_F6 , KC_F7, KC_F8, KC_TRNS, + KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_TRNS, + KC_TRNS, KC_HOME, KC_TRNS, KC_END, KC_PGDN, KC_PGUP, KC_TRNS, + KC_HOME, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS +) +}; + +enum macro_id { + TILDE_NO, LESS_NO, GRTR_NO, CIRC_NO, ACUT_NO, GRV_NO, LESS_NO_MAC, GRTR_NO_MAC, ACUT_NO_MAC +}; + +const uint16_t PROGMEM fn_actions[] = { + [1] = ACTION_MODS_ONESHOT(MOD_LSFT), // Sticky shift light. Tap for the next keypress to be shifted. Hold for regular shift. + [2] = ACTION_MACRO(TILDE_NO), // Completed ~ character(pc and mac), no space needed. + [3] = ACTION_MACRO(LESS_NO), // < completed on keypress down, to avoid shifting the next character if it is not released first. + [4] = ACTION_MACRO(GRTR_NO), // > completed on keypress down, to avoid shifting the next character if it is not released first. + [5] = ACTION_MACRO(CIRC_NO), // Completed ^ character, no space needed. + [6] = ACTION_MACRO(ACUT_NO), // Completed ´ character, no space needed. + [7] = ACTION_MACRO(GRV_NO), // Completed ` character, no space needed. + [8] = ACTION_MACRO(LESS_NO_MAC), // < completed on keypress down, to avoid same button problem when typing <> quickly + [9] = ACTION_MACRO(GRTR_NO_MAC), // > completed on keypress down, to avoid same button problem when typing <> quickly + [10] = ACTION_MACRO(ACUT_NO_MAC), // Completed ´ character, no space needed +}; + + + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + keyevent_t event = record->event; + + switch (id) { + case TILDE_NO: + return (event.pressed ? MACRO( D(RALT), T(RBRC), U(RALT), T(SPC), END ) : MACRO_NONE); + case LESS_NO: + return (event.pressed ? MACRO( T(NUBS), END ) : MACRO_NONE); + case GRTR_NO: + return (event.pressed ? MACRO( D(LSFT), T(NUBS), U(LSFT), END ) : MACRO_NONE); + case CIRC_NO: + return (event.pressed ? MACRO( D(LSFT), T(RBRC), U(LSFT), T(SPC), END ) : MACRO_NONE); + case ACUT_NO: + return (event.pressed ? MACRO( D(RALT), T(EQL), U(RALT), T(SPC), END ) : MACRO_NONE); + case GRV_NO: + return (event.pressed ? MACRO( D(LSFT), T(EQL), T(SPC), U(LSFT), END ) : MACRO_NONE); + case LESS_NO_MAC: + return (event.pressed ? MACRO( T(GRV), END ) : MACRO_NONE); + case GRTR_NO_MAC: + return (event.pressed ? MACRO( D(LSFT), T(GRV), U(LSFT), END ) : MACRO_NONE); + case ACUT_NO_MAC: + return (event.pressed ? MACRO( T(EQL), T(SPC), END ) : MACRO_NONE); + } + return MACRO_NONE; +}; diff --git a/keyboards/ergodox/keymaps/norwegian_programmer_osx_pc/readme.md b/keyboards/ergodox/keymaps/norwegian_programmer_osx_pc/readme.md new file mode 100644 index 0000000000..f7e8baf56a --- /dev/null +++ b/keyboards/ergodox/keymaps/norwegian_programmer_osx_pc/readme.md @@ -0,0 +1,30 @@ +# Norwegian setup with osx/pc toggle + +## Motivation +I wanted a Norwegian setup that worked in a similar way on both my Mac and PC. I also wanted the keyboard to translate from a standard Norwegian keyboard OS setup. + +## Overview +The setup is created to be programmer friendly. +- Most of the symbols used in code can be activated without using layers or shift key. +- You can reach the IDE/OS shortcut activators(Ctrl, Win/Cmd, Alt, Shift) with the thumb or the wrist. +- Navigation is prioritized, arrows below the home row. + +## PC/Mac toggle +The default setup is for Norwegian keyboard setting(on a PC(Windows or Linux) or Mac. Use the Mac/PC toggle button to switch between OSX and PC setup. The settings will be reverted to PC setup each time you restart/connect the keyboard. + +## Layers +Since symbols are prioritized in this setup, numbers and function keys are on a new layer. The easiest way to use the layer switch(and also the alt key), is to push your hand right below the little finger, on the key. You will then have all your fingers free to type numbers or press function keys. + +## Tap-shift +Tap for the next character to be shifted, hold down for regular shift. + +## Comma dot and escape +Comma, dot and escape share buttons with modifier keys. Tap to access these keys, hold down to use the keys as modifier keys. + +## Numpad symbols ++-/* are implemented with the numpad keycodes. The benefit is that they will work better with shortcuts in certain programs. For some reason, the default setting in the osx terminal is to not accept numpad characters for '/' and '-'. For a solution, see https://discussions.apple.com/thread/6613968?start=0&tstart=0. +If you really need the norwegian symbols in a program, you can access them using the number toggle button. + +## Layout + +![keyboard-layout](keyboard-layout.png) diff --git a/keyboards/ergodox/keymaps/norwegian_programmer_osx_pc_colemak/keyboard-layout.png b/keyboards/ergodox/keymaps/norwegian_programmer_osx_pc_colemak/keyboard-layout.png new file mode 100644 index 0000000000000000000000000000000000000000..462de5c56bc88f230af44b5dd843543924220a34 GIT binary patch literal 97519 zcmaI8by$>N*EUS&APpl(4I_x;fCADD0@Bhsgn+bk=g?9T(jZ88hjf>8Nq2{&gnSpj z`+lDH`M&plKL3!zIb_ee_TFo)bDis4SE!PLG#(BG4iXX)-dh<76(l4y7!ne4J{AV> ziGhxH77`LI(pw2pHCO!uFU&8bl9zwI;+|rdAyS{?z4`E#$W%kLyIM|DL{dal`7KWA zM-)lZc$!RKFabg5-%u2c%76{1jH8VBi2d)BE8)8GU>@5gkF>(3qT5BjU@kt@_j*@N z@Ac|hTAa#on`LEX2Tp)LQ42P8S7p1c*vMkO1hi;a|Mw3LQooZEJG-Vu)WY{g+&b>% zxDV^I6~@>|cF$Q@KyWym76R#*^c(B^55N2G1y7`C85uFhCnnn0Pglx_nKep1-$P&m zGWrsdl7#R;Bsvi+0+j#o11mtp%#2~Bbs(O(NtcO)1(O(g##!ME_$$GSPtLzGO-`VIkkri$D?gPBKK`5TwdK#=W0|@(IIfS!(nB6ggY=7pnK8 zU+>Z-aa&WknSk+m1pWTc6_c0nwc;jj|1M34LiV^wH%?}6c%(=awcv_Orx3wR{>Q(5 z?gG&%Zny$kPghP|1Bp5|9sHPIVsyaQa3c1%N)0mij@-%}cU7`_vF|hD&|qMClGA4X~uKW?u=4N%1BYXm~T4ZDVW~6qF)RxDs`?(P%VC z!{1IyhHMn{oA{|~&BiP<)ynV9L9xiM7~=oqdiqkM^_fisP}e+1I|u^y@^YL!a@qvV zPFz0Ot-eilafV$i9Ah|$o+HPP6Jq?68;f0~xos97Ulu~tx#1=eMgM;+H72A@8P@bH za1j%MqJ?x3yrq0XF^IsUv|@Uf!fpLKl7AGD^yv_#+S0Rbl+$Lufe^AL_Ywk2&1TOc z6$|+9h0rA0n7EPVtWXr#%IN;g&%&b;q!{@g?_en%W#sXE&Bv1^kK=a63{MnNX7xbX z_?L6$=SYkSslJnwYG5ui&~0#cKV>%Yg=rDCbinifvX4cqE%b3&vUd#VQ5PSKna!o% zWBK`F5rm4y1yG{=@VG*B1mSj;IvZQ3^rLdQzPfQj2@DEqk9f-U>>Zp}*$PE0mb-&6}qqR}bT5_0%p;d=0e(kg8k* zrLU=M3+7N)T5gX5?ALq#M1~q&?L&7g)+D?H&xW|N$`@p${wrvSZ~}28bVug@fAt3E{0zm0Ie*n6X5us>ZwY@s!(`QOoPm4G(o9dEn{2T_0(_vyJL zeI+$A1XeubM=wRd0dbsvZP(C|CAlaiHqfvcrMGfgPba`Fw0wP{{dNHN-Q4k=DPu(w zqZDmJv|VLY%L}LC=)njK$$xDVEdlTp*f|lc2%?BC;9CT|#zKk#ZwKu=t%MMwH3iRB zD$4=O2Y#7Y?+;>asuOV?BSP;9E|3wA>=JS48M%QFiT9aG1wj6Fhy+-GqoS!Gp8U&H z8G259z|^76`7uQYOO9M6C@eLWk4&}4XaS!;q1O7BSf-kZLj2%o_iPw3N}z}+TI$Vb zhge;cs?a)z8dv!2B6E_EKqwFX;VTFPc96sB*DFhz?K*%xg-5ua1ft{y2~gutmKiK3 z6nHBm0t3;K_?#@4uG3y7x-th#JzfQE0=qr_fl!B-;qRsh%3lm>*4)O*xl3sgfFmhP zmxfl3A)d&!WG7bdYv}dgsIBZ_7UveyJ9!6%eVMwj3N) z_zo_Hp3e0Vi;2u0LoCQMpQq{ zr~@tLm8kJ!aEinNQSnWV9qZ>EGEL+ux@=_476g0c4M;)}J>+b!jUU~L*bf)*T06g( zkBopBYQ>s_x~Shp9lPiMl%H>yRH?NZ#f-6(lqz+{;Wo^DWtl2t7Jw{|a!lFIUK!6# zC7nK(6;WC3`13dY@U$&5^;w8R!(A-8`apjlX%uFdl!QnieoV#s{OcswLyCj>n!y3O z@v6rZLyUq)$?bU1G!yDE5K7D#(zWvH%FT&5jGHnB+-#<3ekl%>GT%#Unv{T__>tgO z9b^t?1+F2$J0F8?w@l5|tAqlj$=7^Y9@rMX?v@{p(nR!~u&N}aMq2+OyZ$wGV3n_2 z0qP12KBFNCrsi6(;r0CetV?=>@k9B3Q(T-M2>gUrl|0ZF2@6erZr9hPOqj=;@qkI8 zIh~*nW5q2E%EO4;0m-f}YgDS913nRo6e|>mz{F%1d$8r82q7!3GQGgaGGR1W_n_#Y z{j%NLx0GR&*-tSdgx+D=u;#J*Kzq82S({guVn#*aULW6Y9J6Ag%x0kNH^Fb4V( zU`6B622%XS6SGmIBN9&;8L`sFnTa|MNPYl+D+xd<5mPn*jwMZuZssck5$fXT*3S(5 zB%3fBZ802rZ&!63%a@9K@;G6Th68UC;QMBFhyYXUVK&)Kd zv)mGJa5(#g0#=AG(i{@RobCbKhfyDZX`mQkrFriuXa4#~Cxkhp>)mNqK6_}F-TYUX zWD@7Z@LwD1qsp0Q4&~nq-$tP0lC^~p(j%enuny&;#B>ibgSE}o`&%4w+mNAE(TXo^`dgCdGe1zHWR@*(!g^C#PUJV0wsN| zkWSUaxqV?!jLWbk@Q1p;SdkeiJ^z>j#0gghhYqc%UtRwgQmL!@9*VIwa5VM}6WV~=Mq&sK zqZI5An|Vtj|D;e1hzkj{00MYkj_GBde-v+~8`t2(fbQ*;OX>Kv1s4KetA8O(a#3Tm z$S0j1n(8>c&e=ffyyjI}tX2?f#rz&BwcO%m^ikJXW`{FVq&NLQ{>0=%`HPz@ZCy6< zdWdn`CL_oCRJ?)MSqlHtSI(VEp}K>K?2JU>>s>$VJ;|n{j=JDRT^bgd6^Z`CV)o(^ zBtsmA^-TRm^l!WfLyge(CK&-BcOnABVd@vZ55;X1?f3L85V~(HW{ftg-esOmS`$3g z;GnG|dxywwIcho<0?a&cou1(QP*bbyP@2l`QfhToC=&s|Sn&#t1d@8OwSM{FgxW|r!VU&;ZpkHaWO}SWLwH5m6`#nxHO>VgF15 z&ld4BqfR%EQY5$V;u6Ir+bMg$*efz0%l<4tJa<~$Yf8j?Akp9O8$kAzKMEi)l<%XB z_SnfY79gXTJJl!svb35(3kNK-jXvaoy`;<>oJ{YtmmT%|jq~5LEl~y&?$x@l*C$uv zPJ>!08%GvU?KcZQ5sz6myuka)_kLhETmUw?`nCoLH*Ersi68%Cu43#j)rdQhb$%&< z^Wa<01=W|qwt|EkVs7ffGbnuW+KTC5&alaB_B!#O64`^fPVX!&7+p%$VjB>+p+><0 zg=D@pwPTfrhrU@;4!NcG7`0v}XkRSsg{$2!bZqp6)dz#lK*n%24?{3X(UjPJHS_3* zWrKGH3}wVd5BZRxG*GO2@QoCkjsLYHG>;tuix5k{c?3T{fKZ%8F8cRy^OB@WCPMrn z1q~LOo29b-YpKsY9Lpg$jsM9<>FR*e2_HtHP9&m$5eavVP{Dajok0n>W{xyYnL4p{^W!wL?Df6-3rKV>>E&(!bW@Dqv}ECinJ z$tbV^R*0nCKmjYL0V~>3C0o4u4w=lN!LG9g!r!^hUg1T(?2;5A+-R)7(wMzCwc8Oe z#jWq4e@0JEF6zk#ECfv?#M(KIlL6g>9gh9T4ya_@stUm3@Uv_EQTqV~=@@Y9&u7>{ zgX%$+g6W&wG?GcdZZ|irk)MC3u6~CC-|rjy&-ceYf+v$UQh^Z%%C>bsD%JEL_-h@J zO&i4*;EKwZkiPi4JujuA8O;~UWoeb7%=xAbxo*_G#e+~3rJtC&KqyO=s4gu{il7BqN!YXT4y*_zBPJtAxWT- zg~790oUlKzdRTtnnU{4oS+XEB5(58avfPaGq3#~d!z|K&sE9oC&rVsU*ln-l?uez= zE`=vn`b9*?ph2qyJSnuc$U^9{!3&JrGEcQ0!l zOi$D9Q%gMW-kO*X|tVk;6;57N`jl7nRJM3xpr&) zoFZc0Z1jfHq-wqLsdGo2FeuuClv1C|m4pMQgPcX5#1 zw53e|26ko_Bpz2}4|V>?_yGzgS3oGJa(|*Tmxu|k`@FdUAqwDGo1}S+VvhxpzRd4^ zX&XgYa+iqWkb%L`!0YSh*~T@xEfjoJ7ED&|xAys0lTFc+pLlPpdgE|!x0{h)Q`4Xm z!tCpOwnzMg$rXdbJ*LIs!&}kkqh|!vs=Q_VMH`JV?nvrF6JVV97x;%uf4=HjZ)p|B zhUbC)-Z&KMO091#3cLMlN8dQX!)X&$%i><7Y8MuUW|l<^elU`3eL4E~$COg@$YNm+ zO@1YogFRta9`T!oVp>?KnW^|^MshekgqB-CH*S{yb9x|=GWvw=a#|`#Hp%%Ney$Wy z?;5@Y;L}b3|NXdyUEZ?eWDPD;K<^K(E4~5ZPK}8qy;Ac{ccrt_u>(a5a+TGgp67Na zO`(6VQtv-42d*=>`kT?W`Wg#+A!|IbMm<-FY3A9mLi#4dc%Jm;deOsI%VZSy+iG-F zrehr2f}>fy?u~km=f}K(=j?Avq zx#Xg3o7zhHstRoS(4JEri&2Zsc~4YkYAW=MS}P1ZV&d83G85DG5UM7l#Rgori=L?> zy!#?`gkAipc1V|!5N19DouLNW5CnE&7-3Jwr?|Kl!5l`7|Lpb;?(7@W7ph*1$hP7& z)IZDjaoocf(&3X?niO?F%vTrug{IwF0bUzm+$Ci!`!VI9>@@%Xs z%cS#j`BCnr-Qg^?6qXE==9se{SM%$I+g+N2E173^0{PU{ZfBSwW%IsH7B#wWc6nAh zj`t0J=6ze8p8KX$bIYZ4-)__>$W@#W{;TV3x39qAX;5OTcW4&}v31Z-hrKQ`Q8q`# zg`1<+XXLZ0tCK44-=TSJ#wdJAlTdeYxLK2gKWlQrrPgdh-m11i4pmlOLH4cL9_h@v z4_?VrILwkUL31=n0kMXW2atc9LW1(D*enG8rL1eq+?z5qym(nz>8e3XBu=WU_LZRg zIf_{f*oQ3{1@LZ!yJ8FKTm05Gbmj(^vY6oe$(rT17#bnJ!Yh2_s9w}OA04!@)8|>I zpC%j!&2n|EPN?y%+>QD=+_rDpf1x%Yg`5nF#LXXaDOwO+l2D-UlFpqkj|uVxYsK zi=FengE{va?(eSXv9GBuuCd^#hekqmmt7=#!n(6xO@h?*w!>v7HtQI6Yw8r9t}6t0 z;{}2eh@j0#_p|Q7lfk)99JMyASgNa$qELi?x9oc?

^CgjdKMoA=Xkg5;=Vyp-kL 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

}U!%#>h2_Wo((Yv0=s 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�IIfi~g+7`HDo7`c+XFV6}&5&2mx*C%!f@>VE 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 zℜ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 IWFLk84+(WSz5oCK literal 0 HcmV?d00001 diff --git a/keyboards/ergodox/keymaps/norwegian_programmer_osx_pc_colemak/keymap.c b/keyboards/ergodox/keymaps/norwegian_programmer_osx_pc_colemak/keymap.c new file mode 100644 index 0000000000..acf74a47d2 --- /dev/null +++ b/keyboards/ergodox/keymaps/norwegian_programmer_osx_pc_colemak/keymap.c @@ -0,0 +1,180 @@ +#include "ergodox.h" +#include "debug.h" +#include "action_layer.h" +#include "keymap_norwegian.h" + +#define BASE 0 // default layer +#define BASE_MAC 1 // default layer mac +#define NUMB_FUNC 2 // numbers and function keys + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +/* Keymap 0: Basic layer PC + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | * | [ | ] | { | } | ~ |Mac/PC| | ^ | $ | ( | ) | < | > | @ | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | + | Q | W | F | P | G | " | | ' | J | L | U | Y | Å | Æ | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | / | A | R | S | T | D |------| |------| H | N | E | I | O | Ø | + * |--------+------+------+------+------+------| ; | | = |------+------+------+------+------+--------| + * | - | Z | X | C | V | B | | | | K | M | RIGHT| DOWN | UP | _ | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * |Alt/esc| ! | ? | : | TAB | | LEFT | _ | & | | |Num/fn| + * `----------------------------------' `----------------------------------' + * ,-------------. ,--------------. + * | # | ` | |Insert| % | + * ,------|------|------| |------+-------+------. + * | | | ´ | | Del | | | + * | Shift|Ctrl/.|------| |------| Enter |Space | + * | | |GUI/, | | Bspc | | | + * `--------------------' `---------------------' + */ +[BASE] = KEYMAP( + // left hand + KC_PAST, NO_LBRC, NO_RBRC, NO_LCBR, NO_RCBR, KC_FN2, TG(1), + KC_PPLS, KC_Q, KC_W, KC_F, KC_P, KC_G, NO_QUO2, + KC_PSLS, KC_A, KC_R, KC_S, KC_T, KC_D, + KC_PMNS, KC_Z, KC_X, KC_C, KC_V, KC_B, NO_SCLN, + ALT_T(KC_ESC), KC_EXLM , NO_QUES, NO_COLN, KC_TAB, + KC_HASH, KC_FN7, + KC_FN6, + KC_FN1,CTL_T(KC_DOT),GUI_T(KC_COMMA), + // right hand + KC_FN5, NO_DLR, NO_LPRN, NO_RPRN ,KC_FN3, KC_FN4,NO_AT, + NO_APOS, KC_J, KC_L, KC_U, KC_Y, NO_AA, NO_AE , + KC_H, KC_N, KC_E, KC_I, KC_O, NO_OSLH, + NO_EQL, KC_K, KC_M, KC_RIGHT, KC_DOWN, KC_UP, NO_BSLS, + KC_LEFT, NO_UNDS, NO_AMPR, NO_PIPE, OSL(2), + KC_INSERT, KC_PERC, + KC_DELT, + KC_BSPC,KC_ENT,KC_SPC + ), +/* Keymap 1: Basic layer MAC (Same as pc, except for cmd/ctrl, which are swapped) + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | \ | | | { | } | | | | | $ | | | < | > | @ | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | | | | | | | | | | | | | | | + * |--------+------+------+------+------+------| | | ' |------+------+------+------+------+--------| + * | | | | | | |------| |------| | | | | | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | | | | | | | | | | | | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | |,/Ctrl| | | | ` | |Num/fn| + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | ` | | | | + * ,------|------|------| |------+------+------. + * | | | ´ | | | | | + * | |GUI/. |------| |------| | | + * | | |crtl/,| | | | | + * `--------------------' `--------------------' + */ +[BASE_MAC] = KEYMAP( + KC_TRNS, KC_TRNS,KC_TRNS, NO_LCBR_MAC,NO_RCBR_MAC, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS , KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, NO_GRV_MAC, + KC_FN10, + KC_TRNS,GUI_T(KC_DOT) , CTL_T(KC_COMMA), + // right hand + KC_TRNS, NO_DLR_MAC, KC_TRNS,KC_TRNS,KC_FN8, KC_FN9,NO_AT_MAC, + NO_APOS_MAC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, NO_BSLS_MAC, + KC_TRNS, KC_TRNS, KC_TRNS, NO_PIPE_MAC, OSL(2), + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS +), + +/* Keymap 2: Number ++´ánd Fn layer pc + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | | | | | | | | | | F9 | F10 | F11 | F12 | | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | 8 | 7 | 6 | 5 | 9 | | | | | F5 | F6 | F7 | F8 | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | 4 | 3 | 2 | 1 | 0 |------| |------| | F1 | F2 | F3 | F4 | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | | | | | | | | | END | PGDWN| PGUP | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | | | | HOME | | | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | | | + * | | |------| |------| | | + * | | | | | | | | + * `--------------------' `--------------------' + */ +[NUMB_FUNC] = KEYMAP( + NO_ASTR, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + NO_PLUS, KC_8, KC_7,KC_6,KC_5, KC_9 , KC_TRNS, + NO_SLSH , KC_4 , KC_3 , KC_2 , KC_1 , KC_0, + NO_MINS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, + // right hand + KC_TRNS, KC_TRNS, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, + KC_TRNS, KC_TRNS, KC_F5, KC_F6 , KC_F7, KC_F8, KC_TRNS, + KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_TRNS, + KC_TRNS, KC_HOME, KC_TRNS, KC_END, KC_PGDN, KC_PGUP, KC_TRNS, + KC_HOME, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS +) +}; + +enum macro_id { + TILDE_NO, LESS_NO, GRTR_NO, CIRC_NO, ACUT_NO, GRV_NO, LESS_NO_MAC, GRTR_NO_MAC, ACUT_NO_MAC +}; + +const uint16_t PROGMEM fn_actions[] = { + [1] = ACTION_MODS_ONESHOT(MOD_LSFT), // Sticky shift light. Tap for the next keypress to be shifted. Hold for regular shift. + [2] = ACTION_MACRO(TILDE_NO), // Completed ~ character(pc and mac), no space needed. + [3] = ACTION_MACRO(LESS_NO), // < completed on keypress down, to avoid shifting the next character if it is not released first. + [4] = ACTION_MACRO(GRTR_NO), // > completed on keypress down, to avoid shifting the next character if it is not released first. + [5] = ACTION_MACRO(CIRC_NO), // Completed ^ character, no space needed. + [6] = ACTION_MACRO(ACUT_NO), // Completed ´ character, no space needed. + [7] = ACTION_MACRO(GRV_NO), // Completed ` character, no space needed. + [8] = ACTION_MACRO(LESS_NO_MAC), // < completed on keypress down, to avoid same button problem when typing <> quickly + [9] = ACTION_MACRO(GRTR_NO_MAC), // > completed on keypress down, to avoid same button problem when typing <> quickly + [10] = ACTION_MACRO(ACUT_NO_MAC), // Completed ´ character, no space needed +}; + + + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + keyevent_t event = record->event; + + switch (id) { + case TILDE_NO: + return (event.pressed ? MACRO( D(RALT), T(RBRC), U(RALT), T(SPC), END ) : MACRO_NONE); + case LESS_NO: + return (event.pressed ? MACRO( T(NUBS), END ) : MACRO_NONE); + case GRTR_NO: + return (event.pressed ? MACRO( D(LSFT), T(NUBS), U(LSFT), END ) : MACRO_NONE); + case CIRC_NO: + return (event.pressed ? MACRO( D(LSFT), T(RBRC), U(LSFT), T(SPC), END ) : MACRO_NONE); + case ACUT_NO: + return (event.pressed ? MACRO( D(RALT), T(EQL), U(RALT), T(SPC), END ) : MACRO_NONE); + case GRV_NO: + return (event.pressed ? MACRO( D(LSFT), T(EQL), T(SPC), U(LSFT), END ) : MACRO_NONE); + case LESS_NO_MAC: + return (event.pressed ? MACRO( T(GRV), END ) : MACRO_NONE); + case GRTR_NO_MAC: + return (event.pressed ? MACRO( D(LSFT), T(GRV), U(LSFT), END ) : MACRO_NONE); + case ACUT_NO_MAC: + return (event.pressed ? MACRO( T(EQL), T(SPC), END ) : MACRO_NONE); + } + return MACRO_NONE; +}; diff --git a/keyboards/ergodox/keymaps/norwegian_programmer_osx_pc_colemak/readme.md b/keyboards/ergodox/keymaps/norwegian_programmer_osx_pc_colemak/readme.md new file mode 100644 index 0000000000..aaaec3e534 --- /dev/null +++ b/keyboards/ergodox/keymaps/norwegian_programmer_osx_pc_colemak/readme.md @@ -0,0 +1,30 @@ +# Norwegian Colemak setup with osx/pc toggle + +## Motivation +I wanted a Norwegian Colemak setup that worked in a similar way on both my Mac and PC. I also wanted the keyboard to translate from a standard Norwegian keyboard OS setup. + +## Overview +The setup is created to be programmer friendly. +- Most of the symbols used in code can be activated without using layers or shift key. +- You can reach the IDE/OS shortcut activators(Ctrl, Win/Cmd, Alt, Shift) with the thumb or the wrist. +- Navigation is prioritized, arrows below the home row. + +## PC/Mac toggle +The default setup is for Norwegian keyboard setting(not colemak software variants) on a PC(Windows or Linux) or Mac. Use the Mac/PC toggle button to switch between OSX and PC setup. The settings will be reverted to PC setup each time you restart/connect the keyboard. + +## Layers +Since symbols are prioritized in this setup, numbers and function keys are on a new layer. The easiest way to use the layer switch(and also the alt key), is to push your hand right below the little finger, on the key. You will then have all your fingers free to type numbers or press function keys. + +## Tap-shift +Tap for the next character to be shifted, hold down for regular shift. + +## Comma dot and escape +Comma, dot and escape share buttons with modifier keys. Tap to access these keys, hold down to use the keys as modifier keys. + +## Numpad symbols ++-/* are implemented with the numpad keycodes. The benefit is that they will work better with shortcuts in certain programs. For some reason, the default setting in the osx terminal is to not accept numpad characters for '/' and '-'. For a solution, see https://discussions.apple.com/thread/6613968?start=0&tstart=0. +If you really need the norwegian symbols in a program, you can access them using the number toggle button. + +## Layout + +![keyboard-layout](keyboard-layout.png) From da16733e7ab66ebd27fde21312990f5733966a52 Mon Sep 17 00:00:00 2001 From: Roman Zolotarev Date: Wed, 7 Sep 2016 07:55:22 +0800 Subject: [PATCH 34/34] Change CTL_T(KC_ESC) to KC_LCTRL and update readme --- .../romanzolotarev-norman-osx/keymap.c | 30 +++++++-------- .../romanzolotarev-norman-osx/readme.md | 37 +++++++++++++------ 2 files changed, 40 insertions(+), 27 deletions(-) diff --git a/keyboards/ergodox/keymaps/romanzolotarev-norman-osx/keymap.c b/keyboards/ergodox/keymaps/romanzolotarev-norman-osx/keymap.c index 24d0c4ecb7..2c64304404 100644 --- a/keyboards/ergodox/keymaps/romanzolotarev-norman-osx/keymap.c +++ b/keyboards/ergodox/keymaps/romanzolotarev-norman-osx/keymap.c @@ -6,23 +6,23 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [BASE] = KEYMAP( - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_F5, - KC_TAB, KC_Q, KC_W, KC_D, KC_F, KC_K, KC_BSLS, - CTL_T(KC_ESC), KC_A, KC_S, KC_E, KC_T, KC_G, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_LBRC, - KC_F1, KC_F2, KC_F3, KC_F4, KC_LGUI, - /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_VOLD, KC_MUTE, - /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_VOLU, - /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_BSPC, CTL_T(KC_ESC), KC_LALT, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_F5, + KC_TAB, KC_Q, KC_W, KC_D, KC_F, KC_K, KC_BSLS, + KC_LCTRL, KC_A, KC_S, KC_E, KC_T, KC_G, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_LBRC, + KC_F1, KC_F2, KC_F3, KC_F4, KC_LGUI, + /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_VOLD, KC_MUTE, + /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_VOLU, + /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_BSPC, CTL_T(KC_ESC), KC_LALT, // - /*-*/ KC_F6, KC_6, KC_7, KC_8, KC_9, KC_0, KC_EQL, - /*-*/ KC_NO, KC_J, KC_U, KC_R, KC_L, KC_SCLN, KC_MINS, - /*-*/ /*-*/ KC_Y, KC_N, KC_I, KC_O, KC_H, KC_ENT, - /*-*/ KC_RBRC, KC_P, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, - /*-*/ /*-*/ /*-*/ KC_RGUI, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, - KC_MPLY, KC_MNXT, + /*-*/ KC_F6, KC_6, KC_7, KC_8, KC_9, KC_0, KC_EQL, + /*-*/ KC_NO, KC_J, KC_U, KC_R, KC_L, KC_SCLN, KC_MINS, + /*-*/ /*-*/ KC_Y, KC_N, KC_I, KC_O, KC_H, KC_ENT, + /*-*/ KC_RBRC, KC_P, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, + /*-*/ /*-*/ /*-*/ KC_RGUI, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, + KC_MPLY, KC_MNXT, KC_MPRV, - KC_RALT, KC_QUOT, KC_SPC + KC_RALT, KC_QUOT, KC_SPC ) }; diff --git a/keyboards/ergodox/keymaps/romanzolotarev-norman-osx/readme.md b/keyboards/ergodox/keymaps/romanzolotarev-norman-osx/readme.md index 80475ab21e..a86061285a 100644 --- a/keyboards/ergodox/keymaps/romanzolotarev-norman-osx/readme.md +++ b/keyboards/ergodox/keymaps/romanzolotarev-norman-osx/readme.md @@ -1,28 +1,41 @@ # Roman's Layout -There is only one layer based on [Norman layout](https://normanlayout.info/). +There is only one layer, and it is based on [Norman +layout](https://normanlayout.info/). Looking for multiple-layer layouts? -- [Symbols, arrows, plover, HJKL arrows](../romanzolotarev-norman-plover-osx-hjkl/) +- [Symbols, arrows, plover, HJKL + arrows](../romanzolotarev-norman-plover-osx-hjkl/) - [Same with IJKL arrows](../romanzolotarev-norman-plover-osx/) [![keyboard-layout](romanzolotarev-norman-osx.png)](http://www.keyboard-layout-editor.com/#/gists/9e89d54f1ea6eeeb7dab1b2d19d28195) -## Functional Keys +## How to use Vim key -- Tap `F1` to mute microphone via [Shush](http://mizage.com/shush/). -- Tap `F2` to copy screenshot to the clipboard. -- Hold `SHIFT` and tap `F2` to save screenshot as a file. -- Tap `F3`, `F4`, `F5`, `F6` to resize a window via [Divvy](http://mizage.com/divvy/). - -## CTRL/ESC - -CTRL and ESC are frequently used in Vim. +It is `CTL_T(KC_ESC)` and it works this way: - Tap `CTRL/ESC` to send `ESC`. - Hold `CTRL/ESC` to use as `CTRL`. -## Activate N-rollover +## How to activate N-rollover - Hold left `SHIFT` and right `SHIRT` and then tap `N`. + +## How to make and flash on OS X + +First you need to install few brew packages. + +```bash +brew tap osx-cross/avr +brew install dfu-programmer avr-libc teensy_loader_cli +``` + +Then you can clone this repository, make and flash your ErgoDox. + +```bash +git clone https://github.com/romanzolotarev/qmk_firmware +cd qmk_firmware/keyboards/ergodox +# Optionally tweak ./keymaps/romanzolotarev-norman-osx/keymap.c +SLEEP_LED_ENABLED=no KEYMAP=romanzolotarev-norman-osx make teensy +```