Adds optional hebrew layout (Unicode) (#14156)
This commit is contained in:
		
							parent
							
								
									b5cc2bdc34
								
							
						
					
					
						commit
						d140e41c93
					
				
					 13 changed files with 1157 additions and 132 deletions
				
			
		
							
								
								
									
										291
									
								
								keyboards/thevankeyboards/minivan/keymaps/josjoha/base_hebrew.c
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										291
									
								
								keyboards/thevankeyboards/minivan/keymaps/josjoha/base_hebrew.c
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,291 @@
 | 
			
		|||
/*
 | 
			
		||||
 * License (GPL):
 | 
			
		||||
  
 | 
			
		||||
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/>.
 | 
			
		||||
 | 
			
		||||
 * Author: © 2021 by Jos Boersema
 | 
			
		||||
 *
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
// --------------------------------------v---------------------------------------
 | 
			
		||||
//                                 Configuration:
 | 
			
		||||
// --------------------------------------v---------------------------------------
 | 
			
		||||
 | 
			
		||||
// See the user configuration file: ./base_hebrew.h
 | 
			
		||||
 | 
			
		||||
// --------------------------------------^---------------------------------------
 | 
			
		||||
//            Below here no more comfortable configuration options.....
 | 
			
		||||
// --------------------------------------^---------------------------------------
 | 
			
		||||
 | 
			
		||||
        /*  ⬇ */
 | 
			
		||||
 | 
			
		||||
    /* Layer _..._BASE: default BASE layer (Hebrew)
 | 
			
		||||
     *
 | 
			
		||||
     * - Dual use keys create a delay in the key (tap/hold keys), therefore
 | 
			
		||||
     *   space is not dual use (most used key), neither is hyphen.
 | 
			
		||||
     */ 
 | 
			
		||||
 | 
			
		||||
// Process user configuration wrt ‛Default’ or ‛Alternative’ spot for this layout.
 | 
			
		||||
# if   defined(BASE_HEBREW__DEF_BASE)
 | 
			
		||||
    [ _DEF_BASE ] = LAYOUT_redefined (
 | 
			
		||||
# elif defined(BASE_HEBREW__ALT_BASE)
 | 
			
		||||
    [ _ALT_BASE ] = LAYOUT_redefined (
 | 
			
		||||
# endif
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
     Layer _..._BASE (LeTteRs, standard Hebrew as in Israel)
 | 
			
		||||
     ➡ This is a simple hebrew layout. Notice the letter ק is displaced from normal,
 | 
			
		||||
       to retain compatibility with Dvorak-English for ,<.>. There are no niqqud
 | 
			
		||||
       available, because it is far too many unique symbols in Unicode, and it is 
 | 
			
		||||
       rarely used.
 | 
			
		||||
 | 
			
		||||
                                            HEBREW_ISRAEL
 | 
			
		||||
                                                  | Right hand
 | 
			
		||||
         <pink2     <pinky<ring <middl<index<indx2| indx2>index>middl>ring> pinky>pinky2>   // Keys by finger
 | 
			
		||||
         -o-                                     <|>                                    ... //-o- BASE access
 | 
			
		||||
         Esc        /;    ׳     ק     ר     א     | ט     ו     ן     ם     פ          Bksp
 | 
			
		||||
         Tab+LCtl   ש     ד     ג/RLM כ₪    ע     | י     ח     ל/LRM ך     ף:           ,״ //Right-Left-Mark
 | 
			
		||||
         LSht+_PAD  ז     ס     ב     ה     נ     | מ     צ     ת<    ץ>    .?    RSht+_FUN //<>os side flip?
 | 
			
		||||
             +_MOV⁵                               |                                   +_RAR⁶
 | 
			
		||||
     ---------------------------------------------------------------------------------------
 | 
			
		||||
     Left+LAlt Del;_ACC _..._NSY(_DRA)  Enter+_MOV| Space  _..._NSY(_DRA) LGUI    Right;_RAR 
 | 
			
		||||
               hold     hold₍₁,₂٭₎      hold      |        hold₍₁,₂٭₎             hold     // switch type
 | 
			
		||||
               hold₍₂₎  ^-┃-----------------------+--------^ ┃                          // ₁₎ both = _DRA
 | 
			
		||||
               ┗━━━_BON━━━╋┅───────────┄┄┄«or»┄┄┄─+─────────┅┛                          // ₂₎ both = _BON
 | 
			
		||||
     <1   ±    <2       <3              <4        | 4>     3>             2>   ±  1>    // Keys by number
 | 
			
		||||
          ^³                                                                   ^⁴   // Optional more keys
 | 
			
		||||
          …                                                                    …
 | 
			
		||||
 | 
			
		||||
                                            HEBREW_QWERTY 
 | 
			
		||||
                                                  | Right hand
 | 
			
		||||
         <pink2     <pinky<ring <middl<index<indx2| indx2>index>middl>ring> pinky>pinky2>   // Keys by finger
 | 
			
		||||
         -o-                                     <|>                                    ... //-o- BASE access
 | 
			
		||||
         Esc        ת•    ץ•    ק     ר     א     | ט     ו     ן     ם׳    פ״         Bksp
 | 
			
		||||
         Tab+LCtl   ש     ד     ג/RLM כ₪    ע     | י     ח     ל/LRM ך     ף:           '" //Right-Left-Mark
 | 
			
		||||
         LSht+_PAD  ז     ס     ב     ה     נ     | מ     צ     ,<    .>    /?    RSht+_FUN
 | 
			
		||||
             +_MOV⁵                               |                                   +_RAR⁶
 | 
			
		||||
     ---------------------------------------------------------------------------------------
 | 
			
		||||
     Left+LAlt Del;_ACC _..._NSY(_DRA)  Enter+_MOV| Space  _..._NSY(_DRA) LGUI    Right;_RAR 
 | 
			
		||||
               hold     hold₍₁,₂٭₎      hold      |        hold₍₁,₂٭₎             hold     // switch type
 | 
			
		||||
               hold₍₂₎  ^-┃-----------------------+--------^ ┃                          // ₁₎ both = _DRA
 | 
			
		||||
               ┗━━━_BON━━━╋┅───────────┄┄┄«or»┄┄┄─+─────────┅┛                          // ₂₎ both = _BON
 | 
			
		||||
     <1   ±    <2       <3              <4        | 4>     3>             2>   ±  1>    // Keys by number
 | 
			
		||||
          ^³                                                                   ^⁴   // Optional more keys
 | 
			
		||||
          …                                                                    …
 | 
			
		||||
 | 
			
		||||
                                            HEBREW_DVORAK
 | 
			
		||||
                                                  | Right hand
 | 
			
		||||
         <pink2     <pinky<ring <middl<index<indx2| indx2>index>middl>ring> pinky>pinky2>   // Keys by finger
 | 
			
		||||
         -o-                                     <|>                                    ... //-o- BASE access
 | 
			
		||||
         Esc        '"    ,<    .>    ר     א     | ט     ו     ן     ם׳    פ״         Bksp
 | 
			
		||||
         Tab+LCtl   ש     ד     ג/RLM כ₪    ע     | י     ח     ל/LRM ך     ף             ־ //Right-Left-Mark
 | 
			
		||||
         LSht+_PAD  ז:    ס     ב     ה     נ     | מ     צ     ת     ץ     ק•    RSht+_FUN
 | 
			
		||||
             +_MOV⁵                               |                                   +_RAR⁶
 | 
			
		||||
     ---------------------------------------------------------------------------------------
 | 
			
		||||
     Left+LAlt Del;_ACC _..._NSY(_DRA)  Enter+_MOV| Space  _..._NSY(_DRA) LGUI    Right;_RAR 
 | 
			
		||||
               hold     hold₍₁,₂٭₎      hold      |        hold₍₁,₂٭₎             hold     // switch type
 | 
			
		||||
               hold₍₂₎  ^-┃-----------------------+--------^ ┃                          // ₁₎ both = _DRA
 | 
			
		||||
               ┗━━━_BON━━━╋┅───────────┄┄┄«or»┄┄┄─+─────────┅┛                          // ₂₎ both = _BON
 | 
			
		||||
     <1   ±    <2       <3              <4        | 4>     3>             2>   ±  1>    // Keys by number
 | 
			
		||||
          ^³                                                                   ^⁴   // Optional more keys
 | 
			
		||||
          …                                                                    …
 | 
			
		||||
 | 
			
		||||
     
 | 
			
		||||
     ₁) Dual hold for _DRA, single hold for _..._NSY. Marked by: ^--…--^
 | 
			
		||||
     ₂) Hold key “<2” with either٭ key “<3” or “3>” for _BON, single hold “<2” for _ACC. Marked: ┗━━…━━┛
 | 
			
		||||
     ³) 'South paw' hardware configuration 
 | 
			
		||||
     ⁴) 'Arrow' hardware configuration 
 | 
			
		||||
     ³ ⁴) There are two more optional hardware keys, to make it easier to compile for
 | 
			
		||||
          a 12x12x12x11 or 12x12x12x12 layouts.
 | 
			
		||||
     ⁵) Left Shift when pressed with another key. Medium long: to toggle _PAD. Long: toggle _MOV.
 | 
			
		||||
     ⁶) Right shift when pressed with another key. medium long: to toggle _FUN. Long: toggle _RAR.
 | 
			
		||||
     ⁷) Letters marked with • are displaced from standard hebrew layout.
 | 
			
		||||
*/
 | 
			
		||||
//
 | 
			
		||||
//      <pink2            , <pinky    , <ring     , <middl    , <indx     ,      <ind|, indx>     , inde>     , midd>     , ring>     , pink>     , pink2>        ,
 | 
			
		||||
//      -*!-              ,           ,           ,           ,           ,         <|,>          ,           ,           ,           ,           ,               ,
 | 
			
		||||
        KC_ESC      
 | 
			
		||||
 | 
			
		||||
# if   defined(HEBREW_ISRAEL)
 | 
			
		||||
                          , XP_HEB_AA , XP_HEB_AB , XP_HEB_AC 
 | 
			
		||||
# elif defined(HEBREW_QWERTY)
 | 
			
		||||
                          , XP_HEB_AA , XP_HEB_AB , XP_HEB_AC
 | 
			
		||||
# elif defined(HEBREW_DVORAK)
 | 
			
		||||
                          , KC_QUOT   , KC_COMM   , KC_DOT 
 | 
			
		||||
# endif // HEBREW_DVORAK/QWERTY
 | 
			
		||||
                                                              , XP_HEB_AD , XP_HEB_AE , XP_HEB_AF , XP_HEB_AG , XP_HEB_AH , XP_HEB_AI , XP_HEB_AJ , KC_BSPC       ,
 | 
			
		||||
        LCTL_T ( KC_TAB ) , XP_HEB_BA , XP_HEB_BB , XP_HEB_BC , XP_HEB_BD , XP_HEB_BE , XP_HEB_BF , XP_HEB_BG , XP_HEB_BH , XP_HEB_BI , XP_HEB_BJ
 | 
			
		||||
//                                                                                                                                      ^^^^^^^^^  Different in Qwerty (done in macros) with ':'
 | 
			
		||||
 | 
			
		||||
# if   defined(HEBREW_ISRAEL)
 | 
			
		||||
                                                                                                                                                  , XP_HEB_BK     , // ,"
 | 
			
		||||
# elif defined(HEBREW_QWERTY)
 | 
			
		||||
                                                                                                                                                  , KC_QUOT       , // '"
 | 
			
		||||
# elif defined(HEBREW_DVORAK)
 | 
			
		||||
                                                                                                                                                  , XP_HEB_MQF    , // ־
 | 
			
		||||
# endif // HEBREW_*
 | 
			
		||||
 | 
			
		||||
        CHOLTAP_LSHFT     , XP_HEB_CA , XP_HEB_CB , XP_HEB_CC , XP_HEB_CD , XP_HEB_CE , XP_HEB_CF , XP_HEB_CG 
 | 
			
		||||
 | 
			
		||||
# if   defined(HEBREW_ISRAEL)
 | 
			
		||||
                                                                                                              , XP_HEB_CH , XP_HEB_CI , XP_HEB_CJ
 | 
			
		||||
# elif defined(HEBREW_QWERTY)
 | 
			
		||||
                                                                                                              , KC_COMM   , KC_DOT    , KC_SLSH    
 | 
			
		||||
# elif defined(HEBREW_DVORAK)
 | 
			
		||||
                                                                                                              , XP_HEB_CH , XP_HEB_CI , XP_HEB_CJ
 | 
			
		||||
# endif // HEBREW_*
 | 
			
		||||
                                                                                                                                                  , CHOLTAP_RSHFT ,
 | 
			
		||||
