/* Copyright 2018-2022 Eric Gebhart 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 . */ /******************************************************************/ /* */ /* 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___)