123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225 |
- /*
- 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___)
|