diff options
Diffstat (limited to 'users/ericgebhart/extensions/keycodes.h')
-rwxr-xr-x | users/ericgebhart/extensions/keycodes.h | 523 |
1 files changed, 0 insertions, 523 deletions
diff --git a/users/ericgebhart/extensions/keycodes.h b/users/ericgebhart/extensions/keycodes.h deleted file mode 100755 index eafdfbad43..0000000000 --- a/users/ericgebhart/extensions/keycodes.h +++ /dev/null @@ -1,523 +0,0 @@ -#pragma once -/* - Copyright 2018-2022 Eric Gebhart <[email protected]> - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -#include "quantum.h" -#include "process_keycode/process_tap_dance.h" -#include "eeconfig.h" -#include "keymap_bepo.h" -//#include "keymap_us_international.h" -#include "keymap_us_international_linux.h" -#include "lang.h" -#include "ericgebhart.h" - -//#define ONESHOT_TAP_TOGGLE 2 /* Tapping this number of times holds the key until tapped once again. */ - -// #define DEFAULT_LANG EN // US_INT // EN, BEPO, US_INT, EURkey - -#define KEY_NAME(NAME, ...) NAME, -#define BLANK(...) - -bool process_record_secrets(uint16_t keycode, keyrecord_t *record); - -enum userspace_custom_keycodes { - // Get all the custom keys from the defs if we can. - ALT_LOCAL_KEYS_START = SAFE_RANGE, -#ifdef ALT_LOCAL_ENABLE -#undef MK_KEY -#define MK_KEY KEY_NAME -#undef MK_SKEY -#define MK_SKEY KEY_NAME -#include "altlocal_keys.def" -#undef MK_KEY -#undef MK_SKEY -#endif - ALT_LOCAL_KEYS_END, - -#ifdef ACCENTED_KEYS_ENABLE -#undef ACCENTED -#define ACCENTED KEY_NAME -#include "accented_keys.def" -#undef ACCENTED -#endif - -#ifdef TAP_HOLD_ENABLE -#undef TP_TPL -#define TP_TPL KEY_NAME -#undef TP_SML -#define TP_SML KEY_NAME -#undef OPEN_OCL -#define OPEN_OCL KEY_NAME -#undef OPEN_OCL_ND -#define OPEN_OCL_ND KEY_NAME -#include "tap_hold.def" -#undef OPEN_OCL -#undef OPEN_OCL_ND -#undef TP_TPL -#undef TP_SML -#endif - -#ifdef UNICODE_ENABLE -#undef UC_STR -#define UC_STR KEY_NAME -#include "unicode.def" -#undef UC_STR -#endif - -#ifdef SEND_STRING_ENABLE -#undef SEND_STR -#define SEND_STR KEY_NAME -#undef SEND_STR_DELAY -#define SEND_STR_DELAY KEY_NAME -#include "send_string.def" -#undef SEND_STR -#undef SEND_STR_DELAY -#endif - -#ifdef SMART_LOCK_ENABLE -#undef SMLM -#define SMLM KEY_NAME -#undef SMLL -#define SMLL KEY_NAME -#include "smart_lock.def" -#undef SMLM -#undef SMLL -#endif - -#ifdef MOD_LOCK_ENABLE -#undef IGNORE_KC -#define IGNORE_KC BLANK -#undef MODL -#define MODL KEY_NAME -#include "mod_lock.def" -#undef IGNORE_KC -#undef MODL -#endif - - -#undef IGNORE_KEY -#define IGNORE_KEY BLANK -#undef CANCEL_KEY -#define CANCEL_KEY BLANK -#undef ONESHOT -#undef NSHOT -#define ONESHOT KEY_NAME -#define NSHOT KEY_NAME - -#ifdef NSHOT_ENABLE -#include "nshot.def" -#else - TS_RCTL, - TS_LCTL, -#endif - -#ifdef ONESHOT_MOD_ENABLE -#include "oneshot.def" -#endif - -#undef IGNORE_KEY -#undef CANCEL_KEY -#undef ONESHOT -#undef NSHOT - -#ifdef SWAPPER_ENABLE -#undef SWAPPER_KEY -#define SWAPPER_KEY KEY_NAME -#include "swapper.def" -#undef SWAPPER_KEY -#endif - -#ifdef NOT_DEAD_ENABLE -#undef NOT_DEAD -#define NOT_DEAD KEY_NAME -#include "not_dead.def" -#undef NOT_DEAD -#endif - -#include "custom_keys.def" - NEW_SAFE_RANGE -}; - -#define FIRST_LAYER (BEGINNING_OF_BASE_LAYERS + 1) - -#define TL_DQUO TLKC(_DQUO) -#define TL_QUOT TLKC(_QUOT) -#define TL_COMM TLKC(_COMM) -#define TL_DOT TLKC(_DOT) -#define TL_SCLN TLKC(_SCLN) -#define TL_SLSH TLKC(_SLSH) -#define TL_EXLM TLKC(_EXLM) -#define TL_MINS TLKC(_MINS) -#define TL_LPRN TLKC(_LPRN) -#define TL_LCBR TLKC(_LCBR) -#ifdef SYMBOL_LAYER_ENABLE -#define TL_DOT_SYMB LT(LN_SYMB, LANG_KC(TL_DOT)) -#endif - - -#define BP_LT BP_LABK -#define BP_GT BP_RABK -#define BP_TAB KC_TAB -#define US_GT US_RABK -#define US_LT US_LABK -#define US_TAB KC_TAB -#define US_DCMM KC_COMM // us doesn't have this dead key. - -// this is odd, there is interplay between this and -// the not-dead extension. - and tap-hold not-dead. -#undef US_TILD -#define US_TILD KC_TILD -// redefine us_circ so we actually get a circ. -#undef US_CIRC -#define US_CIRC KC_CIRC -#define US_EQUAL KC_EQUAL -// redefine us_quote so we actually get a quote. -#undef US_QUOT -#define US_QUOT KC_QUOT - -#define US_PRINT_SCREEN KC_PRINT_SCREEN -#define US_SCROLL_LOCK KC_SCROLL_LOCK -#define US_PAUSE KC_PAUSE -#define BP_PRINT_SCREEN KC_PRINT_SCREEN -#define BP_SCROLL_LOCK KC_SCROLL_LOCK -#define BP_PAUSE KC_PAUSE - -#define BP_F1 KC_F1 -#define BP_F2 KC_F2 -#define BP_F3 KC_F3 -#define BP_F4 KC_F4 -#define BP_F5 KC_F5 -#define BP_F6 KC_F6 -#define BP_F7 KC_F7 -#define BP_F8 KC_F8 -#define BP_F9 KC_F9 -#define BP_F10 KC_F10 -#define BP_F11 KC_F11 -#define BP_F12 KC_F12 -#define BP_TRNS KC_TRNS - -#define US_F1 KC_F1 -#define US_F2 KC_F2 -#define US_F3 KC_F3 -#define US_F4 KC_F4 -#define US_F5 KC_F5 -#define US_F6 KC_F6 -#define US_F7 KC_F7 -#define US_F8 KC_F8 -#define US_F9 KC_F9 -#define US_F10 KC_F10 -#define US_F11 KC_F11 -#define US_F12 KC_F12 -#define US_TRNS KC_TRNS - -#ifdef KEYPAD_LAYER_ENABLE -#define TT_KEYPAD TT(LANG_N(_KEYPAD)) -#define MO_KEYPAD MO(LANG_N(_KEYPAD)) -#else -#define TT_KEYPAD ___ -#define MO_KEYPAD ___ -#endif - -#ifdef SYMBOL_LAYER_ENABLE -#define TT_SYMB TT(LANG_N(_SYMB)) -#define MO_SYMB MO(LANG_N(_SYMB)) -#define OSL_SYMB OSL(LANG_N(_SYMB)) -#else -#define TT_SYMB ___ -#define MO_SYMB ___ -#define OSL_SYMB ___ -#endif - -#ifdef TOPROWS_LAYER_ENABLE -#define TT_TOPROWS TT(LANG_N(_TOPROWS)) -#define MO_TOPROWS MO(LANG_N(_TOPROWS)) -#else -#define TT_TOPROWS ___ -#define MO_TOPROWS ___ -#endif - -#ifdef RGB_LAYER_ENABLE -#define MO_RGB MO(_RGB) -#else -#define MO_RGB ___ -#endif - -#ifdef ADJUST_LAYER_ENABLE -#define MO_ADJUST MO(_ADJUST) -#else -#define MO_ADJUST ___ -#endif - -#ifdef ACCENTS_MORTE_LAYER_ENABLE -//#define LN_ACCENTS_MORTE LANG_N(_ACCENTS_MORTE) -#define OSL_ACCENTS_MORTE OSL(LANG_N(_ACCENTS_MORTE)) -#else -#define OSL_ACCENTS_MORTE ___ -#endif - -#ifdef ACCENTS_LAYER_ENABLE -#define LN_ACCENTS LANG_N(_ACCENTS) -#define OSL_ACCENTS OSL(LN_ACCENTS) -#else -#define OSL_ACCENTS ___ -#endif - -#ifdef MORTE_LAYER_ENABLE -#define LN_MORTE LANG_N(_MORTE) -#define OSL_MORTE OSL(LN_MORTE) -#else -#define OSL_MORTE ___ -#endif - -#define CTLGUI_T(kc) MT(MOD_LGUI | MOD_LCTL, kc) -#define SFTGUI_T(kc) MT(MOD_LGUI | MOD_LSFT, kc) -#define ALTGUI_T(kc) MT(MOD_LGUI | MOD_LALT, kc) - -#define ALT_ENT ALGR_T(KC_ENT) // Alt oor nter -#define CTL_ENT CTL_T(KC_ENT) // ctrl or space -#define CTL_SPC CTL_T(KC_SPC) // ctrl or space -#define CTL_BSPC CTL_T(KC_BSPC) // ctrl or backspace -#define ALT_DEL ALT_T(KC_DEL) // Alt or delete -#define GUI_ESC GUI_T(KC_ESC) // Gui or escape -#define ALGR_SYMB ALGR_T(TG(LANG_N(_SYMB))) // Alt gre or toggle symbol layer - -// one shot on tap, or hold like usual -#define OSLCTL_CTL CTL_T(OS_LCTL) -#define OSLSFT_SFT SFT_T(OS_LSFT) -#define OSLALT_ALT ALT_T(OS_LALT) -#define OSLGUI_GUI GUI_T(OS_LGUI) - -/* miryoku */ -/* esc_media, space_navnm, tab_navm, ENT_SYM, BSPC_TOPR, del_fun */ -/* hands down */ -/* TL_COMM, TL_DOT_SYMB, GUI_ESC, ALT_ENT, SPC_TOPR, BSPC */ - -// Lots of LT options. My thumb keys. -#ifdef TOPROWS_LAYER_ENABLE -#define LN_TOPROWS LANG_N(_TOPROWS) -#else -#define LN_TOPROWS KC_NO -#endif - -#ifdef SYMBOL_LAYER_ENABLE -# define LN_SYMB LANG_N(_SYMB) -# define TH_LTR_SYM LT(LN_SYMB, THUMB_LETTER) -#else -# define TH_LTR_SYM THUMB_LETTER -#endif - -#define TH_LTR_NAV LT(_NAV, THUMB_LETTER) - -#define LN_KEYPAD LANG_N(_KEYPAD) - -#define ACCENTS_RALT MT(MOD_RALT, OSL_ACCENTS) -#define ACCENTS_CTL MT(MOD_LCTL, OSL_ACCENTS) -#define ENT_SYM LT(LN_SYMB, KC_ENT) -#define ENT_NAV LT(_NAV, KC_ENT) -#define ENT_TOPR LT(LN_TOPROWS, KC_ENT) - -#define ESC_TOPR LT(LN_TOPROWS, KC_ESC) -#define ESC_SYMB LT(LN_SYMB, KC_ESC) -#define ESC_NUM LT(LN_KEYPAD, KC_ESC) -#define ESC_MEDIA LT(_MEDIA, KC_ESC) - -#define DEL_FUN LT(_FUN, KC_DEL) -#define TAB_NAVM LT(_NAVm, KC_TAB) -#define TAB_NUM LT(LN_KEYPAD, KC_TAB) -#define I_SYMB LT(LN_SYMB, KC_I) - -#define SPC_NAVm LT(_NAVm, KC_SPC) -#define SPC_NAVnm LT(_NAVnm, KC_SPC) -#define SPC_NAV LT(_NAV, KC_SPC) -#define SPC_SYMB LT(LN_SYMB, KC_SPC) -#define SPC_TOPR LT(LN_TOPROWS, KC_SPC) -#define SPC_LAYR LT(_LAYERS, KC_SPC) -#define SPC_ADJ LT(_ADJUST, KC_SPC) -#define SPC_NUM LT(LN_KEYPAD, KC_SPC) - -#define BSPC_NAVm LT(_NAVm, KC_BSPC) -#define BSPC_NAV LT(_NAV, KC_BSPC) -#ifdef SYMBOL_LAYER_ENABLE -#define BSPC_SYMB LT(LN_SYMB, KC_BSPC) -#else -#define BSPC_SYMB KC_BSPC -#endif -#define BSPC_TOPR LT(LN_TOPROWS, KC_BSPC) -#define BSPC_NUM LT(LN_KEYPAD, KC_BSPC) -#define BSPC_ALT MT(MOD_LALT, KC_BSPC) -#define BSPC_MEDIA LT(_MEDIA, KC_BSPC) - -#define KC_BKTAB LSFT(KC_TAB) - -// layer toggles -#define LAYER_OSL OSL(_LAYERS) -#define SYM_OSL OSL(LN_SYMB) -#define SYM_TG TG(LN_SYMB) -#define SYM_MO MO(LN_SYMB) -#define NAV_TG TG(_NAV) -#define COMBO_REF_TG_EN TG(_COMBO_REF) -#define NUM_OSL OSL(LN_KEYPAD) -#define NUM_TO TO(LN_KEYPAD) -#define FUN_OSL OSL(LN_FUNC) -#define SYS_OSL OSL(LN_SYSTEM) -#define SYS_TG TG(LN_SYSTEM) - -// Shortcuts -#define S_CUT S(KC_DEL) -#define S_COPY C(KC_INS) -#define S_PASTE S(KC_INS) -#define S_UNDO C(KC_Z) -#define S_REDO C(KC_Y) -#define S_SAVE C(KC_S) -#define S_ALL C(KC_A) -#define S_BACK A(KC_LEFT) -#define S_FWD A(KC_RIGHT) -#define C_BSPC C(KC_BSPC) -#define SCREEN S(C(KC_PSCR)) - -// One Shot Mods keycodes, -#define KC_MLSF OSM(MOD_LSFT) -#define KC_MRSF OSM(MOD_RSFT) -#define OS_LGUI OSM(MOD_LGUI) -#define OS_RGUI OSM(MOD_RGUI) -#define OS_LSFT OSM(MOD_LSFT) -#define OS_RSFT OSM(MOD_RSFT) -#define OS_LCTL OSM(MOD_LCTL) -#define OS_RCTL OSM(MOD_RCTL) -#define OS_LALT OSM(MOD_LALT) -#define OS_RALT OSM(MOD_RALT) -#define ALT_APP ALT_T(KC_APP) - -#define MG_NKRO MAGIC_TOGGLE_NKRO - -#define UC_IRNY UC(0x2E2E) -#define UC_CLUE UC(0x203D) - - -//// TAP DANCE - -typedef struct { - bool is_press_action; - int state; -} tdtap; - -enum { - SINGLE_TAP = 1, - SINGLE_HOLD = 2, - DOUBLE_TAP = 3, - DOUBLE_HOLD = 4, - DOUBLE_SINGLE_TAP = 5, //send two single taps - TRIPLE_TAP = 6, - TRIPLE_HOLD = 7 -}; - -//Tap Dance Declarations -enum { - TD_ESC_CAPS = 0, - TD_TAB_BKTAB = 1, - TD_MDIA_SYMB = 2, - TD_HOME_END = 3, - TD_XMONAD_ESC = 4, - TD_DEF_LAYER_SW = 5, - TD_DEF_OS_LAYER_SW = 6, - TD_MOUSE_BTNS = 7, - TD_DVORAK_BEPO = 8, - TD_UP_HOME = 9, - TD_DOWN_END = 10, - TD_RIGHT_TAB = 11, - TD_LEFT_BACKTAB = 12 -}; - - -// Tap dance -#define TAB_BKTAB TD(TD_TAB_BKTAB) // Tab or backtab tapdance. -#define MDIA_SYMB_KP_LAYERS TD(TD_MDIA_SYMB) // MDIA, symb, keypad, layouts layer tapdance toggle. -#define DEF_LAYER_SW TD(TD_DEF_LAYER_SW) // dvorak, dvorak_on_bepo, bepo default layer -#define DEF_OS_LAYER_SW TD(TD_DEF_OS_LAYER_SW) // dvorak, dvorak_on_bepo, bepo default layer -#define HOME_END TD(TD_HOME_END) // home or end tapdance. -#define XMONAD_ESC TD(TD_XMONAD_ESC) // Escape, dvorak, media or symb. - tap and hold tap dance. 1-4 -#define DVORAK_ET_BEPO TD(TD_DVORAK_BEPO) // Escape, dvorak, media or symb. - tap and hold tap dance. 1-4 -#define TDMOUSE_BTNS TD(TD_MOUSE_BTNS) // hmmm. 1-5 -#define RIGHT_TAB TD(TD_RIGHT_TAB) // Bad idea these 4. Maybe with good timing... -#define LEFT_BACKTAB TD(TD_LEFT_BACKTAB) -#define UP_HOME TD(TD_UP_HOME) -#define DOWN_END TD(TD_DOWN_END) // No! Down Down Not End.... - -// HOME ROW LAYER TOGGLE (LT) and Shift. -// both sides of the home row have "shift, ___, media , symb, ___" and "___, symb, media, ___, shift". -// so pinky fingers are shift when held and the index and second fingers are symbol and -// media layers when held. - -// The most portable copy/paste keys (windows (mostly), linux, and some terminal emulators). -// The KC_CCCV key takes care of the last two... -#define MK_CUT LSFT(KC_DEL) // shift + delete -#define MK_COPY LCTL(KC_INS) // ctrl + insert -#define MK_PASTE LSFT(KC_INS) // shift + insert -#define EOT LCTL(KC_D) -#define NAK LCTL(KC_U) -#define XPASTE LCTL(LSFT(KC_V)) -#define UNDO LCTL(KC_Z) -#define XCOPY LCTL(LSFT(KC_C)) - -#undef ___ //kint defines it as KC_NO -#define ___ KC_TRNS -#define XXX KC_NO -#define ____ _TRNS - -// Blocking keys -#define _X_ XXX -#define ___X___ XXX -#define ___X2___ XXX, XXX -#define ___X3___ ___X2___, XXX -#define ___X4___ ___X3___, XXX -#define ___X5___ ___X4___, XXX -#define ___X6___ ___X5___, XXX -#define ___X12___ ___X6___, ___X6___ -#define ___X15___ ___X5___, ___X5___, ___X5___ - -// Transparent keys -#define ___2___ ___, ___ -#define ___3___ ___2___, ___ -#define ___4___ ___3___, ___ -#define ___5___ ___4___, ___ -#define ___6___ ___5___, ___ -#define ___10___ ___6___, ___4___ -#define ___12___ ___6___, ___6___ -#define ___14___ ___5___, ___4___, ___5___ -#define ___15___ ___5___, ___5___, ___5___ -#define ___16___ ___15___, ___ - -#define ____2_ ____, ____ -#define ____3_ ____2_, ____ -#define ____4_ ____3_, ____ -#define ____5_ ____4_, ____ -#define ____6_ ____5_, ____ -#define ____10_ ____6_, ____4_ -#define ____12_ ____6_, ____6_ -#define ____14_ ____5_, ____4_, ____5_ -#define ____15_ ____5_, ____5_, ____5_ -#define ____16_ ____15_, ____ - -int on_qwerty(void); - -#ifdef TAP_DANCES_ENABLE -int cur_dance (tap_dance_state_t *state); - -//for the x tap dance. Put it here so it can be used in any keymap -void x_finished (tap_dance_state_t *state, void *user_data); -void x_reset (tap_dance_state_t *state, void *user_data); -#endif |