diff options
Diffstat (limited to 'layouts')
| -rw-r--r-- | layouts/community/ergodox/issmirnov/README.md | 49 | ||||
| -rw-r--r-- | layouts/community/ergodox/issmirnov/asci-keymap.txt | 95 | ||||
| -rwxr-xr-x | layouts/community/ergodox/issmirnov/build.sh | 2 | ||||
| -rw-r--r-- | layouts/community/ergodox/issmirnov/config.h | 3 | ||||
| -rw-r--r-- | layouts/community/ergodox/issmirnov/keymap.c | 250 | ||||
| -rwxr-xr-x | layouts/community/ergodox/issmirnov/push.sh | 2 | ||||
| -rw-r--r-- | layouts/community/ergodox/issmirnov/template.txt | 17 |
7 files changed, 418 insertions, 0 deletions
diff --git a/layouts/community/ergodox/issmirnov/README.md b/layouts/community/ergodox/issmirnov/README.md new file mode 100644 index 000000000..564edfe31 --- /dev/null +++ b/layouts/community/ergodox/issmirnov/README.md | |||
| @@ -0,0 +1,49 @@ | |||
| 1 | # Ivan's Ergodox Config | ||
| 2 | |||
| 3 | |||
| 4 | ## Details about the layout | ||
| 5 | |||
| 6 | - Shift and Cmd are One Shot Modifiers, so tapping them once will apply them to the next key. When tapped twice they will lock, until tapped again to clear. | ||
| 7 | - When switching to other layers, any stuck modifiers are cleared in order to avoid unintended key combos | ||
| 8 | - There are a few leader key combinations. Right now, `KC_LEAD` + `s` will open my wiki homepage. | ||
| 9 | - All transparent keys have been replaced with noops to avoid layer bleeding. | ||
| 10 | |||
| 11 | ## Initial Setup | ||
| 12 | |||
| 13 | ### QMK | ||
| 14 | |||
| 15 | ``` | ||
| 16 | brew tap osx-cross/avr | ||
| 17 | brew tap PX4/homebrew-px4 | ||
| 18 | brew update | ||
| 19 | brew install avr-gcc | ||
| 20 | brew install dfu-programmer | ||
| 21 | brew install gcc-arm-none-eabi | ||
| 22 | brew install avrdude | ||
| 23 | |||
| 24 | git clone https://github.com/qmk/qmk_firmware.git | ||
| 25 | git clone https://github.com/issmirnov/ergodox-layout.git \ | ||
| 26 | layouts/community/ergodox/ismirnov | ||
| 27 | ``` | ||
| 28 | |||
| 29 | ### Teensy utils | ||
| 30 | |||
| 31 | Download and add both of these to $PATH | ||
| 32 | |||
| 33 | - [hid_listen](https://www.pjrc.com/teensy/hid_listen.html) | ||
| 34 | - [teensy loader cli](https://www.pjrc.com/teensy/loader_cli.html) | ||
| 35 | |||
| 36 | ## Flashing | ||
| 37 | |||
| 38 | ``` | ||
| 39 | make ergodox_ez:ismirnov | ||
| 40 | teensy_loader_cli -mmcu=atmega32u4 -w -v ergodox_ez_ismirnov.hex | ||
| 41 | |||
| 42 | # or just | ||
| 43 | make ergodox_ez:ismirnov:flash | ||
| 44 | ``` | ||
| 45 | |||
| 46 | ## Gotchas | ||
| 47 | |||
| 48 | - If you get error: `dyld: Library not loaded: /usr/local/opt/isl/lib/libisl.15.dylib` then do `brew reinstall avr-gcc` | ||
| 49 | - If `hid_listen` just prints out a ton of dots, update makefile with `CONSOLE_ENABLE = yes` | ||
diff --git a/layouts/community/ergodox/issmirnov/asci-keymap.txt b/layouts/community/ergodox/issmirnov/asci-keymap.txt new file mode 100644 index 000000000..9b023f664 --- /dev/null +++ b/layouts/community/ergodox/issmirnov/asci-keymap.txt | |||
| @@ -0,0 +1,95 @@ | |||
| 1 | Qwerty | ||
| 2 | ,--------------------------------------------. ,--------------------------------------------. | ||
| 3 | | Escape | 1 | 2 | 3 | 4 | 5 | ! | | = | 6 | 7 | 8 | 9 | 0 | Escape | | ||
| 4 | |--------+-----+-----+-----+-----+-----+-----| |-----+-----+-----+-----+-----+-----+--------| | ||
| 5 | |Lctl(Spa| Q | W | E | R | T | * | | + | Y | U | I | O | P |Lgui(Spa| | ||
| 6 | |--------+-----+-----+-----+-----+-----| | | |-----+-----+-----+-----+-----+--------| | ||
| 7 | | Tab | A | S | D | F | G |-----| |-----| H | J | K | L |TapTo|Mo(Navi)| | ||
| 8 | |--------+-----+-----+-----+-----+-----| / | | - |-----+-----+-----+-----+-----+--------| | ||
| 9 | |Osm(ModL| Z | X | C | V | B | | | | N | M | . |Comma|Tg(Nu| ' | | ||
| 10 | `--------+-----+-----+-----+-----+-----------' `-----------+-----+-----+-----+-----+--------' | ||
| 11 | |Ctrl |Lsft(|Lsft(| Alt | Mod | |Escap| : | % | |Lgui(| | ||
| 12 | `-----------------------------' ,-----------. ,-----------. `-----------------------------' | ||
| 13 | | | | | ← | → | | ||
| 14 | ,-----|-----|-----| |-----+-----+-----. | ||
| 15 | | | | | | ↑ | | | | ||
| 16 | | ⎵ | ⌫ |-----| |-----| Tab |Enter| | ||
| 17 | | | | Del | | ↓ | | | | ||
| 18 | `-----------------' `-----------------' | ||
| 19 | |||
| 20 | Symb | ||
| 21 | ,--------------------------------------------. ,--------------------------------------------. | ||
| 22 | | Escape | F1 | F2 | F3 | F4 | F5 | F6 | | F7 | F8 | F9 | F10 | F11 | F12 | | | ||
| 23 | |--------+-----+-----+-----+-----+-----+-----| |-----+-----+-----+-----+-----+-----+--------| | ||
| 24 | | | - | @ | { | } | ` | * | | + | * | ! | | | % | + |Mo(Navi)| | ||
| 25 | |--------+-----+-----+-----+-----+-----| | | |-----+-----+-----+-----+-----+--------| | ||
| 26 | | Tab | ^ | _ | ( | ) | $ |-----| |-----| # | = | : | ; |TapTo| Dquo | | ||
| 27 | |--------+-----+-----+-----+-----+-----| / | | - |-----+-----+-----+-----+-----+--------| | ||
| 28 | | Lshift | < | > | [ | ] | ~ | | | | & | ? | / | \ |Tg(Nu| ' | | ||
| 29 | `--------+-----+-----+-----+-----+-----------' `-----------+-----+-----+-----+-----+--------' | ||
| 30 | |Ctrl |Lsft(|Lsft(| Alt |WkspL| |Escap| : | % | | | | ||
| 31 | `-----------------------------' ,-----------. ,-----------. `-----------------------------' | ||
| 32 | | | | | ← | → | | ||
| 33 | ,-----|-----|-----| |-----+-----+-----. | ||
| 34 | | | | | | ↑ | | | | ||
| 35 | |WkspR| ⌫ |-----| |-----| Tab |Enter| | ||
| 36 | | | | Del | | ↓ | | | | ||
| 37 | `-----------------' `-----------------' | ||
| 38 | |||
| 39 | Nump | ||
| 40 | ,--------------------------------------------. ,--------------------------------------------. | ||
| 41 | | | | | | | | | | = | | | | | | Reset | | ||
| 42 | |--------+-----+-----+-----+-----+-----+-----| |-----+-----+-----+-----+-----+-----+--------| | ||
| 43 | | | No | No |Lgui(| | | * | | + | , | 7 | 8 | 9 | | | | ||
| 44 | |--------+-----+-----+-----+-----+-----| | | |-----+-----+-----+-----+-----+--------| | ||
| 45 | | Tab | |Lgui(|Lgui(|Lgui(| |-----| |-----| 0 | 4 | 5 | 6 |To(Sy| | | ||
| 46 | |--------+-----+-----+-----+-----+-----| / | | - |-----+-----+-----+-----+-----+--------| | ||
| 47 | | | | | |Audio|Audio| | | | . | 1 | 2 | 3 |To(Qw| | | ||
| 48 | `--------+-----+-----+-----+-----+-----------' `-----------+-----+-----+-----+-----+--------' | ||
| 49 | |To(0)| | | | | | 0 | | |To(3)| | | ||
| 50 | `-----------------------------' ,-----------. ,-----------. `-----------------------------' | ||
| 51 | | | | | ← | → | | ||
| 52 | ,-----|-----|-----| |-----+-----+-----. | ||
| 53 | | | | | | ↑ | | | | ||
| 54 | | ⎵ | ⌫ |-----| |-----| Alt |Shift| | ||
| 55 | | | | Del | | ↓ | | | | ||
| 56 | `-----------------' `-----------------' | ||
| 57 | |||
| 58 | Overwatch | ||
| 59 | ,--------------------------------------------. ,--------------------------------------------. | ||
| 60 | | Escape | 1 | 2 | 3 | 4 | 5 |To(0)| | | | | | | | | | ||
| 61 | |--------+-----+-----+-----+-----+-----+-----| |-----+-----+-----+-----+-----+-----+--------| | ||
| 62 | | Tab | Q | W | E | R | T | | | | | | | | | | | ||
| 63 | |--------+-----+-----+-----+-----+-----| | | |-----+-----+-----+-----+-----+--------| | ||
| 64 | | Ctrl | A | S | D | F | P |-----| |-----| | | | | | | | ||
| 65 | |--------+-----+-----+-----+-----+-----| | | |-----+-----+-----+-----+-----+--------| | ||
| 66 | | Lshift | Z | X | C | V |Grave| | | | | | | | | | | ||
| 67 | `--------+-----+-----+-----+-----+-----------' `-----------+-----+-----+-----+-----+--------' | ||
| 68 | |Ctrl | F9 |Pscre| H | R | | | | | | | | ||
| 69 | `-----------------------------' ,-----------. ,-----------. `-----------------------------' | ||
| 70 | | | | | | | | ||
| 71 | ,-----|-----|-----| |-----+-----+-----. | ||
| 72 | | | | | | | | | | ||
| 73 | | ⎵ | |-----| |-----| | | | ||
| 74 | | | | | | | | | | ||
| 75 | `-----------------' `-----------------' | ||
| 76 | |||
| 77 | Navi | ||
| 78 | ,--------------------------------------------. ,--------------------------------------------. | ||
| 79 | | Escape | 1 | 2 | 3 | 4 | 5 | 6 | | | | | | | | | | ||
| 80 | |--------+-----+-----+-----+-----+-----+-----| |-----+-----+-----+-----+-----+-----+--------| | ||
| 81 | | | | | ↑ | | | | | | | | | | | | | ||
| 82 | |--------+-----+-----+-----+-----+-----| | | |-----+-----+-----+-----+-----+--------| | ||
| 83 | | | | ← | ↓ | → | |-----| |-----| |Ctrl | | | | | | ||
| 84 | |--------+-----+-----+-----+-----+-----| | | |-----+-----+-----+-----+-----+--------| | ||
| 85 | | | | | | | | | | | | | | | | | | ||
| 86 | `--------+-----+-----+-----+-----+-----------' `-----------+-----+-----+-----+-----+--------' | ||
| 87 | | | | | |WkspL| | ⌘⇧ | | | | | | ||
| 88 | `-----------------------------' ,-----------. ,-----------. `-----------------------------' | ||
| 89 | | | | | | | | ||
| 90 | ,-----|-----|-----| |-----+-----+-----. | ||
| 91 | | | | | | | | | | ||
| 92 | |WkspR| |-----| |-----| | Mod | | ||
| 93 | | | | | | | | | | ||
| 94 | `-----------------' `-----------------' | ||
| 95 | |||
diff --git a/layouts/community/ergodox/issmirnov/build.sh b/layouts/community/ergodox/issmirnov/build.sh new file mode 100755 index 000000000..7bb694d8a --- /dev/null +++ b/layouts/community/ergodox/issmirnov/build.sh | |||
| @@ -0,0 +1,2 @@ | |||
| 1 | #!/bin/bash | ||
| 2 | make ergodox_ez:issmirnov | ||
diff --git a/layouts/community/ergodox/issmirnov/config.h b/layouts/community/ergodox/issmirnov/config.h new file mode 100644 index 000000000..fe62a7d1d --- /dev/null +++ b/layouts/community/ergodox/issmirnov/config.h | |||
| @@ -0,0 +1,3 @@ | |||
| 1 | // Reference: https://beta.docs.qmk.fm/reference/config-options | ||
| 2 | // and https://github.com/qmk/qmk_firmware/blob/master/docs/config_options.md | ||
| 3 | #include QMK_KEYBOARD_CONFIG_H | ||
diff --git a/layouts/community/ergodox/issmirnov/keymap.c b/layouts/community/ergodox/issmirnov/keymap.c new file mode 100644 index 000000000..ce853f3d3 --- /dev/null +++ b/layouts/community/ergodox/issmirnov/keymap.c | |||
| @@ -0,0 +1,250 @@ | |||
| 1 | #include QMK_KEYBOARD_H | ||
| 2 | |||
| 3 | // Custom user includes | ||
| 4 | #include "issmirnov.h" | ||
| 5 | #include "tap_tog.h" | ||
| 6 | |||
| 7 | const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ||
| 8 | [_QWERTY] = LAYOUT_ergodox_wrapper( | ||
| 9 | KC_ESCAPE, KC_1, KC_2, KC_3, KC_4, KC_5, KC_EXLM, | ||
| 10 | LCTL(KC_SPACE), _________________QWERTY_L1_________________, KC_ASTR, | ||
| 11 | KC_TAB, _________________QWERTY_L2_________________, | ||
| 12 | OSM(MOD_LSFT), _________________QWERTY_L3_________________, KC_SLASH, | ||
| 13 | KC_LCTL, LSFT(KC_LGUI), LSFT(KC_LALT), KC_LALT, KC_LGUI, | ||
| 14 | XXXXXXX, XXXXXXX, | ||
| 15 | XXXXXXX, | ||
| 16 | KC_SPACE, KC_BSPACE, KC_DEL, | ||
| 17 | |||
| 18 | KC_EQL , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_ESCAPE , | ||
| 19 | KC_PLUS , _________________QWERTY_R1_________________ , LGUI(KC_SPACE) , | ||
| 20 | _________________QWERTY_R2_________________ , MO(_NAVI) , | ||
| 21 | KC_MINS , _________________QWERTY_R3_________________ , KC_QUOTE , | ||
| 22 | KC_ESCAPE , KC_COLN , KC_PERC , XXXXXXX , LGUI(KC_L) , | ||
| 23 | |||
| 24 | KC_LEFT, KC_RGHT, | ||
| 25 | KC_UP, | ||
| 26 | KC_DOWN, KC_TAB, KC_ENTER | ||
| 27 | ), | ||
| 28 | |||
| 29 | // layer 1 | ||
| 30 | [_SYMB] = LAYOUT_ergodox_wrapper( | ||
| 31 | KC_ESCAPE , KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , | ||
| 32 | XXXXXXX , _________________SYMB_L1___________________ ,KC_ASTR , | ||
| 33 | KC_TAB , _________________SYMB_L2___________________, | ||
| 34 | KC_LSHIFT , _________________SYMB_L3___________________, KC_SLASH , | ||
| 35 | KC_LCTL , LSFT(KC_LGUI) , LSFT(KC_LALT) , KC_LALT , WKSP_LEFT , | ||
| 36 | |||
| 37 | XXXXXXX, XXXXXXX, | ||
| 38 | XXXXXXX, | ||
| 39 | WKSP_RIGHT, KC_BSPACE, KC_DEL, | ||
| 40 | |||
| 41 | KC_F7 , KC_F8 , KC_F9 , KC_F10 , KC_F11 , KC_F12 , XXXXXXX , | ||
| 42 | KC_PLUS , _________________SYMB_R1___________________ , MO(_NAVI) , | ||
| 43 | _________________SYMB_R2___________________ , KC_DQUO , | ||
| 44 | KC_MINS , _________________SYMB_R3___________________ , KC_QUOTE , | ||
| 45 | KC_ESCAPE , KC_COLN , KC_PERC , XXXXXXX , XXXXXXX , | ||
| 46 | |||
| 47 | KC_LEFT, KC_RGHT, | ||
| 48 | KC_UP, | ||
| 49 | KC_DOWN, KC_TAB, KC_ENTER | ||
| 50 | ), | ||
| 51 | |||
| 52 | // layer 2 | ||
| 53 | [_NUMP] = LAYOUT_ergodox_wrapper( | ||
| 54 | XXXXXXX , ___________________XXXXX___________________, XXXXXXX , | ||
| 55 | XXXXXXX , _________________NUMP_L1___________________ , KC_ASTR , | ||
| 56 | KC_TAB , _________________NUMP_L2___________________ , | ||
| 57 | XXXXXXX , _________________NUMP_L3___________________ , KC_SLASH , | ||
| 58 | TO(0) , XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, | ||
| 59 | |||
| 60 | XXXXXXX , XXXXXXX , | ||
| 61 | XXXXXXX , | ||
| 62 | KC_SPACE , KC_BSPACE , KC_DEL , | ||
| 63 | |||
| 64 | KC_EQL , ___________________XXXXX___________________ , RESET , | ||
| 65 | KC_PLUS , _________________NUMP_R1___________________ , XXXXXXX , | ||
| 66 | _________________NUMP_R2___________________ , XXXXXXX , | ||
| 67 | KC_MINS , _________________NUMP_R3___________________ , XXXXXXX , | ||
| 68 | KC_0 , XXXXXXX , XXXXXXX , TO(3) , XXXXXXX , | ||
| 69 | |||
| 70 | KC_LEFT, KC_RGHT, | ||
| 71 | KC_UP, | ||
| 72 | KC_DOWN, KC_LALT, KC_LSFT | ||
| 73 | ), | ||
| 74 | |||
| 75 | // layer 3 | ||
| 76 | [_OVERWATCH] = LAYOUT_ergodox_wrapper( | ||
| 77 | KC_ESCAPE, KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , TO(0) , | ||
| 78 | ______________OVERWATCH_L1_________________ , XXXXXXX , | ||
| 79 | ______________OVERWATCH_L2_________________ , | ||
| 80 | ______________OVERWATCH_L3_________________ , XXXXXXX , | ||
| 81 | ______________OVERWATCH_L4_________________ , | ||
| 82 | |||
| 83 | XXXXXXX , XXXXXXX , | ||
| 84 | XXXXXXX , | ||
| 85 | KC_SPACE , XXXXXXX , XXXXXXX , | ||
| 86 | |||
| 87 | |||
| 88 | _______, _______, _______, _______, _______, _______, _______, | ||
| 89 | _______, _______, _______, _______, _______, _______, _______, | ||
| 90 | _______, _______, _______, _______, _______, _______, | ||
| 91 | _______, _______, _______, _______, _______, _______, _______, | ||
| 92 | _______, _______, _______, _______, _______, | ||
| 93 | |||
| 94 | _______, _______, | ||
| 95 | _______, | ||
| 96 | _______, _______, _______ | ||
| 97 | |||
| 98 | ), | ||
| 99 | // layer 4 | ||
| 100 | [_NAVI] = LAYOUT_ergodox_wrapper( | ||
| 101 | KC_ESCAPE, KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , | ||
| 102 | XXXXXXX, _________________NAVI_L1___________________ , XXXXXXX , | ||
| 103 | XXXXXXX, _________________NAVI_L2___________________ , | ||
| 104 | XXXXXXX, _________________NAVI_L3___________________ , XXXXXXX , | ||
| 105 | XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, WKSP_LEFT, | ||
| 106 | |||
| 107 | XXXXXXX , XXXXXXX , | ||
| 108 | XXXXXXX , | ||
| 109 | WKSP_RIGHT , XXXXXXX , XXXXXXX , | ||
| 110 | |||
| 111 | |||
| 112 | _______, _______, _______, _______, _______, _______, _______, | ||
| 113 | _______, _________________NAVI_R1___________________, _______, | ||
| 114 | _________________NAVI_R2___________________, _______, | ||
| 115 | _______, _________________NAVI_R3___________________, _______, | ||
| 116 | MODSFT, _______, _______, _______, _______, | ||
| 117 | |||
| 118 | _______, _______, | ||
| 119 | _______, | ||
| 120 | _______, _______, KC_LGUI | ||
| 121 | |||
| 122 | ), | ||
| 123 | }; | ||
| 124 | |||
| 125 | |||
| 126 | // called by QMK during key processing before the actual key event is handled. Useful for macros. | ||
| 127 | bool process_record_user(uint16_t keycode, keyrecord_t *record) { | ||
| 128 | uint8_t layer = biton32(layer_state); | ||
| 129 | switch (keycode) { | ||
| 130 | case TAP_TOG_LAYER: | ||
| 131 | process_tap_tog(_SYMB,record); | ||
| 132 | return false; | ||
| 133 | break; | ||
| 134 | |||
| 135 | case WKSP_LEFT: | ||
| 136 | // Only if TAP_TOG_LAYER is being held right now do we want to do actions. | ||
| 137 | if (record->event.pressed && (!tap_tog_layer_toggled_on || layer == _NAVI)) { | ||
| 138 | tap_code16(LGUI(LSFT(KC_Z))); | ||
| 139 | tap_tog_layer_other_key_pressed = true; // Add flag so layer resets | ||
| 140 | } | ||
| 141 | break; | ||
| 142 | case WKSP_RIGHT: | ||
| 143 | // Only if TAP_TOG_LAYER is being held right now do we want to do actions. | ||
| 144 | if (record->event.pressed && (!tap_tog_layer_toggled_on || layer == _NAVI)) { | ||
| 145 | tap_code16(LGUI(LSFT(KC_X))); | ||
| 146 | tap_tog_layer_other_key_pressed = true; // Add flag so layer resets | ||
| 147 | } | ||
| 148 | break; | ||
| 149 | default: | ||
| 150 | tap_tog_count = 0; // reset counter. | ||
| 151 | tap_tog_layer_other_key_pressed = true; // always set this to true, TAP_TOG_LAYER handlers will handle interpreting this | ||
| 152 | break; | ||
| 153 | } | ||
| 154 | return true; | ||
| 155 | } | ||
| 156 | |||
| 157 | // Runs constantly in the background, in a loop every 100ms or so. | ||
| 158 | // Best used for LED status output triggered when user isn't actively typing. | ||
| 159 | void matrix_scan_user(void) { | ||
| 160 | uint8_t layer = biton32(layer_state); | ||
| 161 | if (layer == 0) { | ||
| 162 | // Set up LED indicators for stuck modifier keys. | ||
| 163 | // https://github.com/qmk/qmk_firmware/blob/master/tmk_core/common/report.h#L118 | ||
| 164 | switch (keyboard_report->mods) { | ||
| 165 | case MOD_BIT(KC_LSFT): // LSHIFT | ||
| 166 | ergodox_right_led_1_set (LED_BRIGHTNESS_LO); | ||
| 167 | ergodox_right_led_1_on (); | ||
| 168 | ergodox_right_led_2_set (LED_BRIGHTNESS_LO); | ||
| 169 | ergodox_right_led_2_on (); | ||
| 170 | ergodox_right_led_3_set (LED_BRIGHTNESS_HI); | ||
| 171 | ergodox_right_led_3_off (); | ||
| 172 | break; | ||
| 173 | |||
| 174 | case MOD_BIT(KC_LGUI): // LGUI | ||
| 175 | ergodox_right_led_1_set (LED_BRIGHTNESS_HI); | ||
| 176 | ergodox_right_led_1_off (); | ||
| 177 | ergodox_right_led_2_set (LED_BRIGHTNESS_LO); | ||
| 178 | ergodox_right_led_2_on (); | ||
| 179 | ergodox_right_led_3_set (LED_BRIGHTNESS_LO); | ||
| 180 | ergodox_right_led_3_on (); | ||
| 181 | break; | ||
| 182 | |||
| 183 | case MOD_BIT(KC_LSFT) ^ MOD_BIT(KC_LGUI): | ||
| 184 | ergodox_right_led_1_set (70); | ||
| 185 | ergodox_right_led_1_on (); | ||
| 186 | ergodox_right_led_2_set (70); | ||
| 187 | ergodox_right_led_2_on (); | ||
| 188 | ergodox_right_led_3_set (70); | ||
| 189 | ergodox_right_led_3_on (); | ||
| 190 | break; | ||
| 191 | |||
| 192 | default: // reset leds | ||
| 193 | ergodox_right_led_1_set (LED_BRIGHTNESS_HI); | ||
| 194 | ergodox_right_led_1_off (); | ||
| 195 | ergodox_right_led_2_set (LED_BRIGHTNESS_HI); | ||
| 196 | ergodox_right_led_2_off (); | ||
| 197 | ergodox_right_led_3_set (LED_BRIGHTNESS_HI); | ||
| 198 | ergodox_right_led_3_off (); | ||
| 199 | } | ||
| 200 | } | ||
| 201 | } | ||
| 202 | |||
| 203 | // only runs when when the layer is changed, good for updating LED's and clearing sticky state | ||
| 204 | uint32_t layer_state_set_user(uint32_t state) { | ||
| 205 | uint8_t layer = biton32(state); | ||
| 206 | |||
| 207 | ergodox_board_led_off(); | ||
| 208 | ergodox_right_led_1_off(); | ||
| 209 | ergodox_right_led_2_off(); | ||
| 210 | ergodox_right_led_3_off(); | ||
| 211 | |||
| 212 | combo_enable(); // by default, enable combos. | ||
| 213 | switch (layer) { | ||
| 214 | case 0: | ||
| 215 | break; | ||
| 216 | case 1: | ||
| 217 | clear_mods(); | ||
| 218 | ergodox_right_led_1_on(); | ||
| 219 | break; | ||
| 220 | case 2: | ||
| 221 | clear_mods(); | ||
| 222 | ergodox_right_led_2_on(); | ||
| 223 | break; | ||
| 224 | case _OVERWATCH: | ||
| 225 | clear_mods(); | ||
| 226 | combo_disable(); // We don't want combos in overwatch | ||
| 227 | ergodox_right_led_3_on(); | ||
| 228 | break; | ||
| 229 | case 4: | ||
| 230 | ergodox_right_led_1_on(); | ||
| 231 | ergodox_right_led_2_on(); | ||
| 232 | break; | ||
| 233 | case 5: | ||
| 234 | ergodox_right_led_1_on(); | ||
| 235 | ergodox_right_led_3_on(); | ||
| 236 | break; | ||
| 237 | case 6: | ||
| 238 | ergodox_right_led_2_on(); | ||
| 239 | ergodox_right_led_3_on(); | ||
| 240 | break; | ||
| 241 | case 7: | ||
| 242 | ergodox_right_led_1_on(); | ||
| 243 | ergodox_right_led_2_on(); | ||
| 244 | ergodox_right_led_3_on(); | ||
| 245 | break; | ||
| 246 | default: | ||
| 247 | break; | ||
| 248 | } | ||
| 249 | return state; | ||
| 250 | }; | ||
diff --git a/layouts/community/ergodox/issmirnov/push.sh b/layouts/community/ergodox/issmirnov/push.sh new file mode 100755 index 000000000..1a6c7c447 --- /dev/null +++ b/layouts/community/ergodox/issmirnov/push.sh | |||
| @@ -0,0 +1,2 @@ | |||
| 1 | #!/bin/bash | ||
| 2 | make ergodox_ez:issmirnov:teensy | ||
diff --git a/layouts/community/ergodox/issmirnov/template.txt b/layouts/community/ergodox/issmirnov/template.txt new file mode 100644 index 000000000..35c7920a1 --- /dev/null +++ b/layouts/community/ergodox/issmirnov/template.txt | |||
| @@ -0,0 +1,17 @@ | |||
| 1 | ,--------------------------------------------. ,--------------------------------------------. | ||
| 2 | | 0 | 1 | 2 | 3 | 4 | 5 | 6 | | 38 | 39 | 40 | 41 | 42 | 43 | 44 | | ||
| 3 | |--------+-----+-----+-----+-----+-----+-----| |-----+-----+-----+-----+-----+-----+--------| | ||
| 4 | | 7 | 8 | 9 | 10 | 11 | 12 | 13 | | 45 | 46 | 47 | 48 | 49 | 50 | 51 | | ||
| 5 | |--------+-----+-----+-----+-----+-----| | | |-----+-----+-----+-----+-----+--------| | ||
| 6 | | 14 | 15 | 16 | 17 | 18 | 19 |-----| |-----| 52 | 53 | 54 | 55 | 56 | 57 | | ||
| 7 | |--------+-----+-----+-----+-----+-----| 26 | | 58 |-----+-----+-----+-----+-----+--------| | ||
| 8 | | 20 | 21 | 22 | 23 | 24 | 25 | | | | 59 | 60 | 61 | 62 | 63 | 64 | | ||
| 9 | `--------+-----+-----+-----+-----+-----------' `-----------+-----+-----+-----+-----+--------' | ||
| 10 | | 27 | 28 | 29 | 30 | 31 | | 65 | 66 | 67 | 68 | 69 | | ||
| 11 | `-----------------------------' ,-----------. ,-----------. `-----------------------------' | ||
| 12 | | 32 | 33 | | 70 | 71 | | ||
| 13 | ,-----|-----|-----| |-----+-----+-----. | ||
| 14 | | | | 34 | | 72 | | | | ||
| 15 | | 35 | 36 |-----| |-----| 74 | 75 | | ||
| 16 | | | | 37 | | 73 | | | | ||
| 17 | `-----------------' `-----------------' | ||
