diff options
author | Drashna Jael're <drashna@live.com> | 2022-11-12 17:10:04 -0800 |
---|---|---|
committer | Drashna Jael're <drashna@live.com> | 2022-11-12 17:10:04 -0800 |
commit | 731633e133de428408cd313fbd65fb0a36145672 (patch) | |
tree | b788a9fe150a353ce20d338848d3dab2bbc42879 /users/ericgebhart/layers/nav.h | |
parent | 6cc9513ab0cd5e21354c51ab83a89af9f2eb517e (diff) | |
parent | 2e39647618295e4a2ba685cfb8e3ab36622e92ee (diff) |
Merge remote-tracking branch 'origin/master' into develop
Diffstat (limited to 'users/ericgebhart/layers/nav.h')
-rw-r--r-- | users/ericgebhart/layers/nav.h | 199 |
1 files changed, 199 insertions, 0 deletions
diff --git a/users/ericgebhart/layers/nav.h b/users/ericgebhart/layers/nav.h new file mode 100644 index 0000000000..97243872e2 --- /dev/null +++ b/users/ericgebhart/layers/nav.h @@ -0,0 +1,199 @@ +/* + Copyright 2018-2022 Eric Gebhart <e.a.gebhart@gmail.com> + + 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/>. +*/ +/********************************************************************************/ +/* NAVIGATION - MOUSE, Scroll, Buttons, Arrows, Tab, Home, page up/down, End */ +/* Navigation layers: */ +/* 3 row Layer */ +/* 4 Row Layer with repeated and swapped VI arrows, and Scroll wheel. */ +/********************************************************************************/ +/* */ +/* Navigation layer with optional 4th Row.... */ +/* */ +/* M = Mouse */ +/* B = Button */ +/* W = Wheel */ +/* AC = Acceleration */ +/* CCCV = Tap -> Ctrl-C, hold for double tap duration -> Ctrl-V */ +/* CTCN = Tap -> Ctrl-T, hold for double tap duration -> Ctrl-N */ +/* CWCQ = Tap -> Ctrl-W, hold for double tap duration -> Ctrl-Q */ +/* HOME = TAB & PGDN */ +/* END = BKTAB & PGUP -- See combos. */ +/* */ +/* MB5 MB4 MB3 MB2 MB1 MAC0 | CTCN MB1 MB2 MB3 MB4 MB5 */ +/* TAB MLeft MDown MUp MRight MAC1 | CCCV Left Down UP Right TAB */ +/* WLeft WDown WUp WRight MAC2 | CWCQ TAB PGDN PGUP BKTAB */ +/* */ +/* Left Down Up Right CCCV | CCCV MLeft MDown MUp MRight */ +/* */ +/********************************************************************************/ + +#ifdef MOUSEKEY_ENABLE +#define ___MOUSE_LDUR___ KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R +#define ___MWHEEL_LDUR___ KC_WH_L, KC_WH_D, KC_WH_U, KC_WH_R +// really BTN 1, 2, 3, 8, 9 - according to xev. +#define ___MOUSE_BTNS_R___ KC_BTN1, KC_BTN3, KC_BTN2, KC_BTN4, KC_BTN5 +#define ___4MOUSE_BTNS_R___ KC_BTN1, KC_BTN3, KC_BTN2, KC_BTN4 +#define ___3MOUSE_BTNS_R___ KC_BTN1, KC_BTN3, KC_BTN2 +// really BTN 9, 8, 3, 2, 1 - according to xev +#define ___4MOUSE_BTNS_L___ KC_BTN4, KC_BTN2, KC_BTN3, KC_BTN1 +#define ___MOUSE_BTNS_L___ KC_BTN5, KC_BTN4, KC_BTN2, KC_BTN3, KC_BTN1 +#define ___MOUSE_ACCL_012___ KC_ACL0, KC_ACL1, KC_ACL2 +#define ___MACCL___ ___MOUSE_ACCL_012___ +#endif + +#define ___VI_ARROWS___ KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT +#define ___HOME_PGDN_PGUP_END___ KC_HOME, KC_PGDN, KC_PGUP, KC_END +#define ___TAB_PGDN_PGUP_BKTAB___ KC_TAB, KC_PGDN, KC_PGUP, KC_BKTAB +// home and end are combos. tab/pgdn = home, bktab/pgup = end. + +#define ___REDO_CUT_COPY_PASTE_UNDO___ S_REDO, S_CUT, S_COPY, S_PASTE, S_UNDO + +#ifdef MOUSEKEY_ENABLE +#define ___NAV_La_1___ ___SML_MODS_L___, KC_ACL0 +#define ___NAV_L_1___ ___4MOUSE_BTNS_L___, KC_ACL0 +#define ___NAV_L_2___ ___MOUSE_LDUR___, KC_ACL1 +#define ___NAV_L_3___ ___MWHEEL_LDUR___, KC_ACL2 +#define ___NAV_L_4___ ___VI_ARROWS___, KC_CCCV + +#define ___NAV_R_1___ KC_CTCN, ___4MOUSE_BTNS_R___ +#define ___NAV_R_4___ KC_CCCV, ___MOUSE_LDUR___ + +#else + +#define ___NAV_La_1___ ___NAV_L_1___ +#define ___NAV_L_1___ ___OS_MODS_L___ +#define ___NAV_L_2___ ___SML_MODS_L___, ___ +#define ___NAV_L_3___ ___5___ +#define ___NAV_L_4___ ___VI_ARROWS___, KC_CCCV + +#define ___NAV_R_1___ KC_CTCN, ___SML_MODS_R___ +#define ___NAV_R_4___ KC_CCCV, ___4___ + +#endif // end mousekey + +#define ___NAV_R_2___ KC_CCCV, ___VI_ARROWS___ +#define ___NAV_R_3___ KC_CWCQ, ___HOME_PGDN_PGUP_END___ +#define ___NAV_Ra_3___ KC_CWCQ, ___TAB_PGDN_PGUP_BKTAB___ + +#ifdef MOUSEKEY_ENABLE + +#define ___6NAV_L_1___ ___MOUSE_BTNS_L___, KC_ACL0 +#define ___6NAV_L_2___ TAB_BKTAB, ___MOUSE_LDUR___, KC_ACL1 +#define ___6NAV_L_3___ ___, ___MWHEEL_LDUR___, KC_ACL2 +#define ___6NAV_L_4___ ___, ___VI_ARROWS___, KC_CCCV + +#define ___6NAV_R_1___ KC_CTCN, ___MOUSE_BTNS_R___ +#define ___6NAV_R_4___ KC_CCCV, ___MOUSE_LDUR___, ___ + +#else + +#define ___6NAV_L_1___ ___6___ +#define ___6NAV_L_2___ TAB_BKTAB, ___SML_MODS_L___, ___ + +#define ___6NAV_L_3___ ___, ___5___ +#define ___6NAV_L_4___ ___, ___VI_ARROWS___, KC_CCCV + +#define ___6NAV_R_1___ KC_CTCN, ___SML_MODS_R___ +#define ___6NAV_R_4___ KC_CCCV, ___4___, ___ + +#endif // end mousekey + +#define ___6NAV_R_2___ KC_CCCV, ___VI_ARROWS___, TAB_BKTAB +#define ___6NAV_R_3___ KC_CWCQ, ___HOME_PGDN_PGUP_END___, ___ + +// compact. 3x10 per layer. +#define ___10_NAV_1a___ ___NAV_La_1___, ___NAV_R_1___ +#define ___10_NAV_1___ ___NAV_L_1___, ___NAV_R_1___ +#define ___10_NAV_2___ ___NAV_L_2___, ___NAV_R_2___ +#define ___10_NAV_3___ ___NAV_L_3___, ___NAV_Ra_3___ + +// designed without mouse, mods on left. +#define ___NAVnm_La_1___ ___NAV_L_1___ +#define ___NAVnm_L_1___ ___SML_MODS_L___ +#define ___NAVnm_L_2___ ___OS_MODS_L___, ___ +#ifdef MOUSEKEY_ENABLE +#define ___NAVnm_L_3___ ___2___, SML_NAVm, ___2___ // get to mouse layer if enabled. +#else +#define ___NAVnm_L_3___ ___5___ +#endif + +#define ___10_NAVnm_1___ ___SML_MODS_L___, ___, ___NAV_R_1___ +#define ___10_NAVnm_2___ ___OS_MODS_L___, ___NAV_R_2___ +#define ___10_NAVnm_3___ ___NAVnm_L_3___, ___NAV_R_3___ + +#ifdef MOUSEKEY_ENABLE +// Mouse layer only. mods on right. +#define ___10_NAVm_1___ ___NAV_L_1___, ___NAV_R_1___ +#define ___10_NAVm_2___ ___NAV_L_2___, ___NAV_R_2___ +#define ___10_NAVm_3___ ___NAV_L_3___, ___NAV_R_3___ +#endif + +/********************************************************************************/ +/* The Navigation LAYER Chunks */ +/********************************************************************************/ +// A Navigation Layer +#define CARTE_NAV \ + carte_de_map("54321 0 ctn 12345", \ + " ldur 1 ccv ldur", \ + " ldur 2 cwq tdubt") + +#define CARTE_NAVA \ + carte_de_map(" gacs 0 ctn 12345", \ + " ldur 1 ccv ldur", \ + " ldur 2 cwq tdubt") + +#define CARTE_NAVnm \ + carte_de_map(" gacsc2 ctn cscag ", \ + " gacs ccv ldur", \ + " __M_ cwq tdubt") + +// currently the same as NAVA +#define CARTE_NAVm \ + carte_de_map(" gacs 0 ctn 12345", \ + " ldur 1 ccv ldur", \ + " ldur 2 cwq tdubt") + +#define CARTE_NAV_miryoku \ + carte_de_map(" rdo ccp undo", \ + " Caps ldur", \ + " Ins HDUE") + +#define CARTE_NAVm_miryoku \ + carte_de_map(" rdo ccp undo", \ + " ldur", \ + " ldur") + + +#ifdef MOUSEKEY_ENABLE +#define ___NAVm_3x10___ ___10_NAVm_1___, ___10_NAVm_2___, ___10_NAVm_3___ +#endif + +#define ___NAVnm_3x10___ ___10_NAVnm_1___, ___10_NAVnm_2___, ___10_NAVnm_3___ +#define ___NAVA_3x10___ ___10_NAV_1a___, ___10_NAV_2___, ___10_NAV_3___ +#define ___NAV_3x10___ ___10_NAV_1___, ___10_NAV_2___, ___10_NAV_3___ +#define ___NAV_3x12___ ___12_NAV_1___, ___12_NAV_2___, ___12_NAV_3___ +#define ___NAV_miryoku___ \ + ___5___, ___redo_cut_copy_paste_undo___, \ + ___5___, KC_CAPS, ___VI_ARROWS___, \ + ___5___, KC_INSERT, ___HOME_PGDN_PGUP_END___ + +#ifdef MOUSEKEY_ENABLE +#define ___NAVm_miryoku___ \ + ___5___, ___redo_cut_copy_paste_undo___, \ + ___5___, ___, ___MOUSE_LDUR___, \ + ___5___, ___, ___MWHEEL_LDUR___, +#endif |