From 209942366b7da264d349c37ac6f4f69a3484b526 Mon Sep 17 00:00:00 2001 From: artjomsR Date: Tue, 19 May 2020 22:05:32 +0100 Subject: [PATCH] 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 * 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 * Update users/art/art.c Co-authored-by: Ryan * Update users/art/art.c Co-authored-by: Ryan * Update keyboards/ergodone/keymaps/art/keymap.c Co-authored-by: Ryan * Update users/art/art.h Co-authored-by: Ryan * flashing leds to indicate current os * using rshift on shifted layers Co-authored-by: Joel Challis Co-authored-by: Ryan --- keyboards/ergodone/keymaps/art/keymap.c | 446 +++++++++++++++++ .../wheatfield/split75/keymaps/art/keymap.c | 336 ++++++++----- .../wheatfield/split75/keymaps/art/rules.mk | 1 + .../split75/keymaps/default/keymap.c | 4 +- users/art/art.c | 464 ++++++++++++++++++ users/art/art.h | 69 +++ users/art/config.h | 4 + users/art/rules.mk | 1 + 8 files changed, 1195 insertions(+), 130 deletions(-) create mode 100644 keyboards/ergodone/keymaps/art/keymap.c create mode 100644 keyboards/wheatfield/split75/keymaps/art/rules.mk create mode 100644 users/art/art.c create mode 100644 users/art/art.h create mode 100644 users/art/config.h create mode 100644 users/art/rules.mk 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< +#include -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] = { + /* 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 | + * |-----+-----| |-----------------------------------------' ,--------------------------------------------------+-----| + * | 6 | 7 | | Tab | Q | W | E | R | T | | Y | U | I | O | P | [ | ] | \ | End | + * |-----+-----| |---------------------------------------. `--------------------------------------------------+-----| + * | 4 | 5 | | Caps | A | S | D | F | G | | H | J | K | L | ; | ' | Enter | PgUp| + * |-----+-----| |-----------------------------------------. `-------------------------------------------------+-----| + * | 2 | 3 | | Shift | Z | X | C | V | B | | N | M | , | . | / | Shift | Up | PgDn| + * |-----+-----| |-----------------------------------------' ,-------------------------------------------+-----+-----| + * | 0 | 1 | | Ctrl | GUI | Alt |Spac/MEDIA | BSPC| | NAV | Alt | NAV | 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, 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 + ), + /* Base ,-----------------------------------------. ,-----------------------------------------------------. * | ESC | F1 | F2 | F3 | F4 | F5 | F6 | | F7 | F8 | F9 | F10 | F11 | F12 |Print| Ins | Home| * ,-----------. |-----+-----+-----+-----+-----+-----+-----| |-----+-----+-----+-----+-----+-----+-----------+-----| @@ -27,28 +106,64 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [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_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_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 +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 ), - /*QWERT On + Mod ,-----------------------------------------. ,-----------------------------------------------------. - * | | | | | | | | | | | | | | | | | | - * ,-----------. |-----+-----+-----+-----+-----+-----+-----| |-----+-----+-----+-----+-----+-----+-----------+-----| - * | | | | | | | | | | | | | | | | | | | | - * |-----+-----| |-----------------------------------------' ,--------------------------------------------------+-----| - * | | | | |MePrv| Vol+|MeNxt| | | | | | | | | | | | | - * |-----+-----| |---------------------------------------. `--------------------------------------------------+-----| - * | | | | | | Vol-| | | | | | | | | | | | | - * |-----+-----| |-----------------------------------------. `-------------------------------------------------+-----| - * | | | | | | Vol0|MePly| | | | | | | | | | | | - * |-----+-----| |-----------------------------------------' ,-------------------------------------------+-----+-----| - * | | | | QWERTY | | | | | | | | | | | | | - * `-----------' `---------------------------------------' `-------------------------------------------------------' - */ + [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, _______, _______, _______, _______, +_______, _______, _______, _______, _______, _______, _______, _______, _______, TO(QWERTY), _______, _______, _______, _______ + ), + + [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------------------------------------------------ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, +_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, +_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, +_______, _______, _______, _______, SARCASM, _______, CTRL_CTV, _______, _______, _______, _______, _______, _______, _______, _______, _______, +_______, _______, _______, _______, _______, CTRL_CAV, _______, _______, _______, CTRL_LCTV, _______, _______, _______, _______, _______, _______, +_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + + [STRINGS] = LAYOUT( +//--------------------------------Left Hand-----------------------------------------------| |--------------------------------Right Hand------------------------------------------------ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, +_______, _______, TILD_BLOCK, PRESCRIPTION, _______, _______, FOURS, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, +_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, +_______, _______, _______, ADMINS, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, +_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, +_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + [QWERTY_MOD] = LAYOUT( //--------------------------------Left Hand-----------------------------------------------| |--------------------------------Right Hand------------------------------------------------ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, @@ -58,80 +173,68 @@ _______, _______, _______, _______, KC_VOLD, _______, _______, _______, _______, _______, _______, _______, KC_MUTE, KC_MPLY, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, TO(QWERTY),_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), - - /* 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 | - * |-----+-----| |-----------------------------------------' ,--------------------------------------------------+-----| - * | 6 | 7 | | Tab | Q | W | E | R | T | | Y | U | I | O | P | [ | ] | \ | End | - * |-----+-----| |---------------------------------------. `--------------------------------------------------+-----| - * | 4 | 5 | | Caps | A | S | D | F | G | | H | J | K | L | ; | ' | Enter | PgUp| - * |-----+-----| |-----------------------------------------. `-------------------------------------------------+-----| - * | 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| - * `-----------' `---------------------------------------' `-------------------------------------------------------' - */ - [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, -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, LT(MEDIA, KC_SPC),KC_BSPC, MO(MOD), KC_RALT, MO(MOD),KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT + + [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, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), - /* WORKMAN ,-----------------------------------------. ,-----------------------------------------------------. - * | | | | | | | | | | | | | | | | | | - * ,-----------. |-----+-----+-----+-----+-----+-----+-----| |-----+-----+-----+-----+-----+-----+-----------+-----| - * | | | | | | | | | | | | | | | | | | | | - * |-----+-----| |-----------------------------------------' ,--------------------------------------------------+-----| - * | | | | | | | | | | | | | | | | | | | | - * |-----+-----| |---------------------------------------. `--------------------------------------------------+-----| - * | | | | | | | | | | | | | | | | | | | - * |-----+-----| |-----------------------------------------. `-------------------------------------------------+-----| - * | | | | | | | | | | | | | | | | | | | - * |-----+-----| |-----------------------------------------' ,-------------------------------------------+-----+-----| - * | | | | BASE | | | | | | | | | | | | | - * `-----------' `---------------------------------------' `-------------------------------------------------------' - */ - [WORKMAN] = LAYOUT( + [NUMPAD] = 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_8, KC_9, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, +KC_6, KC_7, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, +KC_4, KC_5, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, +KC_2, KC_3, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, +KC_0, KC_1, _______, _______, _______, _______, _______, _______, _______, TO(QWERTY),_______, _______, _______, _______ ), - /* MOD ,-----------------------------------------. ,-----------------------------------------------------. - * | | | | | | | | | | | | | | | | | | - * ,-----------. |-----+-----+-----+-----+-----+-----+-----| |-----+-----+-----+-----+-----+-----+-----------+-----| - * | | | | | | | | | | | | | | | | | | | | - * |-----+-----| |-----------------------------------------' ,--------------------------------------------------+-----| - * | | | | | | | | | | | | | | | | | | | | - * |-----+-----| |---------------------------------------. `--------------------------------------------------+-----| - * | | | | | | | | | | | | | | | | | | | - * |-----+-----| |-----------------------------------------. `-------------------------------------------------+-----| - * | | | | | | | | | | | | | | | | | | | - * |-----+-----| |-----------------------------------------' ,-------------------------------------------+-----+-----| - * | | | | BASE | | | | | | | | | | | | | - * `-----------' `---------------------------------------' `-------------------------------------------------------' - */ - [MOD] = LAYOUT( + [GIT] = 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, _______, _______, _______, -_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, -_______, TO(WORKMAN),TO(BASE), KC_MS_ACCEL0,KC_MS_ACCEL1,KC_MS_ACCEL2, _______, _______, _______, _______, _______, _______, _______, _______ +_______, _______, _______, _______, G_DIFF, G_RST, _______, G_BRCH, _______, G_FTCH, _______, G_P, _______, _______, _______, _______, _______, +_______, _______, _______, G_ADD, G_S, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, +_______, _______, _______, _______, _______, G_C, _______, G_MERG, _______, G_LOG, _______, G_DEV, _______, _______, _______, _______, +_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), - /* MEDIA ,-----------------------------------------. ,-----------------------------------------------------. + [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; ievent.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