//      -----------------------------------------------------------------------------------------------------------------
 | 
			
		||||
        LALT_T ( KC_LEFT ) 
 | 
			
		||||
 | 
			
		||||
# ifdef TRANSMINIVAN_LEFTSIDE
 | 
			
		||||
                           , MO ( _PAD )
 | 
			
		||||
# endif
 | 
			
		||||
 | 
			
		||||
# ifdef MORE_KEY__COMMAND
 | 
			
		||||
                           , MORE_key1_BASE  
 | 
			
		||||
# endif
 | 
			
		||||
 | 
			
		||||
# ifdef SWITCH_HOLD_ACC_NSY 
 | 
			
		||||
                           , DUO_HOLD , CHOLTAP_ACCE 
 | 
			
		||||
# else
 | 
			
		||||
                           , CHOLTAP_ACCE , DUO_HOLD
 | 
			
		||||
# endif
 | 
			
		||||
 | 
			
		||||
                                                     , LEFTCENTER_THUMB
 | 
			
		||||
 | 
			
		||||
# ifdef TRANSMINIVAN_MIDLEFT
 | 
			
		||||
                                                     , TRANS_MIDLEFT
 | 
			
		||||
# endif
 | 
			
		||||
 | 
			
		||||
                                                                       , RIGHTCENTER_THUMB , DUO_HOLD , KC__YGUI
 | 
			
		||||
 | 
			
		||||
# ifdef TRANSMINIVAN_RIGHTSIDE
 | 
			
		||||
                                                                                                                 , MO ( _FUN )
 | 
			
		||||
# endif                                                                                    
 | 
			
		||||
                                                                                           
 | 
			
		||||
# ifdef MORE_KEY__ARROW                                                                    
 | 
			
		||||
                                                                                                                 , MORE_key2  
 | 
			
		||||
# endif                                                                                    
 | 
			
		||||
                                                                                           
 | 
			
		||||
                                                                                                                 , CHOLTAP_LAYR
 | 
			
		||||
//                         ,              ,          ,               <|,>                  ,          ,          ,
 | 
			
		||||
//      <1           ±  ±  , <2           , <3       , <4             |, 4>                , 3>       , 2>       , ±  ±  1>
 | 
			
		||||
 | 
			
		||||
                      ),
 | 
			
		||||
 | 
			
		||||
        /* ⬆⬇ */
 | 
			
		||||
 | 
			
		||||
    /* Layer _..._NSY: Numbers and symbols.
 | 
			
		||||
     *          Off hand Number input (-.Bksp ent (shft)tab).
 | 
			
		||||
     */
 | 
			
		||||
    // KC_TILD does not work there, because of a limitation with shifted keys (nov 2019).
 | 
			
		||||
 | 
			
		||||
// Process user configuration wrt ‛Default’ or ‛Alternative’ spot for this layout.
 | 
			
		||||
# if   defined(BASE_HEBREW__DEF_BASE)
 | 
			
		||||
    [ _DEF_NSY ] = LAYOUT_redefined (
 | 
			
		||||
# elif defined(BASE_HEBREW__ALT_BASE)
 | 
			
		||||
    [ _ALT_NSY ] = LAYOUT_redefined (
 | 
			
		||||
# endif
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
     Layer _..._NSY (Numbers and SYmbols)
 | 
			
		||||
     ➡ The brace type symbols are *not* reversed as on standard hebrew boards (I find it confusing).
 | 
			
		||||
 
 | 
			
		||||
                                      HEBREW_ISRAEL & HEBREW_QWERTY 
 | 
			
		||||
     <pink2   <pinky<ring <middl<index<indx2| indx2>index>middl>ring>pin>pink2>
 | 
			
		||||
              -*-                          <|>                                  //(toggle) Access on _FUN
 | 
			
		||||
     BASE     !     @     #     $     %     | ^     &     *     (    )       Del
 | 
			
		||||
     Tab+LCtl 1!    2@    3#    4$    5%    | 6^    7&    8*    9(   0)  `~+RCtl
 | 
			
		||||
     -+LSht   [{    ]}    -_    \|    =+    | +     |     ־     {     }   ~+RSht 
 | 
			
		||||
                                                          ^                       // Only difference with Qwerty
 | 
			
		||||
     ---------------------------------------------------------------------------
 | 
			
		||||
     Left+LAlt ___   ___   Ent  | .   ___   LGUI  Right+RAlt
 | 
			
		||||
                     -*-       <|>    -*-                                         //(hold) Access on _..._BASE
 | 
			
		||||
       <1   ±  <2    <3    <4   | 4>  3>    2>  ± 1>  
 | 
			
		||||
            …                                   …
 | 
			
		||||
    
 | 
			
		||||
                                      HEBREW_DVORAK (Same as standard Dvorak)
 | 
			
		||||
     <pink2   <pinky<ring <middl<index<indx2| indx2>index>middl>ring>pin>pink2>
 | 
			
		||||
              -*-                          <|>                                  //(toggle) Access on _FUN
 | 
			
		||||
     BASE     !     @     #     $     %     | ^     &     *     (    )       Del
 | 
			
		||||
     Tab+LCtl 1!    2@    3#    4$    5%    | 6^    7&    8*    9(   0)  `~+RCtl
 | 
			
		||||
     -+LSht   [{    ]}    /?    \|    =+    | +     |     ?     {     }   ~+RSht 
 | 
			
		||||
     ---------------------------------------------------------------------------
 | 
			
		||||
     Left+LAlt ___   ___   Ent  | .   ___   LGUI  Right+RAlt
 | 
			
		||||
                     -*-       <|>    -*-                                         //(hold) Access on _..._BASE
 | 
			
		||||
       <1   ±  <2    <3    <4   | 4>  3>    2>  ± 1>  
 | 
			
		||||
            …                                   …
 | 
			
		||||
*/
 | 
			
		||||
//
 | 
			
		||||
//
 | 
			
		||||
//      <pink2             , <pinky  , <ring   , <middl  , <index  , <indx2 |, indx2>  , index>  , middl>  , ring>   , pinky>  , pink2>             ,
 | 
			
		||||
//                         , -*-     ,         ,         ,         ,       <|,>        ,         ,         ,         ,         ,                    ,
 | 
			
		||||
        CTO_BASE           , KC_EXLM , KC_AT   , KC_HASH , KC_DLR  , KC_PERC , KC_CIRC , KC_AMPR , KC_ASTR , KC_LPRN , KC_RPRN , KC_DEL             ,
 | 
			
		||||
        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 )  ,
 | 
			
		||||
        LSFT_DASH          , KC_LBRC , KC_RBRC 
 | 
			
		||||
 | 
			
		||||
# if   defined(HEBREW_ISRAEL)
 | 
			
		||||
                                               , KC_MINUS // allows -_, with Maqaf on mirror place right 
 | 
			
		||||
# elif defined(HEBREW_QWERTY)
 | 
			
		||||
                                               , KC_MINUS // same as HEBREW_ISRAEL
 | 
			
		||||
# elif defined(HEBREW_DVORAK)
 | 
			
		||||
                                               , KC_SLSH 
 | 
			
		||||
# endif // HEBREW_*
 | 
			
		||||
 | 
			
		||||
                                                         , KC_BSLS , KC_EQL  , KC_PLUS , KC_PIPE 
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# if   defined(HEBREW_ISRAEL)
 | 
			
		||||
                                                                                                 , XP_HEB_MQF // '־' Maqaf
 | 
			
		||||
# elif defined(HEBREW_QWERTY)
 | 
			
		||||
                                                                                                 , XP_HEB_MQF //
 | 
			
		||||
# elif defined(HEBREW_DVORAK)
 | 
			
		||||
                                                                                                 , KC_QUES 
 | 
			
		||||
# endif // HEBREW_*
 | 
			
		||||
                                                                                                           , KC_LCBR , KC_RCBR , RSFT_TILDE         ,
 | 
			
		||||
//      ---------------------------------------------------------------------------------------------------------------------------------------------
 | 
			
		||||
        LALT_T ( KC_LEFT ) 
 | 
			
		||||
 | 
			
		||||
# ifdef TRANSMINIVAN_LEFTSIDE
 | 
			
		||||
                           , TRANS_LEFT
 | 
			
		||||
# endif
 | 
			
		||||
 | 
			
		||||
# ifdef MORE_KEY__COMMAND
 | 
			
		||||
                           , MORE_key1
 | 
			
		||||
# endif
 | 
			
		||||
 | 
			
		||||
                           , _______ , _______ , KC_ENT
 | 
			
		||||
 | 
			
		||||
# ifdef TRANSMINIVAN_MIDLEFT
 | 
			
		||||
                                               , TRANS_MIDLEFT
 | 
			
		||||
# endif
 | 
			
		||||
                                                        , KC_DOT , DUO_HOLD , KC__YGUI
 | 
			
		||||
 | 
			
		||||
# ifdef TRANSMINIVAN_RIGHTSIDE
 | 
			
		||||
                                                                                       , TRANS_RIGHT
 | 
			
		||||
# endif
 | 
			
		||||
 | 
			
		||||
# ifdef MORE_KEY__ARROW
 | 
			
		||||
                                                                                       , MORE_key2  
 | 
			
		||||
# endif                                     
 | 
			
		||||
 | 
			
		||||
                                                                                       , RALT_T ( KC_RIGHT )
 | 
			
		||||
//                         ,         , -*-     ,      <|,>       , -*-      ,          ,
 | 
			
		||||
//      <1           ±  ±  , <2      , <3      , <4    |, 4>     , 3>       , 2>       , ±  ±  1>
 | 
			
		||||
 | 
			
		||||
                      ),
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        /* ⬆⬇ */
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,52 @@
 | 
			
		|||
/*
 | 
			
		||||
 * License (GPL):
 | 
			
		||||
  
 | 
			
		||||
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/>.
 | 
			
		||||
 | 
			
		||||
 * Author: © 2021 by Jos Boersema
 | 
			
		||||
 *
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#pragma once
 | 
			
		||||
 | 
			
		||||
// --------------------------------------v---------------------------------------
 | 
			
		||||
//                                 Configuration:
 | 
			
		||||
// --------------------------------------v---------------------------------------
 | 
			
		||||
 | 
			
		||||
        /*                            Harmonize layout with a Latin layout
 | 
			
		||||
         *
 | 
			
		||||
         * See base_hebrew.md for design objectives. 
 | 
			
		||||
         */
 | 
			
		||||
  #define HEBREW_ISRAEL // Close to standard Israeli hebrew.
 | 
			
		||||
//#define HEBREW_QWERTY // Harmonize punctuation symbols with Qwerty.
 | 
			
		||||
//#define HEBREW_DVORAK // Harmonize punctuation symbols with Dvorak.
 | 
			
		||||
 | 
			
		||||
// --------------------------------------^---------------------------------------
 | 
			
		||||
//            Below here no more comfortable configuration options.....
 | 
			
		||||
// --------------------------------------^---------------------------------------
 | 
			
		||||
 | 
			
		||||
        /*                            Redefine a layer in this file
 | 
			
		||||
         *
 | 
			
		||||
         * _Activate_ one or more of the below BASESFILE_LAYER_..., to redefine the layer
 | 
			
		||||
         * in this file. The version in ./keymap.c will be ignored. Keep in mind to use
 | 
			
		||||
         * transparent keys (_______) for “hold” layer switch keys on the BASE map, for
 | 
			
		||||
         * your new layer.
 | 
			
		||||
         */
 | 
			
		||||
// #define BASESFILE_LAYER_ACC 
 | 
			
		||||
// #define BASESFILE_LAYER_DRA 
 | 
			
		||||
// #define BASESFILE_LAYER_BON 
 | 
			
		||||
// #define BASESFILE_LAYER_PAD 
 | 
			
		||||
// #define BASESFILE_LAYER_MOV 
 | 
			
		||||
// #define BASESFILE_LAYER_RAR 
 | 
			
		||||
// #define BASESFILE_LAYER_FUN 
 | 
			
		||||
							
								
								
									
										198
									
								
								keyboards/thevankeyboards/minivan/keymaps/josjoha/base_hebrew.md
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										198
									
								
								keyboards/thevankeyboards/minivan/keymaps/josjoha/base_hebrew.md
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,198 @@
 | 
			
		|||
# Minifan layout
 | 
			
		||||
 | 
			
		||||
Compiled for: Hebrew
 | 
			
		||||
====================
 | 
			
		||||
 | 
			
		||||
This file details the compile version `#define BASE_HEBREW__DEF_BASE,
 | 
			
		||||
BASE_HEBREW__ALT_BASE`. This is a basic Hebrew layout, without niqqud.
 | 
			
		||||
 | 
			
		||||
Only the most common symbols are implemented.  Hebrew symbols are all
 | 
			
		||||
