From abc3cd4d72ebd7627ebb78a78ad88827fbe4d5f9 Mon Sep 17 00:00:00 2001 From: JeeBak Kim Date: Sun, 31 Jul 2016 03:04:37 -0700 Subject: [PATCH 01/34] Update readme.md --- keyboards/planck/keymaps/jeebak/readme.md | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/keyboards/planck/keymaps/jeebak/readme.md b/keyboards/planck/keymaps/jeebak/readme.md index eb8104379..25fbc5e67 100644 --- a/keyboards/planck/keymaps/jeebak/readme.md +++ b/keyboards/planck/keymaps/jeebak/readme.md @@ -7,7 +7,7 @@ the exact changes. The diagrams in this README shows the highlights of the changes from the default mappings. I also decided to change all calls to `persistant_default_layer_set()` to -`update_tri_layer()` since this is my personal perference. +`default_layer_set()` since this is my personal perference. ## Base Layers (Qwerty/Colemak/Dvorak) These base layers are mostly the same as the default mappings. The interesting @@ -69,11 +69,12 @@ keys at the far left are for quick access to beginning and end of line in vim. as the modifier, with the `IJKL` home row keys representing the inverted-T of the arrow keys. All of the default TouchCursor keymappings for the right hand are represented below. My personalizations include all of the keys shown for -the left hand. Having the `Alt` and `Shift` keys readily accessible from the -home row allows quick word jumps and highlighting when used in conjunction with -the arrow keys. The `KC_UNDO, KC_CUT, KC_COPY, KC_PASTE, KC_FIND,` and -`KC_AGAIN` keycodes have been mapped but they don't seem to work on Mac. -Presumably they'll work under Windows. +the left hand. Having the `Alt` and `Shift` keys (as well as the `Control` key +from the base layers) readily accessible from the home row allows quick word +jumps and highlighting when used in conjunction with the arrow keys. The +`KC_UNDO, KC_CUT, KC_COPY, KC_PASTE, KC_FIND,` and `KC_AGAIN` keycodes have +been mapped but they don't seem to work on Mac. Presumably they'll work under +Windows. ``` ,-----------------------------------------------------------------------------------. | | | |Shift | GUI | ~ |Insert| Home | Up | End | Bksp | | From fdd89e7f0d50f619e8608a4448449a3a627f1da1 Mon Sep 17 00:00:00 2001 From: JeeBak Kim Date: Sun, 31 Jul 2016 17:16:25 -0700 Subject: [PATCH 02/34] Add Alt-Tab, Cmd-Tab, and Ctl-Tab Macros to TouchCursor layer, swap LGUI and LSFT --- keyboards/planck/keymaps/jeebak/keymap.c | 35 ++++++++++++++++++++--- keyboards/planck/keymaps/jeebak/readme.md | 16 ++++++++--- 2 files changed, 43 insertions(+), 8 deletions(-) diff --git a/keyboards/planck/keymaps/jeebak/keymap.c b/keyboards/planck/keymaps/jeebak/keymap.c index ec142ecbb..ef4de074f 100644 --- a/keyboards/planck/keymaps/jeebak/keymap.c +++ b/keyboards/planck/keymaps/jeebak/keymap.c @@ -24,6 +24,7 @@ extern keymap_config_t keymap_config; #define _MOUSE 7 #define _ADJUST 16 +// Keycodes enum planck_keycodes { QWERTY = SAFE_RANGE, COLEMAK, @@ -35,16 +36,25 @@ enum planck_keycodes { EXT_PLV }; +enum macro_keycodes { + KC_ALT_TAB, + KC_CMD_TAB, + KC_CTL_TAB, +}; + // Fillers to make layering more clear #define _______ KC_TRNS #define XXXXXXX KC_NO // Custom macros #define CTL_ESC CTL_T(KC_ESC) // Tap for Esc, hold for Ctrl -#define LT_TC LT(_TOUCHCURSOR, KC_SPC) // L-ayer T-ap T-ouch C-ursor -// ^-- Requires KC_TRNS / _______ for the trigger key in the destination layer #define SFT_ENT SFT_T(KC_ENT) // Tap for Enter, hold for Shift +// Requires KC_TRNS/_______ for the trigger key in the destination layer +#define LT_TC LT(_TOUCHCURSOR, KC_SPC) // L-ayer T-ap T-ouch C-ursor. #define LT_ML LT(_MOUSE, KC_A) // L-ayer T-ap M-ouse C-ursor (on A) +#define ALT_TAB M(KC_ALT_TAB) // Macro for Alt-Tab +#define CMD_TAB M(KC_CMD_TAB) // Macro for Cmd-Tab +#define CTL_TAB M(KC_CTL_TAB) // Macro for Ctl-Tab const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { @@ -140,7 +150,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* TouchCursor layer (http://martin-stone.github.io/touchcursor/) plus personal customizations * ,-----------------------------------------------------------------------------------. - * | | | |Shift | GUI | ~ |Insert| Home | Up | End | Bksp | | + * |AltTab|CmdTab|CtlTab| GUI |Shift | ~ |Insert| Home | Up | End | Bksp | | * |------+------+------+------+------+-------------+------+------+------+------+------| * | | Alt |Space | | Find |Again | PgUp | Left | Down |Right | | | * |------+------+------+------+------+------|------+------+------+------+------+------| @@ -154,7 +164,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [_TOUCHCURSOR] = { - {_______, _______, _______, KC_LSFT, KC_LGUI, KC_TILD, KC_INS, KC_HOME, KC_UP, KC_END, KC_BSPC, _______}, + {ALT_TAB, CMD_TAB, CTL_TAB, KC_LGUI, KC_LSFT, KC_TILD, KC_INS, KC_HOME, KC_UP, KC_END, KC_BSPC, _______}, {_______, KC_LALT, KC_SPC, _______, KC_FIND,KC_AGAIN, KC_PGUP, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______}, {_______, KC_UNDO, KC_CUT, KC_COPY, KC_PASTE,KC_GRV, KC_PGDN, KC_DEL, _______, _______, _______, _______}, {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} @@ -330,6 +340,23 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { return true; } +/* + * Macro definition + */ +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + switch (id) { + case KC_ALT_TAB: + return (record->event.pressed ? MACRO( D(LALT), D(TAB), END ) : MACRO( U(TAB), END )); + case KC_CMD_TAB: + return (record->event.pressed ? MACRO( D(LGUI), D(TAB), END ) : MACRO( U(TAB), END )); + case KC_CTL_TAB: + return (record->event.pressed ? MACRO( D(LCTRL), D(TAB), END ) : MACRO( U(TAB), END )); + } + + return MACRO_NONE; +} + void matrix_init_user(void) { #ifdef AUDIO_ENABLE startup_user(); diff --git a/keyboards/planck/keymaps/jeebak/readme.md b/keyboards/planck/keymaps/jeebak/readme.md index 25fbc5e67..f7daf53d8 100644 --- a/keyboards/planck/keymaps/jeebak/readme.md +++ b/keyboards/planck/keymaps/jeebak/readme.md @@ -9,6 +9,11 @@ changes from the default mappings. I also decided to change all calls to `persistant_default_layer_set()` to `default_layer_set()` since this is my personal perference. +## Macros +``` +#define ALT_TAB M(KC_ALT_TAB) +``` + ## Base Layers (Qwerty/Colemak/Dvorak) These base layers are mostly the same as the default mappings. The interesting changes are shown below. The `Ctrl/Esc`, mapped using `CTL_T(KC_ESC)` will emit @@ -72,12 +77,15 @@ are represented below. My personalizations include all of the keys shown for the left hand. Having the `Alt` and `Shift` keys (as well as the `Control` key from the base layers) readily accessible from the home row allows quick word jumps and highlighting when used in conjunction with the arrow keys. The -`KC_UNDO, KC_CUT, KC_COPY, KC_PASTE, KC_FIND,` and `KC_AGAIN` keycodes have -been mapped but they don't seem to work on Mac. Presumably they'll work under -Windows. +`AltTab` macro is not only useful under Windows, but also under Mac when used +with alternative switchers like [HyperSwitch](https://bahoom.com/hyperswitch). +The `CmdTab` and `CtlTab` sequences are duplicated for easy access while in +this layer. The `KC_UNDO, KC_CUT, KC_COPY, KC_PASTE, KC_FIND,` and `KC_AGAIN` +keycodes have been mapped but they don't seem to work on Mac. Presumably +they'll work under Windows. ``` ,-----------------------------------------------------------------------------------. - | | | |Shift | GUI | ~ |Insert| Home | Up | End | Bksp | | + |AltTab|CmdTab|CtlTab| GUI |Shift | ~ |Insert| Home | Up | End | Bksp | | |------+------+------+------+------+-------------+------+------+------+------+------| | | Alt |Space | | Find |Again | PgUp | Left | Down |Right | | | |------+------+------+------+------+------|------+------+------+------+------+------| From 16f4a3178459305fd517d23f028812620e64c18f Mon Sep 17 00:00:00 2001 From: JeeBak Kim Date: Mon, 1 Aug 2016 15:28:05 -0700 Subject: [PATCH 03/34] Number layer tweaks --- keyboards/planck/keymaps/jeebak/keymap.c | 8 ++++---- keyboards/planck/keymaps/jeebak/readme.md | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/keyboards/planck/keymaps/jeebak/keymap.c b/keyboards/planck/keymaps/jeebak/keymap.c index ef4de074f..e39887394 100644 --- a/keyboards/planck/keymaps/jeebak/keymap.c +++ b/keyboards/planck/keymaps/jeebak/keymap.c @@ -134,17 +134,17 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * ,-----------------------------------------------------------------------------------. * | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | * |------+------+------+------+------+-------------+------+------+------+------+------| - * | $ | 4 | 5 | 6 | . | + | * | 4 | 5 | 6 | - | | | + * | $ | 4 | 5 | 6 | . | + | . | 4 | 5 | 6 | * | | | * |------+------+------+------+------+------|------+------+------+------+------+------| - * | = | 7 | 8 | 9 | 0 | - | / | 1 | 2 | 3 | . | \ | + * | = | 7 | 8 | 9 | 0 | - | . | 1 | 2 | 3 | / | \ | * |------+------+------+------+------+------+------+------+------+------+------+------| * |Brite | | | | | | | Prev | Stop | Slct | Mute | * `-----------------------------------------------------------------------------------' */ [_RAISE] = { {KC_0, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, - {KC_DLR, KC_4, KC_5, KC_6, KC_DOT, KC_PLUS, KC_ASTR, KC_4, KC_5, KC_6, KC_MINS, KC_PIPE}, - {KC_EQL, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_SLSH, KC_1, KC_2, KC_3, KC_DOT, KC_BSLS}, + {KC_DLR, KC_4, KC_5, KC_6, KC_DOT, KC_PLUS, KC_DOT, KC_4, KC_5, KC_6, KC_ASTR, KC_PIPE}, + {KC_EQL, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_DOT, KC_1, KC_2, KC_3, KC_SLSH, KC_BSLS}, {BACKLIT, _______, _______, _______, _______, _______, _______, _______, KC_MPRV, KC_MSTP, KC_MSEL, KC_MUTE} }, diff --git a/keyboards/planck/keymaps/jeebak/readme.md b/keyboards/planck/keymaps/jeebak/readme.md index f7daf53d8..de2096954 100644 --- a/keyboards/planck/keymaps/jeebak/readme.md +++ b/keyboards/planck/keymaps/jeebak/readme.md @@ -61,9 +61,9 @@ keys at the far left are for quick access to beginning and end of line in vim. ,-----------------------------------------------------------------------------------. | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | |------+------+------+------+------+-------------+------+------+------+------+------| - | $ | 4 | 5 | 6 | . | + | * | 4 | 5 | 6 | - | | | + | $ | 4 | 5 | 6 | . | + | . | 4 | 5 | 6 | * | | | |------+------+------+------+------+------|------+------+------+------+------+------| - | = | 7 | 8 | 9 | 0 | - | / | 1 | 2 | 3 | . | \ | + | = | 7 | 8 | 9 | 0 | - | . | 1 | 2 | 3 | / | \ | |------+------+------+------+------+------+------+------+------+------+------+------| |Brite | | | | | | | Prev | Stop | Slct | Mute | `-----------------------------------------------------------------------------------' From 9a4e72fa7175f0ef3b31c6a6036ac1a5010dc6c1 Mon Sep 17 00:00:00 2001 From: JeeBak Kim Date: Mon, 1 Aug 2016 22:02:39 -0700 Subject: [PATCH 04/34] Add CmdSlash to TouchCursor Layer --- keyboards/planck/keymaps/jeebak/keymap.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/keyboards/planck/keymaps/jeebak/keymap.c b/keyboards/planck/keymaps/jeebak/keymap.c index e39887394..0a6b9cfa0 100644 --- a/keyboards/planck/keymaps/jeebak/keymap.c +++ b/keyboards/planck/keymaps/jeebak/keymap.c @@ -40,6 +40,7 @@ enum macro_keycodes { KC_ALT_TAB, KC_CMD_TAB, KC_CTL_TAB, + KC_CMD_SLSH, }; // Fillers to make layering more clear @@ -55,6 +56,7 @@ enum macro_keycodes { #define ALT_TAB M(KC_ALT_TAB) // Macro for Alt-Tab #define CMD_TAB M(KC_CMD_TAB) // Macro for Cmd-Tab #define CTL_TAB M(KC_CTL_TAB) // Macro for Ctl-Tab +#define CMD_SLSH M(KC_CMD_SLSH) // Macro for Cmd-Slash (personal shortcut to toggle iTerm2 visibility) const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { @@ -166,7 +168,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_TOUCHCURSOR] = { {ALT_TAB, CMD_TAB, CTL_TAB, KC_LGUI, KC_LSFT, KC_TILD, KC_INS, KC_HOME, KC_UP, KC_END, KC_BSPC, _______}, {_______, KC_LALT, KC_SPC, _______, KC_FIND,KC_AGAIN, KC_PGUP, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______}, - {_______, KC_UNDO, KC_CUT, KC_COPY, KC_PASTE,KC_GRV, KC_PGDN, KC_DEL, _______, _______, _______, _______}, + {_______, KC_UNDO, KC_CUT, KC_COPY, KC_PASTE,KC_GRV, KC_PGDN, KC_DEL, _______, _______, CMD_SLSH,_______}, {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} }, @@ -352,6 +354,8 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) return (record->event.pressed ? MACRO( D(LGUI), D(TAB), END ) : MACRO( U(TAB), END )); case KC_CTL_TAB: return (record->event.pressed ? MACRO( D(LCTRL), D(TAB), END ) : MACRO( U(TAB), END )); + case KC_CMD_SLSH: + return (record->event.pressed ? MACRO( D(LGUI), D(SLSH),END ) : MACRO( U(SLSH),END )); } return MACRO_NONE; From 7db1d7902bfb7044b899859d95846fa92bad61db Mon Sep 17 00:00:00 2001 From: JeeBak Kim Date: Wed, 3 Aug 2016 20:00:54 -0700 Subject: [PATCH 05/34] Workaround for KC_COPY, etc. based on current AG_NORM/AG_SWAP setting --- keyboards/planck/keymaps/jeebak/keymap.c | 47 +++++++++++++++++++++-- keyboards/planck/keymaps/jeebak/readme.md | 12 +++--- 2 files changed, 50 insertions(+), 9 deletions(-) diff --git a/keyboards/planck/keymaps/jeebak/keymap.c b/keyboards/planck/keymaps/jeebak/keymap.c index 0a6b9cfa0..25918dc98 100644 --- a/keyboards/planck/keymaps/jeebak/keymap.c +++ b/keyboards/planck/keymaps/jeebak/keymap.c @@ -41,6 +41,12 @@ enum macro_keycodes { KC_CMD_TAB, KC_CTL_TAB, KC_CMD_SLSH, + KC_AG_FIND, + KC_AG_AGAIN, + KC_AG_UNDO, + KC_AG_CUT, + KC_AG_COPY, + KC_AG_PASTE, }; // Fillers to make layering more clear @@ -57,6 +63,12 @@ enum macro_keycodes { #define CMD_TAB M(KC_CMD_TAB) // Macro for Cmd-Tab #define CTL_TAB M(KC_CTL_TAB) // Macro for Ctl-Tab #define CMD_SLSH M(KC_CMD_SLSH) // Macro for Cmd-Slash (personal shortcut to toggle iTerm2 visibility) +#define AG_FIND M(KC_AG_FIND) // Macros for Cmd-[x] vs Ctrl-[x] based on current AG_NORM or AG_SWAP settings +#define AG_AGAIN M(KC_AG_AGAIN) +#define AG_UNDO M(KC_AG_UNDO) +#define AG_CUT M(KC_AG_CUT) +#define AG_COPY M(KC_AG_COPY) +#define AG_PASTE M(KC_AG_PASTE) const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { @@ -167,8 +179,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_TOUCHCURSOR] = { {ALT_TAB, CMD_TAB, CTL_TAB, KC_LGUI, KC_LSFT, KC_TILD, KC_INS, KC_HOME, KC_UP, KC_END, KC_BSPC, _______}, - {_______, KC_LALT, KC_SPC, _______, KC_FIND,KC_AGAIN, KC_PGUP, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______}, - {_______, KC_UNDO, KC_CUT, KC_COPY, KC_PASTE,KC_GRV, KC_PGDN, KC_DEL, _______, _______, CMD_SLSH,_______}, + {_______, KC_LALT, KC_SPC, _______, AG_FIND,AG_AGAIN, KC_PGUP, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______}, + {_______, AG_UNDO, AG_CUT, AG_COPY, AG_PASTE,KC_GRV, KC_PGDN, KC_DEL, _______, _______, CMD_SLSH,_______}, {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} }, @@ -347,15 +359,42 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { */ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { + if (!eeconfig_is_enabled()) { + eeconfig_init(); + } + + bool use_cmd = true; // Use, for example, Cmd-Tab, Cmd-C, Cmd-V, etc. + // Compare to MAGIC_SWAP_ALT_GUI and MAGIC_UNSWAP_ALT_GUI configs, set in: + // quantum/quantum.c + if(keymap_config.swap_lalt_lgui == 1 && keymap_config.swap_ralt_rgui == 1) { + use_cmd = false; // ... or, Alt-Tab, Ctrl-C, Ctrl-V, etc. + } + switch (id) { case KC_ALT_TAB: - return (record->event.pressed ? MACRO( D(LALT), D(TAB), END ) : MACRO( U(TAB), END )); + if(use_cmd) { return (record->event.pressed ? MACRO( D(LGUI), D(TAB), END ) : MACRO( U(TAB), END )); } + else { return (record->event.pressed ? MACRO( D(LALT), D(TAB), END ) : MACRO( U(TAB), END )); } case KC_CMD_TAB: - return (record->event.pressed ? MACRO( D(LGUI), D(TAB), END ) : MACRO( U(TAB), END )); + if(use_cmd) { return (record->event.pressed ? MACRO( D(LALT), D(TAB), END ) : MACRO( U(TAB), END )); } + else { return (record->event.pressed ? MACRO( D(LGUI), D(TAB), END ) : MACRO( U(TAB), END )); } + case KC_CTL_TAB: return (record->event.pressed ? MACRO( D(LCTRL), D(TAB), END ) : MACRO( U(TAB), END )); case KC_CMD_SLSH: return (record->event.pressed ? MACRO( D(LGUI), D(SLSH),END ) : MACRO( U(SLSH),END )); + + case KC_AG_FIND: + return use_cmd ? MACRODOWN( D(LGUI), T(F), END ) : MACRODOWN( D(LCTRL), T(F), END ); + case KC_AG_AGAIN: + return use_cmd ? MACRODOWN( D(LGUI), T(G), END ) : MACRODOWN( D(LCTRL), T(G), END ); + case KC_AG_UNDO: + return use_cmd ? MACRODOWN( D(LGUI), T(Z), END ) : MACRODOWN( D(LCTRL), T(Z), END ); + case KC_AG_CUT: + return use_cmd ? MACRODOWN( D(LGUI), T(X), END ) : MACRODOWN( D(LCTRL), T(X), END ); + case KC_AG_COPY: + return use_cmd ? MACRODOWN( D(LGUI), T(C), END ) : MACRODOWN( D(LCTRL), T(C), END ); + case KC_AG_PASTE: + return use_cmd ? MACRODOWN( D(LGUI), T(V), END ) : MACRODOWN( D(LCTRL), T(V), END ); } return MACRO_NONE; diff --git a/keyboards/planck/keymaps/jeebak/readme.md b/keyboards/planck/keymaps/jeebak/readme.md index de2096954..094bc2a0e 100644 --- a/keyboards/planck/keymaps/jeebak/readme.md +++ b/keyboards/planck/keymaps/jeebak/readme.md @@ -77,15 +77,17 @@ are represented below. My personalizations include all of the keys shown for the left hand. Having the `Alt` and `Shift` keys (as well as the `Control` key from the base layers) readily accessible from the home row allows quick word jumps and highlighting when used in conjunction with the arrow keys. The -`AltTab` macro is not only useful under Windows, but also under Mac when used +`Alt-Tab` macro is not only useful under Windows, but also under Mac when used with alternative switchers like [HyperSwitch](https://bahoom.com/hyperswitch). -The `CmdTab` and `CtlTab` sequences are duplicated for easy access while in +The `Cmd-Tab` and `Ctrl-Tab` sequences are duplicated for easy access while in this layer. The `KC_UNDO, KC_CUT, KC_COPY, KC_PASTE, KC_FIND,` and `KC_AGAIN` -keycodes have been mapped but they don't seem to work on Mac. Presumably -they'll work under Windows. +keycodes do not seem to work. There are macros in place that'll "automatically" +choose the correct version (`Cmd-Tab` vs. `Alt-Tab`, `Cmd-C` vs. `Ctrl-C`, +etc.) depending on which layout you've currently selected (`AG_NORM` or +`AG_SWAP`) in the `_ADJUST` layer. ``` ,-----------------------------------------------------------------------------------. - |AltTab|CmdTab|CtlTab| GUI |Shift | ~ |Insert| Home | Up | End | Bksp | | + |CmdTab|AltTab|CtlTab| GUI |Shift | ~ |Insert| Home | Up | End | Bksp | | |------+------+------+------+------+-------------+------+------+------+------+------| | | Alt |Space | | Find |Again | PgUp | Left | Down |Right | | | |------+------+------+------+------+------|------+------+------+------+------+------| From 36abd4463fec1623e7eb590bb7960c6655cf2b70 Mon Sep 17 00:00:00 2001 From: JeeBak Kim Date: Thu, 4 Aug 2016 14:26:03 -0700 Subject: [PATCH 06/34] Revert swapp of AltTab/CmdTab in readme. Layout did not change --- keyboards/planck/keymaps/jeebak/readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/keyboards/planck/keymaps/jeebak/readme.md b/keyboards/planck/keymaps/jeebak/readme.md index 094bc2a0e..48eb23264 100644 --- a/keyboards/planck/keymaps/jeebak/readme.md +++ b/keyboards/planck/keymaps/jeebak/readme.md @@ -87,7 +87,7 @@ etc.) depending on which layout you've currently selected (`AG_NORM` or `AG_SWAP`) in the `_ADJUST` layer. ``` ,-----------------------------------------------------------------------------------. - |CmdTab|AltTab|CtlTab| GUI |Shift | ~ |Insert| Home | Up | End | Bksp | | + |AltTab|CmdTab|CtlTab| GUI |Shift | ~ |Insert| Home | Up | End | Bksp | | |------+------+------+------+------+-------------+------+------+------+------+------| | | Alt |Space | | Find |Again | PgUp | Left | Down |Right | | | |------+------+------+------+------+------|------+------+------+------+------+------| From 545925fb1b92252fe0bad5a675727d52bea161ef Mon Sep 17 00:00:00 2001 From: Seth Chandler Date: Fri, 5 Aug 2016 23:19:12 -0400 Subject: [PATCH 07/34] remove orphaned clueboard files --- keyboards/clueboard2/Makefile | 71 ------------------------------- keyboards/clueboard2/clueboard2.c | 63 --------------------------- 2 files changed, 134 deletions(-) delete mode 100644 keyboards/clueboard2/Makefile delete mode 100644 keyboards/clueboard2/clueboard2.c diff --git a/keyboards/clueboard2/Makefile b/keyboards/clueboard2/Makefile deleted file mode 100644 index e9367a90d..000000000 --- a/keyboards/clueboard2/Makefile +++ /dev/null @@ -1,71 +0,0 @@ - - -# MCU name -#MCU = at90usb1287 -MCU = atmega32u4 - -# Processor frequency. -# This will define a symbol, F_CPU, in all source code files equal to the -# processor frequency in Hz. You can then use this symbol in your source code to -# calculate timings. Do NOT tack on a 'UL' at the end, this will be done -# automatically to create a 32-bit value in your source code. -# -# This will be an integer division of F_USB below, as it is sourced by -# F_USB after it has run through any CPU prescalers. Note that this value -# does not *change* the processor frequency - it should merely be updated to -# reflect the processor speed set externally so that the code can use accurate -# software delays. -F_CPU = 16000000 - - -# -# LUFA specific -# -# Target architecture (see library "Board Types" documentation). -ARCH = AVR8 - -# Input clock frequency. -# This will define a symbol, F_USB, in all source code files equal to the -# input clock frequency (before any prescaling is performed) in Hz. This value may -# differ from F_CPU if prescaling is used on the latter, and is required as the -# raw input clock is fed directly to the PLL sections of the AVR for high speed -# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL' -# at the end, this will be done automatically to create a 32-bit value in your -# source code. -# -# If no clock division is performed on the input clock inside the AVR (via the -# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU. -F_USB = $(F_CPU) - -# Interrupt driven control endpoint task(+60) -OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT - - -# Boot Section Size in *bytes* -# Teensy halfKay 512 -# Teensy++ halfKay 1024 -# Atmel DFU loader 4096 -# LUFA bootloader 4096 -# USBaspLoader 2048 -OPT_DEFS += -DBOOTLOADER_SIZE=4096 - - -# Build Options -# comment out to disable the options. -# -BOOTMAGIC_ENABLE ?= yes # Virtual DIP switch configuration(+1000) -MOUSEKEY_ENABLE ?= no # 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 -NKRO_ENABLE ?= yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work -RGBLIGHT_ENABLE ?= no # Enable keyboard underlight functionality (+4870) -BACKLIGHT_ENABLE ?= yes # Enable keyboard backlight functionality (+1150) -MIDI_ENABLE ?= no # MIDI controls -AUDIO_ENABLE ?= no -UNICODE_ENABLE ?= no # Unicode -BLUETOOTH_ENABLE ?= no # Enable Bluetooth with the Adafruit EZ-Key HID - -ifndef QUANTUM_DIR - include ../../Makefile -endif diff --git a/keyboards/clueboard2/clueboard2.c b/keyboards/clueboard2/clueboard2.c deleted file mode 100644 index d78ffed9b..000000000 --- a/keyboards/clueboard2/clueboard2.c +++ /dev/null @@ -1,63 +0,0 @@ -#include "clueboard2.h" - -void matrix_init_kb(void) { - // put your keyboard start-up code here - // runs once when the firmware starts up - matrix_init_user(); - led_init_ports(); - - // JTAG disable for PORT F. write JTD bit twice within four cycles. - MCUCR |= (1< Date: Fri, 5 Aug 2016 23:31:35 -0700 Subject: [PATCH 08/34] Mouse layer updates - Rename to MOUSECURSOR - Use "d" key, since middle finger is stronger than pinky - Shuffle some mouse buttons around --- keyboards/planck/keymaps/jeebak/keymap.c | 32 +++++++++++------------ keyboards/planck/keymaps/jeebak/readme.md | 14 +++++----- 2 files changed, 23 insertions(+), 23 deletions(-) diff --git a/keyboards/planck/keymaps/jeebak/keymap.c b/keyboards/planck/keymaps/jeebak/keymap.c index 25918dc98..4a3cc2d56 100644 --- a/keyboards/planck/keymaps/jeebak/keymap.c +++ b/keyboards/planck/keymaps/jeebak/keymap.c @@ -21,7 +21,7 @@ extern keymap_config_t keymap_config; #define _RAISE 4 #define _PLOVER 5 #define _TOUCHCURSOR 6 -#define _MOUSE 7 +#define _MOUSECURSOR 7 #define _ADJUST 16 // Keycodes @@ -57,8 +57,8 @@ enum macro_keycodes { #define CTL_ESC CTL_T(KC_ESC) // Tap for Esc, hold for Ctrl #define SFT_ENT SFT_T(KC_ENT) // Tap for Enter, hold for Shift // Requires KC_TRNS/_______ for the trigger key in the destination layer -#define LT_TC LT(_TOUCHCURSOR, KC_SPC) // L-ayer T-ap T-ouch C-ursor. -#define LT_ML LT(_MOUSE, KC_A) // L-ayer T-ap M-ouse C-ursor (on A) +#define LT_TC LT(_TOUCHCURSOR, KC_SPC) // L-ayer T-ap T-ouch C-ursor +#define LT_MC(kc) LT(_MOUSECURSOR, kc) // L-ayer T-ap M-ouse C-ursor #define ALT_TAB M(KC_ALT_TAB) // Macro for Alt-Tab #define CMD_TAB M(KC_CMD_TAB) // Macro for Cmd-Tab #define CTL_TAB M(KC_CTL_TAB) // Macro for Ctl-Tab @@ -76,7 +76,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * ,-----------------------------------------------------------------------------------------. * | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp | * |----------+------+------+------+------+-------------+------+------+------+------+--------| - * | Ctrl/Esc | ML/A | S | D | F | G | H | J | K | L | ; | " | + * | Ctrl/Esc | A | S | MC/D | F | G | H | J | K | L | ; | " | * |----------+------+------+------+------+------|------+------+------+------+------+--------| * | Shift | Z | X | C | V | B | N | M | , | . | / |Sft/Ent | * |----------+------+------+------+------+------+------+------+------+------+------+--------| @@ -85,7 +85,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [_QWERTY] = { {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, - {CTL_ESC, LT_ML, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, + {CTL_ESC, KC_A, KC_S, LT_MC(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, SFT_ENT}, {KC_PSCR, KC_RGUI, KC_LALT, KC_LGUI, LOWER, LT_TC, LT_TC, RAISE, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} }, @@ -94,7 +94,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * ,-----------------------------------------------------------------------------------------. * | Tab | Q | W | F | P | G | J | L | U | Y | ; | Bksp | * |----------+------+------+------+------+-------------+------+------+------+------+--------| - * | Ctrl/Esc | ML/A | R | S | T | D | H | N | E | I | O | " | + * | Ctrl/Esc | A | R | MC/S | T | D | H | N | E | I | O | " | * |----------+------+------+------+------+------|------+------+------+------+------+--------| * | Shift | Z | X | C | V | B | K | M | , | . | / |Sft/Ent | * |----------+------+------+------+------+------+------+------+------+------+------+--------| @@ -103,7 +103,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [_COLEMAK] = { {KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC}, - {CTL_ESC, LT_ML, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT}, + {CTL_ESC, KC_A, KC_R, LT_MC(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, SFT_ENT}, {KC_PSCR, KC_RGUI, KC_LALT, KC_LGUI, LOWER, LT_TC, LT_TC, RAISE, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} }, @@ -112,7 +112,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * ,-----------------------------------------------------------------------------------------. * | Tab | " | , | . | P | Y | F | G | C | R | L | Bksp | * |----------+------+------+------+------+-------------+------+------+------+------+--------| - * | Ctrl/Esc | ML/A | O | E | U | I | D | H | T | N | S | / | + * | Ctrl/Esc | A | O | MC/E | U | I | D | H | T | N | S | / | * |----------+------+------+------+------+------|------+------+------+------+------+--------| * | Shift | ; | Q | J | K | X | B | M | W | V | Z |Sft/Ent | * |----------+------+------+------+------+------+------+------+------+------+------+--------| @@ -121,7 +121,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [_DVORAK] = { {KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC}, - {CTL_ESC, LT_ML, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH}, + {CTL_ESC, KC_A, KC_O, LT_MC(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, SFT_ENT}, {KC_PSCR, KC_RGUI, KC_LALT, KC_LGUI, LOWER, LT_TC, LT_TC, RAISE, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} }, @@ -186,20 +186,20 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Mouse Layer * ,-----------------------------------------------------------------------------------. - * | | |ACCL0 |ACCL1 |ACCL2 |ACCL2 | |WHL_L | Up |WHL_R | BTN2 | | + * | | |ACCL0 | |ACCL1 | | |WHL_L | Up |WHL_R | BTN2 | | * |------+------+------+------+------+-------------+------+------+------+------+------| - * | | | | BTN3 | BTN1 | BTN4 |WHL_Up| Left | Down |Right | | | + * | |ACCL2 | BTN2 | | BTN1 | |WHL_Up| Left | Down |Right | BTN4 | BTN5 | * |------+------+------+------+------+------|------+------+------+------+------+------| - * | | | | | BTN2 | BTN5 |WHL_Dn| BTN1 | | | | | + * | | | | | BTN3 | |WHL_Dn| BTN1 | | | BTN3 | | * |------+------+------+------+------+------+------+------+------+------+------+------| * | | | | | | | | | | | | * `-----------------------------------------------------------------------------------' */ -[_MOUSE] = { - {_______, _______, KC_ACL0, KC_ACL1, KC_ACL2, KC_ACL2, _______, KC_WH_L, KC_MS_U, KC_WH_R, KC_BTN2, _______}, - {_______, _______, _______, KC_BTN3, KC_BTN1, KC_BTN4, KC_WH_U, KC_MS_L, KC_MS_D, KC_MS_R, _______, _______}, - {_______, _______, _______, _______, KC_BTN2, KC_BTN5, KC_WH_D, KC_BTN1, _______, _______, _______, _______}, +[_MOUSECURSOR] = { + {_______, _______, KC_ACL0, _______, KC_ACL1, _______, _______, KC_WH_L, KC_MS_U, KC_WH_R, KC_BTN2, _______}, + {_______, KC_ACL2, KC_BTN2, _______, KC_BTN1, _______, KC_WH_U, KC_MS_L, KC_MS_D, KC_MS_R, KC_BTN4, KC_BTN5}, + {_______, _______, _______, _______, KC_BTN3, _______, KC_WH_D, KC_BTN1, _______, _______, KC_BTN3, _______}, {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} }, diff --git a/keyboards/planck/keymaps/jeebak/readme.md b/keyboards/planck/keymaps/jeebak/readme.md index 48eb23264..0f2c9e26d 100644 --- a/keyboards/planck/keymaps/jeebak/readme.md +++ b/keyboards/planck/keymaps/jeebak/readme.md @@ -99,19 +99,19 @@ etc.) depending on which layout you've currently selected (`AG_NORM` or ## Mouse Layer The Mouse layer, closely mimics the layout/behaviour of the TouchCursor layer. -The `A` key is used to activate this layer. All 16 keycodes for the mouse from -the `doc/keycode.txt` file are represented, and logically located, IMHO. The -left and right click buttons are duplicated; on the right hand side, for a -quick click here and there, and again on the left hand side for when the +The `D` key (on QWERTY) is used to activate this layer. All 16 keycodes for the +mouse from the `doc/keycode.txt` file are represented, and logically located, +IMHO. The left and right click buttons are duplicated; on the right hand side, +for a quick click here and there, and again on the left hand side for when the buttons need to be held for dragging things or highlighting text, thus allowing the right hand to be free to use the up/down/left/right actions. ``` ,-----------------------------------------------------------------------------------. - | | |ACCL0 |ACCL1 |ACCL2 |ACCL2 | |WHL_L | Up |WHL_R | BTN2 | | + | | |ACCL0 | |ACCL1 | | |WHL_L | Up |WHL_R | BTN2 | | |------+------+------+------+------+-------------+------+------+------+------+------| - | | | | BTN3 | BTN1 | BTN4 |WHL_Up| Left | Down |Right | | | + | |ACCL2 | BTN2 | | BTN1 | |WHL_Up| Left | Down |Right | BTN4 | BTN5 | |------+------+------+------+------+------|------+------+------+------+------+------| - | | | | | BTN2 | BTN5 |WHL_Dn| BTN1 | | | | | + | | | | | BTN3 | |WHL_Dn| BTN1 | | | BTN3 | | |------+------+------+------+------+------+------+------+------+------+------+------| | | | | | | | | | | | | `-----------------------------------------------------------------------------------' From 96ed96f924d7df610465b567e5127e73e99a368d Mon Sep 17 00:00:00 2001 From: JeeBak Kim Date: Sat, 6 Aug 2016 00:01:12 -0700 Subject: [PATCH 09/34] Fix KC_ALT_TAB/KC_CMD_TAB logic --- keyboards/planck/keymaps/jeebak/keymap.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/keyboards/planck/keymaps/jeebak/keymap.c b/keyboards/planck/keymaps/jeebak/keymap.c index 4a3cc2d56..3b51e34e3 100644 --- a/keyboards/planck/keymaps/jeebak/keymap.c +++ b/keyboards/planck/keymaps/jeebak/keymap.c @@ -372,11 +372,11 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) switch (id) { case KC_ALT_TAB: - if(use_cmd) { return (record->event.pressed ? MACRO( D(LGUI), D(TAB), END ) : MACRO( U(TAB), END )); } - else { return (record->event.pressed ? MACRO( D(LALT), D(TAB), END ) : MACRO( U(TAB), END )); } - case KC_CMD_TAB: if(use_cmd) { return (record->event.pressed ? MACRO( D(LALT), D(TAB), END ) : MACRO( U(TAB), END )); } else { return (record->event.pressed ? MACRO( D(LGUI), D(TAB), END ) : MACRO( U(TAB), END )); } + case KC_CMD_TAB: + if(use_cmd) { return (record->event.pressed ? MACRO( D(LGUI), D(TAB), END ) : MACRO( U(TAB), END )); } + else { return (record->event.pressed ? MACRO( D(LALT), D(TAB), END ) : MACRO( U(TAB), END )); } case KC_CTL_TAB: return (record->event.pressed ? MACRO( D(LCTRL), D(TAB), END ) : MACRO( U(TAB), END )); From 57218827cbdb6e9510147239f69b8aa62e28cd14 Mon Sep 17 00:00:00 2001 From: JeeBak Kim Date: Sat, 6 Aug 2016 00:08:42 -0700 Subject: [PATCH 10/34] Move KC_ACL1 button --- keyboards/planck/keymaps/jeebak/keymap.c | 8 ++++---- keyboards/planck/keymaps/jeebak/readme.md | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/keyboards/planck/keymaps/jeebak/keymap.c b/keyboards/planck/keymaps/jeebak/keymap.c index 3b51e34e3..c5761b2d1 100644 --- a/keyboards/planck/keymaps/jeebak/keymap.c +++ b/keyboards/planck/keymaps/jeebak/keymap.c @@ -186,9 +186,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Mouse Layer * ,-----------------------------------------------------------------------------------. - * | | |ACCL0 | |ACCL1 | | |WHL_L | Up |WHL_R | BTN2 | | + * | | |ACCL0 | | | | |WHL_L | Up |WHL_R | BTN2 | | * |------+------+------+------+------+-------------+------+------+------+------+------| - * | |ACCL2 | BTN2 | | BTN1 | |WHL_Up| Left | Down |Right | BTN4 | BTN5 | + * | |ACCL2 | BTN2 | | BTN1 |ACCL1 |WHL_Up| Left | Down |Right | BTN4 | BTN5 | * |------+------+------+------+------+------|------+------+------+------+------+------| * | | | | | BTN3 | |WHL_Dn| BTN1 | | | BTN3 | | * |------+------+------+------+------+------+------+------+------+------+------+------| @@ -197,8 +197,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [_MOUSECURSOR] = { - {_______, _______, KC_ACL0, _______, KC_ACL1, _______, _______, KC_WH_L, KC_MS_U, KC_WH_R, KC_BTN2, _______}, - {_______, KC_ACL2, KC_BTN2, _______, KC_BTN1, _______, KC_WH_U, KC_MS_L, KC_MS_D, KC_MS_R, KC_BTN4, KC_BTN5}, + {_______, _______, KC_ACL0, _______, _______, _______, _______, KC_WH_L, KC_MS_U, KC_WH_R, KC_BTN2, _______}, + {_______, KC_ACL2, KC_BTN2, _______, KC_BTN1, KC_ACL1, KC_WH_U, KC_MS_L, KC_MS_D, KC_MS_R, KC_BTN4, KC_BTN5}, {_______, _______, _______, _______, KC_BTN3, _______, KC_WH_D, KC_BTN1, _______, _______, KC_BTN3, _______}, {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} }, diff --git a/keyboards/planck/keymaps/jeebak/readme.md b/keyboards/planck/keymaps/jeebak/readme.md index 0f2c9e26d..359aacff9 100644 --- a/keyboards/planck/keymaps/jeebak/readme.md +++ b/keyboards/planck/keymaps/jeebak/readme.md @@ -107,9 +107,9 @@ buttons need to be held for dragging things or highlighting text, thus allowing the right hand to be free to use the up/down/left/right actions. ``` ,-----------------------------------------------------------------------------------. - | | |ACCL0 | |ACCL1 | | |WHL_L | Up |WHL_R | BTN2 | | + | | |ACCL0 | | | | |WHL_L | Up |WHL_R | BTN2 | | |------+------+------+------+------+-------------+------+------+------+------+------| - | |ACCL2 | BTN2 | | BTN1 | |WHL_Up| Left | Down |Right | BTN4 | BTN5 | + | |ACCL2 | BTN2 | | BTN1 |ACCL1 |WHL_Up| Left | Down |Right | BTN4 | BTN5 | |------+------+------+------+------+------|------+------+------+------+------+------| | | | | | BTN3 | |WHL_Dn| BTN1 | | | BTN3 | | |------+------+------+------+------+------+------+------+------+------+------+------| From bda4d15ffa5a7390591b2f4edb05ed568a1c708a Mon Sep 17 00:00:00 2001 From: JeeBak Kim Date: Sat, 6 Aug 2016 11:59:57 -0700 Subject: [PATCH 11/34] Add Virtual Desktop Switching macros to TouchCursor layer --- keyboards/planck/keymaps/jeebak/keymap.c | 13 +++++++++++-- keyboards/planck/keymaps/jeebak/readme.md | 5 +++-- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/keyboards/planck/keymaps/jeebak/keymap.c b/keyboards/planck/keymaps/jeebak/keymap.c index c5761b2d1..aa5c41593 100644 --- a/keyboards/planck/keymaps/jeebak/keymap.c +++ b/keyboards/planck/keymaps/jeebak/keymap.c @@ -47,6 +47,8 @@ enum macro_keycodes { KC_AG_CUT, KC_AG_COPY, KC_AG_PASTE, + KC_AG_DESK_L, + KC_AG_DESK_R, }; // Fillers to make layering more clear @@ -69,6 +71,8 @@ enum macro_keycodes { #define AG_CUT M(KC_AG_CUT) #define AG_COPY M(KC_AG_COPY) #define AG_PASTE M(KC_AG_PASTE) +#define AG_D_L M(KC_AG_DESK_L) // For Virtual Desktop Switching: Left, and +#define AG_D_R M(KC_AG_DESK_R) // Right const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { @@ -166,7 +170,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * ,-----------------------------------------------------------------------------------. * |AltTab|CmdTab|CtlTab| GUI |Shift | ~ |Insert| Home | Up | End | Bksp | | * |------+------+------+------+------+-------------+------+------+------+------+------| - * | | Alt |Space | | Find |Again | PgUp | Left | Down |Right | | | + * | | Alt |Space | | Find |Again | PgUp | Left | Down |Right |Desk_L|Desk_R| * |------+------+------+------+------+------|------+------+------+------+------+------| * | | Undo | Cut | Copy |Paste | ` | PgDn | Del | | | | | * |------+------+------+------+------+------+------+------+------+------+------+------| @@ -179,7 +183,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_TOUCHCURSOR] = { {ALT_TAB, CMD_TAB, CTL_TAB, KC_LGUI, KC_LSFT, KC_TILD, KC_INS, KC_HOME, KC_UP, KC_END, KC_BSPC, _______}, - {_______, KC_LALT, KC_SPC, _______, AG_FIND,AG_AGAIN, KC_PGUP, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______}, + {_______, KC_LALT, KC_SPC, _______, AG_FIND,AG_AGAIN, KC_PGUP, KC_LEFT, KC_DOWN, KC_RGHT, AG_D_L, AG_D_R }, {_______, AG_UNDO, AG_CUT, AG_COPY, AG_PASTE,KC_GRV, KC_PGDN, KC_DEL, _______, _______, CMD_SLSH,_______}, {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} }, @@ -395,6 +399,11 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) return use_cmd ? MACRODOWN( D(LGUI), T(C), END ) : MACRODOWN( D(LCTRL), T(C), END ); case KC_AG_PASTE: return use_cmd ? MACRODOWN( D(LGUI), T(V), END ) : MACRODOWN( D(LCTRL), T(V), END ); + + case KC_AG_DESK_L: + return use_cmd ? MACRODOWN( D(LGUI), D(LCTRL), T(SCLN), END ) : MACRODOWN( D(LALT), D(LCTRL), T(SCLN), END ); + case KC_AG_DESK_R: + return use_cmd ? MACRODOWN( D(LGUI), D(LCTRL), T(QUOT), END ) : MACRODOWN( D(LALT), D(LCTRL), T(QUOT), END ); } return MACRO_NONE; diff --git a/keyboards/planck/keymaps/jeebak/readme.md b/keyboards/planck/keymaps/jeebak/readme.md index 359aacff9..28ae34f47 100644 --- a/keyboards/planck/keymaps/jeebak/readme.md +++ b/keyboards/planck/keymaps/jeebak/readme.md @@ -84,12 +84,13 @@ this layer. The `KC_UNDO, KC_CUT, KC_COPY, KC_PASTE, KC_FIND,` and `KC_AGAIN` keycodes do not seem to work. There are macros in place that'll "automatically" choose the correct version (`Cmd-Tab` vs. `Alt-Tab`, `Cmd-C` vs. `Ctrl-C`, etc.) depending on which layout you've currently selected (`AG_NORM` or -`AG_SWAP`) in the `_ADJUST` layer. +`AG_SWAP`) in the `_ADJUST` layer. The `Desk_L` and `Desk_R` macros are what I +use to switch between Virtual Desktops Left/Right. ``` ,-----------------------------------------------------------------------------------. |AltTab|CmdTab|CtlTab| GUI |Shift | ~ |Insert| Home | Up | End | Bksp | | |------+------+------+------+------+-------------+------+------+------+------+------| - | | Alt |Space | | Find |Again | PgUp | Left | Down |Right | | | + | | Alt |Space | | Find |Again | PgUp | Left | Down |Right |Desk_L|Desk_R| |------+------+------+------+------+------|------+------+------+------+------+------| | | Undo | Cut | Copy |Paste | ` | PgDn | Del | | | | | |------+------+------+------+------+------+------+------+------+------+------+------| From 68e287013b42cea53a1834c141bdf2c0802da3af Mon Sep 17 00:00:00 2001 From: JeeBak Kim Date: Sat, 6 Aug 2016 13:36:26 -0700 Subject: [PATCH 12/34] Add Tab Close, New, Reopen macros to TouchCursor layer --- keyboards/planck/keymaps/jeebak/keymap.c | 21 +++++++++++++++++---- keyboards/planck/keymaps/jeebak/readme.md | 8 +++++--- 2 files changed, 22 insertions(+), 7 deletions(-) diff --git a/keyboards/planck/keymaps/jeebak/keymap.c b/keyboards/planck/keymaps/jeebak/keymap.c index aa5c41593..7dc8760ec 100644 --- a/keyboards/planck/keymaps/jeebak/keymap.c +++ b/keyboards/planck/keymaps/jeebak/keymap.c @@ -49,6 +49,9 @@ enum macro_keycodes { KC_AG_PASTE, KC_AG_DESK_L, KC_AG_DESK_R, + KC_AG_TAB_C, + KC_AG_TAB_N, + KC_AG_TAB_R, }; // Fillers to make layering more clear @@ -73,6 +76,9 @@ enum macro_keycodes { #define AG_PASTE M(KC_AG_PASTE) #define AG_D_L M(KC_AG_DESK_L) // For Virtual Desktop Switching: Left, and #define AG_D_R M(KC_AG_DESK_R) // Right +#define AG_T_C M(KC_AG_TAB_C) // For Chrome, etc. Tab Close, +#define AG_T_N M(KC_AG_TAB_N) // Tab New, and +#define AG_T_R M(KC_AG_TAB_R) // Tab Reopen Closed const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { @@ -170,9 +176,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * ,-----------------------------------------------------------------------------------. * |AltTab|CmdTab|CtlTab| GUI |Shift | ~ |Insert| Home | Up | End | Bksp | | * |------+------+------+------+------+-------------+------+------+------+------+------| - * | | Alt |Space | | Find |Again | PgUp | Left | Down |Right |Desk_L|Desk_R| + * | | Alt |Space |Tab_C | Find |Again | PgUp | Left | Down |Right |Desk_L|Desk_R| * |------+------+------+------+------+------|------+------+------+------+------+------| - * | | Undo | Cut | Copy |Paste | ` | PgDn | Del | | | | | + * | | Undo | Cut | Copy |Paste | ` | PgDn | Del |Tab_N |Tab_R |iTerm2| | * |------+------+------+------+------+------+------+------+------+------+------+------| * | | | | | | | | | | | | * `-----------------------------------------------------------------------------------' @@ -183,8 +189,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_TOUCHCURSOR] = { {ALT_TAB, CMD_TAB, CTL_TAB, KC_LGUI, KC_LSFT, KC_TILD, KC_INS, KC_HOME, KC_UP, KC_END, KC_BSPC, _______}, - {_______, KC_LALT, KC_SPC, _______, AG_FIND,AG_AGAIN, KC_PGUP, KC_LEFT, KC_DOWN, KC_RGHT, AG_D_L, AG_D_R }, - {_______, AG_UNDO, AG_CUT, AG_COPY, AG_PASTE,KC_GRV, KC_PGDN, KC_DEL, _______, _______, CMD_SLSH,_______}, + {_______, KC_LALT, KC_SPC, AG_T_C, AG_FIND,AG_AGAIN, KC_PGUP, KC_LEFT, KC_DOWN, KC_RGHT, AG_D_L, AG_D_R }, + {_______, AG_UNDO, AG_CUT, AG_COPY, AG_PASTE,KC_GRV, KC_PGDN, KC_DEL, AG_T_N, AG_T_R, CMD_SLSH,_______}, {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} }, @@ -404,6 +410,13 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) return use_cmd ? MACRODOWN( D(LGUI), D(LCTRL), T(SCLN), END ) : MACRODOWN( D(LALT), D(LCTRL), T(SCLN), END ); case KC_AG_DESK_R: return use_cmd ? MACRODOWN( D(LGUI), D(LCTRL), T(QUOT), END ) : MACRODOWN( D(LALT), D(LCTRL), T(QUOT), END ); + + case KC_AG_TAB_C: + return use_cmd ? MACRODOWN( D(LGUI), T(W), END ) : MACRODOWN( D(LCTRL), T(W), END ); + case KC_AG_TAB_N: + return use_cmd ? MACRODOWN( D(LGUI), T(T), END ) : MACRODOWN( D(LCTRL), T(T), END ); + case KC_AG_TAB_R: + return use_cmd ? MACRODOWN( D(LGUI), D(LSHIFT), T(T), END ) : MACRODOWN( D(LCTRL), D(LSHIFT), T(T), END ); } return MACRO_NONE; diff --git a/keyboards/planck/keymaps/jeebak/readme.md b/keyboards/planck/keymaps/jeebak/readme.md index 28ae34f47..b43f8a2fb 100644 --- a/keyboards/planck/keymaps/jeebak/readme.md +++ b/keyboards/planck/keymaps/jeebak/readme.md @@ -85,14 +85,16 @@ keycodes do not seem to work. There are macros in place that'll "automatically" choose the correct version (`Cmd-Tab` vs. `Alt-Tab`, `Cmd-C` vs. `Ctrl-C`, etc.) depending on which layout you've currently selected (`AG_NORM` or `AG_SWAP`) in the `_ADJUST` layer. The `Desk_L` and `Desk_R` macros are what I -use to switch between Virtual Desktops Left/Right. +use to switch between Virtual Desktops Left/Right. The `Tab_C`, `Tab_N` and +`Tab_R` are for "Close Tab," "New Tab" and "Reopen Closed Tab" for apps such as +Google Chrome. ``` ,-----------------------------------------------------------------------------------. |AltTab|CmdTab|CtlTab| GUI |Shift | ~ |Insert| Home | Up | End | Bksp | | |------+------+------+------+------+-------------+------+------+------+------+------| - | | Alt |Space | | Find |Again | PgUp | Left | Down |Right |Desk_L|Desk_R| + | | Alt |Space |Tab_C | Find |Again | PgUp | Left | Down |Right |Desk_L|Desk_R| |------+------+------+------+------+------|------+------+------+------+------+------| - | | Undo | Cut | Copy |Paste | ` | PgDn | Del | | | | | + | | Undo | Cut | Copy |Paste | ` | PgDn | Del |Tab_N |Tab_R |iTerm2| | |------+------+------+------+------+------+------+------+------+------+------+------| | | | | | | | | | | | | `-----------------------------------------------------------------------------------' From c5ee24a6c3ea39e9725dfc276c92d5bce726ca78 Mon Sep 17 00:00:00 2001 From: kuel Date: Sun, 7 Aug 2016 11:01:12 -0500 Subject: [PATCH 13/34] Add keymap_russian.h, a software implementation of Russian rename keymap_cyrillic.h to keymap_unicode_cyrillic.h changed CY_RUBLE and CY_NUMERO to CY_RUBL and CY_NMRO in keymap_unicode_cyrillic.h --- quantum/keymap_extras/keymap_russian.h | 79 +++++++++++++++++++ ...p_cyrillic.h => keymap_unicode_cyrillic.h} | 6 +- 2 files changed, 83 insertions(+), 2 deletions(-) create mode 100644 quantum/keymap_extras/keymap_russian.h rename quantum/keymap_extras/{keymap_cyrillic.h => keymap_unicode_cyrillic.h} (97%) diff --git a/quantum/keymap_extras/keymap_russian.h b/quantum/keymap_extras/keymap_russian.h new file mode 100644 index 000000000..efb63a5cc --- /dev/null +++ b/quantum/keymap_extras/keymap_russian.h @@ -0,0 +1,79 @@ +#ifndef KEYMAP_RUSSIAN_H +#define KEYMAP_RUSSIAN_H + +#include "keymap.h" + +// rename ruble and numero in keymap_cyrillic.c + +// Normal Chracters // reg SHIFT +#define RU_A KC_F // а and А +#define RU_BE KC_COMM // б and Б +#define RU_VE KC_D // в and В +#define RU_GHE KC_U // г and Г +#define RU_DE KC_L // д and Д +#define RU_IE KC_T // е and Е +#define RU_IO KC_GRV // ё and Ё +#define RU_ZHE KC_SCLN // ж and Ж +#define RU_ZE KC_P // з and З +#define RU_I KC_B // и and И +#define RU_SRT_I KC_Q // й and Й +#define RU_KA KC_R // к and К +#define RU_EL KC_K // л and Л +#define RU_EM KC_V // м and М +#define RU_EN KC_Y // н and Н +#define RU_O KC_J // о and О +#define RU_PE KC_G // п and П +#define RU_ER KC_H // р and Р +#define RU_ES KC_C // с and С +#define RU_TE KC_N // т and Т +#define RU_U KC_E // у and У +#define RU_EF KC_A // ф and Ф +#define RU_HA KC_LBRC // х and Х +#define RU_TSE KC_W // ц and Ц +#define RU_CHE KC_X // ч and Ч +#define RU_SHA KC_I // ш and Ш +#define RU_SHCHA KC_O // щ and Щ +#define RU_HSIGN KC_RBRC // ъ and Ъ +#define RU_YERU KC_S // ы and Ы +#define RU_SSIGN KC_M // ь and Ь +#define RU_E KC_QUOT // э and Э +#define RU_YU KC_DOT // ю and Ю +#define RU_YA KC_Z // я and Я + +#define RU_1 KC_1 // 1 and ! +#define RU_2 KC_2 // 2 and " +#define RU_3 KC_3 // 3 and № +#define RU_4 KC_4 // 4 and ; +#define RU_5 KC_5 // 5 and % +#define RU_6 KC_6 // 6 and : +#define RU_7 KC_7 // 7 and ? +#define RU_8 KC_8 // 8 and * +#define RU_9 KC_9 // 9 and ( +#define RU_0 KC_0 // 0 and ) + +#define RU_MINS KC_MINS // - and _ +#define RU_EQL KC_EQL // = and + +#define RU_BSLS KC_BSLS // \ and / +#define RU_DOT KC_SLSH // . and , + +// Shifted Chracters +#define RU_EXLM LSFT(RU_1) // ! +#define RU_DQUT LSFT(RU_2) // " +#define RU_NMRO LSFT(RU_3) // № +#define RU_SCLN LSFT(RU_4) // ; +#define RU_PERC LSFT(RU_5) // % +#define RU_COLN LSFT(RU_6) // : +#define RU_QUES LSFT(RU_7) // ? +#define RU_ASTR LSFT(RU_8) // * +#define RU_LPRN LSFT(RU_9) // ( +#define RU_RPRN LSFT(RU_0) // ) + +#define RU_UNDR LSFT(RU_MINS) // _ +#define RU_PLUS LSFT(RU_EQL) // + +#define RU_SLSH LSFT(RU_BSLS) // / +#define RU_COMM LSFT(RU_DOT) // , + +// Alt Gr-ed characters +#define RU_RUBL RALT(RU_8) // ₽ + +#endif diff --git a/quantum/keymap_extras/keymap_cyrillic.h b/quantum/keymap_extras/keymap_unicode_cyrillic.h similarity index 97% rename from quantum/keymap_extras/keymap_cyrillic.h rename to quantum/keymap_extras/keymap_unicode_cyrillic.h index d5390afff..a40626d91 100644 --- a/quantum/keymap_extras/keymap_cyrillic.h +++ b/quantum/keymap_extras/keymap_unicode_cyrillic.h @@ -6,6 +6,8 @@ /* * This is based off of * https://en.wikipedia.org/wiki/Cyrillic_script + * + * Unicode is iffy, a software implementation is preferred */ // Capital Char russian/ukrainian/bulgarian @@ -153,8 +155,8 @@ #define CY_thsign UC(0x1c86) // ᲆ CYRILLIC SMALL LETTER TALL HARD SIGN #define CY_YERUBY UC(0xa650) // Ꙑ CYRILLIC CAPITAL LETTER YERU WITH BACK YER #define CY_yeruby UC(0xa651) // ꙑ CYRILLIC SMALL LETTER YERU WITH BACK YER -#define CY_RUBLE UC(0x20bd) // ₽ -#define CY_NUMERO UC(0x2116) // № +#define CY_RUBL UC(0x20bd) // ₽ +#define CY_NMRO UC(0x2116) // № // The letters Zje and Sje are made for other letters and accent marks From 2a0121a78643b1dc774d82352f8c9e246010803e Mon Sep 17 00:00:00 2001 From: kuel Date: Sun, 7 Aug 2016 11:07:38 -0500 Subject: [PATCH 14/34] Removed unnecessary comment --- quantum/keymap_extras/keymap_russian.h | 2 -- 1 file changed, 2 deletions(-) diff --git a/quantum/keymap_extras/keymap_russian.h b/quantum/keymap_extras/keymap_russian.h index efb63a5cc..237e9abde 100644 --- a/quantum/keymap_extras/keymap_russian.h +++ b/quantum/keymap_extras/keymap_russian.h @@ -3,8 +3,6 @@ #include "keymap.h" -// rename ruble and numero in keymap_cyrillic.c - // Normal Chracters // reg SHIFT #define RU_A KC_F // а and А #define RU_BE KC_COMM // б and Б From 3d86e5b7a796e8d574107109708ed873405a77dc Mon Sep 17 00:00:00 2001 From: JeeBak Kim Date: Sun, 7 Aug 2016 11:05:10 -0700 Subject: [PATCH 15/34] Tap for Tab, hold for Hyper --- keyboards/planck/keymaps/jeebak/keymap.c | 13 ++++--- keyboards/planck/keymaps/jeebak/readme.md | 46 ++++++++++++----------- 2 files changed, 32 insertions(+), 27 deletions(-) diff --git a/keyboards/planck/keymaps/jeebak/keymap.c b/keyboards/planck/keymaps/jeebak/keymap.c index 7dc8760ec..8541ecd8d 100644 --- a/keyboards/planck/keymaps/jeebak/keymap.c +++ b/keyboards/planck/keymaps/jeebak/keymap.c @@ -61,6 +61,7 @@ enum macro_keycodes { // Custom macros #define CTL_ESC CTL_T(KC_ESC) // Tap for Esc, hold for Ctrl #define SFT_ENT SFT_T(KC_ENT) // Tap for Enter, hold for Shift +#define HPR_TAB ALL_T(KC_TAB) // Tap for Tab, hold for Hyper // Requires KC_TRNS/_______ for the trigger key in the destination layer #define LT_TC LT(_TOUCHCURSOR, KC_SPC) // L-ayer T-ap T-ouch C-ursor #define LT_MC(kc) LT(_MOUSECURSOR, kc) // L-ayer T-ap M-ouse C-ursor @@ -84,7 +85,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Qwerty * ,-----------------------------------------------------------------------------------------. - * | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp | + * | Hyper/Tab| Q | W | E | R | T | Y | U | I | O | P | Bksp | * |----------+------+------+------+------+-------------+------+------+------+------+--------| * | Ctrl/Esc | A | S | MC/D | F | G | H | J | K | L | ; | " | * |----------+------+------+------+------+------|------+------+------+------+------+--------| @@ -94,7 +95,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `-----------------------------------------------------------------------------------------' */ [_QWERTY] = { - {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, + {HPR_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, {CTL_ESC, KC_A, KC_S, LT_MC(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, SFT_ENT}, {KC_PSCR, KC_RGUI, KC_LALT, KC_LGUI, LOWER, LT_TC, LT_TC, RAISE, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} @@ -102,7 +103,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Colemak * ,-----------------------------------------------------------------------------------------. - * | Tab | Q | W | F | P | G | J | L | U | Y | ; | Bksp | + * | Hyper/Tab| Q | W | F | P | G | J | L | U | Y | ; | Bksp | * |----------+------+------+------+------+-------------+------+------+------+------+--------| * | Ctrl/Esc | A | R | MC/S | T | D | H | N | E | I | O | " | * |----------+------+------+------+------+------|------+------+------+------+------+--------| @@ -112,7 +113,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `-----------------------------------------------------------------------------------------' */ [_COLEMAK] = { - {KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC}, + {HPR_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC}, {CTL_ESC, KC_A, KC_R, LT_MC(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, SFT_ENT}, {KC_PSCR, KC_RGUI, KC_LALT, KC_LGUI, LOWER, LT_TC, LT_TC, RAISE, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} @@ -120,7 +121,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Dvorak * ,-----------------------------------------------------------------------------------------. - * | Tab | " | , | . | P | Y | F | G | C | R | L | Bksp | + * | Hyper/Tab| " | , | . | P | Y | F | G | C | R | L | Bksp | * |----------+------+------+------+------+-------------+------+------+------+------+--------| * | Ctrl/Esc | A | O | MC/E | U | I | D | H | T | N | S | / | * |----------+------+------+------+------+------|------+------+------+------+------+--------| @@ -130,7 +131,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `-----------------------------------------------------------------------------------------' */ [_DVORAK] = { - {KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC}, + {HPR_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC}, {CTL_ESC, KC_A, KC_O, LT_MC(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, SFT_ENT}, {KC_PSCR, KC_RGUI, KC_LALT, KC_LGUI, LOWER, LT_TC, LT_TC, RAISE, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} diff --git a/keyboards/planck/keymaps/jeebak/readme.md b/keyboards/planck/keymaps/jeebak/readme.md index b43f8a2fb..863567904 100644 --- a/keyboards/planck/keymaps/jeebak/readme.md +++ b/keyboards/planck/keymaps/jeebak/readme.md @@ -16,32 +16,36 @@ I also decided to change all calls to `persistant_default_layer_set()` to ## Base Layers (Qwerty/Colemak/Dvorak) These base layers are mostly the same as the default mappings. The interesting -changes are shown below. The `Ctrl/Esc`, mapped using `CTL_T(KC_ESC)` will emit -an `Escape` when tapped, and act as a `Control` key when held. A `TODO` item is -to see if it can also act as a `CapsLock` when double-tapped. The right shift -key acts as `Enter` when tapped, and as a `Shift` key when held. The arrow -keys, which have been moved to the +changes are shown below. + +- The `Ctrl/Esc`, will emit an `Escape` when tapped, and act as a `Control` key when held. +- The `Sft/Ent` as `Enter` and `Shift`, and +- The `Hyper/Tab` as `Tab` and `Hyper` + +A `TODO` item is to see if it can also act as a `CapsLock` when double-tapped. +The arrow keys, which have been moved to the [TouchCursor](http://martin-stone.github.io/touchcursor/) layer, have been -replaced with the Media keys as shown. The `ML/A` key activates the Mouse layer -when held, and emits an `A` when tapped. +replaced with the Media keys as shown. The `MC/kc` key activates the +`MouseCursor` layer when held, and emits the corresponding `kc` for its layer, +when tapped. ``` ,-----------------------------------------------------------------------------------------. - | | | | | | | | | | | | | + | Hyper/Tab| | | | | | | | | | | | |----------+------+------+------+------+-------------+------+------+------+------+--------| - | Ctrl/Esc | ML/A | | | | | | | | | | | + | Ctrl/Esc | | |MC/kc | | | | | | | | | |----------+------+------+------+------+------|------+------+------+------+------+--------| | | | | | | | | | | | |Sft/Ent | |----------+------+------+------+------+------+------+------+------+------+------+--------| | PrntScrn | RGUI | Alt | GUI |Lower | TC/Space |Raise | Next | Vol- | Vol+ | Play | `-----------------------------------------------------------------------------------------' -``` - +``` + ## Lower Layer (Symbols and Function Keys) The symbols and functions keys are essentially the same as the default mapping. The most notable changes are that the symbol keys from the `RAISE` layer have been moved here. The remaining Media keys replace those that are now on the base layers. The `BACKLIT` key has also been moved here. -``` +``` ,-----------------------------------------------------------------------------------. | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp | |------+------+------+------+------+-------------+------+------+------+------+------| @@ -51,13 +55,13 @@ base layers. The `BACKLIT` key has also been moved here. |------+------+------+------+------+------+------+------+------+------+------+------| |Brite | | | | | | | Prev | Stop | Slct | Mute | `-----------------------------------------------------------------------------------' -``` - +``` + ## Raise Layer (Numbers and Arithmetic Operators) All of the numbers and arithmetic operators are available on this layer. Some keys are duplicated for the convenience of their positions. The `0` and `$` keys at the far left are for quick access to beginning and end of line in vim. -``` +``` ,-----------------------------------------------------------------------------------. | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | |------+------+------+------+------+-------------+------+------+------+------+------| @@ -67,8 +71,8 @@ keys at the far left are for quick access to beginning and end of line in vim. |------+------+------+------+------+------+------+------+------+------+------+------| |Brite | | | | | | | Prev | Stop | Slct | Mute | `-----------------------------------------------------------------------------------' -``` - +``` + ## TouchCursor layer plus personal customizations [TouchCursor](http://martin-stone.github.io/touchcursor/) uses the `Space` key as the modifier, with the `IJKL` home row keys representing the inverted-T of @@ -88,7 +92,7 @@ etc.) depending on which layout you've currently selected (`AG_NORM` or use to switch between Virtual Desktops Left/Right. The `Tab_C`, `Tab_N` and `Tab_R` are for "Close Tab," "New Tab" and "Reopen Closed Tab" for apps such as Google Chrome. -``` +``` ,-----------------------------------------------------------------------------------. |AltTab|CmdTab|CtlTab| GUI |Shift | ~ |Insert| Home | Up | End | Bksp | | |------+------+------+------+------+-------------+------+------+------+------+------| @@ -98,7 +102,7 @@ Google Chrome. |------+------+------+------+------+------+------+------+------+------+------+------| | | | | | | | | | | | | `-----------------------------------------------------------------------------------' -``` +``` ## Mouse Layer The Mouse layer, closely mimics the layout/behaviour of the TouchCursor layer. @@ -108,7 +112,7 @@ IMHO. The left and right click buttons are duplicated; on the right hand side, for a quick click here and there, and again on the left hand side for when the buttons need to be held for dragging things or highlighting text, thus allowing the right hand to be free to use the up/down/left/right actions. -``` +``` ,-----------------------------------------------------------------------------------. | | |ACCL0 | | | | |WHL_L | Up |WHL_R | BTN2 | | |------+------+------+------+------+-------------+------+------+------+------+------| @@ -118,4 +122,4 @@ the right hand to be free to use the up/down/left/right actions. |------+------+------+------+------+------+------+------+------+------+------+------| | | | | | | | | | | | | `-----------------------------------------------------------------------------------' -``` +``` From ef83f1d04f4cf85c1922632b8a759fe67a5b24cb Mon Sep 17 00:00:00 2001 From: JeeBak Kim Date: Sun, 7 Aug 2016 12:44:45 -0700 Subject: [PATCH 16/34] Tap for ;, hold for GUI, tap for ", hold for Alt --- keyboards/planck/keymaps/jeebak/keymap.c | 6 ++++-- keyboards/planck/keymaps/jeebak/readme.md | 10 ++++++---- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/keyboards/planck/keymaps/jeebak/keymap.c b/keyboards/planck/keymaps/jeebak/keymap.c index 8541ecd8d..cb7ccb588 100644 --- a/keyboards/planck/keymaps/jeebak/keymap.c +++ b/keyboards/planck/keymaps/jeebak/keymap.c @@ -62,6 +62,8 @@ enum macro_keycodes { #define CTL_ESC CTL_T(KC_ESC) // Tap for Esc, hold for Ctrl #define SFT_ENT SFT_T(KC_ENT) // Tap for Enter, hold for Shift #define HPR_TAB ALL_T(KC_TAB) // Tap for Tab, hold for Hyper +#define GUI_SEM GUI_T(KC_SCLN) // Tap for Semicolon, hold for GUI +#define ALT_QUO ALT_T(KC_QUOT) // Tap for Quote, hold for Alt // Requires KC_TRNS/_______ for the trigger key in the destination layer #define LT_TC LT(_TOUCHCURSOR, KC_SPC) // L-ayer T-ap T-ouch C-ursor #define LT_MC(kc) LT(_MOUSECURSOR, kc) // L-ayer T-ap M-ouse C-ursor @@ -87,7 +89,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * ,-----------------------------------------------------------------------------------------. * | Hyper/Tab| Q | W | E | R | T | Y | U | I | O | P | Bksp | * |----------+------+------+------+------+-------------+------+------+------+------+--------| - * | Ctrl/Esc | A | S | MC/D | F | G | H | J | K | L | ; | " | + * | Ctrl/Esc | A | S | MC/D | F | G | H | J | K | L |GUI/; | Alt/" | * |----------+------+------+------+------+------|------+------+------+------+------+--------| * | Shift | Z | X | C | V | B | N | M | , | . | / |Sft/Ent | * |----------+------+------+------+------+------+------+------+------+------+------+--------| @@ -96,7 +98,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [_QWERTY] = { {HPR_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, - {CTL_ESC, KC_A, KC_S, LT_MC(KC_D),KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, + {CTL_ESC, KC_A, KC_S, LT_MC(KC_D),KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, GUI_SEM, ALT_QUO}, {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, SFT_ENT}, {KC_PSCR, KC_RGUI, KC_LALT, KC_LGUI, LOWER, LT_TC, LT_TC, RAISE, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} }, diff --git a/keyboards/planck/keymaps/jeebak/readme.md b/keyboards/planck/keymaps/jeebak/readme.md index 863567904..e1dd1dca5 100644 --- a/keyboards/planck/keymaps/jeebak/readme.md +++ b/keyboards/planck/keymaps/jeebak/readme.md @@ -18,9 +18,11 @@ I also decided to change all calls to `persistant_default_layer_set()` to These base layers are mostly the same as the default mappings. The interesting changes are shown below. -- The `Ctrl/Esc`, will emit an `Escape` when tapped, and act as a `Control` key when held. -- The `Sft/Ent` as `Enter` and `Shift`, and -- The `Hyper/Tab` as `Tab` and `Hyper` +- The `Ctrl/Esc`, will emit an `Escape` when tapped, and act as a `Control` key when held, +- `GUI/;` as `;` and `GUI`, +- `Alt/"` as `"` and `Alt`, +- `Sft/Ent` as `Enter` and `Shift`, and +- `Hyper/Tab` as `Tab` and `Hyper` A `TODO` item is to see if it can also act as a `CapsLock` when double-tapped. The arrow keys, which have been moved to the @@ -32,7 +34,7 @@ when tapped. ,-----------------------------------------------------------------------------------------. | Hyper/Tab| | | | | | | | | | | | |----------+------+------+------+------+-------------+------+------+------+------+--------| - | Ctrl/Esc | | |MC/kc | | | | | | | | | + | Ctrl/Esc | | |MC/kc | | | | | | |GUI/; | Alt/" | |----------+------+------+------+------+------|------+------+------+------+------+--------| | | | | | | | | | | | |Sft/Ent | |----------+------+------+------+------+------+------+------+------+------+------+--------| From 8fab141a024fd55a28366958716f4be1a10f9c03 Mon Sep 17 00:00:00 2001 From: di0ib Date: Sun, 7 Aug 2016 20:58:59 -1000 Subject: [PATCH 17/34] Convert hex to bin For flashing via alternative methods like LUFA MassStorage bootloader. --- tmk_core/avr.mk | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/tmk_core/avr.mk b/tmk_core/avr.mk index 6c03e1650..b48173341 100644 --- a/tmk_core/avr.mk +++ b/tmk_core/avr.mk @@ -138,6 +138,11 @@ else endif dfu-programmer $(MCU) reset +# Convert hex to bin. +flashbin: $(BUILD_DIR)/$(TARGET).hex + $(OBJCOPY) -Iihex -Obinary $(BUILD_DIR)/$(TARGET).hex $(BUILD_DIR)/$(TARGET).bin + $(COPY) $(BUILD_DIR)/$(TARGET).bin $(TARGET).bin; + $(COPY) $(BUILD_DIR)/$(TARGET).bin FLASH.bin; # Generate avr-gdb config/init file which does the following: # define the reset signal, load the target file, connect to target, and set From f41c2e6863f2ebf55311051cdead743683846a49 Mon Sep 17 00:00:00 2001 From: Felix Uhl Date: Mon, 8 Aug 2016 17:53:08 +0200 Subject: [PATCH 18/34] Update TMK_README.md updated link to non-existent build.md file --- doc/TMK_README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/TMK_README.md b/doc/TMK_README.md index f3d96717a..0c75a0e27 100644 --- a/doc/TMK_README.md +++ b/doc/TMK_README.md @@ -113,7 +113,7 @@ Third party libraries like LUFA, PJRC and V-USB have their own license respectiv Build Firmware and Program Controller ------------------------------------- -See [doc/build.md](tmk_core/doc/build.md), or the readme in the particular keyboards/* folder. +See [doc/BUILD_GUIDE.md](tmk_core/doc/BUILD_GUIDE.md), or the readme in the particular keyboards/* folder. From 76cd7c5444471c7fbf0f648088cac13f4c79af57 Mon Sep 17 00:00:00 2001 From: Corey Finley Date: Fri, 5 Aug 2016 09:08:55 -0400 Subject: [PATCH 19/34] Adds keymap based on Kinesis advantage --- keyboards/preonic/keymaps/kinesis/Makefile | 27 ++++ keyboards/preonic/keymaps/kinesis/config.h | 92 +++++++++++++ keyboards/preonic/keymaps/kinesis/keymap.c | 144 ++++++++++++++++++++ keyboards/preonic/keymaps/kinesis/readme.md | 1 + 4 files changed, 264 insertions(+) create mode 100644 keyboards/preonic/keymaps/kinesis/Makefile create mode 100644 keyboards/preonic/keymaps/kinesis/config.h create mode 100644 keyboards/preonic/keymaps/kinesis/keymap.c create mode 100644 keyboards/preonic/keymaps/kinesis/readme.md diff --git a/keyboards/preonic/keymaps/kinesis/Makefile b/keyboards/preonic/keymaps/kinesis/Makefile new file mode 100644 index 000000000..6c8d2897c --- /dev/null +++ b/keyboards/preonic/keymaps/kinesis/Makefile @@ -0,0 +1,27 @@ + + +# 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 + +TAP_DANCE_ENABLE = yes + +ifndef QUANTUM_DIR + include ../../../../Makefile +endif diff --git a/keyboards/preonic/keymaps/kinesis/config.h b/keyboards/preonic/keymaps/kinesis/config.h new file mode 100644 index 000000000..086baa84f --- /dev/null +++ b/keyboards/preonic/keymaps/kinesis/config.h @@ -0,0 +1,92 @@ +/* +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 0x6061 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Ortholinear Keyboards +#define PRODUCT The Preonic Keyboard +#define DESCRIPTION A compact ortholinear keyboard + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 12 + +/* Planck PCB default pin-out */ +#define MATRIX_ROW_PINS { D2, D5, B5, B6, D3 } +#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)) \ +) + +/* 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 + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +#define TAPPING_TERM 200 + +/* disable debug print */ +// #define NO_DEBUG + +/* disable print */ +// #define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT +//#define NO_ACTION_MACRO +//#define NO_ACTION_FUNCTION + +#endif diff --git a/keyboards/preonic/keymaps/kinesis/keymap.c b/keyboards/preonic/keymaps/kinesis/keymap.c new file mode 100644 index 000000000..1cd6eb993 --- /dev/null +++ b/keyboards/preonic/keymaps/kinesis/keymap.c @@ -0,0 +1,144 @@ +#include "preonic.h" +#include "action_layer.h" +#include "eeconfig.h" +#ifdef AUDIO_ENABLE +#include "audio.h" +#endif + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +// Layer names don't all need to be of the same length, obviously, and you can also skip them +// entirely and just use numbers. +#define _QWERTY 0 +#define _FN 1 +#define _ULCK 2 + +// Fillers to make layering more clear +#define _______ KC_TRNS +#define XXXXXXX KC_NO +#define HYP_TIC ALL_T(KC_GRV) +#define EQ_LOCK TD(TD_EQ_LOCK) +#define MIN_ULK TD(TD_MIN_ULOCK) + +//Tap Dance Declarations +enum { + TD_EQ_LOCK = 0, + TD_MIN_ULOCK +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + /* Qwerty + * ,-----------------------------------------------------------------------------------. + * | = | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Tab | Q | W | E | R | T | Y | U | I | O | P | \ | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Ctrl | A | S | D | F | G | H | J | K | L | ; | " | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | N | M | , | . | / |Shift | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | FN | ` | Alt | LGUI | Back | ESC |ENTER | SPCE | RGUI | [ | ] | FN | + * `-----------------------------------------------------------------------------------' + */ + [_QWERTY] = { + {EQ_LOCK, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, MIN_ULK }, + {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS }, + {KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT }, + {KC_LSPO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSPC }, + {MO(_FN), HYP_TIC, KC_LALT, KC_LGUI, KC_BSPC, KC_ESC, KC_ENT, KC_SPC, KC_RGUI, KC_LBRC, KC_RBRC, MO(_FN) } + }, + + /* Fn + * ,-----------------------------------------------------------------------------------. + * | | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | | F11 | F12 | F13 | F14 | F15 | F16 | F17 | F18 | F19 | F20 | | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | | VOL- | VOL+ | MUTE |BLtogg| | LEFT | DOWN | UP | RGHT | | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | BL- | BL+ |Aud on|AudOff|AGnorm|AGswap| | | | | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | |Voice-|Voice+|Mus on|MusOff| | |PLY/PS| | PREV | NEXT | | + * `-----------------------------------------------------------------------------------' + */ + [_FN] = { + {_______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, _______ }, + {_______, KC_F11, KC_F12, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, _______ }, + {_______, KC_VOLD, KC_VOLU, KC_MUTE, BL_TOGG, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, _______ }, + {_______, BL_DEC, BL_INC, AU_ON, AU_OFF, AG_NORM, AG_SWAP, _______, _______, _______, _______, _______ }, + {_______, MUV_DE, MUV_IN, MU_ON, MU_OFF, _______, _______, KC_MPLY, _______, KC_MPRV, KC_MNXT, _______ } + } + +}; + +float tone_startup[][2] = { + {NOTE_B5, 20}, + {NOTE_B6, 8}, + {NOTE_DS6, 20}, + {NOTE_B6, 8} +}; + +float tone_goodbye[][2] = SONG(GOODBYE_SOUND); +float music_scale[][2] = SONG(MUSIC_SCALE_SOUND); + +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) {*/ + /*return true;*/ + /*[>switch (keycode) {<]*/ + /*[>case QWERTY:<]*/ + /*[>return true;<]*/ + /*[>}<]*/ +/*};*/ + +void matrix_init_user(void) { + startup_user(); +} + +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); +} + + +const qk_tap_dance_action_t tap_dance_actions[] = { + //Tap once for equal, twice for hyper + X (alfred lock) + [TD_EQ_LOCK] = ACTION_TAP_DANCE_DOUBLE(KC_EQL, HYPR(KC_X)), + //Tap once for minus, twice for time.heals.nothing + [TD_MIN_ULOCK] = ACTION_TAP_DANCE_DOUBLE(KC_MINS, M(_ULCK)) +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + switch(id) { + case _ULCK: + if (record->event.pressed) { + /* time.heals.nothing */ + return MACRO( I(220), T(T), T(I), T(M), T(E), T(DOT), T(H), T(E), T(A), T(L), T(S), T(DOT), T(N), T(O), T(T), T(H), T(I), T(N), T(G), END); + } + break; + } + return MACRO_NONE; +}; diff --git a/keyboards/preonic/keymaps/kinesis/readme.md b/keyboards/preonic/keymaps/kinesis/readme.md new file mode 100644 index 000000000..e911968dd --- /dev/null +++ b/keyboards/preonic/keymaps/kinesis/readme.md @@ -0,0 +1 @@ +# The default Preonic layout - largely based on the Planck's \ No newline at end of file From e85bf50e1acb9d5d3117e8b57ab6178eba00debb Mon Sep 17 00:00:00 2001 From: skullY Date: Mon, 8 Aug 2016 13:43:24 -0700 Subject: [PATCH 20/34] Clueboard: Add some readme.md files and do some minor cleanup. --- keyboards/clueboard/Makefile | 2 +- keyboards/clueboard/config.h | 3 - keyboards/clueboard/keymaps/default/keymap.c | 8 -- keyboards/clueboard/keymaps/skully/readme.md | 5 ++ keyboards/clueboard/readme.md | 95 +++++++++++++++++++- keyboards/clueboard/rev2/config.h | 2 +- 6 files changed, 101 insertions(+), 14 deletions(-) create mode 100644 keyboards/clueboard/keymaps/skully/readme.md diff --git a/keyboards/clueboard/Makefile b/keyboards/clueboard/Makefile index ccc01ea9a..e6b13f955 100644 --- a/keyboards/clueboard/Makefile +++ b/keyboards/clueboard/Makefile @@ -90,7 +90,7 @@ OPT_DEFS += -DBOOTLOADER_SIZE=4096 # Build Options -# comment out to disable the options. +# change to no to disable the options. # BOOTMAGIC_ENABLE ?= yes # Virtual DIP switch configuration(+1000) MOUSEKEY_ENABLE ?= no # Mouse keys(+4700) diff --git a/keyboards/clueboard/config.h b/keyboards/clueboard/config.h index ceac80795..ad6832385 100644 --- a/keyboards/clueboard/config.h +++ b/keyboards/clueboard/config.h @@ -29,9 +29,6 @@ along with this program. If not, see . /* COL2ROW or ROW2COL */ #define DIODE_DIRECTION COL2ROW -/* define if matrix has ghost */ -//#define MATRIX_HAS_GHOST - /* Set 0 if debouncing isn't needed */ #define DEBOUNCING_DELAY 5 diff --git a/keyboards/clueboard/keymaps/default/keymap.c b/keyboards/clueboard/keymaps/default/keymap.c index 896bc7ebc..01f158bf0 100644 --- a/keyboards/clueboard/keymaps/default/keymap.c +++ b/keyboards/clueboard/keymaps/default/keymap.c @@ -66,19 +66,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `----------------------------------------------------------------------------------' */ [_RS] = KEYMAP( - #ifdef RGBLIGHT_ENABLE KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_TOG, RGB_VAI, \ KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,RESET, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_VAD, \ KC_TRNS, KC_TRNS, MO(_RS),KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ MO(_FL), KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MO(_FL), RGB_SAI, \ KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, RGB_MOD, RGB_MOD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_HUD, RGB_SAD, RGB_HUI), - #else - KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ - KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,RESET, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ - KC_TRNS, KC_TRNS, MO(_RS),KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ - KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MO(_FL), KC_TRNS, KC_TRNS, KC_TRNS), - #endif }; enum function_id { diff --git a/keyboards/clueboard/keymaps/skully/readme.md b/keyboards/clueboard/keymaps/skully/readme.md new file mode 100644 index 000000000..20ac1e4f8 --- /dev/null +++ b/keyboards/clueboard/keymaps/skully/readme.md @@ -0,0 +1,5 @@ +# The Maximized Clueboard Layout + +This layout is what I (@skullydazed) use on my personal Clueboards. I mostly use it for programming, CAD, and general typing. + +The most notable change from the default layout is putting Ctrl on the Capslock key. I also swap Alt and Cmd because I mostly use a Mac day to day. diff --git a/keyboards/clueboard/readme.md b/keyboards/clueboard/readme.md index aa301f020..6c29c09ec 100644 --- a/keyboards/clueboard/readme.md +++ b/keyboards/clueboard/readme.md @@ -1,4 +1,97 @@ Clueboard keyboard firmware ====================== -TODO: to be updated. +DIY/Assembled compact 66% keyboard by [Clueboard](http://clueboard.co). + +For the full Quantum Mechanical Keyboard feature list, see [the parent readme.md](/readme.md). + +## First Time Setup + +Download or clone the whole firmware and navigate to the keyboards/clueboard directory. Once your dev env is setup, you'll be able to generate the default .hex: + +``` +$ make +``` + +You will see a lot of output and if everything worked correctly you will see something similar to this: + +``` +Size after: + text data bss dec hex filename + 0 19992 0 19992 4e18 clueboard_rev2_default.hex +``` + +At this point you can press RESET on your Clueboard and flash your keyboard with this command: + +``` +$ make dfu +``` + +If you would like to use one of the alternative keymaps, or create your own, see below. + +## Clueboard 1.0 + +If you have a first generation Clueboard (one with a black PCB) you will need to use the revision 1 code. To do so add `SUBPROJECT=rev1` to your make command, like this: + +``` +$ make SUBPROJECT=rev1 +``` + +And when flashing your keyboard: + +``` +$ make SUBPROJECT=rev1 dfu +``` + +If you are flashing an alternative layout to your rev1, include both `SUBPROJECT=rev1` and `KEYMAP=` in your command, for example when flashing max: + +``` +$ make SUBPROJECT=rev1 KEYMAP=max dfu +``` + +## Alternate Keymaps + +There are many alternative and user-contributed layouts available in the [keymaps/](keymaps/) directory. To compile and flash an alternative you will want to add `KEYMAP=` to your command: + +``` +$ make KEYMAP=skully +``` + +And when flashing your keyboard, put `KEYMAP=` between "make" and "dfu": + +``` +$ make KEYMAP=skully dfu +``` + +### Notable Layouts + +These layouts are notable for one reason or another. If you are looking for ideas or inspiration you should look at these first: + +* [keymaps/default](keymaps/default) - The default Clueboard layout +* [keymaps/max](keymaps/max) - A maximised layout that makes use of every key and feature of the Clueboard 2.0 PCB. +* [keymaps/skully](keymaps/skully) - The layout that @skullydazed uses on his own Clueboards. + +## Create Your Own Keymap + +There are a lot of possibilities when creating your own keymap, and the primary documentation for doing that is [Customizing Your Keymap](/readme.md##customizing-your-keymap) in the main readme.md. As a way to get started, here is the procedure I recommend: + +* Copy `[keymaps/default](keymaps/default/)` to `keymaps/`. +* Compile the firmware (`$ make KEYMAP=`) +* Flash the firmware (`$ make KEYMAP= dfu`) +* Make sure everything works like the default keyboard +* Modify `keymaps//readme.md` to tell others about your layout. +* Modify `keymaps//keymap.c` to reflect your desired layout. +* Compile your new custom firmware (`$ make KEYMAP=`) +** If you have warnings you may flash without fixing them, but something may not work right. +** If you have any errors you must fix them before continuing. +* Flash the firmware (`$ make KEYMAP= dfu`) + +## Share Your Keymap + +Got your layout dialed in? Please share it with the world so we can benefit from your work! Simply submit a pull request with your layout and we'll include it in the official repository. Please use the following guidelines when putting together your pull request: + +* Include a readme.md that states what your primary keyboard use is, how your layout differs from the default, and highlights anything you think makes your layout particularly great. +* If your layout requires certain features (EG, RGB underlight or backlighting) ensure you have a Makefile and config.h that reflects that +* If your layout requires special hardware to be added, please describe that in the readme.md + +TODO: Write up or link quick how-to on creating and submitting a PR. (Pull requests accepted. :) diff --git a/keyboards/clueboard/rev2/config.h b/keyboards/clueboard/rev2/config.h index 02982ff29..15ca4ece8 100644 --- a/keyboards/clueboard/rev2/config.h +++ b/keyboards/clueboard/rev2/config.h @@ -36,4 +36,4 @@ #define RGBLIGHT_SAT_STEP 17 #define RGBLIGHT_VAL_STEP 17 -#endif \ No newline at end of file +#endif From d561f63bd14b8ea2e6d8b26a1ba46a1e8503c5bd Mon Sep 17 00:00:00 2001 From: skullY Date: Mon, 8 Aug 2016 13:46:55 -0700 Subject: [PATCH 21/34] Clueboard: Fix the title in keymaps/skully/readme.md --- keyboards/clueboard/keymaps/skully/readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/keyboards/clueboard/keymaps/skully/readme.md b/keyboards/clueboard/keymaps/skully/readme.md index 20ac1e4f8..c1182123d 100644 --- a/keyboards/clueboard/keymaps/skully/readme.md +++ b/keyboards/clueboard/keymaps/skully/readme.md @@ -1,4 +1,4 @@ -# The Maximized Clueboard Layout +# skullY's Clueboard Layout This layout is what I (@skullydazed) use on my personal Clueboards. I mostly use it for programming, CAD, and general typing. From adad05c3fbd511e77a77484945fa2f675d6abf8b Mon Sep 17 00:00:00 2001 From: skullY Date: Mon, 8 Aug 2016 16:11:54 -0700 Subject: [PATCH 22/34] Add support for the cluecard --- keyboards/cluecard/Makefile | 76 +++++++++ keyboards/cluecard/cluecard.c | 98 +++++++++++ keyboards/cluecard/cluecard.h | 22 +++ keyboards/cluecard/config.h | 167 +++++++++++++++++++ keyboards/cluecard/keymaps/default/Makefile | 21 +++ keyboards/cluecard/keymaps/default/config.h | 8 + keyboards/cluecard/keymaps/default/keymap.c | 63 +++++++ keyboards/cluecard/keymaps/default/readme.md | 1 + keyboards/cluecard/readme.md | 28 ++++ 9 files changed, 484 insertions(+) create mode 100644 keyboards/cluecard/Makefile create mode 100644 keyboards/cluecard/cluecard.c create mode 100644 keyboards/cluecard/cluecard.h create mode 100644 keyboards/cluecard/config.h create mode 100644 keyboards/cluecard/keymaps/default/Makefile create mode 100644 keyboards/cluecard/keymaps/default/config.h create mode 100644 keyboards/cluecard/keymaps/default/keymap.c create mode 100644 keyboards/cluecard/keymaps/default/readme.md create mode 100644 keyboards/cluecard/readme.md diff --git a/keyboards/cluecard/Makefile b/keyboards/cluecard/Makefile new file mode 100644 index 000000000..029d0b967 --- /dev/null +++ b/keyboards/cluecard/Makefile @@ -0,0 +1,76 @@ + + +# MCU name +#MCU = at90usb1287 +MCU = atmega32u4 + +# Processor frequency. +# This will define a symbol, F_CPU, in all source code files equal to the +# processor frequency in Hz. You can then use this symbol in your source code to +# calculate timings. Do NOT tack on a 'UL' at the end, this will be done +# automatically to create a 32-bit value in your source code. +# +# This will be an integer division of F_USB below, as it is sourced by +# F_USB after it has run through any CPU prescalers. Note that this value +# does not *change* the processor frequency - it should merely be updated to +# reflect the processor speed set externally so that the code can use accurate +# software delays. +F_CPU = 16000000 + + +# +# LUFA specific +# +# Target architecture (see library "Board Types" documentation). +ARCH = AVR8 + +# Input clock frequency. +# This will define a symbol, F_USB, in all source code files equal to the +# input clock frequency (before any prescaling is performed) in Hz. This value may +# differ from F_CPU if prescaling is used on the latter, and is required as the +# raw input clock is fed directly to the PLL sections of the AVR for high speed +# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL' +# at the end, this will be done automatically to create a 32-bit value in your +# source code. +# +# If no clock division is performed on the input clock inside the AVR (via the +# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU. +F_USB = $(F_CPU) + +# Interrupt driven control endpoint task(+60) +OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT + + +# Boot Section Size in *bytes* +# Teensy halfKay 512 +# Teensy++ halfKay 1024 +# Atmel DFU loader 4096 +# LUFA bootloader 4096 +# USBaspLoader 2048 +OPT_DEFS += -DBOOTLOADER_SIZE=4096 + + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE ?= no # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE ?= yes # Mouse keys(+4700) +EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450) +CONSOLE_ENABLE ?= yes # Console for debug(+400) +COMMAND_ENABLE ?= yes # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE ?= no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE ?= no # USB Nkey Rollover +RGBLIGHT_ENABLE ?= yes # Enable keyboard underlight functionality (+4870) +BACKLIGHT_ENABLE ?= yes # Enable keyboard backlight functionality by default +MIDI_ENABLE ?= no # MIDI controls +UNICODE_ENABLE ?= no # Unicode +BLUETOOTH_ENABLE ?= no # Enable Bluetooth with the Adafruit EZ-Key HID +AUDIO_ENABLE ?= yes # Audio output on port C6 + +ifndef QUANTUM_DIR + include ../../Makefile +endif + + diff --git a/keyboards/cluecard/cluecard.c b/keyboards/cluecard/cluecard.c new file mode 100644 index 000000000..81db252d2 --- /dev/null +++ b/keyboards/cluecard/cluecard.c @@ -0,0 +1,98 @@ +#include "cluecard.h" +#define BL_RED OCR1B +#define BL_GREEN OCR1A +#define BL_BLUE OCR1C + +void matrix_init_kb(void) { + // put your keyboard start-up code here + // runs once when the firmware starts up + + matrix_init_user(); +} + +void matrix_scan_kb(void) { + // put your looping keyboard code here + // runs every cycle (a lot) + + matrix_scan_user(); +} + +bool process_record_kb(uint16_t keycode, keyrecord_t *record) { + // put your per-action keyboard code here + // runs for every action, just before processing by the firmware + + return process_record_user(keycode, record); +} + +void led_set_kb(uint8_t usb_led) { + // put your keyboard LED indicator (ex: Caps Lock LED) toggling code here + + led_set_user(usb_led); +} + +void backlight_init_ports(void) +{ + // Set B5, B6, and B7 as output + DDRB |= (1<<7)|(1<<6)|(1<<5); + + // Setup PWM + ICR1 = 0xFFFF; + TCCR1A = 0b10101010; + TCCR1B = 0b00011001; + + BL_RED = 0xFFFF; + BL_GREEN = 0xFFFF; + BL_BLUE = 0xFFFF; +} + +void backlight_set(uint8_t level) +{ + // Set the RGB color + switch (level) + { + case 0: + // Off + BL_RED = 0xFFFF; + BL_GREEN = 0xFFFF; + BL_BLUE = 0xFFFF; + break; + case 1: + // Red + BL_RED = 0x0000; + BL_GREEN = 0xFFFF; + BL_BLUE = 0xFFFF; + break; + case 2: + // Green + BL_RED = 0xFFFF; + BL_GREEN = 0x0000; + BL_BLUE = 0xFFFF; + break; + case 3: + // Blue + BL_RED = 0xFFFF; + BL_GREEN = 0xFFFF; + BL_BLUE = 0x0000; + break; + case 4: + // Magenta + BL_RED = 0x4000; + BL_GREEN = 0x4000; + BL_BLUE = 0x4000; + break; + case 5: + // Purple + BL_RED = 0x0000; + BL_GREEN = 0xFFFF; + BL_BLUE = 0x0000; + break; + case 6: + // Yellow + BL_RED = 0x0000; + BL_GREEN = 0x0000; + BL_BLUE = 0xFFFF; + break; + default: + xprintf("Unknown level: %d\n", level); + } +} diff --git a/keyboards/cluecard/cluecard.h b/keyboards/cluecard/cluecard.h new file mode 100644 index 000000000..3342a0823 --- /dev/null +++ b/keyboards/cluecard/cluecard.h @@ -0,0 +1,22 @@ +#ifndef CLUECARD_H +#define CLUECARD_H + +#include "quantum.h" + +// This a shortcut to help you visually see your layout. +// The first section contains all of the arguements +// The second converts the arguments into a two-dimensional array +#define KEYMAP( \ + k00, k01, k02, \ + k10, k12, \ + k20, k21, k22, \ + k11, \ + k30, k31, k32 \ +) { \ + { k00, k01, k02, }, \ + { k10, k11, k12, }, \ + { k20, k21, k22, }, \ + { k30, k31, k32, } \ +} + +#endif diff --git a/keyboards/cluecard/config.h b/keyboards/cluecard/config.h new file mode 100644 index 000000000..765347b13 --- /dev/null +++ b/keyboards/cluecard/config.h @@ -0,0 +1,167 @@ +/* +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 0xC1ED +#define PRODUCT_ID 0x2330 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Clueboard +#define PRODUCT ATMEGA32U4 Firmware Dev Kit +#define DESCRIPTION A small board to help you hack on QMK. + +/* key matrix size */ +#define MATRIX_ROWS 4 +#define MATRIX_COLS 3 + +/* + * 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, F5, F4, B4 } +#define MATRIX_COL_PINS { F1, F7, F6 } +#define UNUSED_PINS + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION ROW2COL + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCING_DELAY 20 + +/* define if matrix has ghost (lacks anti-ghosting diodes) */ +//#define MATRIX_HAS_GHOST + +/* number of backlight levels */ +#define BACKLIGHT_LEVELS 6 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +//#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +//#define LOCKING_RESYNC_ENABLE + +/* + * Force NKRO + * + * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved + * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the + * makefile for this to work.) + * + * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N) + * until the next keyboard reset. + * + * NKRO may prevent your keystrokes from being detected in the BIOS, but it is + * fully operational during normal computer usage. + * + * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N) + * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by + * bootmagic, NKRO mode will always be enabled until it is toggled again during a + * power-up. + * + */ +//#define FORCE_NKRO + +/* + * Magic Key Options + * + * Magic keys are hotkey commands that allow control over firmware functions of + * the keyboard. They are best used in combination with the HID Listen program, + * found here: https://www.pjrc.com/teensy/hid_listen.html + * + * The options below allow the magic key functionality to be changed. This is + * useful if your keyboard/keypad is missing keys and you want magic key support. + * + */ + +/* key combination for magic key command */ +#define IS_COMMAND() ( \ + keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ +) + +/* control how magic key switches layers */ +//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true +//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true +//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false + +/* override magic key keymap */ +//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS +//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS +//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM +//#define MAGIC_KEY_HELP1 H +//#define MAGIC_KEY_HELP2 SLASH +//#define MAGIC_KEY_DEBUG D +//#define MAGIC_KEY_DEBUG_MATRIX X +//#define MAGIC_KEY_DEBUG_KBD K +//#define MAGIC_KEY_DEBUG_MOUSE M +//#define MAGIC_KEY_VERSION V +//#define MAGIC_KEY_STATUS S +//#define MAGIC_KEY_CONSOLE C +//#define MAGIC_KEY_LAYER0_ALT1 ESC +//#define MAGIC_KEY_LAYER0_ALT2 GRAVE +//#define MAGIC_KEY_LAYER0 0 +//#define MAGIC_KEY_LAYER1 1 +//#define MAGIC_KEY_LAYER2 2 +//#define MAGIC_KEY_LAYER3 3 +//#define MAGIC_KEY_LAYER4 4 +//#define MAGIC_KEY_LAYER5 5 +//#define MAGIC_KEY_LAYER6 6 +//#define MAGIC_KEY_LAYER7 7 +//#define MAGIC_KEY_LAYER8 8 +//#define MAGIC_KEY_LAYER9 9 +//#define MAGIC_KEY_BOOTLOADER PAUSE +//#define MAGIC_KEY_LOCK CAPS +//#define MAGIC_KEY_EEPROM E +//#define MAGIC_KEY_NKRO N +//#define MAGIC_KEY_SLEEP_LED Z + +/* Underlight configuration + */ +#define RGB_DI_PIN E6 +//#define RGBLIGHT_TIMER +#define RGBLED_NUM 4 // Number of LEDs +#define RGBLIGHT_HUE_STEP 10 +#define RGBLIGHT_SAT_STEP 17 +#define RGBLIGHT_VAL_STEP 17 + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +//#define NO_DEBUG + +/* disable print */ +//#define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT +//#define NO_ACTION_MACRO +//#define NO_ACTION_FUNCTION + +#endif diff --git a/keyboards/cluecard/keymaps/default/Makefile b/keyboards/cluecard/keymaps/default/Makefile new file mode 100644 index 000000000..8ee841da0 --- /dev/null +++ b/keyboards/cluecard/keymaps/default/Makefile @@ -0,0 +1,21 @@ +# Build Options +# change to "no" to disable the options, or define them in the Makefile in +# the appropriate keymap folder that will get included automatically +# +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE = no # Mouse keys(+4700) +EXTRAKEY_ENABLE = no # Audio control and System control(+450) +CONSOLE_ENABLE = yes # 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 = yes # Enable WS2812 RGB underlight. +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend + +ifndef QUANTUM_DIR + include ../../../../Makefile +endif diff --git a/keyboards/cluecard/keymaps/default/config.h b/keyboards/cluecard/keymaps/default/config.h new file mode 100644 index 000000000..8893d122e --- /dev/null +++ b/keyboards/cluecard/keymaps/default/config.h @@ -0,0 +1,8 @@ +#ifndef CONFIG_USER_H +#define CONFIG_USER_H + +#include "../../config.h" + +// place overrides here + +#endif diff --git a/keyboards/cluecard/keymaps/default/keymap.c b/keyboards/cluecard/keymaps/default/keymap.c new file mode 100644 index 000000000..517afe867 --- /dev/null +++ b/keyboards/cluecard/keymaps/default/keymap.c @@ -0,0 +1,63 @@ +#include "cluecard.h" +#ifdef AUDIO_ENABLE + #include "audio.h" +#endif + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = KEYMAP( + RGB_TOG, RGB_SAI, RGB_VAI, \ + RGB_HUD, RGB_HUI, \ + RGB_MOD, RGB_SAD, RGB_VAD, \ + BL_STEP, \ + F(0), F(1), F(2) \ + ) +}; + +#ifdef AUDIO_ENABLE + +float tone_startup[][2] = SONG(STARTUP_SOUND); +float tone_qwerty[][2] = SONG(QWERTY_SOUND); +float tone_dvorak[][2] = SONG(DVORAK_SOUND); +float tone_colemak[][2] = SONG(COLEMAK_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 + +const uint16_t PROGMEM fn_actions[] = { + [0] = ACTION_FUNCTION(0), + [1] = ACTION_FUNCTION(1), + [2] = ACTION_FUNCTION(2) +}; + +void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { + if (record->event.pressed) { + switch (id) { + case 0: + PLAY_NOTE_ARRAY(tone_startup, false, 0); + break; + case 1: + PLAY_NOTE_ARRAY(music_scale, false, 0); + break; + case 2: + PLAY_NOTE_ARRAY(tone_goodbye, false, 0); + break; + } + } +}; + +void matrix_init_user(void) { +} + +void matrix_scan_user(void) { + +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + return true; +} + +void led_set_user(uint8_t usb_led) { +} diff --git a/keyboards/cluecard/keymaps/default/readme.md b/keyboards/cluecard/keymaps/default/readme.md new file mode 100644 index 000000000..9e3b97bea --- /dev/null +++ b/keyboards/cluecard/keymaps/default/readme.md @@ -0,0 +1 @@ +# The default keymap for cluecard diff --git a/keyboards/cluecard/readme.md b/keyboards/cluecard/readme.md new file mode 100644 index 000000000..ae1afbbfd --- /dev/null +++ b/keyboards/cluecard/readme.md @@ -0,0 +1,28 @@ +cluecard keyboard firmware +====================== + +## Quantum MK Firmware + +For the full Quantum feature list, see [the parent readme.md](/doc/readme.md). + +## Building + +Download or clone the whole firmware and navigate to the keyboards/cluecard folder. Once your dev env is setup, you'll be able to type `make` to generate your .hex - you can then use the Teensy Loader to program your .hex file. + +Depending on which keymap you would like to use, you will have to compile slightly differently. + +### Default + +To build with the default keymap, simply run `make`. + +### Other Keymaps + +Several version of keymap are available in advance but you are recommended to define your favorite layout yourself. To define your own keymap create a folder with the name of your keymap in the keymaps folder, and see keymap documentation (you can find in top readme.md) and existant keymap files. + +To build the firmware binary hex file with a keymap just do `make` with `keymap` option like: + +``` +$ make keymap=[default|jack|] +``` + +Keymaps follow the format **__keymap.c__** and are stored in folders in the `keymaps` folder, eg `keymaps/my_keymap/` From ca3278cc356038ecdaf96fe12025b43c18692976 Mon Sep 17 00:00:00 2001 From: Xyverz Date: Tue, 9 Aug 2016 09:31:56 -0700 Subject: [PATCH 23/34] adds Xyverz's keymaps (#615) * Adding my own keymaps to the following keyboards: Planck, Preonic, Atreus, Ergodox * Delete dvorak.png Not reflective of my layout. * Delete readme.md file cleanup, removing file that doesn't apply to my layout. * Delete old_keymap.c file cleanup * Delete README.md file clean up. * Delete README.md file cleanup * Delete keymap.c file cleanup * Changed behavior of _DVORAK layout's KC_RSFT to SFT_T(KC_ENT) for flexibility's sake. Updated the rest of the keymap to reflect the current (as of 19:37 on 08 Aug 2018) default layout and default makefile. --- keyboards/atreus/keymaps/xyverz/keymap.c | 89 +++++ keyboards/planck/keymaps/xyverz/keymap.c | 314 +++++++++++++++++ keyboards/planck/keymaps/xyverz/makefile.mk | 25 ++ keyboards/preonic/keymaps/xyverz/keymap.c | 342 +++++++++++++++++++ keyboards/preonic/keymaps/xyverz/makefile.mk | 1 + 5 files changed, 771 insertions(+) create mode 100644 keyboards/atreus/keymaps/xyverz/keymap.c create mode 100644 keyboards/planck/keymaps/xyverz/keymap.c create mode 100644 keyboards/planck/keymaps/xyverz/makefile.mk create mode 100644 keyboards/preonic/keymaps/xyverz/keymap.c create mode 100644 keyboards/preonic/keymaps/xyverz/makefile.mk diff --git a/keyboards/atreus/keymaps/xyverz/keymap.c b/keyboards/atreus/keymaps/xyverz/keymap.c new file mode 100644 index 000000000..447fbcf10 --- /dev/null +++ b/keyboards/atreus/keymaps/xyverz/keymap.c @@ -0,0 +1,89 @@ +// This is the personal keymap of Ian Sterling (@xyverz). It is based on the keymap by +// Chris Gerber (@gerbercj), with the addition of persistent layers like the Planck and +// Preonic keyboards by Jack Humbert. + +#include "atreus.h" +#include "action_layer.h" +#include "eeconfig.h" + +extern keymap_config_t keymap_config; + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +// Layer names don't all need to be of the same length, obviously, and you can also skip them +// entirely and just use numbers. +#define _DV 0 +#define _QW 1 +#define _CM 2 +#define _L1 3 +#define _L2 4 + +// Macro name shortcuts +#define DVORAK M(_DV) +#define QWERTY M(_QW) +#define COLEMAK M(_CM) + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_DV] = { /* Dvorak */ + {KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_NO, KC_F, KC_G, KC_C, KC_R, KC_L }, + {KC_A, KC_O, KC_E, KC_U, KC_I, KC_NO, KC_D, KC_H, KC_T, KC_N, KC_S }, + {SFT_T(KC_SCLN), KC_Q, KC_J, KC_K, KC_X, CTL_T(KC_DEL), KC_B, KC_M, KC_W, KC_V, SFT_T(KC_Z) }, + {KC_ESC, KC_TAB, KC_LGUI, MO(_L2), KC_BSPC, ALT_T(KC_ENT), KC_SPC, MO(_L1), KC_MINS, KC_SLSH, KC_EQL} + }, + [_QW] = { /* Qwerty */ + {KC_Q, KC_W, KC_E, KC_R, KC_T, KC_NO, KC_Y, KC_U, KC_I, KC_O, KC_P }, + {KC_A, KC_S, KC_D, KC_F, KC_G, KC_NO, KC_H, KC_J, KC_K, KC_L, KC_SCLN}, + {SFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, CTL_T(KC_DEL), KC_N, KC_M, KC_COMM, KC_DOT, SFT_T(KC_SLSH) }, + {KC_ESC, KC_TAB, KC_LGUI, MO(_L2), KC_BSPC, ALT_T(KC_ENT), KC_SPC, MO(_L1), KC_MINS, KC_QUOT, KC_ENT} + }, + [_CM] = { /* Colemak */ + {KC_Q, KC_W, KC_F, KC_P, KC_G, KC_NO, KC_J, KC_L, KC_U, KC_Y, KC_SCLN}, + {KC_A, KC_R, KC_S, KC_T, KC_D, KC_NO, KC_H, KC_N, KC_E, KC_I, KC_O }, + {SFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, CTL_T(KC_DEL), KC_K, KC_M, KC_COMM, KC_DOT, SFT_T(KC_SLSH) }, + {KC_ESC, KC_TAB, KC_LGUI, MO(_L2), KC_BSPC, ALT_T(KC_ENT), KC_SPC, MO(_L1), KC_MINS, KC_QUOT, KC_ENT} + }, + [_L1] = { /* LAYER 1 */ + {KC_1, KC_2, KC_3, KC_4, KC_5, KC_NO, KC_6, KC_7, KC_8, KC_9, KC_0 }, + {KC_TAB, KC_INS, KC_UP, KC_DEL, KC_HOME, KC_NO, KC_PGUP, KC_MUTE, KC_VOLD, KC_VOLU, KC_EQL }, + {KC_CAPS, KC_LEFT, KC_DOWN, KC_RGHT, KC_END, KC_LCTL, KC_PGDN, KC_MPRV, KC_MPLY, KC_MNXT, KC_BSLS}, + {KC_TRNS, KC_GRV, KC_LGUI, KC_TRNS, KC_DEL, KC_LALT, KC_SPC, KC_TRNS, KC_LBRC, KC_RBRC, KC_ENT } + }, + [_L2] = { /* LAYER 2 */ + {KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_NO, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN}, + {KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_NO, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10 }, + {KC_TRNS, KC_TRNS, DVORAK, QWERTY, COLEMAK, KC_LCTL, KC_TRNS, KC_TRNS, KC_TRNS, KC_F11, KC_F12 }, + {KC_TRNS, KC_TRNS, KC_LGUI, KC_TRNS, KC_BSPC, KC_LALT, KC_SPC, KC_TRNS, KC_TRNS, KC_TRNS, RESET } + } +}; + +const uint16_t PROGMEM fn_actions[] = { + +}; + +void persistant_default_layer_set(uint16_t default_layer) { + eeconfig_update_default_layer(default_layer); + default_layer_set(default_layer); +} + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + switch(id) { + case _DV: + if (record->event.pressed) { + persistant_default_layer_set(1UL<<_DV); + } + break; + case _QW: + if (record->event.pressed) { + persistant_default_layer_set(1UL<<_QW); + } + break; + case _CM: + if (record->event.pressed) { + persistant_default_layer_set(1UL<<_CM); + } + break; + } + return MACRO_NONE; +}; diff --git a/keyboards/planck/keymaps/xyverz/keymap.c b/keyboards/planck/keymaps/xyverz/keymap.c new file mode 100644 index 000000000..90529428d --- /dev/null +++ b/keyboards/planck/keymaps/xyverz/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 _QWERTY 0 +#define _COLEMAK 1 +#define _DVORAK 2 +#define _LOWER 3 +#define _RAISE 4 +#define _PLOVER 5 +#define _ADJUST 16 + +enum planck_keycodes { + QWERTY = SAFE_RANGE, + COLEMAK, + DVORAK, + PLOVER, + LOWER, + RAISE, + BACKLIT, + EXT_PLV +}; + +// Fillers to make layering more clear +#define _______ KC_TRNS +#define XXXXXXX KC_NO + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +/* Qwerty + * ,-----------------------------------------------------------------------------------. + * | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | A | S | D | F | G | H | J | K | L | ; | " | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Brite| Ctrl | Alt | GUI |Lower | 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 }, + {BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} +}, + +/* Colemak + * ,-----------------------------------------------------------------------------------. + * | Tab | Q | W | F | P | G | J | L | U | Y | ; | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | A | R | S | T | D | H | N | E | I | O | " | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | K | M | , | . | / |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ +[_COLEMAK] = { + {KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC}, + {KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT}, + {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT }, + {BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} +}, + +/* Dvorak + * ,-----------------------------------------------------------------------------------. + * | Tab | " | , | . | P | Y | F | G | C | R | L | / | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | A | O | E | U | I | D | H | T | N | S | - | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| ; | Q | J | K | X | B | M | W | V | Z | Shift| + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Ctrl | Alt | Left |Right |Lower | Bksp |Space |Raise | Up | Down | GUI |Enter | + * `-----------------------------------------------------------------------------------' + */ +[_DVORAK] = { + {KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH}, + {KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS}, + {KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, SFT_T(KC_ENT)}, + {KC_LCTL, KC_LALT, KC_LEFT, KC_RGHT, LOWER, KC_BSPC, KC_SPC, RAISE, KC_UP, KC_DOWN, KC_RGUI, KC_ENT } +}, + +/* Lower + * ,-----------------------------------------------------------------------------------. + * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Caps | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | F7 | F8 | F9 | F10 | F11 | F12 | | Mute | Vol- | Vol+ | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Brite| | Home | End | | Del | Ins | | PgUp | PgDN | |Enter | + * `-----------------------------------------------------------------------------------' + */ +[_LOWER] = { + {KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______}, + {KC_CAPS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE}, + {_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______}, + {BACKLIT, _______, KC_HOME, KC_END, _______, KC_DEL, KC_INS, _______, KC_PGUP, KC_PGDN, _______, _______} +}, + +/* Raise + * ,-----------------------------------------------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Caps | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | F7 | F8 | F9 | F10 | F11 | F12 | | Prev | Play | Next | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Brite| | Home | End | | Del | Ins | | PgUp | PgDN | |Enter | + * `-----------------------------------------------------------------------------------' + */ +[_RAISE] = { + {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______}, + {KC_CAPS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS}, + {_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_MPRV, KC_MPLY, KC_MNXT, _______, _______}, + {BACKLIT, _______, KC_HOME, KC_END, _______, KC_DEL, KC_INS, _______, KC_PGUP, KC_PGDN, _______, _______} +}, + +/* 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_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC}, + {XXXXXXX, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, + {EXT_PLV, XXXXXXX, XXXXXXX, KC_C, KC_V, XXXXXXX, XXXXXXX, KC_N, KC_M, XXXXXXX, XXXXXXX, XXXXXXX} +}, + +/* Adjust (Lower + Raise) + * ,-----------------------------------------------------------------------------------. + * | | Reset| | | | | | | | | | Del | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | | | |Aud on|Audoff|AGnorm|AGswap|Qwerty|Colemk|Dvorak|Plover| | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | |Voice-|Voice+|Mus on|Musoff|MIDIon|MIDIof| | | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | | | + * `-----------------------------------------------------------------------------------' + */ +[_ADJUST] = { + {_______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL}, + {_______, _______, _______, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, PLOVER, _______}, + {_______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, _______, _______, _______, _______, _______}, + {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} +} + + +}; + +#ifdef AUDIO_ENABLE + +float tone_startup[][2] = SONG(STARTUP_SOUND); +float tone_qwerty[][2] = SONG(QWERTY_SOUND); +float tone_dvorak[][2] = SONG(DVORAK_SOUND); +float tone_colemak[][2] = SONG(COLEMAK_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 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 DVORAK: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + PLAY_NOTE_ARRAY(tone_dvorak, false, 0); + #endif + persistant_default_layer_set(1UL<<_DVORAK); + } + return false; + break; + case LOWER: + 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; + 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; + } + 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 \ No newline at end of file diff --git a/keyboards/planck/keymaps/xyverz/makefile.mk b/keyboards/planck/keymaps/xyverz/makefile.mk new file mode 100644 index 000000000..0f4953888 --- /dev/null +++ b/keyboards/planck/keymaps/xyverz/makefile.mk @@ -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 diff --git a/keyboards/preonic/keymaps/xyverz/keymap.c b/keyboards/preonic/keymaps/xyverz/keymap.c new file mode 100644 index 000000000..adc7392e5 --- /dev/null +++ b/keyboards/preonic/keymaps/xyverz/keymap.c @@ -0,0 +1,342 @@ +#include "preonic.h" +#include "action_layer.h" +#include "eeconfig.h" +#ifdef AUDIO_ENABLE + #include "audio.h" +#endif + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +// Layer names don't all need to be of the same length, obviously, and you can also skip them +// entirely and just use numbers. +#define _QWERTY 0 +#define _COLEMAK 1 +#define _DVORAK 2 +#define _LOWER 3 +#define _RAISE 4 +#define _MUSIC 5 +#define _ADJUST 16 + +// Macro name shortcuts +#define QWERTY M(_QWERTY) +#define COLEMAK M(_COLEMAK) +#define DVORAK M(_DVORAK) +#define LOWER M(_LOWER) +#define RAISE M(_RAISE) +#define M_BL 5 +#define AUD_OFF M(6) +#define AUD_ON M(7) +#define MUS_OFF M(8) +#define MUS_ON M(9) +#define VC_IN M(10) +#define VC_DE M(11) + +// Fillers to make layering more clear +#define _______ KC_TRNS +#define XXXXXXX KC_NO + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +/* Qwerty + * ,-----------------------------------------------------------------------------------. + * | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Tab | Q | W | E | R | T | Y | U | I | O | P | Del | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | - | A | S | D | F | G | H | J | K | L | ; | " | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | N | M | , | . | / | Shift| + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Ctrl | Alt | Left |Right |Lower | Space |Raise | Up | Down | GUI |Enter | + * `-----------------------------------------------------------------------------------' + */ +[_QWERTY] = { + {KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, + {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL}, + {KC_MINS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, + {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT}, + {KC_LCTL, KC_LALT, KC_LEFT, KC_RGHT, LOWER, KC_SPC, KC_SPC, RAISE, KC_UP, KC_DOWN, KC_RGUI, KC_ENT } +}, + +/* Colemak + * ,-----------------------------------------------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Tab | Q | W | F | P | G | J | L | U | Y | ; | Del | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | A | R | S | T | D | H | N | E | I | O | " | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | K | M | , | . | / |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ +[_COLEMAK] = { + {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, + {KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_DEL}, + {KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT}, + {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT }, + {M(M_BL), KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} +}, + +/* Dvorak + * ,-----------------------------------------------------------------------------------. + * | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Tab | " | , | . | P | Y | F | G | C | R | L | / | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | A | O | E | U | I | D | H | T | N | S | - | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| ; | Q | J | K | X | B | M | W | V | Z | Shift| + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Ctrl | Alt | Left |Right |Lower | Space |Raise | Up | Down | GUI |Enter | + * `-----------------------------------------------------------------------------------' + */ +[_DVORAK] = { + {KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, + {KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH}, + {KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS}, + {KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_RSFT}, + {KC_LCTL, KC_LALT, KC_LEFT, KC_RGHT, LOWER, KC_SPC, KC_SPC, RAISE, KC_UP, KC_DOWN, KC_RGUI, KC_ENT } +}, + +/* Lower + * ,-----------------------------------------------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Del | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Caps | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | F7 | F8 | F9 | F10 | F11 | F12 | | Mute | Vol- | Vol+ | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Brite| | Home | End | | Ins | | PgUp | PgDN | |Enter | + * `-----------------------------------------------------------------------------------' + */ +[_LOWER] = { + {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, + {KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL}, + {KC_CAPS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE}, + {_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______}, + {M(M_BL), _______, KC_HOME, KC_END, _______, KC_INS, KC_INS, _______, KC_PGUP, KC_PGDN, _______, _______} +}, + +/* Raise + * ,-----------------------------------------------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Del | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Caps | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | F7 | F8 | F9 | F10 | F11 | F12 | | Prev | Play | Next | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Brite| | Home | End | | Ins | | PgUp | PgDN | |Enter | + * `-----------------------------------------------------------------------------------' + */ +[_RAISE] = { + {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, + {KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL}, + {KC_CAPS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS}, + {_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_MPRV, KC_MPLY, KC_MNXT, _______, _______}, + {M(M_BL), _______, KC_HOME, KC_END, _______, KC_INS, KC_INS, _______, KC_PGUP, KC_PGDN, _______, _______} +}, + +/* Music (reserved for process_action_user) + * + */ +[_MUSIC] = { + {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX}, + {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX}, + {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX}, + {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX}, + {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, LOWER, XXXXXXX, XXXXXXX, RAISE, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX} +}, + +/* Adjust (Lower + Raise) + * ,-----------------------------------------------------------------------------------. + * | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | Reset| | | | | | | | | | Del | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | | | |Audoff|Aud on|AGnorm|AGswap|Qwerty|Colemk|Dvorak| | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | |Voice-|Voice+|Musoff|Mus on| | | | | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | | | + * `-----------------------------------------------------------------------------------' + */ +[_ADJUST] = { + {KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12}, + {_______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL}, + {_______, _______, _______, AUD_ON, AUD_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, _______, _______}, + {_______, VC_DE, VC_IN, MUS_ON, MUS_OFF, _______, _______, _______, _______, _______, _______, _______}, + {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} +} + + +}; + +const uint16_t PROGMEM fn_actions[] = { + +}; + +#ifdef AUDIO_ENABLE +float start_up[][2] = { + {440.0*pow(2.0,(14)/12.0), 20}, + {440.0*pow(2.0,(26)/12.0), 8}, + {440.0*pow(2.0,(18)/12.0), 20}, + {440.0*pow(2.0,(26)/12.0), 8} +}; + +float tone_qwerty[][2] = SONG(QWERTY_SOUND); +float tone_dvorak[][2] = SONG(DVORAK_SOUND); +float tone_colemak[][2] = SONG(COLEMAK_SOUND); + +float music_scale[][2] = SONG(MUSIC_SCALE_SOUND); +float goodbye[][2] = SONG(GOODBYE_SOUND); +#endif + +void persistant_default_layer_set(uint16_t default_layer) { + eeconfig_update_default_layer(default_layer); + default_layer_set(default_layer); +} + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + switch(id) { + case _QWERTY: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + PLAY_NOTE_ARRAY(tone_qwerty, false, 0); + #endif + persistant_default_layer_set(1UL<<_QWERTY); + } + break; + case _COLEMAK: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + PLAY_NOTE_ARRAY(tone_colemak, false, 0); + #endif + persistant_default_layer_set(1UL<<_COLEMAK); + } + break; + case _DVORAK: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + PLAY_NOTE_ARRAY(tone_dvorak, false, 0); + #endif + persistant_default_layer_set(1UL<<_DVORAK); + } + 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); + } + 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); + } + break; + case M_BL: + if (record->event.pressed) { + register_code(KC_RSFT); + #ifdef BACKLIGHT_ENABLE + backlight_step(); + #endif + } else { + unregister_code(KC_RSFT); + } + break; + case 6: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + audio_off(); + #endif + } + break; + case 7: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + audio_on(); + PLAY_NOTE_ARRAY(start_up, false, 0); + #endif + } + break; + case 8: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + layer_off(_MUSIC); + stop_all_notes(); + #endif + } + break; + case 9: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + PLAY_NOTE_ARRAY(music_scale, false, 0); + layer_on(_MUSIC); + #endif + } + break; + case 10: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + voice_iterate(); + PLAY_NOTE_ARRAY(music_scale, false, 0); + #endif + } + break; + case 11: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + voice_deiterate(); + PLAY_NOTE_ARRAY(music_scale, false, 0); + #endif + } + break; + } + return MACRO_NONE; +}; + + +void matrix_init_user(void) { + #ifdef AUDIO_ENABLE + _delay_ms(20); // gets rid of tick + PLAY_NOTE_ARRAY(start_up, false, 0); + #endif +} + +#ifdef AUDIO_ENABLE + +uint8_t starting_note = 0x0C; +int offset = 7; + +void process_action_user(keyrecord_t *record) { + + if (IS_LAYER_ON(_MUSIC)) { + if (record->event.pressed) { + play_note(((double)220.0)*pow(2.0, -4.0)*pow(2.0,(starting_note + SCALE[record->event.key.col + offset])/12.0+(MATRIX_ROWS - record->event.key.row)), 0xF); + } else { + stop_note(((double)220.0)*pow(2.0, -4.0)*pow(2.0,(starting_note + SCALE[record->event.key.col + offset])/12.0+(MATRIX_ROWS - record->event.key.row))); + } + } + +} + +void play_goodbye_tone() +{ + PLAY_NOTE_ARRAY(goodbye, false, 0); + _delay_ms(150); +} + +#endif \ No newline at end of file diff --git a/keyboards/preonic/keymaps/xyverz/makefile.mk b/keyboards/preonic/keymaps/xyverz/makefile.mk new file mode 100644 index 000000000..628167ff6 --- /dev/null +++ b/keyboards/preonic/keymaps/xyverz/makefile.mk @@ -0,0 +1 @@ +AUDIO_ENABLE = yes \ No newline at end of file From 2a160bbbe3ad496dd688f4399ab2b8d127c0b8a7 Mon Sep 17 00:00:00 2001 From: Callum Oakley Date: Tue, 9 Aug 2016 17:33:07 +0100 Subject: [PATCH 24/34] Update keymap. (#616) * changed order of bottom row of symbol layer to ease acess to brackets * updated readme.md to reflect keymap changes --- keyboards/planck/keymaps/callum/keymap.c | 4 ++-- keyboards/planck/keymaps/callum/readme.md | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/keyboards/planck/keymaps/callum/keymap.c b/keyboards/planck/keymaps/callum/keymap.c index a747dcb15..ed187df1d 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, _______}, {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} }, diff --git a/keyboards/planck/keymaps/callum/readme.md b/keyboards/planck/keymaps/callum/readme.md index d4f3449f1..030def7f7 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 6975135f545d08955ed26ef046a0333e291af716 Mon Sep 17 00:00:00 2001 From: Felix Uhl Date: Wed, 10 Aug 2016 11:40:51 +0200 Subject: [PATCH 25/34] updated reference Build setup links to main readme now. --- doc/TMK_README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/TMK_README.md b/doc/TMK_README.md index 0c75a0e27..e3438eda2 100644 --- a/doc/TMK_README.md +++ b/doc/TMK_README.md @@ -113,7 +113,7 @@ Third party libraries like LUFA, PJRC and V-USB have their own license respectiv Build Firmware and Program Controller ------------------------------------- -See [doc/BUILD_GUIDE.md](tmk_core/doc/BUILD_GUIDE.md), or the readme in the particular keyboards/* folder. +See [build environment setup](/readme.md#build-environment-setup), or the readme in the particular keyboards/* folder. From a41a53baadf14b50d63fc9424aca67e7bde193f3 Mon Sep 17 00:00:00 2001 From: Felix Uhl Date: Thu, 11 Aug 2016 09:13:38 +0200 Subject: [PATCH 26/34] Fix dead link in keycode.txt The link to the HID Usage tables was outdated and dead, so I replaced it. --- doc/keycode.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/keycode.txt b/doc/keycode.txt index c1134f9bf..5a42c50bf 100644 --- a/doc/keycode.txt +++ b/doc/keycode.txt @@ -2,7 +2,7 @@ Keycode Symbol Table ==================== Keycodes are defined in `common/keycode.h`. Range of 00-A4 and E0-E7 are identical with HID Usage: - + Virtual keycodes are defined out of above range to support special actions. From 56f86413e0d7606030cad68257a5d6287c9fd35f Mon Sep 17 00:00:00 2001 From: Elliot DeNolf Date: Thu, 11 Aug 2016 09:54:02 -0600 Subject: [PATCH 27/34] Add denolfe satan keymap --- keyboards/satan/keymaps/denolfe/Makefile | 20 ++ keyboards/satan/keymaps/denolfe/README.md | 12 ++ .../satan/keymaps/denolfe/keyboard-layout.png | Bin 0 -> 31762 bytes keyboards/satan/keymaps/denolfe/keymap.c | 171 ++++++++++++++++++ 4 files changed, 203 insertions(+) create mode 100644 keyboards/satan/keymaps/denolfe/Makefile create mode 100644 keyboards/satan/keymaps/denolfe/README.md create mode 100644 keyboards/satan/keymaps/denolfe/keyboard-layout.png create mode 100644 keyboards/satan/keymaps/denolfe/keymap.c diff --git a/keyboards/satan/keymaps/denolfe/Makefile b/keyboards/satan/keymaps/denolfe/Makefile new file mode 100644 index 000000000..c4adab737 --- /dev/null +++ b/keyboards/satan/keymaps/denolfe/Makefile @@ -0,0 +1,20 @@ + +# Build Options +# comment out to disable the options. +# +BOOTMAGIC_ENABLE ?= yes # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE ?= no # 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 +NKRO_ENABLE ?= yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +RGBLIGHT_ENABLE ?= no # Enable keyboard underlight functionality (+4870) +BACKLIGHT_ENABLE ?= yes # Enable keyboard backlight functionality (+1150) +MIDI_ENABLE ?= no # MIDI controls +AUDIO_ENABLE ?= no +UNICODE_ENABLE ?= no # Unicode +BLUETOOTH_ENABLE ?= no # Enable Bluetooth with the Adafruit EZ-Key HID + +ifndef QUANTUM_DIR + include ../../../../Makefile +endif diff --git a/keyboards/satan/keymaps/denolfe/README.md b/keyboards/satan/keymaps/denolfe/README.md new file mode 100644 index 000000000..30b94fcdd --- /dev/null +++ b/keyboards/satan/keymaps/denolfe/README.md @@ -0,0 +1,12 @@ +# denolfe's Layout +Customized Satan keymap + +![Layout](keyboard-layout.png "Practical Keymap") + +## Programming Instructions: +`cd` into keymap directory, `make dfu` + +## Features +- Movement keys with CapsLock + h, j, k, l +- Media Keys +- Backlight control diff --git a/keyboards/satan/keymaps/denolfe/keyboard-layout.png b/keyboards/satan/keymaps/denolfe/keyboard-layout.png new file mode 100644 index 0000000000000000000000000000000000000000..d6d6ad57fb5b180334aefc429430fa867258cd6a GIT binary patch literal 31762 zcmeFZWmr_*|2IlV2@KsscZW&}NF&lM-I4+$AUGo_-JOEcp+g8tNcW&fmy`o2ARr(h z?OAjGfB$^0=Q`)SIOo-K-7mb|?%8{Su68pdY!BG;1?vEcy zVwPJlt1A1VlbP+cs8u;3{%FwXEX?TdRKgtky3hT~2QvLt(M@nT_=ih6~ z>&xGI^DR$!gRMH;r>i?<`yM^onkb{$`lj;V&i?1O_n^124&Qlwm8`O8a<{Pw4i5fe zSf(Yf|K4+6dPtq&zdzeQf14`{TM53juI9c$j;neY&`s z@Qbx%#TyhwFE>WAlV65X$NVo1uEcg-&9)6@KVYZ+U+%`X%*b{S`{6l1^Z#;jF|-QF ze{K7}wMN7>l%mM0PQtnLe{?I%3b!!k%ctC18{-Sv z&J{9lqH?=wNRvjoUFQh=7!{^Bs~x0`*>LOmeI9UxW-iK4T1e~GL#iUVy=Ikiy&@5* zMV|=cS{rMK?B**?x9hLoota-0|5~v;+hlJ!S@0;c{P4K?Dq}?V)`ZQDtt4BzG#4bc zclCDHb^kRDv~@8XY6fkcz1O&`{is&k&`AwJPO&vxTcn+L`#vgDFuTgLCM5Ym!oqtm zLC1lFRGoZD1Cg4y+{*BWk6)F3AGc}DCS_!Uc-4hpNRHX;`8)UKgCnMPOq9Mk1;d$I zat|qrh($l@i?kmZx-B;QhBaKD{b2QHAF~a);y(SLqgU_H@02WmlG5NjLhC+LAoFDX z>_?HAVue+JdE$w~-v;d1K6YPCD1HU@iRek~>exoddNX>g9l!XvoC*FpN1U@nAKc<5 zjld9SxHaFxJ8+%(j^}L)w~Rgp9wcN&o%MiGJY`c#$*o1rp-7l+?KiGgEt4UrT~k^c z|9^W2uf=9@a0jZQvIp6;0@O5j+^2?QC)RFLqw?gQB14Zs)?!=#M!}6o=mTO;4Wz>J^CA9<0te+68UE*)g7stI35Pk8?{d_(pXAA& zLEgJBwKg?+%!+Wkkr)!muJ@q2VkkIE-6qQg7NR4B@JZ+FzU)7ZFL+0;oTT%q%o*lXRFK`Sb+q6Hcnwnw_xiq+X^YquUVF%(Y zVR!5*+_q(m<;67oWQSk=*-;9W-d%&IRPvb>Dk5_`vAl&T-4O&MGCvAR&KIx=psQ8# ztqK$DbOYyuEO70YRu<*j4AwfoO_CrjVgYt~Kf?%E_(&OV?@zN>vtDHWy!h3b{irZV z{pDDmJ8La6z{N7jwx!{%=$k+MX70s#s9(o&QoRIB3W(;#kiS>_?=pKDS`v@VA0W`` zo1!oj>&}taLdSyw{&9`Km^me`$teV&bF4`$< ze$AcyqN1X=Wzqx>1?lj6l_Kzm6Q!2<1kI2cy=013E?)|TKP(00%l7q7m8ghF=U-j? z$tGY$=%-FUJKi2P(vvSEB)j%T9|+PdB&ZnMgk1S=_yqh~UW&`GV}=Rac326!d=m)$ zd;O>L@b?$R5gn-|rylLL?IS_DnC>_lL8qTHZw;%B`Q4_gGojCq#?_sbH-a~m8EVXG zO#^!7>|t*-jmse|HqW-WyUQOLIjRcyY^IDzZyMeXh0*9Bpq+Hlh;HvZ#gGn*(j#Tm zeZ<6{&>;%ef@^#N_~q$=VXL3p1|eH^|=Rwq-V~@^X(dU@`zj60`i|nLRUZZ z4&d6=R3RAy7%W!Ye?Jws{iYHoh{;HgzZCS#WE=%Agou(3d znSTtdXVh0(UDdXIemvcp_q_(n3=3nkL+8l)SGyAvO8d-z@V4a~XJLl?c<=Rfy%4^a z8ZX*mzWS;=6=~5_Eo%Mqbgs62EQVG$ix<_-D=2WUvTZ&$Dg*ou46FVT$L*C4d;mKLw|>m=-N2Cvs{a#2)JA zOX`HN4B9##w?6qX3Y)W!9{wz~BJ`sWj^6y-Iao%C_d&ILQQWz%+4mk5u{y zBpg`tZjHU*P>s{NL`7aHXwLQ$#YyW>@UuwX4c_SCN~J&Ormu6K7LZv_QCWZUZd8J& z*tTT`X^2Jj%}l`Vf{9j^ zklTV)2d6^JK=-h!Y7^L~2R3{eU*Sf_@_)Aftd~n&se;t@&pB-uX+i5E3S!7&aL=K- zal~3&N`YM@H#s$_S#J1wiPaRIE5`5Q~s=kD3*~W65iP> zzoDdb&;I;qtBpe!)59xOM!d&5;8krT+#1z)x*2fmr8Ul?2{uw^cEzhmX|4ce=P5!L*qsVy@RA)&7Mp6y*Q4YtZr`pXA`*^`I;&FE1}M zIz-QfE@?jn0VLLTn48KFNxf#QaC>=><5&BiWkIlu>Hj9}P-+c9FF*TmT*C5caHth) zt4Eq_B0{rytDnjvR%*atxy!n&E(a3D9j90(0p>l~t}=j&Kr!Xl?#q>jOi7R;q*UDd3$ z?X*etCO1~yKDbrtloNP~axVV-7_&Zd{FzI}8|=@*Wn%ka+X7vZ*{bJKcs#a##cX{N z2k#?zLeFuFO(7>=oW+5HBtA3b`mDl2HL565oEm-;3_&&t=}m&vBGHah<sX~G#Mu|A2>9IyXftFTyMwsAg=h@552Jbqrb>qwOJbOdUF8l2Bo!QEE z!kkTerk!JPe}`g73uT1^uRIBb#wx`(I5{ho%(r0Q&82?AlLwu!Fh5QjinY5uL8YR- zHs-#4--C?k9$sV$n!kmMF4bE3CZDo7)Xmz!#nEfb4#A!4)K z#{&}=b-nvxr2)zM)iA|BOmcymdvx8~{63;i;+@N9#yc_`E6jFX;R?(@tM zH5zpru>F3w5Rz~>p7qPqD#p1&MK&}K^4`_lt}_dK>u;NG+maSbMjNqeX|E{qT}-Ht z1J7%HDAnD7P;oF^;=9+5zuv}$gD77|KbrMYB;kX3Oq6W_Dq6k8oJ*Aro49ztX$AgE zUd?JO%k$?T2QBUUlxIou{pO23CX91G9Vce%@=mcdhslCX+XB2YrD71lFLtr83JkG( zc?#LWj-;gD&h@@p8z=Q-_L?w=vTdo`BITkUy?v;O9dI`WD-2Pr(hI3G$f;mD%k=ox z6WQQ8&cRKFPbcjp>4`W7sKl7Wh5kl8EAdmj&^iv`PwQ)DA{D!APr8^V%Ij9c{zhat zeqk6$1XM`DSloY@#=XSa_`8|NDrPhr%WMu^4Fo0*Gr4`zT9XORCyqT1x zk@xIy%Pr|wyf>xMtk^P#;f*5vs?}kI#&k%uLefgn)8!!ddR&FukmBL@!HDR3=4(9U zov>PL#e+G=<)i8VOWUaF^*GOw)=pLtf_-bnDQ%sHWhdLhzlCy@ zo};x$M6*@h!>wOCTn^z8&{ANR@^UMVZZ(%fD)%|f^jl{P9z)kT4k$7?zQpJ$C&%E{ zMfgek?%h4HUtMP{)qhRJ-V^crYn$Izagq~>M+n(^Y5S(;&z!N#EF~yqbg+2o8XTP> zJr%~;=}aCy-t*cP{`Fj*Q$a+y7sB)w@&G<=BhnV|suqwD`&U>`9!diy)%rpUb6~v3 z{*|4WxpZvugN=8+>NUL+fXa;^nKwNE-=gR1vZB=mcMy3^2@cpd`q1;ylhEp-*9^~g z>c+SKX?KGM!8s#_n%xx3j>IsQ2bDL#0eWF@1V17&{j}LwLC&*LR%llZ-m4u7`5U;yCZz!8fI4w>Sa`SHH!cN{%rF1vk^g__<=UFwJwWWrb@F*UX5OS)dbdwI z?{>F;H$(1z{V>uOOXd72N4&wl7r*85aAf2C*T?CAec;c6CG;YbIN;gYMz-_j*y}^E zF`!7L7TK2Co@Prpqnaz_o6Rm!nR60D{$OhxdZiSxo?)a*gd7*qnqi+^A5Jd=*tgA{ zNz5+vXlrs%4cxL=1&N`-d(CT*vtJ>91rwR1vO1n$py~%%n5;^yGj`07RYnzBgGtQ9 zQ^pm#%y+VkYfL|@5r+r$1B5ya9;-Cu@AcvJ#jgh#IBeS)jNzSjj5`g+fKfecP#tap zPXazOzV$LhPm3ePBgjw~SwYqCW1w&L!t~!f zur{?sd?JNP>z^z>(c}ICcr7QLwO{J>fQtbD*#*_1{Q&3c0S;X(M(&TsEtYlYBdjtg ziLwfqcYf%4d(P}?;b(2;qej|;G^ax)CR4#Et1~LZwR}~vTX$Zo_z_S<{`Vge-DUl@#49D3BLhzOlOgQ zrdey#K4mWMKE>BWNbL`Q9b#|rEypn_6+paU6*BqK^JxHA=-i-;c$T48@v!;oFxRH| zzQMBgOWl}C{D^JvY}GtHw!vrIw0*n}pU2aQW)ZLi-eU<`rzoi@klo4T`&xQG-FSWQ z_QPpzx}Bp>x4sNLDtcZH{aHy>^w#o&z*j5(X%oX*8~N;Z+0)s}1wlncTbAHcdm1%i zGo;l%X~4q>+ZM{2hb^!&3nzL&+{eXL2$W7Qe}CEdp6{In-)qsRHmgO_wk`+#U{*8M zQI7{b_V&Ya8oyEb(AA%nTAvu-wY|1qS@2)&vz4C#0}_f{ZikP6p^DsTLY%?w=s9A0 z7d=1moo71g1RLL#@PrY^#==_-)x-STZp9k)LfnF+DPY;kPJ&$gC<;Nbz<1cc$p0zO z^1rpK`ZH%UeLC8hM)kp}cD8^Csx08Rv%J?vx2EIoH9Qj;Zn6mG)V8-LE%$Z`aVZl& zLbJEqo!5sRylVpdEvZdgfV>L}Kq~}#1<#>ax^C-W1pRie$wSyf3>k^*O~pYm&vR7wAwtxdkvlH++cM`*yBGU>ZE zFs#A)ytK|077~fPZVK47;3lTk(*6}OKHjO1KhRw$4@ZUL5l|m2UsX{^soF!qFMfR5|Bbf@Q5^GSD3$XmMNwajweg0;^q%(dd6QZBq0W^85|%sh zXzVx*G^bA2ZZP%K4yU^`W>X1JK5O?o&9iYzk|G$t#%-)E{Wv5+diU9zWBIj9~4&@;Kg}b|>jWlbz(V zw|08YOQ`J>7i?z*&Jh<^OXuLg<;FYf_?)&6JZhWO5#(xW#;nPt(H}RrZOeVKs%$!? zKN%~8)SBUf-R`)GYR;EaK~uO#OV03yk3>3YvMyYyu(>p#R90u?A%$e_UinuWHU)FH z!Qgj%axO7W_IDVoq+%HFiIncM-x+i|GKg*mib?s2>1r2w`rHF(?Ir3M42zo+Jq7ae zz6?@ngMQ?PL{vO{Xh+zuTw6H18Z8A2xrtDUPqJR!yAQT-@o8c6i*>Cn@HE1^A9{IA zsd&*5lffwtF9^f8jwD|~NRo>C3vcdJ%spLsKCOhs7U+9lJRB+cc#%FohHU5fXi`rQ znk8awp`OelEWMA#^;$KSQUu;|J$sqNG+IbeKptg;=SzsSgKrp}`P3*Gh=GrH?({Cp zB(U<_FBtX3y|HhDKv+D^_Z1rA8b(of9L_p5g*aitJNstlI+0*($e><5dc` zX_04O$yl6etrbSXS}=Mw*MYB_=*zAossklPNRqb>qV9~mCTvc~9rV9wX;}My53zgM zRZVS&;U6k?=heU0zy4~+mO2;fc>+;FueiP7BG%^;x%Heg*q0Fg{OWiX^$l@6Z8nXK z<=f4!`$k0;LQAEcL?atZX4vDiF1-`kZcb0EWLOeRujWt<#OAAVq~pE3H^WEr%zXsT zb_k6kW!WbMd)5-N24z)NgMpeYo>TW47gW(}KzOffqoIj(q<0ft7;&D39Nht^jfC1x zgqRl+tCFox1P+K)%49PHrZi-jnee_31$={=Ia}M3P7L@EcTVk}+CPAH25umY;Sa zaF?AD07;R5lfHY>ieMP&n=IJxITMh+Cz8E3n(NIf`*=0+zQJ@B-}>w}%~lU3j`C6+ z_-@0Jo)5G`MkmW2(6xNe^Oy>mee;m>)}zr3pp!Akm(RH6+qPJIcr4sJe=+~4C=(YV zeedOERGaMK;h|r(;?IUl6xg23h5=N`^yDoJEVcqFqbaoir?hp!UD@Zj7mreQp(&RooY(+lj0vudpk&T?$-Ftf!Yk zE3oi<88H_R28N0A&RqTWIlfhzRhbseOMSrxp-yQb)QZ?v#0_q`@3+!}W6WBB$;J&J zTs9Ca%Z_tR-PTrJ*p^Mq$joT)ZsY;^Q`heM5mfjR%S|3;YlBum5?T64BIn?E`+LLj z&)JbT58oMg5_^n7ltt{u8p$YMSk=Y4DfZP^Nz2fgg|D9DED~gG533^T<_g_~Pyq=; zWq%yi5aG8A%%u!XQpjmYz|C=GzJCR?y z*?Zb@rc%=)Hm%y99dl?P48M^Zq{=+`UTLz4F_kcAJGmf4NP z$<{#|nKz>~)78$sbGB@&GB(YSe!pQ7<8TZB0|O7Dv;1m39HMj1ri8+q*FIyPAIkhl zzOL#Cky$5ia*f`}Eeg4Q=Y10UrPDQzi;sM2(>KS@DZhN|B1ekWpKQ*?TP6W*yTFhVf z(}&TxS)L>W_OqYF+kLT`t~QxQJ(+`;rvM12ps5UW^Tdh)S=f2MJq$$}BRH|_$zE;a zOK52?j(uT+k?%6yi7GyQ=C8FGkomB3+LUdiclgosLEm6a`^2y_@d1&t2v}%Xp&Z2# zS6eZ`iibm-ZLfaq!22AyW4=hOAkq*23~|6>zBK!;8Fn~6WAXc1)cZ`7937FuTmX5o zgx{qdXXAr;}Zusxq3s&b~VN`sL=6pDDx;k`v>uu^P|$EC+ecHpj)J&>*t{-wp{%!D5^#)pT8fnse#4P8mOF2K z3fHGPuz=B?+PbcFm%AJU9t6Bl>uwgU>kWygn`wgMHj)M9We<>GF&%y&+RjDAtDAvK zc2~?)8u4f8>GZJdmagEzVcuM0S%C#;+YU02A4;tO{`Vt-ECMM=3ZifQ1_W=Fe_7 zEp6Xv(y7k+-^T$Azlo)rHt;C$k*Bh*3vv7viz73A?;~q0ajVoSz#{#mVNztvLJjCu zlCGiBjoml*zTShk%x02$PuNJBhk0p6_ZHt?%RRNbwFihoZ1Xhdv*Smc3wJACxL##kJ$yllYO4DyF^|v~}4CheF*PVG{+vk(N zgN1d5zh+Bu=JI{;Bzx*_>{d8HR>F?rJJJuJ8^7obyOlUWNW`>7_r&Cum=RM$+-cvI zPlR^d_}PW06l&{@+)x9bS<1q+t>kW*ZG}>nCLFKI`pS9I=G>prDYo%H|H+qMe5{vr zg85P6?*U&~lBA2i&L_v+q^M>u>FLx)X?L<{<<a|+ux zXElM2)@Sd-X!keH^zTgw(el7D!z~vlPeW4**2UX}+u;IMV~x)*0-BP!vy*3g4RYuH z7#FL?Dz6i;x5SIIYBF%SW3DQ?+r;o2bX%tHI@vco3?RjJVW?pP4NhPq`WD%Y7P~RM zTiufg@y%2&=k-9p^V^zGb}lXki~h##E#C~B-qk?)l)m-B7Ch-Va6!DcZgSrNz!jWa zWgYkhu&NkIfpc{PfSI@Kxe`_eX`<~nN8cthGahuSJFc^*iE57!_lq^@!6ok%a(1-IxW zoMNWlJT$U+?^(5dyxpP8;wa8JeL5cb>kOeS8mB11$ z*@+EW-8Z2VAOljB1Z97)#!hwuf0MJK0ER*yR_MMI0Gb@d}9tZ{r7O*jBpFL|dq)x98ksrBhE5g-|To&M1?Pz-@@{PiQ zGCKAADhm3}z##6R>M8;72-6$**1An6*f-V(dV(un1}uo+{A_w|)A?I4J6jy(VfpTC zwAKoMs`jIuc_U=oo@{s7<3LR0q{&AjaDR2|JpD02R39%B^;yWQC}bQ*x&V-Qqh`5- zKB^616Pv{c=KK%~$u+-yAZR84E&gJEx6hv@WwH>Verv5ON@C)D-(*jLY*oO-wg{O0RCo^vfpBRs`x{GIEB|Z@-c>`FOhXxne|v~RFJZqwON}^ZTk|}6 z=|6)!Uo~Ho_$7#JR%VoXTu{&4YP&CJCJW_g2o3r)>@>Etr@e8OIl``R`Za?@iTp(~ zN)1iLj*e*LA&CMA)o@E!@9x111VE+&Wkj7GU*EsA3O?Hq@Jtwy2b-NJ*mjCiGhb`t z>XffsFvpl8t*T(?kt`d^{v3*Y$Zt)As?u>39xK4&!~bR#iUD!B@{Rt79Tjd>V)p>jvO{GB8a> za4FCe^jc|tp0e~`O{scJ5qruNjxBhu3CC#(<4o=@0pTP8)@HDRVHED;5RyX44TVQI zjlbcYT{a-9GV!2V-hk)#!W9bd$__0DfMXemJj7i(;Q5Rfs|obKHLB2!BXrd33BK6< zVY<|@0$wEW$>}}qHK^QTWuZC7Fm{3Hexe<>xN0lVwiGXnVC0L}mrwL(fR=3xaVBR}o7C)aD8xoHb=65eKKC0pYkHH@ ze+P}b5jw@bK~dxAF^e=26puN@ro)6R%xr?xQeT7UMvKXZUwO0=ND-&gcUgg6N!JAir4uRkjcsfKZL&S`!mXjy?(AH8JiZNR0#_ zeLMyzt~7(bEb(J=8VN#BA(wB5`j#x6C*ja$S19pNjp>gf#k)^L#9HjZJ7Yp8vM_1Xdr5UE;v<`ek6CDyT&VWH)KyDxH z)Uv9t2ckG?9y;ojpe>+rhq=p7Up*-vJjDtR&5-{wh9A8MAp5B1f@rK>_dM5uPodS< zwY8@<#~1A@2V-FLwuRjyxbR9(`UQ+*$&Y|vZP#%b5x9$?OK^!INBC|snKC~PHRdU8 zNQBB5zTAv7!H2dy1LJyR);8qr$*JAS%>tVjy%>+U#7#N)Q&|Zxez&8h>OdgGd^a+z z@E)RI&HbwJ)>m);p-9r%E^I<_SjkJM&l?om2E_&3hr}-j$Y`+0(=ML5R|%gFK>)6N zyN2f^>9mP1RxhW0K@q9 zwrL;hX<6q(;J(Rvfmuf$qUs0^>VxiToV~5?8&Oo&t6hKpbpFk3+iQLBR>)D2Y{G4o zy2y8cK|qLMMqZ?q{TJPwYx0w1ve8!>=X8EiP^(KO-VL_MGN<9R)_fbMAlY?gJT`yn zc`^cKX?`#8J{W0=m81`ZKLG-}b#f|Q)5D{?I@!dLcoepNp9T0an5T+Ue9mRhy}>9yC% zX|-Rv9BviXy%Ua`c$wtOnFLEcHP=RHli~CHoE^8HY+}7ZIZjCh7Yff1M4l8|o!_|! z-J5Z1z%8-;di|iZ-Bt82-=QszZw^cJ$H76xj>W81x@ay1kR_?7-G&E;F}pjyt4x56 zhYjP1gtcp7%*-&s_;3u+A#T2LQVoHA|M6o4m}0Mx8DjqCnhoK=f_R>!*`hj=pabu} z0*kH+nrhAtU18VRbz<~1WyMfL_ecpn;x&&kL}>+;IyAsV|H}d2pjy69O!A9tA~#Ps z2naYJsy03)7fcwTEsk0w~Gf5%nMlD0y_&fmcz0vVF(76hU^CTNOy- z>_{Txd4S9~Ye%%NhJktHHvfJgb~v6(ftE21mx6$U$?pDt;7SJoE3Nk)V1D(-HFhu` zoV1Yoe@^=Uz6(y`d;8<*9;EZ=Ocep`UNiD0&7v90YJTuWE7&tJ&Z|W5WuO~ar9*{3 zBV83?S3p{k@SGEK1DiGofy=kWIUY&ICPxk&;d&DH&rfrq`eT>z5dcsF@=$<3*9of$ z2|Lx!l~B7!jmqGsg4Q(%JtTkt=vnQaNPG|`#0CSd-YZNn@uB-|h1&E}bJqvV%rnaM zFJK!pFI+kC$9cdQYQ)aRT#x{ocKX6Yt#fVQaARZx2y_?&R}0h@^m={dZUWQKA*Rpe z6z_c`M-`6&80?aE|Cv6|w7iP%<8AK9sCMeS`U&hd)2+vt&@7MxL>C7v4Vhw-xue() zC?0~z&F*mt+y;TCbKeJl-E*q(%nNT4ldDJq?1q}Tw z&uj>q<-_EC--}Bji$1(Bx^GaD@0{7rD}B(7Y@@i>4ObE~c_GqV2Sl@RvIB{^w;rK@ z*TD-eLGs}sYf2sM7|X7S&_sAf6enTNNal{Qpwyx#@vSiY3+khZrb5#AColm$s09<3 zFKe6kV^cHF1DAU+`EaTPckZDv-9k-9Jk@hoJHcWO&~IFjh)Jvqv&YAxltruOhSh2Q zN41zb2IlFdcKFjOs}@)@j=4T)I-a`b<8X+bB_FNX0#!m!`-AV~sOwD2q+FR&8tYp? zTVDv(>HN0`2P$D>01%>KpTq};avv2kAhBpMj~+&$iP#pP+4sS1>#Fn!ZF(S3-paiY zabpoGJKw2^`1IQQ>E~eIe;NVy`o)=rhv2@E0kML0{B*p}m|B^@T_~fw-9oPfKb+IW zkm=g=|NEE>$2FtnzUXHcaZ;0|7r9KB#4CSTDfYhBLJ0xvAwG z3xV0Jc6j*v_tPve@m2dygGTwxm`(0&r`caua~>dIHvyu~-Op(Q1x%{B%xs@G zSs@Pk-QGdcI;%`-vKqZtY#8sja{;=tkm0C|j3lPh0+=aacpoKLTN#20OqmXqy`{jW zULUj>{(OIcJ{ZVN&zokQ0Mi(rI|rO{xY2ELy}AaOCVw)=xptw}{>n(imUR45d}HFx z7(ESvXUeI$i++Il2ua#&nSbdey*;L(5xJW?-b<|}!0r~uL}1r}DWT)`e%;%LgGKU* zl-GiBlES&GSNVyfC^JlnoRam=_anzz<38Tp7p>m0n#TV~e*bX5K3U-DFF*fd-ExQ$ z+yEVF98F{eBFq42W_qeVy+Z23xy@vK(W+I}ZSM~dv!nVq?tJ|}|^v(b^4M?nq z%2fcl)}I@dsFPygr!zq7;fb~K@RN*pqp~CE2bXg-eCYH)WcGy z;$LhpPvQiT`fGz=^0D4m{!u2!j>bj51EEI$sUR>SHkxK_Mn1=U0sK!G#5jK!4;K6# zV2DANtDtCvT_^vkJlc=wEjFFu)hiUjh@cQHhi(1p7&7PwJ%uyXvQ~_#3j>tkR98xZ zefDF}?@};J+D-(*PVLHQFSK6OVAQbOy9QG84qeGs^D{KxFJw1R)Ccz?#orXq)|ly) zLGV(yXx6}BMc zQ0=@vuR(q81W~Q&>W@^;r{Je1S|-4s!*hEw4>JF#a-`VGw6GZuI{l_&%qaq>2JRt@ z&|R?nOh4_@_+VAVp@7-%wK&_sj3@<~Gi-q2QDvi)YH)bm=?iwS>~lN@%1s`JECJLf zRLd7viPSw=ZwwZ+Wdu3sw&5+ke*X9Bk7-4#j4a}OtKwE%K9IsOt}BR64}&}q{qb<+ z!jh=nVRx4ppsRPP2Gl^yiOJ3P1$LdoC>mUGb~9}rs>$Sx<-Z#wSQCL>1H#RZPS0U^ z3gieu%21k+Qu;G)1rX9w6WPH#+bl_5{}#=f1tO;2Lnt^8tOf1#PK|uOTC5CrBRrI2Wtb$sc-o9;HBzyn_(=l2|NhA?#w4b zmD!>5VL7iLI-;lRvW|#MW>SMCsMPK^SJ4q;4yX>hdo-rv&apl7HvgG81PG+#%JLuz zIsYn5%qND3QE+^erHD-7^j>0TGb>l+plM4A>WB1K8z(Xq5m7*ENjDBFy6@ z51M~E1RFhuFWBsjySrgyhL{u~E$w|=Zt9|gNGXrBGA?apf0|kKIM=w~>Q`!BC?|C) zNAzbu%~Tbnq+c+Kzk(1p3Dm2;9b(B#JV{1T%lFzZFC{=>8n!Ecwmpc)$?rPXdKoq) zoD{cvj$!$_M$jyN2m_9QV24{azM=iB4)HqCN`U1RQpp_F(5dGO?@V zf>y=pG&c*b0rXj66}7Ya-eO_oZTU`M@<~H4U-A6mNF4!1?=0b7my$j%nD=uU{ zYKd`ZiZ_~!)y7rvxxkgP8p5Ylt$HLAI>>Zk;6u$;v~xSu$e_-fKwXDNQ4`*~@nm%O zODuPUQ%`8~U6O2%`IAtRPQWWLxk+VSfp0q@J4QX@)y>m+u-p$UyK2xpjn|cGx09IK zgu8v0Nd#h5lA>Kw1}!Gt*o=z$PKcm9SzE(-r$W}PjrzGvQjar$u$Fq{G!a12NpRL( zk6_ClCfm#H@_lofeu{M?=4iE8*s|#C_m2m_@HSQzJjj*w%Hx0!LZ6UqGz}^n78yt5O*z7vZ81T!tjO za{gK_-EM1KbQ>hLuC~TrM|8#NA$)3ny?nat=B$+^{Avu8#L6>@JG^KO^%zQFk1Q6p zN7ZP?pG(9kA>E!!)=$1(-d0)?JzO=`Sk+`0>7Mj9*Qn4;(_ zU{cn923bqf-(Ox3Q5mXF_onGZTUG5GgQCMqBSo->8@erj4BB+m(1%4jXZrzHbEJ`^ zYI_zGQWD%XsWvu%`+M#G@*Bz=jeZMYCWfcHbSc<713SeACM*doQ|hzA#GDwd{5L!b z!|ATZ8SV`)TVu#hMlpqx;kty;Z$LzJpl?E)Jgm#!Q1N2tU71=utyUH&VAB=bM=Mle z+)2MPaEqNTyG%meJ279pJ}jAb5s^OVVq3piv#T}@Dk3w;2pFHbealcQ{euny`*Nm= zJZybvEcp+3(pbGfLed_ap=K50^;?eXj$T(70VW&^1pMWkXZ|FrXJ=<|UD*FrM>VWYOzthU zJ(xvW<4OIA!n}tiEaHpTmmr>7b7f$!poF3+hbn0wNjJe(yTZ1o=%Lc+yQeZd!Kx1c zzNfCvQCf(nV7)4z@)9kTm3!h2Ze&#Ws>(L5hkH9qQ2dZy{bF+Z^#hTw1@_D^dkVs> zu9(wR1)4_&5|9(+8N*g-GGxQQX94;z{DOB3G?>de7!-p)N{_Rbw%Lz%ZGFVl8Cs0J zNRF1cm*kUrfl27n`WT%B^Z2`YETwWOU`>HYFE0jMW0JZrwOo3--;Gzw#*h(ysk86J z?DhiOI~YevP+a=q=e`oh&`8JF_$P{I>r|QQL5IVl~tJeK6YcBP@KZ5EX{`DGPl$a_bevP>W3P9HTOVZMO13ZFFmfO5QvQu zAgio2&!%XeqRz1Iu`gHJl&|UaG?^a0+?aRDwRfOI$Wp~dIK0+}C%p#J4n}UA@7JRi z>`a;a9)Z6~0Gct~LN0u7S(t-kPR;>6ey1z^Qpl=V|Jw!#XqjxmHD%&@ZF1IQS#Sko z$R=n?v=N4h*!Cl9b~Xf%^xd=q;-t(DP|O;&@ENpTq=GrzZu|utag=LZ(eBfI4A{*Z z+7?a3(Y)p#95XTD-)2AoJoiu%v;CPOIH_<9vM?3Lj`jOHBV*cc;(zbJC>8Ezn*xyX4o(gTz$E3B1 z9>!5v47wBT;Y!p;-v`6qGz)NIB%~tn^jkEi4g&oi77wPZ?YFL!^-C`yF=)V?eJT&w z*4P3ylzudaWjsh>v7^k6=gb_KDltMfCo+|L8XC9D?$DUEEUF?X>3FEF=2X!Uurxin z0K?T+az^p_k_*E5lBuUoC2t8o{>(mQ^QwFFr4R=ETCJC|{uzBtlAij4#G1TsK!Rb@ zVobcN1C*74#QH~^bjtw5e*1Pr!y8b0FG7D z#lmW=f-aeDmEDP)qJ$#Cjnk!zwokSyimHbe$6l-8U65$s1>y4HZwb{_JPR+YbeT_3 z#?i4Wpp&T}@fKZrTncm1mmoM@)xv%zOP2nSnP;c?oh~Ko%Z0{QLY;jC2IM=$zRES^ zKq2#T{|#gq;FJvr0I%D_OaSk}fk-{p~=YB)Z5zt|;S5|Fz(9X$v1{AD2 z?Y-T2m}+A!xW`IIyDT}ub80g-JEiY~tRYT)gN}o22M3kXmWsbs5Cv`Ulm~H1+06!! ziWl}&LK8iJC^A)_w&KtA!4WCjQRET@dIjXJ=y7&4n20!}B=i>Pg}rT7?B^uejW`d~ zP04bHB96U`o(MRi)&FO??jg}v7o`Qk?TS{f`3AM!bWEMW!WyB2I~rNmcfijFmm%l^ zt0{~7FUMF)Ze?a#e^e%dfbH6wqnZqFJ54aDqBRm!0%dMBm{qs&jo+}NxGbIU0|4{YD6#-j1P_=b&cWifT zyI;q1!^g2=lj+_*yd;e!i%oV5gker&jHoR7A8CSOGl^KeBTrMO`1?TP(^ko&a%kjH z1(;Vt-X*0nK*SEmMJPwb$!bvL31d^O3nlA?C%Q%r;|O$Mm3~`m)`e!o-%wKdvu}L^ zJmNWiY7|aPuj@Dch+#*g8?kzx+Gn+Fn6t~-KNE>tP;mgPo6B;G{s1%`pJad``u*l? zR6xqqJ?!IsayeHvKf^G$+c>iWhNffVNo|J|LL_&U1Z{UQw(`u1S6uTjRF|fS8pGhJ|sQ;4$>N zzG;NHh4%4^P3Q6FV02WH!+=>-Y#~*<8wpHJ_L<-WR7(1>&tjbt?twRMtllS2ZQyk{ zGEVr}ZFc1huwmW<=B}~erb7YEmIeKmK*;e>_rE$E5lzc3D(ZZPI6GvpMe4r}$DqkE zxZ>4O`faxfuC+gi*RG&O0W@Qe^PkQX*NjewRQ%`FQcnA5LC=70?$-I|rl5ju%V!}} z2_sYEMSBu}Hz9uSpMP2We|dpAS11S%o6LY9@$>Ve`hF|Q*|QN)A2UYI^4Knn!cQ^` z^o0g*;l~V`+1LnJ>R8YgS!*XdXy#JRp3=ta2Ow>-`M`ZDd`=gZ~7jN&A{Y@G9yzGqurF^7%CL4wS5vtdl88Kl_wg zHhuE;EV=wza<^S@_tL(09f(=1y-uW;nC78mHOeEav;pT9g}&NoHP?+9&m+eK-Ti++ z{?l+u5`s>UZY~J7Od+i;L9E9U zm!t{$$SacVe&U$DDAR^Ret-uU<1Vh4&J-uz`e%Ok4T4E?Fsy^dXjmAHunc@B#Sna& zgvm}5oo*M2DQq&dKw8NNdiJVQzs2^5AyaPom;OEO!g8n1aS)OVv;gBu{nz?L;7cr- zqc7!Z6l1>t;gS9C$3UK&ga*Il750dC7H;lzN)iU>DRv<<+13H_?1;#0QlPN;Edx zg)QF?fv*%`N{lkWr=1=NMT=5TVQG?S-UAz!GpKU%(?Q&OX4i#J%4q&BEkpZL*J#*V zCqpYtG~eYJA@uoz$A>+z(&|?L6X~YNBKS0oYW76~X2Bb4cV7GJ!m|^lh0tdh`T{=B zQN}@z(YiF1{!K{F$PhtCtc3X}{{f8RX+UPwz9fe{8;lz;USmsxzGzsaT>-Vpm<=AU zD#ih*`lpECW#FL&EvB0ES<@3}=g5ntu~@zTtFrG7$FlwZw`azUkiGXRvdV2_?@=@) zt0*J0VP)?bLXi^LGRw%mGmD5aAKb_&>PFl|eczX7e4fwu_xJLoF2drHM?pQzuZluKhKOfqhrw1gGl4w!I1q4R3-lOTRLv33e>^Gcqz( zd?ocKq@~r9y9`@ zw_%^J4>C$3qg42zqY6P7PieFNjwLxIN!Bgy2i75>Qd)Cq;;sob=*y5oHB_Ky(8r6b z!q7`SY>(-TxG&)svAyARBx-9P_LakhCfo?>OsujXWa$4U0WWZ$t9zAG*(VuXFv>C; zjL(}Hs#xWADJ`V#smL|G5Vg9shn?JZ4#sqIU2?uo8I#0(GSZwvIMH;Ztejz@ze#M) z`Hx$ZZijZzmFJHZRKZ>-HJrNsg!x=}?R35-1=J@!n5rE)=Y(R{8?uNiZ_ zrZJait)QuVJWZ#edWd9Cdv$1}`7q!Nz!q(L8+sE3h<% zg^^{EN_`Gp`lLBPOlDy)?ByqL6A1yTYmQ<#eZEcP(#x+>qF+Xe`Jq&`(AoMD5c+@` z6&}MV+~<&_Vp%i}rdulk3SsJ%pwKkxC}SSK29?$A}# zAo3yg|G{zdFVM6`c@MpGyL8oX`5=^9D*5xfM=m1cuBd?$21`ze0`cj)`jO+9OJVbg zlAaQlj_ObF3rBa6O1MBTRR}W9Ugf_IzL4S7abNuCF6I5LaKQ|RsLE}r2uZ8F=}-X` zyZ(aG-;QEYURQ_d@7*jVW2pM_JON^{nC<{SQWUceBt|l#L58F=9)%y@b0kj6++Mf7 zyZkgNAK;wTg`6bxo-S-h1QFvc2bgxeIw*x5FXZihY6S=#bpKW)W)cez!EKu5m8D=X z!TjEanO#`xgW;HX%06rZln_;2DRrDLT4+JvCohaoMQ9=Pa;OmeZ-?Nlt_2B-E_N$3 z*}zFv-->yW>P&wbKLt&GN5vyQMA^)g!p*VS;4!D6;QO7Ej?Eb&Q2L&lyfyiw_IhgU zK98{f!QKxp{gXc_6C1QfsJzx{2GLDyXBys42wq;R&B(d+wE5R4K{w4QT(4)Rag)bX zbay>U(uZ_%!pFhr`Nh95R;Ag1ycdMY;`zk_sb#+oeu}dr>_ZA8!;nC-L{GY5wMa(b zXHa9;=$T38fux09PK{&2mUPE0y0m%9CHUs*h??^0t0nv{*s!w-uFhH|mwv2{X01NZ z>wNH=>uCq9N$Y~q%l>P1O~b3USEhm!Y8xT8YsgEKO5qzoMj1#dLTV;RYMaH&69LE7 z|37ftGu8m)5(iiml9|u-8tuXWa=FiH7Yqdm@A8l?d~q-_8_DfW74C<5T4;QtL!BzE z-#u>F=GLTegYSRIxIODK{As=$<*?~uQXhE%OuLd;({(^z&qKqmfxC&`zVQUS*sJad zm}gEoAF=O45a#XR)9xuVhAHx@zj$I_q6Z>o8o((^x6ky_B`UoJW^yzHZb|!L$maL9 z?6!2x9i%X=q1bd&^fRPn3Vv?h71AD|0t0?e`R@9(A`N+=4 zTIV4R{S0uV!mCfX7l(U62z&UKH$dK^d{Pp(GFJ8M&<#I4=X0bI;sc7O;QNFKV3e@Y z{Atek@!9sUtC(mMRi~XQh|nG#@8P$P8&TEVr)TbpNX@YJ((7wBQ|~W6Qvt8jk`beL z;h205@+#y#-}~@}>ZRoBm1JtOEm}@xioN1Z+oZ*0-ZQu6PUs#pPcOHqfF*k=hbJo| zqp;*51ek%pOdI6ej4#iNX?^?_8Y9aEPNiPbF4g=HhxJP>0f;I@bY#~c%K9mLr&dH- zsk6o_$6ki^bej4t4u?~}0(*F)>fgJ{yjZSgIq0+f%2;P!E`YA@W!E8duqU=_-vq;9 zaSYAv-?KX_;8-P0-V4!d0SeO#*kOIJ^D|NM;f9DUS~0>6M>A)UmpXt>8U50&)+YQl z5?b8^)Ly|9LtvXK?V;tGrM=@mQG5M?eyo=7tn@kiaU8QP1nQswF_f{&c#sa&I0@K7*aO$lc z)4mW2Xli9 zfev4R_B!FSY`Vyk#CB4jR(0Q_PQwy7o6AEyhV=L#2((-ESIm}f-LLi&{(7#aUPDh9 z*ZxN?uw%b|^d0KLavil|WyCXu_}Oj%E?cq!(jFM+DImEf4# zJ%m9%wd16fmSNaVzbAx~Awy9jg4BhxT|qhU&dja2Z3RD-QFJ=Yj* zoZzyRXEeS|K6A4&<2~ylr!e zceeQ)7@PShb(I<+mSVK{#&a%C;<697@?Q}?%cMsY%cWqSd%rot*bN%=d}gK&YhNiU z>c+1Tr1z1atOQ=gDWdb%twGIOYm=XPLd2C9^jUBh5I>wqrpE|aovK~~Sa<{V1q^kT zN%QQX8O7GHl}KJtCu)##>dde1H_l{p4*NRP}LNp!|%HJPYW zZZalGHDqf^X!6db*|n1lIF0P!ZP(c#-=xoxfNakC4BGJ&k3GkmXu8i%5}9qD+N(vB z9Xav7oQj5tj&?ZOmrX$B@~gND^wrtFp{jcyG4cuu%}mx4XLB0AYPAk$QkIvDUBsrI zF5-Dh*G4}u8 zC!IF&_;3Y@)yj+y7r*{c$FS@C?7FT#oI>Z#e9-s3^16kQB||O(_gEFpG<+i0sk0v? zBtJU4&dR{ODYIb^;5z>4*{Ktu8}#aGu~gZtiqhvPF|mckl$zb)neIu5v+&vW1+^Ca zbg>93L!i)Ty2MVIUqj)*#T`geNd3?c(0R}#U=?rhJp|vJCPT0fzoN6EI%;UNh>@Ga zF_>}6#((W(ooT3wKosY#^Nukl8+<}LcoKz@<>f2JUl>@@jIJnFoRQi~Z=aL8A$UnI zz{8Km^1<<0er{H}Vb)3$BJnB;D?eWJ*v*jT&|F%%rbg`E{H{QSfuuK4LdJ%i~OZ1Uhj9@Y^$D>EDKeZW^uqR&CT%}rH%#^VU zP0^dVCF3}WRz+ZOMUjDG{}|uSkCiAse>>G6^7F|Y3k&>I_wU5A=LwEw+#1#sKBjjU z%sLL_Jxd&J%CMX9-DBG3=1CaD#P~KYga!=sru85>(!rMwFRLG2>zI7Hb6pRV*uEpEaNa;nr_eFcPwp-})1{!tAe9oY>$P;IMwA1=dVm)Q z(7L@Rn0#UZAfR$xmc!K){Jx8a^6=+ilkRxXOa9A7_Gbp~c`q~AN%Nvl1KI;nrtBTL zK-N!`DPBVWC}9BtuB zOT^wG^jxb>>>6eaklymhwZwEp;q!JmGpmb-Qe%lo$aeLGlBU<`_>Xs-X+;|@ z%f^_vPtIg)A!sCmBs&;y4Lw{2#LVE#tDV2FWE6FD8QhQ0MR}7(7{Q|wG?Zn0Yz-Zf zQQX=Au5CP?tSTH6p^vOx0N<>*VEybhay7QOg<=r|v@>ZN+D8F!d?PZg5POKxq^9hq z+=MpbE$!Bs|Aa#ivX`Ho972RtE62l9QkJ!}vC8ga?^(R6Xavv=&b~$`5ct?R^!}1P zR+-maih*P>M`IpQ5*MM2AIE_cQbjzRdv6$UH|ZaX+ueugs=u1Gu;!m&v%O<@3W{BZ z)rn&wZ|47MC z8V&>gUugJ;h)(dK^r`Gj@q@#n5rK&wPvmX#U-nvYW$cfwfFa9sIW;eNIAk;(hchLy zcBSPFg~k>iMPpY2BGZJDG9O7vE;bjOHysho@Khfo5SLTKIz$}H8>c`XoWT$@~%V)pp~3`F7qK%W4Yu0C$B&M)?2Z8JA|i| zpVpf$3YfuUBOp?EQUA|@QxqOi@z^oK{sJ2A*6&3&CNZ^syitlh3e+U#k zcYv{5pYs6qIFftS0D3M#Y3V_#^Ib=yEJYN^+10VBVcMSr5Aka$iMx`*6^wj~eJW8O zT(~JVPGMzsJQRU2R{EUjumGRHBMcWWq;pzvTq_`HDKmocpE#T4{}#DeGg!Xb}#>tLK-ma4{ zSW_fJ(D?|#wAJOSk#7wI#Lov(QH&XO0}oFc-1t=CmLU5MwnSIY{I+L*i(qW=e>j+l zAN~c;hmfbl4s2nK6rnU;0RM>fOW%ab57 z2kdnsILq4gjM)LnUOlk8vLzt#4@!9r0kcSw{viGY$0Cx8?spS%sj9(otn_2Vq5zU& zj`hz`f0iQ{CT1|LcGMe((*80dcQRLS0mNp1EZY}klr1A6=SCyM!C3VXQj@}CHNf$B8Go6g(L#Oq}i(Y>bns^LehW`q`5wB3(DxnKnG9k|T z&ZLaP3DdT|)FS@h$nvxo!28B~+iT*8#Ge5N5NigwK8q6G;ivz~ObLnmrX{87)*VVC zb?^us=tnpX$u2^$!<9-?UO7i-v!H)2gZo1B%jTkQ`#tGYR!DkB$vVWcQ0FyN^l$NJ ze9=GsI{KW+)F&^f;>^_ez0&w`ER14mIywSH5xORPG$Z;VW zEk9qS0lLu1+HHd_X>9F%IJBB&xDQg{i(eAjep3f+I8mL|#|ZZQwxs4G z@{i74Dj{UxHlSgQxON=NNGg6XsXfi8Q+?)sZmu+N3w4MO3}M2wV)1v}n&xZgDw!4U zAloO12XwPqpuT-zpeq*S0uwKN+Bfp?EOIi~<3t*%yw)RqyOE5h~}G`J8q&sYv- zsV6$gk)V1o=>4^jYN8L?q7Qv8kDBkheNNxMlP>OJ8@{h@y-0N-p=|v(QkGp5_%;wcqKBfd|1(a^ir$eh@i&CA9lfr8V;mCV z>f^Q+78gawr?@2260F;(bl-V)b6V;8#*lCvkOdNA7QoYL8AxU#mdy$I^`z!Ea5lh9 zjhqkj;+Xse_z@p{MoH%SS55N<({3N+r2B+~=o6MAD}b zBLM*Y?SWibAe13I4e2EV$NCJ9YCl=me|~y zS4&E(`Or|+8(2=GxTU?0rmsF2AZrth#*?yGKjBzJlIeri(juCL+n#RP-h1Y_3k8IW{}|M+IGayUuj7xvk{4jpHnBr~N?<|&%$P4x z+=bbgUlA0*|Ne+gJI>y~@FQ>1<~)UZ)__f~BRhgp54YaC_epcA)cQimbX&h?dVjFk zg~i{4!Ia^6#B3qfOe{(ffGs2}8?%!Mo&SzuG{I=MA{OQb4<(X(VK5& zhbu0hT3m4ALpKu4zp-hYcr1mL1=-ZmalLpvPh&7T>}<(G(=+pxjyUV$z9GR4q*RHjnI#bY z`;3y-R9SgVaPgV2GFFNis$X?uw-ZeF;TKm_v*fNb zJVR&6u~*GFeA58k&ruIshqC98l6l(RoXNeSrX+le^6R;$)>@3Y7^V_n42nmNW^<*B z35q^CckPwh#*G&X+jrgk<^2QRUr8P&vd@gc!}{dJ9e0CQbkL$$ES{;ZyHErh_D0Dm ziLQrnc#6K<`-`)Nys8(eI&-o->4q$@TD}Epx#&P7$cj0?;p*m{6l(u~$`>>c263=s zwUVo=6qXIaj!}pYMvN`hIn~v~x3fi}C(_wQ3>&s}d`xba=mw|akq(;}`S#x1x2JtG z0)XRcGLM?JABtk z*;c(4xld-kXBYaI*#N#wSP`NwlFZt-4JiRar@~OjKjNnJNc6Hmz;jnUy0t~Bj{&0H zCzDHZ>&^5<(J-Mi|G9{Fd)AEo7BWgzO!axZ%6W*MeifCk~%1w3i0oQIa9fp7c8k zB#YG_(hwFz?~~ZSRp*iQAUh|+KQ{(ZxW#kj(~R7%+YuJo26WNwlCP%Bqj_wf@%e<% z^ z?pYB^3}}!_$$@p967~%*Z^2O--jmtGp=mPK%gg!U>U0px5vxy$#7+DdAbap2(r6m$ zoKz&a$|#$Fo6A0ItdgnPl^IS2I$uUOAWE8W=AOeVbTo}U|MdHGTK25SMi>%01$sR+ z34xAMdrGh6?D>uJ>B(G9;&1b*PP&Ic= zt}hm!e`9{^M+B$vw@g|P_{UBd3!<+Ds{Nk(;LCw`s%(PX2#0tp#8cEtPSnj zSeqX{i*WJ}6pv35YYki4Mm#sno=!Tjo#DKyayByc5lF~mjfGSx&dh^cktMKWD9W5& z&Y9Bc?gWYvjt<=!uBL+DcDxwdL2YMz4CA@roH;O(CmFPz{XAlJTiPFR>qZTWI zNcH@s+7HJ4`9F0Jf`0Aq!f`0Y8awH;`#z_6(3q}Pp?4=;HK}@BC6MuW3gZ#MY5mWD z)0k&fq9A#O=9~LBMvw6J91?u$`Y&p6?Q5vJe?`z##0&!HIQp)t*X;PE1>6L!X2AE^ z&np;67sQ1o6xoK4eUB9i(t%EFs6eicYExRgl9SmMxpr_|!gXx@kyA(HaV+s0yC2-w zP0zQhiH#t~d;sMTqtDstwglbs3JiMMIY%<^vkP)xk2OGkfQ9zO4zfb-N?v<8#~ym5 zYO8e}H$Ta#V>2)0$r1e?to)Z%J9Cskad{s?2|L)v8GUmoT_IPkIGS!N^irb&B>!&B zPx<9K`)g(l+X=WH$uAwGlXp!CSvx$_t1TRQeOVaY(}GCbFIE}_%(@^1N{U|VPF#ZG zu1zARFP`1=`#V{?PBhU(pp!W#a zG#r!B2=I7Mm_3dJ5V~#Ldc40MfC$KufaDwL_mIPDN-ZU|q7nC^FX}Uhpv9cG04Oex z@x%MN=QQ1;e-j#yIHr(byYim4Djm5aIyk$V^xLFLLsFXhAb82|!TzlgpU?^W8ESYs ztL*^|t{wL&nMDAck-lDVKNcSJfT$;}Hh2)uM)N#+ukMu-RAm=-#FhB)R4^e}!-CdW z;wu=T+&q!DD{b1=0n(Q-!cr}Fg@9X<~_+t>I%ZTy{Yg zu?e2dKcb1cZfmES)%N)TKKMHi+Za&vb#$u$lcy6BlNB+}v*IWxOUjZC4?UA*o6TlG zY0NoGal-(P|Kn7g!aP!jP}HAQdqoBcDdJis|_j563R*sd+}B;R`H>137n{ zCzW{q*6{@IzI6-7oK70^HJsjdx#3SHJNjHjyiH@Yi8V~i`A8HtRVwK_WcHYeUeW#0 zA!-v-?CvRyM$iukA1r;=BwasCRJTHJcV6>UWfVD`ai9T5W~DNt0#NVGNaQgRs|+=- znb#Qw0x@$uKrY%?#>X@54-XfG%<~XK+IV(sr&7V}k7EL8(ifI7Vc!bkV9*o><=kOP z$(V2SqL$-5uql0!2a>F1mA6R?8+oTiA=!jh#eDZYC9gN^t(YF5f^2}PnV1O+@An-bL;e?WGmNh5ZQ9rxcEkV3^-MNav#Ig8qlafC+84vFj3L*jO-MeP=EWGO zvScnJ3RMqM?K3*|sKWyh1)PHiBy%pk7?5PS=zaU?$q)7F*k^VR;e0{(Z|Hr>d6L7) zCVgls8D!5yZD2=0+ZGFk$xdQ+lYt(WxK^eHG zic|@mWc+Bh=O_d(WZS>6C7gkU5bN1>}A_58{V<0kOXm= zh9;uaVmjQ;pN(`u8ae6H911njYx^*aPN(%5fUiM}8JURTJDi5Lm?#uCOEUtM16Z!5 zL%DkN@Q%4p{8;)6$cjR&M+tH+DZjGGxpXb_>qqN~%eg7nr)=R;@fvU`(Dpy&ucA2Y zw?pN#mUPd;6auh9E&&T??-y|dxD-I!_|vsMLrzQNsUusSI)OCd=TJyX(WxtGDDIt1 z{hvbZpJ`pKLwcu=veHb)BhRXq2$JN(Rs|LoO0N#E2;w}GL>Y3AG-3tb=;@!i{nt>4 zz$<1hTLU{EB!ehBJ(HMoZ!*9TcOg9m5**b+cnS_cvFQ+O?kBCum606jzUU->LqwKp z^3i!tEv>E(Pk1I35h07 z`DYAt-@{ywEZwsnb;39)kS)hGZffZT$QjC#JUUhBdB1NOo>svDnRv+#z*g8{ggF;t zXzV-1<#pk=1d#rX$2%|UN`xMM0<;5SF$Bnz+fs<-5|T{;nJ>+UBS^dqN3@)ez+wAA zObeY6XOrC9a5b{mT@WfGE9KkkWxoW_aGqp3aLNW?y0dmZt^C5VgDfVA>=H7jz!v;- z7i5;OH1ni-8z3{vV%pkA;Kd8%R{(ilQ`t{Mni4X?_Qdr}lNM5alAnJ{jYzU5zH-DK+(<6!{&R2KmIONpdm@6u-h^fUva40@r| zFjK1lA#m~ULTVL8_NLLJR<0PTWu{2DhsF@WQd;PZ=dD$jxG`i^Dem-r;R)}z@$f3s z0++57a^5GCw9V->b=hTo84Ah2!Yg_k!i!FE;s{q@i+3d-a8eK%XFYjzOn=v7tV-Dm zacC~cGvavVZ#@!89HSr&E(?d7*%utvxtIP^=iYKh>RfgHxmhICLTmyRMLtwITwqWr zpaSsbKCJ-#9v)H>=bum=T_M~RH_OxHy?X-1ZU5{^A2u@KJVCYwvb2hzN-#H_-cq>r zB@Edw(P+bE#c-6qBehSeeNf!g51DT;PSJC>(r9eC!LIwn-3`ZGP-~u(1H{xFfy*yc z*+=Y+L#1i;gl%aF395o`fi~EwgpiPzcaIeM^@MX4Ug>ECnYfaa*f1NzqB;Iijn!L! zWTYDk>o^p9M2dkc6NW6tB={M7JM$lEwQ!tA7NoU8Xn~&ATnipceHXNEixVy{(m{ME z2g~2E_4)^)EFe5;-6k!Ou<8r-9#4@!Q*+EW2|H42et4S^wIgzBOAiLzlvx>J7bXO` z7$l06$@p-c0GQ^&zkkmB&IgAh@G}KOKYQrM39|@~T?B0dl2V9J?nfy*ZX<*YqI?Ay zQ34`6Hae)KLEn3ZN-Nq&BVz1*vC#u9c%X)SLgiOJ?y^d+R%k8y3WBgb`uD<6x$iwp zDkF3POc{sAL8(zd@vi0Py13P4-*n^{*Moaq@y8H80+A;#z?mNADZIiA;kAl}`FDN; z@(3TcTCR@R!G zVs3DWXw%Tm;(OVvKu=07E_oz6xv%uYE+uV~Tzi~RU)puX*3dd0K)5MGST%8XguiOx z;y({u@Ls<+8J;yggI*u_QeR^(!t`>B!s=An%A>R^}BS7=SvON1N&d!b!p4H77Ys#QIKf0CHeRLcI;JITysrH7+<)bue2Ta1QOmEf!F#&Z)S{Q+rmdcW5XDV_$V{Z#?$*-GG2J{Q|x> z_CpedQ_ga4sqBi+>KhvyzYSKVcr;KsH8T?zH0j~*@A4pBh~1H&Vtk1erDl6TG-dJG z=-AEI50h!CtCnMHMA-W)Ou41t9tXF6udeo;7U9ZY+uAzoQ~bK7re-Fpyyl29^>bP7 zwOgm?ImpS$KWDMkjm^yDDqX8aeRUQcrG}{>hLK1qlzyFb-HpQPOdw%y{KcXLdO%O5od63XQm;i?S?|&YUiUddy ze>nZGA5pm41a~-XE(NRnb3NqB{Y1~dU$48!7|1=CEDAD3%SA z2JrP2>>E_M(tI1T9JKxG>lK=OsC(PtHve_OkdxH$+Wg0kke$dftX+Ij@nzd+Zr<(P zHCb-jsM2}dop+Z%aQyqpcxID=jhExQ=Qle$JGpI=S_xE!HYyz5_Q!z1Bhb?_)~wL5 G4gDXMykHps literal 0 HcmV?d00001 diff --git a/keyboards/satan/keymaps/denolfe/keymap.c b/keyboards/satan/keymaps/denolfe/keymap.c new file mode 100644 index 000000000..2f6c8d8f4 --- /dev/null +++ b/keyboards/satan/keymaps/denolfe/keymap.c @@ -0,0 +1,171 @@ +#include "satan.h" + +#ifdef RGBLIGHT_ENABLE +#include "rgblight.h" +#endif + +// Used for SHIFT_ESC +#define MODS_CTRL_MASK (MOD_BIT(KC_LSHIFT)|MOD_BIT(KC_RSHIFT)) + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +// Layer names don't all need to be of the same length, obviously, and you can also skip them +// entirely and just use numbers. +#define _BL 0 +#define _FL 1 +#define _SL 2 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Keymap _BL: (Base Layer) Default Layer + * ,-----------------------------------------------------------. + * |Esc~| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backsp | + * |-----------------------------------------------------------| + * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \ | + * |-----------------------------------------------------------| + * |CAPS | A| S| D| F| G| H| J| K| L| ;| '|Return | + * |-----------------------------------------------------------| + * |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift | + * |-----------------------------------------------------------| + * |Ctrl|Gui |Alt | Space |Alt |Gui |FN |Ctrl | + * `-----------------------------------------------------------' + */ +[_BL] = KEYMAP( + F(0), KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, \ + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, \ + MO(_FL), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, \ + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, \ + KC_LCTL, KC_LGUI,KC_LALT, KC_SPC, KC_RALT, MO(_FL), KC_RGUI, KC_RCTL), + + /* Keymap _FL: Function Layer + * ,-----------------------------------------------------------. + * | | | | | | | | | | | | | | RESET| + * |-----------------------------------------------------------| + * | | | | | | | | | | | |BL-|BL+|BL | + * |-----------------------------------------------------------| + * | | | | | | | | | | | | | + * |-----------------------------------------------------------| + * | | F1|F2 | F3|F4 | F5| F6| F7| F8| | | | + * |-----------------------------------------------------------| + * | | | | | | | | | + * `-----------------------------------------------------------' + */ +[_FL] = KEYMAP( + #ifdef RGBLIGHT_ENABLE + KC_GRV, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET, \ + KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, BL_DEC, BL_INC, BL_TOGG, \ + KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ + KC_TRNS, F(1), F(2), F(3), F(4), F(5), F(6), F(7), F(8), KC_TRNS, KC_TRNS, KC_TRNS, \ + KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + #else + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, \ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGDN, KC_PGUP, KC_TRNS, KC_END, KC_MPRV, KC_MNXT, KC_MPLY, \ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, KC_TRNS, KC_TRNS, KC_TRNS, \ + KC_TRNS, KC_TRNS, KC_TRNS, BL_DEC, BL_TOGG, BL_INC, KC_HOME, LCTL(KC_LEFT), LCTL(KC_END), LCTL(KC_RIGHT), KC_TRNS, RESET, \ + KC_TRNS, KC_TRNS, F(9), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + #endif + +[_SL] = KEYMAP( + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, \ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGDN, KC_PGUP, KC_TRNS, LSFT(KC_END), KC_MPRV, KC_MNXT, KC_MPLY, \ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, LSFT(KC_LEFT), LSFT(KC_DOWN), LSFT(KC_UP), LSFT(KC_RIGHT), KC_TRNS, KC_TRNS, KC_TRNS, \ + KC_TRNS, KC_TRNS, KC_TRNS, BL_DEC, BL_TOGG, BL_INC, LSFT(KC_HOME), LCTL(LSFT(KC_LEFT)), LCTL(LSFT(KC_END)), LCTL(LSFT(KC_RIGHT)), KC_TRNS, RESET, \ + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), +}; + +enum function_id { + SHIFT_ESC, + #ifdef RGBLIGHT_ENABLE + RGBLED_TOGGLE, + RGBLED_STEP_MODE, + RGBLED_INCREASE_HUE, + RGBLED_DECREASE_HUE, + RGBLED_INCREASE_SAT, + RGBLED_DECREASE_SAT, + RGBLED_INCREASE_VAL, + RGBLED_DECREASE_VAL + #endif +}; + +const uint16_t PROGMEM fn_actions[] = { + [0] = ACTION_FUNCTION(SHIFT_ESC), + #ifdef RGBLIGHT_ENABLE + [1] = ACTION_FUNCTION(RGBLED_TOGGLE), + [2] = ACTION_FUNCTION(RGBLED_STEP_MODE), + [3] = ACTION_FUNCTION(RGBLED_INCREASE_HUE), + [4] = ACTION_FUNCTION(RGBLED_DECREASE_HUE), + [5] = ACTION_FUNCTION(RGBLED_INCREASE_SAT), + [6] = ACTION_FUNCTION(RGBLED_DECREASE_SAT), + [7] = ACTION_FUNCTION(RGBLED_INCREASE_VAL), + [8] = ACTION_FUNCTION(RGBLED_DECREASE_VAL), + #endif + [9] = ACTION_LAYER_MODS(2, MOD_LSFT) +}; + +void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { + static uint8_t shift_esc_shift_mask; + switch (id) { + case SHIFT_ESC: + shift_esc_shift_mask = get_mods()&MODS_CTRL_MASK; + if (record->event.pressed) { + if (shift_esc_shift_mask) { + add_key(KC_GRV); + send_keyboard_report(); + } else { + add_key(KC_ESC); + send_keyboard_report(); + } + } else { + if (shift_esc_shift_mask) { + del_key(KC_GRV); + send_keyboard_report(); + } else { + del_key(KC_ESC); + send_keyboard_report(); + } + } + break; + //led operations + #ifdef RGBLIGHT_ENABLE + case RGBLED_TOGGLE: + if (record->event.pressed) { + rgblight_toggle(); + } + break; + case RGBLED_INCREASE_HUE: + if (record->event.pressed) { + rgblight_increase_hue(); + } + break; + case RGBLED_DECREASE_HUE: + if (record->event.pressed) { + rgblight_decrease_hue(); + } + break; + case RGBLED_INCREASE_SAT: + if (record->event.pressed) { + rgblight_increase_sat(); + } + break; + case RGBLED_DECREASE_SAT: + if (record->event.pressed) { + rgblight_decrease_sat(); + } + break; + case RGBLED_INCREASE_VAL: + if (record->event.pressed) { + rgblight_increase_val(); + } + break; + case RGBLED_DECREASE_VAL: + if (record->event.pressed) { + rgblight_decrease_val(); + } + break; + case RGBLED_STEP_MODE: + if (record->event.pressed) { + rgblight_step(); + } + break; + #endif + } +} From e692ebf86a962e90c51302e7b17a953ea2858f79 Mon Sep 17 00:00:00 2001 From: shela Date: Fri, 12 Aug 2016 20:38:26 +0900 Subject: [PATCH 28/34] fix typo --- quantum/keymap.h | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/quantum/keymap.h b/quantum/keymap.h index a15865183..f2d94d75c 100644 --- a/quantum/keymap.h +++ b/quantum/keymap.h @@ -156,16 +156,16 @@ enum quantum_keycodes { BL_INC, BL_TOGG, BL_STEP, - - // RGB functionality - RGB_TOG, - RGB_MOD, - RGB_HUI, - RGB_HUD, - RGB_SAI, - RGB_SAD, - RGB_VAI, - RGB_VAD, + + // RGB functionality + RGB_TOG, + RGB_MOD, + RGB_HUI, + RGB_HUD, + RGB_SAI, + RGB_SAD, + RGB_VAI, + RGB_VAD, // Left shift, open paren KC_LSPO, @@ -309,7 +309,7 @@ enum quantum_keycodes { #define OSL(layer) (layer | QK_ONE_SHOT_LAYER) // One-shot mod -#define OSM(layer) (layer | QK_ONE_SHOT_MOD) +#define OSM(mod) (mod | QK_ONE_SHOT_MOD) // M-od, T-ap - 256 keycode max #define MT(mod, kc) (kc | QK_MOD_TAP | ((mod & 0xF) << 8)) From 1c8d64d3b3664ef7d62ea12f8fd510231a7ec54e Mon Sep 17 00:00:00 2001 From: shela Date: Fri, 12 Aug 2016 21:24:43 +0900 Subject: [PATCH 29/34] add my keymap --- keyboards/hhkb/keymaps/shela/Makefile | 1 + .../hhkb/keymaps/shela/action_pseudo_lut.c | 142 ++++++++++++++ .../hhkb/keymaps/shela/action_pseudo_lut.h | 15 ++ keyboards/hhkb/keymaps/shela/config.h | 12 ++ keyboards/hhkb/keymaps/shela/keymap.c | 179 ++++++++++++++++++ keyboards/hhkb/keymaps/shela/keymap_jis2us.h | 32 ++++ keyboards/hhkb/keymaps/shela/readme.md | 14 ++ 7 files changed, 395 insertions(+) create mode 100644 keyboards/hhkb/keymaps/shela/Makefile create mode 100644 keyboards/hhkb/keymaps/shela/action_pseudo_lut.c create mode 100644 keyboards/hhkb/keymaps/shela/action_pseudo_lut.h create mode 100644 keyboards/hhkb/keymaps/shela/config.h create mode 100644 keyboards/hhkb/keymaps/shela/keymap.c create mode 100644 keyboards/hhkb/keymaps/shela/keymap_jis2us.h create mode 100644 keyboards/hhkb/keymaps/shela/readme.md diff --git a/keyboards/hhkb/keymaps/shela/Makefile b/keyboards/hhkb/keymaps/shela/Makefile new file mode 100644 index 000000000..d0586bda6 --- /dev/null +++ b/keyboards/hhkb/keymaps/shela/Makefile @@ -0,0 +1 @@ +SRC += action_pseudo_lut.c diff --git a/keyboards/hhkb/keymaps/shela/action_pseudo_lut.c b/keyboards/hhkb/keymaps/shela/action_pseudo_lut.c new file mode 100644 index 000000000..b205968c7 --- /dev/null +++ b/keyboards/hhkb/keymaps/shela/action_pseudo_lut.c @@ -0,0 +1,142 @@ +#include "quantum.h" +#include "action_pseudo_lut.h" + +static uint8_t send_key_shift_bit[SHIFT_BIT_SIZE]; + +/* + * Pseudo layout action. + * This action converts a keycode in order to output the character according to the keymap you specified + * still your keyboard layout recognized wrongly on your OS. + * Memo: Using other layer keymap to get keycode + */ +void action_pseudo_lut(keyrecord_t *record, uint8_t base_keymap_id, const uint16_t (*keymap)[2]) { + static uint8_t prev_shift; + uint16_t keycode; + uint16_t pseudo_keycode; + + /* get keycode from keymap you specified */ + keycode = keymap_key_to_keycode(base_keymap_id, record->event.key); + + prev_shift = keyboard_report->mods & (MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT)); + + if (record->event.pressed) { + /* when magic commands entered, keycode does not converted */ + if (IS_COMMAND()) { + if (prev_shift) { + add_shift_bit(keycode); + } + register_code(keycode); + return; + } + + if (prev_shift) { + pseudo_keycode = convert_keycode(keymap, keycode, true); + dprintf("pressed: %02X, converted: %04X\n", keycode, pseudo_keycode); + add_shift_bit(keycode); + + if (IS_LSFT(pseudo_keycode)) { + register_code(QK_LSFT ^ pseudo_keycode); + } else { + /* delete shift mod temporarily */ + del_mods(prev_shift); + send_keyboard_report(); + register_code(pseudo_keycode); + add_mods(prev_shift); + send_keyboard_report(); + } + } else { + pseudo_keycode = convert_keycode(keymap, keycode, false); + dprintf("pressed: %02X, converted: %04X\n", keycode, pseudo_keycode); + + if (IS_LSFT(pseudo_keycode)) { + add_weak_mods(MOD_BIT(KC_LSFT)); + send_keyboard_report(); + register_code(QK_LSFT ^ pseudo_keycode); + /* on Windows, prevent key repeat to avoid unintended output */ + unregister_code(QK_LSFT ^ pseudo_keycode); + del_weak_mods(MOD_BIT(KC_LSFT)); + send_keyboard_report(); + } else { + register_code(pseudo_keycode); + } + } + } else { + if (get_shift_bit(keycode)) { + del_shift_bit(keycode); + pseudo_keycode = convert_keycode(keymap, keycode, true); + } else { + pseudo_keycode = convert_keycode(keymap, keycode, false); + } + dprintf("released: %02X, converted: %04X\n", keycode, pseudo_keycode); + + if (IS_LSFT(pseudo_keycode)) { + unregister_code(QK_LSFT ^ pseudo_keycode); + } else { + unregister_code(pseudo_keycode); + } + } +} + +uint16_t convert_keycode(const uint16_t (*keymap)[2], uint16_t keycode, bool shift_modded) +{ + uint16_t pseudo_keycode; + + switch (keycode) { + case KC_A ... KC_CAPSLOCK: +#if defined(__AVR__) + if (shift_modded) { + pseudo_keycode = pgm_read_word(&keymap[keycode][1]); + } else { + pseudo_keycode = pgm_read_word(&keymap[keycode][0]); + } +#else + if (shift_modded) { + pseudo_keycode = keymap[keycode][1]; + } else { + pseudo_keycode = keymap[keycode][0]; + } +#endif + /* if undefined, use got keycode as it is */ + if (pseudo_keycode == 0x00) { + if (shift_modded) { + pseudo_keycode = S(keycode); + } else { + pseudo_keycode = keycode; + } + } + break; + default: + if (shift_modded) { + pseudo_keycode = S(keycode); + } else { + pseudo_keycode = keycode; + } + break; + } + return pseudo_keycode; +} + +uint8_t get_shift_bit(uint16_t keycode) { + if ((keycode >> 3) < SHIFT_BIT_SIZE) { + return send_key_shift_bit[keycode >> 3] & (1 << (keycode & 7)); + } else { + dprintf("get_shift_bit: Can't get shift bit. keycode: %02X\n", keycode); + return 0; + } +} + +void add_shift_bit(uint16_t keycode) { + if ((keycode >> 3) < SHIFT_BIT_SIZE) { + send_key_shift_bit[keycode >> 3] |= (1 << (keycode & 7)); + } else { + dprintf("add_shift_bit: Can't add shift bit. keycode: %02X\n", keycode); + } +} + +void del_shift_bit(uint16_t keycode) { + if ((keycode >> 3) < SHIFT_BIT_SIZE) { + send_key_shift_bit[keycode >> 3] &= ~(1 << (keycode & 7)); + } else { + dprintf("del_shift_bit: Can't delete shift bit. keycode: %02X\n", keycode); + } +} diff --git a/keyboards/hhkb/keymaps/shela/action_pseudo_lut.h b/keyboards/hhkb/keymaps/shela/action_pseudo_lut.h new file mode 100644 index 000000000..681252440 --- /dev/null +++ b/keyboards/hhkb/keymaps/shela/action_pseudo_lut.h @@ -0,0 +1,15 @@ +#ifndef ACTION_PSEUDO_LUT_H +#define ACTION_PSEUDO_LUT_H + +#define SHIFT_BIT_SIZE (0xE7 / 8 + 1) // 1bit per 1key + +#define IS_LSFT(kc) ((QK_LSFT & (kc)) == QK_LSFT) + +void action_pseudo_lut(keyrecord_t *, uint8_t, const uint16_t (*)[2]); +uint16_t convert_keycode(const uint16_t (*)[2], uint16_t, bool); + +uint8_t get_shift_bit(uint16_t); +void add_shift_bit(uint16_t); +void del_shift_bit(uint16_t); + +#endif diff --git a/keyboards/hhkb/keymaps/shela/config.h b/keyboards/hhkb/keymaps/shela/config.h new file mode 100644 index 000000000..08cc1fb46 --- /dev/null +++ b/keyboards/hhkb/keymaps/shela/config.h @@ -0,0 +1,12 @@ +#ifndef CONFIG_SHELA_H +#define CONFIG_SHELA_H + +#include "../../config.h" + +#undef TAPPING_TERM +#define TAPPING_TERM 230 + +#define ONESHOT_TAP_TOGGLE 2 +#define ONESHOT_TIMEOUT 2000 + +#endif diff --git a/keyboards/hhkb/keymaps/shela/keymap.c b/keyboards/hhkb/keymaps/shela/keymap.c new file mode 100644 index 000000000..c286b99de --- /dev/null +++ b/keyboards/hhkb/keymaps/shela/keymap.c @@ -0,0 +1,179 @@ +/* + * HHKB Pro 2 US Layout for shela + */ +#include "hhkb.h" +#include "keymap_jis2us.h" +#include "action_pseudo_lut.h" + +enum keymap_layout { + BASE = 0, + PSEUDO_US, + DVORAK, + MOUSE, + TENKEY, + HHKB, + SPACE_FN, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + /* Layer 0: Default Layer + * ,-----------------------------------------------------------------------------------------. + * | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | ` | BSp | + * |-----------------------------------------------------------------------------------------| + * | Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ | + * |-----------------------------------------------------------------------------------------| + * | Control | A | S | D | F | G | H | J | K | L | ; | ' | Enter | + * |-----------------------------------------------------------------------------------------| + * | Shift | Z | X | C | V | B | N | M | , | . | / | Shift | Fn0 | + * `-----------------------------------------------------------------------------------------' + * |LAlt | LGui | SpaceFN | RGui |RAlt | + * `-----------------------------------------------------------------' + */ + [BASE] = + KEYMAP(KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,KC_EQL, KC_GRV, KC_BSPC, \ + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC,KC_RBRC,KC_BSLS, \ + KC_LCTL,KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN,KC_QUOT,KC_ENT, \ + OSM(MOD_LSFT),KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH,KC_RSFT,KC_FN0, \ + KC_LALT,KC_LGUI, KC_FN2, KC_RGUI,KC_RALT), + + /* Layer 1: Pseudo US Layout Layer */ + [PSEUDO_US] = + KEYMAP(KC_ESC, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_BSPC, \ + KC_TAB, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, \ + KC_LCTL,KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_ENT, \ + OSM(MOD_LSFT),KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_FN1, KC_RSFT,KC_FN0, \ + KC_LGUI,KC_FN3, KC_FN2, KC_FN4 ,KC_RGUI), + + /* Layer 2: Dvorak Layer + * ,-----------------------------------------------------------------------------------------. + * | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | [ | ] | ` | BSp | + * |-----------------------------------------------------------------------------------------| + * | Tab | ' | , | . | P | Y | F | G | C | R | L | / | = | \ | + * |-----------------------------------------------------------------------------------------| + * | Control | A | O | E | U | I | D | H | T | N | S | - | Enter | + * |-----------------------------------------------------------------------------------------| + * | Shift | ; | Q | J | K | X | B | M | W | V | Z | Shift | Fn0 | + * `-----------------------------------------------------------------------------------------' + * |LAlt | LGui | SpaceFN | RGui |RAlt | + * `-----------------------------------------------------------------' + */ + [DVORAK] = + KEYMAP(KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_LBRC,KC_RBRC,KC_GRV, KC_BSPC, \ + KC_TAB, KC_QUOT,KC_COMM,KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH,KC_EQL, KC_BSLS, \ + KC_LCTL,KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS,KC_ENT, \ + KC_LSFT,KC_SCLN,KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_RSFT,KC_FN0, \ + KC_LALT,KC_LGUI, KC_FN2, KC_RGUI,KC_RALT), + + /* Layer 3: Mouse layer + * ,-----------------------------------------------------------------------------------------. + * | Esc | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | | | + * |-----------------------------------------------------------------------------------------| + * | | | | | | | MwL | MwD | MwU | MwR | | | | | + * |-----------------------------------------------------------------------------------------| + * | | | | | | | McL | McD | McU | McR | | | | + * |-----------------------------------------------------------------------------------------| + * | | | | | | | Mb1 | Mb2 | Mb3 | | | | Fn0 | + * `-----------------------------------------------------------------------------------------' + * | | | Mb1 | | | + * `-----------------------------------------------------------------' + */ + [MOUSE] = + KEYMAP(KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NO, KC_TRNS, \ + KC_TRNS,KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_WH_L,KC_WH_D,KC_WH_U,KC_WH_R,KC_NO, KC_NO, KC_NO, KC_NO, \ + KC_TRNS,KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_MS_L,KC_MS_D,KC_MS_U,KC_MS_R,KC_NO, KC_NO, KC_TRNS, \ + KC_TRNS,KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_BTN1,KC_BTN2,KC_BTN3,KC_NO, KC_NO, KC_TRNS,KC_FN0, \ + KC_TRNS,KC_TRNS, KC_BTN1, KC_TRNS,KC_TRNS), + + /* Layer 4: Tenkey layer + * ,-----------------------------------------------------------------------------------------. + * | Esc | | | | | | | | | | / | * | - | | BSp | + * |-----------------------------------------------------------------------------------------| + * | | | | | | | | | | 7 | 8 | 9 | + | | + * |-----------------------------------------------------------------------------------------| + * | | | | | | | | | | 4 | 5 | 6 | Enter | + * |-----------------------------------------------------------------------------------------| + * | | | | | | | | | 1 | 2 | 3 | + | Fn0 | + * `-----------------------------------------------------------------------------------------' + * | | | SpaceFN | 0 | . | + * `-----------------------------------------------------------------' + */ + [TENKEY] = + KEYMAP(KC_ESC, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_PSLS,KC_PAST,KC_PMNS,KC_NO, KC_BSPC, \ + KC_TRNS,KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_KP_7,KC_KP_8,KC_KP_9,KC_PPLS,KC_NO, \ + KC_TRNS,KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_KP_4,KC_KP_5,KC_KP_6,KC_PENT, \ + KC_TRNS,KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_KP_1,KC_KP_2,KC_KP_3,KC_PPLS,KC_FN0, \ + KC_TRNS,KC_TRNS, KC_FN2, KC_KP_0,KC_PDOT), + + /* Layer 5: HHKB mode (HHKB Fn) + * ,-----------------------------------------------------------------------------------------. + * | Pwr | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | Ins | Del | + * |-----------------------------------------------------------------------------------------| + * | Caps | Fn5 | Fn6 | Fn7 | Fn8 | Fn9 | | | Psc | Slk | Pus | Up | | BSp | + * |-----------------------------------------------------------------------------------------| + * | | VoD | VoU | Mut | | | * | / | Hom | PgU | Lef | Rig | Enter | + * |-----------------------------------------------------------------------------------------| + * | | | | | | | + | - | End | PgD | Dow | | | + * `-----------------------------------------------------------------------------------------' + * | | | | | | + * `-----------------------------------------------------------------' + */ + [HHKB] = + KEYMAP(KC_PWR, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_INS, KC_DEL, \ + KC_CAPS,KC_FN5, KC_FN6, KC_FN7, KC_FN8, KC_FN9, KC_TRNS,KC_TRNS,KC_PSCR,KC_SLCK,KC_PAUS,KC_UP, KC_TRNS,KC_BSPC, \ + KC_TRNS,KC_VOLD,KC_VOLU,KC_MUTE,KC_TRNS,KC_TRNS,KC_PAST,KC_PSLS,KC_HOME,KC_PGUP,KC_LEFT,KC_RGHT,KC_PENT, \ + KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_PPLS,KC_PMNS,KC_END, KC_PGDN,KC_DOWN,KC_TRNS,KC_TRNS, \ + KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS), + + /* Layer 6: SpaceFN + * ,-----------------------------------------------------------------------------------------. + * | ` | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | | Del | + * |-----------------------------------------------------------------------------------------| + * | | End | Up | Hom | | | | Hom | Up | End | Psc | Slk | Pau | Ins | + * |-----------------------------------------------------------------------------------------| + * | | Lef | Dow | Rig | PgU | | PgU | Lef | Dow | Rig | | | | + * |-----------------------------------------------------------------------------------------| + * | | | | PgD | | Spc | PgD | ` | ~ | | | | | + * `-----------------------------------------------------------------------------------------' + * | | | | | | + * `-----------------------------------------------------------------' + */ + [SPACE_FN] = + KEYMAP(KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NO, KC_DEL, \ + KC_TRNS,KC_END, KC_UP, KC_HOME,KC_NO, KC_NO, KC_NO, KC_HOME,KC_UP, KC_END, KC_PSCR,KC_SLCK,KC_PAUS,KC_INS, \ + KC_TRNS,KC_LEFT,KC_DOWN,KC_RGHT,KC_PGUP,KC_NO, KC_PGUP,KC_LEFT,KC_DOWN,KC_RGHT,KC_NO, KC_NO, KC_TRNS, \ + KC_TRNS,KC_NO, KC_NO, KC_PGDN,KC_NO, KC_SPC, KC_PGDN,KC_GRV, KC_TILD,KC_NO, KC_NO, KC_TRNS,KC_NO, \ + KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS), +}; + +/* + * user defined action function + */ +enum function_id { + PSEUDO_US_FUNCTION, +}; + +void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { + + switch (id) { + case PSEUDO_US_FUNCTION: + action_pseudo_lut(record, BASE, keymap_jis2us); + break; + } +} + +/* + * Fn action definition + */ +const uint16_t PROGMEM fn_actions[] = { + [0] = ACTION_LAYER_MOMENTARY(HHKB), + [1] = ACTION_FUNCTION(PSEUDO_US_FUNCTION), + [2] = ACTION_LAYER_TAP_KEY(SPACE_FN, KC_SPACE), + [3] = ACTION_MODS_TAP_KEY(MOD_LALT, KC_MHEN), + [4] = ACTION_MODS_TAP_KEY(MOD_RALT, KC_KANA), + [5] = ACTION_DEFAULT_LAYER_SET(BASE), + [6] = ACTION_DEFAULT_LAYER_SET(PSEUDO_US), + [7] = ACTION_DEFAULT_LAYER_SET(MOUSE), + [8] = ACTION_DEFAULT_LAYER_SET(TENKEY), + [9] = ACTION_DEFAULT_LAYER_SET(DVORAK), +}; diff --git a/keyboards/hhkb/keymaps/shela/keymap_jis2us.h b/keyboards/hhkb/keymaps/shela/keymap_jis2us.h new file mode 100644 index 000000000..cf2bd4f0e --- /dev/null +++ b/keyboards/hhkb/keymaps/shela/keymap_jis2us.h @@ -0,0 +1,32 @@ +#ifndef KEYMAP_JIS2US_H +#define KEYMAP_JIS2US_H + +/* keymap for convert from JIS to US */ +const uint16_t PROGMEM keymap_jis2us[][2] = { + [KC_A ... KC_CAPS] = { 0x00, 0x00 }, /* default value */ + + [KC_1] = { KC_1, KC_EXLM }, /* 1 and ! -> 1 and ! */ + [KC_2] = { KC_2, KC_LBRC }, /* 2 and " -> 2 and @ */ + [KC_3] = { KC_3, KC_HASH }, /* 3 and # -> 3 and # */ + [KC_4] = { KC_4, KC_DLR }, /* 4 and $ -> 4 and $ */ + [KC_5] = { KC_5, KC_PERC }, /* 5 and % -> 5 and % */ + [KC_6] = { KC_6, KC_EQL }, /* 6 and & -> 6 and ^ */ + [KC_7] = { KC_7, KC_CIRC }, /* 7 and ' -> 7 and & */ + [KC_8] = { KC_8, KC_DQT }, /* 8 and ( -> 8 and * */ + [KC_9] = { KC_9, KC_ASTR }, /* 9 and ) -> 9 and ( */ + [KC_0] = { KC_0, KC_LPRN }, /* 0 and (no assign) -> 0 and ) */ + [KC_MINS] = { KC_MINS, S(KC_RO) }, /* - and = -> - and _ */ + [KC_EQL] = { KC_UNDS, KC_COLN }, /* ^ and ~ -> = and + */ + [KC_LBRC] = { KC_RBRC, KC_RCBR }, /* @ and ` -> [ and { */ + [KC_RBRC] = { KC_BSLS, KC_PIPE }, /* [ and { -> ] and } */ + [KC_BSLS] = { KC_JYEN, S(KC_JYEN) }, /* ] and } -> / and | */ + [KC_NUHS] = { KC_NUHS, S(KC_NUHS) }, /* (no assign) */ + [KC_SCLN] = { KC_SCLN, KC_QUOT }, /* ; and + -> ; and : */ + [KC_QUOT] = { KC_AMPR, KC_AT }, /* : and * -> ' and " */ + [KC_GRV] = { KC_LCBR, KC_PLUS }, /* (no assign) -> ` and ~ */ + [KC_COMM] = { KC_COMM, KC_LT }, /* , and < -> , and < */ + [KC_DOT] = { KC_DOT, KC_GT }, /* . and > -> . and > */ + [KC_SLSH] = { KC_SLSH, KC_QUES }, /* / and ? -> / and ? */ +}; + +#endif diff --git a/keyboards/hhkb/keymaps/shela/readme.md b/keyboards/hhkb/keymaps/shela/readme.md new file mode 100644 index 000000000..cf5f29169 --- /dev/null +++ b/keyboards/hhkb/keymaps/shela/readme.md @@ -0,0 +1,14 @@ +# Shela's HHKB Layout + +Layer 0: US Layout +Layer 1: Pseudo US Layout +Layer 2: Dvorak Layout +Layer 3: Mouse +Layer 4: Tenkey +Layer 5: HHKB Fn Key +Layer 6: SpaceFN + +## Pseudo US Layout + +On japanese Windows, HHKB Professional 2 US layout model recognized wrongly as JIS layout without changing OS settings. +But, you can use HHKB like a US layout keyboard as it is. From c9272fee083d274c11bab0d8ec5520b54961f7fa Mon Sep 17 00:00:00 2001 From: shela Date: Fri, 12 Aug 2016 21:33:32 +0900 Subject: [PATCH 30/34] add new line --- keyboards/hhkb/keymaps/shela/readme.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/keyboards/hhkb/keymaps/shela/readme.md b/keyboards/hhkb/keymaps/shela/readme.md index cf5f29169..2317e880f 100644 --- a/keyboards/hhkb/keymaps/shela/readme.md +++ b/keyboards/hhkb/keymaps/shela/readme.md @@ -1,12 +1,12 @@ # Shela's HHKB Layout -Layer 0: US Layout -Layer 1: Pseudo US Layout -Layer 2: Dvorak Layout -Layer 3: Mouse -Layer 4: Tenkey -Layer 5: HHKB Fn Key -Layer 6: SpaceFN +Layer 0: US Layout +Layer 1: Pseudo US Layout +Layer 2: Dvorak Layout +Layer 3: Mouse +Layer 4: Tenkey +Layer 5: HHKB Fn Key +Layer 6: SpaceFN ## Pseudo US Layout From 11e23fd3fdbe86ff85b2be7783c46d4360b07360 Mon Sep 17 00:00:00 2001 From: shela Date: Fri, 12 Aug 2016 21:45:36 +0900 Subject: [PATCH 31/34] add new line --- keyboards/hhkb/keymaps/shela/readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/keyboards/hhkb/keymaps/shela/readme.md b/keyboards/hhkb/keymaps/shela/readme.md index 2317e880f..5a06a8363 100644 --- a/keyboards/hhkb/keymaps/shela/readme.md +++ b/keyboards/hhkb/keymaps/shela/readme.md @@ -10,5 +10,5 @@ Layer 6: SpaceFN ## Pseudo US Layout -On japanese Windows, HHKB Professional 2 US layout model recognized wrongly as JIS layout without changing OS settings. +On japanese Windows, HHKB Professional 2 US layout model recognized wrongly as JIS layout without changing OS settings. But, you can use HHKB like a US layout keyboard as it is. From b98d47abe544c68ffba745b6643a777f8f61a03c Mon Sep 17 00:00:00 2001 From: Gergely Nagy Date: Fri, 12 Aug 2016 16:36:07 +0200 Subject: [PATCH 32/34] ergodox: Update my keymap to v1.5 Major changes include: * The **1HAND** layer has been removed. * A `Delete` key is now available on the right thumb cluster. * The **ADORE** layer received a major update, see the updated layout image. * It is now possible to enable automatic logging for the **ADORE** layer, by setting the `ADORE_AUTOLOG` makefile variable to `yes` when compiling the keymap. It is off by default. * The `~` key and the `Media Next/Prev` key have been swapped on the **base** layer. * On the **ARROW** layer, `Backspace` has been replaced by `Enter`. * There is some experimental support for entering Unicode symbols. Signed-off-by: Gergely Nagy --- keyboards/ergodox/keymaps/algernon/Makefile | 7 + .../keymaps/algernon/images/adore-layer.png | Bin 95615 -> 93748 bytes .../keymaps/algernon/images/base-layer.png | Bin 95654 -> 95222 bytes .../algernon/images/one-handed-layer.png | Bin 91140 -> 0 bytes keyboards/ergodox/keymaps/algernon/keymap.c | 2422 ++++++++--------- keyboards/ergodox/keymaps/algernon/readme.md | 52 +- 6 files changed, 1244 insertions(+), 1237 deletions(-) delete mode 100644 keyboards/ergodox/keymaps/algernon/images/one-handed-layer.png diff --git a/keyboards/ergodox/keymaps/algernon/Makefile b/keyboards/ergodox/keymaps/algernon/Makefile index 6bf3976b9..00194857a 100644 --- a/keyboards/ergodox/keymaps/algernon/Makefile +++ b/keyboards/ergodox/keymaps/algernon/Makefile @@ -8,10 +8,17 @@ CONSOLE_ENABLE = no TAP_DANCE_ENABLE = yes KEYLOGGER_ENABLE ?= yes +ADORE_AUTOLOG ?= no + ifeq (${FORCE_NKRO},yes) OPT_DEFS += -DFORCE_NKRO endif +ifeq (${ADORE_AUTOLOG},yes) +KEYLOGGER_ENABLE = yes +OPT_DEFS += -DADORE_AUTOLOG +endif + ifeq (${KEYLOGGER_ENABLE},yes) OPT_DEFS += -DKEYLOGGER_ENABLE CONSOLE_ENABLE = yes diff --git a/keyboards/ergodox/keymaps/algernon/images/adore-layer.png b/keyboards/ergodox/keymaps/algernon/images/adore-layer.png index 3df68ea53da8a4be15cfbfe4dac5f0623bc0d0ad..44ad8a1eb7560b552aa6010b2051fcabb00f01cd 100644 GIT binary patch literal 93748 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%0DPqMz0r_IP%FIb(9H>o~Ju1)l8F9@szSiQao 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 diff --git a/keyboards/ergodox/keymaps/algernon/images/base-layer.png b/keyboards/ergodox/keymaps/algernon/images/base-layer.png index 7b25a05b3afa30354fa240925b959233b88fea96..da159fbe2ec5e8e084fee3b9ae934b8c1f5aadab 100644 GIT binary patch literal 95222 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

