summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorartjomsR <artjomsR@users.noreply.github.com>2020-05-19 22:05:32 +0100
committerGitHub <noreply@github.com>2020-05-19 22:05:32 +0100
commit209942366b7da264d349c37ac6f4f69a3484b526 (patch)
tree03be56be116ef5fde2a82c1da70efb09dccf5cb7
parent494b34b63f84617ddc56ff6dc0395505a33eb24e (diff)
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.c446
-rw-r--r--keyboards/wheatfield/split75/keymaps/art/keymap.c334
-rw-r--r--keyboards/wheatfield/split75/keymaps/art/rules.mk1
-rw-r--r--keyboards/wheatfield/split75/keymaps/default/keymap.c4
-rw-r--r--users/art/art.c464
-rw-r--r--users/art/art.h69
-rw-r--r--users/art/config.h4
-rw-r--r--users/art/rules.mk1
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 0000000000..7fcbd5b615
--- /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 e540f1cb62..c10059bb7d 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 0000000000..5f8cb68ad0
--- /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 069eb6bd10..30057f881a 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 0000000000..5596e237f8
--- /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 0000000000..58b005b933
--- /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 0000000000..72419ff376
--- /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 0000000000..2b701eb949
--- /dev/null
+++ b/users/art/rules.mk
@@ -0,0 +1 @@
+SRC += art.c \ No newline at end of file