diff options
Diffstat (limited to 'keyboards/thevankeyboards/minivan/keymaps/josjoha/unicode_macros.c')
| -rw-r--r-- | keyboards/thevankeyboards/minivan/keymaps/josjoha/unicode_macros.c | 546 |
1 files changed, 434 insertions, 112 deletions
diff --git a/keyboards/thevankeyboards/minivan/keymaps/josjoha/unicode_macros.c b/keyboards/thevankeyboards/minivan/keymaps/josjoha/unicode_macros.c index d711c86f9..cfcf765a0 100644 --- a/keyboards/thevankeyboards/minivan/keymaps/josjoha/unicode_macros.c +++ b/keyboards/thevankeyboards/minivan/keymaps/josjoha/unicode_macros.c | |||
| @@ -24,6 +24,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. | |||
| 24 | 24 | ||
| 25 | #include "./unicode_macros.h" | 25 | #include "./unicode_macros.h" |
| 26 | #include "./unicode_weurope.h" | 26 | #include "./unicode_weurope.h" |
| 27 | #include "./unicode_hebrew.h" | ||
| 27 | 28 | ||
| 28 | // Definition of ƒ (Dutch currency symbol). | 29 | // Definition of ƒ (Dutch currency symbol). |
| 29 | // Best changed in user_config.h, if you like a Euro symbol instead. | 30 | // Best changed in user_config.h, if you like a Euro symbol instead. |
| @@ -174,109 +175,150 @@ enum custom_keycodes { | |||
| 174 | 175 | ||
| 175 | // The _ACC layer, additional Unicode. | 176 | // The _ACC layer, additional Unicode. |
| 176 | # ifndef REMOVE_ACC // This cuts out the whole _ACC layer. | 177 | # ifndef REMOVE_ACC // This cuts out the whole _ACC layer. |
| 177 | XP_ACC_AA , | 178 | XP_ACC_AA, |
| 178 | XP_ACC_AB , | 179 | XP_ACC_AB, |
| 179 | XP_ACC_AC , | 180 | XP_ACC_AC, |
| 180 | XP_ACC_AD , | 181 | XP_ACC_AD, |
| 181 | XP_ACC_AE , | 182 | XP_ACC_AE, |
| 182 | XP_ACC_AF , | 183 | XP_ACC_AF, |
| 183 | XP_ACC_AG , | 184 | XP_ACC_AG, |
| 184 | XP_ACC_AH , | 185 | XP_ACC_AH, |
| 185 | XP_ACC_AI , | 186 | XP_ACC_AI, |
| 186 | XP_ACC_AJ , | 187 | XP_ACC_AJ, |
| 187 | XP_ACC_BA , | 188 | XP_ACC_BA, |
| 188 | XP_ACC_BB , | 189 | XP_ACC_BB, |
| 189 | XP_ACC_BC , | 190 | XP_ACC_BC, |
| 190 | XP_ACC_BD , | 191 | XP_ACC_BD, |
| 191 | XP_ACC_BE , | 192 | XP_ACC_BE, |
| 192 | XP_ACC_BF , | 193 | XP_ACC_BF, |
| 193 | XP_ACC_BG , | 194 | XP_ACC_BG, |
| 194 | XP_ACC_BH , | 195 | XP_ACC_BH, |
| 195 | XP_ACC_BI , | 196 | XP_ACC_BI, |
| 196 | XP_ACC_BJ , | 197 | XP_ACC_BJ, |
| 197 | XP_ACC_BK , | 198 | XP_ACC_BK, |
| 198 | XP_ACC_CA , | 199 | XP_ACC_CA, |
| 199 | XP_ACC_CB , | 200 | XP_ACC_CB, |
| 200 | XP_ACC_CC , | 201 | XP_ACC_CC, |
| 201 | XP_ACC_CD , | 202 | XP_ACC_CD, |
| 202 | XP_ACC_CE , | 203 | XP_ACC_CE, |
| 203 | XP_ACC_CF , | 204 | XP_ACC_CF, |
| 204 | XP_ACC_CG , | 205 | XP_ACC_CG, |
| 205 | XP_ACC_CH , | 206 | XP_ACC_CH, |
| 206 | XP_ACC_CI , | 207 | XP_ACC_CI, |
| 207 | XP_ACC_CJ , | 208 | XP_ACC_CJ, |
| 208 | # endif // REMOVE_ACC | 209 | # endif // REMOVE_ACC |
| 209 | 210 | ||
| 210 | # ifndef REMOVE_DRA // This cuts out the whole _DRA layer | 211 | # ifndef REMOVE_DRA // This cuts out the whole _DRA layer |
| 211 | // The _DRA layer, additional Unicode. | 212 | // The _DRA layer, additional Unicode. |
| 212 | XP_DRA_AA , | 213 | XP_DRA_AA, |
| 213 | XP_DRA_AB , | 214 | XP_DRA_AB, |
| 214 | XP_DRA_AC , | 215 | XP_DRA_AC, |
| 215 | XP_DRA_AD , | 216 | XP_DRA_AD, |
| 216 | XP_DRA_AE , | 217 | XP_DRA_AE, |
| 217 | XP_DRA_AF , | 218 | XP_DRA_AF, |
| 218 | XP_DRA_AG , | 219 | XP_DRA_AG, |
| 219 | XP_DRA_AH , | 220 | XP_DRA_AH, |
| 220 | XP_DRA_AI , | 221 | XP_DRA_AI, |
| 221 | XP_DRA_AJ , | 222 | XP_DRA_AJ, |
| 222 | XP_DRA_BA , | 223 | XP_DRA_BA, |
| 223 | XP_DRA_BB , | 224 | XP_DRA_BB, |
| 224 | XP_DRA_BC , | 225 | XP_DRA_BC, |
| 225 | XP_DRA_BD , | 226 | XP_DRA_BD, |
| 226 | XP_DRA_BE , | 227 | XP_DRA_BE, |
| 227 | XP_DRA_BF , | 228 | XP_DRA_BF, |
| 228 | XP_DRA_BG , | 229 | XP_DRA_BG, |
| 229 | XP_DRA_BH , | 230 | XP_DRA_BH, |
| 230 | XP_DRA_BI , | 231 | XP_DRA_BI, |
| 231 | XP_DRA_BJ ,// XP_DRA_BK , // no 'BK' key definition on this layer | 232 | XP_DRA_BJ,// XP_DRA_BK , // no 'BK' key definition on this layer |
| 232 | XP_DRA_CA , | 233 | XP_DRA_CA, |
| 233 | XP_DRA_CB , | 234 | XP_DRA_CB, |
| 234 | XP_DRA_CC , | 235 | XP_DRA_CC, |
| 235 | XP_DRA_CD , | 236 | XP_DRA_CD, |
| 236 | XP_DRA_CE , | 237 | XP_DRA_CE, |
| 237 | XP_DRA_CF , | 238 | XP_DRA_CF, |
| 238 | # endif // REMOVE_DRA | 239 | # endif // REMOVE_DRA |
| 239 | XP_DRA_CG , // Needed for ☑ on Unicode tester key in _RAR | 240 | XP_DRA_CG, // Needed for ☑ on Unicode tester key in _RAR |
| 240 | # ifndef REMOVE_DRA // This cuts out the whole _DRA layer | 241 | # ifndef REMOVE_DRA // This cuts out the whole _DRA layer |
| 241 | XP_DRA_CH , | 242 | XP_DRA_CH, |
| 242 | XP_DRA_CI , | 243 | XP_DRA_CI, |
| 243 | XP_DRA_CJ , | 244 | XP_DRA_CJ, |
| 244 | # endif // REMOVE_DRA | 245 | # endif // REMOVE_DRA |
| 245 | 246 | ||
| 246 | // The _BON layer, additional Unicode. | 247 | // The _BON layer, additional Unicode. |
| 247 | # ifndef REMOVE_BON // Removes this layer entirely, if set. | 248 | # ifndef REMOVE_BON // Removes this layer entirely, if set. |
| 248 | XP_BON_AA , | 249 | XP_BON_AA, |
| 249 | XP_BON_AB , | 250 | XP_BON_AB, |
| 250 | XP_BON_AC , | 251 | XP_BON_AC, |
| 251 | XP_BON_AD , | 252 | XP_BON_AD, |
| 252 | XP_BON_AE , | 253 | XP_BON_AE, |
| 253 | XP_BON_AF , | 254 | XP_BON_AF, |
| 254 | XP_BON_AG , | 255 | XP_BON_AG, |
| 255 | XP_BON_AH , | 256 | XP_BON_AH, |
| 256 | XP_BON_AI , | 257 | XP_BON_AI, |
| 257 | XP_BON_AJ , | 258 | XP_BON_AJ, |
| 258 | XP_BON_BA , | 259 | XP_BON_BA, |
| 259 | XP_BON_BB , | 260 | XP_BON_BB, |
| 260 | XP_BON_BC , | 261 | XP_BON_BC, |
| 261 | XP_BON_BD , | 262 | XP_BON_BD, |
| 262 | XP_BON_BE , | 263 | XP_BON_BE, |
| 263 | XP_BON_BF , | 264 | XP_BON_BF, |
| 264 | XP_BON_BG , | 265 | XP_BON_BG, |
| 265 | XP_BON_BH , | 266 | XP_BON_BH, |
| 266 | XP_BON_BI , | 267 | XP_BON_BI, |
| 267 | XP_BON_BJ , | 268 | XP_BON_BJ, |
| 268 | XP_BON_BK , | 269 | XP_BON_BK, |
| 269 | XP_BON_CA , | 270 | XP_BON_CA, |
| 270 | XP_BON_CB , | 271 | XP_BON_CB, |
| 271 | XP_BON_CC , | 272 | XP_BON_CC, |
| 272 | XP_BON_CD , | 273 | XP_BON_CD, |
| 273 | XP_BON_CE , | 274 | XP_BON_CE, |
| 274 | XP_BON_CF , | 275 | XP_BON_CF, |
| 275 | XP_BON_CG , | 276 | XP_BON_CG, |
| 276 | XP_BON_CH , | 277 | XP_BON_CH, |
| 277 | XP_BON_CI , | 278 | XP_BON_CI, |
| 278 | XP_BON_CJ , | 279 | XP_BON_CJ, |
| 279 | # endif // REMOVE_BON | 280 | # endif // REMOVE_BON |
| 281 | |||
| 282 | // Hebrew | ||
| 283 | # if defined(BASE_HEBREW__DEF_BASE) || defined(BASE_HEBREW__ALT_BASE) | ||
| 284 | XP_HEB_AA, | ||
| 285 | XP_HEB_AB, | ||
| 286 | XP_HEB_AC, | ||
| 287 | XP_HEB_AD, | ||
| 288 | XP_HEB_AE, | ||
| 289 | XP_HEB_AF, | ||
| 290 | XP_HEB_AG, | ||
| 291 | XP_HEB_AH, | ||
| 292 | XP_HEB_AI, | ||
| 293 | XP_HEB_AJ, | ||
| 294 | XP_HEB_BA, | ||
| 295 | XP_HEB_BB, | ||
| 296 | XP_HEB_BC, | ||
| 297 | XP_HEB_BD, | ||
| 298 | XP_HEB_BE, | ||
| 299 | XP_HEB_BF, | ||
| 300 | XP_HEB_BG, | ||
| 301 | XP_HEB_BH, | ||
| 302 | XP_HEB_BI, | ||
| 303 | XP_HEB_BJ, | ||
| 304 | # if defined(HEBREW_ISRAEL) | ||
| 305 | XP_HEB_BK, // | ||
| 306 | # endif | ||
| 307 | XP_HEB_CA, | ||
| 308 | XP_HEB_CB, | ||
| 309 | XP_HEB_CC, | ||
| 310 | XP_HEB_CD, | ||
| 311 | XP_HEB_CE, | ||
| 312 | XP_HEB_CF, | ||
| 313 | XP_HEB_CG, | ||
| 314 | # if defined(HEBREW_ISRAEL) || defined(HEBREW_DVORAK) | ||
| 315 | XP_HEB_CH, | ||
| 316 | XP_HEB_CI, | ||
| 317 | XP_HEB_CJ, | ||
| 318 | # endif | ||
| 319 | XP_HEB_MQF, // ־ | ||
| 320 | # endif //BASE_HEBREW__* | ||
| 321 | |||
| 280 | }; | 322 | }; |
| 281 | 323 | ||
| 282 | // Pre-existing function, called for every key up and down. | 324 | // Pre-existing function, called for every key up and down. |
| @@ -1244,12 +1286,17 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { | |||
| 1244 | 1286 | ||
| 1245 | case LEDS_ON: // Toggles left/right leds on or off | 1287 | case LEDS_ON: // Toggles left/right leds on or off |
| 1246 | if (record->event.pressed) { // key down | 1288 | if (record->event.pressed) { // key down |
| 1289 | |||
| 1290 | # ifdef RGBLIGHT_ENABLE | ||
| 1247 | if (leds_on == FALSE) { | 1291 | if (leds_on == FALSE) { |
| 1248 | leds_on = TRUE; | 1292 | leds_on = TRUE; |
| 1249 | }else{ | 1293 | }else{ |
| 1250 | leds_on = FALSE; | 1294 | leds_on = FALSE; |
| 1251 | } | 1295 | } |
| 1296 | set_led_colors_ (state_recall); // Update leds | ||
| 1252 | } | 1297 | } |
| 1298 | # endif | ||
| 1299 | |||
| 1253 | break; | 1300 | break; |
| 1254 | 1301 | ||
| 1255 | # ifdef LEDS_OFF_BASE_DEF // This messes with led effect on/off, so we need to track the state of this setting now. | 1302 | # ifdef LEDS_OFF_BASE_DEF // This messes with led effect on/off, so we need to track the state of this setting now. |
| @@ -1652,11 +1699,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { | |||
| 1652 | case XP_DRA_AA: // because '", the opening „“ at the ‛open’ of the keyboard (left/up) | 1699 | case XP_DRA_AA: // because '", the opening „“ at the ‛open’ of the keyboard (left/up) |
| 1653 | if (record->event.pressed) { // key down | 1700 | if (record->event.pressed) { // key down |
| 1654 | 1701 | ||
| 1655 | # ifdef FULL_DRA_4THROW | ||
| 1656 | unicode_hex2output (CS_DQUHR, CS_DQUL);// “ „ | 1702 | unicode_hex2output (CS_DQUHR, CS_DQUL);// “ „ |
| 1657 | # else | ||
| 1658 | unicode_hex2output_single (CS_DQUHR);// “ | ||
| 1659 | # endif | ||
| 1660 | 1703 | ||
| 1661 | } | 1704 | } |
| 1662 | break; | 1705 | break; |
| @@ -1664,11 +1707,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { | |||
| 1664 | case XP_DRA_AB: // because to the right of opening “, ≤ on < | 1707 | case XP_DRA_AB: // because to the right of opening “, ≤ on < |
| 1665 | if (record->event.pressed) { // key down | 1708 | if (record->event.pressed) { // key down |
| 1666 | 1709 | ||
| 1667 | # ifdef FULL_DRA_4THROW | ||
| 1668 | unicode_hex2output (CS_DQUH, CS_ELTHAN);// ” ≤ | 1710 | unicode_hex2output (CS_DQUH, CS_ELTHAN);// ” ≤ |
| 1669 | # else | ||
| 1670 | unicode_hex2output_single (CS_DQUH);// ” | ||
| 1671 | # endif | ||
| 1672 | 1711 | ||
| 1673 | } | 1712 | } |
| 1674 | break; | 1713 | break; |
| @@ -1676,11 +1715,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { | |||
| 1676 | case XP_DRA_AC: // because this is where the £ is on an English keyboard, on 'any' money symbols ¤; ≥ on > | 1715 | case XP_DRA_AC: // because this is where the £ is on an English keyboard, on 'any' money symbols ¤; ≥ on > |
| 1677 | if (record->event.pressed) { // key down | 1716 | if (record->event.pressed) { // key down |
| 1678 | 1717 | ||
| 1679 | # ifdef FULL_DRA_4THROW | ||
| 1680 | unicode_hex2output (CS_POUND, CS_EGTHAN);// £ ≥ | 1718 | unicode_hex2output (CS_POUND, CS_EGTHAN);// £ ≥ |
| 1681 | # else | ||
| 1682 | unicode_hex2output_single (CS_POUND);// £ | ||
| 1683 | # endif | ||
| 1684 | 1719 | ||
| 1685 | } | 1720 | } |
| 1686 | break; | 1721 | break; |
| @@ -1690,6 +1725,8 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { | |||
| 1690 | 1725 | ||
| 1691 | # ifdef FULL_DRA_4THROW | 1726 | # ifdef FULL_DRA_4THROW |
| 1692 | unicode_hex2output (CS_NONE, CS_CENT);// ∅ ¢ | 1727 | unicode_hex2output (CS_NONE, CS_CENT);// ∅ ¢ |
| 1728 | # else | ||
| 1729 | unicode_hex2output_single (CS_NONE);// ∅ ¢ | ||
| 1693 | # endif | 1730 | # endif |
| 1694 | 1731 | ||
| 1695 | } | 1732 | } |
| @@ -1710,11 +1747,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { | |||
| 1710 | case XP_DRA_AF: // Because left of 🙂, on top of ★ | 1747 | case XP_DRA_AF: // Because left of 🙂, on top of ★ |
| 1711 | if (record->event.pressed) { // key down | 1748 | if (record->event.pressed) { // key down |
| 1712 | 1749 | ||
| 1713 | # ifdef FULL_DRA_4THROW | ||
| 1714 | unicode_hex2output (CS_FLEUR, CS_HEART);// ❦ ♥ | 1750 | unicode_hex2output (CS_FLEUR, CS_HEART);// ❦ ♥ |
| 1715 | # else | ||
| 1716 | unicode_hex2output_single (CS_HEART);// ♥ | ||
| 1717 | # endif | ||
| 1718 | 1751 | ||
| 1719 | } | 1752 | } |
| 1720 | break; | 1753 | break; |
| @@ -1722,9 +1755,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { | |||
| 1722 | case XP_DRA_AG: // because 😊 ⍨ | 1755 | case XP_DRA_AG: // because 😊 ⍨ |
| 1723 | if (record->event.pressed) { // key down | 1756 | if (record->event.pressed) { // key down |
| 1724 | 1757 | ||
| 1725 | # ifdef FULL_DRA_4THROW | ||
| 1726 | unicode_hex2output (CS_SMIL, CS_SAD_);// 🙂 🙁 | 1758 | unicode_hex2output (CS_SMIL, CS_SAD_);// 🙂 🙁 |
| 1727 | # endif | ||
| 1728 | 1759 | ||
| 1729 | } | 1760 | } |
| 1730 | break; | 1761 | break; |
| @@ -1732,9 +1763,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { | |||
| 1732 | case XP_DRA_AH: // because «no reason», next to 😊 (emoticons) | 1763 | case XP_DRA_AH: // because «no reason», next to 😊 (emoticons) |
| 1733 | if (record->event.pressed) { // key down | 1764 | if (record->event.pressed) { // key down |
| 1734 | 1765 | ||
| 1735 | # ifdef FULL_DRA_4THROW | ||
| 1736 | unicode_hex2output (CS_THUP, CS_THDN);// 👍 👎 | 1766 | unicode_hex2output (CS_THUP, CS_THDN);// 👍 👎 |
| 1737 | # endif | ||
| 1738 | 1767 | ||
| 1739 | } | 1768 | } |
| 1740 | break; | 1769 | break; |
| @@ -2343,6 +2372,299 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { | |||
| 2343 | break; | 2372 | break; |
| 2344 | 2373 | ||
| 2345 | # endif // REMOVE_BON | 2374 | # endif // REMOVE_BON |
| 2375 | |||
| 2376 | // Hebrew | ||
| 2377 | # if defined(BASE_HEBREW__DEF_BASE) || defined(BASE_HEBREW__ALT_BASE) | ||
| 2378 | // The layout follows a standard hebrew keyboard, with the exception | ||
| 2379 | // of ק, which is displaced by “.>” copied from the Dvorak layout. | ||
| 2380 | |||
| 2381 | // HEBREW_DVORAK | ||
| 2382 | // These letters on the upper left follow Dvorak layout. | ||
| 2383 | // The reason is space on the device: these are not macros. | ||
| 2384 | // Also: typing compatibility between Dvorak and Hebrew | ||
| 2385 | // for these similar/same symbols: ,<.>. Idealy these symbols | ||
| 2386 | // should be the hebrew variation, if space allows it. | ||
| 2387 | |||
| 2388 | # if defined(HEBREW_ISRAEL) | ||
| 2389 | |||
| 2390 | case XP_HEB_AA: // | ||
| 2391 | if (record->event.pressed) { // key down | ||
| 2392 | // These shifts-up seem to work on GNU/Debian/Linux, otherwise it prints ':' | ||
| 2393 | if (shift_ison) send_string ( SS_UP(X_RSFT) SS_UP(X_LSFT) ";" ); // moved here from <esc> on standard hebrew | ||
| 2394 | else send_string ("/");// | ||
| 2395 | } break; | ||
| 2396 | |||
| 2397 | case XP_HEB_AB: // | ||
| 2398 | if (record->event.pressed) { // key down | ||
| 2399 | unicode_hex2output_single (HB_GERSH);// ׳ | ||
| 2400 | } | ||
| 2401 | break; | ||
| 2402 | |||
| 2403 | case XP_HEB_AC: // | ||
| 2404 | if (record->event.pressed) { // key down | ||
| 2405 | unicode_hex2output_single (HB_QOF);// ק | ||
| 2406 | } | ||
| 2407 | break; | ||
| 2408 | |||
| 2409 | # elif defined(HEBREW_QWERTY) | ||
| 2410 | |||
| 2411 | case XP_HEB_AA: // | ||
| 2412 | if (record->event.pressed) { // key down | ||
| 2413 | unicode_hex2output_single (HB_TAV);// ת | ||
| 2414 | } | ||
| 2415 | break; | ||
| 2416 | |||
| 2417 | case XP_HEB_AB: // | ||
| 2418 | if (record->event.pressed) { // key down | ||
| 2419 | unicode_hex2output_single (HB_TSDIS);// ץ | ||
| 2420 | } | ||
| 2421 | break; | ||
| 2422 | |||
| 2423 | case XP_HEB_AC: // | ||
| 2424 | if (record->event.pressed) { // key down | ||
| 2425 | unicode_hex2output_single (HB_QOF);// ק | ||
| 2426 | } | ||
| 2427 | break; | ||
| 2428 | |||
| 2429 | # endif // #HEBREW_* | ||
| 2430 | |||
| 2431 | case XP_HEB_AD: // | ||
| 2432 | if (record->event.pressed) { // key down | ||
| 2433 | unicode_hex2output_single (HB_RESH);// ר | ||
| 2434 | } | ||
| 2435 | break; | ||
| 2436 | |||
| 2437 | case XP_HEB_AE: // | ||
| 2438 | if (record->event.pressed) { // key down | ||
| 2439 | unicode_hex2output_single (HB_ALEF);// א | ||
| 2440 | |||
| 2441 | } | ||
| 2442 | break; | ||
| 2443 | |||
| 2444 | case XP_HEB_AF: // | ||
| 2445 | if (record->event.pressed) { // key down | ||
| 2446 | unicode_hex2output_single (HB_TET);// ט | ||
| 2447 | } | ||
| 2448 | break; | ||
| 2449 | |||
| 2450 | case XP_HEB_AG: // | ||
| 2451 | if (record->event.pressed) { // key down | ||
| 2452 | unicode_hex2output_single (HB_VAV);// ו | ||
| 2453 | } | ||
| 2454 | break; | ||
| 2455 | |||
| 2456 | case XP_HEB_AH: // | ||
| 2457 | if (record->event.pressed) { // key down | ||
| 2458 | unicode_hex2output_single (HB_NUNS);// ן | ||
| 2459 | } | ||
| 2460 | break; | ||
| 2461 | |||
| 2462 | case XP_HEB_AI: | ||
| 2463 | if (record->event.pressed) { // key down | ||
| 2464 | |||
| 2465 | # if defined(HEBREW_ISRAEL) | ||
| 2466 | // The logic is that it mirrors '", “„, ”≤, ‛’ in Dvorak Base and other layers. | ||
| 2467 | // Therefore the little and ring fingers are used. Mirroring ━─ and ┄┅ on DRA_ | ||
| 2468 | // layer, the outside on the keyboard is “big/fat”, the inside is “small/thin”, | ||
| 2469 | // like something protected in a shell. Hence: ……׳״ | ||
| 2470 | unicode_hex2output_single (HB_MEMS);// ם // ׳ is located elsewhere | ||
| 2471 | # elif defined(HEBREW_QWERTY) || defined(HEBREW_DVORAK) | ||
| 2472 | unicode_hex2output (HB_MEMS, HB_GERSH);// ם׳ | ||
| 2473 | # endif | ||
| 2474 | |||
| 2475 | } | ||
| 2476 | break; | ||
| 2477 | |||
| 2478 | case XP_HEB_AJ: // | ||
| 2479 | if (record->event.pressed) { // key down | ||
| 2480 | |||
| 2481 | # if defined(HEBREW_ISRAEL) | ||
| 2482 | unicode_hex2output_single (HB_PE);// פ // ״ is located elsewhere | ||
| 2483 | # elif defined(HEBREW_QWERTY) || defined(HEBREW_DVORAK) | ||
| 2484 | unicode_hex2output (HB_PE, HB_GRSHM);// פ״ | ||
| 2485 | # endif | ||
| 2486 | |||
| 2487 | } | ||
| 2488 | break; | ||
| 2489 | |||
| 2490 | // ------------------------- row 3 | ||
| 2491 | case XP_HEB_BA: // | ||
| 2492 | if (record->event.pressed) { // key down | ||
| 2493 | unicode_hex2output_single (HB_SHIN);// ש | ||
| 2494 | } | ||
| 2495 | break; | ||
| 2496 | |||
| 2497 | case XP_HEB_BB: // | ||
| 2498 | if (record->event.pressed) { // key down | ||
| 2499 | unicode_hex2output_single (HB_DALET);// ד | ||
| 2500 | } | ||
| 2501 | break; | ||
| 2502 | |||
| 2503 | case XP_HEB_BC: //Right-left-mark to the first free strong homerow finger on the left (middle) | ||
| 2504 | if (record->event.pressed) { // key down | ||
| 2505 | unicode_hex2output (HB_GIMEL, HB_RLM);// ג {RLM} | ||
| 2506 | } | ||
| 2507 | break; | ||
| 2508 | |||
| 2509 | case XP_HEB_BD: // The logic is that כ is the same key as 4 on another layer, which connects | ||
| 2510 | // with $, and other currencies in the same region (ģ). | ||
| 2511 | if (record->event.pressed) { // key down | ||
| 2512 | unicode_hex2output (HB_KAF, HB_SHEKL);// כ₪ | ||
| 2513 | } | ||
| 2514 | break; | ||
| 2515 | |||
| 2516 | case XP_HEB_BE: // | ||
| 2517 | if (record->event.pressed) { // key down | ||
| 2518 | unicode_hex2output_single (HB_AYIN);// ע | ||
| 2519 | } | ||
| 2520 | break; | ||
| 2521 | |||
| 2522 | case XP_HEB_BF: // | ||
| 2523 | if (record->event.pressed) { // key down | ||
| 2524 | unicode_hex2output_single (HB_YOD);// י | ||
| 2525 | } | ||
| 2526 | break; | ||
| 2527 | |||
| 2528 | case XP_HEB_BG: // | ||
| 2529 | if (record->event.pressed) { // key down | ||
| 2530 | unicode_hex2output_single (HB_GET);// ח | ||
| 2531 | } | ||
| 2532 | break; | ||
| 2533 | |||
| 2534 | case XP_HEB_BH: // | ||
| 2535 | if (record->event.pressed) { // key down | ||
| 2536 | unicode_hex2output (HB_LAMED, HB_LRM);// ל {LRM} | ||
| 2537 | } | ||
| 2538 | break; | ||
| 2539 | |||
| 2540 | case XP_HEB_BI: // | ||
| 2541 | if (record->event.pressed) { // key down | ||
| 2542 | unicode_hex2output_single (HB_KAFS);// ך | ||
| 2543 | } | ||
| 2544 | break; | ||
| 2545 | |||
| 2546 | case XP_HEB_BJ: // | ||
| 2547 | if (record->event.pressed) { // key down | ||
| 2548 | |||
| 2549 | # if defined(HEBREW_ISRAEL) || defined(HEBREW_QWERTY) | ||
| 2550 | if (shift_ison) send_string (":"); // : (the hebrew eqquivalent is apparently almost never used, and this saves space) | ||
| 2551 | else unicode_hex2output_single (HB_PES);// ף | ||
| 2552 | # elif defined(HEBREW_DVORAK) | ||
| 2553 | unicode_hex2output_single (HB_PES);// ף | ||
| 2554 | # endif | ||
| 2555 | |||
| 2556 | } | ||
| 2557 | break; | ||
| 2558 | |||
| 2559 | # if defined(HEBREW_ISRAEL) | ||
| 2560 | case XP_HEB_BK: // | ||
| 2561 | if (record->event.pressed) { // key down | ||
| 2562 | if (shift_ison) unicode_hex2output_single (HB_GRSHM);// ״ | ||
| 2563 | else send_string (","); // comma | ||
| 2564 | } | ||
| 2565 | break; | ||
| 2566 | # endif | ||
| 2567 | |||
| 2568 | case XP_HEB_MQF: // ־ Maqaf | ||
| 2569 | if (record->event.pressed) { // key down | ||
| 2570 | unicode_hex2output_single (HB_MAQAF);// ־ | ||
| 2571 | } | ||
| 2572 | break; | ||
| 2573 | |||
| 2574 | // ------------------------- row 2 | ||
| 2575 | case XP_HEB_CA: // | ||
| 2576 | if (record->event.pressed) { // key down | ||
| 2577 | // Hebrew harmonization + ':' | ||
| 2578 | # if defined(HEBREW_ISRAEL) || defined(HEBREW_QWERTY) | ||
| 2579 | unicode_hex2output_single (HB_ZAYIN);// ז | ||
| 2580 | # elif defined(HEBREW_DVORAK) | ||
| 2581 | if (shift_ison) send_string (":"); // | ||
| 2582 | else unicode_hex2output_single (HB_ZAYIN);// ז | ||
| 2583 | # endif | ||
| 2584 | } | ||
| 2585 | break; | ||
| 2586 | |||
| 2587 | case XP_HEB_CB: // | ||
| 2588 | if (record->event.pressed) { // key down | ||
| 2589 | unicode_hex2output_single (HB_SAMEG);// ס | ||
| 2590 | } | ||
| 2591 | break; | ||
| 2592 | |||
| 2593 | case XP_HEB_CC: // | ||
| 2594 | if (record->event.pressed) { // key down | ||
| 2595 | unicode_hex2output_single (HB_BET);// ב | ||
| 2596 | } | ||
| 2597 | break; | ||
| 2598 | |||
| 2599 | case XP_HEB_CD: // | ||
| 2600 | if (record->event.pressed) { // key down | ||
| 2601 | unicode_hex2output_single (HB_HE);// ה | ||
| 2602 | } | ||
| 2603 | break; | ||
| 2604 | |||
| 2605 | case XP_HEB_CE: // | ||
| 2606 | if (record->event.pressed) { // key down | ||
| 2607 | unicode_hex2output_single (HB_NUN);// נ | ||
| 2608 | } | ||
| 2609 | break; | ||
| 2610 | |||
| 2611 | case XP_HEB_CF: // | ||
| 2612 | if (record->event.pressed) { // key down | ||
| 2613 | unicode_hex2output_single (HB_MEM);// מ | ||
| 2614 | } | ||
| 2615 | break; | ||
| 2616 | |||
| 2617 | case XP_HEB_CG: // | ||
| 2618 | if (record->event.pressed) { // key down | ||
| 2619 | unicode_hex2output_single (HB_TSADI);// צ | ||
| 2620 | } | ||
| 2621 | break; | ||
| 2622 | |||
| 2623 | # if defined(HEBREW_ISRAEL) || defined(HEBREW_DVORAK) | ||
| 2624 | case XP_HEB_CH: // | ||
| 2625 | if (record->event.pressed) { // key down | ||
| 2626 | |||
| 2627 | # if defined(HEBREW_ISRAEL) | ||
| 2628 | if (shift_ison) send_string ("<"); // | ||
| 2629 | else unicode_hex2output_single (HB_TAV);// ת | ||
| 2630 | # else // HEBREW_DVORAK | ||
| 2631 | unicode_hex2output_single (HB_TAV);// ת | ||
| 2632 | # endif | ||
| 2633 | |||
| 2634 | } | ||
| 2635 | break; | ||
| 2636 | |||
| 2637 | case XP_HEB_CI: // | ||
| 2638 | if (record->event.pressed) { // key down | ||
| 2639 | |||
| 2640 | # if defined(HEBREW_ISRAEL) | ||
| 2641 | if (shift_ison) send_string (">"); // | ||
| 2642 | else unicode_hex2output_single (HB_TSDIS);// ץ | ||
| 2643 | # else // HEBREW_DVORAK | ||
| 2644 | unicode_hex2output_single (HB_TSDIS);// ץ | ||
| 2645 | # endif | ||
| 2646 | |||
| 2647 | } | ||
| 2648 | break; | ||
| 2649 | |||
| 2650 | case XP_HEB_CJ: // anomaly | ||
| 2651 | if (record->event.pressed) { // key down | ||
| 2652 | |||
| 2653 | # if defined(HEBREW_ISRAEL) | ||
| 2654 | if (shift_ison) send_string ("?"); // | ||
| 2655 | else send_string ("."); // | ||
| 2656 | # else // HEBREW_DVORAK | ||
| 2657 | unicode_hex2output_single (HB_QOF);// ק | ||
| 2658 | # endif | ||
| 2659 | |||
| 2660 | } | ||
| 2661 | break; | ||
| 2662 | # endif // HEBREW_* | ||
| 2663 | |||
| 2664 | // HB_D_VAV, | ||
| 2665 | // HB_VAVYD, | ||
| 2666 | // HB_D_YOD, | ||
| 2667 | # endif // Hebrew Base layer | ||
| 2346 | } | 2668 | } |
| 2347 | 2669 | ||
| 2348 | return true; | 2670 | return true; |