done in Unicode.
 | 
			
		||||
 | 
			
		||||
See also  chapter 7 _Language support_.
 | 
			
		||||
 | 
			
		||||
Parenthesis/braces/etc direction seems to be dealt with at the computer
 | 
			
		||||
side, depending on the surrounding symbols. The keyboard is printing
 | 
			
		||||
these symbols unchanged from what they are in standard Latin layouts,
 | 
			
		||||
and are represented that way in the manual.
 | 
			
		||||
      
 | 
			
		||||
Options
 | 
			
		||||
=======
 | 
			
		||||
 | 
			
		||||
You can compile the hebrew to be like a common Israeli layout, or to harmonize the
 | 
			
		||||
punctuation symbols with either Dvorak or Qwerty. See the configuration file 
 | 
			
		||||

 | 
			
		||||
 | 
			
		||||
☞ Israeli Hebrew
 | 
			
		||||
 | 
			
		||||
As close to a simple standard hebrew layout as possible.
 | 
			
		||||
A little larger memory cost than the other options. No `'"` ASCII quotes symbols,
 | 
			
		||||
but proper ׳ and ״ (in Unicode).
 | 
			
		||||
 | 
			
		||||
☞ Qwerty with Hebrew
 | 
			
		||||
 | 
			
		||||
The letters ת, ץ get displaced from the standard hebrew layout.
 | 
			
		||||
Numerical layer is the same as standard Qwerty, except the symbol 
 | 
			
		||||
`_` symbol becomes `־` (Maqaf). No `;` symbol.
 | 
			
		||||
 | 
			
		||||
☞ Qwerty derivatives with Hebrew
 | 
			
		||||
 | 
			
		||||
It is adviced to use Qwerty with Hebrew in this case, and adjust by hand
 | 
			
		||||
coding if needed.  “Workman” should harmonize the same as Qwerty.
 | 
			
		||||
Colemak displaces the “;:” key relative to Qwerty, therefore you may
 | 
			
		||||
like to change the “:” shifted symbol (by hand). The obscurity of this
 | 
			
		||||
use case gets extreme, there will not be options for this.
 | 
			
		||||
 | 
			
		||||
☞ Dvorak with Hebrew
 | 
			
		||||
 | 
			
		||||
The letter ק gets displaced from the standard hebrew layout.
 | 
			
		||||
Numerical layer is the same as standard Dvorak. No `;` symbol.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Flash memory cost
 | 
			
		||||
-----------------
 | 
			
		||||
 | 
			
		||||
This layout adds several dozen new Unicode symbols, which takes up a certain
 | 
			
		||||
amount of additional space in keyboard memory. If you end up going over
 | 
			
		||||
the limit, you may need to change your compilation software setup, and/or
 | 
			
		||||
you can look into the “Eviscerations” chapters in 
 | 
			
		||||
 | 
			
		||||
Hebrew keymaps
 | 
			
		||||
--------------
 | 
			
		||||
 | 
			
		||||
──────────Hebrew Israel────────
 | 
			
		||||
 | 
			
		||||

 | 
			
		||||
Layer: `..._BASE`
 | 
			
		||||
 | 
			
		||||

 | 
			
		||||
Layer: `..._NSY`
 | 
			
		||||
 | 
			
		||||
──────────in common────────────
 | 
			
		||||
 | 
			
		||||
(…) 
 | 
			
		||||
 | 
			
		||||
──────────Hebrew Qwerty────────
 | 
			
		||||
 | 
			
		||||

 | 
			
		||||
Layer: `..._BASE`
 | 
			
		||||
 | 
			
		||||

 | 
			
		||||
Layer: `..._NSY`
 | 
			
		||||
 | 
			
		||||
──────────in common────────────
 | 
			
		||||
 | 
			
		||||
(…) 
 | 
			
		||||
 | 
			
		||||
──────────Hebrew Dvorak────────
 | 
			
		||||
 | 
			
		||||

 | 
			
		||||
Layer: `..._BASE`
 | 
			
		||||
 | 
			
		||||

 | 
			
		||||
Layer: `..._NSY` (Same as Dvorak.)
 | 
			
		||||
 | 
			
		||||
──────────in common────────────
 | 
			
		||||
 | 
			
		||||
(…) 
 | 
			
		||||
 | 
			
		||||
For more about the other layers, see ➡  ⬅
 | 
			
		||||
 | 
			
		||||

 | 
			
		||||
 | 
			
		||||
Layers (text)
 | 
			
		||||
=============
 | 
			
		||||
 | 
			
		||||
(The “x” padding was necessary to undo the direction of these characters being reversed.
 | 
			
		||||
This layout might still not be represenetd correctly on your system. See the graphics instead.)
 | 
			
		||||
 | 
			
		||||
                                            HEBREW_ISRAEL
 | 
			
		||||
                                                  | Right hand
 | 
			
		||||
         <pink2     <pinky<ring <middl<index<indx2| indx2>index>middl>ring> pinky>pinky2>   // Keys by finger
 | 
			
		||||
         -o-                                     <|>                                    ... //-o- BASE access
 | 
			
		||||
         Escxxxxxxxx/;xxxx׳xxxxxקxxxxxרxxxxxאxxxxx|xטxxxxxוxxxxxןxxxxxםxxxxxפxxxxxxxxxxBksp
 | 
			
		||||
         Tab+LCtlxxxשxxxxxדxxxxxג/RLMxכx₪xxxעxxxxx|xיxxxxxחxxxxxל/LRMxךxxxxxף:xxxxxxxxxxx,״ //Right-Left-Mark
 | 
			
		||||
         LSht+_PADxxזxxxxxסxxxxxבxxxxxהxxxxxנxxxxx|xמxxxxxצxxxxxת<xxxxץ>xxxx.?xxxxRSht+_FUN //<>os side flip?
 | 
			
		||||
             +_MOV⁵                               |                                   +_RAR⁶
 | 
			
		||||
     ---------------------------------------------------------------------------------------
 | 
			
		||||
 
 | 
			
		||||
                                            HEBREW_QWERTY 
 | 
			
		||||
                                                  | Right hand
 | 
			
		||||
         <pink2     <pinky<ring <middl<index<indx2| indx2>index>middl>ring> pinky>pinky2>   // Keys by finger
 | 
			
		||||
         -o-                                     <|>                                    ... //-o- BASE access
 | 
			
		||||
         Escxxxxxxxxת•xxxxץ•xxxxקxxxxxרxxxxxאxxxxx|xטxxxxxוxxxxxןxxxxxםx׳xxxפx״xxxxxxxxBksp
 | 
			
		||||
         Tab+LCtlxxxשxxxxxדxxxxxג/RLMxכx₪xxxעxxxxx|xיxxxxxחxxxxxל/LRMxךxxxxxף:xxxxxxxxxxx'" //Right-Left-Mark
 | 
			
		||||
         LSht+_PADxxזxxxxxסxxxxxבxxxxxהxxxxxנxxxxx|xמxxxxxצxxxxx,<xxxx.>xxxx/?xxxxRSht+_FUN
 | 
			
		||||
             +_MOV⁵                               |                                   +_RAR⁶
 | 
			
		||||
     ---------------------------------------------------------------------------------------
 | 
			
		||||
         (…)
 | 
			
		||||
 | 
			
		||||
                                            HEBREW_DVORAK
 | 
			
		||||
         Layer _..._BASE (LeTteRs, standard Hebrew)
 | 
			
		||||
                                                  | Right hand
 | 
			
		||||
         <pink2     <pinky<ring <middl<index<indx2| indx2>index>middl>ring> pinky>pinky2>   // Keys by finger
 | 
			
		||||
         -o-                                     <|>                                    ... //-o- BASE access
 | 
			
		||||
         Escxxxxxxxx'"xxxx,<xxxx.>xxxxרxxxxxאxxxxx|xטxxxxxוxxxxxןxxxxxםx׳xxxפx״xxxxxxxxBksp
 | 
			
		||||
         Tab+LCtlxxxשxxxxxדxxxxxג/RLMxכx₪xxxעxxxxx|xיxxxxxחxxxxxל/LRMxךxxxxxףxxxxxxxxxxxxx־ //Right/Left-Mark
 | 
			
		||||
         LSht+_PADxxז:xxxxסxxxxxבxxxxxהxxxxxנxxxxx|xמxxxxxצxxxxxתxxxxxץxxxxxק•xxxxRSht+_FUN
 | 
			
		||||
             +_MOV⁵                               |                                   +_RAR⁶
 | 
			
		||||
     ---------------------------------------------------------------------------------------
 | 
			
		||||
     Left+LAlt Del;_ACC _DEF_NSY(_DRA)  Enter+_MOV| Space  _DEF_NSY(_DRA) RGUI    Right;_RAR 
 | 
			
		||||
               hold     hold₍₁,₂٭₎      hold      |        hold₍₁,₂٭₎             hold     // switch type
 | 
			
		||||
               hold₍₂₎  ^-┃-----------------------+--------^ ┃                          // ₁₎ both = _DRA
 | 
			
		||||
               ┗━━━_BON━━━╋┅───────────┄┄┄«or»┄┄┄─+─────────┅┛                          // ₂₎ both = _BON
 | 
			
		||||
     <1   ±    <2       <3              <4        | 4>     3>             2>   ±  1>    // Keys by number
 | 
			
		||||
          ^³                                                                   ^⁴   // Optional more keys
 | 
			
		||||
        (LGUI)                                                               (_MOV)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
     ₁) Dual hold for _DRA, single hold for _DEF_NSY. Marked by: ^--…--^
 | 
			
		||||
     ₂) Hold key “<2” with either٭ key “<3” or “3>” for _BON, single hold “<2” for _ACC. Marked: ┗━━…━━┛
 | 
			
		||||
     ₃) 'South paw' hardware configuration. Configurable, default shown.
 | 
			
		||||
     ₄) 'Arrow' hardware configuration  Configurable, default shown.
 | 
			
		||||
     ₃ ₄) There are two more optional hardware keys, to make it easier to compile for
 | 
			
		||||
          a 12x12x12x11 or 12x12x12x12 layouts.
 | 
			
		||||
     ₅) Left Shift when pressed with another key. Medium long: to toggle _PAD. Long: toggle _MOV.
 | 
			
		||||
     ₆) Right shift when pressed with another key. medium long: to toggle _FUN. Long: toggle _RAR.
 | 
			
		||||
     ⁷) Letters marked with • are displaced from standard hebrew layout.
 | 
			
		||||
 | 
			
		||||
Remarks: The left modifiers have a slight delay in combination with an outside pointer device (mouse, stylus).
 | 
			
		||||
It seems this will be difficult to fix, because it is spread over two devices. To avoid the
 | 
			
		||||
±0.2 second delay, activate a layer where the modifiers are direct (`_PAD`), using the layer toggle on left shift. 
 | 
			
		||||
 | 
			
		||||
The two keys with ';' (Del;`_ACC`, Right;`_RAR`) do not auto-repeat on double tap, like QMK normal layer-tap keys.
 | 
			
		||||
There is an uncluttered _Delete_ on `_PAD`, an uncluttered _Right_ arrow on the `_MOV` layer.
 | 
			
		||||
 | 
			
		||||
Holding both `_DEF_NSY` keys left and right of the "split space bar" (enter, space) results in layer `_DRA`.
 | 
			
		||||
 | 
			
		||||
Holding either one of the just above mentioned `_DEF_NSY` layer keys (<3 and 3>), with the `_ACC` layer key
 | 
			
		||||
(on <2) results in layer `_BON`.
 | 
			
		||||
 | 
			
		||||
