diff options
author | Shayne Holmes <shayneh@qualtrics.com> | 2017-06-30 12:08:09 -0700 |
---|---|---|
committer | Jack Humbert <jack.humb@gmail.com> | 2017-07-05 10:55:47 -0400 |
commit | 48ff93582ba9efbe5b8a2f7392eee822e6f25526 (patch) | |
tree | edab94f2c0d1701895da110bda1352f5dd3fb3a3 | |
parent | fdc2e8058b46f569a7a68ab21ef9cb3d20a9bdc2 (diff) | |
download | qmk_firmware-48ff93582ba9efbe5b8a2f7392eee822e6f25526.tar.gz qmk_firmware-48ff93582ba9efbe5b8a2f7392eee822e6f25526.zip |
Pull out sendstring variations to their own files.
Instead of having all sendstring keycode mappings in the main quantum.c
file, give each one its own file in keymap_extras that can be #included
in a user's keymap. If one is included, it will define the appropriate
lookup tables and overwrite the weak definitions in quantum.c.
(Including more than one sendstring definition will fail at compile
time.)
Update @rai-suta's test keymap to match, as well as the documentation.
-rw-r--r-- | docs/macros.md | 8 | ||||
-rw-r--r-- | keyboards/planck/keymaps/rai-suta/Makefile | 3 | ||||
-rw-r--r-- | keyboards/planck/keymaps/rai-suta/keymap.c | 2 | ||||
-rw-r--r-- | quantum/keymap_extras/sendstring_colemak.h | 41 | ||||
-rw-r--r-- | quantum/keymap_extras/sendstring_dvorak.h | 41 | ||||
-rw-r--r-- | quantum/keymap_extras/sendstring_jis.h | 58 | ||||
-rw-r--r-- | quantum/quantum.c | 90 | ||||
-rw-r--r-- | quantum/quantum.h | 2 |
8 files changed, 153 insertions, 92 deletions
diff --git a/docs/macros.md b/docs/macros.md index 1418d24ab..bbf51434a 100644 --- a/docs/macros.md +++ b/docs/macros.md | |||
@@ -41,7 +41,7 @@ A macro can include the following commands: | |||
41 | 41 | ||
42 | ## Sending strings | 42 | ## Sending strings |
43 | 43 | ||
44 | Sometimes you just want a key to type out words or phrases. For the most common situations we've provided `SEND_STRING()`, which will type out your string for you instead of having to build a `MACRO()`. Right now it assumes a US keymap with a QWERTY layout, so if you are using something else it may not behave as you expect. | 44 | Sometimes you just want a key to type out words or phrases. For the most common situations we've provided `SEND_STRING()`, which will type out your string for you instead of having to build a `MACRO()`. |
45 | 45 | ||
46 | For example: | 46 | For example: |
47 | 47 | ||
@@ -58,6 +58,12 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { | |||
58 | }; | 58 | }; |
59 | ``` | 59 | ``` |
60 | 60 | ||
61 | By default, it assumes a US keymap with a QWERTY layout; if you want to change that (e.g. if your OS uses software Colemak), include this somewhere in your keymap: | ||
62 | |||
63 | ``` | ||
64 | #include <sendstring_colemak.h> | ||
65 | ``` | ||
66 | |||
61 | ## Mapping a Macro to a key | 67 | ## Mapping a Macro to a key |
62 | 68 | ||
63 | Use the `M()` function within your `KEYMAP()` to call a macro. For example, here is the keymap for a 2-key keyboard: | 69 | Use the `M()` function within your `KEYMAP()` to call a macro. For example, here is the keymap for a 2-key keyboard: |
diff --git a/keyboards/planck/keymaps/rai-suta/Makefile b/keyboards/planck/keymaps/rai-suta/Makefile index 5238d3201..38efe374c 100644 --- a/keyboards/planck/keymaps/rai-suta/Makefile +++ b/keyboards/planck/keymaps/rai-suta/Makefile | |||
@@ -20,9 +20,6 @@ RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this | |||
20 | # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE | 20 | # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE |
21 | SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend | 21 | SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend |
22 | 22 | ||
23 | # Option defines | ||
24 | OPT_DEFS += -DSENDSTRING_JIS_KEYCODE | ||
25 | |||
26 | ifndef QUANTUM_DIR | 23 | ifndef QUANTUM_DIR |
27 | include ../../../../Makefile | 24 | include ../../../../Makefile |
28 | endif \ No newline at end of file | 25 | endif \ No newline at end of file |
diff --git a/keyboards/planck/keymaps/rai-suta/keymap.c b/keyboards/planck/keymaps/rai-suta/keymap.c index 13fc3677e..3206ffd35 100644 --- a/keyboards/planck/keymaps/rai-suta/keymap.c +++ b/keyboards/planck/keymaps/rai-suta/keymap.c | |||
@@ -3,6 +3,8 @@ | |||
3 | #include "planck.h" | 3 | #include "planck.h" |
4 | #include "version.h" | 4 | #include "version.h" |
5 | 5 | ||
6 | #include "sendstring_jis.h" | ||
7 | |||
6 | // Keycode defines | 8 | // Keycode defines |
7 | #define _______ KC_TRNS | 9 | #define _______ KC_TRNS |
8 | #define XXXXXXX KC_NO | 10 | #define XXXXXXX KC_NO |
diff --git a/quantum/keymap_extras/sendstring_colemak.h b/quantum/keymap_extras/sendstring_colemak.h new file mode 100644 index 000000000..fa9ace929 --- /dev/null +++ b/quantum/keymap_extras/sendstring_colemak.h | |||
@@ -0,0 +1,41 @@ | |||
1 | /* Copyright 2016 Jack Humbert | ||
2 | * | ||
3 | * This program is free software: you can redistribute it and/or modify | ||
4 | * it under the terms of the GNU General Public License as published by | ||
5 | * the Free Software Foundation, either version 2 of the License, or | ||
6 | * (at your option) any later version. | ||
7 | * | ||
8 | * This program is distributed in the hope that it will be useful, | ||
9 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
10 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
11 | * GNU General Public License for more details. | ||
12 | * | ||
13 | * You should have received a copy of the GNU General Public License | ||
14 | * along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
15 | */ | ||
16 | /* Sendstring definitions for the Colemak layout */ | ||
17 | #ifndef SENDSTRING_COLEMAK | ||
18 | #define SENDSTRING_COLEMAK | ||
19 | |||
20 | #include "keymap_colemak.h" | ||
21 | |||
22 | const uint8_t ascii_to_keycode_lut[0x80] PROGMEM = { | ||
23 | 0, 0, 0, 0, 0, 0, 0, 0, | ||
24 | KC_BSPC, KC_TAB, KC_ENT, 0, 0, 0, 0, 0, | ||
25 | 0, 0, 0, 0, 0, 0, 0, 0, | ||
26 | 0, 0, 0, KC_ESC, 0, 0, 0, 0, | ||
27 | KC_SPC, KC_1, KC_QUOT, KC_3, KC_4, KC_5, KC_7, KC_QUOT, | ||
28 | KC_9, KC_0, KC_8, KC_EQL, KC_COMM, KC_MINS, KC_DOT, KC_SLSH, | ||
29 | KC_0, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, | ||
30 | KC_8, KC_9, CM_SCLN, CM_SCLN, KC_COMM, KC_EQL, KC_DOT, KC_SLSH, | ||
31 | KC_2, CM_A, CM_B, CM_C, CM_D, CM_E, CM_F, CM_G, | ||
32 | CM_H, CM_I, CM_J, CM_K, CM_L, CM_M, CM_N, CM_O, | ||
33 | CM_P, CM_Q, CM_R, CM_S, CM_T, CM_U, CM_V, CM_W, | ||
34 | CM_X, CM_Y, CM_Z, KC_LBRC, KC_BSLS, KC_RBRC, KC_6, KC_MINS, | ||
35 | KC_GRV, CM_A, CM_B, CM_C, CM_D, CM_E, CM_F, CM_G, | ||
36 | CM_H, CM_I, CM_J, CM_K, CM_L, CM_M, CM_N, CM_O, | ||
37 | CM_P, CM_Q, CM_R, CM_S, CM_T, CM_U, CM_V, CM_W, | ||
38 | CM_X, CM_Y, CM_Z, KC_LBRC, KC_BSLS, KC_RBRC, KC_GRV, KC_DEL | ||
39 | }; | ||
40 | |||
41 | #endif | ||
diff --git a/quantum/keymap_extras/sendstring_dvorak.h b/quantum/keymap_extras/sendstring_dvorak.h new file mode 100644 index 000000000..f5c5c818b --- /dev/null +++ b/quantum/keymap_extras/sendstring_dvorak.h | |||
@@ -0,0 +1,41 @@ | |||
1 | /* Copyright 2016 Jack Humbert | ||
2 | * | ||
3 | * This program is free software: you can redistribute it and/or modify | ||
4 | * it under the terms of the GNU General Public License as published by | ||
5 | * the Free Software Foundation, either version 2 of the License, or | ||
6 | * (at your option) any later version. | ||
7 | * | ||
8 | * This program is distributed in the hope that it will be useful, | ||
9 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
10 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
11 | * GNU General Public License for more details. | ||
12 | * | ||
13 | * You should have received a copy of the GNU General Public License | ||
14 | * along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
15 | */ | ||
16 | /* Sendstring definitions for the Dvorak layout */ | ||
17 | #ifndef SENDSTRING_DVORAK | ||
18 | #define SENDSTRING_DVORAK | ||
19 | |||
20 | #include "keymap_dvorak.h" | ||
21 | |||
22 | const uint8_t ascii_to_keycode_lut[0x80] PROGMEM = { | ||
23 | 0, 0, 0, 0, 0, 0, 0, 0, | ||
24 | KC_BSPC, KC_TAB, KC_ENT, 0, 0, 0, 0, 0, | ||
25 | 0, 0, 0, 0, 0, 0, 0, 0, | ||
26 | 0, 0, 0, KC_ESC, 0, 0, 0, 0, | ||
27 | KC_SPC, DV_1, DV_QUOT, DV_3, DV_4, DV_5, DV_7, DV_QUOT, | ||
28 | DV_9, DV_0, DV_8, DV_EQL, DV_COMM, DV_MINS, DV_DOT, DV_SLSH, | ||
29 | DV_0, DV_1, DV_2, DV_3, DV_4, DV_5, DV_6, DV_7, | ||
30 | DV_8, DV_9, DV_SCLN, DV_SCLN, DV_COMM, DV_EQL, DV_DOT, DV_SLSH, | ||
31 | DV_2, DV_A, DV_B, DV_C, DV_D, DV_E, DV_F, DV_G, | ||
32 | DV_H, DV_I, DV_J, DV_K, DV_L, DV_M, DV_N, DV_O, | ||
33 | DV_P, DV_Q, DV_R, DV_S, DV_T, DV_U, DV_V, DV_W, | ||
34 | DV_X, DV_Y, DV_Z, DV_LBRC, DV_BSLS, DV_RBRC, DV_6, DV_MINS, | ||
35 | DV_GRV, DV_A, DV_B, DV_C, DV_D, DV_E, DV_F, DV_G, | ||
36 | DV_H, DV_I, DV_J, DV_K, DV_L, DV_M, DV_N, DV_O, | ||
37 | DV_P, DV_Q, DV_R, DV_S, DV_T, DV_U, DV_V, DV_W, | ||
38 | DV_X, DV_Y, DV_Z, DV_LBRC, DV_BSLS, DV_RBRC, DV_GRV, KC_DEL | ||
39 | }; | ||
40 | |||
41 | #endif | ||
diff --git a/quantum/keymap_extras/sendstring_jis.h b/quantum/keymap_extras/sendstring_jis.h new file mode 100644 index 000000000..c5a38c6a5 --- /dev/null +++ b/quantum/keymap_extras/sendstring_jis.h | |||
@@ -0,0 +1,58 @@ | |||
1 | /* Copyright 2016 Jack Humbert | ||
2 | * | ||
3 | * This program is free software: you can redistribute it and/or modify | ||
4 | * it under the terms of the GNU General Public License as published by | ||
5 | * the Free Software Foundation, either version 2 of the License, or | ||
6 | * (at your option) any later version. | ||
7 | * | ||
8 | * This program is distributed in the hope that it will be useful, | ||
9 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
10 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
11 | * GNU General Public License for more details. | ||
12 | * | ||
13 | * You should have received a copy of the GNU General Public License | ||
14 | * along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
15 | */ | ||
16 | /* Sendstring definitions for the JIS keyboard layout */ | ||
17 | #ifndef SENDSTRING_JIS | ||
18 | #define SENDSTRING_JIS | ||
19 | |||
20 | const bool ascii_to_shift_lut[0x80] PROGMEM = { | ||
21 | 0, 0, 0, 0, 0, 0, 0, 0, | ||
22 | 0, 0, 0, 0, 0, 0, 0, 0, | ||
23 | 0, 0, 0, 0, 0, 0, 0, 0, | ||
24 | 0, 0, 0, 0, 0, 0, 0, 0, | ||
25 | 0, 1, 1, 1, 1, 1, 1, 1, | ||
26 | 1, 1, 1, 1, 0, 0, 0, 0, | ||
27 | 0, 0, 0, 0, 0, 0, 0, 0, | ||
28 | 0, 0, 0, 0, 1, 1, 1, 1, | ||
29 | 0, 1, 1, 1, 1, 1, 1, 1, | ||
30 | 1, 1, 1, 1, 1, 1, 1, 1, | ||
31 | 1, 1, 1, 1, 1, 1, 1, 1, | ||
32 | 1, 1, 1, 0, 0, 0, 0, 1, | ||
33 | 1, 0, 0, 0, 0, 0, 0, 0, | ||
34 | 0, 0, 0, 0, 0, 0, 0, 0, | ||
35 | 0, 0, 0, 0, 0, 0, 0, 0, | ||
36 | 0, 0, 0, 1, 1, 1, 1, 0 | ||
37 | }; | ||
38 | |||
39 | const uint8_t ascii_to_keycode_lut[0x80] PROGMEM = { | ||
40 | 0, 0, 0, 0, 0, 0, 0, 0, | ||
41 | KC_BSPC, KC_TAB, KC_ENT, 0, 0, 0, 0, 0, | ||
42 | 0, 0, 0, 0, 0, 0, 0, 0, | ||
43 | 0, 0, 0, KC_ESC, 0, 0, 0, 0, | ||
44 | KC_SPC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, | ||
45 | KC_8, KC_9, KC_QUOT, KC_SCLN, KC_COMM, KC_MINS, KC_DOT, KC_SLSH, | ||
46 | KC_0, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, | ||
47 | KC_8, KC_9, KC_QUOT, KC_SCLN, KC_COMM, KC_MINS, KC_DOT, KC_SLSH, | ||
48 | KC_LBRC, KC_A, KC_B, KC_C, KC_D, KC_E, KC_F, KC_G, | ||
49 | KC_H, KC_I, KC_J, KC_K, KC_L, KC_M, KC_N, KC_O, | ||
50 | KC_P, KC_Q, KC_R, KC_S, KC_T, KC_U, KC_V, KC_W, | ||
51 | KC_X, KC_Y, KC_Z, KC_RBRC, KC_JYEN, KC_BSLS, KC_EQL, KC_RO, | ||
52 | KC_LBRC, KC_A, KC_B, KC_C, KC_D, KC_E, KC_F, KC_G, | ||
53 | KC_H, KC_I, KC_J, KC_K, KC_L, KC_M, KC_N, KC_O, | ||
54 | KC_P, KC_Q, KC_R, KC_S, KC_T, KC_U, KC_V, KC_W, | ||
55 | KC_X, KC_Y, KC_Z, KC_RBRC, KC_JYEN, KC_BSLS, KC_EQL, KC_DEL, | ||
56 | }; | ||
57 | |||
58 | #endif | ||
diff --git a/quantum/quantum.c b/quantum/quantum.c index b5acc75c3..36e586d31 100644 --- a/quantum/quantum.c +++ b/quantum/quantum.c | |||
@@ -455,28 +455,7 @@ bool process_record_quantum(keyrecord_t *record) { | |||
455 | return process_action_kb(record); | 455 | return process_action_kb(record); |
456 | } | 456 | } |
457 | 457 | ||
458 | #if defined SENDSTRING_JIS_KEYCODE | 458 | __attribute__ ((weak)) |
459 | /* for users with JIS keyboards */ | ||
460 | const bool ascii_to_shift_lut[0x80] PROGMEM = { | ||
461 | 0, 0, 0, 0, 0, 0, 0, 0, | ||
462 | 0, 0, 0, 0, 0, 0, 0, 0, | ||
463 | 0, 0, 0, 0, 0, 0, 0, 0, | ||
464 | 0, 0, 0, 0, 0, 0, 0, 0, | ||
465 | 0, 1, 1, 1, 1, 1, 1, 1, | ||
466 | 1, 1, 1, 1, 0, 0, 0, 0, | ||
467 | 0, 0, 0, 0, 0, 0, 0, 0, | ||
468 | 0, 0, 0, 0, 1, 1, 1, 1, | ||
469 | 0, 1, 1, 1, 1, 1, 1, 1, | ||
470 | 1, 1, 1, 1, 1, 1, 1, 1, | ||
471 | 1, 1, 1, 1, 1, 1, 1, 1, | ||
472 | 1, 1, 1, 0, 0, 0, 0, 1, | ||
473 | 1, 0, 0, 0, 0, 0, 0, 0, | ||
474 | 0, 0, 0, 0, 0, 0, 0, 0, | ||
475 | 0, 0, 0, 0, 0, 0, 0, 0, | ||
476 | 0, 0, 0, 1, 1, 1, 1, 0 | ||
477 | }; | ||
478 | #else | ||
479 | /* for standard keycodes */ | ||
480 | const bool ascii_to_shift_lut[0x80] PROGMEM = { | 459 | const bool ascii_to_shift_lut[0x80] PROGMEM = { |
481 | 0, 0, 0, 0, 0, 0, 0, 0, | 460 | 0, 0, 0, 0, 0, 0, 0, 0, |
482 | 0, 0, 0, 0, 0, 0, 0, 0, | 461 | 0, 0, 0, 0, 0, 0, 0, 0, |
@@ -495,72 +474,8 @@ const bool ascii_to_shift_lut[0x80] PROGMEM = { | |||
495 | 0, 0, 0, 0, 0, 0, 0, 0, | 474 | 0, 0, 0, 0, 0, 0, 0, 0, |
496 | 0, 0, 0, 1, 1, 1, 1, 0 | 475 | 0, 0, 0, 1, 1, 1, 1, 0 |
497 | }; | 476 | }; |
498 | #endif | ||
499 | 477 | ||
500 | #if defined SENDSTRING_JIS_KEYCODE | 478 | __attribute__ ((weak)) |
501 | /* for users with JIS keyboards */ | ||
502 | const uint8_t ascii_to_keycode_lut[0x80] PROGMEM = { | ||
503 | 0, 0, 0, 0, 0, 0, 0, 0, | ||
504 | KC_BSPC, KC_TAB, KC_ENT, 0, 0, 0, 0, 0, | ||
505 | 0, 0, 0, 0, 0, 0, 0, 0, | ||
506 | 0, 0, 0, KC_ESC, 0, 0, 0, 0, | ||
507 | KC_SPC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, | ||
508 | KC_8, KC_9, KC_QUOT, KC_SCLN, KC_COMM, KC_MINS, KC_DOT, KC_SLSH, | ||
509 | KC_0, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, | ||
510 | KC_8, KC_9, KC_QUOT, KC_SCLN, KC_COMM, KC_MINS, KC_DOT, KC_SLSH, | ||
511 | KC_LBRC, KC_A, KC_B, KC_C, KC_D, KC_E, KC_F, KC_G, | ||
512 | KC_H, KC_I, KC_J, KC_K, KC_L, KC_M, KC_N, KC_O, | ||
513 | KC_P, KC_Q, KC_R, KC_S, KC_T, KC_U, KC_V, KC_W, | ||
514 | KC_X, KC_Y, KC_Z, KC_RBRC, KC_JYEN, KC_BSLS, KC_EQL, KC_RO, | ||
515 | KC_LBRC, KC_A, KC_B, KC_C, KC_D, KC_E, KC_F, KC_G, | ||
516 | KC_H, KC_I, KC_J, KC_K, KC_L, KC_M, KC_N, KC_O, | ||
517 | KC_P, KC_Q, KC_R, KC_S, KC_T, KC_U, KC_V, KC_W, | ||
518 | KC_X, KC_Y, KC_Z, KC_RBRC, KC_JYEN, KC_BSLS, KC_EQL, KC_DEL, | ||
519 | }; | ||
520 | #elif defined SENDSTRING_COLEMAK_KEYCODE | ||
521 | /* for users whose OSes are set to Colemak */ | ||
522 | #include "keymap_colemak.h" | ||
523 | const uint8_t ascii_to_keycode_lut[0x80] PROGMEM = { | ||
524 | 0, 0, 0, 0, 0, 0, 0, 0, | ||
525 | KC_BSPC, KC_TAB, KC_ENT, 0, 0, 0, 0, 0, | ||
526 | 0, 0, 0, 0, 0, 0, 0, 0, | ||
527 | 0, 0, 0, KC_ESC, 0, 0, 0, 0, | ||
528 | KC_SPC, KC_1, KC_QUOT, KC_3, KC_4, KC_5, KC_7, KC_QUOT, | ||
529 | KC_9, KC_0, KC_8, KC_EQL, KC_COMM, KC_MINS, KC_DOT, KC_SLSH, | ||
530 | KC_0, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, | ||
531 | KC_8, KC_9, CM_SCLN, CM_SCLN, KC_COMM, KC_EQL, KC_DOT, KC_SLSH, | ||
532 | KC_2, CM_A, CM_B, CM_C, CM_D, CM_E, CM_F, CM_G, | ||
533 | CM_H, CM_I, CM_J, CM_K, CM_L, CM_M, CM_N, CM_O, | ||
534 | CM_P, CM_Q, CM_R, CM_S, CM_T, CM_U, CM_V, CM_W, | ||
535 | CM_X, CM_Y, CM_Z, KC_LBRC, KC_BSLS, KC_RBRC, KC_6, KC_MINS, | ||
536 | KC_GRV, CM_A, CM_B, CM_C, CM_D, CM_E, CM_F, CM_G, | ||
537 | CM_H, CM_I, CM_J, CM_K, CM_L, CM_M, CM_N, CM_O, | ||
538 | CM_P, CM_Q, CM_R, CM_S, CM_T, CM_U, CM_V, CM_W, | ||
539 | CM_X, CM_Y, CM_Z, KC_LBRC, KC_BSLS, KC_RBRC, KC_GRV, KC_DEL | ||
540 | }; | ||
541 | #elif defined SENDSTRING_DVORAK_KEYCODE | ||
542 | /* for users whose OSes are set to Dvorak */ | ||
543 | #include "keymap_dvorak.h" | ||
544 | const uint8_t ascii_to_keycode_lut[0x80] PROGMEM = { | ||
545 | 0, 0, 0, 0, 0, 0, 0, 0, | ||
546 | KC_BSPC, KC_TAB, KC_ENT, 0, 0, 0, 0, 0, | ||
547 | 0, 0, 0, 0, 0, 0, 0, 0, | ||
548 | 0, 0, 0, KC_ESC, 0, 0, 0, 0, | ||
549 | KC_SPC, DV_1, DV_QUOT, DV_3, DV_4, DV_5, DV_7, DV_QUOT, | ||
550 | DV_9, DV_0, DV_8, DV_EQL, DV_COMM, DV_MINS, DV_DOT, DV_SLSH, | ||
551 | DV_0, DV_1, DV_2, DV_3, DV_4, DV_5, DV_6, DV_7, | ||
552 | DV_8, DV_9, DV_SCLN, DV_SCLN, DV_COMM, DV_EQL, DV_DOT, DV_SLSH, | ||
553 | DV_2, DV_A, DV_B, DV_C, DV_D, DV_E, DV_F, DV_G, | ||
554 | DV_H, DV_I, DV_J, DV_K, DV_L, DV_M, DV_N, DV_O, | ||
555 | DV_P, DV_Q, DV_R, DV_S, DV_T, DV_U, DV_V, DV_W, | ||
556 | DV_X, DV_Y, DV_Z, DV_LBRC, DV_BSLS, DV_RBRC, DV_6, DV_MINS, | ||
557 | DV_GRV, DV_A, DV_B, DV_C, DV_D, DV_E, DV_F, DV_G, | ||
558 | DV_H, DV_I, DV_J, DV_K, DV_L, DV_M, DV_N, DV_O, | ||
559 | DV_P, DV_Q, DV_R, DV_S, DV_T, DV_U, DV_V, DV_W, | ||
560 | DV_X, DV_Y, DV_Z, DV_LBRC, DV_BSLS, DV_RBRC, DV_GRV, KC_DEL | ||
561 | }; | ||
562 | #else | ||
563 | /* For users with default keyboard layout in OS */ | ||
564 | const uint8_t ascii_to_keycode_lut[0x80] PROGMEM = { | 479 | const uint8_t ascii_to_keycode_lut[0x80] PROGMEM = { |
565 | 0, 0, 0, 0, 0, 0, 0, 0, | 480 | 0, 0, 0, 0, 0, 0, 0, 0, |
566 | KC_BSPC, KC_TAB, KC_ENT, 0, 0, 0, 0, 0, | 481 | KC_BSPC, KC_TAB, KC_ENT, 0, 0, 0, 0, 0, |
@@ -579,7 +494,6 @@ const uint8_t ascii_to_keycode_lut[0x80] PROGMEM = { | |||
579 | KC_P, KC_Q, KC_R, KC_S, KC_T, KC_U, KC_V, KC_W, | 494 | KC_P, KC_Q, KC_R, KC_S, KC_T, KC_U, KC_V, KC_W, |
580 | KC_X, KC_Y, KC_Z, KC_LBRC, KC_BSLS, KC_RBRC, KC_GRV, KC_DEL | 495 | KC_X, KC_Y, KC_Z, KC_LBRC, KC_BSLS, KC_RBRC, KC_GRV, KC_DEL |
581 | }; | 496 | }; |
582 | #endif | ||
583 | 497 | ||
584 | void send_string(const char *str) { | 498 | void send_string(const char *str) { |
585 | send_string_with_delay(str, 0); | 499 | send_string_with_delay(str, 0); |
diff --git a/quantum/quantum.h b/quantum/quantum.h index 1dafbf3b0..e00fe2346 100644 --- a/quantum/quantum.h +++ b/quantum/quantum.h | |||
@@ -95,6 +95,8 @@ extern uint32_t default_layer_state; | |||
95 | #endif | 95 | #endif |
96 | 96 | ||
97 | #define SEND_STRING(str) send_string(PSTR(str)) | 97 | #define SEND_STRING(str) send_string(PSTR(str)) |
98 | extern const bool ascii_to_shift_lut[0x80]; | ||
99 | extern const uint8_t ascii_to_keycode_lut[0x80]; | ||
98 | void send_string(const char *str); | 100 | void send_string(const char *str); |
99 | void send_string_with_delay(const char *str, uint8_t interval); | 101 | void send_string_with_delay(const char *str, uint8_t interval); |
100 | 102 | ||