diff options
Diffstat (limited to 'users/ericgebhart/layers/symbols.h')
-rw-r--r-- | users/ericgebhart/layers/symbols.h | 225 |
1 files changed, 225 insertions, 0 deletions
diff --git a/users/ericgebhart/layers/symbols.h b/users/ericgebhart/layers/symbols.h new file mode 100644 index 0000000000..272bd9b850 --- /dev/null +++ b/users/ericgebhart/layers/symbols.h @@ -0,0 +1,225 @@ +/* + 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/>. +*/ +/******************************************************************/ +/* */ +/* Symbol layers: */ +/* */ +/* The BEAKL15 Symbol layer with or without additions. */ +/* */ +/* There is the offical beakl symbol layer, an extended symbol */ +/* layer which is expanded with: !?@`'/-;. */ +/* */ +/* Placing these 8 keys in the pinky and index corners */ +/* at the edges of the, 3x3, BEAKL home Region. */ +/* */ +/* Beakl has these keys in it's base layer which isn't the case */ +/* for other layouts like dvorak, colemak, etc. */ +/* */ +/* The third layer moves /:? to more accessible places. */ +/* to make vi keybindings more accessible. */ +/* */ +/* Note that there are 2 widths. 12 and 10. The wider layer adds */ +/* - and ; to the middle row edges. */ +/* */ +/* Official: */ +/* <$> [_] */ +/* - \(")# %{=}| ; */ +/* :*+ &^~ */ +/* */ +/* not yet implemented */ +/* BEAKL27 (punctuation layer): */ +/* ↹@$#↹ ~^` */ +/* ↹<=> [_] */ +/* \(-)+ %{;}! */ +/* *:/⏎ |~& */ +/* */ +/* */ +/* BEAKL Extended symbol layer */ +/* Expanded with: !?@`'/-; */ +/* */ +/* A: */ +/* `<$>' ?[_]- */ +/* - \(")# %{=}| ; */ +/* @:*+; !&^~/ */ +/* */ +/* Optimized for Vi. */ +/* B: */ +/* */ +/* `<$>' ?[_]- */ +/* - \(")# !{:}/ ; */ +/* @=*+; %&^~| */ +/* */ +/* C: */ +/* */ +/* `<$>' ?[_-] */ +/* - \("#) !{:/} ; */ +/* @=*+; %&^~| */ +/* */ +/* */ +/* Both ; and ' could have found their dvorak positions. Analysis showed */ +/* that only caused pinky overuse. Rotating the symbols around Put better */ +/* keys on the index finger which showed a huge improvement in efficiency. */ +/* The same is true of the exclamation point. */ +/* */ + +/* Beakl Wi */ + +/* This Symbol layer does not improve on the above extended symbol */ +/* layers in my opinon, for my usage. */ + +/* The original symbol was the Left side with defined/but/transparent */ +/* right. The regex layer was the opposite. I combined them into one, I am */ +/* not sure of the functionality that might be lost due to that, but they */ +/* are defined as original sans extra tap dance functions. It would be easy to */ +/* make two layers with transparent right and left. There is duplication */ +/* of | and *. */ + +/* Symbols on the left */ +/* .*&+ */ +/* ?!/| */ +/* <>%@ */ + +// regex on the right +/* *[^] */ +/* ?($) */ +/* |{#} */ + +// Altogether +/* .*&+ *[^] */ +/* ?!/| ?($) */ +/* <>%@ |{#} */ +/******************************************************************/ + +// Left +#define ___SB_L1___ _OCLTGT, _DLR, _GT +#define ___SB_L2___ _BSLS, _OCPRN, _OCDQUO, _RPRN, _HASH +#define ___SB_L2c___ _BSLS, _OCPRN, _OCDQUO, _HASH, _RPRN +#define ___SB_L3___ _COLN, _ASTR, _PLUS + +// Right +#define ___SB_R1___ _OCBRC, _UNDS, _RBRC +#define ___SB_R1c___ _OCBRC, _UNDS, _MINS +#define ___SB_R2___ _PERC, _OCCBR, _EQL, _RCBR, _PIPE +#define ___SB_R3___ _AMPR, _CIRC_ND, _TILD_ND + +// a and b... left and right. +#define ___SB_L3b___ _EQL, _ASTR, _PLUS + +#define ___SB_R2a___ _PERC, _OCCBR, _EXLM, _RCBR, _PIPE +#define ___SB_R2b___ _EXLM, _OCCBR, _COLN, _RCBR, _SLSH +#define ___SB_R2c___ _EXLM, _OCCBR, _COLN, _SLSH, _RCBR + +// --------------------------- +// --------------------------- +#define CARTE_SYMB_BEAKL \ + carte_de_map(" <$> [_] ", \ + "-\\(\")# %{=}|;", \ + " :*+ &^~ ") + +#define ___SYMB_BEAKL_3x10___ \ + CHUNK_LANG_MAP(_TRNS, ___SB_L1___, _TRNS, _TRNS, ___SB_R1___, _TRNS, \ + ___SB_L2___, ___SB_R2___, \ + _TRNS, ___SB_L3___, _TRNS, _TRNS, ___SB_R3___, _TRNS) + +// --------------------------- +// A: Extended. +#define CARTE_SYMB_BEAKLA \ + carte_de_map(" `<$>' ?[_]-", \ + " -\\(\")# %{:}|;", \ + " @=*+; !&^~/") + +#define ___SYMB_BEAKLA_3x10___ \ + CHUNK_LANG_MAP(_OCGRV, ___SB_L1___, _OCQUOT, _QUES, ___SB_R1___, _MINS, \ + ___SB_L2___, ___SB_R2a___, \ + _AT, ___SB_L3___, _SCLN, _EXLM, ___SB_R3___, _SLSH) + +// --------------------------- +// B: Extended & Vi +#define CARTE_SYMB_BEAKLB \ + carte_de_map(" `<$>' ?[_]-", \ + " -\\(\")# !{:}/;", \ + " @=*+; %&^~|") + +#define ___SYMB_BEAKLB_3x10___ \ + CHUNK_LANG_MAP(_OCGRV, ___SB_L1___, _OCQUOT, _QUES, ___SB_R1___, _MINS, \ + ___SB_L2___, ___SB_R2b___, \ + _AT, ___SB_L3b___, _SCLN, _PERC, ___SB_R3___, _PIPE) + +// --------------------------- +// C: Extended & Vi, move closing braces to pinky, seldom used. +// because of tap hold - open_openclose feature. +// Also emacs which mostly closes them. +#define CARTE_SYMB_BEAKLC \ + carte_de_map(" `<$>' ?[_-]", \ + " -\\(\"#) !{:/};", \ + " @=*+; %&^~|") + +#define ___SYMB_BEAKLC_3x10___ \ + CHUNK_LANG_MAP(_OCGRV, ___SB_L1___, _OCQUOT, _QUES, ___SB_R1c___, _RBRC, \ + ___SB_L2c___, ___SB_R2c___, \ + _AT, ___SB_L3b___, _SCLN, _PERC, ___SB_R3___, _PIPE) + +// wants ( and ) on the left thumb. +#define CARTE_SYMB_MIRYOKU \ + carte_de_map(" {&.(} ", \ + " :$%^+ ", \ + " ~!@#| ") + +#define ___SYMB_MIRYOKU_3x10___ \ + CHUNK_LANG_MAP(_OCCBR, _AMPR, _DOT, _OCPRN, _RCBR, ____5_, \ + _COLN, _DLR, _PERC, _CIRC_ND, _PLUS, ____5_, \ + _TILD_ND, _EXLM, _AT, _HASH, _PIPE, ____5_) + +// --------------------------- +// WI: the Beakl Wi definition. +#define ___SYMB_BKL_WI_L1___ ___, _DOT, _ASTR, _AMPR, _PLUS +#define ___SYMB_BKL_WI_L2___ ___, _QUES, _EXLM, _SLSH, _PIPE +#define ___SYMB_BKL_WI_L3___ ___, _LT, _GT, _PERC, _AT + +#define ___SYMB_BKL_WI_R1___ _ASTR, _OCBRC, _CIRC_ND, _RBRC, ___ +#define ___SYMB_BKL_WI_R2___ _QUES, _OCPRN, _DLR , _RPRN, ___ +#define ___SYMB_BKL_WI_R3___ _PIPE, _OCCBR, _HASH, _RCBR, ___ + +#define CARTE_SYMB_BEAKLWI \ + carte_de_map(" .*&+ *[^] ", \ + " ?!/| ?($) ", \ + " <>%@ |{#} ") + +#define ___SYMB_BEAKL_WI_3x10___ \ + CHUNK_LANG_MAP(___SYMB_BKL_WI_L1___, ___SYMB_BKL_WI_R1___, \ + ___SYMB_BKL_WI_L2___, ___SYMB_BKL_WI_R2___, \ + ___SYMB_BKL_WI_L3___, ___SYMB_BKL_WI_R3___) + +// --------------------------- +// Neo symbol layer +#define ___SYMB_NEO_L1___ ___, _OCDQUOT, _UNDS, _OCLBRC, _RBRC, _CIRC_ND +#define ___SYMB_NEO_L2___ ___, _SLSH, _MINS, _OCLCBR, _RCBR, _ASTR +#define ___SYMB_NEO_L3___ ___, _HASH, _DLR, _PIPE, _TILD_ND, _OCGRV + +#define ___SYMB_NEO_R1___ _EXLM, _LT, _GT, _EQL, _AMPR +#define ___SYMB_NEO_R2___ _QUES, _OCPRN, _RPRN , _QUOT, _COLN +#define ___SYMB_NEO_R3___ _PLUS, _PERC, _BSLS, _AT, ___ + +#define CARTE_SYMB_NEO \ + carte_de_map("\"_[]^ !<>=&", \ + "/-{}* ?()':", \ + "#$|~` +%\@") + +#define ___SYMB_NEO_3x10___ \ + CHUNK_LANG_MAP(___SYMB_NEO_L1___, ___SYMB_NEO_R1___, \ + ___SYMB_NEO_L2___, ___SYMB_NEO_R2___, \ + ___SYMB_NEO_L3___, ___SYMB_NEO_R3___) |