- - -
 | 
			
		||||
 | 
			
		||||
     Layer _..._NSY (Numbers and SYmbols)
 | 
			
		||||
    
 | 
			
		||||
                                      HEBREW_ISRAEL & HEBREW_QWERTY (_ becomes ־ Maqaf)
 | 
			
		||||
     <pink2   <pinky<ring <middl<index<indx2| indx2>index>middl>ring>pin>pink2>
 | 
			
		||||
              -*-                          <|>                                  //(toggle) Access on _FUN
 | 
			
		||||
     BASExxxxx!xxxxx@xxxxx#xxxxx$xxxxx%xxxxx|x^xxxxx&xxxxx*xxxxx(xxxx)xxxxxxxDel
 | 
			
		||||
     Tab+LCtlx1!xxxx2@xxxx3#xxxx4$xxxx5%xxxx|x6^xxxx7&xxxx8*xxxx9(xxx0)xx`~+RCtl
 | 
			
		||||
     -+LShtxxx[{xxxx]}xxxx-_xxxx\|xxxx=+xxxx|x+xxxxx|xxxxx־xxxxx{xxxxx}xxx~+RSht
 | 
			
		||||
                                                          ^                       // Only difference with Qwerty
 | 
			
		||||
     ---------------------------------------------------------------------------
 | 
			
		||||
                 Left+LAlt ___   ___   Ent  | .   ___   RGUI  Right+RAlt
 | 
			
		||||
                                 -*-       <|>    -*-                        //(hold) Access on _DEF_BASE
 | 
			
		||||
                   <1   ±  <2    <3    <4   | 4>  3>    2>  ± 1>  
 | 
			
		||||
                        ^                                   ^
 | 
			
		||||
                      (LGUI)                              (_MOV)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
                                      HEBREW_DVORAK (Same as standard Dvorak)
 | 
			
		||||
     <pink2   <pinky<ring <middl<index<indx2| indx2>index>middl>ring>pin>pink2>
 | 
			
		||||
              -*-                          <|>                                  //(toggle) Access on _FUN
 | 
			
		||||
     BASE     !     @     #     $     %     | ^     &     *     (    )       Del
 | 
			
		||||
     Tab+LCtl 1!    2@    3#    4$    5%    | 6^    7&    8*    9(   0)  `~+RCtl
 | 
			
		||||
     -+LSht   [{    ]}    /?    \|    =+    | +     |     ?     {     }   ~+RSht 
 | 
			
		||||
     ---------------------------------------------------------------------------
 | 
			
		||||
     (…)
 | 
			
		||||
- - -
 | 
			
		||||
| 
						 | 
				
			
			@ -18,6 +18,8 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
			
		|||
 *
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#pragma once
 | 
			
		||||
 | 
			
		||||
// --------------------------------------v---------------------------------------
 | 
			
		||||
//                                 Configuration:
 | 
			
		||||
// --------------------------------------v---------------------------------------
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -18,6 +18,8 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
			
		|||
 *
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#pragma once
 | 
			
		||||
 | 
			
		||||
// --------------------------------------v---------------------------------------
 | 
			
		||||
//                                 Configuration:
 | 
			
		||||
// --------------------------------------v---------------------------------------
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -146,7 +146,7 @@ bool led_middle_on = TRUE; // Set to off later, if startup setting is off.
 | 
			
		|||
bool isolate_trigger = FALSE; // detects if _FUN layer move was pressed, and no other key (no normal use of Shift).
 | 
			
		||||
bool capslock; // keeps track of capslock state
 | 
			
		||||
bool numlock; // keeps track of numlock state
 | 
			
		||||
layer_state_t state_recall; // We are calling the function set_led_colors_ from this file as well.
 | 
			
		||||
//layer_state_t state_recall; // We are calling the function set_led_colors_ from this file as well.
 | 
			
		||||
// speed measuring
 | 
			
		||||
bool     speed_measure = SPEED_INIT_VALUE; // feature activated or not on startup
 | 
			
		||||
uint32_t speed_counttime; // counts the time
 | 
			
		||||
