@ -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 |
@ -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 ![./readme.md](./readme.md) 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 | |||
![./base_hebrew.h](./base_hebrew.h) | |||
☞ 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 ![./user_config.h](./user_config.h) | |||
Hebrew keymaps | |||
-------------- | |||
──────────Hebrew Israel──────── | |||
![Minivan layout Image BASEdef-alt](http://socialism.nl/misc/minivan/minivan_base_layer_hebrew-israel_ve.jpg) | |||
Layer: `..._BASE` | |||
![Minivan layout Image NSYdef-alt](http://socialism.nl/misc/minivan/minivan_nsy_layer_hebrew-israel_vd.jpg) | |||
Layer: `..._NSY` | |||
──────────in common──────────── | |||
(…) | |||
──────────Hebrew Qwerty──────── | |||
![Minivan layout Image BASEdef-alt](http://socialism.nl/misc/minivan/minivan_base_layer_hebrew-qwerty_ve.jpg) | |||
Layer: `..._BASE` | |||
![Minivan layout Image NSYdef-alt](http://socialism.nl/misc/minivan/minivan_nsy_layer_hebrew-israel_vd.jpg) | |||
Layer: `..._NSY` | |||
──────────in common──────────── | |||
(…) | |||
──────────Hebrew Dvorak──────── | |||
![Minivan layout Image BASEdef-alt](http://socialism.nl/misc/minivan/minivan_base_layer_hebrew-dvorak_ve.jpg) | |||
Layer: `..._BASE` | |||
![Minivan layout Image NSYdef-alt](http://socialism.nl/misc/minivan/minivan_nsy_layer_dvorak_vc.jpg) | |||
Layer: `..._NSY` (Same as Dvorak.) | |||
──────────in common──────────── | |||
(…) | |||
For more about the other layers, see ➡ ![readme.md](./readme.md) ⬅ | |||
![Minivan illustration Overview layers by key, Hebrew](http://socialism.nl/misc/minivan/minivan-all-layers-clear-visualization-by-key_hebrew_2000_vk.jpg) | |||
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 | |||
--------------------------------------------------------------------------- | |||
(…) | |||
- - - |
@ -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 : |