{4mc 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 z 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.pressed) - return MACRO_NONE; - - layer_off (HUN); - - if (keyboard_report->mods & MOD_BIT (KC_LSFT)) { - hold_shift = 1; - need_shift = 1; - unregister_code (KC_LSFT); - } - if ((get_oneshot_mods () & MOD_BIT(KC_LSFT)) && !has_oneshot_mods_timed_out ()) { - need_shift = 1; - hold_shift = 0; - unregister_code (KC_LSFT); - } - - clear_oneshot_mods (); - - register_code (KC_RALT); - unregister_code (KC_RALT); - if (accent == (KC_DQT)) { - register_code (KC_RSFT); - } - register_code (accent); - unregister_code (accent); - if (need_shift && accent != (KC_DQT)) { - register_code (KC_RSFT); - } else if (accent == (KC_DQT) && !need_shift) { - unregister_code (KC_RSFT); - } - register_code (hun_char); - unregister_code (hun_char); - if (need_shift || accent == (KC_DQT)) - unregister_code (KC_RSFT); - if (hold_shift) - register_code (KC_LSFT); - - return MACRO_NONE; -} - -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; - - 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; - } - - register_code (kc); - unregister_code (kc); - } -} - -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) || - ((get_oneshot_mods() & MOD_BIT(KC_LSFT)) && !has_oneshot_mods_timed_out())) { - int oneshot = ((get_oneshot_mods() & MOD_BIT(KC_LSFT)) && !has_oneshot_mods_timed_out()); - - if (oneshot) - clear_oneshot_mods (); - unregister_code (KC_LSFT); - - register_code (KC_MPRV); - unregister_code (KC_MPRV); - - if (!oneshot) - register_code (KC_LSFT); - } else { - return MACRO (T(MNXT), END); - } - } - break; - - /* Hungarian layer */ - case HU_AA: - return ang_do_hun (record, KC_QUOT, KC_A); - case HU_OO: - return ang_do_hun (record, KC_QUOT, KC_O); - case HU_EE: - return ang_do_hun (record, KC_QUOT, KC_E); - case HU_UU: - return ang_do_hun (record, KC_QUOT, KC_U); - case HU_II: - return ang_do_hun (record, KC_QUOT, KC_I); - case HU_OE: - return ang_do_hun (record, KC_DQT, KC_O); - case HU_UE: - return ang_do_hun (record, KC_DQT, KC_U); - case HU_OEE: - return ang_do_hun (record, KC_EQL, KC_O); - case HU_UEE: - return ang_do_hun (record, KC_EQL, KC_U); - - /* Mouse movement */ - case A_MUL: - 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); - } - mousekey_send(); - break; - - case A_MUR: - 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); - } - mousekey_send(); - break; - - case A_MDL: - 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); - } - mousekey_send(); - break; - - case A_MDR: - 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); - } - mousekey_send(); - break; - - /* Plover base */ - case A_PLVR: - toggle_steno(record->event.pressed); - break; - - /* GUI & AppSel */ - case A_GUI: - if (record->event.pressed) { - register_code (KC_LGUI); - if (record->tap.count && !record->tap.interrupted) { - if (record->tap.count >= 2) { - register_code (KC_W); - layer_on (APPSEL); - set_oneshot_layer (APPSEL, ONESHOT_START); - } - } else { - record->tap.count = 0; - } - gui_timer = 0; - } else { - if (record->tap.count >= 2) - { - unregister_code (KC_W); - clear_oneshot_layer_state (ONESHOT_PRESSED); - } - gui_timer = timer_read (); - } - break; - - case APP_SLK: - return MACRODOWN(T(S), T(L), T(A), T(C), T(K), T(ENT), END); - - case APP_EMCS: - return MACRODOWN(T(E), T(M), T(A), T(C), T(S), T(ENT), END); - - case APP_TERM: - return MACRODOWN(T(T), T(E), T(R), T(M), T(ENT), END); - - case APP_CHRM: - return MACRODOWN(T(C), T(H), T(R), T(O), T(M), T(ENT), END); - - case APP_MSIC: - 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: - ang_handle_kf (record, id); - break; - - /* 1HAND layout */ - case OH_BASE: - if (record->event.pressed) { - oh_base_timer = timer_read (); - } else { - if (timer_elapsed (oh_base_timer) > TAPPING_TERM) { - layer_clear (); - } else { - return MACRO (T(APP), END); - } - } - break; - - case OH_BSSPC: - if (record->event.pressed) { - oh_bsspc_timer = timer_read (); - } else { - if (timer_elapsed (oh_bsspc_timer) > TAPPING_TERM) { - return MACRO (T(BSPC), END); - } else { - return MACRO (T(SPC), END); - } - } - break; - - case OH_ENTSFT: - if (record->event.pressed) { - oh_entsft_timer = timer_read (); - } else { - if (timer_elapsed (oh_entsft_timer) > TAPPING_TERM) { - if (keyboard_report->mods & MOD_BIT(KC_LSFT)) - unregister_code (KC_LSFT); - else - register_code (KC_LSFT); - } else { - return MACRO (T(ENT), END); - } - } - break; - - case OH_LEFT: - if (record->event.pressed) { - layer_move (OHLFT); - oh_left_blink = 1; - oh_left_blink_timer = timer_read (); - ergodox_right_led_1_on (); - } - break; - - case OH_RIGHT: - if (record->event.pressed) { - layer_move (OHRGT); - oh_right_blink = 1; - oh_right_blink_timer = timer_read (); - ergodox_right_led_3_on (); - } - break; - } - return MACRO_NONE; -}; - -uint8_t is_adore = 0; - -// Runs just one time when the keyboard initializes. -void matrix_init_user(void) { - uint8_t dl; - - ergodox_led_all_on(); - for (int i = LED_BRIGHTNESS_HI; i > LED_BRIGHTNESS_LO; i--) { - ergodox_led_all_set (i); - wait_ms (5); - } - wait_ms(1000); - for (int i = LED_BRIGHTNESS_LO; i > 0; i--) { - ergodox_led_all_set (i); - wait_ms (10); - } - ergodox_led_all_off(); - - if (!eeconfig_is_enabled()) - eeconfig_init(); - dl = eeconfig_read_default_layer (); - if (dl == (1UL << ADORE)) - is_adore = 1; -}; - -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); -} - -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); - } -} - -#define TAP_ONCE(code) \ - register_code (code); \ - unregister_code (code) - -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) { - 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; - layer_off (ARRW); - return; - } - - td_ta->finished_once = true; - if (state->count == 1 && !state->pressed) { - register_code (KC_TAB); - td_ta->sticky = false; - td_ta->layer_toggle = false; - } else { - td_ta->layer_toggle = true; - layer_on (ARRW); - td_ta->sticky = (state->count == 2); - } -} - -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; -} - -const 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_TA] = { - .fn = { NULL, ang_tap_dance_ta_finished, ang_tap_dance_ta_reset }, - .user_data = (void *)&((td_ta_state_t) { false, false, false }) - } -}; - -// Runs constantly in the background, in a loop. -void matrix_scan_user(void) { - uint8_t layer = biton32(layer_state); - - if (gui_timer && timer_elapsed (gui_timer) > TAPPING_TERM) - unregister_code (KC_LGUI); - - if (layer != OHLFT) - oh_left_blink = 0; - if (layer != OHRGT) - oh_right_blink = 0; - - if (layer == HUN) { - ergodox_right_led_2_on(); - ergodox_right_led_3_on(); - } else if (layer == NMDIA) { - ergodox_right_led_1_on(); - ergodox_right_led_2_on(); - } else if (layer == PLVR) { - ergodox_right_led_1_on (); - ergodox_right_led_2_on (); - ergodox_right_led_3_on (); - } else if (layer == ADORE) { - ergodox_right_led_1_on (); - ergodox_right_led_2_on (); - ergodox_right_led_3_on (); - - ergodox_right_led_2_set (LED_BRIGHTNESS_HI); - } - - if (layer == OHLFT || layer == OHRGT) { - ergodox_right_led_2_on(); - - if (oh_left_blink) { - if (timer_elapsed (oh_left_blink_timer) > OH_BLINK_INTERVAL) { - if ((keyboard_report->mods & MOD_BIT(KC_LSFT)) == 0) - ergodox_right_led_1_off (); - } - if (timer_elapsed (oh_left_blink_timer) > OH_BLINK_INTERVAL * 2) { - ergodox_right_led_1_on (); - oh_left_blink_timer = timer_read (); - } - } - - if (oh_right_blink) { - if (timer_elapsed (oh_right_blink_timer) > OH_BLINK_INTERVAL) { - if ((keyboard_report->mods & MOD_BIT(KC_LCTRL)) == 0) - ergodox_right_led_3_off (); - } - if (timer_elapsed (oh_right_blink_timer) > OH_BLINK_INTERVAL * 2) { - ergodox_right_led_3_on (); - oh_right_blink_timer = timer_read (); - } - } - } - - 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 != OHLFT && layer != NMDIA && layer != PLVR && layer != ADORE) - ergodox_right_led_1_off (); - } - - if (keyboard_report->mods & MOD_BIT(KC_LALT) || - ((get_oneshot_mods() & MOD_BIT(KC_LALT)) && !has_oneshot_mods_timed_out())) { - ergodox_right_led_2_set (LED_BRIGHTNESS_HI); - ergodox_right_led_2_on (); - } else { - ergodox_right_led_2_set (LED_BRIGHTNESS_LO); - if (layer != OHRGT && layer != HUN && layer != OHLFT && layer != NMDIA && layer != PLVR && layer != ADORE) - ergodox_right_led_2_off (); - } - - if (keyboard_report->mods & MOD_BIT(KC_LCTRL) || - ((get_oneshot_mods() & MOD_BIT(KC_LCTRL)) && !has_oneshot_mods_timed_out())) { - ergodox_right_led_3_set (LED_BRIGHTNESS_HI); - ergodox_right_led_3_on (); - } else { - ergodox_right_led_3_set (LED_BRIGHTNESS_LO); - if (layer != OHRGT && layer != HUN && layer != PLVR && layer != ADORE) - ergodox_right_led_3_off (); - } - - LEADER_DICTIONARY() { - leading = false; - leader_end (); - -#if KEYLOGGER_ENABLE - SEQ_ONE_KEY (KC_D) { - ergodox_led_all_on(); - wait_ms(100); - ergodox_led_all_off(); - log_enable = !log_enable; - } -#endif - - SEQ_ONE_KEY (KC_T) { - time_travel = !time_travel; - } - - SEQ_ONE_KEY (KC_U) { - ang_do_unicode (); - } - - SEQ_ONE_KEY (KC_V) { - SEND_STRING (QMK_KEYBOARD "/" QMK_KEYMAP " @ (" QMK_VERSION "/" KEYMAP_VERSION ")"); - } - - 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); - } - - SEQ_ONE_KEY (KC_Y) { - uint16_t codes[] = {KC_BSLS, KC_O, KC_SLSH, 0}; - ang_tap (codes); - } - - SEQ_ONE_KEY (KC_S) { - ang_do_unicode (); TAP_ONCE (KC_A); TAP_ONCE (KC_F); TAP_ONCE (KC_SPC); - 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); - 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); - } - - SEQ_TWO_KEYS (KC_W, KC_M) { - register_code (KC_LALT); - register_code (KC_F2); - unregister_code (KC_F2); - unregister_code (KC_LALT); - - 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); - register_code (KC_LGUI); - register_code (KC_UP); - unregister_code (KC_UP); - unregister_code (KC_LGUI); - } - - SEQ_ONE_KEY (KC_A) { - if (is_adore == 0) { - default_layer_and (0); - default_layer_or ((1UL << ADORE)); - eeconfig_update_default_layer ((1UL << ADORE)); - is_adore = 1; - - ergodox_led_all_off (); - ergodox_right_led_3_on (); - wait_ms (100); - ergodox_right_led_2_on (); - wait_ms (100); - ergodox_right_led_3_off (); - ergodox_right_led_1_on (); - wait_ms (100); - ergodox_right_led_2_off (); - wait_ms (100); - ergodox_right_led_1_off (); - } else { - is_adore = 0; - default_layer_and (0); - default_layer_or (1UL << BASE); - eeconfig_update_default_layer ((1UL << BASE)); - - ergodox_led_all_off (); - ergodox_right_led_1_on (); - wait_ms (100); - ergodox_right_led_2_on (); - wait_ms (100); - ergodox_right_led_1_off (); - ergodox_right_led_3_on (); - wait_ms (100); - ergodox_right_led_2_off (); - wait_ms (100); - ergodox_right_led_3_off (); - } - } - } -} - -static uint16_t last4[4]; - -bool process_record_user (uint16_t keycode, keyrecord_t *record) { -#if KEYLOGGER_ENABLE - uint8_t layer = biton32(layer_state); - - if (log_enable && layer == BASE) { - xprintf ("KL: col=%d, row=%d\n", record->event.key.col, - record->event.key.row); - } -#endif - - if (time_travel && !record->event.pressed) { - uint8_t p; - - // shift cache one to the left - for (p = 0; p < 3; p++) { - last4[p] = last4[p + 1]; - } - 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); - 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); - - return false; - } - } - - return true; -} + +/* Layers */ + +enum { + BASE = 0, + ADORE, + ARRW, + APPSEL, + HUN, + NMDIA, + PLVR, +}; + +/* Macros */ + +enum { + NONE = 0, + // Buttons that do extra stuff + A_GUI, + A_PLVR, + A_ESC, + A_MPN, + + // Function / number keys + KF_1, // 1, F1 + KF_2, // 2, F2 + KF_3, // ... + KF_4, + KF_5, + KF_6, + KF_7, + KF_8, + KF_9, + KF_10, + KF_11, // =, F11 + + // Application select keys + APP_SLK, // Slack + APP_EMCS, // Emacs + APP_TERM, // Terminal + APP_CHRM, // Chrome + APP_MSIC, // Music + + // Diagonal mouse movement + A_MUL, + A_MUR, + A_MDL, + A_MDR, + + // Hungarian layer keys + HU_AA, // Á + HU_OO, // Ó + HU_EE, // É + HU_UU, // Ú + HU_II, // Í + HU_OE, // Ö + HU_UE, // Ü + HU_OEE, // Ő + HU_UEE, // Ű +}; + +/* Fn keys */ + +enum { + F_BSE = 0, + F_HUN, + F_GUI, + F_SFT, + F_ALT, + F_CTRL +}; + +/* Custom keycodes */ + +enum { + CT_CLN = 0, + CT_MNS, + CT_TA, + CT_LBP, + CT_RBP +}; + +/* States & timers */ + +uint16_t gui_timer = 0; + +uint16_t kf_timers[12]; + +#if KEYLOGGER_ENABLE +bool log_enable = false; +#endif + +bool time_travel = false; + +/* The Keymap */ + +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 | + * |-----------+------+------+------+------+-------------| |------+------+------+------+------+------+-----------| + * | ~ | ' | , | . | 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 | + * `-----------+------+------+------+------+-------------' `-------------+------+------+------+------+-----------' + * | | | | | : | | - | | | | | + * `-----------------------------------' `-----------------------------------' + * ,-------------. ,-------------. + * | LAlt | GUI | | MDIA | Del | + * ,------|------|------| |------+------+------. + * | | | Ctrl | | LEAD | | | + * |Backsp|LShift|------| |------| Enter| Space| + * | | | ESC | | HUN | | | + * `--------------------' `--------------------' + */ +[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 +,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_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) + + // 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_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 + + ,OSL(NMDIA),KC_DEL + ,KC_LEAD + ,F(F_HUN) ,KC_ENT ,KC_SPC + ), + +/* 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 | + * |-----------+------+------+------+------+-------------| |------+------+------+------+------+------+-----------| + * | `~ | X | W | K | L | M | ( | | ) | F | H | C | P | Y | \ | + * |-----------+------+------+------+------+------| [ | | ] |------+------+------+------+------+-----------| + * | Tab/Arrow | A | O | E | I | U |------| |------| D | R | T | N | S | = | + * |-----------+------+------+------+------+------| | | |------+------+------+------+------+-----------| + * | | Z | Q | ' | , | . | : | | - | B | G | V | J | / | | + * `-----------+------+------+------+------+-------------' `-------------+------+------+------+------+-----------' + * | | | | | | | | | | | | + * `-----------------------------------' `-----------------------------------' + * ,-------------. ,-------------. + * | LAlt | GUI | | MDIA | Del | + * ,------|------|------| |------+------+------. + * | | | Ctrl | | HUN | | | + * |Backsp|LShift|------| |------| Enter| Space| + * | | | ESC | | LEAD | | | + * `--------------------' `--------------------' + */ +[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) +,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) + + // 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_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_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO + + ,OSL(NMDIA),KC_DEL + ,F(F_HUN) + ,KC_LEAD ,KC_ENT ,KC_SPC + ), + +/* Keymap 2: Arrow layer + * + * ,-----------------------------------------------------. ,-----------------------------------------------------. + * | | | | | | | | | | | | | | | | + * |-----------+------+------+------+------+-------------| |------+------+------+------+------+------+-----------| + * | | | | | | | | | | | Home | Up | End | | | + * |-----------+------+------+------+------+------| | | |------+------+------+------+------+-----------| + * | | | | | | |------| |------| | Left | Down | Rght | | | + * |-----------+------+------+------+------+------| | | |------+------+------+------+------+-----------| + * | | | | | | | | | | | | | | | | + * `-----------+------+------+------+------+-------------' `-------------+------+------+------+------+-----------' + * | | | | | | | | | | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | | | + * | Enter| |------| |------| PgUp | PgDn | + * | | | | | | | | + * `--------------------' `--------------------' + */ + +[ARRW] = 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 ,KC_TRNS ,KC_TRNS ,KC_TRNS +,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS +,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS +,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS + + ,KC_TRNS ,KC_TRNS + ,KC_TRNS + ,KC_ENT ,KC_TRNS ,KC_TRNS + + // right hand + ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS + ,KC_TRNS ,KC_TRNS ,KC_HOME ,KC_UP ,KC_END ,KC_TRNS ,KC_TRNS + ,KC_TRNS ,KC_LEFT ,KC_DOWN ,KC_RGHT ,KC_TRNS ,KC_TRNS + ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS + ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS + + ,KC_TRNS ,KC_TRNS + ,KC_TRNS + ,KC_TRNS ,KC_PGUP ,KC_PGDN + ), + +/* Keymap 3: Application select layer + * + * ,-----------------------------------------------------. ,-----------------------------------------------------. + * | |Music |Slack |Emacs |Term |Chrome| | | | | | | | | | + * |-----------+------+------+------+------+-------------| |------+------+------+------+------+------+-----------| + * | | | | | | | | | | | | | | | | + * |-----------+------+------+------+------+------| | | |------+------+------+------+------+-----------| + * | | | | | | |------| |------| | | | | | | + * |-----------+------+------+------+------+------| | | |------+------+------+------+------+-----------| + * | | | | | | | | | | | | | | | | + * `-----------+------+------+------+------+-------------' `-------------+------+------+------+------+-----------' + * | | | | | | | | | | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | | | + * | | |------| |------| | | + * | | | | | | | | + * `--------------------' `--------------------' + */ + +[APPSEL] = KEYMAP( +// left hand + KC_TRNS ,M(APP_MSIC),M(APP_SLK),M(APP_EMCS),M(APP_TERM),M(APP_CHRM),KC_TRNS +,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS +,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS +,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,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_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_TRNS + ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS + ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS + ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS + ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS + + ,KC_TRNS ,KC_TRNS + ,KC_TRNS + ,KC_TRNS ,KC_TRNS ,KC_TRNS + ), + + +/* Keymap 4: Hungarian Layer + * + * ,-----------------------------------------------------. ,-----------------------------------------------------. + * | | | | | | | | | | | | | | | | + * |-----------+------+------+------+------+-------------| |------+------+------+------+------+------+-----------| + * | | | Ő | | Ű | | | | | | | | | | | + * |-----------+------+------+------+------+------| | | |------+------+------+------+------+-----------| + * | | Á | Ó | É | Ú | Í |------| |------| | | | | | | + * |-----------+------+------+------+------+------| | | |------+------+------+------+------+-----------| + * | | | Ö | | Ü | | | | | | | | | | | + * `-----------+------+------+------+------+-------------' `-------------+------+------+------+------+-----------' + * | | | | | | | | | | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | | | + * | | |------| |------| | | + * | | | | | BASE | | | + * `--------------------' `--------------------' + */ + +[HUN] = KEYMAP( +// left hand + KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO +,KC_NO ,KC_NO ,M(HU_OEE),KC_NO ,M(HU_UEE),KC_NO ,KC_NO +,KC_NO ,M(HU_AA),M(HU_OO) ,M(HU_EE),M(HU_UU) ,M(HU_II) +,KC_NO ,KC_NO ,M(HU_OE) ,KC_NO ,M(HU_UE) ,KC_NO ,KC_NO +,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO + + ,KC_NO ,KC_NO + ,KC_NO + ,KC_NO ,KC_TRNS ,KC_TRNS + + // right hand + ,KC_TRNS ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO + ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO + ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO + ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO + ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO + + ,KC_NO ,KC_NO + ,KC_NO + ,F(F_BSE),KC_TRNS ,KC_TRNS + ), + +/* Keymap 5: Navigation & Media layer + * + * ,-----------------------------------------------------. ,-----------------------------------------------------. + * | MS Slow | | | | | |ScrLCK| |ScrLCK| | | | | | | + * |-----------+------+------+------+------+-------------| |------+------+------+------+------+------+-----------| + * | MS Normal | | Home | Up | PgUp | | | |Scroll| |MsUpL | MsUp |MsUpR | |PrintScreen| + * |-----------+------+------+------+------+------| | | Up |------+------+------+------+------+-----------| + * | MS Fast | | Left | Down | Right| |------| |------| |MsLeft| MsDn |MsRght| | | + * |-----------+------+------+------+------+------| | |Scroll|------+------+------+------+------+-----------| + * | Play/Pause| | End | Down | PgDn | | | | Down | |MsDnL | MsDn |MsDnR | | Stop | + * `-----------+------+------+------+------+-------------' `-------------+------+------+------+------+-----------' + * | | | | | | | | | | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | Mute | VlUp | | BASE | MClk | + * ,------|------|------| |------+------+------. + * | | | VlDn | | Prev |Left |Right | + * | SPC | Enter|------| |------| Click| Click| + * | | | ESC | | Next | | | + * `--------------------' `--------------------' + */ +[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 +,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) + + // right hand + ,LGUI(KC_L),KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO + ,KC_WH_U ,KC_NO ,M(A_MUL),KC_MS_U ,M(A_MUR),KC_NO ,KC_PSCR + ,KC_NO ,KC_MS_L ,KC_MS_D ,KC_MS_R ,KC_NO ,KC_NO + ,KC_WH_D ,KC_NO ,M(A_MDL),KC_MS_D ,M(A_MDR),KC_NO ,KC_MSTP + ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO + + ,KC_TRNS ,KC_MS_BTN3 + ,KC_MPRV + ,KC_MNXT ,KC_BTN1 ,KC_BTN2 + ), + +/* Keymap 6: Steno for Plover + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | | | | | | BASE | | | | | | | | | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | # | # | # | # | # | # | | # | # | # | # | # | # | # | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | T | P | H | |------| |------| | F | P | L | T | D | + * |--------+ S +------+------+------+ * | * | | * | * +------+------+------+------+--------| + * | | | K | W | R | | | | | | R | B | G | S | Z | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | | | | | | | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | | | + * | A | O |------| |------| E | U | + * | | | | | | | | + * `--------------------' `--------------------' + */ + +[PLVR] = KEYMAP( +// left hand +KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, M(A_PLVR), +KC_NO, PV_NUM, PV_NUM, PV_NUM, PV_NUM, PV_NUM, PV_NUM, +KC_NO, PV_LS, PV_LT, PV_LP, PV_LH, PV_STAR, +KC_NO, PV_LS, PV_LK, PV_LW, PV_LR, PV_STAR, PV_STAR, +KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, + KC_NO, + PV_A, PV_O, KC_NO, + + // right hand + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + PV_NUM, PV_NUM, PV_NUM, PV_NUM, PV_NUM, PV_NUM, PV_NUM, + PV_STAR, PV_RF, PV_RP, PV_RL, PV_RT, PV_RD, + PV_STAR, PV_STAR, PV_RR, PV_RB, PV_RG, PV_RS, PV_RZ, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, + KC_NO, + KC_NO,PV_E, PV_U + ), + +}; + +const uint16_t PROGMEM fn_actions[] = { + [F_BSE] = ACTION_LAYER_CLEAR(ON_PRESS) + ,[F_HUN] = ACTION_LAYER_INVERT(HUN, ON_PRESS) + ,[F_GUI] = ACTION_MACRO_TAP(A_GUI) + ,[F_SFT] = ACTION_MODS_ONESHOT (MOD_LSFT) + ,[F_ALT] = ACTION_MODS_ONESHOT (MOD_LALT) + ,[F_CTRL] = ACTION_MODS_ONESHOT (MOD_LCTL) +}; + +void toggle_steno(int pressed) +{ + uint8_t layer = biton32(layer_state); + + if (pressed) { + if (layer != PLVR) layer_on(PLVR); else layer_off(PLVR); + + register_code(PV_LP); + register_code(PV_LH); + register_code(PV_LR); + register_code(PV_O); + register_code(PV_RL); + register_code(PV_RG); + } else { + unregister_code(PV_LP); + unregister_code(PV_LH); + unregister_code(PV_LR); + unregister_code(PV_O); + unregister_code(PV_RL); + unregister_code(PV_RG); + } +} + +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; + + if (!record->event.pressed) + return MACRO_NONE; + + layer_off (HUN); + + if (keyboard_report->mods & MOD_BIT (KC_LSFT)) { + hold_shift = 1; + need_shift = 1; + unregister_code (KC_LSFT); + } + if ((get_oneshot_mods () & MOD_BIT(KC_LSFT)) && !has_oneshot_mods_timed_out ()) { + need_shift = 1; + hold_shift = 0; + unregister_code (KC_LSFT); + } + + clear_oneshot_mods (); + + register_code (KC_RALT); + unregister_code (KC_RALT); + if (accent == (KC_DQT)) { + register_code (KC_RSFT); + } + register_code (accent); + unregister_code (accent); + if (need_shift && accent != (KC_DQT)) { + register_code (KC_RSFT); + } else if (accent == (KC_DQT) && !need_shift) { + unregister_code (KC_RSFT); + } + register_code (hun_char); + unregister_code (hun_char); + if (need_shift || accent == (KC_DQT)) + unregister_code (KC_RSFT); + if (hold_shift) + register_code (KC_LSFT); + + return MACRO_NONE; +} + +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; + + 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; + } + + register_code (kc); + unregister_code (kc); + } +} + +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) || + ((get_oneshot_mods() & MOD_BIT(KC_LSFT)) && !has_oneshot_mods_timed_out())) { + int oneshot = ((get_oneshot_mods() & MOD_BIT(KC_LSFT)) && !has_oneshot_mods_timed_out()); + + if (oneshot) + clear_oneshot_mods (); + unregister_code (KC_LSFT); + + register_code (KC_MPRV); + unregister_code (KC_MPRV); + + if (!oneshot) + register_code (KC_LSFT); + } else { + return MACRO (T(MNXT), END); + } + } + break; + + /* Hungarian layer */ + case HU_AA: + return ang_do_hun (record, KC_QUOT, KC_A); + case HU_OO: + return ang_do_hun (record, KC_QUOT, KC_O); + case HU_EE: + return ang_do_hun (record, KC_QUOT, KC_E); + case HU_UU: + return ang_do_hun (record, KC_QUOT, KC_U); + case HU_II: + return ang_do_hun (record, KC_QUOT, KC_I); + case HU_OE: + return ang_do_hun (record, KC_DQT, KC_O); + case HU_UE: + return ang_do_hun (record, KC_DQT, KC_U); + case HU_OEE: + return ang_do_hun (record, KC_EQL, KC_O); + case HU_UEE: + return ang_do_hun (record, KC_EQL, KC_U); + + /* Mouse movement */ + case A_MUL: + 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); + } + mousekey_send(); + break; + + case A_MUR: + 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); + } + mousekey_send(); + break; + + case A_MDL: + 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); + } + mousekey_send(); + break; + + case A_MDR: + 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); + } + mousekey_send(); + break; + + /* Plover base */ + case A_PLVR: + toggle_steno(record->event.pressed); + break; + + /* GUI & AppSel */ + case A_GUI: + if (record->event.pressed) { + register_code (KC_LGUI); + if (record->tap.count && !record->tap.interrupted) { + if (record->tap.count >= 2) { + register_code (KC_W); + layer_on (APPSEL); + set_oneshot_layer (APPSEL, ONESHOT_START); + } + } else { + record->tap.count = 0; + } + gui_timer = 0; + } else { + if (record->tap.count >= 2) + { + unregister_code (KC_W); + clear_oneshot_layer_state (ONESHOT_PRESSED); + } + gui_timer = timer_read (); + } + break; + + case APP_SLK: + return MACRODOWN(T(S), T(L), T(A), T(C), T(K), T(ENT), END); + + case APP_EMCS: + 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); + + case APP_CHRM: + return MACRODOWN(T(C), T(H), T(R), T(O), T(M), T(ENT), END); + + case APP_MSIC: + 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: + ang_handle_kf (record, id); + break; + } + + return MACRO_NONE; +}; + +uint8_t is_adore = 0; + +// Runs just one time when the keyboard initializes. +void matrix_init_user(void) { + uint8_t dl; + + ergodox_led_all_on(); + for (int i = LED_BRIGHTNESS_HI; i > LED_BRIGHTNESS_LO; i--) { + ergodox_led_all_set (i); + wait_ms (5); + } + wait_ms(1000); + for (int i = LED_BRIGHTNESS_LO; i > 0; i--) { + ergodox_led_all_set (i); + wait_ms (10); + } + ergodox_led_all_off(); + + if (!eeconfig_is_enabled()) + eeconfig_init(); + 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); +} + +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); + } +} + +#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) { + 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; + layer_off (ARRW); + return; + } + + td_ta->finished_once = true; + if (state->count == 1 && !state->pressed) { + register_code (KC_TAB); + td_ta->sticky = false; + td_ta->layer_toggle = false; + } else { + td_ta->layer_toggle = true; + layer_on (ARRW); + td_ta->sticky = (state->count == 2); + } +} + +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; +} + +const 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_TA] = { + .fn = { NULL, ang_tap_dance_ta_finished, ang_tap_dance_ta_reset }, + .user_data = (void *)&((td_ta_state_t) { false, false, false }) + } + ,[CT_LBP] = ACTION_TAP_DANCE_FN (ang_tap_dance_bp_finished) + ,[CT_RBP] = ACTION_TAP_DANCE_FN (ang_tap_dance_bp_finished) +}; + +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); + + if (gui_timer && timer_elapsed (gui_timer) > TAPPING_TERM) + unregister_code (KC_LGUI); + + if (layer == HUN) { + ergodox_right_led_2_on(); + ergodox_right_led_3_on(); + } else if (layer == NMDIA) { + ergodox_right_led_1_on(); + ergodox_right_led_2_on(); + } else if (layer == PLVR) { + ergodox_right_led_1_on (); + ergodox_right_led_2_on (); + ergodox_right_led_3_on (); + } else if (layer == ADORE) { + ergodox_right_led_1_on (); + ergodox_right_led_2_on (); + ergodox_right_led_3_on (); + + ergodox_right_led_2_set (LED_BRIGHTNESS_HI); + } + + 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) + ergodox_right_led_1_off (); + } + + if (keyboard_report->mods & MOD_BIT(KC_LALT) || + ((get_oneshot_mods() & MOD_BIT(KC_LALT)) && !has_oneshot_mods_timed_out())) { + ergodox_right_led_2_set (LED_BRIGHTNESS_HI); + ergodox_right_led_2_on (); + } else { + ergodox_right_led_2_set (LED_BRIGHTNESS_LO); + if (layer != HUN && layer != NMDIA && layer != PLVR && layer != ADORE) + ergodox_right_led_2_off (); + } + + if (keyboard_report->mods & MOD_BIT(KC_LCTRL) || + ((get_oneshot_mods() & MOD_BIT(KC_LCTRL)) && !has_oneshot_mods_timed_out())) { + ergodox_right_led_3_set (LED_BRIGHTNESS_HI); + ergodox_right_led_3_on (); + } else { + ergodox_right_led_3_set (LED_BRIGHTNESS_LO); + if (layer != HUN && layer != PLVR && layer != ADORE) + ergodox_right_led_3_off (); + } + + LEADER_DICTIONARY() { + leading = false; + leader_end (); + +#if KEYLOGGER_ENABLE + SEQ_ONE_KEY (KC_D) { + ergodox_led_all_on(); + wait_ms(100); + ergodox_led_all_off(); + log_enable = !log_enable; + } +#endif + + 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); + } + + SEQ_ONE_KEY (KC_V) { + SEND_STRING (QMK_KEYBOARD "/" QMK_KEYMAP " @ (" QMK_VERSION "/" KEYMAP_VERSION ")"); + } + + 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); + } + + SEQ_ONE_KEY (KC_Y) { + uint16_t codes[] = {KC_BSLS, KC_O, KC_SLSH, 0}; + ang_tap (codes); + } + + SEQ_ONE_KEY (KC_S) { + ang_do_unicode (); TAP_ONCE (KC_A); TAP_ONCE (KC_F); TAP_ONCE (KC_SPC); + 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); + 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); + } + + SEQ_TWO_KEYS (KC_W, KC_M) { + register_code (KC_LALT); + register_code (KC_F2); + unregister_code (KC_F2); + unregister_code (KC_LALT); + + 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); + register_code (KC_LGUI); + register_code (KC_UP); + unregister_code (KC_UP); + unregister_code (KC_LGUI); + } + + SEQ_ONE_KEY (KC_A) { + if (is_adore == 0) { + default_layer_and (0); + default_layer_or ((1UL << ADORE)); + eeconfig_update_default_layer ((1UL << ADORE)); + is_adore = 1; + + ergodox_led_all_off (); + ergodox_right_led_3_on (); + wait_ms (100); + ergodox_right_led_2_on (); + wait_ms (100); + ergodox_right_led_3_off (); + ergodox_right_led_1_on (); + wait_ms (100); + 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); + eeconfig_update_default_layer ((1UL << BASE)); + + ergodox_led_all_off (); + ergodox_right_led_1_on (); + wait_ms (100); + ergodox_right_led_2_on (); + wait_ms (100); + ergodox_right_led_1_off (); + ergodox_right_led_3_on (); + wait_ms (100); + ergodox_right_led_2_off (); + wait_ms (100); + ergodox_right_led_3_off (); + } + } + } +} + +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; +} + +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); + } +#endif + + if (!process_record_ucis (keycode, record)) + return false; + + if (time_travel && !record->event.pressed) { + uint8_t p; + + // shift cache one to the left + for (p = 0; p < 3; p++) { + last4[p] = last4[p + 1]; + } + 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); + 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); + + return false; + } + } + + return true; +} diff --git a/keyboards/ergodox/keymaps/algernon/readme.md b/keyboards/ergodox/keymaps/algernon/readme.md index 6fe177511..26dfddbe6 100644 --- a/keyboards/ergodox/keymaps/algernon/readme.md +++ b/keyboards/ergodox/keymaps/algernon/readme.md @@ -16,11 +16,12 @@ Some of the things in the layout only work when one uses Spacemacs and GNOME und - [ADORE layer](#adore-layer) - [Hungarian layer](#hungarian-layer) - [Navigation and media layer](#navigation-and-media-layer) - - [One-handed layer](#one-handed-layer) - [Steno layer](#steno-layer) - [LED states](#led-states) * [Tools](#tools) - [Heatmap](#heatmap) +* [Special features](#special-features) + - [Unicode Symbol Input](#unicode-symbol-input) * [Building](#building) - [Using on Windows](#using-on-windows) * [Changelog](#changelog) @@ -38,7 +39,7 @@ At its core, this is a Dvorak layout, with some minor changes. The more interest * The `Shift`, `Alt`, and `Control` modifiers are one-shot. When tapped, they are considered active for the next key press only. When double tapped, they toggle on, until a third, single tap sometime later. When held, they act as expected. My usual pattern is that I use these for the next keypress only, so this behaviour is perfect. If I need them held, I'll just double-tap. * 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 **1Hand** and **STENO** keys are toggles. +* 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. * Tapping the `:` key once yields `:`, tapping it twice yields `;`. * The **Lead** key allows me to type in a sequence of keys, and trigger some actions: @@ -51,6 +52,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. ## ADORE layer @@ -74,20 +76,6 @@ On this layer, the accented characters are at the same position as their base va This layer is primarily for navigating with the cursor or the mouse, and some media things. -## One-handed layer - -[![One-handed layer](images/one-handed-layer.png)](http://www.keyboard-layout-editor.com/#/gists/edff2495135955b8963198dace7f7ece) - -The one-handed layer is used in situations where the right hand is occupied, by mousing around, for example. Tapping the `OTHER` key switches which side is active. For the most part, keys remain in their usual position. When the right half is active, keys are mirrored to the left half. - -The differences are as follows: - -* The `ESC` key has been moved to the bottom row, so the `OTHER` key is easier to tap. -* Most keys on the thumb cluster now have dual uses, and these do not change when switching sides: - - The `Space`/`Backspace` key sends `Space` on tap, `Backspace` when held for longer than a normal tap. - - The `Enter`/`Shift` key sends `Enter` on short-tap, `Shift` on long-tap. -* The `Apps`/`BASE` key can be used to go back to the base layer, by long-tapping it. A short-tap will send the `App` key, as usual. - ## Steno layer [![Steno layer for Plover](images/steno-layer.png)](http://www.keyboard-layout-editor.com/#/gists/401ef9a84369e47c57f9aedcf0a0d667) @@ -103,11 +91,25 @@ 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 [One-handed layer](#one-handed-layer) is active, the *green* LED is on and bright, and either the *red* or the *blue* one is going to slowly blink, depending on the currently active side. * 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. +# Special features + +## Unicode Symbol Input + +Once in the Unicode Symbol Input mode, one is able to type in symbol names, press `Enter` or `Space`, and get the Unicode symbol itself back. When in the mode, a capital `U` is printed first. Once the sequence is finished, all of it is erased by sending enough `Backspace` taps, and the firmware starts the OS-specific unicode input sequence. Then, it looks up the symbol name, and enters the associated code. If it is not found, it will just replay the pressed keycodes. + +The currently supported symbols are: + +- `snowman`: ☃ +- `kiss`: 😙 +- `rofl`: 🤣 +- `poop`: 💩 + +This is an experimental feature, and may or may not work reliably. + # Tools ## Heatmap @@ -133,14 +135,14 @@ To make my workflow easier, this layout is maintained in [its own repository][al $ git clone https://github.com/jackhumbert/qmk_firmware.git $ cd qmk_firmware $ git clone https://github.com/algernon/ergodox-layout.git \ - keyboards/ergodox_ez/keymaps/algernon-master -$ make KEYBOARD=ergodox_ez KEYMAP=algernon-master + keyboards/ergodox/keymaps/algernon-master +$ make keyboard=ergodox keymap=algernon-master ``` From time to time, updates may be submitted back to the QMK repository. If you are reading it there, you can build the firmware like any other firmware included with it (assuming you are in the root directory of the firmware): ``` -$ make KEYBOARD=ergodox_ez KEYMAP=algernon +$ make keyboard=ergodox keymap=algernon ``` ## Using on Windows @@ -149,6 +151,16 @@ The keymap default to forcing NKRO, which seems to upset Windows, and except the # Changelog +## v1.5 - 2016-08-12 + +* The **1HAND** layer has been removed. +* A `Delete` key is now available on the right thumb cluster. +* The [ADORE](#adore-layer) layer received a major update, see the layout image above. +* It is now possible to enable automatic logging for the [ADORE](#adore-layer) layer, by setting the `ADORE_AUTOLOG` makefile variable to `yes` when compiling the keymap. It is off by default. +* The `~` key and the `Media Next/Prev` key have been swapped on the [base layer](#base-layer). +* On the **ARROW** layer, `Backspace` has been replaced by `Enter`. +* There is some experimental support for entering Unicode symbols. + ## v1.4 - 2016-07-29 * When toggling the key logging on or off, the LEDs will do a little dance. From 098951905d527c19043de75ef262ac9679ec452b Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Fri, 12 Aug 2016 20:45:43 -0400 Subject: [PATCH 33/34] forces all ergodox keymaps to be ez on qmk.fm (were infinity) --- util/travis_compiled_push.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/util/travis_compiled_push.sh b/util/travis_compiled_push.sh index 27ab3cec6..c2a994ef0 100644 --- a/util/travis_compiled_push.sh +++ b/util/travis_compiled_push.sh @@ -7,6 +7,8 @@ rev=$(git rev-parse --short HEAD) git config --global user.name "Travis CI" git config --global user.email "jack.humb+travis.ci@gmail.com" +make all-keymaps keyboard=ergodox/ez AUTOGEN=true + find . -name ".build" | xargs rm -rf cd .. git clone https://$GH_TOKEN@github.com/jackhumbert/qmk.fm.git From 477f1ad0c8e360880d2b2db9abe4b000940a56bf Mon Sep 17 00:00:00 2001 From: Aaron Patterson Date: Fri, 12 Aug 2016 19:07:44 -0700 Subject: [PATCH 34/34] fix link to ErgoDox EZ This just fixes the readme link to the ErgoDox EZ directory --- readme.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/readme.md b/readme.md index 57629f8be..e2221e749 100644 --- a/readme.md +++ b/readme.md @@ -13,7 +13,7 @@ For an easy-to-read version of this document and the repository, check out [http * [Planck](/keyboards/planck/) * [Preonic](/keyboards/preonic/) * [Atomic](/keyboards/atomic/) -* [ErgoDox EZ](/keyboards/ergodox_ez/) +* [ErgoDox EZ](/keyboards/ergodox/ez/) * [Clueboard](/keyboards/clueboard/) * [Cluepad](/keyboards/cluepad/) @@ -31,7 +31,7 @@ The OLKB product firmwares are maintained by [Jack Humbert](https://github.com/j This is not a tiny project. While this is the main readme, there are many other files you might want to consult. Here are some points of interest: -* The readme for your own keyboard: This is found under `keyboards//`. So for the ErgoDox EZ, it's [here](keyboards/ergodox_ez/); for the Planck, it's [here](keyboards/planck/) and so on. +* The readme for your own keyboard: This is found under `keyboards//`. So for the ErgoDox EZ, it's [here](keyboards/ergodox/ez/); for the Planck, it's [here](keyboards/planck/) and so on. * The list of possible keycodes you can use in your keymap is actually spread out in a few different places: * [doc/keycode.txt](doc/keycode.txt) - an explanation of those same keycodes. * [quantum/keymap.h](quantum/keymap.h) - this is where the QMK-specific aliases are all set up. Things like the Hyper and Meh key, the Leader key, and all of the other QMK innovations. These are also explained and documented below, but `keymap.h` is where they're actually defined.