aboutsummaryrefslogtreecommitdiff
path: root/keyboards/thevankeyboards
diff options
context:
space:
mode:
authorJos Boersema <56587694+josjoha@users.noreply.github.com>2021-09-16 07:27:44 +0200
committerGitHub <noreply@github.com>2021-09-15 22:27:44 -0700
commitd140e41c93dcf0a429392310858ac905447324ac (patch)
treede643dc0f31c0e450cf7ba0aebf665ca50877090 /keyboards/thevankeyboards
parentb5cc2bdc34d9091e7b31fcb9676e0d37b0282aad (diff)
downloadqmk_firmware-d140e41c93dcf0a429392310858ac905447324ac.tar.gz
qmk_firmware-d140e41c93dcf0a429392310858ac905447324ac.zip
Adds optional hebrew layout (Unicode) (#14156)
Diffstat (limited to 'keyboards/thevankeyboards')
-rw-r--r--keyboards/thevankeyboards/minivan/keymaps/josjoha/base_hebrew.c291
-rw-r--r--keyboards/thevankeyboards/minivan/keymaps/josjoha/base_hebrew.h52
-rw-r--r--keyboards/thevankeyboards/minivan/keymaps/josjoha/base_hebrew.md198
-rw-r--r--keyboards/thevankeyboards/minivan/keymaps/josjoha/base_numpad.h2
-rw-r--r--keyboards/thevankeyboards/minivan/keymaps/josjoha/base_qwerty_basearrow.h2
-rw-r--r--keyboards/thevankeyboards/minivan/keymaps/josjoha/keymap.c13
-rw-r--r--keyboards/thevankeyboards/minivan/keymaps/josjoha/minifan_config_compact.h20
-rw-r--r--keyboards/thevankeyboards/minivan/keymaps/josjoha/readme.md21
-rw-r--r--keyboards/thevankeyboards/minivan/keymaps/josjoha/unicode_hebrew.h116
-rw-r--r--keyboards/thevankeyboards/minivan/keymaps/josjoha/unicode_macros.c546
-rw-r--r--keyboards/thevankeyboards/minivan/keymaps/josjoha/unicode_macros.h2
-rw-r--r--keyboards/thevankeyboards/minivan/keymaps/josjoha/unicode_weurope.h2
-rw-r--r--keyboards/thevankeyboards/minivan/keymaps/josjoha/user_config.h24
13 files changed, 1157 insertions, 132 deletions
diff --git a/keyboards/thevankeyboards/minivan/keymaps/josjoha/base_hebrew.c b/keyboards/thevankeyboards/minivan/keymaps/josjoha/base_hebrew.c
new file mode 100644
index 000000000..cac77aac6
--- /dev/null
+++ b/keyboards/thevankeyboards/minivan/keymaps/josjoha/base_hebrew.c
@@ -0,0 +1,291 @@
1/*
2 * License (GPL):
3
4This program is free software: you can redistribute it and/or modify
5it under the terms of the GNU General Public License as published by
6the Free Software Foundation, either version 2 of the License, or
7(at your option) any later version.
8
9This program is distributed in the hope that it will be useful,
10but WITHOUT ANY WARRANTY; without even the implied warranty of
11MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12GNU General Public License for more details.
13
14You should have received a copy of the GNU General Public License
15along with this program. If not, see <http://www.gnu.org/licenses/>.
16
17 * Author: © 2021 by Jos Boersema
18 *
19 */
20
21// --------------------------------------v---------------------------------------
22// Configuration:
23// --------------------------------------v---------------------------------------
24
25// See the user configuration file: ./base_hebrew.h
26
27// --------------------------------------^---------------------------------------
28// Below here no more comfortable configuration options.....
29// --------------------------------------^---------------------------------------
30
31 /* ⬇ */
32
33 /* Layer _..._BASE: default BASE layer (Hebrew)
34 *
35 * - Dual use keys create a delay in the key (tap/hold keys), therefore
36 * space is not dual use (most used key), neither is hyphen.
37 */
38
39// Process user configuration wrt ‛Default’ or ‛Alternative’ spot for this layout.
40# if defined(BASE_HEBREW__DEF_BASE)
41 [ _DEF_BASE ] = LAYOUT_redefined (
42# elif defined(BASE_HEBREW__ALT_BASE)
43 [ _ALT_BASE ] = LAYOUT_redefined (
44# endif
45
46/*
47 Layer _..._BASE (LeTteRs, standard Hebrew as in Israel)
48 ➡ This is a simple hebrew layout. Notice the letter ק is displaced from normal,
49 to retain compatibility with Dvorak-English for ,<.>. There are no niqqud
50 available, because it is far too many unique symbols in Unicode, and it is
51 rarely used.
52
53 HEBREW_ISRAEL
54 | Right hand
55 <pink2 <pinky<ring <middl<index<indx2| indx2>index>middl>ring> pinky>pinky2> // Keys by finger
56 -o- <|> ... //-o- BASE access
57 Esc /; ׳ ק ר א | ט ו ן ם פ Bksp
58 Tab+LCtl ש ד ג/RLM כ₪ ע | י ח ל/LRM ך ף: ,״ //Right-Left-Mark
59 LSht+_PAD ז ס ב ה נ | מ צ ת< ץ> .? RSht+_FUN //<>os side flip?
60 +_MOV⁵ | +_RAR⁶
61 ---------------------------------------------------------------------------------------
62 Left+LAlt Del;_ACC _..._NSY(_DRA) Enter+_MOV| Space _..._NSY(_DRA) LGUI Right;_RAR
63 hold hold₍₁,₂٭₎ hold | hold₍₁,₂٭₎ hold // switch type
64 hold₍₂₎ ^-┃-----------------------+--------^ ┃ // ₁₎ both = _DRA
65 ┗━━━_BON━━━╋┅───────────┄┄┄«or»┄┄┄─+─────────┅┛ // ₂₎ both = _BON
66 <1 ± <2 <3 <4 | 4> 3> 2> ± 1> // Keys by number
67 ^³ ^⁴ // Optional more keys
68 … …
69
70 HEBREW_QWERTY
71 | Right hand
72 <pink2 <pinky<ring <middl<index<indx2| indx2>index>middl>ring> pinky>pinky2> // Keys by finger
73 -o- <|> ... //-o- BASE access
74 Esc ת• ץ• ק ר א | ט ו ן ם׳ פ״ Bksp
75 Tab+LCtl ש ד ג/RLM כ₪ ע | י ח ל/LRM ך ף: '" //Right-Left-Mark
76 LSht+_PAD ז ס ב ה נ | מ צ ,< .> /? RSht+_FUN
77 +_MOV⁵ | +_RAR⁶
78 ---------------------------------------------------------------------------------------
79 Left+LAlt Del;_ACC _..._NSY(_DRA) Enter+_MOV| Space _..._NSY(_DRA) LGUI Right;_RAR
80 hold hold₍₁,₂٭₎ hold | hold₍₁,₂٭₎ hold // switch type
81 hold₍₂₎ ^-┃-----------------------+--------^ ┃ // ₁₎ both = _DRA
82 ┗━━━_BON━━━╋┅───────────┄┄┄«or»┄┄┄─+─────────┅┛ // ₂₎ both = _BON
83 <1 ± <2 <3 <4 | 4> 3> 2> ± 1> // Keys by number
84 ^³ ^⁴ // Optional more keys
85 … …
86
87 HEBREW_DVORAK
88 | Right hand
89 <pink2 <pinky<ring <middl<index<indx2| indx2>index>middl>ring> pinky>pinky2> // Keys by finger
90 -o- <|> ... //-o- BASE access
91 Esc '" ,< .> ר א | ט ו ן ם׳ פ״ Bksp
92 Tab+LCtl ש ד ג/RLM כ₪ ע | י ח ל/LRM ך ף ־ //Right-Left-Mark
93 LSht+_PAD ז: ס ב ה נ | מ צ ת ץ ק• RSht+_FUN
94 +_MOV⁵ | +_RAR⁶
95 ---------------------------------------------------------------------------------------
96 Left+LAlt Del;_ACC _..._NSY(_DRA) Enter+_MOV| Space _..._NSY(_DRA) LGUI Right;_RAR
97 hold hold₍₁,₂٭₎ hold | hold₍₁,₂٭₎ hold // switch type
98 hold₍₂₎ ^-┃-----------------------+--------^ ┃ // ₁₎ both = _DRA
99 ┗━━━_BON━━━╋┅───────────┄┄┄«or»┄┄┄─+─────────┅┛ // ₂₎ both = _BON
100 <1 ± <2 <3 <4 | 4> 3> 2> ± 1> // Keys by number
101 ^³ ^⁴ // Optional more keys
102 … …
103
104
105 ₁) Dual hold for _DRA, single hold for _..._NSY. Marked by: ^--…--^
106 ₂) Hold key “<2” with either٭ key “<3” or “3>” for _BON, single hold “<2” for _ACC. Marked: ┗━━…━━┛
107 ³) 'South paw' hardware configuration
108 ⁴) 'Arrow' hardware configuration
109 ³ ⁴) There are two more optional hardware keys, to make it easier to compile for
110 a 12x12x12x11 or 12x12x12x12 layouts.
111 ⁵) Left Shift when pressed with another key. Medium long: to toggle _PAD. Long: toggle _MOV.
112 ⁶) Right shift when pressed with another key. medium long: to toggle _FUN. Long: toggle _RAR.
113 ⁷) Letters marked with • are displaced from standard hebrew layout.
114*/
115//
116// <pink2 , <pinky , <ring , <middl , <indx , <ind|, indx> , inde> , midd> , ring> , pink> , pink2> ,
117// -*!- , , , , , <|,> , , , , , ,
118 KC_ESC
119
120# if defined(HEBREW_ISRAEL)
121 , XP_HEB_AA , XP_HEB_AB , XP_HEB_AC
122# elif defined(HEBREW_QWERTY)
123 , XP_HEB_AA , XP_HEB_AB , XP_HEB_AC
124# elif defined(HEBREW_DVORAK)
125 , KC_QUOT , KC_COMM , KC_DOT
126# endif // HEBREW_DVORAK/QWERTY
127 , XP_HEB_AD , XP_HEB_AE , XP_HEB_AF , XP_HEB_AG , XP_HEB_AH , XP_HEB_AI , XP_HEB_AJ , KC_BSPC ,
128 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
129// ^^^^^^^^^ Different in Qwerty (done in macros) with ':'
130
131# if defined(HEBREW_ISRAEL)
132 , XP_HEB_BK , // ,"
133# elif defined(HEBREW_QWERTY)
134 , KC_QUOT , // '"
135# elif defined(HEBREW_DVORAK)
136 , XP_HEB_MQF , // ־
137# endif // HEBREW_*
138
139 CHOLTAP_LSHFT , XP_HEB_CA , XP_HEB_CB , XP_HEB_CC , XP_HEB_CD , XP_HEB_CE , XP_HEB_CF , XP_HEB_CG
140
141# if defined(HEBREW_ISRAEL)
142 , XP_HEB_CH , XP_HEB_CI , XP_HEB_CJ
143# elif defined(HEBREW_QWERTY)
144 , KC_COMM , KC_DOT , KC_SLSH
145# elif defined(HEBREW_DVORAK)
146 , XP_HEB_CH , XP_HEB_CI , XP_HEB_CJ
147# endif // HEBREW_*
148 , CHOLTAP_RSHFT ,
149// -----------------------------------------------------------------------------------------------------------------
150 LALT_T ( KC_LEFT )
151
152# ifdef TRANSMINIVAN_LEFTSIDE
153 , MO ( _PAD )
154# endif
155
156# ifdef MORE_KEY__COMMAND
157 , MORE_key1_BASE
158# endif
159
160# ifdef SWITCH_HOLD_ACC_NSY
161 , DUO_HOLD , CHOLTAP_ACCE
162# else
163 , CHOLTAP_ACCE , DUO_HOLD
164# endif
165
166 , LEFTCENTER_THUMB
167
168# ifdef TRANSMINIVAN_MIDLEFT
169 , TRANS_MIDLEFT
170# endif
171
172 , RIGHTCENTER_THUMB , DUO_HOLD , KC__YGUI
173
174# ifdef TRANSMINIVAN_RIGHTSIDE
175 , MO ( _FUN )
176# endif
177
178# ifdef MORE_KEY__ARROW
179 , MORE_key2
180# endif
181
182 , CHOLTAP_LAYR
183// , , , <|,> , , ,
184// <1 ± ± , <2 , <3 , <4 |, 4> , 3> , 2> , ± ± 1>
185
186 ),
187
188 /* ⬆⬇ */
189
190 /* Layer _..._NSY: Numbers and symbols.
191 * Off hand Number input (-.Bksp ent (shft)tab).
192 */
193 // KC_TILD does not work there, because of a limitation with shifted keys (nov 2019).
194
195// Process user configuration wrt ‛Default’ or ‛Alternative’ spot for this layout.
196# if defined(BASE_HEBREW__DEF_BASE)
197 [ _DEF_NSY ] = LAYOUT_redefined (
198# elif defined(BASE_HEBREW__ALT_BASE)
199 [ _ALT_NSY ] = LAYOUT_redefined (
200# endif
201
202/*
203 Layer _..._NSY (Numbers and SYmbols)
204 ➡ The brace type symbols are *not* reversed as on standard hebrew boards (I find it confusing).
205
206 HEBREW_ISRAEL & HEBREW_QWERTY
207 <pink2 <pinky<ring <middl<index<indx2| indx2>index>middl>ring>pin>pink2>
208 -*- <|> //(toggle) Access on _FUN
209 BASE ! @ # $ % | ^ & * ( ) Del
210 Tab+LCtl 1! 2@ 3# 4$ 5% | 6^ 7& 8* 9( 0) `~+RCtl
211 -+LSht [{ ]} -_ \| =+ | + | ־ { } ~+RSht
212 ^ // Only difference with Qwerty
213 ---------------------------------------------------------------------------
214 Left+LAlt ___ ___ Ent | . ___ LGUI Right+RAlt
215 -*- <|> -*- //(hold) Access on _..._BASE
216 <1 ± <2 <3 <4 | 4> 3> 2> ± 1>
217 … …
218
219 HEBREW_DVORAK (Same as standard Dvorak)
220 <pink2 <pinky<ring <middl<index<indx2| indx2>index>middl>ring>pin>pink2>
221 -*- <|> //(toggle) Access on _FUN
222 BASE ! @ # $ % | ^ & * ( ) Del
223 Tab+LCtl 1! 2@ 3# 4$ 5% | 6^ 7& 8* 9( 0) `~+RCtl
224 -+LSht [{ ]} /? \| =+ | + | ? { } ~+RSht
225 ---------------------------------------------------------------------------
226 Left+LAlt ___ ___ Ent | . ___ LGUI Right+RAlt
227 -*- <|> -*- //(hold) Access on _..._BASE
228 <1 ± <2 <3 <4 | 4> 3> 2> ± 1>
229 … …
230*/
231//
232//
233// <pink2 , <pinky , <ring , <middl , <index , <indx2 |, indx2> , index> , middl> , ring> , pinky> , pink2> ,
234// , -*- , , , , <|,> , , , , , ,
235 CTO_BASE , KC_EXLM , KC_AT , KC_HASH , KC_DLR , KC_PERC , KC_CIRC , KC_AMPR , KC_ASTR , KC_LPRN , KC_RPRN , KC_DEL ,
236 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 ) ,
237 LSFT_DASH , KC_LBRC , KC_RBRC
238
239# if defined(HEBREW_ISRAEL)
240 , KC_MINUS // allows -_, with Maqaf on mirror place right
241# elif defined(HEBREW_QWERTY)
242 , KC_MINUS // same as HEBREW_ISRAEL
243# elif defined(HEBREW_DVORAK)
244 , KC_SLSH
245# endif // HEBREW_*
246
247 , KC_BSLS , KC_EQL , KC_PLUS , KC_PIPE
248
249
250# if defined(HEBREW_ISRAEL)
251 , XP_HEB_MQF // '־' Maqaf
252# elif defined(HEBREW_QWERTY)
253 , XP_HEB_MQF //
254# elif defined(HEBREW_DVORAK)
255 , KC_QUES
256# endif // HEBREW_*
257 , KC_LCBR , KC_RCBR , RSFT_TILDE ,
258// ---------------------------------------------------------------------------------------------------------------------------------------------
259 LALT_T ( KC_LEFT )
260
261# ifdef TRANSMINIVAN_LEFTSIDE
262 , TRANS_LEFT
263# endif
264
265# ifdef MORE_KEY__COMMAND
266 , MORE_key1
267# endif
268
269 , _______ , _______ , KC_ENT
270
271# ifdef TRANSMINIVAN_MIDLEFT
272 , TRANS_MIDLEFT
273# endif
274 , KC_DOT , DUO_HOLD , KC__YGUI
275
276# ifdef TRANSMINIVAN_RIGHTSIDE
277 , TRANS_RIGHT
278# endif
279
280# ifdef MORE_KEY__ARROW
281 , MORE_key2
282# endif
283
284 , RALT_T ( KC_RIGHT )
285// , , -*- , <|,> , -*- , ,
286// <1 ± ± , <2 , <3 , <4 |, 4> , 3> , 2> , ± ± 1>
287
288 ),
289
290
291 /* ⬆⬇ */
diff --git a/keyboards/thevankeyboards/minivan/keymaps/josjoha/base_hebrew.h b/keyboards/thevankeyboards/minivan/keymaps/josjoha/base_hebrew.h
new file mode 100644
index 000000000..f5604b8f1
--- /dev/null
+++ b/keyboards/thevankeyboards/minivan/keymaps/josjoha/base_hebrew.h
@@ -0,0 +1,52 @@
1/*
2 * License (GPL):
3
4This program is free software: you can redistribute it and/or modify
5it under the terms of the GNU General Public License as published by
6the Free Software Foundation, either version 2 of the License, or
7(at your option) any later version.
8
9This program is distributed in the hope that it will be useful,
10but WITHOUT ANY WARRANTY; without even the implied warranty of
11MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12GNU General Public License for more details.
13
14You should have received a copy of the GNU General Public License
15along with this program. If not, see <http://www.gnu.org/licenses/>.
16
17 * Author: © 2021 by Jos Boersema
18 *
19 */
20
21#pragma once
22
23// --------------------------------------v---------------------------------------
24// Configuration:
25// --------------------------------------v---------------------------------------
26
27 /* Harmonize layout with a Latin layout
28 *
29 * See base_hebrew.md for design objectives.
30 */
31 #define HEBREW_ISRAEL // Close to standard Israeli hebrew.
32//#define HEBREW_QWERTY // Harmonize punctuation symbols with Qwerty.
33//#define HEBREW_DVORAK // Harmonize punctuation symbols with Dvorak.
34
35// --------------------------------------^---------------------------------------
36// Below here no more comfortable configuration options.....
37// --------------------------------------^---------------------------------------
38
39 /* Redefine a layer in this file
40 *
41 * _Activate_ one or more of the below BASESFILE_LAYER_..., to redefine the layer
42 * in this file. The version in ./keymap.c will be ignored. Keep in mind to use
43 * transparent keys (_______) for “hold” layer switch keys on the BASE map, for
44 * your new layer.
45 */
46// #define BASESFILE_LAYER_ACC
47// #define BASESFILE_LAYER_DRA
48// #define BASESFILE_LAYER_BON
49// #define BASESFILE_LAYER_PAD
50// #define BASESFILE_LAYER_MOV
51// #define BASESFILE_LAYER_RAR
52// #define BASESFILE_LAYER_FUN
diff --git a/keyboards/thevankeyboards/minivan/keymaps/josjoha/base_hebrew.md b/keyboards/thevankeyboards/minivan/keymaps/josjoha/base_hebrew.md
new file mode 100644
index 000000000..0e7adc40c
--- /dev/null
+++ b/keyboards/thevankeyboards/minivan/keymaps/josjoha/base_hebrew.md
@@ -0,0 +1,198 @@
1# Minifan layout
2
3Compiled for: Hebrew
4====================
5
6This file details the compile version `#define BASE_HEBREW__DEF_BASE,
7BASE_HEBREW__ALT_BASE`. This is a basic Hebrew layout, without niqqud.
8
9Only the most common symbols are implemented. Hebrew symbols are all
10done in Unicode.
11
12See also ![./readme.md](./readme.md) chapter 7 _Language support_.
13
14Parenthesis/braces/etc direction seems to be dealt with at the computer
15side, depending on the surrounding symbols. The keyboard is printing
16these symbols unchanged from what they are in standard Latin layouts,
17and are represented that way in the manual.
18
19Options
20=======
21
22You can compile the hebrew to be like a common Israeli layout, or to harmonize the
23punctuation symbols with either Dvorak or Qwerty. See the configuration file
24![./base_hebrew.h](./base_hebrew.h)
25
26☞ Israeli Hebrew
27
28As close to a simple standard hebrew layout as possible.
29A little larger memory cost than the other options. No `'"` ASCII quotes symbols,
30but proper ׳ and ״ (in Unicode).
31
32☞ Qwerty with Hebrew
33
34The letters ת, ץ get displaced from the standard hebrew layout.
35Numerical layer is the same as standard Qwerty, except the symbol
36`_` symbol becomes `־` (Maqaf). No `;` symbol.
37
38☞ Qwerty derivatives with Hebrew
39
40It is adviced to use Qwerty with Hebrew in this case, and adjust by hand
41coding if needed. “Workman” should harmonize the same as Qwerty.
42Colemak displaces the “;:” key relative to Qwerty, therefore you may
43like to change the “:” shifted symbol (by hand). The obscurity of this
44use case gets extreme, there will not be options for this.
45
46☞ Dvorak with Hebrew
47
48The letter ק gets displaced from the standard hebrew layout.
49Numerical layer is the same as standard Dvorak. No `;` symbol.
50
51
52Flash memory cost
53-----------------
54
55This layout adds several dozen new Unicode symbols, which takes up a certain
56amount of additional space in keyboard memory. If you end up going over
57the limit, you may need to change your compilation software setup, and/or
58you can look into the “Eviscerations” chapters in ![./user_config.h](./user_config.h)
59
60Hebrew keymaps
61--------------
62
63──────────Hebrew Israel────────
64
65![Minivan layout Image BASEdef-alt](http://socialism.nl/misc/minivan/minivan_base_layer_hebrew-israel_ve.jpg)
66Layer: `..._BASE`
67
68![Minivan layout Image NSYdef-alt](http://socialism.nl/misc/minivan/minivan_nsy_layer_hebrew-israel_vd.jpg)
69Layer: `..._NSY`
70
71──────────in common────────────
72
73(…)
74
75──────────Hebrew Qwerty────────
76
77![Minivan layout Image BASEdef-alt](http://socialism.nl/misc/minivan/minivan_base_layer_hebrew-qwerty_ve.jpg)
78Layer: `..._BASE`
79
80![Minivan layout Image NSYdef-alt](http://socialism.nl/misc/minivan/minivan_nsy_layer_hebrew-israel_vd.jpg)
81Layer: `..._NSY`
82
83──────────in common────────────
84
85(…)
86
87──────────Hebrew Dvorak────────
88
89![Minivan layout Image BASEdef-alt](http://socialism.nl/misc/minivan/minivan_base_layer_hebrew-dvorak_ve.jpg)
90Layer: `..._BASE`
91
92![Minivan layout Image NSYdef-alt](http://socialism.nl/misc/minivan/minivan_nsy_layer_dvorak_vc.jpg)
93Layer: `..._NSY` (Same as Dvorak.)
94
95──────────in common────────────
96
97(…)
98
99For more about the other layers, see ➡ ![readme.md](./readme.md) ⬅
100
101![Minivan illustration Overview layers by key, Hebrew](http://socialism.nl/misc/minivan/minivan-all-layers-clear-visualization-by-key_hebrew_2000_vk.jpg)
102
103Layers (text)
104=============
105
106(The “x” padding was necessary to undo the direction of these characters being reversed.
107This layout might still not be represenetd correctly on your system. See the graphics instead.)
108
109 HEBREW_ISRAEL
110 | Right hand
111 <pink2 <pinky<ring <middl<index<indx2| indx2>index>middl>ring> pinky>pinky2> // Keys by finger
112 -o- <|> ... //-o- BASE access
113 Escxxxxxxxx/;xxxx׳xxxxxקxxxxxרxxxxxאxxxxx|xטxxxxxוxxxxxןxxxxxםxxxxxפxxxxxxxxxxBksp
114 Tab+LCtlxxxשxxxxxדxxxxxג/RLMxכx₪xxxעxxxxx|xיxxxxxחxxxxxל/LRMxךxxxxxף:xxxxxxxxxxx,״ //Right-Left-Mark
115 LSht+_PADxxזxxxxxסxxxxxבxxxxxהxxxxxנxxxxx|xמxxxxxצxxxxxת<xxxxץ>xxxx.?xxxxRSht+_FUN //<>os side flip?
116 +_MOV⁵ | +_RAR⁶
117 ---------------------------------------------------------------------------------------
118
119 HEBREW_QWERTY
120 | Right hand
121 <pink2 <pinky<ring <middl<index<indx2| indx2>index>middl>ring> pinky>pinky2> // Keys by finger
122 -o- <|> ... //-o- BASE access
123 Escxxxxxxxxת•xxxxץ•xxxxקxxxxxרxxxxxאxxxxx|xטxxxxxוxxxxxןxxxxxםx׳xxxפx״xxxxxxxxBksp
124 Tab+LCtlxxxשxxxxxדxxxxxג/RLMxכx₪xxxעxxxxx|xיxxxxxחxxxxxל/LRMxךxxxxxף:xxxxxxxxxxx'" //Right-Left-Mark
125 LSht+_PADxxזxxxxxסxxxxxבxxxxxהxxxxxנxxxxx|xמxxxxxצxxxxx,<xxxx.>xxxx/?xxxxRSht+_FUN
126 +_MOV⁵ | +_RAR⁶
127 ---------------------------------------------------------------------------------------
128 (…)
129
130 HEBREW_DVORAK
131 Layer _..._BASE (LeTteRs, standard Hebrew)
132 | Right hand
133 <pink2 <pinky<ring <middl<index<indx2| indx2>index>middl>ring> pinky>pinky2> // Keys by finger
134 -o- <|> ... //-o- BASE access
135 Escxxxxxxxx'"xxxx,<xxxx.>xxxxרxxxxxאxxxxx|xטxxxxxוxxxxxןxxxxxםx׳xxxפx״xxxxxxxxBksp
136 Tab+LCtlxxxשxxxxxדxxxxxג/RLMxכx₪xxxעxxxxx|xיxxxxxחxxxxxל/LRMxךxxxxxףxxxxxxxxxxxxx־ //Right/Left-Mark
137 LSht+_PADxxז:xxxxסxxxxxבxxxxxהxxxxxנxxxxx|xמxxxxxצxxxxxתxxxxxץxxxxxק•xxxxRSht+_FUN
138 +_MOV⁵ | +_RAR⁶
139 ---------------------------------------------------------------------------------------
140 Left+LAlt Del;_ACC _DEF_NSY(_DRA) Enter+_MOV| Space _DEF_NSY(_DRA) RGUI Right;_RAR
141 hold hold₍₁,₂٭₎ hold | hold₍₁,₂٭₎ hold // switch type
142 hold₍₂₎ ^-┃-----------------------+--------^ ┃ // ₁₎ both = _DRA
143 ┗━━━_BON━━━╋┅───────────┄┄┄«or»┄┄┄─+─────────┅┛ // ₂₎ both = _BON
144 <1 ± <2 <3 <4 | 4> 3> 2> ± 1> // Keys by number
145 ^³ ^⁴ // Optional more keys
146 (LGUI) (_MOV)
147
148
149 ₁) Dual hold for _DRA, single hold for _DEF_NSY. Marked by: ^--…--^
150 ₂) Hold key “<2” with either٭ key “<3” or “3>” for _BON, single hold “<2” for _ACC. Marked: ┗━━…━━┛
151 ₃) 'South paw' hardware configuration. Configurable, default shown.
152 ₄) 'Arrow' hardware configuration Configurable, default shown.
153 ₃ ₄) There are two more optional hardware keys, to make it easier to compile for
154 a 12x12x12x11 or 12x12x12x12 layouts.
155 ₅) Left Shift when pressed with another key. Medium long: to toggle _PAD. Long: toggle _MOV.
156 ₆) Right shift when pressed with another key. medium long: to toggle _FUN. Long: toggle _RAR.
157 ⁷) Letters marked with • are displaced from standard hebrew layout.
158
159Remarks: The left modifiers have a slight delay in combination with an outside pointer device (mouse, stylus).
160It seems this will be difficult to fix, because it is spread over two devices. To avoid the
161±0.2 second delay, activate a layer where the modifiers are direct (`_PAD`), using the layer toggle on left shift.
162
163The two keys with ';' (Del;`_ACC`, Right;`_RAR`) do not auto-repeat on double tap, like QMK normal layer-tap keys.
164There is an uncluttered _Delete_ on `_PAD`, an uncluttered _Right_ arrow on the `_MOV` layer.
165
166Holding both `_DEF_NSY` keys left and right of the "split space bar" (enter, space) results in layer `_DRA`.
167
168Holding either one of the just above mentioned `_DEF_NSY` layer keys (<3 and 3>), with the `_ACC` layer key
169(on <2) results in layer `_BON`.
170
171- - -
172
173 Layer _..._NSY (Numbers and SYmbols)
174
175 HEBREW_ISRAEL & HEBREW_QWERTY (_ becomes ־ Maqaf)
176 <pink2 <pinky<ring <middl<index<indx2| indx2>index>middl>ring>pin>pink2>
177 -*- <|> //(toggle) Access on _FUN
178 BASExxxxx!xxxxx@xxxxx#xxxxx$xxxxx%xxxxx|x^xxxxx&xxxxx*xxxxx(xxxx)xxxxxxxDel
179 Tab+LCtlx1!xxxx2@xxxx3#xxxx4$xxxx5%xxxx|x6^xxxx7&xxxx8*xxxx9(xxx0)xx`~+RCtl
180 -+LShtxxx[{xxxx]}xxxx-_xxxx\|xxxx=+xxxx|x+xxxxx|xxxxx־xxxxx{xxxxx}xxx~+RSht
181 ^ // Only difference with Qwerty
182 ---------------------------------------------------------------------------
183 Left+LAlt ___ ___ Ent | . ___ RGUI Right+RAlt
184 -*- <|> -*- //(hold) Access on _DEF_BASE
185 <1 ± <2 <3 <4 | 4> 3> 2> ± 1>
186 ^ ^
187 (LGUI) (_MOV)
188
189
190 HEBREW_DVORAK (Same as standard Dvorak)
191 <pink2 <pinky<ring <middl<index<indx2| indx2>index>middl>ring>pin>pink2>
192 -*- <|> //(toggle) Access on _FUN
193 BASE ! @ # $ % | ^ & * ( ) Del
194 Tab+LCtl 1! 2@ 3# 4$ 5% | 6^ 7& 8* 9( 0) `~+RCtl
195 -+LSht [{ ]} /? \| =+ | + | ? { } ~+RSht
196 ---------------------------------------------------------------------------
197 (…)
198- - -
diff --git a/keyboards/thevankeyboards/minivan/keymaps/josjoha/base_numpad.h b/keyboards/thevankeyboards/minivan/keymaps/josjoha/base_numpad.h
index 86baf95a5..d4440721f 100644
--- a/keyboards/thevankeyboards/minivan/keymaps/josjoha/base_numpad.h
+++ b/keyboards/thevankeyboards/minivan/keymaps/josjoha/base_numpad.h
@@ -18,6 +18,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
18 * 18 *
19 */ 19 */
20 20
21#pragma once
22
21// --------------------------------------v--------------------------------------- 23// --------------------------------------v---------------------------------------
22// Configuration: 24// Configuration:
23// --------------------------------------v--------------------------------------- 25// --------------------------------------v---------------------------------------
diff --git a/keyboards/thevankeyboards/minivan/keymaps/josjoha/base_qwerty_basearrow.h b/keyboards/thevankeyboards/minivan/keymaps/josjoha/base_qwerty_basearrow.h
index 74aa563b4..386a6e593 100644
--- a/keyboards/thevankeyboards/minivan/keymaps/josjoha/base_qwerty_basearrow.h
+++ b/keyboards/thevankeyboards/minivan/keymaps/josjoha/base_qwerty_basearrow.h
@@ -18,6 +18,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
18 * 18 *
19 */ 19 */
20 20
21#pragma once
22
21// --------------------------------------v--------------------------------------- 23// --------------------------------------v---------------------------------------
22// Configuration: 24// Configuration:
23// --------------------------------------v--------------------------------------- 25// --------------------------------------v---------------------------------------
diff --git a/keyboards/thevankeyboards/minivan/keymaps/josjoha/keymap.c b/keyboards/thevankeyboards/minivan/keymaps/josjoha/keymap.c
index 09a9b7d93..057561a47 100644
--- a/keyboards/thevankeyboards/minivan/keymaps/josjoha/keymap.c
+++ b/keyboards/thevankeyboards/minivan/keymaps/josjoha/keymap.c
@@ -146,7 +146,7 @@ bool led_middle_on = TRUE; // Set to off later, if startup setting is off.
146bool isolate_trigger = FALSE; // detects if _FUN layer move was pressed, and no other key (no normal use of Shift). 146bool isolate_trigger = FALSE; // detects if _FUN layer move was pressed, and no other key (no normal use of Shift).
147bool capslock; // keeps track of capslock state 147bool capslock; // keeps track of capslock state
148bool numlock; // keeps track of numlock state 148bool numlock; // keeps track of numlock state
149layer_state_t state_recall; // We are calling the function set_led_colors_ from this file as well. 149//layer_state_t state_recall; // We are calling the function set_led_colors_ from this file as well.
150// speed measuring 150// speed measuring
151bool speed_measure = SPEED_INIT_VALUE; // feature activated or not on startup 151bool speed_measure = SPEED_INIT_VALUE; // feature activated or not on startup
152uint32_t speed_counttime; // counts the time 152uint32_t speed_counttime; // counts the time
@@ -289,8 +289,8 @@ void speed_led (int speed) {
289 289
290// do this in one place to handle left/right leds being off here 290// do this in one place to handle left/right leds being off here
291void isolate_rgblight_set () { 291void isolate_rgblight_set () {
292# ifdef RGBLIGHT_ENABLE
293 292
293# ifdef RGBLIGHT_ENABLE
294 if (!leds_on) { // left/right leds are off 294 if (!leds_on) { // left/right leds are off
295 // overwrite previously colors 295 // overwrite previously colors
296 uint8_t led0r = 0; uint8_t led0g = 0; uint8_t led0b = 0; 296 uint8_t led0r = 0; uint8_t led0g = 0; uint8_t led0b = 0;
@@ -305,8 +305,8 @@ void isolate_rgblight_set () {
305 setrgb(led2r, led2g, led2b, (LED_TYPE *)&led[2]); // Led 2 305 setrgb(led2r, led2g, led2b, (LED_TYPE *)&led[2]); // Led 2
306 } 306 }
307 rgblight_set (); 307 rgblight_set ();
308
309# endif 308# endif
309
310} 310}
311 311
312 312
@@ -335,7 +335,7 @@ void indicate_fun_stay (void) {
335 335
336 336
337// _RAR layer leds 337// _RAR layer leds
338// It is a function because this is called when the Base layer OTHER_BASE key is pressed 338// It is a function because this is also called when the Base layer OTHER_BASE key is pressed
339void indicate_base (void) { 339void indicate_base (void) {
340# ifdef RGBLIGHT_ENABLE 340# ifdef RGBLIGHT_ENABLE
341 341
@@ -614,6 +614,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
614# include "./base_numpad.c" // Numbers pad 614# include "./base_numpad.c" // Numbers pad
615# endif 615# endif
616 616
617// * Hebrew *
618# if defined(BASE_HEBREW__DEF_BASE) || defined(BASE_HEBREW__ALT_BASE)
619# include "./base_hebrew.c" // Hebrew
620# endif
621
617// // ⬇ insert your ./base_YOUR_KEYMAP.c #include here: 622// // ⬇ insert your ./base_YOUR_KEYMAP.c #include here:
618 623
619 624
diff --git a/keyboards/thevankeyboards/minivan/keymaps/josjoha/minifan_config_compact.h b/keyboards/thevankeyboards/minivan/keymaps/josjoha/minifan_config_compact.h
index 89d426b14..932acf2a8 100644
--- a/keyboards/thevankeyboards/minivan/keymaps/josjoha/minifan_config_compact.h
+++ b/keyboards/thevankeyboards/minivan/keymaps/josjoha/minifan_config_compact.h
@@ -14,25 +14,29 @@ GNU General Public License for more details.
14You should have received a copy of the GNU General Public License 14You should have received a copy of the GNU General Public License
15along with this program. If not, see <http://www.gnu.org/licenses/>. 15along with this program. If not, see <http://www.gnu.org/licenses/>.
16 16
17 * © 2020,2021 by Jos Boersema 17* © 2020,2021 by Jos Boersema
18 */ 18 */
19 19
20#pragma once
21
20/* 22/*
21 * If MINIFAN_CONFIG_COMPACT in ./user_config.h ⬇ 23 * If MINIFAN_CONFIG_COMPACT in ./user_config.h ⬇
22 */ 24 */
23 25
24//#define BASE_QWERTY__DEF_BASE 26//#define BASE_QWERTY__DEF_BASE
25//#define BASE_QWERTY__ALT_BASE 27//#define BASE_QWERTY__ALT_BASE
26//#define BASE_QWERTY_BASEARROW__DEF_BASE 28//#define BASE_QWERTY_BASEARROW__DEF_BASE // ➡ base_qwerty_basearrow.h
27//#define BASE_QWERTY_BASEARROW__ALT_BASE 29//#define BASE_QWERTY_BASEARROW__ALT_BASE // ➡ base_qwerty_basearrow.h
28 #define BASE_DVORAK__DEF_BASE 30 #define BASE_DVORAK__DEF_BASE
29//#define BASE_DVORAK__ALT_BASE 31//#define BASE_DVORAK__ALT_BASE
30 #define BASE_DVORAK_DESCRAMBLE__ALT_BASE 32//#define BASE_DVORAK_DESCRAMBLE__ALT_BASE
31//#define BASE_COLEMAK__DEF_BASE 33//#define BASE_COLEMAK__DEF_BASE
32//#define BASE_COLEMAK__ALT_BASE 34//#define BASE_COLEMAK__ALT_BASE
33//#define BASE_WORKMAN__DEF_BASE 35//#define BASE_WORKMAN__DEF_BASE
34//#define BASE_WORKMAN__ALT_BASE 36//#define BASE_WORKMAN__ALT_BASE
35//#define BASE_NUMPAD__ALT_BASE 37//#define BASE_NUMPAD__ALT_BASE // ➡ base_numpad.h
38//#define BASE_HEBREW__DEF_BASE // ➡ base_hebrew.h
39 #define BASE_HEBREW__ALT_BASE // ➡ base_hebrew.h
36 40
37//#define MINIFAN_SINGLE_LAYOUT 41//#define MINIFAN_SINGLE_LAYOUT
38 42
@@ -66,7 +70,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
66 #define ARROWS_TRIANGLE 70 #define ARROWS_TRIANGLE
67//#define VI_SWITCHERYDOO 71//#define VI_SWITCHERYDOO
68 72
69//#define NUMPAD_COMMON_SQUARE 73 #define NUMPAD_COMMON_SQUARE
70 74
71 #define SPEED_COUNTDOWN 25 75 #define SPEED_COUNTDOWN 25
72 #define SPEED_HUE_STEP 8 76 #define SPEED_HUE_STEP 8
@@ -100,5 +104,5 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
100 #define FULL_DRA_4THROW 104 #define FULL_DRA_4THROW
101 #define FULL_BON_4THROW 105 #define FULL_BON_4THROW
102 106
103 #define LEDS_OFF_BASE_DEF 107//#define LEDS_OFF_BASE_DEF
104 #define LEDS_OFF_BASE_ALT 108//#define LEDS_OFF_BASE_ALT
diff --git a/keyboards/thevankeyboards/minivan/keymaps/josjoha/readme.md b/keyboards/thevankeyboards/minivan/keymaps/josjoha/readme.md
index 1d2ad90fe..a535a6f1f 100644
--- a/keyboards/thevankeyboards/minivan/keymaps/josjoha/readme.md
+++ b/keyboards/thevankeyboards/minivan/keymaps/josjoha/readme.md
@@ -3,7 +3,7 @@ A 40% keyboard made first by TheVan Keyboards
3_https://thevankeyboards.com_ now taken over by TKC 3_https://thevankeyboards.com_ now taken over by TKC
4_https://thekey.company_ 4_https://thekey.company_
5 5
6![Minivan layout all](http://socialism.nl/misc/minivan/minivan-all-layers-visualization_vc.jpg) 6![Minivan layout all](http://socialism.nl/misc/minivan/minivan-all-layers-visualization_vd.jpg)
7 7
8Table of Contents 8Table of Contents
9================= 9=================
@@ -22,6 +22,8 @@ Table of Contents
22 3.1.6 Workman 22 3.1.6 Workman
23 3.2 Special layouts 23 3.2 Special layouts
24 3.2.1 Numbers pad 24 3.2.1 Numbers pad
25 3.3 Non-Latin languages
26 3.3.1 Hebrew
25 4 The common system 27 4 The common system
26 4.1 Layer access 28 4.1 Layer access
27 4.2 Layout in graphics 29 4.2 Layout in graphics
@@ -108,7 +110,7 @@ the western European group of languages, native from the keyboard.
108This keymap might not function as expected if you want to use a 110This keymap might not function as expected if you want to use a
109different keyboard language setting in your operating system. 111different keyboard language setting in your operating system.
110 112
111See also chapter 6 _Language support_. 113See also chapter 7 _Language support_.
112 114
1132 'make' example 1152 'make' example
114================ 116================
@@ -195,6 +197,17 @@ with a normal layout on ‛Default’. How this works is explained below.
195For the readme about the Numpad version, see ➡ ![base_numpad.md](./base_numpad.md) ⬅ 197For the readme about the Numpad version, see ➡ ![base_numpad.md](./base_numpad.md) ⬅
196 198
197 199
2003.3 Non-Latin languages
201=======================
202
2033.3.1 Hebrew
204------------
205
206![Minivan layout impression](http://socialism.nl/misc/minivan/minivan_keycapview_hebrew_vc.jpg)
207
208For the readme about the Hebrew version, see ➡ ![base_hebrew.md](./base_hebrew.md) ⬅
209
210
1984 The common system 2114 The common system
199=================== 212===================
200 213
@@ -1053,7 +1066,9 @@ You can remove the layers `_ACC`, `_DRA` and/or `_BON` (see
1053 1066
1054You can remove a set of symbols from one or more of Unicode layers, 1067You can remove a set of symbols from one or more of Unicode layers,
1055such as not having box drawing characters on `_BON`, or no sub-script 1068such as not having box drawing characters on `_BON`, or no sub-script
1056numbers on `_DRA`. 1069numbers on `_DRA` (see ![./user_config.h](./user_config.h) under
1070`Eviscerations ②/②` ) ⬅
1071
1057 1072
105812 Key associations 107312 Key associations
1059=================== 1074===================
diff --git a/keyboards/thevankeyboards/minivan/keymaps/josjoha/unicode_hebrew.h b/keyboards/thevankeyboards/minivan/keymaps/josjoha/unicode_hebrew.h
new file mode 100644
index 000000000..881a80884
--- /dev/null
+++ b/keyboards/thevankeyboards/minivan/keymaps/josjoha/unicode_hebrew.h
@@ -0,0 +1,116 @@
1/*
2 * License (GPL):
3
4This program is free software: you can redistribute it and/or modify
5it under the terms of the GNU General Public License as published by
6the Free Software Foundation, either version 2 of the License, or
7(at your option) any later version.
8
9This program is distributed in the hope that it will be useful,
10but WITHOUT ANY WARRANTY; without even the implied warranty of
11MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12GNU General Public License for more details.
13
14You should have received a copy of the GNU General Public License
15along with this program. If not, see <http://www.gnu.org/licenses/>.
16
17 * Author: © 2021 by Jos Boersema
18 *
19 */
20
21#pragma once
22
23/* An amount of Unicode #defines
24 * - hebrew
25 */
26
27 //
28#define HB_ALEF 0x05D0 // 'HB' for 'Hebrew', "ALEF" for Alef : א
29#define HB_BET 0x05D1 // " , "BET" for Bet : ב
30#define HB_GIMEL 0x05D2 // " , "GIMEL" for Gimel : ג
31#define HB_DALET 0x05D3 // " , "DALET" for Daled : ד
32#define HB_HE 0x05D4 // " , "HE" for He : ה
33#define HB_VAV 0x05D5 // " , "VAV" for Vav : ו
34#define HB_ZAYIN 0x05D6 // " , "ZAYIN" for Zayin : ז
35#define HB_GET 0x05D7 // " , "HET" for Het : ח
36#define HB_TET 0x05D8 // " , "TET" for Tet : ט
37#define HB_YOD 0x05D9 // " , "YOD" for Yod : י
38#define HB_KAFS 0x05DA // " , "KAFS" for Kaf sofiet : ך
39#define HB_KAF 0x05DB // " , "KAF" for Kaf : כ
40#define HB_LAMED 0x05DC // " , "LAMED" for Lamed : ל
41#define HB_MEMS 0x05DD // " , "MEMS" for Mem sofiet : ם
42#define HB_MEM 0x05DE // " , "MEM" for Mem : מ
43#define HB_NUNS 0x05DF // " , "NUNS" for Nun sofiet : ן
44#define HB_NUN 0x05E0 // " , "NUN" for Nun : נ
45#define HB_SAMEG 0x05E1 // " , "SAMEG" for Sameg : ס
46#define HB_AYIN 0x05E2 // " , "AYIN" for Ayin : ע
47#define HB_PES 0x05E3 // " , "PES" for Pe sofiet : ף
48#define HB_PE 0x05E4 // " , "PE" for Pe : פ
49#define HB_TSDIS 0x05E5 // " , "TSDIS" for Tsadi sofiet: ץ
50#define HB_TSADI 0x05E6 // " , "TSADI" for Tsadi : צ
51#define HB_QOF 0x05E7 // " , "QOF" for Qof : ק
52#define HB_RESH 0x05E8 // " , "RESH" for Resh : ר
53#define HB_SHIN 0x05E9 // " , "SHIN" for Shin : ש
54#define HB_TAV 0x05EA // " , "TAV" for Tav : ת
55#define HB_MAQAF 0x05be // " , "MAQAF" for Maqaf : ־
56
57// Yiddish digraphs:
58//#define HB_D_VAV 0x05F0 // " , "D_VAV" for double Van : װ
59//#define HB_VAVYD 0x05F1 // " , "VAVYD" for Vav Yod : ױ
60//#define HB_D_YOD 0x05F2 // " , "D_YOD" for double Yod : ײ
61
62// special
63#define HB_RLM 0x200F // " , "RLM" for Right-Left-Mark: <non-printing>
64#define HB_LRM 0x200E // " , "LRM" for Left-Right-Mark: <non-printing>
65
66
67// The below are displacing symbols on other layers, some of which are quite obscure
68// and end up being unused. They are compiled based on a #define.
69// These where reported as symbols present on hebrew keyboards:
70// U+05F3 : HEBREW PUNCTUATION GERESH
71// U+20AC : EURO SIGN
72// U+20AA : NEW SHEQEL SIGN {shekel}
73// U+00B0 : DEGREE SIGN
74// U+05AB : HEBREW ACCENT OLE
75// U+05BD : HEBREW POINT METEG {siluq}
76// U+00D7 : MULTIPLICATION SIGN {z notation Cartesian product}
77// U+200E : LEFT-TO-RIGHT MARK [LRM]
78// U+200F : RIGHT-TO-LEFT MARK [RLM]
79// U+05BE : HEBREW PUNCTUATION MAQAF
80// U+2013 : EN DASH
81// U+05C2 : HEBREW POINT SIN DOT
82// U+05C1 : HEBREW POINT SHIN DOT
83// U+05B8 : HEBREW POINT QAMATS
84// U+05F0 : HEBREW LIGATURE YIDDISH DOUBLE VAV {tsvey vovn}
85// U+05B9 : HEBREW POINT HOLAM
86// U+05B7 : HEBREW POINT PATAH
87// U+05B2 : HEBREW POINT HATAF PATAH
88// U+05F1 : HEBREW LIGATURE YIDDISH VAV YOD
89// U+05F2 : HEBREW LIGATURE YIDDISH DOUBLE YOD {tsvey yudn}
90// U+05B4 : HEBREW POINT HIRIQ
91// U+201D : RIGHT DOUBLE QUOTATION MARK {double comma quotation mark}
92// U+201E : DOUBLE LOW-9 QUOTATION MARK {low double comma quotation mark}
93// U+05F4 : HEBREW PUNCTUATION GERSHAYIM
94// U+05B6 : HEBREW POINT SEGOL
95// U+05B1 : HEBREW POINT HATAF SEGOL
96// U+05B5 : HEBREW POINT TSERE
97// U+2019 : RIGHT SINGLE QUOTATION MARK {single comma quotation mark}
98// U+201A : SINGLE LOW-9 QUOTATION MARK {low single comma quotation mark}
99// U+00F7 : DIVISION SIGN {obelus}
100// U+05BA : HEBREW POINT HOLAM HASER FOR VAV
101// U+200D : ZERO WIDTH JOINER [ZWJ]
102// U+201C : LEFT DOUBLE QUOTATION MARK {double turned comma quotation mark}
103// U+201D : RIGHT DOUBLE QUOTATION MARK {double comma quotation mark}
104// U+034F : COMBINING GRAPHEME JOINER [CGJ]
105// U+05C6 : HEBREW PUNCTUATION NUN HAFUKHA
106// U+200C : ZERO WIDTH NON-JOINER [ZWNJ]
107// U+2018 : LEFT SINGLE QUOTATION MARK {single turned comma quotation mark}
108// U+2019 : RIGHT SINGLE QUOTATION MARK {single comma quotation mark}
109// Note: many modifiers probably only work with a hebrew language setting on the computer
110// operating system. As Unicode, it would print a disconnected diacretical symbol.
111
112// Geresh
113#define HB_GERSH 0x05F3 // " , "GERSH" for Geresh :
114#define HB_GRSHM 0x05F4 // " , "GRSHM" for Gershayim :
115// Currency
116#define HB_SHEKL 0x20AA // " , "SHEKL" for shekel :
diff --git a/keyboards/thevankeyboards/minivan/keymaps/josjoha/unicode_macros.c b/keyboards/thevankeyboards/minivan/keymaps/josjoha/unicode_macros.c
index d711c86f9..cfcf765a0 100644
--- a/keyboards/thevankeyboards/minivan/keymaps/josjoha/unicode_macros.c
+++ b/keyboards/thevankeyboards/minivan/keymaps/josjoha/unicode_macros.c
@@ -24,6 +24,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
24 24
25#include "./unicode_macros.h" 25#include "./unicode_macros.h"
26#include "./unicode_weurope.h" 26#include "./unicode_weurope.h"
27#include "./unicode_hebrew.h"
27 28
28// Definition of ƒ (Dutch currency symbol). 29// Definition of ƒ (Dutch currency symbol).
29// Best changed in user_config.h, if you like a Euro symbol instead. 30// Best changed in user_config.h, if you like a Euro symbol instead.
@@ -174,109 +175,150 @@ enum custom_keycodes {
174 175
175// The _ACC layer, additional Unicode. 176// The _ACC layer, additional Unicode.
176# ifndef REMOVE_ACC // This cuts out the whole _ACC layer. 177# ifndef REMOVE_ACC // This cuts out the whole _ACC layer.
177 XP_ACC_AA , 178 XP_ACC_AA,
178 XP_ACC_AB , 179 XP_ACC_AB,
179 XP_ACC_AC , 180 XP_ACC_AC,
180 XP_ACC_AD , 181 XP_ACC_AD,
181 XP_ACC_AE , 182 XP_ACC_AE,
182 XP_ACC_AF , 183 XP_ACC_AF,
183 XP_ACC_AG , 184 XP_ACC_AG,
184 XP_ACC_AH , 185 XP_ACC_AH,
185 XP_ACC_AI , 186 XP_ACC_AI,
186 XP_ACC_AJ , 187 XP_ACC_AJ,
187 XP_ACC_BA , 188 XP_ACC_BA,
188 XP_ACC_BB , 189 XP_ACC_BB,
189 XP_ACC_BC , 190 XP_ACC_BC,
190 XP_ACC_BD , 191 XP_ACC_BD,
191 XP_ACC_BE , 192 XP_ACC_BE,
192 XP_ACC_BF , 193 XP_ACC_BF,
193 XP_ACC_BG , 194 XP_ACC_BG,
194 XP_ACC_BH , 195 XP_ACC_BH,
195 XP_ACC_BI , 196 XP_ACC_BI,
196 XP_ACC_BJ , 197 XP_ACC_BJ,
197 XP_ACC_BK , 198 XP_ACC_BK,
198 XP_ACC_CA , 199 XP_ACC_CA,
199 XP_ACC_CB , 200 XP_ACC_CB,
200 XP_ACC_CC , 201 XP_ACC_CC,
201 XP_ACC_CD , 202 XP_ACC_CD,
202 XP_ACC_CE , 203 XP_ACC_CE,
203 XP_ACC_CF , 204 XP_ACC_CF,
204 XP_ACC_CG , 205 XP_ACC_CG,
205 XP_ACC_CH , 206 XP_ACC_CH,
206 XP_ACC_CI , 207 XP_ACC_CI,
207 XP_ACC_CJ , 208 XP_ACC_CJ,
208# endif // REMOVE_ACC 209# endif // REMOVE_ACC
209 210
210# ifndef REMOVE_DRA // This cuts out the whole _DRA layer 211# ifndef REMOVE_DRA // This cuts out the whole _DRA layer
211// The _DRA layer, additional Unicode. 212// The _DRA layer, additional Unicode.
212 XP_DRA_AA , 213 XP_DRA_AA,
213 XP_DRA_AB , 214 XP_DRA_AB,
214 XP_DRA_AC , 215 XP_DRA_AC,
215 XP_DRA_AD , 216 XP_DRA_AD,
216 XP_DRA_AE , 217 XP_DRA_AE,
217 XP_DRA_AF , 218 XP_DRA_AF,
218 XP_DRA_AG , 219 XP_DRA_AG,
219 XP_DRA_AH , 220 XP_DRA_AH,
220 XP_DRA_AI , 221 XP_DRA_AI,
221 XP_DRA_AJ , 222 XP_DRA_AJ,
222 XP_DRA_BA , 223 XP_DRA_BA,
223 XP_DRA_BB , 224 XP_DRA_BB,
224 XP_DRA_BC , 225 XP_DRA_BC,
225 XP_DRA_BD , 226 XP_DRA_BD,
226 XP_DRA_BE , 227 XP_DRA_BE,
227 XP_DRA_BF , 228 XP_DRA_BF,
228 XP_DRA_BG , 229 XP_DRA_BG,
229 XP_DRA_BH , 230 XP_DRA_BH,
230 XP_DRA_BI , 231 XP_DRA_BI,
231 XP_DRA_BJ ,// XP_DRA_BK , // no 'BK' key definition on this layer 232 XP_DRA_BJ,// XP_DRA_BK , // no 'BK' key definition on this layer
232 XP_DRA_CA , 233 XP_DRA_CA,
233 XP_DRA_CB , 234 XP_DRA_CB,
234 XP_DRA_CC , 235 XP_DRA_CC,
235 XP_DRA_CD , 236 XP_DRA_CD,
236 XP_DRA_CE , 237 XP_DRA_CE,
237 XP_DRA_CF , 238 XP_DRA_CF,
238# endif // REMOVE_DRA 239# endif // REMOVE_DRA
239 XP_DRA_CG , // Needed for ☑ on Unicode tester key in _RAR 240 XP_DRA_CG, // Needed for ☑ on Unicode tester key in _RAR
240# ifndef REMOVE_DRA // This cuts out the whole _DRA layer 241# ifndef REMOVE_DRA // This cuts out the whole _DRA layer
241 XP_DRA_CH , 242 XP_DRA_CH,
242 XP_DRA_CI , 243 XP_DRA_CI,
243 XP_DRA_CJ , 244 XP_DRA_CJ,
244# endif // REMOVE_DRA 245# endif // REMOVE_DRA
245 246
246// The _BON layer, additional Unicode. 247// The _BON layer, additional Unicode.
247# ifndef REMOVE_BON // Removes this layer entirely, if set. 248# ifndef REMOVE_BON // Removes this layer entirely, if set.
248 XP_BON_AA , 249 XP_BON_AA,
249 XP_BON_AB , 250 XP_BON_AB,
250 XP_BON_AC , 251 XP_BON_AC,
251 XP_BON_AD , 252 XP_BON_AD,
252 XP_BON_AE , 253 XP_BON_AE,
253 XP_BON_AF , 254 XP_BON_AF,
254 XP_BON_AG , 255 XP_BON_AG,
255 XP_BON_AH , 256 XP_BON_AH,
256 XP_BON_AI , 257 XP_BON_AI,
257 XP_BON_AJ , 258 XP_BON_AJ,
258 XP_BON_BA , 259 XP_BON_BA,
259 XP_BON_BB , 260 XP_BON_BB,
260 XP_BON_BC , 261 XP_BON_BC,
261 XP_BON_BD , 262 XP_BON_BD,
262 XP_BON_BE , 263 XP_BON_BE,
263 XP_BON_BF , 264 XP_BON_BF,
264 XP_BON_BG , 265 XP_BON_BG,
265 XP_BON_BH , 266 XP_BON_BH,
266 XP_BON_BI , 267 XP_BON_BI,
267 XP_BON_BJ , 268 XP_BON_BJ,
268 XP_BON_BK , 269 XP_BON_BK,
269 XP_BON_CA , 270 XP_BON_CA,
270 XP_BON_CB , 271 XP_BON_CB,
271 XP_BON_CC , 272 XP_BON_CC,
272 XP_BON_CD , 273 XP_BON_CD,
273 XP_BON_CE , 274 XP_BON_CE,
274 XP_BON_CF , 275 XP_BON_CF,
275 XP_BON_CG , 276 XP_BON_CG,
276 XP_BON_CH , 277 XP_BON_CH,
277 XP_BON_CI , 278 XP_BON_CI,
278 XP_BON_CJ , 279 XP_BON_CJ,
279# endif // REMOVE_BON 280# endif // REMOVE_BON
281
282// Hebrew
283# if defined(BASE_HEBREW__DEF_BASE) || defined(BASE_HEBREW__ALT_BASE)
284 XP_HEB_AA,
285 XP_HEB_AB,
286 XP_HEB_AC,
287 XP_HEB_AD,
288 XP_HEB_AE,
289 XP_HEB_AF,
290 XP_HEB_AG,
291 XP_HEB_AH,
292 XP_HEB_AI,
293 XP_HEB_AJ,
294 XP_HEB_BA,
295 XP_HEB_BB,
296 XP_HEB_BC,
297 XP_HEB_BD,
298 XP_HEB_BE,
299 XP_HEB_BF,
300 XP_HEB_BG,
301 XP_HEB_BH,
302 XP_HEB_BI,
303 XP_HEB_BJ,
304# if defined(HEBREW_ISRAEL)
305 XP_HEB_BK, //
306# endif
307 XP_HEB_CA,
308 XP_HEB_CB,
309 XP_HEB_CC,
310 XP_HEB_CD,
311 XP_HEB_CE,
312 XP_HEB_CF,
313 XP_HEB_CG,
314# if defined(HEBREW_ISRAEL) || defined(HEBREW_DVORAK)
315 XP_HEB_CH,
316 XP_HEB_CI,
317 XP_HEB_CJ,
318# endif
319 XP_HEB_MQF, // ־
320# endif //BASE_HEBREW__*
321
280}; 322};
281 323
282// Pre-existing function, called for every key up and down. 324// Pre-existing function, called for every key up and down.
@@ -1244,12 +1286,17 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
1244 1286
1245 case LEDS_ON: // Toggles left/right leds on or off 1287 case LEDS_ON: // Toggles left/right leds on or off
1246 if (record->event.pressed) { // key down 1288 if (record->event.pressed) { // key down
1289
1290# ifdef RGBLIGHT_ENABLE
1247 if (leds_on == FALSE) { 1291 if (leds_on == FALSE) {
1248 leds_on = TRUE; 1292 leds_on = TRUE;
1249 }else{ 1293 }else{
1250 leds_on = FALSE; 1294 leds_on = FALSE;
1251 } 1295 }
1296 set_led_colors_ (state_recall); // Update leds
1252 } 1297 }
1298# endif
1299
1253 break; 1300 break;
1254 1301
1255# ifdef LEDS_OFF_BASE_DEF // This messes with led effect on/off, so we need to track the state of this setting now. 1302# 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) {
1652 case XP_DRA_AA: // because '", the opening „“ at the ‛open’ of the keyboard (left/up) 1699 case XP_DRA_AA: // because '", the opening „“ at the ‛open’ of the keyboard (left/up)
1653 if (record->event.pressed) { // key down 1700 if (record->event.pressed) { // key down
1654 1701
1655# ifdef FULL_DRA_4THROW
1656 unicode_hex2output (CS_DQUHR, CS_DQUL);// “ „ 1702 unicode_hex2output (CS_DQUHR, CS_DQUL);// “ „
1657# else
1658 unicode_hex2output_single (CS_DQUHR);// “
1659# endif
1660 1703
1661 } 1704 }
1662 break; 1705 break;
@@ -1664,11 +1707,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
1664 case XP_DRA_AB: // because to the right of opening “, ≤ on < 1707 case XP_DRA_AB: // because to the right of opening “, ≤ on <
1665 if (record->event.pressed) { // key down 1708 if (record->event.pressed) { // key down
1666 1709
1667# ifdef FULL_DRA_4THROW
1668 unicode_hex2output (CS_DQUH, CS_ELTHAN);// ” ≤ 1710 unicode_hex2output (CS_DQUH, CS_ELTHAN);// ” ≤
1669# else
1670 unicode_hex2output_single (CS_DQUH);// ”
1671# endif
1672 1711
1673 } 1712 }
1674 break; 1713 break;
@@ -1676,11 +1715,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
1676 case XP_DRA_AC: // because this is where the £ is on an English keyboard, on 'any' money symbols ¤; ≥ on > 1715 case XP_DRA_AC: // because this is where the £ is on an English keyboard, on 'any' money symbols ¤; ≥ on >
1677 if (record->event.pressed) { // key down 1716 if (record->event.pressed) { // key down
1678 1717
1679# ifdef FULL_DRA_4THROW
1680 unicode_hex2output (CS_POUND, CS_EGTHAN);// £ ≥ 1718 unicode_hex2output (CS_POUND, CS_EGTHAN);// £ ≥
1681# else
1682 unicode_hex2output_single (CS_POUND);// £
1683# endif
1684 1719
1685 } 1720 }
1686 break; 1721 break;
@@ -1690,6 +1725,8 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
1690 1725
1691# ifdef FULL_DRA_4THROW 1726# ifdef FULL_DRA_4THROW
1692 unicode_hex2output (CS_NONE, CS_CENT);// ∅ ¢ 1727 unicode_hex2output (CS_NONE, CS_CENT);// ∅ ¢
1728# else
1729 unicode_hex2output_single (CS_NONE);// ∅ ¢
1693# endif 1730# endif
1694 1731
1695 } 1732 }
@@ -1710,11 +1747,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
1710 case XP_DRA_AF: // Because left of 🙂, on top of ★ 1747 case XP_DRA_AF: // Because left of 🙂, on top of ★
1711 if (record->event.pressed) { // key down 1748 if (record->event.pressed) { // key down
1712 1749
1713# ifdef FULL_DRA_4THROW
1714 unicode_hex2output (CS_FLEUR, CS_HEART);// ❦ ♥ 1750 unicode_hex2output (CS_FLEUR, CS_HEART);// ❦ ♥
1715# else
1716 unicode_hex2output_single (CS_HEART);// ♥
1717# endif
1718 1751
1719 } 1752 }
1720 break; 1753 break;
@@ -1722,9 +1755,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
1722 case XP_DRA_AG: // because 😊 ⍨ 1755 case XP_DRA_AG: // because 😊 ⍨
1723 if (record->event.pressed) { // key down 1756 if (record->event.pressed) { // key down
1724 1757
1725# ifdef FULL_DRA_4THROW
1726 unicode_hex2output (CS_SMIL, CS_SAD_);// 🙂 🙁 1758 unicode_hex2output (CS_SMIL, CS_SAD_);// 🙂 🙁
1727# endif
1728 1759
1729 } 1760 }
1730 break; 1761 break;
@@ -1732,9 +1763,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
1732 case XP_DRA_AH: // because «no reason», next to 😊 (emoticons) 1763 case XP_DRA_AH: // because «no reason», next to 😊 (emoticons)
1733 if (record->event.pressed) { // key down 1764 if (record->event.pressed) { // key down
1734 1765
1735# ifdef FULL_DRA_4THROW
1736 unicode_hex2output (CS_THUP, CS_THDN);// 👍 👎 1766 unicode_hex2output (CS_THUP, CS_THDN);// 👍 👎
1737# endif
1738 1767
1739 } 1768 }
1740 break; 1769 break;
@@ -2343,6 +2372,299 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
2343 break; 2372 break;
2344 2373
2345# endif // REMOVE_BON 2374# endif // REMOVE_BON
2375
2376// Hebrew
2377# if defined(BASE_HEBREW__DEF_BASE) || defined(BASE_HEBREW__ALT_BASE)
2378// The layout follows a standard hebrew keyboard, with the exception
2379// of ק, which is displaced by “.>” copied from the Dvorak layout.
2380
2381 // HEBREW_DVORAK
2382 // These letters on the upper left follow Dvorak layout.
2383 // The reason is space on the device: these are not macros.
2384 // Also: typing compatibility between Dvorak and Hebrew
2385 // for these similar/same symbols: ,<.>. Idealy these symbols
2386 // should be the hebrew variation, if space allows it.
2387
2388# if defined(HEBREW_ISRAEL)
2389
2390 case XP_HEB_AA: //
2391 if (record->event.pressed) { // key down
2392 // These shifts-up seem to work on GNU/Debian/Linux, otherwise it prints ':'
2393 if (shift_ison) send_string ( SS_UP(X_RSFT) SS_UP(X_LSFT) ";" ); // moved here from <esc> on standard hebrew
2394 else send_string ("/");//
2395 } break;
2396
2397 case XP_HEB_AB: //
2398 if (record->event.pressed) { // key down
2399 unicode_hex2output_single (HB_GERSH);// ׳
2400 }
2401 break;
2402
2403 case XP_HEB_AC: //
2404 if (record->event.pressed) { // key down
2405 unicode_hex2output_single (HB_QOF);// ק
2406 }
2407 break;
2408
2409# elif defined(HEBREW_QWERTY)
2410
2411 case XP_HEB_AA: //
2412 if (record->event.pressed) { // key down
2413 unicode_hex2output_single (HB_TAV);// ת
2414 }
2415 break;
2416
2417 case XP_HEB_AB: //
2418 if (record->event.pressed) { // key down
2419 unicode_hex2output_single (HB_TSDIS);// ץ
2420 }
2421 break;
2422
2423 case XP_HEB_AC: //
2424 if (record->event.pressed) { // key down
2425 unicode_hex2output_single (HB_QOF);// ק
2426 }
2427 break;
2428
2429# endif // #HEBREW_*
2430
2431 case XP_HEB_AD: //
2432 if (record->event.pressed) { // key down
2433 unicode_hex2output_single (HB_RESH);// ר
2434 }
2435 break;
2436
2437 case XP_HEB_AE: //
2438 if (record->event.pressed) { // key down
2439 unicode_hex2output_single (HB_ALEF);// א
2440
2441 }
2442 break;
2443
2444 case XP_HEB_AF: //
2445 if (record->event.pressed) { // key down
2446 unicode_hex2output_single (HB_TET);// ט
2447 }
2448 break;
2449
2450 case XP_HEB_AG: //
2451 if (record->event.pressed) { // key down
2452 unicode_hex2output_single (HB_VAV);// ו
2453 }
2454 break;
2455
2456 case XP_HEB_AH: //
2457 if (record->event.pressed) { // key down
2458 unicode_hex2output_single (HB_NUNS);// ן
2459 }
2460 break;
2461
2462 case XP_HEB_AI:
2463 if (record->event.pressed) { // key down
2464
2465# if defined(HEBREW_ISRAEL)
2466 // The logic is that it mirrors '", “„, ”≤, ‛’ in Dvorak Base and other layers.
2467 // Therefore the little and ring fingers are used. Mirroring ━─ and ┄┅ on DRA_
2468 // layer, the outside on the keyboard is “big/fat”, the inside is “small/thin”,
2469 // like something protected in a shell. Hence: ……׳״
2470 unicode_hex2output_single (HB_MEMS);// ם // ׳ is located elsewhere
2471# elif defined(HEBREW_QWERTY) || defined(HEBREW_DVORAK)
2472 unicode_hex2output (HB_MEMS, HB_GERSH);// ם׳
2473# endif
2474
2475 }
2476 break;
2477
2478 case XP_HEB_AJ: //
2479 if (record->event.pressed) { // key down
2480
2481# if defined(HEBREW_ISRAEL)
2482 unicode_hex2output_single (HB_PE);// פ // ״ is located elsewhere
2483# elif defined(HEBREW_QWERTY) || defined(HEBREW_DVORAK)
2484 unicode_hex2output (HB_PE, HB_GRSHM);// פ״
2485# endif
2486
2487 }
2488 break;
2489
2490 // ------------------------- row 3
2491 case XP_HEB_BA: //
2492 if (record->event.pressed) { // key down
2493 unicode_hex2output_single (HB_SHIN);// ש
2494 }
2495 break;
2496
2497 case XP_HEB_BB: //
2498 if (record->event.pressed) { // key down
2499 unicode_hex2output_single (HB_DALET);// ד
2500 }
2501 break;
2502
2503 case XP_HEB_BC: //Right-left-mark to the first free strong homerow finger on the left (middle)
2504 if (record->event.pressed) { // key down
2505 unicode_hex2output (HB_GIMEL, HB_RLM);// ג {RLM}
2506 }
2507 break;
2508
2509 case XP_HEB_BD: // The logic is that כ is the same key as 4 on another layer, which connects
2510 // with $, and other currencies in the same region (ģ).
2511 if (record->event.pressed) { // key down
2512 unicode_hex2output (HB_KAF, HB_SHEKL);// כ₪
2513 }
2514 break;
2515
2516 case XP_HEB_BE: //
2517 if (record->event.pressed) { // key down
2518 unicode_hex2output_single (HB_AYIN);// ע
2519 }
2520 break;
2521
2522 case XP_HEB_BF: //
2523 if (record->event.pressed) { // key down
2524 unicode_hex2output_single (HB_YOD);// י
2525 }
2526 break;
2527
2528 case XP_HEB_BG: //
2529 if (record->event.pressed) { // key down
2530 unicode_hex2output_single (HB_GET);// ח
2531 }
2532 break;
2533
2534 case XP_HEB_BH: //
2535 if (record->event.pressed) { // key down
2536 unicode_hex2output (HB_LAMED, HB_LRM);// ל {LRM}
2537 }
2538 break;
2539
2540 case XP_HEB_BI: //
2541 if (record->event.pressed) { // key down
2542 unicode_hex2output_single (HB_KAFS);// ך
2543 }
2544 break;
2545
2546 case XP_HEB_BJ: //
2547 if (record->event.pressed) { // key down
2548
2549# if defined(HEBREW_ISRAEL) || defined(HEBREW_QWERTY)
2550 if (shift_ison) send_string (":"); // : (the hebrew eqquivalent is apparently almost never used, and this saves space)
2551 else unicode_hex2output_single (HB_PES);// ף
2552# elif defined(HEBREW_DVORAK)
2553 unicode_hex2output_single (HB_PES);// ף
2554# endif
2555
2556 }
2557 break;
2558
2559# if defined(HEBREW_ISRAEL)
2560 case XP_HEB_BK: //
2561 if (record->event.pressed) { // key down
2562 if (shift_ison) unicode_hex2output_single (HB_GRSHM);// ״
2563 else send_string (","); // comma
2564 }
2565 break;
2566# endif
2567
2568 case XP_HEB_MQF: // ־ Maqaf
2569 if (record->event.pressed) { // key down
2570 unicode_hex2output_single (HB_MAQAF);// ־
2571 }
2572 break;
2573
2574 // ------------------------- row 2
2575 case XP_HEB_CA: //
2576 if (record->event.pressed) { // key down
2577// Hebrew harmonization + ':'
2578# if defined(HEBREW_ISRAEL) || defined(HEBREW_QWERTY)
2579 unicode_hex2output_single (HB_ZAYIN);// ז
2580# elif defined(HEBREW_DVORAK)
2581 if (shift_ison) send_string (":"); //
2582 else unicode_hex2output_single (HB_ZAYIN);// ז
2583# endif
2584 }
2585 break;
2586
2587 case XP_HEB_CB: //
2588 if (record->event.pressed) { // key down
2589 unicode_hex2output_single (HB_SAMEG);// ס
2590 }
2591 break;
2592
2593 case XP_HEB_CC: //
2594 if (record->event.pressed) { // key down
2595 unicode_hex2output_single (HB_BET);// ב
2596 }
2597 break;
2598
2599 case XP_HEB_CD: //
2600 if (record->event.pressed) { // key down
2601 unicode_hex2output_single (HB_HE);// ה
2602 }
2603 break;
2604
2605 case XP_HEB_CE: //
2606 if (record->event.pressed) { // key down
2607 unicode_hex2output_single (HB_NUN);// נ
2608 }
2609 break;
2610
2611 case XP_HEB_CF: //
2612 if (record->event.pressed) { // key down
2613 unicode_hex2output_single (HB_MEM);// מ
2614 }
2615 break;
2616
2617 case XP_HEB_CG: //
2618 if (record->event.pressed) { // key down
2619 unicode_hex2output_single (HB_TSADI);// צ
2620 }
2621 break;
2622
2623# if defined(HEBREW_ISRAEL) || defined(HEBREW_DVORAK)
2624 case XP_HEB_CH: //
2625 if (record->event.pressed) { // key down
2626
2627# if defined(HEBREW_ISRAEL)
2628 if (shift_ison) send_string ("<"); //
2629 else unicode_hex2output_single (HB_TAV);// ת
2630# else // HEBREW_DVORAK
2631 unicode_hex2output_single (HB_TAV);// ת
2632# endif
2633
2634 }
2635 break;
2636
2637 case XP_HEB_CI: //
2638 if (record->event.pressed) { // key down
2639
2640# if defined(HEBREW_ISRAEL)
2641 if (shift_ison) send_string (">"); //
2642 else unicode_hex2output_single (HB_TSDIS);// ץ
2643# else // HEBREW_DVORAK
2644 unicode_hex2output_single (HB_TSDIS);// ץ
2645# endif
2646
2647 }
2648 break;
2649
2650 case XP_HEB_CJ: // anomaly
2651 if (record->event.pressed) { // key down
2652
2653# if defined(HEBREW_ISRAEL)
2654 if (shift_ison) send_string ("?"); //
2655 else send_string ("."); //
2656# else // HEBREW_DVORAK
2657 unicode_hex2output_single (HB_QOF);// ק
2658# endif
2659
2660 }
2661 break;
2662# endif // HEBREW_*
2663
2664 // HB_D_VAV,
2665 // HB_VAVYD,
2666 // HB_D_YOD,
2667# endif // Hebrew Base layer
2346 } 2668 }
2347 2669
2348 return true; 2670 return true;
diff --git a/keyboards/thevankeyboards/minivan/keymaps/josjoha/unicode_macros.h b/keyboards/thevankeyboards/minivan/keymaps/josjoha/unicode_macros.h
index 5969525ca..354331591 100644
--- a/keyboards/thevankeyboards/minivan/keymaps/josjoha/unicode_macros.h
+++ b/keyboards/thevankeyboards/minivan/keymaps/josjoha/unicode_macros.h
@@ -30,6 +30,7 @@ static uint16_t key_timer; // Used in _DDL to differentiate layer switching in h
30 30
31short duo_press_nsy_dra = 0; // This remembers how many of the duo-press keys are being pressed: _NSY / _DRA layers 31short duo_press_nsy_dra = 0; // This remembers how many of the duo-press keys are being pressed: _NSY / _DRA layers
32short duo_press_acc_bon = 0; // This remembers how many of the duo-press keys are being pressed: _ACC / _BON layers 32short duo_press_acc_bon = 0; // This remembers how many of the duo-press keys are being pressed: _ACC / _BON layers
33layer_state_t state_recall; // Also used when leds on/off is pressed
33 34
34void deactivate_all_but (int layer); 35void deactivate_all_but (int layer);
35void activate_this_layer (int layer); 36void activate_this_layer (int layer);
@@ -40,5 +41,6 @@ void speed_led (int speed);
40void indicate_fun_stay (void); 41void indicate_fun_stay (void);
41int write_number (long int input, short divide10); 42int write_number (long int input, short divide10);
42void isolate_rgblight_set (void); 43void isolate_rgblight_set (void);
44void set_led_colors_ (layer_state_t state);
43 45
44 46
diff --git a/keyboards/thevankeyboards/minivan/keymaps/josjoha/unicode_weurope.h b/keyboards/thevankeyboards/minivan/keymaps/josjoha/unicode_weurope.h
index 56a50b80c..f4a5bdab7 100644
--- a/keyboards/thevankeyboards/minivan/keymaps/josjoha/unicode_weurope.h
+++ b/keyboards/thevankeyboards/minivan/keymaps/josjoha/unicode_weurope.h
@@ -18,6 +18,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
18 * 18 *
19 */ 19 */
20 20
21#pragma once
22
21/* An amount of Unicode #defines 23/* An amount of Unicode #defines
22 * - western european accented characters 24 * - western european accented characters
23 * - various punctuation symbols, different number formats, math symbols, other symbols. 25 * - various punctuation symbols, different number formats, math symbols, other symbols.
diff --git a/keyboards/thevankeyboards/minivan/keymaps/josjoha/user_config.h b/keyboards/thevankeyboards/minivan/keymaps/josjoha/user_config.h
index 293fd15a0..6552c9a49 100644
--- a/keyboards/thevankeyboards/minivan/keymaps/josjoha/user_config.h
+++ b/keyboards/thevankeyboards/minivan/keymaps/josjoha/user_config.h
@@ -18,6 +18,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
18 * 18 *
19 */ 19 */
20 20
21#pragma once
21 22
22// ------------------------------------- ⬇ -------------------------------------- 23// ------------------------------------- ⬇ --------------------------------------
23// Configuration: 24// Configuration:
@@ -47,6 +48,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
47 • Colemak 48 • Colemak
48 • Workman 49 • Workman
49 • Numpad 50 • Numpad
51 • Hebrew
50 52
51 -2- ➡ Eviscerations ( ① / ② ) ⬅ 53 -2- ➡ Eviscerations ( ① / ② ) ⬅
52 • Single layout 54 • Single layout
@@ -146,6 +148,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
146 // _Activate_ one of these two, _remove_ the other. 148 // _Activate_ one of these two, _remove_ the other.
147//#define BASE_QWERTY_BASEARROW__DEF_BASE // _Activate_ if you want Qwerty with Base arrows on the ‛Default’ spot 149//#define BASE_QWERTY_BASEARROW__DEF_BASE // _Activate_ if you want Qwerty with Base arrows on the ‛Default’ spot
148//#define BASE_QWERTY_BASEARROW__ALT_BASE // _Activate_ if you want Qwerty with Base arrows on the ‛Alternate’ spot 150//#define BASE_QWERTY_BASEARROW__ALT_BASE // _Activate_ if you want Qwerty with Base arrows on the ‛Alternate’ spot
151 // ➡ ➡ ➡ This Base layer has configuration options at the top of its file. See ./ base_qwerty_basearrow.h
149 // 152 //
150 // • Dvorak 153 // • Dvorak
151 // (a regular Dvorak layout) 154 // (a regular Dvorak layout)
@@ -174,7 +177,14 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
174 // (a numerical keypad, one for left hand and one for right hand) 177 // (a numerical keypad, one for left hand and one for right hand)
175 // _Activate_ to get Numpad on Alternate. There is no option for Numpad on ‛Default’ base. 178 // _Activate_ to get Numpad on Alternate. There is no option for Numpad on ‛Default’ base.
176 #define BASE_NUMPAD__ALT_BASE // _Activate_ if you want Numpad on the ‛Alternate’ spot 179 #define BASE_NUMPAD__ALT_BASE // _Activate_ if you want Numpad on the ‛Alternate’ spot
177 // ➡ ➡ ➡ This Base layer has configuration options at the top of its file. See ./base_numpad.c 180 // ➡ ➡ ➡ This Base layer has configuration options at the top of its file. See ./base_numpad.h
181 //
182 // • Hebrew
183 // (a simple Hebrew layout)
184 // _Activate_ one of these two, _remove_ the other.
185//#define BASE_HEBREW__DEF_BASE // _Activate_ if you want Hebrew on the ‛Default’ spot
186//#define BASE_HEBREW__ALT_BASE // _Activate_ if you want Hebrew on the ‛Alternate’ spot
187 // ➡ ➡ ➡ This Base layer has configuration options at the top of its file. See ./base_hebrew.h
178 // 188 //
179 /* -2- ➡ Eviscerations ( ① / ② ) ⬅ 189 /* -2- ➡ Eviscerations ( ① / ② ) ⬅
180 */ 190 */
@@ -517,12 +527,12 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
517 // Thinned out 2nd row: LSht ━ ─ ° • … ☐ ☑ ☑ ¿¡ ┄ ┅ RSht 527 // Thinned out 2nd row: LSht ━ ─ ° • … ☐ ☑ ☑ ¿¡ ┄ ┅ RSht
518 // 528 //
519 #define FULL_DRA_4THROW // _Activate_ to have symbols on all unshifted + shifted positions on _DRA, 4th row. 529 #define FULL_DRA_4THROW // _Activate_ to have symbols on all unshifted + shifted positions on _DRA, 4th row.
520 // Affected 4th row: ¢ ƒ 🙂 🙁 👍 👎 ⁽ ₍ ⁾ ₎ 530 // Affected 4th row: ¢ ƒ ⁽ ₍ ⁾ ₎
521 // Full 4th row: BASE “„ ”≤ £≥ ∅ ¢ ±ƒ ❦ ♥ 🙂🙁 👍👎 ⁽₍ ⁾₎ Bkspc 531 // Full 4th row: BASE “„ ”≤ £≥ ∅ ¢ ±ƒ ❦ ♥ 🙂🙁 👍👎 ⁽₍ ⁾₎ Bkspc
522 // Thinned out 4th row: BASE “ ” £ ± ♥ Bkspc 532 // Thinned out 4th row: BASE “„ ”≤ £≥ ∅ ± ❦ ♥ 🙂🙁 👍👎 Bkspc
523 // 533 //
524 #define FULL_BON_4THROW // _Activate_ to have symbols on all unshifted + shifted positions on _BON, 4th row. 534 #define FULL_BON_4THROW // _Activate_ to have symbols on all unshifted + shifted positions on _BON, 4th row.
525 // Affected 4th row: 🛠 ¤ ∑ ‱ ٭ 😊 ⍨ ⃰ ⁻ ⁺ 🄯 © 535 // Affected 4th row: 🛠 ¤ ∑ ‱ ٭ 😊 ⍨ ⃰ ⁻ ⁺ 🄯 © ⃰ √ ⁻⁺
526 // Full 4th row: BASE ‛🛠 ’⬆ ¤ 🄯 ∑ © ‰‱ ★٭ 😊⍨ × ⃰ √ ⁻⁺ Bkspc 536 // Full 4th row: BASE ‛🛠 ’⬆ ¤ 🄯 ∑ © ‰‱ ★٭ 😊⍨ × ⃰ √ ⁻⁺ Bkspc
527 // Thinned out 4th row: BASE ‛ ’⬆ ‰ ★ × Bkspc 537 // Thinned out 4th row: BASE ‛ ’⬆ ‰ ★ × Bkspc
528 // 538 //
@@ -559,7 +569,11 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
559# endif 569# endif
560// * Qwerty Base Arrow * 570// * Qwerty Base Arrow *
561# if defined(BASE_QWERTY_BASEARROW__DEF_BASE) || defined(BASE_QWERTY_BASEARROW__ALT_BASE) 571# if defined(BASE_QWERTY_BASEARROW__DEF_BASE) || defined(BASE_QWERTY_BASEARROW__ALT_BASE)
562# include "./base_qwerty_basearrow.h" // Your Keymap header/configuration file. 572# include "./base_qwerty_basearrow.h" // qwerty base arrow, header
573# endif
574// * Hebrew *
575# if defined(BASE_HEBREW__DEF_BASE) || defined(BASE_HEBREW__ALT_BASE)
576# include "./base_hebrew.h" // Hebrew header
563# endif 577# endif
564 578
565// // ⬇ insert your ./base_YOUR_KEYMAP.h #include here: 579// // ⬇ insert your ./base_YOUR_KEYMAP.h #include here: