base_workman.c 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203
  1. /*
  2. * License (GPL):
  3. This program is free software: you can redistribute it and/or modify
  4. it under the terms of the GNU General Public License as published by
  5. the Free Software Foundation, either version 2 of the License, or
  6. (at your option) any later version.
  7. This program is distributed in the hope that it will be useful,
  8. but WITHOUT ANY WARRANTY; without even the implied warranty of
  9. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  10. GNU General Public License for more details.
  11. You should have received a copy of the GNU General Public License
  12. along with this program. If not, see <http://www.gnu.org/licenses/>.
  13. * Author: © 2021 by Jos Boersema
  14. *
  15. */
  16. // --------------------------------------v---------------------------------------
  17. // Configuration:
  18. // --------------------------------------v---------------------------------------
  19. // --------------------------------------^---------------------------------------
  20. // Below here no more comfortable configuration options.....
  21. // --------------------------------------^---------------------------------------
  22. /* Redefine a layer in this file
  23. *
  24. * _Activate_ one or more of the below BASESFILE_LAYER_..., to redefine the layer
  25. * in this file. The version in ./keymap.c will be ignored. Keep in mind to use
  26. * transparent keys (_______) for “hold” layer switch keys on the BASE map, for
  27. * your new layer.
  28. */
  29. // #define BASESFILE_LAYER_ACC
  30. // #define BASESFILE_LAYER_DRA
  31. // #define BASESFILE_LAYER_BON
  32. // #define BASESFILE_LAYER_PAD
  33. // #define BASESFILE_LAYER_MOV
  34. // #define BASESFILE_LAYER_RAR
  35. // #define BASESFILE_LAYER_FUN
  36. /* ⬇ */
  37. /* Layer _..._BASE: Workman, normal BASE layer and 'default' layer
  38. *
  39. * - Dual use keys create a delay in the key (tap/hold keys), therefore
  40. * space is not dual use (most ued key), neither is hyphen.
  41. */
  42. // Process user configuration wrt ‛Default’ or ‛Alternative’ spot for this layout.
  43. # if defined(BASE_WORKMAN__DEF_BASE)
  44. [ _DEF_BASE ] = LAYOUT_redefined (
  45. # elif defined(BASE_WORKMAN__ALT_BASE)
  46. [ _ALT_BASE ] = LAYOUT_redefined (
  47. # endif
  48. /*
  49. Layer _..._BASE (Letters). This is Workman
  50. | Right hand
  51. <pink2 <pinky<ring <middl<index<indx2| indx2>index>middl>ring> pinky>pinky2> // Keys by finger
  52. -o- <|> ... //-o- BASE access
  53. Esc qQ dD· rR· wW· bB· | jJ· fF· uU· pP· :;· Bksp
  54. Tab+LCtl aA sS hH· tT· gG | yY· nN· eE· oO· iI· '"
  55. LSht+_PAD zZ xX mM· cC· vV· | kK· lL· ,< .> /? RSht+_FUN
  56. +_MOV⁵ | +_RAR⁶
  57. ---------------------------------------------------------------------------------------
  58. Left+LAlt Del;_ACC _..._NSY(_DRA) Enter+_MOV| Space _..._NSY(_DRA) LGUI Right;_RAR
  59. hold hold₍₁,₂٭₎ hold | hold₍₁,₂٭₎ hold // switch type
  60. hold₍₂₎ ^-┃-----------------------+--------^ ┃ // ₁₎ both = _DRA
  61. ┗━━━_BON━━━╋┅───────────┄┄┄«or»┄┄┄─+─────────┅┛ // ₂₎ both = _BON
  62. <1 ± <2 <3 <4 | 4> 3> 2> ± 1> // Keys by number
  63. ^³ ^⁴ // Optional more keys
  64. (RGUI) (_MOV)
  65. ₁) Dual hold for _DRA, single hold for _..._NSY. Marked by: ^--…--^
  66. ₂) Hold key “<2” with either٭ key “<3” or “3>” for _BON, single hold “<2” for _ACC. Marked: ┗━━…━━┛
  67. ₃) 'South paw' hardware configuration. Configurable, default shown.
  68. ₄) 'Arrow' hardware configuration Configurable, default shown.
  69. ₃ ₄) There are two more optional hardware keys, to make it easier to compile for
  70. a 12x12x12x11 or 12x12x12x12 layouts.
  71. ₅) Left Shift when pressed with another key. Medium long: to toggle _PAD. Long: toggle _MOV.
  72. ₆) Right shift when pressed with another key. medium long: to toggle _FUN. Long: toggle _RAR.
  73. ₇) Letters marked by ‛·’ are different from Qwerty.
  74. */
  75. //
  76. // <pink2 , <pink, <ring, <midd, <indx, <ind|, indx>, inde>, midd> , ring> , pink> , pink2> ,
  77. // -*!- , , , , , <|,> , , , , , ,
  78. KC_ESC , KC_Q , KC_D , KC_R , KC_W , KC_B , KC_J , KC_F , KC_U , KC_P , KC_SCLN , KC_BSPC ,
  79. LCTL_T ( KC_TAB ) , KC_A , KC_S , KC_H , KC_T , KC_G , KC_Y , KC_N , KC_E , KC_O , KC_I , KC_QUOT ,
  80. CHOLTAP_LSHFT , KC_Z , KC_X , KC_M , KC_C , KC_V , KC_K , KC_L , KC_COMM , KC_DOT , KC_SLSH , CHOLTAP_RSHFT ,
  81. // -----------------------------------------------------------------------------------------------------------------
  82. LALT_T ( KC_LEFT )
  83. # ifdef TRANSMINIVAN_LEFTSIDE
  84. , MO ( _PAD )
  85. # endif
  86. # ifdef MORE_KEY__COMMAND
  87. , MORE_key1_BASE
  88. # endif
  89. # ifdef SWITCH_HOLD_ACC_NSY
  90. , DUO_HOLD , CHOLTAP_ACCE
  91. # else
  92. , CHOLTAP_ACCE , DUO_HOLD
  93. # endif
  94. , LEFTCENTER_THUMB
  95. # ifdef TRANSMINIVAN_MIDLEFT
  96. , TRANS_MIDLEFT
  97. # endif
  98. , RIGHTCENTER_THUMB , DUO_HOLD , KC__YGUI
  99. # ifdef TRANSMINIVAN_RIGHTSIDE
  100. , MO ( _FUN )
  101. # endif
  102. # ifdef MORE_KEY__ARROW
  103. , MORE_key2
  104. # endif
  105. , CHOLTAP_LAYR
  106. // , , , <|,> , , ,
  107. // <1 ± ± , <2 , <3 , <4 |, 4> , 3> , 2> , ± ± 1>
  108. ),
  109. /* ⬆⬇ */
  110. /* Layer _..._NSY: Numbers and symbols, to work with the Workman base layer above. (Same as Qwerty.)
  111. * Off hand Number input (-.Bksp ent (shft)tab).
  112. */
  113. // KC_TILD does not work there, because of a limitation with shifted keys (nov 2019).
  114. // Process user configuration wrt ‛Default’ or ‛Alternative’ spot for this layout.
  115. # if defined(BASE_WORKMAN__DEF_BASE)
  116. [ _DEF_NSY ] = LAYOUT_redefined (
  117. # elif defined(BASE_WORKMAN__ALT_BASE)
  118. [ _ALT_NSY ] = LAYOUT_redefined (
  119. # endif
  120. /*
  121. Layer _..._NSY (Numbers and SYmbols). This fits the above Workman layer _..._BASE
  122. <pink2 <pinky<ring <middl<index<indx2| indx2>index>middl>ring>pin>pink2>
  123. -*- <|> //(toggle) Access on _FUN
  124. BASE ! @ # $ % | ^ & * ( ) Del
  125. Tab+LCtl 1! 2@ 3# 4$ 5% | 6^ 7& 8* 9( 0) `~+RCtl
  126. -+LSht [{ ]} -_ \| =+ | + | _ { } ~+RSht
  127. ^^ ^ // Only differences with normal version _..._NSY
  128. ---------------------------------------------------------------------------
  129. Left+LAlt ___ ___ Ent | . ___ LGUI Right+RAlt
  130. -*- <|> -*- //(hold) Access on _..._BASE
  131. <1 ± <2 <3 <4 | 4> 3> 2> ± 1>
  132. ^ ^
  133. (RGUI) (_MOV)
  134. */
  135. //
  136. //
  137. // <pink2 , <pinky , <ring , <middl , <index , <indx2 |, indx2> , index> , middl> , ring> , pinky> , pink2> ,
  138. // , -*- , , , , <|,> , , , , , ,
  139. CTO_BASE , KC_EXLM , KC_AT , KC_HASH , KC_DLR , KC_PERC , KC_CIRC , KC_AMPR , KC_ASTR , KC_LPRN , KC_RPRN , KC_DEL ,
  140. LCTL_T ( KC_TAB ) , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , RCTL_T ( KC_GRV ) ,
  141. LSFT_DASH , KC_LBRC , KC_RBRC , KC_MINS , KC_BSLS , KC_EQL , KC_PLUS , KC_PIPE , KC_UNDS , KC_LCBR , KC_RCBR , RSFT_TILDE ,
  142. // ---------------------------------------------------------------------------------------------------------------------------------------------
  143. LALT_T ( KC_LEFT )
  144. # ifdef TRANSMINIVAN_LEFTSIDE
  145. , XXXXXXX
  146. # endif
  147. # ifdef MORE_KEY__COMMAND
  148. , MORE_key1
  149. # endif
  150. , _______ , _______ , KC_ENT
  151. # ifdef TRANSMINIVAN_MIDLEFT
  152. , TRANS_MIDLEFT
  153. # endif
  154. , KC_DOT , DUO_HOLD , KC__YGUI
  155. # ifdef TRANSMINIVAN_RIGHTSIDE
  156. , XXXXXXX
  157. # endif
  158. # ifdef MORE_KEY__ARROW
  159. , MORE_key2
  160. # endif
  161. , RALT_T ( KC_RGHT )
  162. // , , -*- , <|,> , -*- , ,
  163. // <1 ± ± , <2 , <3 , <4 |, 4> , 3> , 2> , ± ± 1>
  164. ),
  165. /* ⬆⬇ */