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>
This commit is contained in:
artjomsR 2020-05-19 22:05:32 +01:00 committed by GitHub
parent 494b34b63f
commit 209942366b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
8 changed files with 1195 additions and 130 deletions

View File

@ -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;
}

View File

@ -1,16 +1,95 @@
#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] = {
/* 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
),
[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, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
),
/*QWERT On + Mod ,-----------------------------------------. ,-----------------------------------------------------.
* | | | | | | | | | | | | | | | | | |
* ,-----------. |-----+-----+-----+-----+-----+-----+-----| |-----+-----+-----+-----+-----+-----+-----------+-----|
* | | | | | | | | | | | | | | | | | | | |
* |-----+-----| |-----------------------------------------' ,--------------------------------------------------+-----|
* | | | | |MePrv| Vol+|MeNxt| | | | | | | | | | | | |
* |-----+-----| |---------------------------------------. `--------------------------------------------------+-----|
* | | | | | | Vol-| | | | | | | | | | | | |
* |-----+-----| |-----------------------------------------. `-------------------------------------------------+-----|
* | | | | | | Vol0|MePly| | | | | | | | | | | |
* |-----+-----| |-----------------------------------------' ,-------------------------------------------+-----+-----|
* | | | | QWERTY | | | | | | | | | | | | |
* `-----------' `---------------------------------------' `-------------------------------------------------------'
*/
[QWERTY_MOD] = LAYOUT(
//--------------------------------Left Hand-----------------------------------------------| |--------------------------------Right Hand------------------------------------------------
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
@ -59,131 +174,94 @@ _______, _______, _______, _______, 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
),
/* WORKMAN ,-----------------------------------------. ,-----------------------------------------------------.
* | | | | | | | | | | | | | | | | | |
* ,-----------. |-----+-----+-----+-----+-----+-----+-----| |-----+-----+-----+-----+-----+-----+-----------+-----|
* | | | | | | | | | | | | | | | | | | | |
* |-----+-----| |-----------------------------------------' ,--------------------------------------------------+-----|
* | | | | | | | | | | | | | | | | | | | |
* |-----+-----| |---------------------------------------. `--------------------------------------------------+-----|
* | | | | | | | | | | | | | | | | | | |
* |-----+-----| |-----------------------------------------. `-------------------------------------------------+-----|
* | | | | | | | | | | | | | | | | | | |
* |-----+-----| |-----------------------------------------' ,-------------------------------------------+-----+-----|
* | | | | BASE | | | | | | | | | | | | |
* `-----------' `---------------------------------------' `-------------------------------------------------------'
*/
[WORKMAN] = LAYOUT(
[LAYOUT_CHG] = 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), _______, _______, _______, _______
_______, _______, _______, _______, 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, _______, _______, _______, _______, _______, _______
),
/* MOD ,-----------------------------------------. ,-----------------------------------------------------.
* | | | | | | | | | | | | | | | | | |
* ,-----------. |-----+-----+-----+-----+-----+-----+-----| |-----+-----+-----+-----+-----+-----+-----------+-----|
* | | | | | | | | | | | | | | | | | | | |
* |-----+-----| |-----------------------------------------' ,--------------------------------------------------+-----|
* | | | | | | | | | | | | | | | | | | | |
* |-----+-----| |---------------------------------------. `--------------------------------------------------+-----|
* | | | | | | | | | | | | | | | | | | |
* |-----+-----| |-----------------------------------------. `-------------------------------------------------+-----|
* | | | | | | | | | | | | | | | | | | |
* |-----+-----| |-----------------------------------------' ,-------------------------------------------+-----+-----|
* | | | | BASE | | | | | | | | | | | | |
* `-----------' `---------------------------------------' `-------------------------------------------------------'
*/
[MOD] = LAYOUT(
[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------------------------------------------------
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, 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, _______, _______, _______, _______, _______, _______, _______, _______
),
/* MEDIA ,-----------------------------------------. ,-----------------------------------------------------.
* | | | | | | | | | | | | | | | | | |
* ,-----------. |-----+-----+-----+-----+-----+-----+-----| |-----+-----+-----+-----+-----+-----+-----------+-----|
* | | | | | | | | | | | | | | | | | | | |
* |-----+-----| |-----------------------------------------' ,--------------------------------------------------+-----|
* | | | | | | | | | | | | | | | | | | | |
* |-----+-----| |---------------------------------------. `--------------------------------------------------+-----|
* | | | | | | | | | | | | | | | | | | |
* |-----+-----| |-----------------------------------------. `-------------------------------------------------+-----|
* | | | | | | | Play| | | | | | | | | | | |
* |-----+-----| |-----------------------------------------' ,-------------------------------------------+-----+-----|
* | | | | BASE | | | | | | | | | | | | |
* `-----------' `---------------------------------------' `-------------------------------------------------------'
*/
[MEDIA] = LAYOUT(
//--------------------------------Left Hand-----------------------------------------------| |--------------------------------Right Hand------------------------------------------------
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, KC_MPRV, KC_VOLU, KC_MNXT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, KC_VOLD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, KC_MUTE, KC_MPLY, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, 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
),
/* ,-----------------------------------------. ,-----------------------------------------------------.
* | | | | | | | | | | | | | | | | | |
* ,-----------. |-----+-----+-----+-----+-----+-----+-----| |-----+-----+-----+-----+-----+-----+-----------+-----|
* | | | | | | | | | | | | | | | | | | | |
* |-----+-----| |-----------------------------------------' ,--------------------------------------------------+-----|
* | | | | | | | | | | | | | | | | | | | |
* |-----+-----| |---------------------------------------. `--------------------------------------------------+-----|
* | | | | | | | | | | | | | | | | | | |
* |-----+-----| |-----------------------------------------. `-------------------------------------------------+-----|
* | | | | | | | | | | | | | | | | | | |
* |-----+-----| |-----------------------------------------' ,-------------------------------------------+-----+-----|
* | | | | | | | | | | | | | | | | |
* `-----------' `---------------------------------------' `-------------------------------------------------------'
*/
// [] = 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;
}

View File

@ -0,0 +1 @@
DYNAMIC_MACRO_ENABLE = yes

View File

@ -1,6 +1,8 @@
#include QMK_KEYBOARD_H
#define BASE 0
enum layer_names {
BASE
};
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {

464
users/art/art.c Normal file
View File

@ -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);
}

69
users/art/art.h Normal file
View File

@ -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
};

4
users/art/config.h Normal file
View File

@ -0,0 +1,4 @@
#pragma once
#undef TAPPING_TOGGLE
#define TAPPING_TOGGLE 2

1
users/art/rules.mk Normal file
View File

@ -0,0 +1 @@
SRC += art.c