From 1bb77c087502de19fe5e403f519be321ba2c85f5 Mon Sep 17 00:00:00 2001 From: Drashna Jaelre Date: Fri, 20 Apr 2018 17:53:19 -0700 Subject: [PATCH] Update to drashna keymaps and userspace (#2756) * Re-add NO_SECRETS option * Add Thumb Clusters defines for default layout * Minor tweaks * More Minor tweaks * Revert Orthodox layers and move function keys around * Fix keymap so it will compile under the Infinity Since I haven't added 'pretty' layouts to it yet * Cleanup of userspace * Cleanup keymaps * OMG fix Workman * Move mods layer key around * Reduce debounce in Ergodox EZ * Fix Infinity layers * Add list of pins used by Ergdox EZ for easy reference * Revert "Reduce debounce in Ergodox EZ" This reverts commit 8a3db2673b419ef8032c40a6d29156cef632f9cd. * Add Clicky toggle to Orthodox * Fix Audio Clicky keycode * Enable Faux Clicky by default * Add Unicode stuff --- keyboards/orthodox/keymaps/drashna/keymap.c | 14 +-- layouts/community/ergodox/drashna/keymap.c | 50 ++++---- layouts/community/ergodox/drashna/notes.txt | 6 + layouts/community/ergodox/drashna/rules.mk | 4 +- quantum/process_keycode/process_audio.c | 2 +- users/drashna/config.h | 7 +- users/drashna/drashna.c | 68 ++++++++++- users/drashna/drashna.h | 125 ++++++++++++++++---- users/drashna/rules.mk | 4 +- 9 files changed, 213 insertions(+), 67 deletions(-) create mode 100644 layouts/community/ergodox/drashna/notes.txt diff --git a/keyboards/orthodox/keymaps/drashna/keymap.c b/keyboards/orthodox/keymaps/drashna/keymap.c index 48054014..ed5f32b9 100644 --- a/keyboards/orthodox/keymaps/drashna/keymap.c +++ b/keyboards/orthodox/keymaps/drashna/keymap.c @@ -65,20 +65,20 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [_LOWER] = LAYOUT(\ - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, - KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F11, KC_F12, _______, _______, XXXXXXX, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, - _______, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, _______, _______, _______, _______, _______, _______, XXXXXXX, KC_PGUP, KC_COMM, KC_DOT, KC_PGDN, _______ + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, + KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_PGUP, KC_PGDN, KC_HOME, KC_END, _______, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, + KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, _______, _______, _______, _______, KC_COMM, KC_DOT, _______, _______ ), [_RAISE] = LAYOUT(\ - KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, - KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F11, KC_F12, _______, KC_RCTL, XXXXXXX, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, - _______, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, _______, _______, _______, _______, _______, _______, XXXXXXX, KC_HOME, KC_COMM, KC_DOT, KC_END, _______ + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, + _______, _______, _______, _______, _______, _______, KC_PGUP, KC_PGDN, KC_HOME, KC_END, _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_COMM, KC_DOT, _______, _______ ), [_ADJUST] = LAYOUT(\ KC_MAKE,KC_RESET, EPRM, _______, _______, _______, _______, _______, _______, _______, _______, _______, - RGB_SMOD,RGB_HUI, KC_FXCL, AUD_ON, AUD_OFF, AG_NORM, _______, _______, _______, _______, AG_SWAP, KC_QWERTY, KC_COLEMAK, KC_DVORAK, KC_WORKMAN, TG(_MODS), + RGB_SMOD,RGB_HUI, CK_TOGG, AUD_ON, AUD_OFF, AG_NORM, _______, _______, _______, _______, AG_SWAP, KC_QWERTY, KC_COLEMAK, KC_DVORAK, KC_WORKMAN, TG(_MODS), KC_RGB_T,RGB_HUD, MU_ON, MU_OFF, MU_TOG, MU_MOD, _______, _______, _______, _______, _______, _______, MG_NKRO, KC_MUTE, KC_VOLD, KC_VOLU, KC_MNXT, KC_MPLY ) diff --git a/layouts/community/ergodox/drashna/keymap.c b/layouts/community/ergodox/drashna/keymap.c index f29c57f2..7ff103ed 100644 --- a/layouts/community/ergodox/drashna/keymap.c +++ b/layouts/community/ergodox/drashna/keymap.c @@ -28,7 +28,7 @@ along with this program. If not, see . bool skip_leds = false; - +#ifdef KEYBOARD_ergodox_ez const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Keymap 0: QWERTY Layer * @@ -56,14 +56,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // left hand // right hand KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, OSL(_MOUS), OSL(_MOUS), KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_TAB, _________________QWERTY_L1_________________, TG(_DIABLO), TG(_DIABLO), _________________QWERTY_R1_________________, KC_BSLS, - TG(_MODS), _________________QWERTY_L2_________________, _________________QWERTY_R2_________________, GUI_T(KC_QUOT), + SH_TT, _________________QWERTY_L2_________________, _________________QWERTY_R2_________________, KC_QUOT, KC_MLSF, _________________QWERTY_L3_________________, TG(_GAMEPAD), TG(_GAMEPAD), _________________QWERTY_R3_________________, KC_MRSF, LT(_SYMB,KC_GRV), ___________ERGODOX_BOTTOM_LEFT_____________, ___________ERGODOX_BOTTOM_RIGHT____________, TT(_SYMB), - ALT_T(KC_APP), KC_LGUI, KC_RGUI, CTL_T(KC_ESCAPE), - KC_HOME, KC_PGUP, - KC_SPACE,KC_BSPC, KC_END, KC_PGDN, KC_DEL, KC_ENTER - - + __________________ERGODOX_THUMB_CLUSTER_____________________ ), /* Keymap 0: COLEMAK layer * @@ -92,12 +88,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // left hand // right hand KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, OSL(_MOUS), OSL(_MOUS), KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_TAB, _________________COLEMAK_L1________________, TG(_DIABLO), TG(_DIABLO), _________________COLEMAK_R1________________, KC_BSLS, - TG(_MODS), _________________COLEMAK_L2________________, _________________COLEMAK_R2________________, GUI_T(KC_QUOT), + SH_TT, _________________COLEMAK_L2________________, _________________COLEMAK_R2________________, KC_QUOT, KC_MLSF, _________________COLEMAK_L3________________, TG(_GAMEPAD), TG(_GAMEPAD), _________________COLEMAK_R3________________, KC_MRSF, LT(_SYMB,KC_GRV), ___________ERGODOX_BOTTOM_LEFT_____________, ___________ERGODOX_BOTTOM_RIGHT____________, TT(_SYMB), - ALT_T(KC_APP), KC_LGUI, KC_RGUI, CTL_T(KC_ESCAPE), - KC_HOME, KC_PGUP, - KC_SPACE,KC_BSPC, KC_END, KC_PGDN, KC_DEL, KC_ENTER + __________________ERGODOX_THUMB_CLUSTER_____________________ ), /* Keymap 0: DVORAK Layout * @@ -126,12 +120,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // left hand // right hand KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, OSL(_MOUS), OSL(_MOUS), KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSLS, KC_TAB, _________________DVORAK_L1_________________, TG(_DIABLO), TG(_DIABLO), _________________DVORAK_R1_________________, KC_SLSH, - TG(_MODS), _________________DVORAK_L2_________________, _________________DVORAK_R2_________________, GUI_T(KC_MINS), + SH_TT, _________________DVORAK_L2_________________, _________________DVORAK_R2_________________, KC_MINS, KC_MLSF, _________________DVORAK_L3_________________, TG(_GAMEPAD), TG(_GAMEPAD), _________________DVORAK_R3_________________, KC_MRSF, LT(_SYMB,KC_GRV), ___________ERGODOX_BOTTOM_LEFT_____________, ___________ERGODOX_BOTTOM_RIGHT____________, TT(_SYMB), - ALT_T(KC_APP), KC_LGUI, KC_RGUI, CTL_T(KC_ESCAPE), - KC_HOME, KC_PGUP, - KC_SPACE,KC_BSPC, KC_END, KC_PGDN, KC_DEL, KC_ENTER + __________________ERGODOX_THUMB_CLUSTER_____________________ ), /* Keymap 0: WORKMAN layer * @@ -160,12 +152,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // left hand KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, OSL(_MOUS), OSL(_MOUS), KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_TAB, _________________WORKMAN_L1________________, TG(_DIABLO), TG(_DIABLO), _________________WORKMAN_R1________________, KC_BSLS, - TG(_MODS), _________________WORKMAN_L2________________, _________________WORKMAN_R2________________, GUI_T(KC_QUOT), + SH_TT, _________________WORKMAN_L2________________, _________________WORKMAN_R2________________, KC_QUOT, KC_MLSF, _________________WORKMAN_L3________________, TG(_GAMEPAD), TG(_GAMEPAD), _________________WORKMAN_R3________________, KC_MRSF, LT(_SYMB,KC_GRV), ___________ERGODOX_BOTTOM_LEFT_____________, ___________ERGODOX_BOTTOM_RIGHT____________, TT(_SYMB), - ALT_T(KC_APP), KC_LGUI, KC_RGUI, CTL_T(KC_ESCAPE), - KC_HOME, KC_PGUP, - KC_SPACE,KC_BSPC, KC_END, KC_PGDN, KC_DEL, KC_ENTER + __________________ERGODOX_THUMB_CLUSTER_____________________ ), // Reverts OSM(Shift) to normal Shifts. However, may not need since we fixed the issue with RDP (LOCAL RESOURCES) @@ -203,9 +193,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [_SYMB] = LAYOUT_ergodox_pretty( EPRM, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_QWERTY, KC_QWERTY, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, - KC_RST, KC_EXLM, KC_AT, KC_LCBR, KC_RCBR, KC_PIPE, KC_WORKMAN, KC_DVORAK, KC_PPLS, KC_KP_7, KC_KP_8, KC_KP_9, KC_PAST, KC_F12, + KC_RST, KC_EXLM, KC_AT, KC_LCBR, KC_RCBR, KC_PIPE, KC_COLEMAK, KC_WORKMAN, KC_PPLS, KC_KP_7, KC_KP_8, KC_KP_9, KC_PAST, KC_F12, KC_MAKE, KC_HASH, KC_DLR, KC_LPRN, KC_RPRN, KC_GRAVE, KC_PMNS, KC_KP_4, KC_KP_5, KC_KP_6, KC_PSLS, KC_PSCREEN, - VRSN, KC_PERC, KC_CIRC, KC_LBRC, KC_RBRC, KC_TILD, KC_COLEMAK, KC_COLEMAK, KC_NLCK, KC_KP_1, KC_KP_2, KC_KP_3, KC_PEQL, KC_PAUSE, + VRSN, KC_PERC, KC_CIRC, KC_LBRC, KC_RBRC, KC_TILD, KC_DVORAK, TG(_MODS), KC_NLCK, KC_KP_1, KC_KP_2, KC_KP_3, KC_PEQL, KC_PAUSE, KC_TRNS, KC_AMPR, KC_ASTR, KC_COLN, KC_SCLN, KC_KP_0, KC_KP_0, KC_PDOT, KC_PENT, KC_TRNS, RGB_SMOD, KC_RGB_T, KC_TRNS, KC_TRNS, RGB_HUI, KC_TRNS, @@ -238,7 +228,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_F1, KC_K, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TAB, KC_G, KC_A, KC_S, KC_D, KC_F, KC_I, KC_O, KC_NO, KC_NO, KC_NO, KC_NO, KC_LCTL, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_TRNS, TG(_GAMEPAD), KC_N, KC_M, KC_NO, KC_NO, KC_NO, KC_NO, - KC_G, KC_U, KC_I, KC_Y, KC_T, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_NO, + KC_GRV, KC_U, KC_I, KC_Y, KC_T, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_NO, KC_O, KC_P, KC_HYPR, MAGIC_TOGGLE_NKRO, KC_LGUI, KC_NO, KC_V, KC_SPC, KC_H, KC_PGDN, KC_DEL, KC_ENTER @@ -309,7 +299,19 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), }; - +#else // KEYBOARD_ergodox_ez +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_QWERTY] = LAYOUT_ergodox_wrapper(KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, OSL(_MOUS), KC_TAB, _________________QWERTY_L1_________________, TG(_DIABLO), KC_BSPC, _________________QWERTY_L2_________________, KC_MLSF, _________________QWERTY_L3_________________, TG(_GAMEPAD), LT(_SYMB, KC_GRV), ___________ERGODOX_BOTTOM_LEFT_____________, ALT_T(KC_APP), KC_LGUI, KC_HOME, KC_SPACE, KC_BSPC, KC_END, OSL(_MOUS), KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, TG(_DIABLO), _________________QWERTY_R1_________________, KC_BSLS, _________________QWERTY_R2_________________, GUI_T(KC_QUOT), TG(_GAMEPAD), _________________QWERTY_R3_________________, KC_MRSF, ___________ERGODOX_BOTTOM_RIGHT____________, TT(_SYMB), KC_RGUI, CTL_T(KC_ESCAPE), KC_PGUP, KC_PGDOWN, KC_DELETE, KC_ENTER), + [_COLEMAK] = LAYOUT_ergodox_wrapper(KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, OSL(_MOUS), KC_TAB, _________________COLEMAK_L1________________, TG(_DIABLO), KC_BSPC, _________________COLEMAK_L2________________, KC_MLSF, _________________COLEMAK_L3________________, TG(_GAMEPAD), LT(_SYMB, KC_GRV), ___________ERGODOX_BOTTOM_LEFT_____________, ALT_T(KC_APP), KC_LGUI, KC_HOME, KC_SPACE, KC_BSPC, KC_END, OSL(_MOUS), KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, TG(_DIABLO), _________________COLEMAK_R1________________, KC_BSLS, _________________COLEMAK_R2________________, GUI_T(KC_QUOT), TG(_GAMEPAD), _________________COLEMAK_R3________________, KC_MRSF, ___________ERGODOX_BOTTOM_RIGHT____________, TT(_SYMB), KC_RGUI, CTL_T(KC_ESCAPE), KC_PGUP, KC_PGDOWN, KC_DELETE, KC_ENTER), + [_DVORAK] = LAYOUT_ergodox_wrapper(KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, OSL(_MOUS), KC_TAB, _________________DVORAK_L1_________________, TG(_DIABLO), KC_BSPC, _________________DVORAK_L2_________________, KC_MLSF, _________________DVORAK_L3_________________, TG(_GAMEPAD), LT(_SYMB, KC_GRV), ___________ERGODOX_BOTTOM_LEFT_____________, ALT_T(KC_APP), KC_LGUI, KC_HOME, KC_SPACE, KC_BSPC, KC_END, OSL(_MOUS), KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSLS, TG(_DIABLO), _________________DVORAK_R1_________________, KC_SLSH, _________________DVORAK_R2_________________, GUI_T(KC_MINS), TG(_GAMEPAD), _________________DVORAK_R3_________________, KC_MRSF, ___________ERGODOX_BOTTOM_RIGHT____________, TT(_SYMB), KC_RGUI, CTL_T(KC_ESCAPE), KC_PGUP, KC_PGDOWN, KC_DELETE, KC_ENTER), + [_WORKMAN] = LAYOUT_ergodox_wrapper(KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, OSL(_MOUS), KC_TAB, _________________WORKMAN_L1________________, TG(_DIABLO), KC_BSPC, _________________WORKMAN_L2________________, KC_MLSF, _________________WORKMAN_L3________________, TG(_GAMEPAD), LT(_SYMB, KC_GRV), ___________ERGODOX_BOTTOM_LEFT_____________, ALT_T(KC_APP), KC_LGUI, KC_HOME, KC_SPACE, KC_BSPC, KC_END, OSL(_MOUS), KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, TG(_DIABLO), _________________WORKMAN_R1________________, KC_BSLS, _________________WORKMAN_R2________________, GUI_T(KC_QUOT), TG(_GAMEPAD), _________________WORKMAN_R3________________, KC_MRSF, ___________ERGODOX_BOTTOM_RIGHT____________, TT(_SYMB), KC_RGUI, CTL_T(KC_ESCAPE), KC_PGUP, KC_PGDOWN, KC_DELETE, KC_ENTER), + [_MODS] = LAYOUT_ergodox(KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LSFT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_RSFT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + [_SYMB] = LAYOUT_ergodox(EPRM, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, TG(_MODS), KC_RESET, KC_EXLM, KC_AT, KC_LCBR, KC_RCBR, KC_PIPE, KC_WORKMAN, KC_MAKE, KC_HASH, KC_DLR, KC_LPRN, KC_RPRN, KC_GRAVE, VRSN, KC_PERC, KC_CIRC, KC_LBRACKET, KC_RBRACKET, KC_TILD, KC_COLEMAK, KC_TRNS, KC_AMPR, KC_ASTR, KC_COLN, KC_SCOLON, RGB_SMOD, KC_RGB_T, RGB_HUI, RGB_M_R, RGB_M_SW, RGB_HUD, KC_QWERTY, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_DVORAK, KC_KP_PLUS, KC_KP_7, KC_KP_8, KC_KP_9, KC_KP_ASTERISK, KC_F12, KC_KP_MINUS, KC_KP_4, KC_KP_5, KC_KP_6, KC_KP_SLASH, KC_PSCREEN, KC_COLEMAK, KC_NUMLOCK, KC_KP_1, KC_KP_2, KC_KP_3, KC_EQUAL, KC_PAUSE, KC_KP_0, KC_KP_0, KC_KP_DOT, KC_KP_ENTER, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_KP_DOT, KC_KP_0, KC_KP_ENTER), + [_GAMEPAD] = LAYOUT_ergodox(KC_ESC, KC_TRNS, KC_TRNS, KC_TRNS, HYPR(KC_D), HYPR(KC_Q), HYPR(KC_GRV), KC_TRNS, KC_F9, KC_F10, KC_F11, KC_F12, KC_NO, KC_NO, KC_F1, KC_K, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TAB, KC_G, KC_A, KC_S, KC_D, KC_F, KC_I, KC_O, KC_NO, KC_NO, KC_NO, KC_NO, KC_LCTL, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_TRNS, TG(_GAMEPAD), KC_N, KC_M, KC_NO, KC_NO, KC_NO, KC_NO, KC_GRV, KC_U, KC_I, KC_Y, KC_T, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_NO, KC_O, KC_P, KC_HYPR, MAGIC_TOGGLE_NKRO, KC_LGUI, KC_NO, KC_V, KC_SPC, KC_H, KC_PGDN, KC_DEL, KC_ENTER), + [_DIABLO] = LAYOUT_ergodox(KC_ESC, KC_V, KC_D, KC_LALT, KC_NO, KC_NO, KC_NO, KC_TRNS, KC_F9, KC_F10, KC_F11, KC_F12, KC_NO, KC_NO, KC_TAB, KC_S, KC_I, KC_F, KC_M, KC_T, KC_TRNS, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_Q, KC_1, KC_2, KC_3, KC_4, KC_G, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_LCTL, KC_D3_1, KC_D3_2, KC_D3_3, KC_D3_4, KC_Z, KC_NO, KC_NO, KC_N, KC_M, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_L, KC_J, KC_NO, KC_NO, KC_F, KC_NO, SFT_T(KC_SPACE), ALT_T(KC_Q), KC_DIABLO_CLEAR, KC_PGDN, KC_DEL, KC_ENT), + [_MOUS] = LAYOUT_ergodox(KC_NO, KC_SEC1, KC_SEC2, KC_SEC3, KC_SEC4, KC_SEC5, KC_TRNS, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_MS_U, KC_NO, KC_NO, KC_NO, KC_TRNS, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_MS_L, KC_MS_D, KC_MS_R, KC_NO, KC_NO, KC_NO, KC_ACL0, KC_ACL1, KC_ACL2, KC_NO, KC_NO, KC_NO, KC_ACL0, KC_ACL1, KC_ACL2, KC_NO, KC_NO, KC_TRNS, KC_TRNS, KC_NO, KC_MUTE, KC_VOLD, KC_VOLU, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_WH_U, KC_NO, KC_BTN1, KC_BTN2, KC_WH_D, KC_BTN3, KC_BTN4, KC_BTN5), +}; +#endif // KEYBOARD_ergodox_ez bool process_record_keymap(uint16_t keycode, keyrecord_t *record) { @@ -327,8 +329,6 @@ bool process_record_keymap(uint16_t keycode, keyrecord_t *record) { return true; } - - void matrix_init_keymap(void) { // Runs boot tasks for keyboard }; diff --git a/layouts/community/ergodox/drashna/notes.txt b/layouts/community/ergodox/drashna/notes.txt new file mode 100644 index 00000000..0f3959ff --- /dev/null +++ b/layouts/community/ergodox/drashna/notes.txt @@ -0,0 +1,6 @@ +Pins used by Ergodox EZ + +Column Pins: F0 F1 F4 F5 F6 F7 +Row Pins : B0 B1 B2 B3 D2 D3 C6 +LEDs : D6 B5 B6 B7 +: diff --git a/layouts/community/ergodox/drashna/rules.mk b/layouts/community/ergodox/drashna/rules.mk index 12f100d6..536d5308 100644 --- a/layouts/community/ergodox/drashna/rules.mk +++ b/layouts/community/ergodox/drashna/rules.mk @@ -1,7 +1,9 @@ TAP_DANCE_ENABLE = yes SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend COMMAND_ENABLE = yes # Commands for debug and configuration -RGBLIGHT_ENABLE = yes +ifeq ($(strip $(KEYBOARD)), ergodox_ez) + RGBLIGHT_ENABLE = yes +endif CONSOLE_ENABLE = no BOOTMAGIC_ENABLE = yes diff --git a/quantum/process_keycode/process_audio.c b/quantum/process_keycode/process_audio.c index 2d92e406..fc0f23ee 100644 --- a/quantum/process_keycode/process_audio.c +++ b/quantum/process_keycode/process_audio.c @@ -108,7 +108,7 @@ bool process_audio(uint16_t keycode, keyrecord_t *record) { } - if ( (clicky_enable && keycode != CLICKY_TOGGLE) || (!clicky_enable && keycode == CLICKY_TOGGLE) ) { + if ( clicky_enable ) { if (record->event.pressed) { stop_all_notes(); clicky_play();; diff --git a/users/drashna/config.h b/users/drashna/config.h index f9b0d4d1..e48f7235 100644 --- a/users/drashna/config.h +++ b/users/drashna/config.h @@ -4,6 +4,7 @@ #ifdef AUDIO_ENABLE #define AUDIO_CLICKY +#define AUDIO_CLICKY_ON #define STARTUP_SONG SONG(E1M1_DOOM) #define GOODBYE_SONG SONG(SONIC_RING) #define DEFAULT_LAYER_SONGS { SONG(QWERTY_SOUND), \ @@ -16,7 +17,7 @@ #ifdef RGBLIGHT_ENABLE #ifndef KEYBOARD_ergodox_ez #define RGBLIGHT_SLEEP - #endif + #endif // !KEYBOARD_ergodox_ez #endif // RGBLIGHT_ENABLE @@ -51,8 +52,8 @@ #ifdef TAPPING_TERM #undef TAPPING_TERM -#endif -#define TAPPING_TERM 160 +#endif // TAPPING_TERM +#define TAPPING_TERM 176 // Disable action_get_macro and fn_actions, since we don't use these diff --git a/users/drashna/drashna.c b/users/drashna/drashna.c index 73bd249e..d9d412b0 100644 --- a/users/drashna/drashna.c +++ b/users/drashna/drashna.c @@ -41,8 +41,13 @@ float fauxclicky_pressed[][2] = SONG(S__NOTE(_A6)); // change to you float fauxclicky_released[][2] = SONG(S__NOTE(_A6)); // change to your tastes #endif // FAUXCLICKY_ENABLE +float tone_copy[][2] = SONG(SCROLL_LOCK_ON_SOUND); +float tone_paste[][2] = SONG(SCROLL_LOCK_OFF_SOUND); + + bool faux_click_enabled = false; bool is_overwatch = false; +static uint16_t copy_paste_timer; #ifdef RGBLIGHT_ENABLE bool rgb_layer_change = true; #endif @@ -198,17 +203,21 @@ void matrix_scan_user(void) { matrix_scan_keymap(); } +void tap(uint16_t keycode){ + register_code(keycode); + unregister_code(keycode); +}; + // This block is for all of the gaming macros, as they were all doing // the same thing, but with differring text sent. bool send_game_macro(const char *str, keyrecord_t *record, bool override) { if (!record->event.pressed || override) { clear_keyboard(); - register_code(is_overwatch ? KC_BSPC : KC_ENTER); - unregister_code(is_overwatch ? KC_BSPC : KC_ENTER); + tap(is_overwatch ? KC_BSPC : KC_ENTER); wait_ms(50); send_string(str); - register_code(KC_ENTER); - unregister_code(KC_ENTER); + wait_ms(50); + tap(KC_ENTER); } if (override) wait_ms(3000); return false; @@ -402,6 +411,56 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { } return true; break; #endif // RGBLIGHT_ENABLE + + + case KC_CCCV: // One key copy/paste + if(record->event.pressed){ + copy_paste_timer = timer_read(); + } else { + if (timer_elapsed(copy_paste_timer) > TAPPING_TERM) { // Hold, copy + register_code(KC_LCTL); + tap(KC_C); + unregister_code(KC_LCTL); +#ifdef AUDIO_ENABLE + PLAY_SONG(tone_copy); +#endif + } else { // Tap, paste + register_code(KC_LCTL); + tap(KC_V); + unregister_code(KC_LCTL); +#ifdef AUDIO_ENABLE + PLAY_SONG(tone_paste); +#endif + } + } + return false; + break; + +#ifdef UNICODE_ENABLE + case UC_FLIP: // (╯°□°)╯ ︵ ┻━┻ + if (record->event.pressed) { + register_code(KC_RSFT); + tap(KC_9); + unregister_code(KC_RSFT); + process_unicode((0x256F | QK_UNICODE), record); // Arm + process_unicode((0x00B0 | QK_UNICODE), record); // Eye + process_unicode((0x25A1 | QK_UNICODE), record); // Mouth + process_unicode((0x00B0 | QK_UNICODE), record); // Eye + register_code(KC_RSFT); + tap(KC_0); + unregister_code(KC_RSFT); + process_unicode((0x256F | QK_UNICODE), record); // Arm + tap(KC_SPC); + process_unicode((0x0361 | QK_UNICODE), record); // Flippy + tap(KC_SPC); + process_unicode((0x253B | QK_UNICODE), record); // Table + process_unicode((0x2501 | QK_UNICODE), record); // Table + process_unicode((0x253B | QK_UNICODE), record); // Table + } + return false; + break; +#endif // UNICODE_ENABLE + } return process_record_keymap(keycode, record); } @@ -413,6 +472,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { uint32_t layer_state_set_user(uint32_t state) { #ifdef RGBLIGHT_ENABLE uint8_t default_layer = eeconfig_read_default_layer(); + if (rgb_layer_change) { switch (biton32(state)) { case _NAV: diff --git a/users/drashna/drashna.h b/users/drashna/drashna.h index b7cbaa44..746c7e20 100644 --- a/users/drashna/drashna.h +++ b/users/drashna/drashna.h @@ -20,25 +20,25 @@ along with this program. If not, see . #include "quantum.h" // Define layer names -#define _QWERTY 0 -#define _NUMLOCK 0 -#define _COLEMAK 1 -#define _DVORAK 2 -#define _WORKMAN 3 -#define _MODS 4 -//#define _MISC 5 -#define _NAV 6 -#define _COVECUBE 7 -#define _SYMB 8 -#define _GAMEPAD 9 -#define _DIABLO 10 -#define _MOUS 11 -#define _MACROS 12 -#define _MEDIA 13 -#define _LOWER 14 -#define _RAISE 15 -#define _ADJUST 16 - +enum userspace_layers { + _QWERTY = 0, + _NUMLOCK = 0, + _COLEMAK, + _DVORAK, + _WORKMAN, + _MODS, + _NAV, + _COVECUBE, + _SYMB, + _GAMEPAD, + _DIABLO, + _MOUS, + _MACROS, + _MEDIA, + _LOWER, + _RAISE, + _ADJUST, +}; //define modifiers #define MODS_SHIFT_MASK (MOD_BIT(KC_LSHIFT)|MOD_BIT(KC_RSHIFT)) @@ -83,6 +83,10 @@ enum userspace_custom_keycodes { KC_SECRET_3, KC_SECRET_4, KC_SECRET_5, + KC_CCCV, +#ifdef UNICODE_ENABLE + UC_FLIP, +#endif //UNICODE_ENABLE NEW_SAFE_RANGE //use "NEWPLACEHOLDER for keymap specific codes }; @@ -107,6 +111,72 @@ enum { }; #endif // TAP_DANCE_ENABLE +#ifdef UNICODEMAP_ENABLE + +/* use X(n) to call the */ + + +enum unicode_name { + THINK, // thinking face 🤔 + GRIN, // grinning face 😊 + SMRK, // smirk 😏 + WEARY, // good shit 😩 + UNAMU, // unamused 😒 + + SNEK, // snke 🐍 + PENGUIN, // 🐧 + DRAGON, // 🐉 + MONKEY, // 🐒 + CHICK, // 🐥 + + OKOK, // 👌 + EFFU, // 🖕 + INUP, // 👆 + THUP, // 👍 + THDN, // 👎 + + BBB, // dat B 🅱 + POO, // poop 💩 + HUNDR, // 100 💯 + EGGPL, // EGGPLANT 🍆 + WATER, // wet 💦 + TUMBLER, // 🥃 + + LIT, // fire 🔥 + IRONY, // ‽ + DEGREE, // ° +}; + + +const uint32_t PROGMEM unicode_map[] = { + [THINK] = 0x1F914, + [GRIN] = 0x1F600, + [BBB] = 0x1F171, + [POO] = 0x1F4A9, + [HUNDR] = 0x1F4AF, + [SMRK] = 0x1F60F, + [WEARY] = 0x1F629, + [EGGPL] = 0x1F346, + [WATER] = 0x1F4A6, + [LIT] = 0x1F525, + [UNAMU] = 0x1F612, + [SNEK] = 0x1F40D, + [PENGUIN] = 0x1F427, + [BOAR] = 0x1F417, + [MONKEY] = 0x1F412, + [CHICK] = 0x1F425, + [DRAGON] = 0x1F409, + [OKOK] = 0x1F44C, + [EFFU] = 0x1F595, + [INUP] = 0x1F446, + [THDN] = 0x1F44E, + [THUP] = 0x1F44D, + [TUMBLER] = 0x1F943, + [IRONY] = 0x0203D, + [DEGREE] = 0x000B0, + }; + +#endif //UNICODEMAP_ENABLE // Custom Keycodes for Diablo 3 layer // But since TD() doesn't work when tap dance is disabled @@ -199,13 +269,13 @@ enum { #define _________________DVORAK_R3_________________ KC_B, KC_M, KC_W, KC_V, CTL_T(KC_Z) -#define _________________WORKMAN_L1________________ KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y -#define _________________WORKMAN_L2________________ KC_A, KC_O, KC_E, KC_U, KC_I -#define _________________WORKMAN_L3________________ CTL_T(KC_SCLN),KC_Q, KC_J, KC_K, KC_X +#define _________________WORKMAN_L1________________ KC_Q, KC_D, KC_R, KC_W, KC_B +#define _________________WORKMAN_L2________________ KC_A, KC_S, KC_H, KC_T, KC_G +#define _________________WORKMAN_L3________________ CTL_T(KC_Z), KC_X, KC_M, KC_C, KC_V -#define _________________WORKMAN_R1________________ KC_F, KC_G, KC_C, KC_R, KC_L -#define _________________WORKMAN_R2________________ KC_D, KC_H, KC_T, KC_N, KC_S -#define _________________WORKMAN_R3________________ KC_B, KC_M, KC_W, KC_V, CTL_T(KC_Z) +#define _________________WORKMAN_R1________________ KC_J, KC_F, KC_U, KC_P, KC_SCLN +#define _________________WORKMAN_R2________________ KC_Y, KC_N, KC_E, KC_O, KC_I +#define _________________WORKMAN_R3________________ KC_K, KC_L, KC_COMM, KC_DOT, CTL_T(KC_SLASH) #define _________________NORMAN_L1_________________ KC_Q, KC_W, KC_D, KC_F, KC_K @@ -226,4 +296,9 @@ enum { #define ___________ERGODOX_BOTTOM_RIGHT____________ KC_LEFT, KC_DOWN, KC_UP, KC_RGHT +#define __________________ERGODOX_THUMB_CLUSTER_____________________ ALT_T(KC_APP), KC_LGUI, KC_RGUI, CTL_T(KC_ESCAPE), \ + KC_HOME, KC_PGUP, \ + KC_SPACE,KC_BSPC, KC_END, KC_PGDN, KC_DEL, KC_ENTER + + #endif diff --git a/users/drashna/rules.mk b/users/drashna/rules.mk index 062ecd3c..123c0cc7 100644 --- a/users/drashna/rules.mk +++ b/users/drashna/rules.mk @@ -2,4 +2,6 @@ SRC += drashna.c EXTRAFLAGS += -flto - +ifeq ($(strip $(NO_SECRETS)), yes) + OPT_DEFS += -DNO_SECRETS +endif