diff options
author | artjomsR <artjomsR@users.noreply.github.com> | 2020-05-19 22:05:32 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-05-19 22:05:32 +0100 |
commit | 209942366b7da264d349c37ac6f4f69a3484b526 (patch) | |
tree | 03be56be116ef5fde2a82c1da70efb09dccf5cb7 | |
parent | 494b34b63f84617ddc56ff6dc0395505a33eb24e (diff) | |
download | qmk_firmware-209942366b7da264d349c37ac6f4f69a3484b526.tar.gz |
Art userspace (#9068)
* added git codes
* started git layer
* finished structure for git layer. MOD: replaced mouse with mod keys on right hand
* layout changing layer
* mod enter. default qwerty layer. removed mods on number layer
* workman layout. git log, show. blank enter and bsspace
* config layer. toggleable ctrl/alt for OS
* removed keymap comments
* strings and combos layers. sarcasm and ctrl_ctv. RGB configs
* reintroduced enter and bspace. delete backspace as a function. git push -u and checkout -b
* string macros
* OS specific home/end
* OS mac & win keys. N delete global backspace
* refactored backspace functions
* ctrl lctv macro
* base layer toggle fix
* whitespace
* BS + L for FF and chrome
* replaced 1 keycode with userspace
* added userspace config
* remove comments
* add another keycode with a variable
* moved all keymaps and codes to common file
* ctrl z mod
* removed ctrl z
* sipmlified OS functions
* moved is_win to keyboard level
* added mac alt tab
* added ctrl tab in mac + clean up variables in art.h
* tild string macro. added mac left/right + home/end
* mac ctrl backspace
* enum layers for default layout
* added ergodone keymap
* ergodone compiles
* clean up
* clean up
* removed obsolete OS_HOME/END
* removed var
* added ctrl nav to split75
* ergodone clean up + caps lock fix 75
* fix mac ctrl alt on right handside. added mac alt tab left right
* fix ergodone config override
* fixed alt left right not working on mac
* added OS ctr_alt
* mac ctrl del. fix tild
* simplified tild macro
* git stash apply
* send_string_remembering_lenght
* shifted strings print
* restored KC_BSPACE functionality
* moved KC_BSPC
* numpad layer on Fn
* media lights
* ergodone final clean up
* ergodone GIT AND MEDIA layers
* ergodone GIT LAYER switch
* default behaviour for all modified keys on BASE layer
* refactored logic for default keycodes
* ergodone final layers
* ctrl_cav for translation and ctrl_l fix
* toggleable layer with numpad
* comments
* numpad layer
* Update users/art/config.h
Co-authored-by: Joel Challis <git@zvecr.com>
* enable dynamic macros for split75
* git branch and develop/master
* removed esc from Nav
* ergodone: ctrl alt for shift layer
* macros and right alt for ergodone
* fix ergodone N_backspace not working on git layers
* mac language switch with alt+shift
* Update users/art/art.c
Co-authored-by: Ryan <fauxpark@gmail.com>
* Update users/art/art.c
Co-authored-by: Ryan <fauxpark@gmail.com>
* Update users/art/art.c
Co-authored-by: Ryan <fauxpark@gmail.com>
* Update keyboards/ergodone/keymaps/art/keymap.c
Co-authored-by: Ryan <fauxpark@gmail.com>
* Update users/art/art.h
Co-authored-by: Ryan <fauxpark@gmail.com>
* flashing leds to indicate current os
* using rshift on shifted layers
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
-rw-r--r-- | keyboards/ergodone/keymaps/art/keymap.c | 446 | ||||
-rw-r--r-- | keyboards/wheatfield/split75/keymaps/art/keymap.c | 334 | ||||
-rw-r--r-- | keyboards/wheatfield/split75/keymaps/art/rules.mk | 1 | ||||
-rw-r--r-- | keyboards/wheatfield/split75/keymaps/default/keymap.c | 4 | ||||
-rw-r--r-- | users/art/art.c | 464 | ||||
-rw-r--r-- | users/art/art.h | 69 | ||||
-rw-r--r-- | users/art/config.h | 4 | ||||
-rw-r--r-- | users/art/rules.mk | 1 |
8 files changed, 1194 insertions, 129 deletions
diff --git a/keyboards/ergodone/keymaps/art/keymap.c b/keyboards/ergodone/keymaps/art/keymap.c new file mode 100644 index 000000000..7fcbd5b61 --- /dev/null +++ b/keyboards/ergodone/keymaps/art/keymap.c @@ -0,0 +1,446 @@ +#include "art.h" +#include "sendstring_workman_zxcvm.h" + +bool is_win = true; + +enum custom_keycodes { + keyboardSpecificKeyCode = NEW_SAFE_RANGE //not used +}; + +void led_show_current_os(void) { + if (is_win) { + ergodox_right_led_1_on(); + wait_ms(50); + ergodox_right_led_1_off(); + wait_ms(50); + ergodox_right_led_1_on(); + wait_ms(50); + ergodox_right_led_1_off(); + wait_ms(50); + ergodox_right_led_1_on(); + wait_ms(50); + ergodox_right_led_1_off(); + wait_ms(50); + } else { + ergodox_right_led_3_on(); + wait_ms(50); + ergodox_right_led_3_off(); + wait_ms(50); + ergodox_right_led_3_on(); + wait_ms(50); + ergodox_right_led_3_off(); + wait_ms(50); + ergodox_right_led_3_on(); + wait_ms(50); + ergodox_right_led_3_off(); + wait_ms(50); + } +} + +void matrix_init_user(void) { + led_show_current_os(); +} + +void led_set_user(uint8_t usb_led) { + if (usb_led & (1<<USB_LED_CAPS_LOCK)) { + ergodox_right_led_2_on(); + } else { + ergodox_right_led_2_off(); + } +} + + + +layer_state_t layer_state_set_user(layer_state_t state) { + ergodox_board_led_off(); + ergodox_right_led_1_off(); + ergodox_right_led_3_off(); + switch (get_highest_layer(state)) { + case NAV: + case CTRL_NAV: + case SHIFT_NAV: + ergodox_right_led_1_on(); + break; + case FKEYS: + ergodox_right_led_3_on(); + break; + } + return state; +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* Base qwerty layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | ` ~ | 1 | 2 | 3 | 4 | 5 | ESC | | - _ | 6 | 7 | 8 | 9 | 0 | ] | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | Tab | Q | W | E | R | T | ??? | | = | Y | U | I | O | P | [ | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | Caps | A | S | D | F | G |------| |------| H | J | K | L | ; | ' | + * |--------+------+------+------+------+------| FKEYS| | FKEYS|------+------+------+------+------+--------| + * | LShift | Z | X | C | V | B | | | | N | M | , | . | / git| RShift | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * |LCtrl |Media\| Win |Alt | NAV | | Home | End |Workmn| | RCtrl| + * `----------------------------------' `----------------------------------' + * ,-------------. ,---------------. + * | Del | Ins | | Left | Right | + * ,------|------|------| |------+--------+------. + * | | | PgUp | |SFT_NV| | | + * | Space|BSpace|------| |------| NAV |Enter | + * | | | PgDn | |CTR_NV| | | + * `--------------------' `----------------------' + */ +[QWERTY] = LAYOUT_ergodox( + // -----------------------------------------------------left hand----------------------------------------------------- + KC_GRAVE, KC_1, KC_2, KC_3, KC_4, KC_5, KC_ESCAPE, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, XXXXXXX, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, TT(FKEYS), + KC_LCTRL, LT(MEDIA, KC_BSLASH), KC_LWIN, KC_LALT, LT(NAV, KC_RIGHT), + + KC_DEL, KC_INS, + KC_PGUP, + KC_SPC, LT(COMBOS,KC_BSPC), KC_PGDOWN, + + // -----------------------------------------------------right hand----------------------------------------------------- + KC_MINS, KC_6, KC_7, KC_8, KC_9, KC_0, KC_RBRC, + KC_EQL, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, + KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + TT(FKEYS), KC_N, KC_M, KC_COMM, KC_DOT, LT(GIT,KC_SLSH), KC_RSFT, + KC_HOME, KC_END, DF(WORKMAN), KC_RALT, KC_RCTRL, + + KC_LEFT, KC_RIGHT, + LT(SHIFT_NAV, KC_UP), + LT(CTRL_NAV, KC_DOWN), MO(NAV), KC_ENT +), + /* Workman + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | | | | | | | | | | | | | | | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | Q | D | R | W | B | | | | J | F | U | P | ; | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | A | S | H | T | G |------| |------| Y | N | E | O | I | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | Z | X | C | V | M | | | | K | L | , | . | / | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | | | | | |QWERTY| | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,---------------. + * | | | | | | + * ,------|------|------| |------+--------+------. + * | | | | | | | | + * | | |------| |------| | | + * | | | | | | | | + * `--------------------' `----------------------' + */ +[WORKMAN] = LAYOUT_ergodox( + // -----------------------------------------------------left hand----------------------------------------------------- + _______, _______, _______, _______, _______, _______, _______, + _______, KC_Q, KC_D, KC_R, KC_W, KC_B, _______, + _______, KC_A, KC_S, KC_H, KC_T, KC_G, + _______, KC_Z, KC_X, KC_C, KC_V, KC_M, _______, + _______, _______, _______, _______, _______, + + _______, _______, + _______, + _______, _______, _______, + + // -----------------------------------------------------right hand----------------------------------------------------- + _______, _______, _______, _______, _______, _______, _______, + _______, KC_J, KC_F, KC_U, KC_P, KC_SCLN, _______, + KC_Y, KC_N, KC_E, KC_O, KC_I, _______, + _______, KC_K, KC_L, KC_COMM, KC_DOT, KC_SLSH, _______, + _______, _______, DF(QWERTY), _______, _______, + + _______, _______, + _______, + _______, _______, _______ +), + +[FKEYS] = LAYOUT_ergodox( + // -----------------------------------------------------left hand----------------------------------------------------- + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, _______, + _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, + + _______, _______, + _______, + _______, _______, _______, + // -----------------------------------------------------right hand----------------------------------------------------- + _______, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, + _______, _______, _______, _______, _______, _______, KC_F12, + _______, _______, _______, _______, _______, KC_PSCREEN, + _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, + + _______, _______, + _______, + _______, _______, _______ +), + +[NAV] = LAYOUT_ergodox( + // -----------------------------------------------------left hand----------------------------------------------------- + _______, LALT(KC_F1), LALT(KC_F2), LALT(KC_F3), LALT(KC_F4), LALT(KC_F5), _______, + _______, _______, KC_HOME, KC_UP, KC_END, KC_PGUP, _______, + _______, _______, KC_LEFT, KC_DOWN, KC_RIGHT, KC_PGDOWN, + _______, _______, _______, _______, KC_LALT, _______, _______, + _______, _______, _______, _______, _______, + + _______, _______, + _______, + _______, KC_DEL, _______, + // -----------------------------------------------------right hand----------------------------------------------------- + _______, LALT(KC_F6), LALT(KC_F7), LALT(KC_F8), LALT(KC_F9), LALT(KC_F10), LALT(KC_F11), + _______, _______, _______, _______, _______, _______, LALT(KC_F12), + _______, CTR_ALT, KC_RSFT, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, + + _______, _______, + _______, + _______, _______, _______ +), + +[CTRL_NAV] = LAYOUT_ergodox( + // -----------------------------------------------------left hand----------------------------------------------------- + _______, _______, _______, _______, _______, _______, _______, + _______, _______, CTL_ALT(KC_HOME), CTL_ALT(KC_UP), CTL_ALT(KC_END), CTL_ALT(KC_PGUP), _______, + _______, _______, CTL_ALT(KC_LEFT), CTL_ALT(KC_DOWN), CTL_ALT(KC_RIGHT),CTL_ALT(KC_PGDOWN), + _______, _______, CTL_ALT(KC_X), CTL_ALT(KC_C), CTL_ALT(KC_V), _______, _______, + _______, _______, _______, _______, _______, + + CTL_ALT(KC_DEL), _______, + _______, + _______, CTL_ALT(KC_BSPC), CTL_ALT(KC_DEL), + // -----------------------------------------------------right hand----------------------------------------------------- + _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, + CTL_ALT(KC_HOME), CTL_ALT(KC_END), _______, _______, _______, + + CTL_ALT(KC_LEFT), CTL_ALT(KC_RIGHT), + KC_RSFT, + _______, _______, _______ +), + +[SHIFT_NAV] = LAYOUT_ergodox( + // -----------------------------------------------------left hand----------------------------------------------------- + _______, _______, _______, _______, _______, _______, _______, + _______, _______, LSFT(KC_HOME), LSFT(KC_UP), LSFT(KC_END), LSFT(KC_PGUP), _______, + _______, _______, LSFT(KC_LEFT), LSFT(KC_DOWN), LSFT(KC_RIGHT), LSFT(KC_PGDOWN), + _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, + + _______, _______, + _______, + _______, _______, _______, + + + // -----------------------------------------------------right hand----------------------------------------------------- + _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, + LSFT(KC_HOME), LSFT(KC_END), _______, _______, _______, + + LSFT(KC_LEFT), LSFT(KC_RIGHT), + _______, + CTR_ALT, _______, _______ +), + +[COMBOS] = LAYOUT_ergodox( + // -----------------------------------------------------left hand----------------------------------------------------- + TILD_BLOCK, PRESCRIPTION, _______, _______, FOURS, _______, _______, + _______, _______, _______, _______, _______, _______, _______, + _______, ADMINS, SARCASM, _______, CTRL_CTV, _______, + _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, + + _______, _______, + _______, + _______, _______, _______, + + // -----------------------------------------------------right hand----------------------------------------------------- + _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, + _______, _______, CTRL_LCTV, _______, _______, _______, _______, + _______, _______, _______, _______, _______, + + _______, _______, + _______, + _______, _______, _______ +), + +// [STRINGS] = LAYOUT_ergodox( +// // -----------------------------------------------------left hand----------------------------------------------------- +// _______, _______, _______, _______, _______, _______, _______, +// _______, _______, _______, _______, _______, _______, _______, +// _______, _______, _______, _______, _______, _______, +// _______, _______, _______, _______, _______, _______, _______, +// _______, _______, _______, _______, _______, + +// _______, _______, +// _______, +// _______, _______, _______, + +// // -----------------------------------------------------right hand----------------------------------------------------- +// _______, _______, _______, _______, _______, _______, _______, +// _______, _______, _______, _______, _______, _______, _______, +// _______, _______, _______, _______, _______, _______, +// _______, _______, _______, _______, _______, _______, _______, +// _______, _______, _______, _______, _______, + +// _______, _______, +// _______, +// _______, _______, _______ +// ), + +[MEDIA] = LAYOUT_ergodox( + // -----------------------------------------------------left hand----------------------------------------------------- + _______, _______, _______, _______, _______, _______, _______, + _______, _______, KC_MPRV, KC_VOLU, KC_MNXT, _______, _______, + _______, _______, _______, KC_VOLD, _______, _______, + _______, _______, _______, KC_MUTE, KC_MPLY, _______, _______, + _______, _______, _______, _______, _______, + + _______, _______, + _______, + _______, _______, _______, + + // -----------------------------------------------------right hand----------------------------------------------------- + _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, TOG_OS, _______, _______, + _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, + + _______, _______, + _______, + _______, _______, _______ +), + +[GIT] = LAYOUT_ergodox( + // -----------------------------------------------------left hand----------------------------------------------------- + _______, _______, _______, _______, _______, _______, _______, + _______, _______, G_DIFF, G_RST, _______, G_BRCH, _______, + _______, G_ADD, G_S, _______, _______, _______, + _______, _______, _______, G_C, _______, G_MERG, _______, + _______, _______, _______, _______, _______, + + _______, _______, + _______, + _______, _______, _______, + + // -----------------------------------------------------right hand----------------------------------------------------- + _______, _______, _______, _______, _______, _______, _______, + _______, _______, G_FTCH, _______, G_P, _______, _______, + _______, _______, _______, _______, _______, _______, + _______, _______, G_LOG, _______, G_DEV, _______, _______, + _______, _______, _______, _______, _______, + + _______, _______, + _______, + _______, _______, _______ +), + +[GIT_C] = LAYOUT_ergodox( + // -----------------------------------------------------left hand----------------------------------------------------- + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, G_CHEC, XXXXXXX, XXXXXXX, + _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + + XXXXXXX, XXXXXXX, + XXXXXXX, + XXXXXXX, KC_BSPC, XXXXXXX, + + // -----------------------------------------------------right hand----------------------------------------------------- + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, G_COMM, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + + XXXXXXX, XXXXXXX, + XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX +), + +[GIT_S] = LAYOUT_ergodox( + // -----------------------------------------------------left hand----------------------------------------------------- + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, G_STSH, G_SHOW, G_STAT, XXXXXXX, + _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + + XXXXXXX, XXXXXXX, + XXXXXXX, + XXXXXXX, KC_BSPC, XXXXXXX, + + // -----------------------------------------------------right hand----------------------------------------------------- + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, G_COMM, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + + XXXXXXX, XXXXXXX, + XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX +), + + +/* Numpad + * + * ,--------------------------------------------------. + * | | | | | | / | | + * |------+------+------+------+------+------+--------| + * | | | 7 | 8 | 9 | * | | + * | |------+------+------+------+------+--------| + * |------| | 4 | 5 | 6 | - | Enter | + * | |------+------+------+------+------+--------| + * | | | 1 | 2 | 3 | + | Enter | + * `-------------+------+------+------+------+--------' + * | | 0 | . | Calc | Calc | + * `----------------------------------' + */ + +// [] = LAYOUT_ergodox( +// // -----------------------------------------------------left hand----------------------------------------------------- +// _______, _______, _______, _______, _______, _______, _______, +// _______, _______, _______, _______, _______, _______, _______, +// _______, _______, _______, _______, _______, _______, +// _______, _______, _______, _______, _______, _______, _______, +// _______, _______, _______, _______, _______, + +// _______, _______, +// _______, +// _______, _______, _______, + +// // -----------------------------------------------------right hand----------------------------------------------------- +// _______, _______, _______, _______, _______, _______, _______, +// _______, _______, _______, _______, _______, _______, _______, +// _______, _______, _______, _______, _______, _______, +// _______, _______, _______, _______, _______, _______, _______, +// _______, _______, _______, _______, _______, + +// _______, _______, +// _______, +// _______, _______, _______ +// ), + +}; + +bool process_record_keymap(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + + } + return true; +} diff --git a/keyboards/wheatfield/split75/keymaps/art/keymap.c b/keyboards/wheatfield/split75/keymaps/art/keymap.c index e540f1cb6..c10059bb7 100644 --- a/keyboards/wheatfield/split75/keymaps/art/keymap.c +++ b/keyboards/wheatfield/split75/keymaps/art/keymap.c @@ -1,17 +1,72 @@ -#include QMK_KEYBOARD_H +#include <art.h> +#include <sendstring_workman_zxcvm.h> -enum layer_names { - BASE, - QWERTY_MOD, - QWERTY, - WORKMAN, - MOD, - MEDIA +bool is_win = false; + +enum custom_keycodes { + keyboardSpecificKeyCode = NEW_SAFE_RANGE //not used atm }; +bool led_update_user(led_t led_state) { + writePin(CAPSLOCK_LED_PIN, led_state.caps_lock); + return false; +} + +void led_show_current_os(void) { + if (is_win) { + writePinHigh(NUMLOCK_LED_PIN); + wait_ms(50); + writePinLow(NUMLOCK_LED_PIN); + wait_ms(50); + writePinHigh(NUMLOCK_LED_PIN); + wait_ms(50); + writePinLow(NUMLOCK_LED_PIN); + wait_ms(50); + writePinHigh(NUMLOCK_LED_PIN); + wait_ms(50); + writePinLow(NUMLOCK_LED_PIN); + wait_ms(50); + } else { + writePinHigh(SCROLLLOCK_LED_PIN); + wait_ms(50); + writePinLow(SCROLLLOCK_LED_PIN); + wait_ms(50); + writePinHigh(SCROLLLOCK_LED_PIN); + wait_ms(50); + writePinLow(SCROLLLOCK_LED_PIN); + wait_ms(50); + writePinHigh(SCROLLLOCK_LED_PIN); + wait_ms(50); + writePinLow(SCROLLLOCK_LED_PIN); + wait_ms(50); + } +} + +void keyboard_pre_init_user(void) { + led_show_current_os(); + + layer_state_set_user(layer_state); +} + +layer_state_t layer_state_set_user(layer_state_t state) { + writePinLow(NUMLOCK_LED_PIN); + writePinLow(SCROLLLOCK_LED_PIN); + switch (get_highest_layer(state)) { + case MEDIA: + writePinHigh(SCROLLLOCK_LED_PIN); + case BASE: + writePinHigh(NUMLOCK_LED_PIN); + break; + case NUMPAD: + writePinHigh(SCROLLLOCK_LED_PIN); + break; + } + return state; +} + const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - /* Base ,-----------------------------------------. ,-----------------------------------------------------. + /* QWERTY ,-----------------------------------------. ,-----------------------------------------------------. * | ESC | F1 | F2 | F3 | F4 | F5 | F6 | | F7 | F8 | F9 | F10 | F11 | F12 |Print| Ins | Home| * ,-----------. |-----+-----+-----+-----+-----+-----+-----| |-----+-----+-----+-----+-----+-----+-----------+-----| * | 8 | 9 | | ~ | 1 | 2 | 3 | 4 | 5 | 6 | | 7 | 8 | 9 | 0 | - | = | Backspac | Del | @@ -22,44 +77,20 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |-----+-----| |-----------------------------------------. `-------------------------------------------------+-----| * | 2 | 3 | | Shift | Z | X | C | V | B | | N | M | , | . | / | Shift | Up | PgDn| * |-----+-----| |-----------------------------------------' ,-------------------------------------------+-----+-----| - * | 0 | 1 | | Ctrl | GUI | Alt | Space |Space| | Space | Alt |QW_ON| Ctrl | Left| Down|Right| - * `-----------' `---------------------------------------' `-------------------------------------------------------' - */ - [BASE] = LAYOUT( -//--------------------------------Left Hand-----------------------------------| |--------------------------------Right Hand------------------------------------------------ - 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_PSCR, KC_INS, KC_HOME, -KC_8, KC_9, KC_GRAVE, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINUS, KC_EQUAL, KC_BSPC, KC_DEL, -KC_6, KC_7, 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_END, -KC_4, KC_5, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENTER, KC_PGUP, -KC_2, KC_3, 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_UP, KC_PGDN, -KC_0, KC_1, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, MO(QWERTY_MOD), KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT - ), - - /*QWERT On + Mod ,-----------------------------------------. ,-----------------------------------------------------. - * | | | | | | | | | | | | | | | | | | - * ,-----------. |-----+-----+-----+-----+-----+-----+-----| |-----+-----+-----+-----+-----+-----+-----------+-----| - * | | | | | | | | | | | | | | | | | | | | - * |-----+-----| |-----------------------------------------' ,--------------------------------------------------+-----| - * | | | | |MePrv| Vol+|MeNxt| | | | | | | | | | | | | - * |-----+-----| |---------------------------------------. `--------------------------------------------------+-----| - * | | | | | | Vol-| | | | | | | | | | | | | - * |-----+-----| |-----------------------------------------. `-------------------------------------------------+-----| - * | | | | | | Vol0|MePly| | | | | | | | | | | | - * |-----+-----| |-----------------------------------------' ,-------------------------------------------+-----+-----| - * | | | | QWERTY | | | | | | | | | | | | | + * | 0 | 1 | | Ctrl | GUI | Alt |Spac/MEDIA | BSPC| | NAV | Alt | NAV | Ctrl | Left| Down|Right| * `-----------' `---------------------------------------' `-------------------------------------------------------' */ - [QWERTY_MOD] = LAYOUT( -//--------------------------------Left Hand-----------------------------------------------| |--------------------------------Right Hand------------------------------------------------ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, -_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, -_______, _______, _______, KC_MPRV, KC_VOLU, KC_MNXT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, -_______, _______, _______, _______, KC_VOLD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, -_______, _______, _______, _______, KC_MUTE, KC_MPLY, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, -_______, _______, TO(QWERTY),_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + [QWERTY] = LAYOUT( +//--------------------------------Left Hand------------------------------------| |--------------------------------Right Hand------------------------------------------------ + 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, LT(CONFIG, KC_PSCR), KC_INS, KC_HOME, +KC_VOLD,KC_VOLU, KC_GRAVE, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINUS, KC_EQUAL, KC_BSPC, KC_DEL, +KC_MPRV,KC_MNXT, 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_END, +KC_HOME,KC_END, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN,KC_QUOT,KC_ENTER, KC_PGUP, +DYN_MACRO_PLAY1,MO(STRINGS),KC_LSFT,KC_Z,KC_X,KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, LT(GIT,KC_SLSH), KC_RSFT, KC_UP, KC_PGDN, +DYN_REC_STOP,DYN_REC_START1,KC_LCTL, KC_LGUI, KC_LALT, LT(MEDIA,KC_SPC), LT(COMBOS,KC_BSPC), LT(NAV, KC_ENTER), KC_RALT, MO(LAYOUT_CHG),KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT ), - /* QWERTY ,-----------------------------------------. ,-----------------------------------------------------. + /* Base ,-----------------------------------------. ,-----------------------------------------------------. * | ESC | F1 | F2 | F3 | F4 | F5 | F6 | | F7 | F8 | F9 | F10 | F11 | F12 |Print| Ins | Home| * ,-----------. |-----+-----+-----+-----+-----+-----+-----| |-----+-----+-----+-----+-----+-----+-----------+-----| * | 8 | 9 | | ~ | 1 | 2 | 3 | 4 | 5 | 6 | | 7 | 8 | 9 | 0 | - | = | Backspac | Del | @@ -70,68 +101,140 @@ _______, _______, TO(QWERTY),_______, _______, _______, _______, * |-----+-----| |-----------------------------------------. `-------------------------------------------------+-----| * | 2 | 3 | | Shift | Z | X | C | V | B | | N | M | , | . | / | Shift | Up | PgDn| * |-----+-----| |-----------------------------------------' ,-------------------------------------------+-----+-----| - * | 0 | 1 | | Ctrl | GUI | Alt |Spac/MEDIA | BSPC| | MOD | Alt | MOD | Ctrl | Left| Down|Right| + * | 0 | 1 | | Ctrl | GUI | Alt | Space |Space| | Space | Alt |QW_ON| Ctrl | Left| Down|Right| * `-----------' `---------------------------------------' `-------------------------------------------------------' */ - [QWERTY] = LAYOUT( -//--------------------------------Left Hand------------------------------------| |--------------------------------Right Hand------------------------------------------------ - 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_PSCR, KC_INS, KC_HOME, -KC_8, KC_9, KC_GRAVE, KC_1, KC_2, LGUI_T(KC_3), LALT_T(KC_4), LCTL_T(KC_5), KC_6, KC_7, LCTL_T(KC_8), LALT_T(KC_9), LGUI_T(KC_0), KC_MINUS, KC_EQUAL, KC_BSPC, KC_DEL, + [BASE] = LAYOUT( +//--------------------------------Left Hand-----------------------------------| |--------------------------------Right Hand------------------------------------------------ + 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, LT(CONFIG, KC_PSCR), KC_INS, KC_HOME, +KC_8, KC_9, KC_GRAVE, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINUS, KC_EQUAL, KC_BSPC, KC_DEL, KC_6, KC_7, 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_END, -KC_4, KC_5, KC_CAPS, KC_A, KC_S ,KC_D ,KC_F ,KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN,KC_QUOT,KC_ENTER, KC_PGUP, +KC_4, KC_5, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENTER, KC_PGUP, KC_2, KC_3, 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_UP, KC_PGDN, -KC_0, KC_1, KC_LCTL, KC_LGUI, KC_LALT, LT(MEDIA, KC_SPC),KC_BSPC, MO(MOD), KC_RALT, MO(MOD),KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT +KC_0, KC_1, OS_CTRL, OS_WIN, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, MO(QWERTY_MOD), KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT ), - /* WORKMAN ,-----------------------------------------. ,-----------------------------------------------------. - * | | | | | | | | | | | | | | | | | | - * ,-----------. |-----+-----+-----+-----+-----+-----+-----| |-----+-----+-----+-----+-----+-----+-----------+-----| - * | | | | | | | | | | | | | | | | | | | | - * |-----+-----| |-----------------------------------------' ,--------------------------------------------------+-----| - * | | | | | | | | | | | | | | | | | | | | - * |-----+-----| |---------------------------------------. `--------------------------------------------------+-----| - * | | | | | | | | | | | | | | | | | | | - * |-----+-----| |-----------------------------------------. `-------------------------------------------------+-----| - * | | | | | | | | | | | | | | | | | | | - * |-----+-----| |-----------------------------------------' ,-------------------------------------------+-----+-----| - * | | | | BASE | | | | | | | | | | | | | - * `-----------' `---------------------------------------' `-------------------------------------------------------' - */ [WORKMAN] = LAYOUT( //--------------------------------Left Hand-----------------------------------------------| |--------------------------------Right Hand------------------------------------------------ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, -_______, _______, _______, KC_Q, KC_D, KC_R, KC_W, KC_B, KC_J, KC_F, KC_U, KC_P, KC_SCLN,_______,_______, _______, _______, -_______, _______, _______, KC_A, KC_S, KC_H, KC_T, KC_G, KC_Y, KC_N, KC_E, KC_O, KC_I, _______, _______, _______, -_______, _______, _______, KC_Z, KC_X, KC_C, KC_V, KC_M, KC_K, KC_L, KC_COMM,KC_DOT, KC_SLSH, _______, _______, _______, -_______, _______, TO(BASE), _______,_______,_______, _______, _______, _______, TO(QWERTY), _______, _______, _______, _______ +_______, _______, _______, KC_Q, KC_D, KC_R, KC_W, KC_B, KC_J, KC_F, KC_U, KC_P, KC_SCLN, _______, _______, _______, _______, +_______, _______, _______, KC_A, KC_S, KC_H, KC_T, KC_G, KC_Y, KC_N, KC_E, KC_O, KC_I, _______, _______, _______, +_______, _______, _______, KC_Z, KC_X, KC_C, KC_V, KC_M, KC_K, KC_L, KC_COMM, KC_DOT, _______, _______, _______, _______, +_______, _______, _______, _______, _______, _______, _______, _______, _______, TO(QWERTY), _______, _______, _______, _______ ), - /* MOD ,-----------------------------------------. ,-----------------------------------------------------. - * | | | | | | | | | | | | | | | | | | - * ,-----------. |-----+-----+-----+-----+-----+-----+-----| |-----+-----+-----+-----+-----+-----+-----------+-----| - * | | | | | | | | | | | | | | | | | | | | - * |-----+-----| |-----------------------------------------' ,--------------------------------------------------+-----| - * | | | | | | | | | | | | | | | | | | | | - * |-----+-----| |---------------------------------------. `--------------------------------------------------+-----| - * | | | | | | | | | | | | | | | | | | | - * |-----+-----| |-----------------------------------------. `-------------------------------------------------+-----| - * | | | | | | | | | | | | | | | | | | | - * |-----+-----| |-----------------------------------------' ,-------------------------------------------+-----+-----| - * | | | | BASE | | | | | | | | | | | | | - * `-----------' `---------------------------------------' `-------------------------------------------------------' - */ - [MOD] = LAYOUT( + [NAV] = LAYOUT( +//--------------------------------Left Hand-----------------------------------------------| |--------------------------------Right Hand------------------------------------------------ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, +KC_8, KC_9, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, +KC_6, KC_7, _______, _______, KC_HOME, KC_UP, KC_END, KC_PGUP, _______, _______, _______, _______, _______, _______, _______, _______, _______, +KC_4, KC_5, _______, _______, KC_LEFT, KC_DOWN, KC_RIGHT, KC_PGDOWN, _______, CTR_ALT, KC_RSFT, _______, _______, _______, _______, _______, +KC_2, KC_3, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, +KC_0, KC_1, _______, _______, _______, KC_DEL, _______, _______, _______, _______, _______, _______, _______, _______ + ), + + [MEDIA] = LAYOUT( +//--------------------------------Left Hand-----------------------------------------------| |--------------------------------Right Hand------------------------------------------------ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, +_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, +_______, _______, _______, KC_MPRV, KC_VOLU, KC_MNXT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, +_______, _______, _______, _______, KC_VOLD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, +_______, _______, _______, _______, KC_MUTE, KC_MPLY, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, +_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + + [COMBOS] = LAYOUT( //--------------------------------Left Hand-----------------------------------------------| |--------------------------------Right Hand------------------------------------------------ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, -_______, _______, _______, _______, KC_HOME, KC_UP, KC_END, KC_PGUP, _______, KC_MS_BTN1,KC_MS_UP, KC_MS_BTN3,KC_MS_BTN2,_______,_______, _______, _______, -_______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RIGHT, KC_PGDOWN, _______,KC_MS_LEFT,KC_MS_DOWN,KC_MS_RIGHT,KC_APPLICATION, _______, _______, _______, +_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, +_______, _______, _______, _______, SARCASM, _______, CTRL_CTV, _______, _______, _______, _______, _______, _______, _______, _______, _______, +_______, _______, _______, _______, _______, CTRL_CAV, _______, _______, _______, CTRL_LCTV, _______, _______, _______, _______, _______, _______, +_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + + [STRINGS] = LAYOUT( +//--------------------------------Left Hand-----------------------------------------------| |--------------------------------Right Hand------------------------------------------------ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, +_______, _______, TILD_BLOCK, PRESCRIPTION, _______, _______, FOURS, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, +_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, +_______, _______, _______, ADMINS, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, -_______, TO(WORKMAN),TO(BASE), KC_MS_ACCEL0,KC_MS_ACCEL1,KC_MS_ACCEL2, _______, _______, _______, _______, _______, _______, _______, _______ +_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + + [QWERTY_MOD] = LAYOUT( +//--------------------------------Left Hand-----------------------------------------------| |--------------------------------Right Hand------------------------------------------------ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, +_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, +_______, _______, _______, KC_MPRV, KC_VOLU, KC_MNXT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, +_______, _______, _______, _______, KC_VOLD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, +_______, _______, _______, _______, KC_MUTE, KC_MPLY, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, +_______, _______, TO(QWERTY),_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), - /* MEDIA ,-----------------------------------------. ,-----------------------------------------------------. + [LAYOUT_CHG] = LAYOUT( +//--------------------------------Left Hand-----------------------------------------------| |--------------------------------Right Hand------------------------------------------------ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, +_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, +_______, _______, _______, _______, CTL_ALT(KC_HOME), CTL_ALT(KC_UP), CTL_ALT(KC_END), CTL_ALT(KC_PGUP), _______, _______,_______, _______,_______,_______,_______, _______, _______, +_______, _______, _______, _______, CTL_ALT(KC_LEFT), CTL_ALT(KC_DOWN), CTL_ALT(KC_RIGHT), CTL_ALT(KC_PGDOWN), _______,_______,_______,_______,_______, _______, _______, _______, +_______, _______, TO(WORKMAN), _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, +TO(NUMPAD), TO(NUMPAD), TO(BASE), _______, _______, _______, CTL_ALT(KC_BSPC), KC_LSFT, _______, _______, _______, _______, _______, _______ + ), + + [CONFIG] = LAYOUT( +//--------------------------------Left Hand-----------------------------------------------| |--------------------------------Right Hand------------------------------------------------ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, +RGB_VAI, RGB_VAD, RGB_MODE_PLAIN, RGB_MODE_BREATHE, RGB_MODE_RAINBOW, RGB_MODE_SWIRL, RGB_MODE_SNAKE, RGB_MODE_KNIGHT, RGB_MODE_XMAS, RGB_MODE_GRADIENT, RGB_MODE_RGBTEST, XXXXXXX, XXXXXXX, _______, _______, _______, _______, +RGB_SAI, RGB_SAD, _______, _______, _______, _______, _______, _______, _______, _______, _______, TOG_OS, _______, _______, _______, _______, _______, +RGB_HUI, RGB_HUD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, +RGB_MOD, RGB_RMOD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, +RGB_TOG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + + [NUMPAD] = LAYOUT( +//--------------------------------Left Hand-----------------------------------------------| |--------------------------------Right Hand------------------------------------------------ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, +KC_8, KC_9, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, +KC_6, KC_7, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, +KC_4, KC_5, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, +KC_2, KC_3, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, +KC_0, KC_1, _______, _______, _______, _______, _______, _______, _______, TO(QWERTY),_______, _______, _______, _______ + ), + + [GIT] = LAYOUT( +//--------------------------------Left Hand-----------------------------------------------| |--------------------------------Right Hand------------------------------------------------ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, +_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, +_______, _______, _______, _______, G_DIFF, G_RST, _______, G_BRCH, _______, G_FTCH, _______, G_P, _______, _______, _______, _______, _______, +_______, _______, _______, G_ADD, G_S, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, +_______, _______, _______, _______, _______, G_C, _______, G_MERG, _______, G_LOG, _______, G_DEV, _______, _______, _______, _______, +_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + + [GIT_C] = LAYOUT( +//--------------------------------Left Hand-----------------------------------------------| |--------------------------------Right Hand------------------------------------------------ + 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, XXXXXXX, XXXXXXX, G_CHEC, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, G_COMM, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, +XXXXXXX, XXXXXXX, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, XXXXXXX, XXXXXXX, +XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_BSPC, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX + ), + + [GIT_S] = LAYOUT( +//--------------------------------Left Hand-----------------------------------------------| |--------------------------------Right Hand------------------------------------------------ + 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, XXXXXXX, G_STSH, G_SHOW, G_STAT, 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, KC_BSPC, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX + ), + + /* ,-----------------------------------------. ,-----------------------------------------------------. * | | | | | | | | | | | | | | | | | | * ,-----------. |-----+-----+-----+-----+-----+-----+-----| |-----+-----+-----+-----+-----+-----+-----------+-----| * | | | | | | | | | | | | | | | | | | | | @@ -140,50 +243,25 @@ _______, TO(WORKMAN),TO(BASE), KC_MS_ACCEL0,KC_MS_ACCEL1,KC_MS_ACCEL2, _______, * |-----+-----| |---------------------------------------. `--------------------------------------------------+-----| * | | | | | | | | | | | | | | | | | | | * |-----+-----| |-----------------------------------------. `-------------------------------------------------+-----| - * | | | | | | | Play| | | | | | | | | | | | + * | | | | | | | | | | | | | | | | | | | * |-----+-----| |-----------------------------------------' ,-------------------------------------------+-----+-----| - * | | | | BASE | | | | | | | | | | | | | + * | | | | | | | | | | | | | | | | | * `-----------' `---------------------------------------' `-------------------------------------------------------' */ - [MEDIA] = LAYOUT( -//--------------------------------Left Hand-----------------------------------------------| |--------------------------------Right Hand------------------------------------------------ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, -_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, -_______, _______, _______, KC_MPRV, KC_VOLU, KC_MNXT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, -_______, _______, _______, _______, KC_VOLD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, -_______, _______, _______, _______, KC_MUTE, KC_MPLY, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, -_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ - ) + // [] = LAYOUT( +// //--------------------------------Left Hand-----------------------------------------------| |--------------------------------Right Hand------------------------------------------------ + // _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, +// _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, +// _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, +// _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, +// _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, +// _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + // ), }; -bool led_update_user(led_t led_state) { - writePin(CAPSLOCK_LED_PIN, led_state.caps_lock); - return false; -} +bool process_record_keymap(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { -void keyboard_pre_init_user(void) { - writePinHigh(SCROLLLOCK_LED_PIN); - wait_ms(50); - writePinHigh(CAPSLOCK_LED_PIN); - wait_ms(50); - writePinHigh(NUMLOCK_LED_PIN); - wait_ms(50); - writePinLow(SCROLLLOCK_LED_PIN); - wait_ms(50); - writePinLow(CAPSLOCK_LED_PIN); - wait_ms(50); - writePinLow(NUMLOCK_LED_PIN); - - layer_state_set_user(layer_state); -} - -layer_state_t layer_state_set_user(layer_state_t state) { - writePinLow(NUMLOCK_LED_PIN); - writePinLow(SCROLLLOCK_LED_PIN); - switch (get_highest_layer(state)) { - case BASE: - writePinHigh(SCROLLLOCK_LED_PIN); - break; - } - return state; -} + } + return true; +}
\ No newline at end of file diff --git a/keyboards/wheatfield/split75/keymaps/art/rules.mk b/keyboards/wheatfield/split75/keymaps/art/rules.mk new file mode 100644 index 000000000..5f8cb68ad --- /dev/null +++ b/keyboards/wheatfield/split75/keymaps/art/rules.mk @@ -0,0 +1 @@ +DYNAMIC_MACRO_ENABLE = yes
\ No newline at end of file diff --git a/keyboards/wheatfield/split75/keymaps/default/keymap.c b/keyboards/wheatfield/split75/keymaps/default/keymap.c index 069eb6bd1..30057f881 100644 --- a/keyboards/wheatfield/split75/keymaps/default/keymap.c +++ b/keyboards/wheatfield/split75/keymaps/default/keymap.c @@ -1,6 +1,8 @@ #include QMK_KEYBOARD_H -#define BASE 0 +enum layer_names { + BASE +}; const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { diff --git a/users/art/art.c b/users/art/art.c new file mode 100644 index 000000000..5596e237f --- /dev/null +++ b/users/art/art.c @@ -0,0 +1,464 @@ +#include "art.h" +#include "string.h" + +__attribute__ ((weak)) +bool process_record_keymap(uint16_t keycode, keyrecord_t *record) { + return true; +} + +__attribute__ ((weak)) +void led_show_current_os(void) { +} + +static bool mac_ctrl_on = false; //for switching tabs +static bool mac_gui_on = false; //for switching languages +static bool mac_alt_tab_on = false; //for switching windows + +static const char *key_up[2] = {SS_UP(X_LALT), SS_UP(X_LCTL)}; +static const char *key_down[2] = {SS_DOWN(X_LALT), SS_DOWN(X_LCTL)}; + +int char_to_del = 1; +static bool sarcasm_on = false; +static bool sarcasm_key = false; + +void backspace_n_times(int times) { + for (int i=0; i<times; i++) { + SEND_STRING(SS_TAP(X_BSPC)); + } +} + +void send_string_remembering_length(char *string) { + send_string(string); + char_to_del = strlen(string); +} + +void send_shifted_strings(char *string1, char *string2) { + if ( get_mods() & MOD_MASK_SHIFT ) { + clear_mods(); + send_string_remembering_length(string2); + } else { + send_string_remembering_length(string1); + } +} + +void send_shifted_strings_add(char *string1, char *string2) { + bool shifted = get_mods() & MOD_MASK_SHIFT; + clear_mods(); + + send_string_remembering_length(string1); + + if (shifted) { + send_string(string2); + char_to_del = strlen(string1) + strlen(string2); + } +} + +bool is_mac_with_base_layer_off(void) { + return !is_win && !layer_state_is(BASE); +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + if (sarcasm_on) { + sarcasm_key = ! sarcasm_key; + if (sarcasm_key) { + SEND_STRING(SS_TAP(X_CAPS)); + } + } + + //Checking all other non-backspace keys to clear the backspace buffer. This is to prevent the bug of deleting N chars sometime after using a macro + if (record->event.pressed && (keycode != KC_BSPACE && keycode != XXXXXXX)) { + char_to_del = 1; + } + + switch (keycode) { + case KC_TAB: + if (record->event.pressed && is_mac_with_base_layer_off()) { + uint8_t mods = get_mods(); + uint8_t mod_state = mods & MOD_MASK_ALT; + if (get_mods() & mod_state) { + del_mods(mod_state); + add_mods(MOD_LCTL); + mac_alt_tab_on = true; + } + + mod_state = mods & MOD_MASK_CTRL; + if (get_mods() & mod_state && !mac_alt_tab_on) { + del_mods(mod_state); + add_mods(MOD_LGUI); + mac_ctrl_on = true; + } + } + break; + case KC_LSFT: + if (record->event.pressed && is_mac_with_base_layer_off()) { + uint8_t mods = get_mods(); + uint8_t mod_state = mods & MOD_MASK_AG; + if (get_mods() & mod_state) { + del_mods(mod_state); + add_mods(MOD_LGUI); + mac_gui_on = true; + SEND_STRING(SS_TAP(X_SPACE)); + return false; + } else { + return true; + } + } + break; + case KC_LEFT: + case KC_RIGHT: + if (record->event.pressed && is_mac_with_base_layer_off()) { + /* && !mac_ctrl_on/!mac_alt_tab_on are required since setting the state while holding the key changes + the modifier from OS's perspective. As a result, just the pressed key cannot be the single source + of truth to determine which state we're in, and a separate bool is required */ + uint8_t mods = get_mods(); + uint8_t mod_state = mods & MOD_MASK_ALT; + //Allows Ctrl <-/-> on Mac if Ctrl Tab is already pressed + if (get_mods() & mod_state && mac_alt_tab_on && !mac_ctrl_on) { + del_mods(mod_state); + add_mods(MOD_LCTL); + } + + mod_state = mods & MOD_MASK_CTRL; + if (get_mods() & mod_state && !mac_alt_tab_on) { + del_mods(mod_state); + add_mods(MOD_LALT); + mac_ctrl_on = true; + } + } + break; + case KC_DEL: + if (record->event.pressed && is_mac_with_base_layer_off()) { + uint8_t mod_state = get_mods() & MOD_MASK_CTRL; + if (get_mods() & mod_state) { + del_mods(mod_state); + add_mods(MOD_LALT); + mac_ctrl_on = true; + } + } + break; + case KC_LALT: + if (!record->event.pressed && is_mac_with_base_layer_off()) { + if (mac_alt_tab_on) { + unregister_mods(MOD_LCTL); + mac_alt_tab_on = false; + return false; + } else if (mac_gui_on) { + SEND_STRING(SS_UP(X_LGUI)); + mac_gui_on = false; + return false; + } + } + break; + case KC_RALT: + if (!record->event.pressed && mac_alt_tab_on && is_mac_with_base_layer_off()) { + unregister_mods(MOD_LCTL); + mac_alt_tab_on = false; + return false; + } + break; + case KC_LCTL: + case KC_RCTL: + if (!record->event.pressed && mac_ctrl_on && is_mac_with_base_layer_off()) { + SEND_STRING(SS_UP(X_LGUI) SS_UP(X_LALT)); + mac_ctrl_on = false; + return false; + } + break; + + case KC_HOME: + if (record->event.pressed && is_mac_with_base_layer_off()) { + SEND_STRING(SS_LCTL(SS_TAP(X_LEFT))); + return false; + } + break; + case KC_END: + if (record->event.pressed && is_mac_with_base_layer_off()) { + SEND_STRING(SS_LCTL(SS_TAP(X_RIGHT))); + return false; + } + break; + case KC_BSPC: + if (record->event.pressed) { + if (char_to_del > 1) { + layer_off(GIT_C); + layer_off(GIT_S); + backspace_n_times(char_to_del); + char_to_del = 1; + return false; + } + + if (is_mac_with_base_layer_off()) { + uint8_t mod_state = get_mods() & MOD_MASK_CTRL; + if (get_mods() & mod_state) { + del_mods(mod_state); + add_mods(MOD_LALT); + mac_ctrl_on = true; + } + } + } + break; + + /* ------------------------------------------------------------------------- + * CUSTOM MACROS + * ------------------------------------------------------------------------ */ + case CTRL_CTV: + if (record->event.pressed) { + if ( get_mods() & MOD_MASK_SHIFT ) { + clear_mods(); + SEND_STRING(SS_LCTL("ctv")); + } else { + SEND_STRING(SS_LCTL("ctv") SS_TAP(X_ENTER)); + } + } + break; + case CTRL_LCTV: + if (record->event.pressed) { + if ( get_mods() & MOD_MASK_SHIFT ) { + //Firefox + clear_mods(); + SEND_STRING(SS_LCTL("lcP")); + wait_ms(200); + SEND_STRING(SS_LCTL("v") SS_TAP(X_ENTER)); + } else if ( get_mods() & MOD_MASK_CTRL ) { + //Chrome + clear_mods(); + SEND_STRING(SS_LCTL("lcNv") SS_TAP(X_ENTER)); + } else { + SEND_STRING(SS_LCTL("lctv")); + } + } + break; + case CTRL_CAV: + if (record->event.pressed) { + SEND_STRING(SS_LCTL("c" SS_TAP(X_TAB))); + wait_ms(50); + SEND_STRING(SS_LCTL("av")); + } + break; + case SARCASM: + if (record->event.pressed) { + sarcasm_on = !sarcasm_on; + } + break; + + /* ------------------------------------------------------------------------- + * OS TOGGLING + * ------------------------------------------------------------------------ */ + case TOG_OS: + if (record->event.pressed) { + is_win = ! is_win; + led_show_current_os(); + } + break; + case CTR_ALT: + if (record->event.pressed) { + send_string(key_down[is_win]); + } else { + send_string(key_up[is_win]); + } + break; + case OS_CTRL: + if (is_win) { + if (record->event.pressed) { + SEND_STRING(SS_DOWN(X_LCTL)); + } else { + SEND_STRING(SS_UP(X_LCTL)); + } + } else { + if (record->event.pressed) { + SEND_STRING(SS_DOWN(X_LGUI)); + } else { + SEND_STRING(SS_UP(X_LGUI)); + } + } + break; + case OS_WIN: + if (is_win) { + if (record->event.pressed) { + SEND_STRING(SS_DOWN(X_LGUI)); + } else { + SEND_STRING(SS_UP(X_LGUI)); + } + } else { + if (record->event.pressed) { + SEND_STRING(SS_DOWN(X_LCTL)); + } else { + SEND_STRING(SS_UP(X_LCTL)); + } + } + break; + + /* ------------------------------------------------------------------------- + * STRING MACROS + * ------------------------------------------------------------------------ */ + // case : + // if (record->event.pressed) { + // send_string_remembering_length(""); + // } + // break; + // case : + // if (record->event.pressed) { + // send_string_remembering_length("", ""); + // } + // break; + case TILD_BLOCK: + if (record->event.pressed) { + SEND_STRING("```" SS_LSFT(SS_TAP(X_ENTER) SS_TAP(X_ENTER)) "```" SS_TAP(X_UP)); + char_to_del = 4; + } + break; + case ADMINS: + if (record->event.pressed) { + send_shifted_strings_add("admin", "/aurora/status"); + } + break; + case PRESCRIPTION: + if (record->event.pressed) { + SEND_STRING("55\t12122019\t"); + char_to_del = 8; + } + break; + case FOURS: + if (record->event.pressed) { + SEND_STRING("4444333322221111\t1\t12\t21\t123\n"); + char_to_del = 16; + } + break; + + case G_ADD: + if (record->event.pressed) { + send_string_remembering_length("git add "); + } + break; + case G_BRCH: + if (record->event.pressed) { + send_shifted_strings_add("git branch ", "-d "); + } + break; + case G_C: + if (record->event.pressed) { + send_string_remembering_length("git c[Heckout/Ommit]"); + layer_on(GIT_C); + } + break; + case G_CHEC: + if (!record->event.pressed) { + bool shifted = get_mods() & MOD_MASK_SHIFT; + clear_mods(); + + backspace_n_times(15); + SEND_STRING("heckout "); + char_to_del = 13; + if (shifted) { + SEND_STRING("-b "); + char_to_del = 16; + } + layer_off(GIT_C); + } + break; + case G_COMM: + if (!record->event.pressed) { + bool shifted = get_mods() & MOD_MASK_SHIFT; + clear_mods(); + + backspace_n_times(15); + SEND_STRING("ommit -"); + char_to_del = 15; + if (shifted) { + SEND_STRING("a"); + char_to_del = 16; + } + SEND_STRING("m \"\"" SS_TAP(X_LEFT)); + layer_off(GIT_C); + } + break; + case G_DEV: + if (record->event.pressed) { + send_shifted_strings("develop", "master"); + } + break; + case G_DIFF: + if (record->event.pressed) { + send_string_remembering_length("git diff "); + } + break; + case G_FTCH: + if (record->event.pressed) { + send_string_remembering_length("git fetch "); + } + break; + case G_LOG: + if (record->event.pressed) { + send_string_remembering_length("git log "); + } + break; + case G_MERG: + if (record->event.pressed) { + send_string_remembering_length("git merge "); + } + break; + case G_P: + if (record->event.pressed) { + send_shifted_strings_add("git pu", "sh -u "); + } + break; + case G_RST: + if (record->event.pressed) { + send_string_remembering_length("git reset "); + } + break; + case G_S: + if (!record->event.pressed) { + send_string_remembering_length("git s[taSh/How/taTus]"); + layer_on(GIT_S); + } + break; + case G_SHOW: + if (!record->event.pressed) { + backspace_n_times(16); + SEND_STRING("how "); + char_to_del = 9; + layer_off(GIT_S); + } + break; + case G_STSH: + if (!record->event.pressed) { + bool shifted = get_mods() & MOD_MASK_SHIFT; + clear_mods(); + + backspace_n_times(16); + SEND_STRING("tash "); + char_to_del = 10; + + if (shifted) { + clear_mods(); + SEND_STRING("apply "); + + char_to_del = 16; + } + + layer_off(GIT_S); + } + break; + case G_STAT: + if (!record->event.pressed) { + backspace_n_times(16); + SEND_STRING("tatus "); + char_to_del = 11; + layer_off(GIT_S); + } + break; + + case CTL_ALT_START ... CTL_ALT_END: + if (record->event.pressed) { + if (is_win) { + tap_code16(LCTL(keycode - CTL_ALT_START)); + } else { + tap_code16(LALT(keycode - CTL_ALT_START)); + } + } + break; + } + + return process_record_keymap(keycode, record); +} diff --git a/users/art/art.h b/users/art/art.h new file mode 100644 index 000000000..58b005b93 --- /dev/null +++ b/users/art/art.h @@ -0,0 +1,69 @@ +#pragma once +#include QMK_KEYBOARD_H + +#define CTL_ALT(kc) (CTL_ALT_START + ((kc) & 0xff)) + +extern bool is_win; + +enum layer_names { + QWERTY, + WORKMAN, + BASE, //only specific for split75 +#if defined(KEYBOARD_wheatfield_split75) + QWERTY_MOD, + LAYOUT_CHG, +#elif defined(KEYBOARD_ergodone) + FKEYS, + CTRL_NAV, + SHIFT_NAV, +#endif + + MEDIA, + COMBOS, + STRINGS, + CONFIG, + NAV, + NUMPAD, + GIT, + GIT_C, + GIT_S +}; + +enum custom_keycodes_art { + CTRL_CTV = SAFE_RANGE, + CTRL_LCTV, + CTRL_CAV, + SARCASM, + + TOG_OS, + CTR_ALT, + OS_CTRL, + OS_WIN, + + TILD_BLOCK, + ADMINS, + PRESCRIPTION, + FOURS, + + G_ADD, + G_BRCH, + G_C, + G_CHEC, + G_COMM, + G_DEV, + G_DIFF, + G_FTCH, + G_LOG, + G_MERG, + G_P, + G_RST, + G_S, + G_STAT, + G_STSH, + G_SHOW, + + CTL_ALT_START, + CTL_ALT_END = CTL_ALT_START + 0xff, + + NEW_SAFE_RANGE //for keymap specific codes +}; diff --git a/users/art/config.h b/users/art/config.h new file mode 100644 index 000000000..72419ff37 --- /dev/null +++ b/users/art/config.h @@ -0,0 +1,4 @@ +#pragma once + +#undef TAPPING_TOGGLE +#define TAPPING_TOGGLE 2 diff --git a/users/art/rules.mk b/users/art/rules.mk new file mode 100644 index 000000000..2b701eb94 --- /dev/null +++ b/users/art/rules.mk @@ -0,0 +1 @@ +SRC += art.c
\ No newline at end of file |