| 
						 | 
				
			
			@ -289,8 +289,8 @@ void speed_led (int speed) {
 | 
			
		|||
 | 
			
		||||
// do this in one place to handle left/right leds being off here
 | 
			
		||||
void isolate_rgblight_set () {
 | 
			
		||||
# ifdef RGBLIGHT_ENABLE
 | 
			
		||||
 | 
			
		||||
# ifdef RGBLIGHT_ENABLE
 | 
			
		||||
    if (!leds_on) { // left/right leds are off
 | 
			
		||||
        // overwrite previously colors
 | 
			
		||||
        uint8_t led0r = 0; uint8_t led0g = 0; uint8_t led0b = 0;
 | 
			
		||||
| 
						 | 
				
			
			@ -305,8 +305,8 @@ void isolate_rgblight_set () {
 | 
			
		|||
        setrgb(led2r, led2g, led2b, (LED_TYPE *)&led[2]); // Led 2
 | 
			
		||||
    }
 | 
			
		||||
    rgblight_set ();
 | 
			
		||||
 | 
			
		||||
# endif
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -335,7 +335,7 @@ void indicate_fun_stay (void) {
 | 
			
		|||
 | 
			
		||||
 | 
			
		||||
// _RAR layer leds
 | 
			
		||||
// It is a function because this is called when the Base layer OTHER_BASE key is pressed
 | 
			
		||||
// It is a function because this is also called when the Base layer OTHER_BASE key is pressed
 | 
			
		||||
void indicate_base (void) {
 | 
			
		||||
# ifdef RGBLIGHT_ENABLE
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -614,6 +614,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		|||
#     include "./base_numpad.c" // Numbers pad
 | 
			
		||||
# endif
 | 
			
		||||
 | 
			
		||||
//                         * Hebrew *
 | 
			
		||||
# if defined(BASE_HEBREW__DEF_BASE) || defined(BASE_HEBREW__ALT_BASE)
 | 
			
		||||
#     include "./base_hebrew.c" // Hebrew
 | 
			
		||||
# endif
 | 
			
		||||
 | 
			
		||||
// // ⬇ insert your ./base_YOUR_KEYMAP.c #include here:
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -14,25 +14,29 @@ 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/>.
 | 
			
		||||
 | 
			
		||||
 * © 2020,2021 by Jos Boersema
 | 
			
		||||
* © 2020,2021 by Jos Boersema
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#pragma once
 | 
			
		||||
 | 
			
		||||
/* 
 | 
			
		||||
 * If MINIFAN_CONFIG_COMPACT in ./user_config.h ⬇
 | 
			
		||||
 */
 | 
			
		||||
      
 | 
			
		||||
//#define BASE_QWERTY__DEF_BASE 
 | 
			
		||||
//#define BASE_QWERTY__ALT_BASE
 | 
			
		||||
//#define BASE_QWERTY_BASEARROW__DEF_BASE
 | 
			
		||||
//#define BASE_QWERTY_BASEARROW__ALT_BASE
 | 
			
		||||
//#define BASE_QWERTY_BASEARROW__DEF_BASE // ➡ base_qwerty_basearrow.h
 | 
			
		||||
//#define BASE_QWERTY_BASEARROW__ALT_BASE // ➡ base_qwerty_basearrow.h
 | 
			
		||||
  #define BASE_DVORAK__DEF_BASE
 | 
			
		||||
//#define BASE_DVORAK__ALT_BASE
 | 
			
		||||
  #define BASE_DVORAK_DESCRAMBLE__ALT_BASE 
 | 
			
		||||
//#define BASE_DVORAK_DESCRAMBLE__ALT_BASE 
 | 
			
		||||
//#define BASE_COLEMAK__DEF_BASE
 | 
			
		||||
//#define BASE_COLEMAK__ALT_BASE 
 | 
			
		||||
//#define BASE_WORKMAN__DEF_BASE
 | 
			
		||||
//#define BASE_WORKMAN__ALT_BASE
 | 
			
		||||
//#define BASE_NUMPAD__ALT_BASE 
 | 
			
		||||
//#define BASE_NUMPAD__ALT_BASE // ➡ base_numpad.h
 | 
			
		||||
//#define BASE_HEBREW__DEF_BASE // ➡ base_hebrew.h
 | 
			
		||||
  #define BASE_HEBREW__ALT_BASE // ➡ base_hebrew.h
 | 
			
		||||
 | 
			
		||||
//#define MINIFAN_SINGLE_LAYOUT 
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -66,7 +70,7 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
			
		|||
  #define ARROWS_TRIANGLE 
 | 
			
		||||
//#define VI_SWITCHERYDOO 
 | 
			
		||||
 | 
			
		||||
//#define NUMPAD_COMMON_SQUARE 
 | 
			
		||||
  #define NUMPAD_COMMON_SQUARE 
 | 
			
		||||
 | 
			
		||||
  #define SPEED_COUNTDOWN 25 
 | 
			
		||||
  #define SPEED_HUE_STEP 8 
 | 
			
		||||
| 
						 | 
				
			
			@ -100,5 +104,5 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
			
		|||
  #define FULL_DRA_4THROW 
 | 
			
		||||
  #define FULL_BON_4THROW 
 | 
			
		||||
 | 
			
		||||
  #define LEDS_OFF_BASE_DEF 
 | 
			
		||||
  #define LEDS_OFF_BASE_ALT
 | 
			
		||||
//#define LEDS_OFF_BASE_DEF 
 | 
			
		||||
//#define LEDS_OFF_BASE_ALT
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -3,7 +3,7 @@ A 40% keyboard made first by TheVan Keyboards
 | 
			
		|||
_https://thevankeyboards.com_ now taken over by TKC
 | 
			
		||||
_https://thekey.company_
 | 
			
		||||
 | 
			
		||||

 | 
			
		||||

 | 
			
		||||
 | 
			
		||||
Table of Contents
 | 
			
		||||
=================
 | 
			
		||||
| 
						 | 
				
			
			@ -22,6 +22,8 @@ Table of Contents
 | 
			
		|||
                3.1.6 Workman
 | 
			
		||||
          3.2 Special layouts
 | 
			
		||||
                3.2.1 Numbers pad
 | 
			
		||||
          3.3 Non-Latin languages
 | 
			
		||||
                3.3.1 Hebrew
 | 
			
		||||
      4 The common system
 | 
			
		||||
          4.1 Layer access
 | 
			
		||||
          4.2 Layout in graphics
 | 
			
		||||
| 
						 | 
				
			
			@ -108,7 +110,7 @@ the western European group of languages, native from the keyboard.
 | 
			
		|||
This keymap might not function as expected if you want to use a
 | 
			
		||||
different keyboard language setting in your operating system.
 | 
			
		||||
 | 
			
		||||
See also chapter 6 _Language support_.
 | 
			
		||||
See also chapter 7 _Language support_.
 | 
			
		||||
 | 
			
		||||
2 'make' example
 | 
			
		||||
================
 | 
			
		||||
| 
						 | 
				
			
			@ -195,6 +197,17 @@ with a normal layout on ‛Default’. How this works is explained below.
 | 
			
		|||
For the readme about the Numpad version, see ➡  ⬅
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
3.3 Non-Latin languages
 | 
			
		||||
=======================
 | 
			
		||||
 | 
			
		||||
3.3.1 Hebrew
 | 
			
		||||
------------
 | 
			
		||||
 | 
			
		||||

 | 
			
		||||
 | 
			
		||||
For the readme about the Hebrew version, see ➡  ⬅
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
4 The common system
 | 
			
		||||
===================
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -1053,7 +1066,9 @@ You can remove the layers `_ACC`, `_DRA` and/or `_BON` (see
 | 
			
		|||
 | 
			
		||||
You can remove a set of symbols from one or more of Unicode layers,
 | 
			
		||||
such as not having box drawing characters on `_BON`, or no sub-script
 | 
			
		||||
numbers on `_DRA`.
 | 
			
		||||
numbers on `_DRA` (see  under 
 | 
			
		||||
`Eviscerations ②/②` ) ⬅
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
12 Key associations
 | 
			
		||||
===================
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -0,0 +1,116 @@
 | 
			
		|||
/*
 | 
			
		||||
 * License (GPL):
 | 
			
		||||
  
 | 
			
		||||
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/>.
 | 
			
		||||
 | 
			
		||||
 * Author: © 2021 by Jos Boersema
 | 
			
		||||
 *
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#pragma once
 | 
			
		||||
 | 
			
		||||
/*        An amount of Unicode #defines
 | 
			
		||||
 *        - hebrew
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
    // 
 | 
			
		||||
#define HB_ALEF  0x05D0 // 'HB' for 'Hebrew', "ALEF" for Alef         : א
 | 
			
		||||
#define HB_BET   0x05D1 //      "           , "BET" for Bet           : ב
 | 
			
		||||
#define HB_GIMEL 0x05D2 //      "           , "GIMEL" for Gimel       : ג
 | 
			
		||||
#define HB_DALET 0x05D3 //      "           , "DALET" for Daled       : ד
 | 
			
		||||
#define HB_HE    0x05D4 //      "           , "HE" for He             : ה
 | 
			
		||||
#define HB_VAV   0x05D5 //      "           , "VAV" for Vav           : ו
 | 
			
		||||
#define HB_ZAYIN 0x05D6 //      "           , "ZAYIN" for Zayin       : ז
 | 
			
		||||
#define HB_GET   0x05D7 //      "           , "HET" for Het           : ח
 | 
			
		||||
#define HB_TET   0x05D8 //      "           , "TET" for Tet           : ט
 | 
			
		||||
#define HB_YOD   0x05D9 //      "           , "YOD" for Yod           : י
 | 
			
		||||
#define HB_KAFS  0x05DA //      "           , "KAFS" for Kaf sofiet   : ך
 | 
			
		||||
#define HB_KAF   0x05DB //      "           , "KAF" for Kaf           : כ
 | 
			
		||||
#define HB_LAMED 0x05DC //      "           , "LAMED" for Lamed       : ל
 | 
			
		||||
#define HB_MEMS  0x05DD //      "           , "MEMS" for Mem sofiet   : ם
 | 
			
		||||
#define HB_MEM   0x05DE //      "           , "MEM" for Mem           : מ
 | 
			
		||||
#define HB_NUNS  0x05DF //      "           , "NUNS" for Nun sofiet   : ן
 | 
			
		||||
#define HB_NUN   0x05E0 //      "           , "NUN" for Nun           : נ
 | 
			
		||||
#define HB_SAMEG 0x05E1 //      "           , "SAMEG" for Sameg       : ס
 | 
			
		||||
#define HB_AYIN  0x05E2 //      "           , "AYIN" for Ayin         : ע
 | 
			
		||||
#define HB_PES   0x05E3 //      "           , "PES"  for Pe sofiet    : ף
 | 
			
		||||
#define HB_PE    0x05E4 //      "           , "PE" for Pe             : פ
 | 
			
		||||
#define HB_TSDIS 0x05E5 //      "           , "TSDIS" for Tsadi sofiet: ץ
 | 
			
		||||
#define HB_TSADI 0x05E6 //      "           , "TSADI" for Tsadi       : צ
 | 
			
		||||
#define HB_QOF   0x05E7 //      "           , "QOF" for Qof           : ק
 | 
			
		||||
#define HB_RESH  0x05E8 //      "           , "RESH" for Resh         : ר
 | 
			
		||||
#define HB_SHIN  0x05E9 //      "           , "SHIN" for Shin         : ש
 | 
			
		||||
#define HB_TAV   0x05EA //      "           , "TAV" for Tav           : ת
 | 
			
		||||
#define HB_MAQAF 0x05be //      "           , "MAQAF" for Maqaf       : ־
 | 
			
		||||
 | 
			
		||||
// Yiddish digraphs:
 | 
			
		||||
//#define HB_D_VAV 0x05F0 //      "           , "D_VAV" for double Van  : װ
 | 
			
		||||
//#define HB_VAVYD 0x05F1 //      "           , "VAVYD" for Vav Yod     : ױ
 | 
			
		||||
//#define HB_D_YOD 0x05F2 //      "           , "D_YOD" for double Yod  : ײ
 | 
			
		||||
 | 
			
		||||
// special
 | 
			
		||||
#define HB_RLM   0x200F //      "           , "RLM" for Right-Left-Mark: <non-printing>
 | 
			
		||||
#define HB_LRM   0x200E //      "           , "LRM" for Left-Right-Mark: <non-printing>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
// The below are displacing symbols on other layers, some of which are quite obscure
 | 
			
		||||
// and end up being unused. They are compiled based on a #define.
 | 
			
		||||
// These where reported as symbols present on hebrew keyboards: 
 | 
			
		||||
// U+05F3 : HEBREW PUNCTUATION GERESH
 | 
			
		||||
// U+20AC : EURO SIGN
 | 
			
		||||
// U+20AA : NEW SHEQEL SIGN {shekel}
 | 
			
		||||
// U+00B0 : DEGREE SIGN
 | 
			
		||||
// U+05AB : HEBREW ACCENT OLE
 | 
			
		||||
// U+05BD : HEBREW POINT METEG {siluq}
 | 
			
		||||
// U+00D7 : MULTIPLICATION SIGN {z notation Cartesian product}
 | 
			
		||||
// U+200E : LEFT-TO-RIGHT MARK [LRM]
 | 
			
		||||
// U+200F : RIGHT-TO-LEFT MARK [RLM]
 | 
			
		||||
// U+05BE : HEBREW PUNCTUATION MAQAF
 | 
			
		||||
// U+2013 : EN DASH
 | 
			
		||||
// U+05C2 : HEBREW POINT SIN DOT
 | 
			
		||||
// U+05C1 : HEBREW POINT SHIN DOT
 | 
			
		||||
// U+05B8 : HEBREW POINT QAMATS
 | 
			
		||||
// U+05F0 : HEBREW LIGATURE YIDDISH DOUBLE VAV {tsvey vovn}
 | 
			
		||||
// U+05B9 : HEBREW POINT HOLAM
 | 
			
		||||
// U+05B7 : HEBREW POINT PATAH
 | 
			
		||||
// U+05B2 : HEBREW POINT HATAF PATAH
 | 
			
		||||
// U+05F1 : HEBREW LIGATURE YIDDISH VAV YOD
 | 
			
		||||
// U+05F2 : HEBREW LIGATURE YIDDISH DOUBLE YOD {tsvey yudn}
 | 
			
		||||
// U+05B4 : HEBREW POINT HIRIQ
 | 
			
		||||
// U+201D : RIGHT DOUBLE QUOTATION MARK {double comma quotation mark}
 | 
			
		||||
// U+201E : DOUBLE LOW-9 QUOTATION MARK {low double comma quotation mark}
 | 
			
		||||
// U+05F4 : HEBREW PUNCTUATION GERSHAYIM
 | 
			
		||||
// U+05B6 : HEBREW POINT SEGOL
 | 
			
		||||
// U+05B1 : HEBREW POINT HATAF SEGOL
 | 
			
		||||
// U+05B5 : HEBREW POINT TSERE
 | 
			
		||||
// U+2019 : RIGHT SINGLE QUOTATION MARK {single comma quotation mark}
 | 
			
		||||
// U+201A : SINGLE LOW-9 QUOTATION MARK {low single comma quotation mark}
 | 
			
		||||
// U+00F7 : DIVISION SIGN {obelus}
 | 
			
		||||
// U+05BA : HEBREW POINT HOLAM HASER FOR VAV
 | 
			
		||||
// U+200D : ZERO WIDTH JOINER [ZWJ]
 | 
			
		||||
// U+201C : LEFT DOUBLE QUOTATION MARK {double turned comma quotation mark}
 | 
			
		||||
// U+201D : RIGHT DOUBLE QUOTATION MARK {double comma quotation mark}
 | 
			
		||||
// U+034F : COMBINING GRAPHEME JOINER [CGJ]
 | 
			
		||||
// U+05C6 : HEBREW PUNCTUATION NUN HAFUKHA
 | 
			
		||||
// U+200C : ZERO WIDTH NON-JOINER [ZWNJ]
 | 
			
		||||
// U+2018 : LEFT SINGLE QUOTATION MARK {single turned comma quotation mark}
 | 
			
		||||
// U+2019 : RIGHT SINGLE QUOTATION MARK {single comma quotation mark}
 | 
			
		||||
// Note: many modifiers probably only work with a hebrew language setting on the computer
 | 
			
		||||
//  operating system. As Unicode, it would print a disconnected diacretical symbol.
 | 
			
		||||
 | 
			
		||||
// Geresh
 | 
			
		||||
#define HB_GERSH 0x05F3 //      "           , "GERSH" for Geresh      : 
 | 
			
		||||
#define HB_GRSHM 0x05F4 //      "           , "GRSHM" for Gershayim   : 
 | 
			
		||||
// Currency
 | 
			
		||||
#define HB_SHEKL 0x20AA //      "           , "SHEKL" for shekel      :
 | 
			
		||||
| 
						 | 
				
			
			@ -24,6 +24,7 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
			
		|||
 | 
			
		||||
#include "./unicode_macros.h"
 | 
			
		||||
#include "./unicode_weurope.h"
 | 
			
		||||
#include "./unicode_hebrew.h"
 | 
			
		||||
 | 
			
		||||
// Definition of ƒ (Dutch currency symbol).
 | 
			
		||||
// Best changed in user_config.h, if you like a Euro symbol instead.
 | 
			
		||||
| 
						 | 
				
			
			@ -174,109 +175,150 @@ enum custom_keycodes {
 | 
			
		|||
 | 
			
		||||
// The _ACC layer, additional Unicode.
 | 
			
		||||
# ifndef REMOVE_ACC // This cuts out the whole _ACC layer.
 | 
			
		||||
    XP_ACC_AA ,
 | 
			
		||||
    XP_ACC_AB ,
 | 
			
		||||
    XP_ACC_AC ,
 | 
			
		||||
    XP_ACC_AD ,
 | 
			
		||||
    XP_ACC_AE ,
 | 
			
		||||
    XP_ACC_AF ,
 | 
			
		||||
    XP_ACC_AG ,
 | 
			
		||||
    XP_ACC_AH ,
 | 
			
		||||
    XP_ACC_AI ,
 | 
			
		||||
    XP_ACC_AJ ,
 | 
			
		||||
    XP_ACC_BA ,
 | 
			
		||||
    XP_ACC_BB ,
 | 
			
		||||
    XP_ACC_BC ,
 | 
			
		||||
    XP_ACC_BD ,
 | 
			
		||||
    XP_ACC_BE ,
 | 
			
		||||
    XP_ACC_BF ,
 | 
			
		||||
    XP_ACC_BG ,
 | 
			
		||||
    XP_ACC_BH ,
 | 
			
		||||
    XP_ACC_BI ,
 | 
			
		||||
    XP_ACC_BJ ,
 | 
			
		||||
    XP_ACC_BK ,
 | 
			
		||||
    XP_ACC_CA ,
 | 
			
		||||
    XP_ACC_CB ,
 | 
			
		||||
    XP_ACC_CC ,
 | 
			
		||||
    XP_ACC_CD ,
 | 
			
		||||
    XP_ACC_CE ,
 | 
			
		||||
    XP_ACC_CF ,
 | 
			
		||||
    XP_ACC_CG ,
 | 
			
		||||
    XP_ACC_CH ,
 | 
			
		||||
    XP_ACC_CI ,
 | 
			
		||||
    XP_ACC_CJ ,
 | 
			
		||||
    XP_ACC_AA,
 | 
			
		||||
    XP_ACC_AB,
 | 
			
		||||
    XP_ACC_AC,
 | 
			
		||||
    XP_ACC_AD,
 | 
			
		||||
    XP_ACC_AE,
 | 
			
		||||
    XP_ACC_AF,
 | 
			
		||||
    XP_ACC_AG,
 | 
			
		||||
    XP_ACC_AH,
 | 
			
		||||
    XP_ACC_AI,
 | 
			
		||||
    XP_ACC_AJ,
 | 
			
		||||
    XP_ACC_BA,
 | 
			
		||||
    XP_ACC_BB,
 | 
			
		||||
    XP_ACC_BC,
 | 
			
		||||
    XP_ACC_BD,
 | 
			
		||||
    XP_ACC_BE,
 | 
			
		||||
    XP_ACC_BF,
 | 
			
		||||
    XP_ACC_BG,
 | 
			
		||||
    XP_ACC_BH,
 | 
			
		||||
    XP_ACC_BI,
 | 
			
		||||
    XP_ACC_BJ,
 | 
			
		||||
    XP_ACC_BK,
 | 
			
		||||
    XP_ACC_CA,
 | 
			
		||||
    XP_ACC_CB,
 | 
			
		||||
    XP_ACC_CC,
 | 
			
		||||
    XP_ACC_CD,
 | 
			
		||||
    XP_ACC_CE,
 | 
			
		||||
    XP_ACC_CF,
 | 
			
		||||
    XP_ACC_CG,
 | 
			
		||||
    XP_ACC_CH,
 | 
			
		||||
    XP_ACC_CI,
 | 
			
		||||
    XP_ACC_CJ,
 | 
			
		||||
# endif // REMOVE_ACC 
 | 
			
		||||
 | 
			
		||||
# ifndef REMOVE_DRA // This cuts out the whole _DRA layer
 | 
			
		||||
// The _DRA layer, additional Unicode.
 | 
			
		||||
    XP_DRA_AA ,
 | 
			
		||||
    XP_DRA_AB ,
 | 
			
		||||
    XP_DRA_AC ,
 | 
			
		||||
    XP_DRA_AD ,
 | 
			
		||||
    XP_DRA_AE ,
 | 
			
		||||
    XP_DRA_AF ,
 | 
			
		||||
    XP_DRA_AG ,
 | 
			
		||||
    XP_DRA_AH ,
 | 
			
		||||
    XP_DRA_AI ,
 | 
			
		||||
    XP_DRA_AJ ,
 | 
			
		||||
    XP_DRA_BA ,
 | 
			
		||||
    XP_DRA_BB ,
 | 
			
		||||
    XP_DRA_BC ,
 | 
			
		||||
    XP_DRA_BD ,
 | 
			
		||||
    XP_DRA_BE ,
 | 
			
		||||
    XP_DRA_BF ,
 | 
			
		||||
    XP_DRA_BG ,
 | 
			
		||||
    XP_DRA_BH ,
 | 
			
		||||
    XP_DRA_BI ,
 | 
			
		||||
    XP_DRA_BJ ,// XP_DRA_BK , // no 'BK' key definition on this layer
 | 
			
		||||
    XP_DRA_CA ,
 | 
			
		||||
    XP_DRA_CB ,
 | 
			
		||||
    XP_DRA_CC ,
 | 
			
		||||
    XP_DRA_CD ,
 | 
			
		||||
    XP_DRA_CE ,
 | 
			
		||||
    XP_DRA_CF ,
 | 
			
		||||
    XP_DRA_AA,
 | 
			
		||||
    XP_DRA_AB,
 | 
			
		||||
    XP_DRA_AC,
 | 
			
		||||
    XP_DRA_AD,
 | 
			
		||||
    XP_DRA_AE,
 | 
			
		||||
    XP_DRA_AF,
 | 
			
		||||
    XP_DRA_AG,
 | 
			
		||||
    XP_DRA_AH,
 | 
			
		||||
    XP_DRA_AI,
 | 
			
		||||
    XP_DRA_AJ,
 | 
			
		||||
    XP_DRA_BA,
 | 
			
		||||
    XP_DRA_BB,
 | 
			
		||||
    XP_DRA_BC,
 | 
			
		||||
    XP_DRA_BD,
 | 
			
		||||
    XP_DRA_BE,
 | 
			
		||||
    XP_DRA_BF,
 | 
			
		||||
    XP_DRA_BG,
 | 
			
		||||
    XP_DRA_BH,
 | 
			
		||||
    XP_DRA_BI,
 | 
			
		||||
    XP_DRA_BJ,// XP_DRA_BK , // no 'BK' key definition on this layer
 | 
			
		||||
    XP_DRA_CA,
 | 
			
		||||
    XP_DRA_CB,
 | 
			
		||||
    XP_DRA_CC,
 | 
			
		||||
    XP_DRA_CD,
 | 
			
		||||
    XP_DRA_CE,
 | 
			
		||||
    XP_DRA_CF,
 | 
			
		||||
# endif // REMOVE_DRA
 | 
			
		||||
    XP_DRA_CG , // Needed for ☑ on Unicode tester key in _RAR
 | 
			
		||||
    XP_DRA_CG, // Needed for ☑ on Unicode tester key in _RAR
 | 
			
		||||
# ifndef REMOVE_DRA // This cuts out the whole _DRA layer
 | 
			
		||||
    XP_DRA_CH ,
 | 
			
		||||
    XP_DRA_CI ,
 | 
			
		||||
    XP_DRA_CJ ,
 | 
			
		||||
    XP_DRA_CH,
 | 
			
		||||
    XP_DRA_CI,
 | 
			
		||||
    XP_DRA_CJ,
 | 
			
		||||
# endif // REMOVE_DRA
 | 
			
		||||
 | 
			
		||||
// The _BON layer, additional Unicode.
 | 
			
		||||
# ifndef REMOVE_BON // Removes this layer entirely, if set.
 | 
			
		||||
    XP_BON_AA ,
 | 
			
		||||
    XP_BON_AB ,
 | 
			
		||||
    XP_BON_AC ,
 | 
			
		||||
    XP_BON_AD ,
 | 
			
		||||
    XP_BON_AE ,
 | 
			
		||||
    XP_BON_AF ,
 | 
			
		||||
    XP_BON_AG ,
 | 
			
		||||
    XP_BON_AH ,
 | 
			
		||||
    XP_BON_AI ,
 | 
			
		||||
    XP_BON_AJ ,
 | 
			
		||||
    XP_BON_BA ,
 | 
			
		||||
    XP_BON_BB ,
 | 
			
		||||
    XP_BON_BC ,
 | 
			
		||||
    XP_BON_BD ,
 | 
			
		||||
    XP_BON_BE ,
 | 
			
		||||
    XP_BON_BF ,
 | 
			
		||||
    XP_BON_BG ,
 | 
			
		||||
    XP_BON_BH ,
 | 
			
		||||
    XP_BON_BI ,
 | 
			
		||||
    XP_BON_BJ ,
 | 
			
		||||
    XP_BON_BK ,
 | 
			
		||||
    XP_BON_CA ,
 | 
			
		||||
    XP_BON_CB ,
 | 
			
		||||
    XP_BON_CC ,
 | 
			
		||||
    XP_BON_CD ,
 | 
			
		||||
    XP_BON_CE ,
 | 
			
		||||
    XP_BON_CF ,
 | 
			
		||||
    XP_BON_CG ,
 | 
			
		||||
    XP_BON_CH ,
 | 
			
		||||
    XP_BON_CI ,
 | 
			
		||||
    XP_BON_CJ ,
 | 
			
		||||
    XP_BON_AA,
 | 
			
		||||
    XP_BON_AB,
 | 
			
		||||
    XP_BON_AC,
 | 
			
		||||
    XP_BON_AD,
 | 
			
		||||
    XP_BON_AE,
 | 
			
		||||
    XP_BON_AF,
 | 
			
		||||
    XP_BON_AG,
 | 
			
		||||
    XP_BON_AH,
 | 
			
		||||
    XP_BON_AI,
 | 
			
		||||
    XP_BON_AJ,
 | 
			
		||||
    XP_BON_BA,
 | 
			
		||||
    XP_BON_BB,
 | 
			
		||||
    XP_BON_BC,
 | 
			
		||||
    XP_BON_BD,
 | 
			
		||||
    XP_BON_BE,
 | 
			
		||||
    XP_BON_BF,
 | 
			
		||||
    XP_BON_BG,
 | 
			
		||||
    XP_BON_BH,
 | 
			
		||||
    XP_BON_BI,
 | 
			
		||||
    XP_BON_BJ,
 | 
			
		||||
    XP_BON_BK,
 | 
			
		||||
    XP_BON_CA,
 | 
			
		||||
    XP_BON_CB,
 | 
			
		||||
    XP_BON_CC,
 | 
			
		||||
    XP_BON_CD,
 | 
			
		||||
    XP_BON_CE,
 | 
			
		||||
    XP_BON_CF,
 | 
			
		||||
    XP_BON_CG,
 | 
			
		||||
    XP_BON_CH,
 | 
			
		||||
    XP_BON_CI,
 | 
			
		||||
    XP_BON_CJ,
 | 
			
		||||
# endif // REMOVE_BON 
 | 
			
		||||
 | 
			
		||||
// Hebrew
 | 
			
		||||
# if defined(BASE_HEBREW__DEF_BASE) || defined(BASE_HEBREW__ALT_BASE)
 | 
			
		||||
    XP_HEB_AA,
 | 
			
		||||
    XP_HEB_AB,
 | 
			
		||||
    XP_HEB_AC,
 | 
			
		||||
    XP_HEB_AD,
 | 
			
		||||
    XP_HEB_AE,
 | 
			
		||||
    XP_HEB_AF,
 | 
			
		||||
    XP_HEB_AG,
 | 
			
		||||
    XP_HEB_AH,
 | 
			
		||||
    XP_HEB_AI,
 | 
			
		||||
    XP_HEB_AJ,
 | 
			
		||||
    XP_HEB_BA,
 | 
			
		||||
    XP_HEB_BB,
 | 
			
		||||
    XP_HEB_BC,
 | 
			
		||||
    XP_HEB_BD,
 | 
			
		||||
    XP_HEB_BE,
 | 
			
		||||
    XP_HEB_BF,
 | 
			
		||||
    XP_HEB_BG,
 | 
			
		||||
    XP_HEB_BH,
 | 
			
		||||
    XP_HEB_BI,
 | 
			
		||||
    XP_HEB_BJ,
 | 
			
		||||
#     if defined(HEBREW_ISRAEL)
 | 
			
		||||
    XP_HEB_BK,  // 
 | 
			
		||||
#     endif
 | 
			
		||||
    XP_HEB_CA,
 | 
			
		||||
    XP_HEB_CB,
 | 
			
		||||
    XP_HEB_CC,
 | 
			
		||||
    XP_HEB_CD,
 | 
			
		||||
    XP_HEB_CE,
 | 
			
		||||
    XP_HEB_CF,
 | 
			
		||||
    XP_HEB_CG,
 | 
			
		||||
#     if defined(HEBREW_ISRAEL) || defined(HEBREW_DVORAK)
 | 
			
		||||
    XP_HEB_CH,
 | 
			
		||||
    XP_HEB_CI,
 | 
			
		||||
    XP_HEB_CJ,
 | 
			
		||||
#     endif
 | 
			
		||||
    XP_HEB_MQF, // ־
 | 
			
		||||
# endif //BASE_HEBREW__*
 | 
			
		||||
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
// Pre-existing function, called for every key up and down.
 | 
			
		||||
| 
						 | 
				
			
			@ -1244,12 +1286,17 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
 | 
			
		|||
 | 
			
		||||
        case LEDS_ON: // Toggles left/right leds on or off
 | 
			
		||||
            if (record->event.pressed) { // key down
 | 
			
		||||
 | 
			
		||||
# ifdef RGBLIGHT_ENABLE
 | 
			
		||||
                if (leds_on == FALSE) { 
 | 
			
		||||
                    leds_on = TRUE;
 | 
			
		||||
                }else{
 | 
			
		||||
                    leds_on = FALSE;
 | 
			
		||||
                }
 | 
			
		||||
                set_led_colors_ (state_recall); // Update leds
 | 
			
		||||
            }
 | 
			
		||||
# endif
 | 
			
		||||
 | 
			
		||||
            break;
 | 
			
		||||
 | 
			
		||||
# ifdef LEDS_OFF_BASE_DEF  // This messes with led effect on/off, so we need to track the state of this setting now.
 | 
			
		||||
| 
						 | 
				
			
			@ -1652,11 +1699,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
 | 
			
		|||
        case XP_DRA_AA: // because '", the opening „“ at the ‛open’ of the keyboard (left/up)
 | 
			
		||||
            if (record->event.pressed) { // key down
 | 
			
		||||
 | 
			
		||||
#     ifdef FULL_DRA_4THROW
 | 
			
		||||
                unicode_hex2output (CS_DQUHR, CS_DQUL);// “ „
 | 
			
		||||
#     else
 | 
			
		||||
                unicode_hex2output_single (CS_DQUHR);// “
 | 
			
		||||
#     endif
 | 
			
		||||
 | 
			
		||||
            }
 | 
			
		||||
            break;
 | 
			
		||||
| 
						 | 
				
			
			@ -1664,11 +1707,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
 | 
			
		|||
        case XP_DRA_AB: // because to the right of opening “, ≤ on <
 | 
			
		||||
            if (record->event.pressed) { // key down
 | 
			
		||||
 | 
			
		||||
#    ifdef FULL_DRA_4THROW
 | 
			
		||||
                unicode_hex2output (CS_DQUH, CS_ELTHAN);// ” ≤
 | 
			
		||||
#    else
 | 
			
		||||
                unicode_hex2output_single (CS_DQUH);// ”
 | 
			
		||||
#    endif
 | 
			
		||||
 | 
			
		||||
            }
 | 
			
		||||
            break;
 | 
			
		||||
| 
						 | 
				
			
			@ -1676,11 +1715,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
 | 
			
		|||
        case XP_DRA_AC: // because this is where the £ is on an English keyboard, on 'any' money symbols ¤; ≥ on >
 | 
			
		||||
            if (record->event.pressed) { // key down
 | 
			
		||||
 | 
			
		||||
#     ifdef FULL_DRA_4THROW
 | 
			
		||||
                unicode_hex2output (CS_POUND, CS_EGTHAN);// £ ≥
 | 
			
		||||
#     else
 | 
			
		||||
                unicode_hex2output_single (CS_POUND);// £
 | 
			
		||||
#     endif
 | 
			
		||||
 | 
			
		||||
            }
 | 
			
		||||
            break;
 | 
			
		||||
| 
						 | 
				
			
			@ -1690,6 +1725,8 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
 | 
			
		|||
 | 
			
		||||
#     ifdef FULL_DRA_4THROW
 | 
			
		||||
                unicode_hex2output (CS_NONE, CS_CENT);// ∅ ¢
 | 
			
		||||
#     else
 | 
			
		||||
                unicode_hex2output_single (CS_NONE);// ∅ ¢
 | 
			
		||||
#     endif
 | 
			
		||||
 | 
			
		||||
            }
 | 
			
		||||
| 
						 | 
				
			
			@ -1710,11 +1747,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
 | 
			
		|||
        case XP_DRA_AF: // Because left of 🙂, on top of ★
 | 
			
		||||
            if (record->event.pressed) { // key down
 | 
			
		||||
 | 
			
		||||
#     ifdef FULL_DRA_4THROW
 | 
			
		||||
                unicode_hex2output (CS_FLEUR, CS_HEART);// ❦ ♥
 | 
			
		||||
#     else
 | 
			
		||||
                unicode_hex2output_single (CS_HEART);// ♥
 | 
			
		||||
#     endif
 | 
			
		||||
 | 
			
		||||
            }
 | 
			
		||||
            break;
 | 
			
		||||
| 
						 | 
				
			
			@ -1722,9 +1755,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
 | 
			
		|||
        case XP_DRA_AG: // because 😊 ⍨ 
 | 
			
		||||
            if (record->event.pressed) { // key down
 | 
			
		||||
 | 
			
		||||
#     ifdef FULL_DRA_4THROW
 | 
			
		||||
                unicode_hex2output (CS_SMIL, CS_SAD_);// 🙂 🙁
 | 
			
		||||
#     endif
 | 
			
		||||
 | 
			
		||||
            }
 | 
			
		||||
            break;
 | 
			
		||||
| 
						 | 
				
			
			@ -1732,9 +1763,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
 | 
			
		|||
        case XP_DRA_AH: // because «no reason», next to 😊 (emoticons)
 | 
			
		||||
            if (record->event.pressed) { // key down
 | 
			
		||||
 | 
			
		||||
#     ifdef FULL_DRA_4THROW
 | 
			
		||||
                unicode_hex2output (CS_THUP, CS_THDN);// 👍 👎
 | 
			
		||||
#     endif
 | 
			
		||||
 | 
			
		||||
            }
 | 
			
		||||
            break;
 | 
			
		||||
| 
						 | 
				
			
			@ -2343,6 +2372,299 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
 | 
			
		|||
            break;
 | 
			
		||||
 | 
			
		||||
# endif // REMOVE_BON 
 | 
			
		||||
 | 
			
		||||
// Hebrew
 | 
			
		||||
# if defined(BASE_HEBREW__DEF_BASE) || defined(BASE_HEBREW__ALT_BASE)
 | 
			
		||||
// The layout follows a standard hebrew keyboard, with the exception
 | 
			
		||||
// of ק, which is displaced by “.>” copied from the Dvorak layout.
 | 
			
		||||
 | 
			
		||||
        // HEBREW_DVORAK
 | 
			
		||||
        // These letters on the upper left follow Dvorak layout.
 | 
			
		||||
        // The reason is space on the device: these are not macros.
 | 
			
		||||
        // Also: typing compatibility between Dvorak and Hebrew
 | 
			
		||||
        // for these similar/same symbols: ,<.>. Idealy these symbols
 | 
			
		||||
        // should be the hebrew variation, if space allows it.
 | 
			
		||||
 | 
			
		||||
# if defined(HEBREW_ISRAEL)
 | 
			
		||||
 | 
			
		||||
        case XP_HEB_AA: //
 | 
			
		||||
            if (record->event.pressed) { // key down
 | 
			
		||||
                // These shifts-up seem to work on GNU/Debian/Linux, otherwise it prints ':'
 | 
			
		||||
                if (shift_ison) send_string ( SS_UP(X_RSFT) SS_UP(X_LSFT) ";" ); // moved here from <esc> on standard hebrew
 | 
			
		||||
                else send_string  ("/");//
 | 
			
		||||
            } break;
 | 
			
		||||
 | 
			
		||||
        case XP_HEB_AB: //
 | 
			
		||||
            if (record->event.pressed) { // key down
 | 
			
		||||
                unicode_hex2output_single (HB_GERSH);// ׳
 | 
			
		||||
            }
 | 
			
		||||
            break;
 | 
			
		||||
        
 | 
			
		||||
        case XP_HEB_AC: //
 | 
			
		||||
            if (record->event.pressed) { // key down
 | 
			
		||||
                unicode_hex2output_single (HB_QOF);// ק
 | 
			
		||||
            }
 | 
			
		||||
            break;
 | 
			
		||||
 | 
			
		||||
# elif defined(HEBREW_QWERTY)
 | 
			
		||||
 | 
			
		||||
        case XP_HEB_AA: //
 | 
			
		||||
            if (record->event.pressed) { // key down
 | 
			
		||||
                unicode_hex2output_single (HB_TAV);// ת
 | 
			
		||||
            }
 | 
			
		||||
            break;
 | 
			
		||||
 | 
			
		||||
        case XP_HEB_AB: //
 | 
			
		||||
            if (record->event.pressed) { // key down
 | 
			
		||||
                unicode_hex2output_single (HB_TSDIS);// ץ 
 | 
			
		||||
            }
 | 
			
		||||
            break;
 | 
			
		||||
 | 
			
		||||
        case XP_HEB_AC: //
 | 
			
		||||
            if (record->event.pressed) { // key down
 | 
			
		||||
                unicode_hex2output_single (HB_QOF);// ק
 | 
			
		||||
            }
 | 
			
		||||
            break;
 | 
			
		||||
 | 
			
		||||
# endif // #HEBREW_*
 | 
			
		||||
 | 
			
		||||
        case XP_HEB_AD: //
 | 
			
		||||
            if (record->event.pressed) { // key down
 | 
			
		||||
                unicode_hex2output_single (HB_RESH);// ר
 | 
			
		||||
            }
 | 
			
		||||
            break;
 | 
			
		||||
 | 
			
		||||
        case XP_HEB_AE: //
 | 
			
		||||
            if (record->event.pressed) { // key down
 | 
			
		||||
                unicode_hex2output_single (HB_ALEF);// א
 | 
			
		||||
    
 | 
			
		||||
            }
 | 
			
		||||
            break;
 | 
			
		||||
 | 
			
		||||
        case XP_HEB_AF: //
 | 
			
		||||
            if (record->event.pressed) { // key down
 | 
			
		||||
                unicode_hex2output_single (HB_TET);// ט
 | 
			
		||||
            }
 | 
			
		||||
            break;
 | 
			
		||||
 | 
			
		||||
        case XP_HEB_AG: //
 | 
			
		||||
            if (record->event.pressed) { // key down
 | 
			
		||||
                unicode_hex2output_single (HB_VAV);// ו
 | 
			
		||||
            }
 | 
			
		||||
            break;
 | 
			
		||||
 | 
			
		||||
        case XP_HEB_AH: //
 | 
			
		||||
            if (record->event.pressed) { // key down
 | 
			
		||||
                unicode_hex2output_single (HB_NUNS);// ן
 | 
			
		||||
            }
 | 
			
		||||
            break;
 | 
			
		||||
 | 
			
		||||
        case XP_HEB_AI: 
 | 
			
		||||
            if (record->event.pressed) { // key down
 | 
			
		||||
 | 
			
		||||
# if   defined(HEBREW_ISRAEL)
 | 
			
		||||
                        // The logic is that it mirrors '", “„, ”≤, ‛’ in Dvorak Base and other layers.
 | 
			
		||||
                        // Therefore the little and ring fingers are used. Mirroring ━─ and ┄┅ on DRA_
 | 
			
		||||
                        // layer, the outside on the keyboard is “big/fat”, the inside is “small/thin”,
 | 
			
		||||
                        // like something protected in a shell. Hence: ……׳״
 | 
			
		||||
                unicode_hex2output_single (HB_MEMS);// ם // ׳ is located elsewhere
 | 
			
		||||
# elif defined(HEBREW_QWERTY) || defined(HEBREW_DVORAK)
 | 
			
		||||
                unicode_hex2output (HB_MEMS, HB_GERSH);// ם׳
 | 
			
		||||
# endif
 | 
			
		||||
 | 
			
		||||
            }
 | 
			
		||||
            break;
 | 
			
		||||
 | 
			
		||||
        case XP_HEB_AJ: //
 | 
			
		||||
            if (record->event.pressed) { // key down
 | 
			
		||||
 | 
			
		||||
# if   defined(HEBREW_ISRAEL)
 | 
			
		||||
                unicode_hex2output_single (HB_PE);// פ // ״ is located elsewhere
 | 
			
		||||
# elif defined(HEBREW_QWERTY) || defined(HEBREW_DVORAK)
 | 
			
		||||
                unicode_hex2output (HB_PE, HB_GRSHM);// פ״
 | 
			
		||||
# endif
 | 
			
		||||
 | 
			
		||||
            }
 | 
			
		||||
            break;
 | 
			
		||||
 | 
			
		||||
   // ------------------------- row 3
 | 
			
		||||
        case XP_HEB_BA: //
 | 
			
		||||
            if (record->event.pressed) { // key down
 | 
			
		||||
                unicode_hex2output_single (HB_SHIN);// ש
 | 
			
		||||
            }
 | 
			
		||||
            break;
 | 
			
		||||
 | 
			
		||||
        case XP_HEB_BB: //
 | 
			
		||||
            if (record->event.pressed) { // key down
 | 
			
		||||
                unicode_hex2output_single (HB_DALET);// ד
 | 
			
		||||
            }
 | 
			
		||||
            break;
 | 
			
		||||
 | 
			
		||||
        case XP_HEB_BC: //Right-left-mark to the first free strong homerow finger on the left (middle)
 | 
			
		||||
            if (record->event.pressed) { // key down
 | 
			
		||||
                unicode_hex2output (HB_GIMEL, HB_RLM);// ג {RLM}
 | 
			
		||||
            }
 | 
			
		||||
            break;
 | 
			
		||||
 | 
			
		||||
        case XP_HEB_BD: // The logic is that כ is the same key as 4 on another layer, which connects
 | 
			
		||||
                        // with $, and other currencies in the same region (ģ). 
 | 
			
		||||
            if (record->event.pressed) { // key down
 | 
			
		||||
                unicode_hex2output (HB_KAF, HB_SHEKL);// כ₪
 | 
			
		||||
            }
 | 
			
		||||
            break;
 | 
			
		||||
 | 
			
		||||
        case XP_HEB_BE: //
 | 
			
		||||
            if (record->event.pressed) { // key down
 | 
			
		||||
                unicode_hex2output_single (HB_AYIN);// ע
 | 
			
		||||
            }
 | 
			
		||||
            break;
 | 
			
		||||
 | 
			
		||||
        case XP_HEB_BF: // 
 | 
			
		||||
            if (record->event.pressed) { // key down
 | 
			
		||||
                unicode_hex2output_single (HB_YOD);// י
 | 
			
		||||
            }
 | 
			
		||||
            break;
 | 
			
		||||
 | 
			
		||||
        case XP_HEB_BG: //
 | 
			
		||||
            if (record->event.pressed) { // key down
 | 
			
		||||
                unicode_hex2output_single (HB_GET);// ח
 | 
			
		||||
            }
 | 
			
		||||
            break;
 | 
			
		||||
 | 
			
		||||
        case XP_HEB_BH: //
 | 
			
		||||
            if (record->event.pressed) { // key down
 | 
			
		||||
                unicode_hex2output (HB_LAMED, HB_LRM);// ל {LRM}
 | 
			
		||||
            }
 | 
			
		||||
            break;
 | 
			
		||||
 | 
			
		||||
        case XP_HEB_BI: //
 | 
			
		||||
            if (record->event.pressed) { // key down
 | 
			
		||||
                unicode_hex2output_single (HB_KAFS);// ך
 | 
			
		||||
            }
 | 
			
		||||
            break;
 | 
			
		||||
 | 
			
		||||
        case XP_HEB_BJ: //
 | 
			
		||||
            if (record->event.pressed) { // key down
 | 
			
		||||
 | 
			
		||||
# if   defined(HEBREW_ISRAEL) || defined(HEBREW_QWERTY)
 | 
			
		||||
                if (shift_ison) send_string (":"); // : (the hebrew eqquivalent is apparently almost never used, and this saves space)
 | 
			
		||||
                else unicode_hex2output_single (HB_PES);// ף
 | 
			
		||||
# elif defined(HEBREW_DVORAK)
 | 
			
		||||
                unicode_hex2output_single (HB_PES);// ף
 | 
			
		||||
# endif 
 | 
			
		||||
 | 
			
		||||
            }
 | 
			
		||||
            break;
 | 
			
		||||
 | 
			
		||||
# if defined(HEBREW_ISRAEL)
 | 
			
		||||
        case XP_HEB_BK: // 
 | 
			
		||||
            if (record->event.pressed) { // key down
 | 
			
		||||
                if (shift_ison) unicode_hex2output_single (HB_GRSHM);// ״
 | 
			
		||||
                else send_string (","); // comma
 | 
			
		||||
            }
 | 
			
		||||
            break;
 | 
			
		||||
# endif
 | 
			
		||||
 | 
			
		||||
        case XP_HEB_MQF: // ־ Maqaf
 | 
			
		||||
            if (record->event.pressed) { // key down
 | 
			
		||||
                unicode_hex2output_single (HB_MAQAF);// ־ 
 | 
			
		||||
            }
 | 
			
		||||
            break;
 | 
			
		||||
 | 
			
		||||
   // ------------------------- row 2
 | 
			
		||||
        case XP_HEB_CA: //
 | 
			
		||||
            if (record->event.pressed) { // key down
 | 
			
		||||
// Hebrew harmonization + ':'
 | 
			
		||||
# if   defined(HEBREW_ISRAEL) || defined(HEBREW_QWERTY)
 | 
			
		||||
                unicode_hex2output_single (HB_ZAYIN);// ז
 | 
			
		||||
# elif defined(HEBREW_DVORAK)
 | 
			
		||||
                if (shift_ison) send_string (":"); //
 | 
			
		||||
                else unicode_hex2output_single (HB_ZAYIN);// ז
 | 
			
		||||
# endif
 | 
			
		||||
            }
 | 
			
		||||
            break;
 | 
			
		||||
 | 
			
		||||
        case XP_HEB_CB: //
 | 
			
		||||
            if (record->event.pressed) { // key down
 | 
			
		||||
                unicode_hex2output_single (HB_SAMEG);// ס
 | 
			
		||||
            }
 | 
			
		||||
            break;
 | 
			
		||||
 | 
			
		||||
        case XP_HEB_CC: //
 | 
			
		||||
            if (record->event.pressed) { // key down
 | 
			
		||||
                unicode_hex2output_single (HB_BET);// ב
 | 
			
		||||
            }
 | 
			
		||||
            break;
 | 
			
		||||
 | 
			
		||||
        case XP_HEB_CD: //
 | 
			
		||||
            if (record->event.pressed) { // key down
 | 
			
		||||
                unicode_hex2output_single (HB_HE);// ה
 | 
			
		||||
            }
 | 
			
		||||
            break;
 | 
			
		||||
 | 
			
		||||
        case XP_HEB_CE: //
 | 
			
		||||
            if (record->event.pressed) { // key down
 | 
			
		||||
                unicode_hex2output_single (HB_NUN);// נ
 | 
			
		||||
            }
 | 
			
		||||
            break;
 | 
			
		||||
 | 
			
		||||
        case XP_HEB_CF: //
 | 
			
		||||
            if (record->event.pressed) { // key down
 | 
			
		||||
                unicode_hex2output_single (HB_MEM);// מ
 | 
			
		||||
            }
 | 
			
		||||
            break;
 | 
			
		||||
 | 
			
		||||
        case XP_HEB_CG: //
 | 
			
		||||
            if (record->event.pressed) { // key down
 | 
			
		||||
                unicode_hex2output_single (HB_TSADI);// צ 
 | 
			
		||||
            }
 | 
			
		||||
            break;
 | 
			
		||||
 | 
			
		||||
#     if defined(HEBREW_ISRAEL) || defined(HEBREW_DVORAK)
 | 
			
		||||
        case XP_HEB_CH: //
 | 
			
		||||
            if (record->event.pressed) { // key down
 | 
			
		||||
 | 
			
		||||
#         if defined(HEBREW_ISRAEL)
 | 
			
		||||
                if (shift_ison) send_string ("<"); // 
 | 
			
		||||
                else unicode_hex2output_single (HB_TAV);// ת
 | 
			
		||||
#         else // HEBREW_DVORAK
 | 
			
		||||
                unicode_hex2output_single (HB_TAV);// ת
 | 
			
		||||
#         endif 
 | 
			
		||||
 | 
			
		||||
            }
 | 
			
		||||
            break;
 | 
			
		||||
 | 
			
		||||
        case XP_HEB_CI: //
 | 
			
		||||
            if (record->event.pressed) { // key down
 | 
			
		||||
 | 
			
		||||
#         if defined(HEBREW_ISRAEL)
 | 
			
		||||
                if (shift_ison) send_string (">"); // 
 | 
			
		||||
                else unicode_hex2output_single (HB_TSDIS);// ץ
 | 
			
		||||
#         else // HEBREW_DVORAK
 | 
			
		||||
                unicode_hex2output_single (HB_TSDIS);// ץ
 | 
			
		||||
#         endif 
 | 
			
		||||
 | 
			
		||||
            }
 | 
			
		||||
            break;
 | 
			
		||||
 | 
			
		||||
        case XP_HEB_CJ: // anomaly
 | 
			
		||||
            if (record->event.pressed) { // key down
 | 
			
		||||
 | 
			
		||||
#         if defined(HEBREW_ISRAEL)
 | 
			
		||||
                if (shift_ison) send_string ("?"); // 
 | 
			
		||||
                else send_string ("."); // 
 | 
			
		||||
#         else // HEBREW_DVORAK
 | 
			
		||||
                unicode_hex2output_single (HB_QOF);// ק
 | 
			
		||||
#         endif 
 | 
			
		||||
 | 
			
		||||
            }
 | 
			
		||||
            break;
 | 
			
		||||
#     endif // HEBREW_*
 | 
			
		||||
 | 
			
		||||
    // HB_D_VAV,
 | 
			
		||||
    // HB_VAVYD,
 | 
			
		||||
    // HB_D_YOD,
 | 
			
		||||
# endif // Hebrew Base layer
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    return true;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -30,6 +30,7 @@ static uint16_t key_timer; // Used in _DDL to differentiate layer switching in h
 | 
			
		|||
 | 
			
		||||
short duo_press_nsy_dra = 0; // This remembers how many of the duo-press keys are being pressed: _NSY / _DRA layers
 | 
			
		||||
short duo_press_acc_bon = 0; // This remembers how many of the duo-press keys are being pressed: _ACC / _BON layers
 | 
			
		||||
layer_state_t state_recall; // Also used when leds on/off is pressed
 | 
			
		||||
 | 
			
		||||
void deactivate_all_but (int layer);
 | 
			
		||||
void activate_this_layer (int layer);
 | 
			
		||||
| 
						 | 
				
			
			@ -40,5 +41,6 @@ void speed_led (int speed);
 | 
			
		|||
void indicate_fun_stay (void);
 | 
			
		||||
int write_number (long int input, short divide10); 
 | 
			
		||||
void isolate_rgblight_set (void);
 | 
			
		||||
void set_led_colors_ (layer_state_t state);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -18,6 +18,8 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
			
		|||
 *
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#pragma once
 | 
			
		||||
 | 
			
		||||
/*        An amount of Unicode #defines
 | 
			
		||||
 *        - western european accented characters
 | 
			
		||||
 *        - various punctuation symbols, different number formats, math symbols, other symbols. 
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -18,6 +18,7 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
			
		|||
 *
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#pragma once
 | 
			
		||||
 | 
			
		||||
// ------------------------------------- ⬇ --------------------------------------
 | 
			
		||||
//                                 Configuration:
 | 
			
		||||
| 
						 | 
				
			
			@ -47,6 +48,7 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
			
		|||
                    • Colemak
 | 
			
		||||
                    • Workman
 | 
			
		||||
                    • Numpad
 | 
			
		||||
                    • Hebrew
 | 
			
		||||
 | 
			
		||||
                            -2- ➡ Eviscerations ( ① / ② ) ⬅
 | 
			
		||||
                    • Single layout
 | 
			
		||||
| 
						 | 
				
			
			@ -146,6 +148,7 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
			
		|||
        //  _Activate_ one of these two, _remove_ the other.
 | 
			
		||||
//#define BASE_QWERTY_BASEARROW__DEF_BASE // _Activate_ if you want Qwerty with Base arrows on the ‛Default’ spot
 | 
			
		||||
//#define BASE_QWERTY_BASEARROW__ALT_BASE // _Activate_ if you want Qwerty with Base arrows on the ‛Alternate’ spot
 | 
			
		||||
        // ➡ ➡ ➡ This Base layer has configuration options at the top of its file. See ./ base_qwerty_basearrow.h
 | 
			
		||||
        //
 | 
			
		||||
        //          • Dvorak
 | 
			
		||||
        //                  (a regular Dvorak layout)
 | 
			
		||||
| 
						 | 
				
			
			@ -174,7 +177,14 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
			
		|||
        //                   (a numerical keypad, one for left hand and one for right hand)
 | 
			
		||||
        //  _Activate_ to get Numpad on Alternate. There is no option for Numpad on ‛Default’ base.
 | 
			
		||||
  #define BASE_NUMPAD__ALT_BASE // _Activate_ if you want Numpad on the ‛Alternate’ spot
 | 
			
		||||
        // ➡ ➡ ➡ This Base layer has configuration options at the top of its file. See ./base_numpad.c
 | 
			
		||||
        // ➡ ➡ ➡ This Base layer has configuration options at the top of its file. See ./base_numpad.h
 | 
			
		||||
        //
 | 
			
		||||
        //          • Hebrew
 | 
			
		||||
        //                  (a simple Hebrew layout)
 | 
			
		||||
        // _Activate_ one of these two, _remove_ the other.
 | 
			
		||||
//#define BASE_HEBREW__DEF_BASE // _Activate_ if you want Hebrew on the ‛Default’ spot
 | 
			
		||||
//#define BASE_HEBREW__ALT_BASE // _Activate_ if you want Hebrew on the ‛Alternate’ spot
 | 
			
		||||
        // ➡ ➡ ➡ This Base layer has configuration options at the top of its file. See ./base_hebrew.h
 | 
			
		||||
        //
 | 
			
		||||
        /*                  -2- ➡ Eviscerations ( ① / ② ) ⬅
 | 
			
		||||
         */
 | 
			
		||||
| 
						 | 
				
			
			@ -517,12 +527,12 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
			
		|||
                      // Thinned out 2nd row: LSht  ━     ─     °    •    …    ☐ ☑   ☑     ¿¡  ┄    ┅      RSht
 | 
			
		||||
                      //
 | 
			
		||||
  #define FULL_DRA_4THROW // _Activate_ to have symbols on all unshifted + shifted positions on _DRA, 4th row.
 | 
			
		||||
                      // Affected 4th row: „ ≤ ≥ ∅ ¢ ƒ ❦ 🙂 🙁 👍 👎 ⁽ ₍ ⁾ ₎
 | 
			
		||||
                      // Affected 4th row:          ¢ ƒ               ⁽ ₍ ⁾ ₎
 | 
			
		||||
                      // Full 4th row:        BASE  “„    ”≤    £≥   ∅ ¢  ±ƒ   ❦ ♥   🙂🙁  👍👎 ⁽₍   ⁾₎    Bkspc
 | 
			
		||||
                      // Thinned out 4th row: BASE  “     ”     £         ±    ♥                           Bkspc
 | 
			
		||||
                      // Thinned out 4th row: BASE  “„    ”≤    £≥   ∅    ±    ❦ ♥   🙂🙁  👍👎                           Bkspc
 | 
			
		||||
                      //
 | 
			
		||||
  #define FULL_BON_4THROW // _Activate_ to have symbols on all unshifted + shifted positions on _BON, 4th row.
 | 
			
		||||
                        // Affected 4th row: 🛠 ¤ ∑ ‱ ٭ 😊 ⍨  ⃰ ⁻ ⁺ 🄯 ©
 | 
			
		||||
                        // Affected 4th row: 🛠 ¤ ∑ ‱ ٭ 😊 ⍨  ⃰ ⁻ ⁺ 🄯 ©  ⃰ √ ⁻⁺
 | 
			
		||||
                        // Full 4th row:        BASE  ‛🛠   ’⬆    ¤ 🄯   ∑ ©  ‰‱   ★٭   😊⍨    × ⃰   √    ⁻⁺    Bkspc
 | 
			
		||||
                        // Thinned out 4th row: BASE  ‛     ’⬆               ‰    ★           ×               Bkspc
 | 
			
		||||
                        //
 | 
			
		||||
| 
						 | 
				
			
			@ -559,7 +569,11 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
			
		|||
# endif
 | 
			
		||||
//                         * Qwerty Base Arrow *
 | 
			
		||||
# if defined(BASE_QWERTY_BASEARROW__DEF_BASE) || defined(BASE_QWERTY_BASEARROW__ALT_BASE)
 | 
			
		||||
#     include "./base_qwerty_basearrow.h" // Your Keymap header/configuration file.
 | 
			
		||||
#     include "./base_qwerty_basearrow.h" // qwerty base arrow, header
 | 
			
		||||
# endif
 | 
			
		||||
//                         * Hebrew *
 | 
			
		||||
# if defined(BASE_HEBREW__DEF_BASE) || defined(BASE_HEBREW__ALT_BASE)
 | 
			
		||||
#     include "./base_hebrew.h" // Hebrew header
 | 
			
		||||
# endif
 | 
			
		||||
 | 
			
		||||
// // ⬇ insert your ./base_YOUR_KEYMAP.h #include here:
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue