diff options
| -rw-r--r-- | keyboards/iris/keymaps/transmogrified/Readme.md | 9 | ||||
| -rw-r--r-- | keyboards/iris/keymaps/transmogrified/config.h | 22 | ||||
| -rw-r--r-- | keyboards/iris/keymaps/transmogrified/keymap.c | 330 |
3 files changed, 214 insertions, 147 deletions
diff --git a/keyboards/iris/keymaps/transmogrified/Readme.md b/keyboards/iris/keymaps/transmogrified/Readme.md new file mode 100644 index 000000000..96e27411d --- /dev/null +++ b/keyboards/iris/keymaps/transmogrified/Readme.md | |||
| @@ -0,0 +1,9 @@ | |||
| 1 | This layout is an attempt to make switching between the Iris and my laptop keyboard as seemless as possible. I switch caps lock and Ctrl/ESC on my laptop and I am able to adjust well with everything else... I still miss the Iris, but I am able to get work done. | ||
| 2 | |||
| 3 | I use the following lighting queues to indicate layer changes. | ||
| 4 | |||
| 5 | * Momentary toggled layer : LEDs brighten and dim when layer is released. | ||
| 6 | * Locked layer : LEDs breath. | ||
| 7 | * Config layer locked : LEDs off. | ||
| 8 | |||
| 9 | NOTE you will need to flash both sides to update the brightness_levels so that breathing works on both sides as expected. | ||
diff --git a/keyboards/iris/keymaps/transmogrified/config.h b/keyboards/iris/keymaps/transmogrified/config.h index 8df0824b7..12f2d7d6d 100644 --- a/keyboards/iris/keymaps/transmogrified/config.h +++ b/keyboards/iris/keymaps/transmogrified/config.h | |||
| @@ -1,5 +1,5 @@ | |||
| 1 | /* | 1 | /* |
| 2 | Copyright 2017 Danny Nguyen <danny@keeb.io> | 2 | Copyright 2017 Adam Roberts <adam+gh@bikuman.com> |
| 3 | 3 | ||
| 4 | This program is free software: you can redistribute it and/or modify | 4 | This program is free software: you can redistribute it and/or modify |
| 5 | it under the terms of the GNU General Public License as published by | 5 | it under the terms of the GNU General Public License as published by |
| @@ -15,11 +15,7 @@ You should have received a copy of the GNU General Public License | |||
| 15 | along with this program. If not, see <http://www.gnu.org/licenses/>. | 15 | along with this program. If not, see <http://www.gnu.org/licenses/>. |
| 16 | */ | 16 | */ |
| 17 | 17 | ||
| 18 | 18 | #pragma once | |
| 19 | #ifndef CONFIG_USER_H | ||
| 20 | #define CONFIG_USER_H | ||
| 21 | |||
| 22 | #include "config_common.h" | ||
| 23 | 19 | ||
| 24 | /* Use I2C or Serial, not both */ | 20 | /* Use I2C or Serial, not both */ |
| 25 | 21 | ||
| @@ -27,8 +23,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. | |||
| 27 | // #define USE_I2C | 23 | // #define USE_I2C |
| 28 | 24 | ||
| 29 | /* Select hand configuration */ | 25 | /* Select hand configuration */ |
| 30 | 26 | //#define MASTER_LEFT | |
| 31 | // #define MASTER_LEFT | ||
| 32 | #define MASTER_RIGHT | 27 | #define MASTER_RIGHT |
| 33 | // #define EE_HANDS | 28 | // #define EE_HANDS |
| 34 | 29 | ||
| @@ -39,4 +34,13 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. | |||
| 39 | #define RGBLIGHT_SAT_STEP 8 | 34 | #define RGBLIGHT_SAT_STEP 8 |
| 40 | #define RGBLIGHT_VAL_STEP 8 | 35 | #define RGBLIGHT_VAL_STEP 8 |
| 41 | 36 | ||
| 42 | #endif | 37 | #define NO_USB_STARTUP_CHECK //keep both sides on when pc is sleeping. |
| 38 | #define TAPPING_TERM 200 | ||
| 39 | |||
| 40 | // Remove features i don't use | ||
| 41 | #define NO_ACTION_ONESHOT | ||
| 42 | #define NO_ACTION_MACRO | ||
| 43 | |||
| 44 | // Override the rev2 config.h BACKLIGHT_LEVELS setting | ||
| 45 | #undef BACKLIGHT_LEVELS | ||
| 46 | #define BACKLIGHT_LEVELS 125 | ||
diff --git a/keyboards/iris/keymaps/transmogrified/keymap.c b/keyboards/iris/keymaps/transmogrified/keymap.c index 43d6cc600..67545f08e 100644 --- a/keyboards/iris/keymaps/transmogrified/keymap.c +++ b/keyboards/iris/keymaps/transmogrified/keymap.c | |||
| @@ -2,64 +2,55 @@ | |||
| 2 | #include "action_layer.h" | 2 | #include "action_layer.h" |
| 3 | #include "eeconfig.h" | 3 | #include "eeconfig.h" |
| 4 | 4 | ||
| 5 | // config settings | ||
| 6 | #define TAPPING_TERM 250 | ||
| 7 | #define ONESHOT_TAP_TOGGLE 1 | ||
| 8 | #define ONESHOT_TIMEOUT 10000 | ||
| 9 | |||
| 10 | extern keymap_config_t keymap_config; | 5 | extern keymap_config_t keymap_config; |
| 11 | 6 | ||
| 12 | #define _QWERTY 0 | 7 | #define _QWERTY 0 |
| 13 | #define _COLEMAK 1 | 8 | #define _COLEMAK 1 |
| 14 | #define _DVORAK 2 | 9 | #define _RLAYER 2 |
| 15 | #define _ONEHANDR 3 | 10 | #define _LLAYER 3 |
| 16 | #define _ONEHANDL 4 | 11 | #define _DUAL 4 |
| 17 | #define _RLAYER 5 | 12 | #define _CONFIG 5 |
| 18 | #define _LLAYER 6 | ||
| 19 | #define _DUAL 7 | ||
| 20 | #define _CONFIG 8 | ||
| 21 | 13 | ||
| 22 | enum custom_keycodes { | 14 | enum custom_keycodes { |
| 23 | QWERTY = SAFE_RANGE, | 15 | QWERTY = SAFE_RANGE, // qwerty base layer |
| 24 | COLEMAK, | 16 | COLEMAK, // colemak base layer |
| 25 | DVORAK, | 17 | RLAYER, // right layer |
| 26 | ONEHANDR, | 18 | LLAYER, // left layer |
| 27 | ONEHANDL, | 19 | RLOCK, // right layer LOCK |
| 28 | RLAYER, | 20 | LLOCK, // left layer LOCK |
| 29 | LLAYER, | 21 | DUAL, // right and left combo layer |
| 30 | RLOCK, | 22 | CONFIG, // config layer |
| 31 | LLOCK, | 23 | LEDUP, // custom LED brightness increase keycode |
| 32 | DUAL, | 24 | LEDDOWN, // custom LED brightness decrease keycode |
| 33 | CONFIG, | ||
| 34 | }; | 25 | }; |
| 35 | 26 | ||
| 36 | /* Tap Dance */ | 27 | /* Tap Dance */ |
| 37 | enum { | 28 | enum { |
| 38 | TD_LGUIAPP, | 29 | TD_LGUIAPP, // LGUI x1, app/menu x2 |
| 39 | TD_SHIFTCAPS, | 30 | TD_SHIFTCAPS, // LSHIFT x1, CAPS x3 |
| 31 | TD_CTRLALTDL, // CTRL+ALT+DEL x3 | ||
| 32 | TD_SHIFTCLAT, // LSHIFT x1, LCRTL x2, LALT x3, CTRL+ALT x4 | ||
| 40 | }; | 33 | }; |
| 41 | 34 | ||
| 42 | /* NOOP Key and Transparent */ | 35 | /* NOOP Key and Transparent */ |
| 43 | #define KC_ KC_TRNS | 36 | #define KC_ KC_TRNS |
| 44 | #define KC_XXXX KC_NO | 37 | #define KC_XXXX KC_NO |
| 45 | 38 | ||
| 46 | /* LAYERS */ | 39 | /* LAYERS / CUSTOM KEYS */ |
| 47 | #define KC_LLAY LLAYER | 40 | #define KC_LLAY LLAYER |
| 48 | #define KC_RLAY RLAYER | 41 | #define KC_RLAY RLAYER |
| 49 | #define KC_RLOK RLOCK | 42 | #define KC_RLOK RLOCK |
| 50 | #define KC_LLOK LLOCK | 43 | #define KC_LLOK LLOCK |
| 51 | #define KC_QWER QWERTY | 44 | #define KC_QWER QWERTY |
| 52 | #define KC_DVOR DVORAK | ||
| 53 | #define KC_COLE COLEMAK | 45 | #define KC_COLE COLEMAK |
| 54 | #define KC_ONER ONEHANDR | ||
| 55 | #define KC_ONEL ONEHANDL | ||
| 56 | #define KC_DUAL DUAL | 46 | #define KC_DUAL DUAL |
| 57 | #define KC_CONF CONFIG | 47 | #define KC_CONF CONFIG |
| 48 | #define KC_BLUP LEDUP | ||
| 49 | #define KC_BLDN LEDDOWN | ||
| 58 | 50 | ||
| 59 | /* Custom Shortened Keys */ | 51 | /* Custom Shortened Keys (4 digits so they fit in my grid) */ |
| 60 | #define KC_MCTB LCTL(KC_TAB) | 52 | #define KC_MCTB LCTL(KC_TAB) |
| 61 | #define KC_MCST LCTL(LSFT(KC_TAB)) | 53 | #define KC_MCST LCTL(LSFT(KC_TAB)) |
| 62 | #define KC_MCAD LALT(LCTL(KC_DEL)) | ||
| 63 | #define KC_CTEC CTL_T(KC_ESC) | 54 | #define KC_CTEC CTL_T(KC_ESC) |
| 64 | #define KC_SINS LSFT(KC_INS) | 55 | #define KC_SINS LSFT(KC_INS) |
| 65 | #define KC_LGU1 LGUI(KC_1) | 56 | #define KC_LGU1 LGUI(KC_1) |
| @@ -72,27 +63,27 @@ enum { | |||
| 72 | #define KC_LGU8 LGUI(KC_8) | 63 | #define KC_LGU8 LGUI(KC_8) |
| 73 | #define KC_LGU9 LGUI(KC_9) | 64 | #define KC_LGU9 LGUI(KC_9) |
| 74 | #define KC_LGU0 LGUI(KC_0) | 65 | #define KC_LGU0 LGUI(KC_0) |
| 75 | #define KC_BLUP BL_INC | ||
| 76 | #define KC_BLDN BL_DEC | ||
| 77 | #define KC_SYSR KC_SYSREQ | 66 | #define KC_SYSR KC_SYSREQ |
| 78 | #define KC_REST RESET | 67 | #define KC_REST RESET |
| 79 | 68 | ||
| 80 | /* Tap Dance */ | 69 | /* Tap Dance */ |
| 81 | #define KC_LGUA TD(TD_LGUIAPP) | 70 | #define KC_LGUA TD(TD_LGUIAPP) |
| 82 | #define KC_SHCL TD(TD_SHIFTCAPS) | 71 | #define KC_SHCP TD(TD_SHIFTCAPS) |
| 72 | #define KC_CADL TD(TD_CTRLALTDL) | ||
| 73 | #define KC_SHCA TD(TD_SHIFTCLAT) | ||
| 83 | 74 | ||
| 84 | 75 | ||
| 85 | const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | 76 | const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { |
| 86 | 77 | ||
| 87 | [_QWERTY] = LAYOUT_kc( | 78 | [_QWERTY] = LAYOUT_kc( |
| 88 | //,----+----+----+----+----+----. ,----+----+----+----+----+----. | 79 | //,----+----+----+----+----+----. ,----+----+----+----+----+----. |
| 89 | XXXX, 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 0 ,BSPC, | 80 | CADL, 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 0 ,BSPC, |
| 90 | //|----+----+----+----+----+----| |----+----+----+----+----+----| | 81 | //|----+----+----+----+----+----| |----+----+----+----+----+----| |
| 91 | TAB , Q , W , E , R , T , Y , U , I , O , P ,DEL , | 82 | TAB , Q , W , E , R , T , Y , U , I , O , P ,DEL , |
| 92 | //|----+----+----+----+----+----| |----+----+----+----+----+----| | 83 | //|----+----+----+----+----+----| |----+----+----+----+----+----| |
| 93 | CTEC, A , S , D , F , G , H , J , K , L ,SCLN,ENT , | 84 | CTEC, A , S , D , F , G , H , J , K , L ,SCLN,ENT , |
| 94 | //|----+----+----+----+----+----+----. ,----|----+----+----+----+----+----| | 85 | //|----+----+----+----+----+----+----. ,----|----+----+----+----+----+----| |
| 95 | SHCL, Z , X , C , V , B ,LLOK, RLOK, N , M ,COMM,DOT ,SLSH,RSFT, | 86 | SHCP, Z , X , C , V , B ,LLOK, RLOK, N , M ,COMM,DOT ,SLSH,SHCA, |
| 96 | //`----+----+----+--+-+----+----+----/ \----+----+----+----+----+----+----' | 87 | //`----+----+----+--+-+----+----+----/ \----+----+----+----+----+----+----' |
| 97 | LALT,LLAY,TAB , SPC ,RLAY,LGUA | 88 | LALT,LLAY,TAB , SPC ,RLAY,LGUA |
| 98 | // `----+----+----' `----+----+----' | 89 | // `----+----+----' `----+----+----' |
| @@ -100,60 +91,18 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
| 100 | 91 | ||
| 101 | [_COLEMAK] = LAYOUT_kc( | 92 | [_COLEMAK] = LAYOUT_kc( |
| 102 | //,----+----+----+----+----+----. ,----+----+----+----+----+----. | 93 | //,----+----+----+----+----+----. ,----+----+----+----+----+----. |
| 103 | XXXX, 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 0 ,BSPC, | 94 | CADL, 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 0 ,BSPC, |
| 104 | //|----+----+----+----+----+----| |----+----+----+----+----+----| | 95 | //|----+----+----+----+----+----| |----+----+----+----+----+----| |
| 105 | TAB , Q , W , F , P , G , J , L , U , Y ,SCLN,DEL , | 96 | TAB , Q , W , F , P , G , J , L , U , Y ,SCLN,DEL , |
| 106 | //|----+----+----+----+----+----| |----+----+----+----+----+----| | 97 | //|----+----+----+----+----+----| |----+----+----+----+----+----| |
| 107 | CTEC, A , R , S , T , D , H , N , E , I , O ,ENT , | 98 | CTEC, A , R , S , T , D , H , N , E , I , O ,ENT , |
| 108 | //|----+----+----+----+----+----+----. ,----|----+----+----+----+----+----| | 99 | //|----+----+----+----+----+----+----. ,----|----+----+----+----+----+----| |
| 109 | SHCL, Z , X , C , V , B ,LLOK, RLOK, K , M ,COMM,DOT ,SLSH,RSFT, | 100 | SHCP, Z , X , C , V , B ,LLOK, RLOK, K , M ,COMM,DOT ,SLSH,SHCA, |
| 110 | //`----+----+----+--+-+----+----+----/ \----+----+----+----+----+----+----' | ||
| 111 | LALT,LLAY,TAB , SPC ,RLAY,LGUA | ||
| 112 | // `----+----+----' `----+----+----' | ||
| 113 | ), | ||
| 114 | |||
| 115 | [_DVORAK] = LAYOUT_kc( | ||
| 116 | //,----+----+----+----+----+----. ,----+----+----+----+----+----. | ||
| 117 | XXXX, 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 0 ,BSPC, | ||
| 118 | //|----+----+----+----+----+----| |----+----+----+----+----+----| | ||
| 119 | TAB ,QUOT,COMM,DOT , P , Y , F , G , C , R , L ,SLSH, | ||
| 120 | //|----+----+----+----+----+----| |----+----+----+----+----+----| | ||
| 121 | CTEC, A , O , E , U , I , D , H , T , N , S ,ENT , | ||
| 122 | //|----+----+----+----+----+----+----. ,----|----+----+----+----+----+----| | ||
| 123 | SHCL,SCLN, Q , J , K , X ,LLOK, RLOK, B , M , W , V , Z ,EQL , | ||
| 124 | //`----+----+----+--+-+----+----+----/ \----+----+----+----+----+----+----' | 101 | //`----+----+----+--+-+----+----+----/ \----+----+----+----+----+----+----' |
| 125 | LALT,LLAY,TAB , SPC ,RLAY,LGUA | 102 | LALT,LLAY,TAB , SPC ,RLAY,LGUA |
| 126 | // `----+----+----' `----+----+----' | 103 | // `----+----+----' `----+----+----' |
| 127 | ), | 104 | ), |
| 128 | 105 | ||
| 129 | [_ONEHANDR] = LAYOUT_kc( | ||
| 130 | //,----+----+----+----+----+----. ,----+----+----+----+----+----. | ||
| 131 | XXXX,XXXX,XXXX,XXXX,XXXX,XXXX, 6 , 7 , 8 , 9 , 0 ,BSPC, | ||
| 132 | //|----+----+----+----+----+----| |----+----+----+----+----+----| | ||
| 133 | XXXX,XXXX,XXXX,XXXX,XXXX,XXXX, Y , U , I , O , P ,DEL , | ||
| 134 | //|----+----+----+----+----+----| |----+----+----+----+----+----| | ||
| 135 | XXXX,XXXX,XXXX,XXXX,XXXX,XXXX, H , J , K , L ,SCLN,QUOT, | ||
| 136 | //|----+----+----+----+----+----+----. ,----|----+----+----+----+----+----| | ||
| 137 | XXXX,XXXX,XXXX,XXXX,XXXX,XXXX,QWER, XXXX, N , M ,COMM,DOT ,SLSH,RSFT, | ||
| 138 | //`----+----+----+--+-+----+----+----/ \----+----+----+----+----+----+----' | ||
| 139 | XXXX,XXXX,XXXX, SPC ,ONEL,ENT | ||
| 140 | // `----+----+----' `----+----+----' | ||
| 141 | ), | ||
| 142 | |||
| 143 | [_ONEHANDL] = LAYOUT_kc( | ||
| 144 | //,----+----+----+----+----+----. ,----+----+----+----+----+----. | ||
| 145 | XXXX,XXXX,XXXX,XXXX,XXXX,XXXX, 5 , 4 , 3 , 2 , 1 ,XXXX, | ||
| 146 | //|----+----+----+----+----+----| |----+----+----+----+----+----| | ||
| 147 | XXXX,XXXX,XXXX,XXXX,XXXX,XXXX, T , R , E , W , Q ,TAB , | ||
| 148 | //|----+----+----+----+----+----| |----+----+----+----+----+----| | ||
| 149 | XXXX,XXXX,XXXX,XXXX,XXXX,XXXX, G , F , D , S , A ,ENT , | ||
| 150 | //|----+----+----+----+----+----+----. ,----|----+----+----+----+----+----| | ||
| 151 | XXXX,XXXX,XXXX,XXXX,XXXX,XXXX,XXXX, XXXX, B , V , C , X , Z ,SHCL, | ||
| 152 | //`----+----+----+--+-+----+----+----/ \----+----+----+----+----+----+----' | ||
| 153 | XXXX,XXXX,XXXX, SPC ,ONEL,ENT | ||
| 154 | // `----+----+----' `----+----+----' | ||
| 155 | ), | ||
| 156 | |||
| 157 | [_RLAYER] = LAYOUT_kc( | 106 | [_RLAYER] = LAYOUT_kc( |
| 158 | //,----+----+----+----+----+----. ,----+----+----+----+----+----. | 107 | //,----+----+----+----+----+----. ,----+----+----+----+----+----. |
| 159 | ,SLCK,SYSR,PSCR,INS ,PAUS, MUTE,VOLD,VOLU,BLDN,BLUP, , | 108 | ,SLCK,SYSR,PSCR,INS ,PAUS, MUTE,VOLD,VOLU,BLDN,BLUP, , |
| @@ -163,7 +112,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
| 163 | ,EXLM,PIPE,DLR ,LPRN,RPRN, AMPR,LEFT,DOWN,RGHT,MINS,QUOT, | 112 | ,EXLM,PIPE,DLR ,LPRN,RPRN, AMPR,LEFT,DOWN,RGHT,MINS,QUOT, |
| 164 | //|----+----+----+----+----+----+----. ,----|----+----+----+----+----+----| | 113 | //|----+----+----+----+----+----+----. ,----|----+----+----+----+----+----| |
| 165 | , AT ,HASH,PERC,LCBR,RCBR, , ,CIRC,END ,UNDS,PGDN,BSLS, , | 114 | , AT ,HASH,PERC,LCBR,RCBR, , ,CIRC,END ,UNDS,PGDN,BSLS, , |
| 166 | //`----+----+----+--+-+----+----+----/ \----+----+----+----+----+----+----' | 115 | //`----+----+----+--+-+----+----+----/ \----+----+----+----+----+----+----' |
| 167 | , , , , , | 116 | , , , , , |
| 168 | // `----+----+----' `----+----+----' | 117 | // `----+----+----' `----+----+----' |
| 169 | ), | 118 | ), |
| @@ -186,7 +135,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
| 186 | //,----+----+----+----+----+----. ,----+----+----+----+----+----. | 135 | //,----+----+----+----+----+----. ,----+----+----+----+----+----. |
| 187 | ,XXXX,XXXX,XXXX,XXXX,XXXX, XXXX,XXXX,XXXX,XXXX,XXXX,XXXX, | 136 | ,XXXX,XXXX,XXXX,XXXX,XXXX, XXXX,XXXX,XXXX,XXXX,XXXX,XXXX, |
| 188 | //|----+----+----+----+----+----| |----+----+----+----+----+----| | 137 | //|----+----+----+----+----+----| |----+----+----+----+----+----| |
| 189 | ,XXXX,XXXX,XXXX,XXXX,XXXX, XXXX,XXXX,MS_U,XXXX,XXXX,MCAD, | 138 | ,XXXX,XXXX,XXXX,XXXX,XXXX, XXXX,XXXX,MS_U,XXXX,XXXX,XXXX, |
| 190 | //|----+----+----+----+----+----| |----+----+----+----+----+----| | 139 | //|----+----+----+----+----+----| |----+----+----+----+----+----| |
| 191 | ,XXXX,XXXX,XXXX,XXXX,XXXX, BTN2,MS_L,MS_D,MS_R,BTN1,XXXX, | 140 | ,XXXX,XXXX,XXXX,XXXX,XXXX, BTN2,MS_L,MS_D,MS_R,BTN1,XXXX, |
| 192 | //|----+----+----+----+----+----+----. ,----|----+----+----+----+----+----| | 141 | //|----+----+----+----+----+----+----. ,----|----+----+----+----+----+----| |
| @@ -200,9 +149,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
| 200 | //,----+----+----+----+----+----. ,----+----+----+----+----+----. | 149 | //,----+----+----+----+----+----. ,----+----+----+----+----+----. |
| 201 | REST,XXXX,XXXX,XXXX,XXXX,XXXX, XXXX,XXXX,XXXX,XXXX,XXXX,XXXX, | 150 | REST,XXXX,XXXX,XXXX,XXXX,XXXX, XXXX,XXXX,XXXX,XXXX,XXXX,XXXX, |
| 202 | //|----+----+----+----+----+----| |----+----+----+----+----+----| | 151 | //|----+----+----+----+----+----| |----+----+----+----+----+----| |
| 203 | XXXX,QWER,XXXX,XXXX,XXXX,XXXX, XXXX,XXXX,XXXX,ONER,XXXX,XXXX, | 152 | XXXX,QWER,XXXX,XXXX,XXXX,XXXX, XXXX,XXXX,XXXX,XXXX,XXXX,XXXX, |
| 204 | //|----+----+----+----+----+----| |----+----+----+----+----+----| | 153 | //|----+----+----+----+----+----| |----+----+----+----+----+----| |
| 205 | XXXX,XXXX,XXXX,DVOR,XXXX,XXXX, XXXX,XXXX,XXXX,XXXX,XXXX,XXXX, | 154 | XXXX,XXXX,XXXX,XXXX,XXXX,XXXX, XXXX,XXXX,XXXX,XXXX,XXXX,XXXX, |
| 206 | //|----+----+----+----+----+----+----. ,----|----+----+----+----+----+----| | 155 | //|----+----+----+----+----+----+----. ,----|----+----+----+----+----+----| |
| 207 | XXXX,XXXX,XXXX,COLE,XXXX,XXXX, , ,XXXX,XXXX,XXXX,XXXX,XXXX,XXXX, | 156 | XXXX,XXXX,XXXX,COLE,XXXX,XXXX, , ,XXXX,XXXX,XXXX,XXXX,XXXX,XXXX, |
| 208 | //`----+----+----+--+-+----+----+----/ \----+----+----+----+----+----+----' | 157 | //`----+----+----+--+-+----+----+----/ \----+----+----+----+----+----+----' |
| @@ -212,6 +161,26 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
| 212 | }; | 161 | }; |
| 213 | 162 | ||
| 214 | 163 | ||
| 164 | /* VARIABLES */ | ||
| 165 | // Configurable Variables for layer toggled light | ||
| 166 | int layerBLStep = 20; // change how much the brightness changes when holding layer key | ||
| 167 | int breathPulse = 5; // timing of the breathing | ||
| 168 | int breathPulseStall = 3; // time to pause at top and bottom of breath cycle | ||
| 169 | int blSteps = 6; // blSteps + 1 is the amount of brightness settings when manually adjusting | ||
| 170 | |||
| 171 | // Variables needed for layer locked breathing and layer toggling lighting to work | ||
| 172 | int counter = 0; | ||
| 173 | bool breathUp = true; | ||
| 174 | bool resetBL = false; | ||
| 175 | bool rlocked = false; | ||
| 176 | bool llocked = false; | ||
| 177 | bool configOn = false; | ||
| 178 | int lockedBLLevel; | ||
| 179 | int momentaryLBLLevel; | ||
| 180 | int momentaryRBLLevel; | ||
| 181 | int currentBL; | ||
| 182 | /* END VARIABLES */ | ||
| 183 | |||
| 215 | /* TAP DANCE */ | 184 | /* TAP DANCE */ |
| 216 | void shift_caps_down (qk_tap_dance_state_t *state, void *user_data) { | 185 | void shift_caps_down (qk_tap_dance_state_t *state, void *user_data) { |
| 217 | if (state->count >= 3) { | 186 | if (state->count >= 3) { |
| @@ -220,7 +189,6 @@ void shift_caps_down (qk_tap_dance_state_t *state, void *user_data) { | |||
| 220 | register_code (KC_LSFT); | 189 | register_code (KC_LSFT); |
| 221 | } | 190 | } |
| 222 | } | 191 | } |
| 223 | |||
| 224 | void shift_caps_up (qk_tap_dance_state_t *state, void *user_data) { | 192 | void shift_caps_up (qk_tap_dance_state_t *state, void *user_data) { |
| 225 | if (state->count >= 3) { | 193 | if (state->count >= 3) { |
| 226 | unregister_code (KC_CAPS); | 194 | unregister_code (KC_CAPS); |
| @@ -228,54 +196,90 @@ void shift_caps_up (qk_tap_dance_state_t *state, void *user_data) { | |||
| 228 | unregister_code (KC_LSFT); | 196 | unregister_code (KC_LSFT); |
| 229 | } | 197 | } |
| 230 | } | 198 | } |
| 199 | void shift_ctrlalt_down (qk_tap_dance_state_t *state, void *user_data) { | ||
| 200 | if (state->count >= 4) { | ||
| 201 | register_code (KC_LCTL); | ||
| 202 | register_code (KC_LALT); | ||
| 203 | } else if (state->count == 3) { | ||
| 204 | register_code (KC_LALT); | ||
| 205 | } else if (state->count == 2) { | ||
| 206 | register_code (KC_LCTL); | ||
| 207 | } else { | ||
| 208 | register_code (KC_RSFT); | ||
| 209 | } | ||
| 210 | } | ||
| 211 | void shift_ctlalt_up (qk_tap_dance_state_t *state, void *user_data) { | ||
| 212 | if (state->count >= 4) { | ||
| 213 | unregister_code (KC_LALT); | ||
| 214 | unregister_code (KC_LCTL); | ||
| 215 | } else if (state->count == 3) { | ||
| 216 | unregister_code (KC_LALT); | ||
| 217 | } else if (state->count == 2) { | ||
| 218 | unregister_code (KC_LCTL); | ||
| 219 | } else { | ||
| 220 | unregister_code (KC_RSFT); | ||
| 221 | } | ||
| 222 | } | ||
| 223 | void ctrlaltdel_up (qk_tap_dance_state_t *state, void *user_data) { | ||
| 224 | if (state->count >= 3) { | ||
| 225 | unregister_code (KC_DEL); | ||
| 226 | unregister_code (KC_LALT); | ||
| 227 | unregister_code (KC_LCTL); | ||
| 228 | } else { | ||
| 229 | } | ||
| 230 | } | ||
| 231 | void ctrlaltdel_down (qk_tap_dance_state_t *state, void *user_data) { | ||
| 232 | if (state->count >= 3) { | ||
| 233 | register_code (KC_LCTL); | ||
| 234 | register_code (KC_LALT); | ||
| 235 | register_code (KC_DEL); | ||
| 236 | } else { | ||
| 237 | } | ||
| 238 | } | ||
| 231 | qk_tap_dance_action_t tap_dance_actions[] = { | 239 | qk_tap_dance_action_t tap_dance_actions[] = { |
| 232 | [TD_LGUIAPP] = ACTION_TAP_DANCE_DOUBLE(KC_LGUI, KC_APP), | 240 | [TD_LGUIAPP] = ACTION_TAP_DANCE_DOUBLE(KC_LGUI, KC_APP), |
| 233 | [TD_SHIFTCAPS] = ACTION_TAP_DANCE_FN_ADVANCED (NULL, shift_caps_down, shift_caps_up) | 241 | [TD_SHIFTCAPS] = ACTION_TAP_DANCE_FN_ADVANCED (NULL, shift_caps_down, shift_caps_up), |
| 242 | [TD_SHIFTCLAT] = ACTION_TAP_DANCE_FN_ADVANCED (NULL, shift_ctrlalt_down, shift_ctlalt_up), | ||
| 243 | [TD_CTRLALTDL] = ACTION_TAP_DANCE_FN_ADVANCED (NULL, ctrlaltdel_down, ctrlaltdel_up) | ||
| 234 | }; | 244 | }; |
| 235 | |||
| 236 | /* END TAP DANCE */ | 245 | /* END TAP DANCE */ |
| 237 | 246 | ||
| 238 | 247 | ||
| 248 | |||
| 239 | void persistent_default_layer_set(uint16_t default_layer) { | 249 | void persistent_default_layer_set(uint16_t default_layer) { |
| 240 | eeconfig_update_default_layer(default_layer); | 250 | eeconfig_update_default_layer(default_layer); |
| 241 | default_layer_set(default_layer); | 251 | default_layer_set(default_layer); |
| 242 | } | 252 | } |
| 243 | 253 | ||
| 244 | /* Variables for layer light toggling */ | ||
| 245 | static uint16_t currentBL = 0; | ||
| 246 | static uint16_t rlocked = 0; | ||
| 247 | static uint16_t llocked = 0; | ||
| 248 | |||
| 249 | bool process_record_user(uint16_t keycode, keyrecord_t *record) { | 254 | bool process_record_user(uint16_t keycode, keyrecord_t *record) { |
| 250 | switch (keycode) { | 255 | switch (keycode) { |
| 251 | case QWERTY: | 256 | case QWERTY: |
| 252 | if (record->event.pressed) { | 257 | if (record->event.pressed) { |
| 253 | set_single_persistent_default_layer(_QWERTY); | 258 | set_single_persistent_default_layer(_QWERTY); |
| 259 | configOn = false; | ||
| 260 | if (momentaryRBLLevel != 0 || momentaryLBLLevel != 0){ | ||
| 261 | backlight_toggle(); | ||
| 262 | } | ||
| 254 | } | 263 | } |
| 255 | return false; | 264 | return false; |
| 256 | break; | 265 | break; |
| 257 | case COLEMAK: | 266 | case COLEMAK: |
| 258 | if (record->event.pressed) { | 267 | if (record->event.pressed) { |
| 259 | set_single_persistent_default_layer(_COLEMAK); | 268 | set_single_persistent_default_layer(_COLEMAK); |
| 260 | } | 269 | configOn = false; |
| 261 | return false; | 270 | if (momentaryRBLLevel != 0 || momentaryLBLLevel != 0){ |
| 262 | break; | 271 | backlight_toggle(); |
| 263 | case ONEHANDR: | 272 | } |
| 264 | if (record->event.pressed) { | ||
| 265 | set_single_persistent_default_layer(_ONEHANDR); | ||
| 266 | } | ||
| 267 | return false; | ||
| 268 | break; | ||
| 269 | case DVORAK: | ||
| 270 | if (record->event.pressed) { | ||
| 271 | set_single_persistent_default_layer(_DVORAK); | ||
| 272 | } | 273 | } |
| 273 | return false; | 274 | return false; |
| 274 | break; | 275 | break; |
| 275 | case CONFIG: | 276 | case CONFIG: |
| 276 | if (record->event.pressed) { | 277 | if (record->event.pressed) { |
| 277 | set_single_persistent_default_layer(_CONFIG); | 278 | set_single_persistent_default_layer(_CONFIG); |
| 278 | backlight_toggle(); | 279 | configOn = true; |
| 280 | if (momentaryRBLLevel != 0 || momentaryLBLLevel != 0){ | ||
| 281 | backlight_toggle(); | ||
| 282 | } | ||
| 279 | } | 283 | } |
| 280 | return false; | 284 | return false; |
| 281 | break; | 285 | break; |
| @@ -283,22 +287,23 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { | |||
| 283 | if (record->event.pressed) { | 287 | if (record->event.pressed) { |
| 284 | layer_on(_RLAYER); | 288 | layer_on(_RLAYER); |
| 285 | update_tri_layer(_RLAYER, _LLAYER, _DUAL); | 289 | update_tri_layer(_RLAYER, _LLAYER, _DUAL); |
| 286 | /* add logic to toggle backlight change when on a layer */ | 290 | momentaryRBLLevel = get_backlight_level(); |
| 287 | currentBL = get_backlight_level(); | 291 | if (momentaryRBLLevel != 0 || momentaryLBLLevel != 0){ |
| 288 | if ( currentBL == 0 || currentBL == 1 ) { | 292 | for (int i = 0; i < layerBLStep ; i++){ |
| 289 | backlight_set(5); | 293 | backlight_increase(); |
| 290 | } else { | 294 | } |
| 291 | backlight_set(0); | ||
| 292 | } | 295 | } |
| 293 | } else { | 296 | } else { |
| 294 | unregister_code(KC_LGUI); | 297 | unregister_code(KC_LGUI); |
| 295 | rlocked = 0; | ||
| 296 | layer_off(_RLAYER); | 298 | layer_off(_RLAYER); |
| 297 | update_tri_layer(_RLAYER, _LLAYER, _DUAL); | 299 | update_tri_layer(_RLAYER, _LLAYER, _DUAL); |
| 298 | if ( llocked == 0 ) { | 300 | if ( llocked == false && configOn == false ) { |
| 299 | backlight_set(currentBL); | 301 | for (int i = 0; i < layerBLStep ; i++){ |
| 302 | backlight_decrease(); | ||
| 303 | } | ||
| 300 | } else { | 304 | } else { |
| 301 | } | 305 | } |
| 306 | rlocked = false; | ||
| 302 | } | 307 | } |
| 303 | return false; | 308 | return false; |
| 304 | break; | 309 | break; |
| @@ -306,21 +311,22 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { | |||
| 306 | if (record->event.pressed) { | 311 | if (record->event.pressed) { |
| 307 | layer_on(_LLAYER); | 312 | layer_on(_LLAYER); |
| 308 | update_tri_layer(_RLAYER, _LLAYER, _DUAL); | 313 | update_tri_layer(_RLAYER, _LLAYER, _DUAL); |
| 309 | /* add logic to toggle backlight change when on a layer */ | 314 | momentaryLBLLevel = get_backlight_level(); |
| 310 | currentBL = get_backlight_level(); | 315 | if (momentaryRBLLevel != 0 || momentaryLBLLevel != 0){ |
| 311 | if ( currentBL == 0 || currentBL == 1 ) { | 316 | for (int i = 0; i < layerBLStep ; i++){ |
| 312 | backlight_set(5); | 317 | backlight_increase(); |
| 313 | } else { | 318 | } |
| 314 | backlight_set(0); | ||
| 315 | } | 319 | } |
| 316 | } else { | 320 | } else { |
| 317 | llocked = 0; | ||
| 318 | layer_off(_LLAYER); | 321 | layer_off(_LLAYER); |
| 319 | update_tri_layer(_RLAYER, _LLAYER, _DUAL); | 322 | update_tri_layer(_RLAYER, _LLAYER, _DUAL); |
| 320 | if ( rlocked == 0 ) { | 323 | if ( rlocked == false && configOn == false ) { |
| 321 | backlight_set(currentBL); | 324 | for (int i = 0; i < layerBLStep ; i++){ |
| 325 | backlight_decrease(); | ||
| 326 | } | ||
| 322 | } else { | 327 | } else { |
| 323 | } | 328 | } |
| 329 | llocked = false; | ||
| 324 | } | 330 | } |
| 325 | return false; | 331 | return false; |
| 326 | break; | 332 | break; |
| @@ -328,13 +334,10 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { | |||
| 328 | if (record->event.pressed) { | 334 | if (record->event.pressed) { |
| 329 | layer_on(_RLAYER); | 335 | layer_on(_RLAYER); |
| 330 | /* add logic to toggle backlight change when on a layer */ | 336 | /* add logic to toggle backlight change when on a layer */ |
| 331 | rlocked = 1; | 337 | if (rlocked == false && llocked == false){ |
| 332 | currentBL = get_backlight_level(); | 338 | lockedBLLevel = get_backlight_level(); |
| 333 | if ( currentBL == 0 || currentBL == 1 ) { | ||
| 334 | backlight_set(5); | ||
| 335 | } else { | ||
| 336 | backlight_set(0); | ||
| 337 | } | 339 | } |
| 340 | rlocked = true; | ||
| 338 | } else { | 341 | } else { |
| 339 | } | 342 | } |
| 340 | return false; | 343 | return false; |
| @@ -343,25 +346,76 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { | |||
| 343 | if (record->event.pressed) { | 346 | if (record->event.pressed) { |
| 344 | layer_on(_LLAYER); | 347 | layer_on(_LLAYER); |
| 345 | /* add logic to toggle backlight change when on a layer */ | 348 | /* add logic to toggle backlight change when on a layer */ |
| 346 | llocked = 1; | 349 | if (rlocked == false && llocked == false){ |
| 347 | currentBL = get_backlight_level(); | 350 | lockedBLLevel = get_backlight_level(); |
| 348 | if ( currentBL == 0 || currentBL == 1 ) { | 351 | } |
| 349 | backlight_set(5); | 352 | llocked = true; |
| 350 | } else { | 353 | } else { |
| 351 | backlight_set(0); | 354 | } |
| 355 | return false; | ||
| 356 | break; | ||
| 357 | case LEDUP: | ||
| 358 | if (record->event.pressed) { | ||
| 359 | for (int i = 0; i < (BACKLIGHT_LEVELS / blSteps ) ; i++ ){ | ||
| 360 | backlight_increase(); | ||
| 352 | } | 361 | } |
| 353 | } else { | 362 | } else { |
| 354 | } | 363 | } |
| 355 | return false; | 364 | return false; |
| 356 | break; | 365 | break; |
| 357 | case ONEHANDL: | 366 | case LEDDOWN: |
| 358 | if (record->event.pressed) { | 367 | if (record->event.pressed) { |
| 359 | layer_on(_ONEHANDL); | 368 | for (int i = 0; i < (BACKLIGHT_LEVELS / blSteps ) ; i++ ){ |
| 369 | backlight_decrease(); | ||
| 370 | } | ||
| 360 | } else { | 371 | } else { |
| 361 | layer_off(_ONEHANDL); | ||
| 362 | } | 372 | } |
| 363 | return false; | 373 | return false; |
| 364 | break; | 374 | break; |
| 365 | } | 375 | } |
| 366 | return true; | 376 | return true; |
| 367 | } | 377 | } |
| 378 | |||
| 379 | |||
| 380 | // LED breathing when a layer is locked | ||
| 381 | void matrix_scan_user(void) { | ||
| 382 | // Only breath if layer is locked | ||
| 383 | if (lockedBLLevel != 0 && (rlocked || llocked)){ | ||
| 384 | // counter to slow down the breathing | ||
| 385 | if (counter >= breathPulse) { | ||
| 386 | counter = 0; | ||
| 387 | // iterate brightness up or down | ||
| 388 | if (breathUp){ | ||
| 389 | backlight_increase(); | ||
| 390 | } else { | ||
| 391 | backlight_decrease(); | ||
| 392 | } | ||
| 393 | // figure out if we need to change directions | ||
| 394 | currentBL = get_backlight_level(); | ||
| 395 | if (currentBL >= BACKLIGHT_LEVELS){ | ||
| 396 | breathUp = false; | ||
| 397 | // make counter a big negative number to add some stall time | ||
| 398 | counter = ((BACKLIGHT_LEVELS * breathPulseStall) * (-1)); | ||
| 399 | } else if (currentBL == 0){ | ||
| 400 | breathUp = true; | ||
| 401 | // make counter a big negative number to add some stall time | ||
| 402 | counter = ((BACKLIGHT_LEVELS * breathPulseStall) * (-1)); | ||
| 403 | } | ||
| 404 | // make not that we need to change the brightness back to when we started the breathing | ||
| 405 | resetBL = true; | ||
| 406 | } else { | ||
| 407 | counter++; | ||
| 408 | } | ||
| 409 | } else { | ||
| 410 | // get the brightness back to the level it started at | ||
| 411 | if (resetBL){ | ||
| 412 | int i = 0; | ||
| 413 | // i is just there to make sure i don't get stuck in a loop if for some reason get_backlight_level isn't working as expected | ||
| 414 | while (get_backlight_level() != lockedBLLevel && i <= BACKLIGHT_LEVELS ){ | ||
| 415 | backlight_step(); | ||
| 416 | i++; | ||
| 417 | } | ||
| 418 | resetBL = false; | ||
| 419 | } | ||
| 420 | } | ||
| 421 | } | ||
