mirror of
https://github.com/Keychron/qmk_firmware.git
synced 2024-11-30 04:37:14 +06:00
Merge remote-tracking branch 'origin/master' into develop
This commit is contained in:
commit
e2994eed66
291
keyboards/thevankeyboards/minivan/keymaps/josjoha/base_hebrew.c
Normal file
291
keyboards/thevankeyboards/minivan/keymaps/josjoha/base_hebrew.c
Normal file
|
@ -0,0 +1,291 @@
|
||||||
|
/*
|
||||||
|
* License (GPL):
|
||||||
|
|
||||||
|
This program is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation, either version 2 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
* Author: © 2021 by Jos Boersema
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
// --------------------------------------v---------------------------------------
|
||||||
|
// Configuration:
|
||||||
|
// --------------------------------------v---------------------------------------
|
||||||
|
|
||||||
|
// See the user configuration file: ./base_hebrew.h
|
||||||
|
|
||||||
|
// --------------------------------------^---------------------------------------
|
||||||
|
// Below here no more comfortable configuration options.....
|
||||||
|
// --------------------------------------^---------------------------------------
|
||||||
|
|
||||||
|
/* ⬇ */
|
||||||
|
|
||||||
|
/* Layer _..._BASE: default BASE layer (Hebrew)
|
||||||
|
*
|
||||||
|
* - Dual use keys create a delay in the key (tap/hold keys), therefore
|
||||||
|
* space is not dual use (most used key), neither is hyphen.
|
||||||
|
*/
|
||||||
|
|
||||||
|
// Process user configuration wrt ‛Default’ or ‛Alternative’ spot for this layout.
|
||||||
|
# if defined(BASE_HEBREW__DEF_BASE)
|
||||||
|
[ _DEF_BASE ] = LAYOUT_redefined (
|
||||||
|
# elif defined(BASE_HEBREW__ALT_BASE)
|
||||||
|
[ _ALT_BASE ] = LAYOUT_redefined (
|
||||||
|
# endif
|
||||||
|
|
||||||
|
/*
|
||||||
|
Layer _..._BASE (LeTteRs, standard Hebrew as in Israel)
|
||||||
|
➡ This is a simple hebrew layout. Notice the letter ק is displaced from normal,
|
||||||
|
to retain compatibility with Dvorak-English for ,<.>. There are no niqqud
|
||||||
|
available, because it is far too many unique symbols in Unicode, and it is
|
||||||
|
rarely used.
|
||||||
|
|
||||||
|
HEBREW_ISRAEL
|
||||||
|
| Right hand
|
||||||
|
<pink2 <pinky<ring <middl<index<indx2| indx2>index>middl>ring> pinky>pinky2> // Keys by finger
|
||||||
|
-o- <|> ... //-o- BASE access
|
||||||
|
Esc /; ׳ ק ר א | ט ו ן ם פ Bksp
|
||||||
|
Tab+LCtl ש ד ג/RLM כ₪ ע | י ח ל/LRM ך ף: ,״ //Right-Left-Mark
|
||||||
|
LSht+_PAD ז ס ב ה נ | מ צ ת< ץ> .? RSht+_FUN //<>os side flip?
|
||||||
|
+_MOV⁵ | +_RAR⁶
|
||||||
|
---------------------------------------------------------------------------------------
|
||||||
|
Left+LAlt Del;_ACC _..._NSY(_DRA) Enter+_MOV| Space _..._NSY(_DRA) LGUI Right;_RAR
|
||||||
|
hold hold₍₁,₂٭₎ hold | hold₍₁,₂٭₎ hold // switch type
|
||||||
|
hold₍₂₎ ^-┃-----------------------+--------^ ┃ // ₁₎ both = _DRA
|
||||||
|
┗━━━_BON━━━╋┅───────────┄┄┄«or»┄┄┄─+─────────┅┛ // ₂₎ both = _BON
|
||||||
|
<1 ± <2 <3 <4 | 4> 3> 2> ± 1> // Keys by number
|
||||||
|
^³ ^⁴ // Optional more keys
|
||||||
|
… …
|
||||||
|
|
||||||
|
HEBREW_QWERTY
|
||||||
|
| Right hand
|
||||||
|
<pink2 <pinky<ring <middl<index<indx2| indx2>index>middl>ring> pinky>pinky2> // Keys by finger
|
||||||
|
-o- <|> ... //-o- BASE access
|
||||||
|
Esc ת• ץ• ק ר א | ט ו ן ם׳ פ״ Bksp
|
||||||
|
Tab+LCtl ש ד ג/RLM כ₪ ע | י ח ל/LRM ך ף: '" //Right-Left-Mark
|
||||||
|
LSht+_PAD ז ס ב ה נ | מ צ ,< .> /? RSht+_FUN
|
||||||
|
+_MOV⁵ | +_RAR⁶
|
||||||
|
---------------------------------------------------------------------------------------
|
||||||
|
Left+LAlt Del;_ACC _..._NSY(_DRA) Enter+_MOV| Space _..._NSY(_DRA) LGUI Right;_RAR
|
||||||
|
hold hold₍₁,₂٭₎ hold | hold₍₁,₂٭₎ hold // switch type
|
||||||
|
hold₍₂₎ ^-┃-----------------------+--------^ ┃ // ₁₎ both = _DRA
|
||||||
|
┗━━━_BON━━━╋┅───────────┄┄┄«or»┄┄┄─+─────────┅┛ // ₂₎ both = _BON
|
||||||
|
<1 ± <2 <3 <4 | 4> 3> 2> ± 1> // Keys by number
|
||||||
|
^³ ^⁴ // Optional more keys
|
||||||
|
… …
|
||||||
|
|
||||||
|
HEBREW_DVORAK
|
||||||
|
| Right hand
|
||||||
|
<pink2 <pinky<ring <middl<index<indx2| indx2>index>middl>ring> pinky>pinky2> // Keys by finger
|
||||||
|
-o- <|> ... //-o- BASE access
|
||||||
|
Esc '" ,< .> ר א | ט ו ן ם׳ פ״ Bksp
|
||||||
|
Tab+LCtl ש ד ג/RLM כ₪ ע | י ח ל/LRM ך ף ־ //Right-Left-Mark
|
||||||
|
LSht+_PAD ז: ס ב ה נ | מ צ ת ץ ק• RSht+_FUN
|
||||||
|
+_MOV⁵ | +_RAR⁶
|
||||||
|
---------------------------------------------------------------------------------------
|
||||||
|
Left+LAlt Del;_ACC _..._NSY(_DRA) Enter+_MOV| Space _..._NSY(_DRA) LGUI Right;_RAR
|
||||||
|
hold hold₍₁,₂٭₎ hold | hold₍₁,₂٭₎ hold // switch type
|
||||||
|
hold₍₂₎ ^-┃-----------------------+--------^ ┃ // ₁₎ both = _DRA
|
||||||
|
┗━━━_BON━━━╋┅───────────┄┄┄«or»┄┄┄─+─────────┅┛ // ₂₎ both = _BON
|
||||||
|
<1 ± <2 <3 <4 | 4> 3> 2> ± 1> // Keys by number
|
||||||
|
^³ ^⁴ // Optional more keys
|
||||||
|
… …
|
||||||
|
|
||||||
|
|
||||||
|
₁) Dual hold for _DRA, single hold for _..._NSY. Marked by: ^--…--^
|
||||||
|
₂) Hold key “<2” with either٭ key “<3” or “3>” for _BON, single hold “<2” for _ACC. Marked: ┗━━…━━┛
|
||||||
|
³) 'South paw' hardware configuration
|
||||||
|
⁴) 'Arrow' hardware configuration
|
||||||
|
³ ⁴) There are two more optional hardware keys, to make it easier to compile for
|
||||||
|
a 12x12x12x11 or 12x12x12x12 layouts.
|
||||||
|
⁵) Left Shift when pressed with another key. Medium long: to toggle _PAD. Long: toggle _MOV.
|
||||||
|
⁶) Right shift when pressed with another key. medium long: to toggle _FUN. Long: toggle _RAR.
|
||||||
|
⁷) Letters marked with • are displaced from standard hebrew layout.
|
||||||
|
*/
|
||||||
|
//
|
||||||
|
// <pink2 , <pinky , <ring , <middl , <indx , <ind|, indx> , inde> , midd> , ring> , pink> , pink2> ,
|
||||||
|
// -*!- , , , , , <|,> , , , , , ,
|
||||||
|
KC_ESC
|
||||||
|
|
||||||
|
# if defined(HEBREW_ISRAEL)
|
||||||
|
, XP_HEB_AA , XP_HEB_AB , XP_HEB_AC
|
||||||
|
# elif defined(HEBREW_QWERTY)
|
||||||
|
, XP_HEB_AA , XP_HEB_AB , XP_HEB_AC
|
||||||
|
# elif defined(HEBREW_DVORAK)
|
||||||
|
, KC_QUOT , KC_COMM , KC_DOT
|
||||||
|
# endif // HEBREW_DVORAK/QWERTY
|
||||||
|
, XP_HEB_AD , XP_HEB_AE , XP_HEB_AF , XP_HEB_AG , XP_HEB_AH , XP_HEB_AI , XP_HEB_AJ , KC_BSPC ,
|
||||||
|
LCTL_T ( KC_TAB ) , XP_HEB_BA , XP_HEB_BB , XP_HEB_BC , XP_HEB_BD , XP_HEB_BE , XP_HEB_BF , XP_HEB_BG , XP_HEB_BH , XP_HEB_BI , XP_HEB_BJ
|
||||||
|
// ^^^^^^^^^ Different in Qwerty (done in macros) with ':'
|
||||||
|
|
||||||
|
# if defined(HEBREW_ISRAEL)
|
||||||
|
, XP_HEB_BK , // ,"
|
||||||
|
# elif defined(HEBREW_QWERTY)
|
||||||
|
, KC_QUOT , // '"
|
||||||
|
# elif defined(HEBREW_DVORAK)
|
||||||
|
, XP_HEB_MQF , // ־
|
||||||
|
# endif // HEBREW_*
|
||||||
|
|
||||||
|
CHOLTAP_LSHFT , XP_HEB_CA , XP_HEB_CB , XP_HEB_CC , XP_HEB_CD , XP_HEB_CE , XP_HEB_CF , XP_HEB_CG
|
||||||
|
|
||||||
|
# if defined(HEBREW_ISRAEL)
|
||||||
|
, XP_HEB_CH , XP_HEB_CI , XP_HEB_CJ
|
||||||
|
# elif defined(HEBREW_QWERTY)
|
||||||
|
, KC_COMM , KC_DOT , KC_SLSH
|
||||||
|
# elif defined(HEBREW_DVORAK)
|
||||||
|
, XP_HEB_CH , XP_HEB_CI , XP_HEB_CJ
|
||||||
|
# endif // HEBREW_*
|
||||||
|
, CHOLTAP_RSHFT ,
|
||||||
|
// -----------------------------------------------------------------------------------------------------------------
|
||||||
|
LALT_T ( KC_LEFT )
|
||||||
|
|
||||||
|
# ifdef TRANSMINIVAN_LEFTSIDE
|
||||||
|
, MO ( _PAD )
|
||||||
|
# endif
|
||||||
|
|
||||||
|
# ifdef MORE_KEY__COMMAND
|
||||||
|
, MORE_key1_BASE
|
||||||
|
# endif
|
||||||
|
|
||||||
|
# ifdef SWITCH_HOLD_ACC_NSY
|
||||||
|
, DUO_HOLD , CHOLTAP_ACCE
|
||||||
|
# else
|
||||||
|
, CHOLTAP_ACCE , DUO_HOLD
|
||||||
|
# endif
|
||||||
|
|
||||||
|
, LEFTCENTER_THUMB
|
||||||
|
|
||||||
|
# ifdef TRANSMINIVAN_MIDLEFT
|
||||||
|
, TRANS_MIDLEFT
|
||||||
|
# endif
|
||||||
|
|
||||||
|
, RIGHTCENTER_THUMB , DUO_HOLD , KC__YGUI
|
||||||
|
|
||||||
|
# ifdef TRANSMINIVAN_RIGHTSIDE
|
||||||
|
, MO ( _FUN )
|
||||||
|
# endif
|
||||||
|
|
||||||
|
# ifdef MORE_KEY__ARROW
|
||||||
|
, MORE_key2
|
||||||
|
# endif
|
||||||
|
|
||||||
|
, CHOLTAP_LAYR
|
||||||
|
// , , , <|,> , , ,
|
||||||
|
// <1 ± ± , <2 , <3 , <4 |, 4> , 3> , 2> , ± ± 1>
|
||||||
|
|
||||||
|
),
|
||||||
|
|
||||||
|
/* ⬆⬇ */
|
||||||
|
|
||||||
|
/* Layer _..._NSY: Numbers and symbols.
|
||||||
|
* Off hand Number input (-.Bksp ent (shft)tab).
|
||||||
|
*/
|
||||||
|
// KC_TILD does not work there, because of a limitation with shifted keys (nov 2019).
|
||||||
|
|
||||||
|
// Process user configuration wrt ‛Default’ or ‛Alternative’ spot for this layout.
|
||||||
|
# if defined(BASE_HEBREW__DEF_BASE)
|
||||||
|
[ _DEF_NSY ] = LAYOUT_redefined (
|
||||||
|
# elif defined(BASE_HEBREW__ALT_BASE)
|
||||||
|
[ _ALT_NSY ] = LAYOUT_redefined (
|
||||||
|
# endif
|
||||||
|
|
||||||
|
/*
|
||||||
|
Layer _..._NSY (Numbers and SYmbols)
|
||||||
|
➡ The brace type symbols are *not* reversed as on standard hebrew boards (I find it confusing).
|
||||||
|
|
||||||
|
HEBREW_ISRAEL & HEBREW_QWERTY
|
||||||
|
<pink2 <pinky<ring <middl<index<indx2| indx2>index>middl>ring>pin>pink2>
|
||||||
|
-*- <|> //(toggle) Access on _FUN
|
||||||
|
BASE ! @ # $ % | ^ & * ( ) Del
|
||||||
|
Tab+LCtl 1! 2@ 3# 4$ 5% | 6^ 7& 8* 9( 0) `~+RCtl
|
||||||
|
-+LSht [{ ]} -_ \| =+ | + | ־ { } ~+RSht
|
||||||
|
^ // Only difference with Qwerty
|
||||||
|
---------------------------------------------------------------------------
|
||||||
|
Left+LAlt ___ ___ Ent | . ___ LGUI Right+RAlt
|
||||||
|
-*- <|> -*- //(hold) Access on _..._BASE
|
||||||
|
<1 ± <2 <3 <4 | 4> 3> 2> ± 1>
|
||||||
|
… …
|
||||||
|
|
||||||
|
HEBREW_DVORAK (Same as standard Dvorak)
|
||||||
|
<pink2 <pinky<ring <middl<index<indx2| indx2>index>middl>ring>pin>pink2>
|
||||||
|
-*- <|> //(toggle) Access on _FUN
|
||||||
|
BASE ! @ # $ % | ^ & * ( ) Del
|
||||||
|
Tab+LCtl 1! 2@ 3# 4$ 5% | 6^ 7& 8* 9( 0) `~+RCtl
|
||||||
|
-+LSht [{ ]} /? \| =+ | + | ? { } ~+RSht
|
||||||
|
---------------------------------------------------------------------------
|
||||||
|
Left+LAlt ___ ___ Ent | . ___ LGUI Right+RAlt
|
||||||
|
-*- <|> -*- //(hold) Access on _..._BASE
|
||||||
|
<1 ± <2 <3 <4 | 4> 3> 2> ± 1>
|
||||||
|
… …
|
||||||
|
*/
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// <pink2 , <pinky , <ring , <middl , <index , <indx2 |, indx2> , index> , middl> , ring> , pinky> , pink2> ,
|
||||||
|
// , -*- , , , , <|,> , , , , , ,
|
||||||
|
CTO_BASE , KC_EXLM , KC_AT , KC_HASH , KC_DLR , KC_PERC , KC_CIRC , KC_AMPR , KC_ASTR , KC_LPRN , KC_RPRN , KC_DEL ,
|
||||||
|
LCTL_T ( KC_TAB ) , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , RCTL_T ( KC_GRV ) ,
|
||||||
|
LSFT_DASH , KC_LBRC , KC_RBRC
|
||||||
|
|
||||||
|
# if defined(HEBREW_ISRAEL)
|
||||||
|
, KC_MINUS // allows -_, with Maqaf on mirror place right
|
||||||
|
# elif defined(HEBREW_QWERTY)
|
||||||
|
, KC_MINUS // same as HEBREW_ISRAEL
|
||||||
|
# elif defined(HEBREW_DVORAK)
|
||||||
|
, KC_SLSH
|
||||||
|
# endif // HEBREW_*
|
||||||
|
|
||||||
|
, KC_BSLS , KC_EQL , KC_PLUS , KC_PIPE
|
||||||
|
|
||||||
|
|
||||||
|
# if defined(HEBREW_ISRAEL)
|
||||||
|
, XP_HEB_MQF // '־' Maqaf
|
||||||
|
# elif defined(HEBREW_QWERTY)
|
||||||
|
, XP_HEB_MQF //
|
||||||
|
# elif defined(HEBREW_DVORAK)
|
||||||
|
, KC_QUES
|
||||||
|
# endif // HEBREW_*
|
||||||
|
, KC_LCBR , KC_RCBR , RSFT_TILDE ,
|
||||||
|
// ---------------------------------------------------------------------------------------------------------------------------------------------
|
||||||
|
LALT_T ( KC_LEFT )
|
||||||
|
|
||||||
|
# ifdef TRANSMINIVAN_LEFTSIDE
|
||||||
|
, TRANS_LEFT
|
||||||
|
# endif
|
||||||
|
|
||||||
|
# ifdef MORE_KEY__COMMAND
|
||||||
|
, MORE_key1
|
||||||
|
# endif
|
||||||
|
|
||||||
|
, _______ , _______ , KC_ENT
|
||||||
|
|
||||||
|
# ifdef TRANSMINIVAN_MIDLEFT
|
||||||
|
, TRANS_MIDLEFT
|
||||||
|
# endif
|
||||||
|
, KC_DOT , DUO_HOLD , KC__YGUI
|
||||||
|
|
||||||
|
# ifdef TRANSMINIVAN_RIGHTSIDE
|
||||||
|
, TRANS_RIGHT
|
||||||
|
# endif
|
||||||
|
|
||||||
|
# ifdef MORE_KEY__ARROW
|
||||||
|
, MORE_key2
|
||||||
|
# endif
|
||||||
|
|
||||||
|
, RALT_T ( KC_RIGHT )
|
||||||
|
// , , -*- , <|,> , -*- , ,
|
||||||
|
// <1 ± ± , <2 , <3 , <4 |, 4> , 3> , 2> , ± ± 1>
|
||||||
|
|
||||||
|
),
|
||||||
|
|
||||||
|
|
||||||
|
/* ⬆⬇ */
|
|
@ -0,0 +1,52 @@
|
||||||
|
/*
|
||||||
|
* License (GPL):
|
||||||
|
|
||||||
|
This program is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation, either version 2 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
* Author: © 2021 by Jos Boersema
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
// --------------------------------------v---------------------------------------
|
||||||
|
// Configuration:
|
||||||
|
// --------------------------------------v---------------------------------------
|
||||||
|
|
||||||
|
/* Harmonize layout with a Latin layout
|
||||||
|
*
|
||||||
|
* See base_hebrew.md for design objectives.
|
||||||
|
*/
|
||||||
|
#define HEBREW_ISRAEL // Close to standard Israeli hebrew.
|
||||||
|
//#define HEBREW_QWERTY // Harmonize punctuation symbols with Qwerty.
|
||||||
|
//#define HEBREW_DVORAK // Harmonize punctuation symbols with Dvorak.
|
||||||
|
|
||||||
|
// --------------------------------------^---------------------------------------
|
||||||
|
// Below here no more comfortable configuration options.....
|
||||||
|
// --------------------------------------^---------------------------------------
|
||||||
|
|
||||||
|
/* Redefine a layer in this file
|
||||||
|
*
|
||||||
|
* _Activate_ one or more of the below BASESFILE_LAYER_..., to redefine the layer
|
||||||
|
* in this file. The version in ./keymap.c will be ignored. Keep in mind to use
|
||||||
|
* transparent keys (_______) for “hold” layer switch keys on the BASE map, for
|
||||||
|
* your new layer.
|
||||||
|
*/
|
||||||
|
// #define BASESFILE_LAYER_ACC
|
||||||
|
// #define BASESFILE_LAYER_DRA
|
||||||
|
// #define BASESFILE_LAYER_BON
|
||||||
|
// #define BASESFILE_LAYER_PAD
|
||||||
|
// #define BASESFILE_LAYER_MOV
|
||||||
|
// #define BASESFILE_LAYER_RAR
|
||||||
|
// #define BASESFILE_LAYER_FUN
|
198
keyboards/thevankeyboards/minivan/keymaps/josjoha/base_hebrew.md
Normal file
198
keyboards/thevankeyboards/minivan/keymaps/josjoha/base_hebrew.md
Normal file
|
@ -0,0 +1,198 @@
|
||||||
|
# Minifan layout
|
||||||
|
|
||||||
|
Compiled for: Hebrew
|
||||||
|
====================
|
||||||
|
|
||||||
|
This file details the compile version `#define BASE_HEBREW__DEF_BASE,
|
||||||
|
BASE_HEBREW__ALT_BASE`. This is a basic Hebrew layout, without niqqud.
|
||||||
|
|
||||||
|
Only the most common symbols are implemented. Hebrew symbols are all
|
||||||
|
done in Unicode.
|
||||||
|
|
||||||
|
See also ![./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
|
||||||
|
---------------------------------------------------------------------------
|
||||||
|
(…)
|
||||||
|
- - -
|
|
@ -18,6 +18,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
// --------------------------------------v---------------------------------------
|
// --------------------------------------v---------------------------------------
|
||||||
// Configuration:
|
// Configuration:
|
||||||
// --------------------------------------v---------------------------------------
|
// --------------------------------------v---------------------------------------
|
||||||
|
|
|
@ -18,6 +18,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
// --------------------------------------v---------------------------------------
|
// --------------------------------------v---------------------------------------
|
||||||
// Configuration:
|
// Configuration:
|
||||||
// --------------------------------------v---------------------------------------
|
// --------------------------------------v---------------------------------------
|
||||||
|
|
|
@ -146,7 +146,7 @@ bool led_middle_on = TRUE; // Set to off later, if startup setting is off.
|
||||||
bool isolate_trigger = FALSE; // detects if _FUN layer move was pressed, and no other key (no normal use of Shift).
|
bool isolate_trigger = FALSE; // detects if _FUN layer move was pressed, and no other key (no normal use of Shift).
|
||||||
bool capslock; // keeps track of capslock state
|
bool capslock; // keeps track of capslock state
|
||||||
bool numlock; // keeps track of numlock state
|
bool numlock; // keeps track of numlock state
|
||||||
layer_state_t state_recall; // We are calling the function set_led_colors_ from this file as well.
|
//layer_state_t state_recall; // We are calling the function set_led_colors_ from this file as well.
|
||||||
// speed measuring
|
// speed measuring
|
||||||
bool speed_measure = SPEED_INIT_VALUE; // feature activated or not on startup
|
bool speed_measure = SPEED_INIT_VALUE; // feature activated or not on startup
|
||||||
uint32_t speed_counttime; // counts the time
|
uint32_t speed_counttime; // counts the time
|
||||||
|
@ -289,8 +289,8 @@ void speed_led (int speed) {
|
||||||
|
|
||||||
// do this in one place to handle left/right leds being off here
|
// do this in one place to handle left/right leds being off here
|
||||||
void isolate_rgblight_set () {
|
void isolate_rgblight_set () {
|
||||||
# ifdef RGBLIGHT_ENABLE
|
|
||||||
|
|
||||||
|
# ifdef RGBLIGHT_ENABLE
|
||||||
if (!leds_on) { // left/right leds are off
|
if (!leds_on) { // left/right leds are off
|
||||||
// overwrite previously colors
|
// overwrite previously colors
|
||||||
uint8_t led0r = 0; uint8_t led0g = 0; uint8_t led0b = 0;
|
uint8_t led0r = 0; uint8_t led0g = 0; uint8_t led0b = 0;
|
||||||
|
@ -305,8 +305,8 @@ void isolate_rgblight_set () {
|
||||||
setrgb(led2r, led2g, led2b, (LED_TYPE *)&led[2]); // Led 2
|
setrgb(led2r, led2g, led2b, (LED_TYPE *)&led[2]); // Led 2
|
||||||
}
|
}
|
||||||
rgblight_set ();
|
rgblight_set ();
|
||||||
|
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -335,7 +335,7 @@ void indicate_fun_stay (void) {
|
||||||
|
|
||||||
|
|
||||||
// _RAR layer leds
|
// _RAR layer leds
|
||||||
// It is a function because this is called when the Base layer OTHER_BASE key is pressed
|
// It is a function because this is also called when the Base layer OTHER_BASE key is pressed
|
||||||
void indicate_base (void) {
|
void indicate_base (void) {
|
||||||
# ifdef RGBLIGHT_ENABLE
|
# ifdef RGBLIGHT_ENABLE
|
||||||
|
|
||||||
|
@ -614,6 +614,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
# include "./base_numpad.c" // Numbers pad
|
# include "./base_numpad.c" // Numbers pad
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
|
// * Hebrew *
|
||||||
|
# if defined(BASE_HEBREW__DEF_BASE) || defined(BASE_HEBREW__ALT_BASE)
|
||||||
|
# include "./base_hebrew.c" // Hebrew
|
||||||
|
# endif
|
||||||
|
|
||||||
// // ⬇ insert your ./base_YOUR_KEYMAP.c #include here:
|
// // ⬇ insert your ./base_YOUR_KEYMAP.c #include here:
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -17,22 +17,26 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
* © 2020,2021 by Jos Boersema
|
* © 2020,2021 by Jos Boersema
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* If MINIFAN_CONFIG_COMPACT in ./user_config.h ⬇
|
* If MINIFAN_CONFIG_COMPACT in ./user_config.h ⬇
|
||||||
*/
|
*/
|
||||||
|
|
||||||
//#define BASE_QWERTY__DEF_BASE
|
//#define BASE_QWERTY__DEF_BASE
|
||||||
//#define BASE_QWERTY__ALT_BASE
|
//#define BASE_QWERTY__ALT_BASE
|
||||||
//#define BASE_QWERTY_BASEARROW__DEF_BASE
|
//#define BASE_QWERTY_BASEARROW__DEF_BASE // ➡ base_qwerty_basearrow.h
|
||||||
//#define BASE_QWERTY_BASEARROW__ALT_BASE
|
//#define BASE_QWERTY_BASEARROW__ALT_BASE // ➡ base_qwerty_basearrow.h
|
||||||
#define BASE_DVORAK__DEF_BASE
|
#define BASE_DVORAK__DEF_BASE
|
||||||
//#define BASE_DVORAK__ALT_BASE
|
//#define BASE_DVORAK__ALT_BASE
|
||||||
#define BASE_DVORAK_DESCRAMBLE__ALT_BASE
|
//#define BASE_DVORAK_DESCRAMBLE__ALT_BASE
|
||||||
//#define BASE_COLEMAK__DEF_BASE
|
//#define BASE_COLEMAK__DEF_BASE
|
||||||
//#define BASE_COLEMAK__ALT_BASE
|
//#define BASE_COLEMAK__ALT_BASE
|
||||||
//#define BASE_WORKMAN__DEF_BASE
|
//#define BASE_WORKMAN__DEF_BASE
|
||||||
//#define BASE_WORKMAN__ALT_BASE
|
//#define BASE_WORKMAN__ALT_BASE
|
||||||
//#define BASE_NUMPAD__ALT_BASE
|
//#define BASE_NUMPAD__ALT_BASE // ➡ base_numpad.h
|
||||||
|
//#define BASE_HEBREW__DEF_BASE // ➡ base_hebrew.h
|
||||||
|
#define BASE_HEBREW__ALT_BASE // ➡ base_hebrew.h
|
||||||
|
|
||||||
//#define MINIFAN_SINGLE_LAYOUT
|
//#define MINIFAN_SINGLE_LAYOUT
|
||||||
|
|
||||||
|
@ -66,7 +70,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
#define ARROWS_TRIANGLE
|
#define ARROWS_TRIANGLE
|
||||||
//#define VI_SWITCHERYDOO
|
//#define VI_SWITCHERYDOO
|
||||||
|
|
||||||
//#define NUMPAD_COMMON_SQUARE
|
#define NUMPAD_COMMON_SQUARE
|
||||||
|
|
||||||
#define SPEED_COUNTDOWN 25
|
#define SPEED_COUNTDOWN 25
|
||||||
#define SPEED_HUE_STEP 8
|
#define SPEED_HUE_STEP 8
|
||||||
|
@ -100,5 +104,5 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
#define FULL_DRA_4THROW
|
#define FULL_DRA_4THROW
|
||||||
#define FULL_BON_4THROW
|
#define FULL_BON_4THROW
|
||||||
|
|
||||||
#define LEDS_OFF_BASE_DEF
|
//#define LEDS_OFF_BASE_DEF
|
||||||
#define LEDS_OFF_BASE_ALT
|
//#define LEDS_OFF_BASE_ALT
|
||||||
|
|
|
@ -3,7 +3,7 @@ A 40% keyboard made first by TheVan Keyboards
|
||||||
_https://thevankeyboards.com_ now taken over by TKC
|
_https://thevankeyboards.com_ now taken over by TKC
|
||||||
_https://thekey.company_
|
_https://thekey.company_
|
||||||
|
|
||||||
![Minivan layout all](http://socialism.nl/misc/minivan/minivan-all-layers-visualization_vc.jpg)
|
![Minivan layout all](http://socialism.nl/misc/minivan/minivan-all-layers-visualization_vd.jpg)
|
||||||
|
|
||||||
Table of Contents
|
Table of Contents
|
||||||
=================
|
=================
|
||||||
|
@ -22,6 +22,8 @@ Table of Contents
|
||||||
3.1.6 Workman
|
3.1.6 Workman
|
||||||
3.2 Special layouts
|
3.2 Special layouts
|
||||||
3.2.1 Numbers pad
|
3.2.1 Numbers pad
|
||||||
|
3.3 Non-Latin languages
|
||||||
|
3.3.1 Hebrew
|
||||||
4 The common system
|
4 The common system
|
||||||
4.1 Layer access
|
4.1 Layer access
|
||||||
4.2 Layout in graphics
|
4.2 Layout in graphics
|
||||||
|
@ -108,7 +110,7 @@ the western European group of languages, native from the keyboard.
|
||||||
This keymap might not function as expected if you want to use a
|
This keymap might not function as expected if you want to use a
|
||||||
different keyboard language setting in your operating system.
|
different keyboard language setting in your operating system.
|
||||||
|
|
||||||
See also chapter 6 _Language support_.
|
See also chapter 7 _Language support_.
|
||||||
|
|
||||||
2 'make' example
|
2 'make' example
|
||||||
================
|
================
|
||||||
|
@ -195,6 +197,17 @@ with a normal layout on ‛Default’. How this works is explained below.
|
||||||
For the readme about the Numpad version, see ➡ ![base_numpad.md](./base_numpad.md) ⬅
|
For the readme about the Numpad version, see ➡ ![base_numpad.md](./base_numpad.md) ⬅
|
||||||
|
|
||||||
|
|
||||||
|
3.3 Non-Latin languages
|
||||||
|
=======================
|
||||||
|
|
||||||
|
3.3.1 Hebrew
|
||||||
|
------------
|
||||||
|
|
||||||
|
![Minivan layout impression](http://socialism.nl/misc/minivan/minivan_keycapview_hebrew_vc.jpg)
|
||||||
|
|
||||||
|
For the readme about the Hebrew version, see ➡ ![base_hebrew.md](./base_hebrew.md) ⬅
|
||||||
|
|
||||||
|
|
||||||
4 The common system
|
4 The common system
|
||||||
===================
|
===================
|
||||||
|
|
||||||
|
@ -1053,7 +1066,9 @@ You can remove the layers `_ACC`, `_DRA` and/or `_BON` (see
|
||||||
|
|
||||||
You can remove a set of symbols from one or more of Unicode layers,
|
You can remove a set of symbols from one or more of Unicode layers,
|
||||||
such as not having box drawing characters on `_BON`, or no sub-script
|
such as not having box drawing characters on `_BON`, or no sub-script
|
||||||
numbers on `_DRA`.
|
numbers on `_DRA` (see ![./user_config.h](./user_config.h) under
|
||||||
|
`Eviscerations ②/②` ) ⬅
|
||||||
|
|
||||||
|
|
||||||
12 Key associations
|
12 Key associations
|
||||||
===================
|
===================
|
||||||
|
|
|
@ -0,0 +1,116 @@
|
||||||
|
/*
|
||||||
|
* License (GPL):
|
||||||
|
|
||||||
|
This program is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation, either version 2 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
* Author: © 2021 by Jos Boersema
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
/* An amount of Unicode #defines
|
||||||
|
* - hebrew
|
||||||
|
*/
|
||||||
|
|
||||||
|
//
|
||||||
|
#define HB_ALEF 0x05D0 // 'HB' for 'Hebrew', "ALEF" for Alef : א
|
||||||
|
#define HB_BET 0x05D1 // " , "BET" for Bet : ב
|
||||||
|
#define HB_GIMEL 0x05D2 // " , "GIMEL" for Gimel : ג
|
||||||
|
#define HB_DALET 0x05D3 // " , "DALET" for Daled : ד
|
||||||
|
#define HB_HE 0x05D4 // " , "HE" for He : ה
|
||||||
|
#define HB_VAV 0x05D5 // " , "VAV" for Vav : ו
|
||||||
|
#define HB_ZAYIN 0x05D6 // " , "ZAYIN" for Zayin : ז
|
||||||
|
#define HB_GET 0x05D7 // " , "HET" for Het : ח
|
||||||
|
#define HB_TET 0x05D8 // " , "TET" for Tet : ט
|
||||||
|
#define HB_YOD 0x05D9 // " , "YOD" for Yod : י
|
||||||
|
#define HB_KAFS 0x05DA // " , "KAFS" for Kaf sofiet : ך
|
||||||
|
#define HB_KAF 0x05DB // " , "KAF" for Kaf : כ
|
||||||
|
#define HB_LAMED 0x05DC // " , "LAMED" for Lamed : ל
|
||||||
|
#define HB_MEMS 0x05DD // " , "MEMS" for Mem sofiet : ם
|
||||||
|
#define HB_MEM 0x05DE // " , "MEM" for Mem : מ
|
||||||
|
#define HB_NUNS 0x05DF // " , "NUNS" for Nun sofiet : ן
|
||||||
|
#define HB_NUN 0x05E0 // " , "NUN" for Nun : נ
|
||||||
|
#define HB_SAMEG 0x05E1 // " , "SAMEG" for Sameg : ס
|
||||||
|
#define HB_AYIN 0x05E2 // " , "AYIN" for Ayin : ע
|
||||||
|
#define HB_PES 0x05E3 // " , "PES" for Pe sofiet : ף
|
||||||
|
#define HB_PE 0x05E4 // " , "PE" for Pe : פ
|
||||||
|
#define HB_TSDIS 0x05E5 // " , "TSDIS" for Tsadi sofiet: ץ
|
||||||
|
#define HB_TSADI 0x05E6 // " , "TSADI" for Tsadi : צ
|
||||||
|
#define HB_QOF 0x05E7 // " , "QOF" for Qof : ק
|
||||||
|
#define HB_RESH 0x05E8 // " , "RESH" for Resh : ר
|
||||||
|
#define HB_SHIN 0x05E9 // " , "SHIN" for Shin : ש
|
||||||
|
#define HB_TAV 0x05EA // " , "TAV" for Tav : ת
|
||||||
|
#define HB_MAQAF 0x05be // " , "MAQAF" for Maqaf : ־
|
||||||
|
|
||||||
|
// Yiddish digraphs:
|
||||||
|
//#define HB_D_VAV 0x05F0 // " , "D_VAV" for double Van : װ
|
||||||
|
//#define HB_VAVYD 0x05F1 // " , "VAVYD" for Vav Yod : ױ
|
||||||
|
//#define HB_D_YOD 0x05F2 // " , "D_YOD" for double Yod : ײ
|
||||||
|
|
||||||
|
// special
|
||||||
|
#define HB_RLM 0x200F // " , "RLM" for Right-Left-Mark: <non-printing>
|
||||||
|
#define HB_LRM 0x200E // " , "LRM" for Left-Right-Mark: <non-printing>
|
||||||
|
|
||||||
|
|
||||||
|
// The below are displacing symbols on other layers, some of which are quite obscure
|
||||||
|
// and end up being unused. They are compiled based on a #define.
|
||||||
|
// These where reported as symbols present on hebrew keyboards:
|
||||||
|
// U+05F3 : HEBREW PUNCTUATION GERESH
|
||||||
|
// U+20AC : EURO SIGN
|
||||||
|
// U+20AA : NEW SHEQEL SIGN {shekel}
|
||||||
|
// U+00B0 : DEGREE SIGN
|
||||||
|
// U+05AB : HEBREW ACCENT OLE
|
||||||
|
// U+05BD : HEBREW POINT METEG {siluq}
|
||||||
|
// U+00D7 : MULTIPLICATION SIGN {z notation Cartesian product}
|
||||||
|
// U+200E : LEFT-TO-RIGHT MARK [LRM]
|
||||||
|
// U+200F : RIGHT-TO-LEFT MARK [RLM]
|
||||||
|
// U+05BE : HEBREW PUNCTUATION MAQAF
|
||||||
|
// U+2013 : EN DASH
|
||||||
|
// U+05C2 : HEBREW POINT SIN DOT
|
||||||
|
// U+05C1 : HEBREW POINT SHIN DOT
|
||||||
|
// U+05B8 : HEBREW POINT QAMATS
|
||||||
|
// U+05F0 : HEBREW LIGATURE YIDDISH DOUBLE VAV {tsvey vovn}
|
||||||
|
// U+05B9 : HEBREW POINT HOLAM
|
||||||
|
// U+05B7 : HEBREW POINT PATAH
|
||||||
|
// U+05B2 : HEBREW POINT HATAF PATAH
|
||||||
|
// U+05F1 : HEBREW LIGATURE YIDDISH VAV YOD
|
||||||
|
// U+05F2 : HEBREW LIGATURE YIDDISH DOUBLE YOD {tsvey yudn}
|
||||||
|
// U+05B4 : HEBREW POINT HIRIQ
|
||||||
|
// U+201D : RIGHT DOUBLE QUOTATION MARK {double comma quotation mark}
|
||||||
|
// U+201E : DOUBLE LOW-9 QUOTATION MARK {low double comma quotation mark}
|
||||||
|
// U+05F4 : HEBREW PUNCTUATION GERSHAYIM
|
||||||
|
// U+05B6 : HEBREW POINT SEGOL
|
||||||
|
// U+05B1 : HEBREW POINT HATAF SEGOL
|
||||||
|
// U+05B5 : HEBREW POINT TSERE
|
||||||
|
// U+2019 : RIGHT SINGLE QUOTATION MARK {single comma quotation mark}
|
||||||
|
// U+201A : SINGLE LOW-9 QUOTATION MARK {low single comma quotation mark}
|
||||||
|
// U+00F7 : DIVISION SIGN {obelus}
|
||||||
|
// U+05BA : HEBREW POINT HOLAM HASER FOR VAV
|
||||||
|
// U+200D : ZERO WIDTH JOINER [ZWJ]
|
||||||
|
// U+201C : LEFT DOUBLE QUOTATION MARK {double turned comma quotation mark}
|
||||||
|
// U+201D : RIGHT DOUBLE QUOTATION MARK {double comma quotation mark}
|
||||||
|
// U+034F : COMBINING GRAPHEME JOINER [CGJ]
|
||||||
|
// U+05C6 : HEBREW PUNCTUATION NUN HAFUKHA
|
||||||
|
// U+200C : ZERO WIDTH NON-JOINER [ZWNJ]
|
||||||
|
// U+2018 : LEFT SINGLE QUOTATION MARK {single turned comma quotation mark}
|
||||||
|
// U+2019 : RIGHT SINGLE QUOTATION MARK {single comma quotation mark}
|
||||||
|
// Note: many modifiers probably only work with a hebrew language setting on the computer
|
||||||
|
// operating system. As Unicode, it would print a disconnected diacretical symbol.
|
||||||
|
|
||||||
|
// Geresh
|
||||||
|
#define HB_GERSH 0x05F3 // " , "GERSH" for Geresh :
|
||||||
|
#define HB_GRSHM 0x05F4 // " , "GRSHM" for Gershayim :
|
||||||
|
// Currency
|
||||||
|
#define HB_SHEKL 0x20AA // " , "SHEKL" for shekel :
|
|
@ -24,6 +24,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
#include "./unicode_macros.h"
|
#include "./unicode_macros.h"
|
||||||
#include "./unicode_weurope.h"
|
#include "./unicode_weurope.h"
|
||||||
|
#include "./unicode_hebrew.h"
|
||||||
|
|
||||||
// Definition of ƒ (Dutch currency symbol).
|
// Definition of ƒ (Dutch currency symbol).
|
||||||
// Best changed in user_config.h, if you like a Euro symbol instead.
|
// Best changed in user_config.h, if you like a Euro symbol instead.
|
||||||
|
@ -277,6 +278,47 @@ enum custom_keycodes {
|
||||||
XP_BON_CI,
|
XP_BON_CI,
|
||||||
XP_BON_CJ,
|
XP_BON_CJ,
|
||||||
# endif // REMOVE_BON
|
# endif // REMOVE_BON
|
||||||
|
|
||||||
|
// Hebrew
|
||||||
|
# if defined(BASE_HEBREW__DEF_BASE) || defined(BASE_HEBREW__ALT_BASE)
|
||||||
|
XP_HEB_AA,
|
||||||
|
XP_HEB_AB,
|
||||||
|
XP_HEB_AC,
|
||||||
|
XP_HEB_AD,
|
||||||
|
XP_HEB_AE,
|
||||||
|
XP_HEB_AF,
|
||||||
|
XP_HEB_AG,
|
||||||
|
XP_HEB_AH,
|
||||||
|
XP_HEB_AI,
|
||||||
|
XP_HEB_AJ,
|
||||||
|
XP_HEB_BA,
|
||||||
|
XP_HEB_BB,
|
||||||
|
XP_HEB_BC,
|
||||||
|
XP_HEB_BD,
|
||||||
|
XP_HEB_BE,
|
||||||
|
XP_HEB_BF,
|
||||||
|
XP_HEB_BG,
|
||||||
|
XP_HEB_BH,
|
||||||
|
XP_HEB_BI,
|
||||||
|
XP_HEB_BJ,
|
||||||
|
# if defined(HEBREW_ISRAEL)
|
||||||
|
XP_HEB_BK, //
|
||||||
|
# endif
|
||||||
|
XP_HEB_CA,
|
||||||
|
XP_HEB_CB,
|
||||||
|
XP_HEB_CC,
|
||||||
|
XP_HEB_CD,
|
||||||
|
XP_HEB_CE,
|
||||||
|
XP_HEB_CF,
|
||||||
|
XP_HEB_CG,
|
||||||
|
# if defined(HEBREW_ISRAEL) || defined(HEBREW_DVORAK)
|
||||||
|
XP_HEB_CH,
|
||||||
|
XP_HEB_CI,
|
||||||
|
XP_HEB_CJ,
|
||||||
|
# endif
|
||||||
|
XP_HEB_MQF, // ־
|
||||||
|
# endif //BASE_HEBREW__*
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
// Pre-existing function, called for every key up and down.
|
// Pre-existing function, called for every key up and down.
|
||||||
|
@ -1244,12 +1286,17 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||||
|
|
||||||
case LEDS_ON: // Toggles left/right leds on or off
|
case LEDS_ON: // Toggles left/right leds on or off
|
||||||
if (record->event.pressed) { // key down
|
if (record->event.pressed) { // key down
|
||||||
|
|
||||||
|
# ifdef RGBLIGHT_ENABLE
|
||||||
if (leds_on == FALSE) {
|
if (leds_on == FALSE) {
|
||||||
leds_on = TRUE;
|
leds_on = TRUE;
|
||||||
}else{
|
}else{
|
||||||
leds_on = FALSE;
|
leds_on = FALSE;
|
||||||
}
|
}
|
||||||
|
set_led_colors_ (state_recall); // Update leds
|
||||||
}
|
}
|
||||||
|
# endif
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
# ifdef LEDS_OFF_BASE_DEF // This messes with led effect on/off, so we need to track the state of this setting now.
|
# ifdef LEDS_OFF_BASE_DEF // This messes with led effect on/off, so we need to track the state of this setting now.
|
||||||
|
@ -1652,11 +1699,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||||
case XP_DRA_AA: // because '", the opening „“ at the ‛open’ of the keyboard (left/up)
|
case XP_DRA_AA: // because '", the opening „“ at the ‛open’ of the keyboard (left/up)
|
||||||
if (record->event.pressed) { // key down
|
if (record->event.pressed) { // key down
|
||||||
|
|
||||||
# ifdef FULL_DRA_4THROW
|
|
||||||
unicode_hex2output (CS_DQUHR, CS_DQUL);// “ „
|
unicode_hex2output (CS_DQUHR, CS_DQUL);// “ „
|
||||||
# else
|
|
||||||
unicode_hex2output_single (CS_DQUHR);// “
|
|
||||||
# endif
|
|
||||||
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
@ -1664,11 +1707,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||||
case XP_DRA_AB: // because to the right of opening “, ≤ on <
|
case XP_DRA_AB: // because to the right of opening “, ≤ on <
|
||||||
if (record->event.pressed) { // key down
|
if (record->event.pressed) { // key down
|
||||||
|
|
||||||
# ifdef FULL_DRA_4THROW
|
|
||||||
unicode_hex2output (CS_DQUH, CS_ELTHAN);// ” ≤
|
unicode_hex2output (CS_DQUH, CS_ELTHAN);// ” ≤
|
||||||
# else
|
|
||||||
unicode_hex2output_single (CS_DQUH);// ”
|
|
||||||
# endif
|
|
||||||
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
@ -1676,11 +1715,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||||
case XP_DRA_AC: // because this is where the £ is on an English keyboard, on 'any' money symbols ¤; ≥ on >
|
case XP_DRA_AC: // because this is where the £ is on an English keyboard, on 'any' money symbols ¤; ≥ on >
|
||||||
if (record->event.pressed) { // key down
|
if (record->event.pressed) { // key down
|
||||||
|
|
||||||
# ifdef FULL_DRA_4THROW
|
|
||||||
unicode_hex2output (CS_POUND, CS_EGTHAN);// £ ≥
|
unicode_hex2output (CS_POUND, CS_EGTHAN);// £ ≥
|
||||||
# else
|
|
||||||
unicode_hex2output_single (CS_POUND);// £
|
|
||||||
# endif
|
|
||||||
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
@ -1690,6 +1725,8 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||||
|
|
||||||
# ifdef FULL_DRA_4THROW
|
# ifdef FULL_DRA_4THROW
|
||||||
unicode_hex2output (CS_NONE, CS_CENT);// ∅ ¢
|
unicode_hex2output (CS_NONE, CS_CENT);// ∅ ¢
|
||||||
|
# else
|
||||||
|
unicode_hex2output_single (CS_NONE);// ∅ ¢
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -1710,11 +1747,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||||
case XP_DRA_AF: // Because left of 🙂, on top of ★
|
case XP_DRA_AF: // Because left of 🙂, on top of ★
|
||||||
if (record->event.pressed) { // key down
|
if (record->event.pressed) { // key down
|
||||||
|
|
||||||
# ifdef FULL_DRA_4THROW
|
|
||||||
unicode_hex2output (CS_FLEUR, CS_HEART);// ❦ ♥
|
unicode_hex2output (CS_FLEUR, CS_HEART);// ❦ ♥
|
||||||
# else
|
|
||||||
unicode_hex2output_single (CS_HEART);// ♥
|
|
||||||
# endif
|
|
||||||
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
@ -1722,9 +1755,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||||
case XP_DRA_AG: // because 😊 ⍨
|
case XP_DRA_AG: // because 😊 ⍨
|
||||||
if (record->event.pressed) { // key down
|
if (record->event.pressed) { // key down
|
||||||
|
|
||||||
# ifdef FULL_DRA_4THROW
|
|
||||||
unicode_hex2output (CS_SMIL, CS_SAD_);// 🙂 🙁
|
unicode_hex2output (CS_SMIL, CS_SAD_);// 🙂 🙁
|
||||||
# endif
|
|
||||||
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
@ -1732,9 +1763,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||||
case XP_DRA_AH: // because «no reason», next to 😊 (emoticons)
|
case XP_DRA_AH: // because «no reason», next to 😊 (emoticons)
|
||||||
if (record->event.pressed) { // key down
|
if (record->event.pressed) { // key down
|
||||||
|
|
||||||
# ifdef FULL_DRA_4THROW
|
|
||||||
unicode_hex2output (CS_THUP, CS_THDN);// 👍 👎
|
unicode_hex2output (CS_THUP, CS_THDN);// 👍 👎
|
||||||
# endif
|
|
||||||
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
@ -2343,6 +2372,299 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||||
break;
|
break;
|
||||||
|
|
||||||
# endif // REMOVE_BON
|
# endif // REMOVE_BON
|
||||||
|
|
||||||
|
// Hebrew
|
||||||
|
# if defined(BASE_HEBREW__DEF_BASE) || defined(BASE_HEBREW__ALT_BASE)
|
||||||
|
// The layout follows a standard hebrew keyboard, with the exception
|
||||||
|
// of ק, which is displaced by “.>” copied from the Dvorak layout.
|
||||||
|
|
||||||
|
// HEBREW_DVORAK
|
||||||
|
// These letters on the upper left follow Dvorak layout.
|
||||||
|
// The reason is space on the device: these are not macros.
|
||||||
|
// Also: typing compatibility between Dvorak and Hebrew
|
||||||
|
// for these similar/same symbols: ,<.>. Idealy these symbols
|
||||||
|
// should be the hebrew variation, if space allows it.
|
||||||
|
|
||||||
|
# if defined(HEBREW_ISRAEL)
|
||||||
|
|
||||||
|
case XP_HEB_AA: //
|
||||||
|
if (record->event.pressed) { // key down
|
||||||
|
// These shifts-up seem to work on GNU/Debian/Linux, otherwise it prints ':'
|
||||||
|
if (shift_ison) send_string ( SS_UP(X_RSFT) SS_UP(X_LSFT) ";" ); // moved here from <esc> on standard hebrew
|
||||||
|
else send_string ("/");//
|
||||||
|
} break;
|
||||||
|
|
||||||
|
case XP_HEB_AB: //
|
||||||
|
if (record->event.pressed) { // key down
|
||||||
|
unicode_hex2output_single (HB_GERSH);// ׳
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case XP_HEB_AC: //
|
||||||
|
if (record->event.pressed) { // key down
|
||||||
|
unicode_hex2output_single (HB_QOF);// ק
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
# elif defined(HEBREW_QWERTY)
|
||||||
|
|
||||||
|
case XP_HEB_AA: //
|
||||||
|
if (record->event.pressed) { // key down
|
||||||
|
unicode_hex2output_single (HB_TAV);// ת
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case XP_HEB_AB: //
|
||||||
|
if (record->event.pressed) { // key down
|
||||||
|
unicode_hex2output_single (HB_TSDIS);// ץ
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case XP_HEB_AC: //
|
||||||
|
if (record->event.pressed) { // key down
|
||||||
|
unicode_hex2output_single (HB_QOF);// ק
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
# endif // #HEBREW_*
|
||||||
|
|
||||||
|
case XP_HEB_AD: //
|
||||||
|
if (record->event.pressed) { // key down
|
||||||
|
unicode_hex2output_single (HB_RESH);// ר
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case XP_HEB_AE: //
|
||||||
|
if (record->event.pressed) { // key down
|
||||||
|
unicode_hex2output_single (HB_ALEF);// א
|
||||||
|
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case XP_HEB_AF: //
|
||||||
|
if (record->event.pressed) { // key down
|
||||||
|
unicode_hex2output_single (HB_TET);// ט
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case XP_HEB_AG: //
|
||||||
|
if (record->event.pressed) { // key down
|
||||||
|
unicode_hex2output_single (HB_VAV);// ו
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case XP_HEB_AH: //
|
||||||
|
if (record->event.pressed) { // key down
|
||||||
|
unicode_hex2output_single (HB_NUNS);// ן
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case XP_HEB_AI:
|
||||||
|
if (record->event.pressed) { // key down
|
||||||
|
|
||||||
|
# if defined(HEBREW_ISRAEL)
|
||||||
|
// The logic is that it mirrors '", “„, ”≤, ‛’ in Dvorak Base and other layers.
|
||||||
|
// Therefore the little and ring fingers are used. Mirroring ━─ and ┄┅ on DRA_
|
||||||
|
// layer, the outside on the keyboard is “big/fat”, the inside is “small/thin”,
|
||||||
|
// like something protected in a shell. Hence: ……׳״
|
||||||
|
unicode_hex2output_single (HB_MEMS);// ם // ׳ is located elsewhere
|
||||||
|
# elif defined(HEBREW_QWERTY) || defined(HEBREW_DVORAK)
|
||||||
|
unicode_hex2output (HB_MEMS, HB_GERSH);// ם׳
|
||||||
|
# endif
|
||||||
|
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case XP_HEB_AJ: //
|
||||||
|
if (record->event.pressed) { // key down
|
||||||
|
|
||||||
|
# if defined(HEBREW_ISRAEL)
|
||||||
|
unicode_hex2output_single (HB_PE);// פ // ״ is located elsewhere
|
||||||
|
# elif defined(HEBREW_QWERTY) || defined(HEBREW_DVORAK)
|
||||||
|
unicode_hex2output (HB_PE, HB_GRSHM);// פ״
|
||||||
|
# endif
|
||||||
|
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
// ------------------------- row 3
|
||||||
|
case XP_HEB_BA: //
|
||||||
|
if (record->event.pressed) { // key down
|
||||||
|
unicode_hex2output_single (HB_SHIN);// ש
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case XP_HEB_BB: //
|
||||||
|
if (record->event.pressed) { // key down
|
||||||
|
unicode_hex2output_single (HB_DALET);// ד
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case XP_HEB_BC: //Right-left-mark to the first free strong homerow finger on the left (middle)
|
||||||
|
if (record->event.pressed) { // key down
|
||||||
|
unicode_hex2output (HB_GIMEL, HB_RLM);// ג {RLM}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case XP_HEB_BD: // The logic is that כ is the same key as 4 on another layer, which connects
|
||||||
|
// with $, and other currencies in the same region (ģ).
|
||||||
|
if (record->event.pressed) { // key down
|
||||||
|
unicode_hex2output (HB_KAF, HB_SHEKL);// כ₪
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case XP_HEB_BE: //
|
||||||
|
if (record->event.pressed) { // key down
|
||||||
|
unicode_hex2output_single (HB_AYIN);// ע
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case XP_HEB_BF: //
|
||||||
|
if (record->event.pressed) { // key down
|
||||||
|
unicode_hex2output_single (HB_YOD);// י
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case XP_HEB_BG: //
|
||||||
|
if (record->event.pressed) { // key down
|
||||||
|
unicode_hex2output_single (HB_GET);// ח
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case XP_HEB_BH: //
|
||||||
|
if (record->event.pressed) { // key down
|
||||||
|
unicode_hex2output (HB_LAMED, HB_LRM);// ל {LRM}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case XP_HEB_BI: //
|
||||||
|
if (record->event.pressed) { // key down
|
||||||
|
unicode_hex2output_single (HB_KAFS);// ך
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case XP_HEB_BJ: //
|
||||||
|
if (record->event.pressed) { // key down
|
||||||
|
|
||||||
|
# if defined(HEBREW_ISRAEL) || defined(HEBREW_QWERTY)
|
||||||
|
if (shift_ison) send_string (":"); // : (the hebrew eqquivalent is apparently almost never used, and this saves space)
|
||||||
|
else unicode_hex2output_single (HB_PES);// ף
|
||||||
|
# elif defined(HEBREW_DVORAK)
|
||||||
|
unicode_hex2output_single (HB_PES);// ף
|
||||||
|
# endif
|
||||||
|
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
# if defined(HEBREW_ISRAEL)
|
||||||
|
case XP_HEB_BK: //
|
||||||
|
if (record->event.pressed) { // key down
|
||||||
|
if (shift_ison) unicode_hex2output_single (HB_GRSHM);// ״
|
||||||
|
else send_string (","); // comma
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
# endif
|
||||||
|
|
||||||
|
case XP_HEB_MQF: // ־ Maqaf
|
||||||
|
if (record->event.pressed) { // key down
|
||||||
|
unicode_hex2output_single (HB_MAQAF);// ־
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
// ------------------------- row 2
|
||||||
|
case XP_HEB_CA: //
|
||||||
|
if (record->event.pressed) { // key down
|
||||||
|
// Hebrew harmonization + ':'
|
||||||
|
# if defined(HEBREW_ISRAEL) || defined(HEBREW_QWERTY)
|
||||||
|
unicode_hex2output_single (HB_ZAYIN);// ז
|
||||||
|
# elif defined(HEBREW_DVORAK)
|
||||||
|
if (shift_ison) send_string (":"); //
|
||||||
|
else unicode_hex2output_single (HB_ZAYIN);// ז
|
||||||
|
# endif
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case XP_HEB_CB: //
|
||||||
|
if (record->event.pressed) { // key down
|
||||||
|
unicode_hex2output_single (HB_SAMEG);// ס
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case XP_HEB_CC: //
|
||||||
|
if (record->event.pressed) { // key down
|
||||||
|
unicode_hex2output_single (HB_BET);// ב
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case XP_HEB_CD: //
|
||||||
|
if (record->event.pressed) { // key down
|
||||||
|
unicode_hex2output_single (HB_HE);// ה
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case XP_HEB_CE: //
|
||||||
|
if (record->event.pressed) { // key down
|
||||||
|
unicode_hex2output_single (HB_NUN);// נ
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case XP_HEB_CF: //
|
||||||
|
if (record->event.pressed) { // key down
|
||||||
|
unicode_hex2output_single (HB_MEM);// מ
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case XP_HEB_CG: //
|
||||||
|
if (record->event.pressed) { // key down
|
||||||
|
unicode_hex2output_single (HB_TSADI);// צ
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
# if defined(HEBREW_ISRAEL) || defined(HEBREW_DVORAK)
|
||||||
|
case XP_HEB_CH: //
|
||||||
|
if (record->event.pressed) { // key down
|
||||||
|
|
||||||
|
# if defined(HEBREW_ISRAEL)
|
||||||
|
if (shift_ison) send_string ("<"); //
|
||||||
|
else unicode_hex2output_single (HB_TAV);// ת
|
||||||
|
# else // HEBREW_DVORAK
|
||||||
|
unicode_hex2output_single (HB_TAV);// ת
|
||||||
|
# endif
|
||||||
|
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case XP_HEB_CI: //
|
||||||
|
if (record->event.pressed) { // key down
|
||||||
|
|
||||||
|
# if defined(HEBREW_ISRAEL)
|
||||||
|
if (shift_ison) send_string (">"); //
|
||||||
|
else unicode_hex2output_single (HB_TSDIS);// ץ
|
||||||
|
# else // HEBREW_DVORAK
|
||||||
|
unicode_hex2output_single (HB_TSDIS);// ץ
|
||||||
|
# endif
|
||||||
|
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case XP_HEB_CJ: // anomaly
|
||||||
|
if (record->event.pressed) { // key down
|
||||||
|
|
||||||
|
# if defined(HEBREW_ISRAEL)
|
||||||
|
if (shift_ison) send_string ("?"); //
|
||||||
|
else send_string ("."); //
|
||||||
|
# else // HEBREW_DVORAK
|
||||||
|
unicode_hex2output_single (HB_QOF);// ק
|
||||||
|
# endif
|
||||||
|
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
# endif // HEBREW_*
|
||||||
|
|
||||||
|
// HB_D_VAV,
|
||||||
|
// HB_VAVYD,
|
||||||
|
// HB_D_YOD,
|
||||||
|
# endif // Hebrew Base layer
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
|
|
@ -30,6 +30,7 @@ static uint16_t key_timer; // Used in _DDL to differentiate layer switching in h
|
||||||
|
|
||||||
short duo_press_nsy_dra = 0; // This remembers how many of the duo-press keys are being pressed: _NSY / _DRA layers
|
short duo_press_nsy_dra = 0; // This remembers how many of the duo-press keys are being pressed: _NSY / _DRA layers
|
||||||
short duo_press_acc_bon = 0; // This remembers how many of the duo-press keys are being pressed: _ACC / _BON layers
|
short duo_press_acc_bon = 0; // This remembers how many of the duo-press keys are being pressed: _ACC / _BON layers
|
||||||
|
layer_state_t state_recall; // Also used when leds on/off is pressed
|
||||||
|
|
||||||
void deactivate_all_but (int layer);
|
void deactivate_all_but (int layer);
|
||||||
void activate_this_layer (int layer);
|
void activate_this_layer (int layer);
|
||||||
|
@ -40,5 +41,6 @@ void speed_led (int speed);
|
||||||
void indicate_fun_stay (void);
|
void indicate_fun_stay (void);
|
||||||
int write_number (long int input, short divide10);
|
int write_number (long int input, short divide10);
|
||||||
void isolate_rgblight_set (void);
|
void isolate_rgblight_set (void);
|
||||||
|
void set_led_colors_ (layer_state_t state);
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -18,6 +18,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
/* An amount of Unicode #defines
|
/* An amount of Unicode #defines
|
||||||
* - western european accented characters
|
* - western european accented characters
|
||||||
* - various punctuation symbols, different number formats, math symbols, other symbols.
|
* - various punctuation symbols, different number formats, math symbols, other symbols.
|
||||||
|
|
|
@ -18,6 +18,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
// ------------------------------------- ⬇ --------------------------------------
|
// ------------------------------------- ⬇ --------------------------------------
|
||||||
// Configuration:
|
// Configuration:
|
||||||
|
@ -47,6 +48,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
• Colemak
|
• Colemak
|
||||||
• Workman
|
• Workman
|
||||||
• Numpad
|
• Numpad
|
||||||
|
• Hebrew
|
||||||
|
|
||||||
-2- ➡ Eviscerations ( ① / ② ) ⬅
|
-2- ➡ Eviscerations ( ① / ② ) ⬅
|
||||||
• Single layout
|
• Single layout
|
||||||
|
@ -146,6 +148,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
// _Activate_ one of these two, _remove_ the other.
|
// _Activate_ one of these two, _remove_ the other.
|
||||||
//#define BASE_QWERTY_BASEARROW__DEF_BASE // _Activate_ if you want Qwerty with Base arrows on the ‛Default’ spot
|
//#define BASE_QWERTY_BASEARROW__DEF_BASE // _Activate_ if you want Qwerty with Base arrows on the ‛Default’ spot
|
||||||
//#define BASE_QWERTY_BASEARROW__ALT_BASE // _Activate_ if you want Qwerty with Base arrows on the ‛Alternate’ spot
|
//#define BASE_QWERTY_BASEARROW__ALT_BASE // _Activate_ if you want Qwerty with Base arrows on the ‛Alternate’ spot
|
||||||
|
// ➡ ➡ ➡ This Base layer has configuration options at the top of its file. See ./ base_qwerty_basearrow.h
|
||||||
//
|
//
|
||||||
// • Dvorak
|
// • Dvorak
|
||||||
// (a regular Dvorak layout)
|
// (a regular Dvorak layout)
|
||||||
|
@ -174,7 +177,14 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
// (a numerical keypad, one for left hand and one for right hand)
|
// (a numerical keypad, one for left hand and one for right hand)
|
||||||
// _Activate_ to get Numpad on Alternate. There is no option for Numpad on ‛Default’ base.
|
// _Activate_ to get Numpad on Alternate. There is no option for Numpad on ‛Default’ base.
|
||||||
#define BASE_NUMPAD__ALT_BASE // _Activate_ if you want Numpad on the ‛Alternate’ spot
|
#define BASE_NUMPAD__ALT_BASE // _Activate_ if you want Numpad on the ‛Alternate’ spot
|
||||||
// ➡ ➡ ➡ This Base layer has configuration options at the top of its file. See ./base_numpad.c
|
// ➡ ➡ ➡ This Base layer has configuration options at the top of its file. See ./base_numpad.h
|
||||||
|
//
|
||||||
|
// • Hebrew
|
||||||
|
// (a simple Hebrew layout)
|
||||||
|
// _Activate_ one of these two, _remove_ the other.
|
||||||
|
//#define BASE_HEBREW__DEF_BASE // _Activate_ if you want Hebrew on the ‛Default’ spot
|
||||||
|
//#define BASE_HEBREW__ALT_BASE // _Activate_ if you want Hebrew on the ‛Alternate’ spot
|
||||||
|
// ➡ ➡ ➡ This Base layer has configuration options at the top of its file. See ./base_hebrew.h
|
||||||
//
|
//
|
||||||
/* -2- ➡ Eviscerations ( ① / ② ) ⬅
|
/* -2- ➡ Eviscerations ( ① / ② ) ⬅
|
||||||
*/
|
*/
|
||||||
|
@ -517,12 +527,12 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
// Thinned out 2nd row: LSht ━ ─ ° • … ☐ ☑ ☑ ¿¡ ┄ ┅ RSht
|
// Thinned out 2nd row: LSht ━ ─ ° • … ☐ ☑ ☑ ¿¡ ┄ ┅ RSht
|
||||||
//
|
//
|
||||||
#define FULL_DRA_4THROW // _Activate_ to have symbols on all unshifted + shifted positions on _DRA, 4th row.
|
#define FULL_DRA_4THROW // _Activate_ to have symbols on all unshifted + shifted positions on _DRA, 4th row.
|
||||||
// Affected 4th row: „ ≤ ≥ ∅ ¢ ƒ ❦ 🙂 🙁 👍 👎 ⁽ ₍ ⁾ ₎
|
// Affected 4th row: ¢ ƒ ⁽ ₍ ⁾ ₎
|
||||||
// Full 4th row: BASE “„ ”≤ £≥ ∅ ¢ ±ƒ ❦ ♥ 🙂🙁 👍👎 ⁽₍ ⁾₎ Bkspc
|
// Full 4th row: BASE “„ ”≤ £≥ ∅ ¢ ±ƒ ❦ ♥ 🙂🙁 👍👎 ⁽₍ ⁾₎ Bkspc
|
||||||
// Thinned out 4th row: BASE “ ” £ ± ♥ Bkspc
|
// Thinned out 4th row: BASE “„ ”≤ £≥ ∅ ± ❦ ♥ 🙂🙁 👍👎 Bkspc
|
||||||
//
|
//
|
||||||
#define FULL_BON_4THROW // _Activate_ to have symbols on all unshifted + shifted positions on _BON, 4th row.
|
#define FULL_BON_4THROW // _Activate_ to have symbols on all unshifted + shifted positions on _BON, 4th row.
|
||||||
// Affected 4th row: 🛠 ¤ ∑ ‱ ٭ 😊 ⍨ ⃰ ⁻ ⁺ 🄯 ©
|
// Affected 4th row: 🛠 ¤ ∑ ‱ ٭ 😊 ⍨ ⃰ ⁻ ⁺ 🄯 © ⃰ √ ⁻⁺
|
||||||
// Full 4th row: BASE ‛🛠 ’⬆ ¤ 🄯 ∑ © ‰‱ ★٭ 😊⍨ × ⃰ √ ⁻⁺ Bkspc
|
// Full 4th row: BASE ‛🛠 ’⬆ ¤ 🄯 ∑ © ‰‱ ★٭ 😊⍨ × ⃰ √ ⁻⁺ Bkspc
|
||||||
// Thinned out 4th row: BASE ‛ ’⬆ ‰ ★ × Bkspc
|
// Thinned out 4th row: BASE ‛ ’⬆ ‰ ★ × Bkspc
|
||||||
//
|
//
|
||||||
|
@ -559,7 +569,11 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
# endif
|
# endif
|
||||||
// * Qwerty Base Arrow *
|
// * Qwerty Base Arrow *
|
||||||
# if defined(BASE_QWERTY_BASEARROW__DEF_BASE) || defined(BASE_QWERTY_BASEARROW__ALT_BASE)
|
# if defined(BASE_QWERTY_BASEARROW__DEF_BASE) || defined(BASE_QWERTY_BASEARROW__ALT_BASE)
|
||||||
# include "./base_qwerty_basearrow.h" // Your Keymap header/configuration file.
|
# include "./base_qwerty_basearrow.h" // qwerty base arrow, header
|
||||||
|
# endif
|
||||||
|
// * Hebrew *
|
||||||
|
# if defined(BASE_HEBREW__DEF_BASE) || defined(BASE_HEBREW__ALT_BASE)
|
||||||
|
# include "./base_hebrew.h" // Hebrew header
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
// // ⬇ insert your ./base_YOUR_KEYMAP.h #include here:
|
// // ⬇ insert your ./base_YOUR_KEYMAP.h #include here:
|
||||||
|
|
Loading…
Reference in New Issue
Block a user