diff options
author | fauxpark <fauxpark@gmail.com> | 2019-07-16 16:15:07 +1000 |
---|---|---|
committer | skullydazed <skullydazed@users.noreply.github.com> | 2019-07-15 23:15:07 -0700 |
commit | a5ecf146085716f3a79424c2f4b3b3039ff36b3e (patch) | |
tree | e324f9ec4e19e28cb19b6b435edca77fde73e6b1 | |
parent | 26bbf6a66a6c1f606a64acafec3afdf9d3ad7e96 (diff) | |
download | qmk_firmware-a5ecf146085716f3a79424c2f4b3b3039ff36b3e.tar.gz qmk_firmware-a5ecf146085716f3a79424c2f4b3b3039ff36b3e.zip |
Sendstring LUT improvements (#5727)
* Align sendstring LUTs to 9 characters wide
* Replace 0 with XXXXXXX
* Use decimal 128 for LUT size
* Align heading comments
* Add ASCII table comments
* Add missing AltGr LUTs and adjust keycode LUTs accordingly
* Use pragma once
* Correct a couple more keycodes
* Capitalise "BÉPO"
* Also clean up the default tables
* Tidy up Belgian and Norman LUTs
-rw-r--r-- | quantum/keymap_extras/sendstring_belgian.h | 79 | ||||
-rw-r--r-- | quantum/keymap_extras/sendstring_bepo.h | 98 | ||||
-rw-r--r-- | quantum/keymap_extras/sendstring_colemak.h | 60 | ||||
-rw-r--r-- | quantum/keymap_extras/sendstring_dvorak.h | 60 | ||||
-rw-r--r-- | quantum/keymap_extras/sendstring_german.h | 104 | ||||
-rw-r--r-- | quantum/keymap_extras/sendstring_jis.h | 65 | ||||
-rw-r--r-- | quantum/keymap_extras/sendstring_norman.h | 56 | ||||
-rw-r--r-- | quantum/keymap_extras/sendstring_spanish.h | 96 | ||||
-rw-r--r-- | quantum/keymap_extras/sendstring_uk.h | 61 | ||||
-rw-r--r-- | quantum/keymap_extras/sendstring_workman.h | 60 | ||||
-rw-r--r-- | quantum/quantum.c | 57 | ||||
-rw-r--r-- | quantum/quantum.h | 6 |
12 files changed, 511 insertions, 291 deletions
diff --git a/quantum/keymap_extras/sendstring_belgian.h b/quantum/keymap_extras/sendstring_belgian.h index 77531a14a..f07d85272 100644 --- a/quantum/keymap_extras/sendstring_belgian.h +++ b/quantum/keymap_extras/sendstring_belgian.h | |||
@@ -13,13 +13,14 @@ | |||
13 | * You should have received a copy of the GNU General Public License | 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/>. | 14 | * along with this program. If not, see <http://www.gnu.org/licenses/>. |
15 | */ | 15 | */ |
16 | /* Sendstring definitions for the belgian layout */ | 16 | |
17 | #ifndef SENDSTRING_BELGIAN | 17 | // Sendstring lookup tables for Belgian layouts |
18 | #define SENDSTRING_BELGIAN | 18 | |
19 | #pragma once | ||
19 | 20 | ||
20 | #include "keymap_belgian.h" | 21 | #include "keymap_belgian.h" |
21 | 22 | ||
22 | const bool ascii_to_shift_lut[0x80] PROGMEM = { | 23 | const bool ascii_to_shift_lut[128] PROGMEM = { |
23 | 0, 0, 0, 0, 0, 0, 0, 0, | 24 | 0, 0, 0, 0, 0, 0, 0, 0, |
24 | 0, 0, 0, 0, 0, 0, 0, 0, | 25 | 0, 0, 0, 0, 0, 0, 0, 0, |
25 | 0, 0, 0, 0, 0, 0, 0, 0, | 26 | 0, 0, 0, 0, 0, 0, 0, 0, |
@@ -38,7 +39,8 @@ const bool ascii_to_shift_lut[0x80] PROGMEM = { | |||
38 | 0, 0, 0, 0, 0, 0, 0, 0, | 39 | 0, 0, 0, 0, 0, 0, 0, 0, |
39 | 0, 0, 0, 0, 0, 0, 0, 0 | 40 | 0, 0, 0, 0, 0, 0, 0, 0 |
40 | }; | 41 | }; |
41 | const bool ascii_to_altgr_lut[0x80] PROGMEM = { | 42 | |
43 | const bool ascii_to_altgr_lut[128] PROGMEM = { | ||
42 | 0, 0, 0, 0, 0, 0, 0, 0, | 44 | 0, 0, 0, 0, 0, 0, 0, 0, |
43 | 0, 0, 0, 0, 0, 0, 0, 0, | 45 | 0, 0, 0, 0, 0, 0, 0, 0, |
44 | 0, 0, 0, 0, 0, 0, 0, 0, | 46 | 0, 0, 0, 0, 0, 0, 0, 0, |
@@ -58,37 +60,38 @@ const bool ascii_to_altgr_lut[0x80] PROGMEM = { | |||
58 | 0, 0, 0, 1, 1, 1, 1, 0 | 60 | 0, 0, 0, 1, 1, 1, 1, 0 |
59 | }; | 61 | }; |
60 | 62 | ||
61 | // NOTE that you have to send the dead keys twice: tilda, circ | 63 | const uint8_t ascii_to_keycode_lut[128] PROGMEM = { |
62 | // SEND_STRING(" !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^^``_abcdefghijklmnopqrstuvwxyz{|}~~"); | 64 | // NUL SOH STX ETX EOT ENQ ACK BEL |
63 | const uint8_t ascii_to_keycode_lut[0x80] PROGMEM = { | 65 | XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, |
64 | 0, 0, 0, 0, 0, 0, 0, 0, | 66 | // BS TAB LF VT FF CR SO SI |
65 | KC_BSPC, KC_TAB, KC_ENT, 0, 0, 0, 0, 0, | 67 | KC_BSPC, KC_TAB, KC_ENT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, |
66 | 0, 0, 0, 0, 0, 0, 0, 0, | 68 | // DLE DC1 DC2 DC3 DC4 NAK SYN ETB |
67 | 0, 0, 0, KC_ESC, 0, 0, 0, 0, | 69 | XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, |
68 | /* SPACE ! " # $ % & ' */ | 70 | // CAN EM SUB ESC FS GS RS US |
69 | KC_SPC, BE_EXLM, BE_QUOT, BE_QUOT, BE_DLR,BE_UGRV,BE_AMP, BE_APOS , | 71 | XXXXXXX, XXXXXXX, XXXXXXX, KC_ESC, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, |
70 | /* ( ) * + , - . / */ | ||
71 | BE_LPRN, BE_RPRN, BE_DLR,BE_EQL, BE_COMM, BE_MINS, BE_SCLN, BE_COLN, | ||
72 | /* 0 1 2 3 4 5 6 7 */ | ||
73 | BE_AGRV, BE_AMP, BE_EACU, BE_QUOT, BE_APOS, BE_LPRN, BE_PARA, BE_EGRV, | ||
74 | /* 8 9 : ; < = > ? */ | ||
75 | BE_EXLM, BE_CCED, BE_COLN, BE_SCLN, BE_LESS, BE_EQL, BE_LESS, BE_COMM, | ||
76 | /* @ A B C D E F G */ | ||
77 | BE_EACU, BE_A, KC_B, KC_C, KC_D, KC_E, KC_F, KC_G, | ||
78 | /* H I J K L M N O */ | ||
79 | KC_H, KC_I, KC_J, KC_K, KC_L, BE_M, KC_N, KC_O, | ||
80 | /* P Q R S T U V W */ | ||
81 | KC_P, BE_Q, KC_R, KC_S, KC_T, KC_U, KC_V, BE_W, | ||
82 | /* X Y Z [ \ ] ^ _ */ | ||
83 | KC_X, KC_Y, BE_Z, BE_CIRC, BE_LESS, BE_DLR, BE_PARA, BE_MINS, | ||
84 | /* ` a b c d e f g */ | ||
85 | BE_MU, BE_A, KC_B, KC_C, KC_D, KC_E, KC_F, KC_G, | ||
86 | /* h i j k l m n o */ | ||
87 | KC_H, KC_I, KC_J, KC_K, KC_L, BE_M, KC_N, KC_O, | ||
88 | /* p q r s t u v w */ | ||
89 | KC_P, BE_Q, KC_R, KC_S, KC_T, KC_U, KC_V, BE_W, | ||
90 | /* x y z { | } ~ DELETE */ | ||
91 | KC_X, KC_Y, BE_Z, BE_CCED, BE_AMP, BE_AGRV, BE_EQL, KC_DEL | ||
92 | }; | ||
93 | 72 | ||
94 | #endif | 73 | // ! " # $ % & ' |
74 | KC_SPC, BE_EXLM, BE_QUOT, BE_QUOT, BE_DLR, BE_UGRV, BE_AMP, BE_APOS, | ||
75 | // ( ) * + , - . / | ||
76 | BE_LPRN, BE_RPRN, BE_DLR, BE_EQL, BE_COMM, BE_MINS, BE_SCLN, BE_COLN, | ||
77 | // 0 1 2 3 4 5 6 7 | ||
78 | BE_AGRV, BE_AMP, BE_EACU, BE_QUOT, BE_APOS, BE_LPRN, BE_PARA, BE_EGRV, | ||
79 | // 8 9 : ; < = > ? | ||
80 | BE_EXLM, BE_CCED, BE_COLN, BE_SCLN, BE_LESS, BE_EQL, BE_LESS, BE_COMM, | ||
81 | // @ A B C D E F G | ||
82 | BE_EACU, BE_A, KC_B, KC_C, KC_D, KC_E, KC_F, KC_G, | ||
83 | // H I J K L M N O | ||
84 | KC_H, KC_I, KC_J, KC_K, KC_L, BE_M, KC_N, KC_O, | ||
85 | // P Q R S T U V W | ||
86 | KC_P, BE_Q, KC_R, KC_S, KC_T, KC_U, KC_V, BE_W, | ||
87 | // X Y Z [ \ ] ^ _ | ||
88 | KC_X, KC_Y, BE_Z, BE_CIRC, BE_LESS, BE_DLR, BE_PARA, BE_MINS, | ||
89 | // ` a b c d e f g | ||
90 | BE_MU, BE_A, KC_B, KC_C, KC_D, KC_E, KC_F, KC_G, | ||
91 | // h i j k l m n o | ||
92 | KC_H, KC_I, KC_J, KC_K, KC_L, BE_M, KC_N, KC_O, | ||
93 | // p q r s t u v w | ||
94 | KC_P, BE_Q, KC_R, KC_S, KC_T, KC_U, KC_V, BE_W, | ||
95 | // x y z { | } ~ DEL | ||
96 | KC_X, KC_Y, BE_Z, BE_CCED, BE_AMP, BE_AGRV, BE_EQL, KC_DEL | ||
97 | }; | ||
diff --git a/quantum/keymap_extras/sendstring_bepo.h b/quantum/keymap_extras/sendstring_bepo.h index c7377e077..565c55b95 100644 --- a/quantum/keymap_extras/sendstring_bepo.h +++ b/quantum/keymap_extras/sendstring_bepo.h | |||
@@ -13,29 +13,85 @@ | |||
13 | * You should have received a copy of the GNU General Public License | 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/>. | 14 | * along with this program. If not, see <http://www.gnu.org/licenses/>. |
15 | */ | 15 | */ |
16 | /* Sendstring definitions for the bépo layout */ | 16 | |
17 | #ifndef SENDSTRING_BEPO | 17 | // Sendstring lookup tables for BÉPO layouts |
18 | #define SENDSTRING_BEPO | 18 | |
19 | #pragma once | ||
19 | 20 | ||
20 | #include "keymap_bepo.h" | 21 | #include "keymap_bepo.h" |
21 | 22 | ||
22 | const uint8_t ascii_to_keycode_lut[0x80] PROGMEM = { | 23 | const bool ascii_to_shift_lut[128] PROGMEM = { |
23 | 0, 0, 0, 0, 0, 0, 0, 0, | 24 | 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, |
25 | 0, 0, 0, 0, 0, 0, 0, 0, | 26 | 0, 0, 0, 0, 0, 0, 0, 0, |
26 | 0, 0, 0, KC_ESC, 0, 0, 0, 0, | 27 | 0, 0, 0, 0, 0, 0, 0, 0, |
27 | KC_SPC, BP_DCRC, BP_DQOT, BP_DOLLAR, BP_DOLLAR, BP_PERCENT, BP_P, BP_APOS, | 28 | |
28 | BP_LPRN, BP_RPRN, BP_ASTR, BP_PLUS, BP_COMM, BP_MINUS, BP_DOT, BP_SLSH, | 29 | 0, 1, 0, 1, 0, 0, 0, 0, |
29 | KC_0, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, | 30 | 0, 0, 0, 0, 0, 0, 0, 0, |
30 | KC_8, KC_9, BP_DOT, BP_DOT, KC_2, BP_EQUAL, KC_2, BP_APOS, | 31 | 1, 1, 1, 1, 1, 1, 1, 1, |
31 | BP_AT, BP_A, BP_B, BP_C, BP_D, BP_E, BP_F, BP_G, | 32 | 1, 1, 1, 1, 0, 0, 0, 1, |
32 | BP_H, BP_I, BP_J, BP_K, BP_L, BP_M, BP_N, BP_O, | 33 | 0, 1, 1, 1, 1, 1, 1, 1, |
33 | BP_P, BP_Q, BP_R, BP_S, BP_T, BP_U, BP_V, BP_W, | 34 | 1, 1, 1, 1, 1, 1, 1, 1, |
34 | BP_X, BP_Y, BP_Z, KC_4, BP_AGRV, KC_5, KC_5, KC_MINS, | 35 | 1, 1, 1, 1, 1, 1, 1, 1, |
35 | KC_2, BP_A, BP_B, BP_C, BP_D, BP_E, BP_F, BP_G, | 36 | 1, 1, 1, 0, 0, 0, 0, 0, |
36 | BP_H, BP_I, BP_J, BP_K, BP_L, BP_M, BP_N, BP_O, | 37 | 1, 0, 0, 0, 0, 0, 0, 0, |
37 | BP_P, BP_Q, BP_R, BP_S, BP_T, BP_U, BP_V, BP_W, | 38 | 0, 0, 0, 0, 0, 0, 0, 0, |
38 | BP_X, BP_Y, BP_Z, BP_Y, BP_B, BP_X, BP_K, KC_DEL, | 39 | 0, 0, 0, 0, 0, 0, 0, 0, |
40 | 0, 0, 0, 0, 0, 0, 0, 0 | ||
41 | }; | ||
42 | |||
43 | const bool ascii_to_altgr_lut[128] PROGMEM = { | ||
44 | 0, 0, 0, 0, 0, 0, 0, 0, | ||
45 | 0, 0, 0, 0, 0, 0, 0, 0, | ||
46 | 0, 0, 0, 0, 0, 0, 0, 0, | ||
47 | 0, 0, 0, 0, 0, 0, 0, 0, | ||
48 | |||
49 | 0, 0, 0, 0, 0, 0, 1, 0, | ||
50 | 0, 0, 0, 0, 0, 0, 0, 0, | ||
51 | 0, 0, 0, 0, 0, 0, 0, 0, | ||
52 | 0, 0, 0, 0, 1, 0, 1, 0, | ||
53 | 0, 0, 0, 0, 0, 0, 0, 0, | ||
54 | 0, 0, 0, 0, 0, 0, 0, 0, | ||
55 | 0, 0, 0, 0, 0, 0, 0, 0, | ||
56 | 0, 0, 0, 1, 1, 1, 1, 1, | ||
57 | 0, 0, 0, 0, 0, 0, 0, 0, | ||
58 | 0, 0, 0, 0, 0, 0, 0, 0, | ||
59 | 0, 0, 0, 0, 0, 0, 0, 0, | ||
60 | 0, 0, 0, 1, 1, 1, 1, 0 | ||
39 | }; | 61 | }; |
40 | 62 | ||
41 | #endif | 63 | const uint8_t ascii_to_keycode_lut[128] PROGMEM = { |
64 | // NUL SOH STX ETX EOT ENQ ACK BEL | ||
65 | XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, | ||
66 | // BS TAB LF VT FF CR SO SI | ||
67 | KC_BSPC, KC_TAB, KC_ENT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, | ||
68 | // DLE DC1 DC2 DC3 DC4 NAK SYN ETB | ||
69 | XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, | ||
70 | // CAN EM SUB ESC FS GS RS US | ||
71 | XXXXXXX, XXXXXXX, XXXXXXX, KC_ESC, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, | ||
72 | |||
73 | // ! " # $ % & ' | ||
74 | KC_SPC, BP_DCRC, BP_DQOT, BP_DLR, BP_DLR, BP_PERC, BP_P, BP_APOS, | ||
75 | // ( ) * + , - . / | ||
76 | BP_LPRN, BP_RPRN, BP_ASTR, BP_PLUS, BP_COMM, BP_MINS, BP_DOT, BP_SLSH, | ||
77 | // 0 1 2 3 4 5 6 7 | ||
78 | BP_ASTR, BP_DQOT, BP_LGIL, BP_RGIL, BP_LPRN, BP_RPRN, BP_AT, BP_PLUS, | ||
79 | // 8 9 : ; < = > ? | ||
80 | BP_MINS, BP_SLSH, BP_DOT, BP_COMM, BP_LGIL, BP_EQL, BP_RGIL, BP_APOS, | ||
81 | // @ A B C D E F G | ||
82 | BP_AT, BP_A, BP_B, BP_C, BP_D, BP_E, BP_F, BP_G, | ||
83 | // H I J K L M N O | ||
84 | BP_H, BP_I, BP_J, BP_K, BP_L, BP_M, BP_N, BP_O, | ||
85 | // P Q R S T U V W | ||
86 | BP_P, BP_Q, BP_R, BP_S, BP_T, BP_U, BP_V, BP_W, | ||
87 | // X Y Z [ \ ] ^ _ | ||
88 | BP_X, BP_Y, BP_Z, BP_LPRN, BP_AGRV, BP_RPRN, BP_AT, KC_SPC, | ||
89 | // ` a b c d e f g | ||
90 | BP_PERC, BP_A, BP_B, BP_C, BP_D, BP_E, BP_F, BP_G, | ||
91 | // h i j k l m n o | ||
92 | BP_H, BP_I, BP_J, BP_K, BP_L, BP_M, BP_N, BP_O, | ||
93 | // p q r s t u v w | ||
94 | BP_P, BP_Q, BP_R, BP_S, BP_T, BP_U, BP_V, BP_W, | ||
95 | // x y z { | } ~ DEL | ||
96 | BP_X, BP_Y, BP_Z, BP_Y, BP_B, BP_X, BP_K, KC_DEL | ||
97 | }; | ||
diff --git a/quantum/keymap_extras/sendstring_colemak.h b/quantum/keymap_extras/sendstring_colemak.h index fa9ace929..331f6c222 100644 --- a/quantum/keymap_extras/sendstring_colemak.h +++ b/quantum/keymap_extras/sendstring_colemak.h | |||
@@ -13,29 +13,45 @@ | |||
13 | * You should have received a copy of the GNU General Public License | 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/>. | 14 | * along with this program. If not, see <http://www.gnu.org/licenses/>. |
15 | */ | 15 | */ |
16 | /* Sendstring definitions for the Colemak layout */ | 16 | |
17 | #ifndef SENDSTRING_COLEMAK | 17 | // Sendstring lookup tables for Colemak layouts |
18 | #define SENDSTRING_COLEMAK | 18 | |
19 | #pragma once | ||
19 | 20 | ||
20 | #include "keymap_colemak.h" | 21 | #include "keymap_colemak.h" |
21 | 22 | ||
22 | const uint8_t ascii_to_keycode_lut[0x80] PROGMEM = { | 23 | const uint8_t ascii_to_keycode_lut[128] PROGMEM = { |
23 | 0, 0, 0, 0, 0, 0, 0, 0, | 24 | // NUL SOH STX ETX EOT ENQ ACK BEL |
24 | KC_BSPC, KC_TAB, KC_ENT, 0, 0, 0, 0, 0, | 25 | XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, |
25 | 0, 0, 0, 0, 0, 0, 0, 0, | 26 | // BS TAB LF VT FF CR SO SI |
26 | 0, 0, 0, KC_ESC, 0, 0, 0, 0, | 27 | KC_BSPC, KC_TAB, KC_ENT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, |
27 | KC_SPC, KC_1, KC_QUOT, KC_3, KC_4, KC_5, KC_7, KC_QUOT, | 28 | // DLE DC1 DC2 DC3 DC4 NAK SYN ETB |
28 | KC_9, KC_0, KC_8, KC_EQL, KC_COMM, KC_MINS, KC_DOT, KC_SLSH, | 29 | XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, |
29 | KC_0, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, | 30 | // CAN EM SUB ESC FS GS RS US |
30 | KC_8, KC_9, CM_SCLN, CM_SCLN, KC_COMM, KC_EQL, KC_DOT, KC_SLSH, | 31 | XXXXXXX, XXXXXXX, XXXXXXX, KC_ESC, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, |
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 | 32 | ||
41 | #endif | 33 | // ! " # $ % & ' |
34 | KC_SPC, KC_1, KC_QUOT, KC_3, KC_4, KC_5, KC_7, KC_QUOT, | ||
35 | // ( ) * + , - . / | ||
36 | KC_9, KC_0, KC_8, KC_EQL, KC_COMM, KC_MINS, KC_DOT, KC_SLSH, | ||
37 | // 0 1 2 3 4 5 6 7 | ||
38 | KC_0, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, | ||
39 | // 8 9 : ; < = > ? | ||
40 | KC_8, KC_9, CM_SCLN, CM_SCLN, KC_COMM, KC_EQL, KC_DOT, KC_SLSH, | ||
41 | // @ A B C D E F G | ||
42 | KC_2, CM_A, CM_B, CM_C, CM_D, CM_E, CM_F, CM_G, | ||
43 | // H I J K L M N O | ||
44 | CM_H, CM_I, CM_J, CM_K, CM_L, CM_M, CM_N, CM_O, | ||
45 | // P Q R S T U V W | ||
46 | CM_P, CM_Q, CM_R, CM_S, CM_T, CM_U, CM_V, CM_W, | ||
47 | // X Y Z [ \ ] ^ _ | ||
48 | CM_X, CM_Y, CM_Z, KC_LBRC, KC_BSLS, KC_RBRC, KC_6, KC_MINS, | ||
49 | // ` a b c d e f g | ||
50 | KC_GRV, CM_A, CM_B, CM_C, CM_D, CM_E, CM_F, CM_G, | ||
51 | // h i j k l m n o | ||
52 | CM_H, CM_I, CM_J, CM_K, CM_L, CM_M, CM_N, CM_O, | ||
53 | // p q r s t u v w | ||
54 | CM_P, CM_Q, CM_R, CM_S, CM_T, CM_U, CM_V, CM_W, | ||
55 | // x y z { | } ~ DEL | ||
56 | CM_X, CM_Y, CM_Z, KC_LBRC, KC_BSLS, KC_RBRC, KC_GRV, KC_DEL | ||
57 | }; | ||
diff --git a/quantum/keymap_extras/sendstring_dvorak.h b/quantum/keymap_extras/sendstring_dvorak.h index f5c5c818b..f2cb6c4a0 100644 --- a/quantum/keymap_extras/sendstring_dvorak.h +++ b/quantum/keymap_extras/sendstring_dvorak.h | |||
@@ -13,29 +13,45 @@ | |||
13 | * You should have received a copy of the GNU General Public License | 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/>. | 14 | * along with this program. If not, see <http://www.gnu.org/licenses/>. |
15 | */ | 15 | */ |
16 | /* Sendstring definitions for the Dvorak layout */ | 16 | |
17 | #ifndef SENDSTRING_DVORAK | 17 | // Sendstring lookup tables for Dvorak layouts |
18 | #define SENDSTRING_DVORAK | 18 | |
19 | #pragma once | ||
19 | 20 | ||
20 | #include "keymap_dvorak.h" | 21 | #include "keymap_dvorak.h" |
21 | 22 | ||
22 | const uint8_t ascii_to_keycode_lut[0x80] PROGMEM = { | 23 | const uint8_t ascii_to_keycode_lut[128] PROGMEM = { |
23 | 0, 0, 0, 0, 0, 0, 0, 0, | 24 | // NUL SOH STX ETX EOT ENQ ACK BEL |
24 | KC_BSPC, KC_TAB, KC_ENT, 0, 0, 0, 0, 0, | 25 | XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, |
25 | 0, 0, 0, 0, 0, 0, 0, 0, | 26 | // BS TAB LF VT FF CR SO SI |
26 | 0, 0, 0, KC_ESC, 0, 0, 0, 0, | 27 | KC_BSPC, KC_TAB, KC_ENT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, |
27 | KC_SPC, DV_1, DV_QUOT, DV_3, DV_4, DV_5, DV_7, DV_QUOT, | 28 | // DLE DC1 DC2 DC3 DC4 NAK SYN ETB |
28 | DV_9, DV_0, DV_8, DV_EQL, DV_COMM, DV_MINS, DV_DOT, DV_SLSH, | 29 | XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, |
29 | DV_0, DV_1, DV_2, DV_3, DV_4, DV_5, DV_6, DV_7, | 30 | // CAN EM SUB ESC FS GS RS US |
30 | DV_8, DV_9, DV_SCLN, DV_SCLN, DV_COMM, DV_EQL, DV_DOT, DV_SLSH, | 31 | XXXXXXX, XXXXXXX, XXXXXXX, KC_ESC, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, |
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 | 32 | ||
41 | #endif | 33 | // ! " # $ % & ' |
34 | KC_SPC, DV_1, DV_QUOT, DV_3, DV_4, DV_5, DV_7, DV_QUOT, | ||
35 | // ( ) * + , - . / | ||
36 | DV_9, DV_0, DV_8, DV_EQL, DV_COMM, DV_MINS, DV_DOT, DV_SLSH, | ||
37 | // 0 1 2 3 4 5 6 7 | ||
38 | DV_0, DV_1, DV_2, DV_3, DV_4, DV_5, DV_6, DV_7, | ||
39 | // 8 9 : ; < = > ? | ||
40 | DV_8, DV_9, DV_SCLN, DV_SCLN, DV_COMM, DV_EQL, DV_DOT, DV_SLSH, | ||
41 | // @ A B C D E F G | ||
42 | DV_2, DV_A, DV_B, DV_C, DV_D, DV_E, DV_F, DV_G, | ||
43 | // H I J K L M N O | ||
44 | DV_H, DV_I, DV_J, DV_K, DV_L, DV_M, DV_N, DV_O, | ||
45 | // P Q R S T U V W | ||
46 | DV_P, DV_Q, DV_R, DV_S, DV_T, DV_U, DV_V, DV_W, | ||
47 | // X Y Z [ \ ] ^ _ | ||
48 | DV_X, DV_Y, DV_Z, DV_LBRC, DV_BSLS, DV_RBRC, DV_6, DV_MINS, | ||
49 | // ` a b c d e f g | ||
50 | DV_GRV, DV_A, DV_B, DV_C, DV_D, DV_E, DV_F, DV_G, | ||
51 | // h i j k l m n o | ||
52 | DV_H, DV_I, DV_J, DV_K, DV_L, DV_M, DV_N, DV_O, | ||
53 | // p q r s t u v w | ||
54 | DV_P, DV_Q, DV_R, DV_S, DV_T, DV_U, DV_V, DV_W, | ||
55 | // x y z { | } ~ DEL | ||
56 | DV_X, DV_Y, DV_Z, DV_LBRC, DV_BSLS, DV_RBRC, DV_GRV, KC_DEL | ||
57 | }; | ||
diff --git a/quantum/keymap_extras/sendstring_german.h b/quantum/keymap_extras/sendstring_german.h index f20fab77d..61d224824 100644 --- a/quantum/keymap_extras/sendstring_german.h +++ b/quantum/keymap_extras/sendstring_german.h | |||
@@ -13,69 +13,85 @@ | |||
13 | * You should have received a copy of the GNU General Public License | 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/>. | 14 | * along with this program. If not, see <http://www.gnu.org/licenses/>. |
15 | */ | 15 | */ |
16 | /* Sendstring definitions for the German layout */ | 16 | |
17 | #ifndef SENDSTRING_GERMAN | 17 | // Sendstring lookup tables for German layouts |
18 | #define SENDSTRING_GERMAN | 18 | |
19 | #pragma once | ||
19 | 20 | ||
20 | #include "keymap_german.h" | 21 | #include "keymap_german.h" |
21 | 22 | ||
22 | const bool ascii_to_shift_lut[0x80] PROGMEM = { | 23 | const bool ascii_to_shift_lut[128] PROGMEM = { |
23 | 0, 0, 0, 0, 0, 0, 0, 0, | 24 | 0, 0, 0, 0, 0, 0, 0, 0, |
24 | 0, 0, 0, 0, 0, 0, 0, 0, | 25 | 0, 0, 0, 0, 0, 0, 0, 0, |
25 | 0, 0, 0, 0, 0, 0, 0, 0, | 26 | 0, 0, 0, 0, 0, 0, 0, 0, |
26 | 0, 0, 0, 0, 0, 0, 0, 0, | 27 | 0, 0, 0, 0, 0, 0, 0, 0, |
27 | 28 | ||
28 | 0, 1, 1, 0, 1, 1, 1, 1, | 29 | 0, 1, 1, 0, 1, 1, 1, 1, |
29 | 1, 1, 1, 0, 0, 0, 0, 1, | 30 | 1, 1, 1, 0, 0, 0, 0, 1, |
30 | 0, 0, 0, 0, 0, 0, 0, 0, | 31 | 0, 0, 0, 0, 0, 0, 0, 0, |
31 | 0, 0, 1, 1, 0, 1, 1, 1, | 32 | 0, 0, 1, 1, 0, 1, 1, 1, |
32 | 1, 1, 1, 1, 1, 1, 1, 1, | 33 | 0, 1, 1, 1, 1, 1, 1, 1, |
33 | 1, 1, 1, 1, 1, 1, 1, 1, | 34 | 1, 1, 1, 1, 1, 1, 1, 1, |
34 | 1, 1, 1, 1, 1, 1, 1, 1, | 35 | 1, 1, 1, 1, 1, 1, 1, 1, |
35 | 1, 1, 1, 0, 0, 0, 0, 1, | 36 | 1, 1, 1, 0, 0, 0, 0, 1, |
36 | 1, 0, 0, 0, 0, 0, 0, 0, | 37 | 1, 0, 0, 0, 0, 0, 0, 0, |
37 | 0, 0, 0, 0, 0, 0, 0, 0, | 38 | 0, 0, 0, 0, 0, 0, 0, 0, |
38 | 0, 0, 0, 0, 0, 0, 0, 0, | 39 | 0, 0, 0, 0, 0, 0, 0, 0, |
39 | 0, 0, 0, 1, 1, 1, 1, 0 | 40 | 0, 0, 0, 0, 0, 0, 0, 0 |
40 | }; | 41 | }; |
41 | 42 | ||
42 | /* Until an ALT table/functionality is added, the following symbols will not work: | 43 | const bool ascii_to_altgr_lut[128] PROGMEM = { |
43 | * § @ [ ] { } \ ~ äA öÖ ß ´ | 44 | 0, 0, 0, 0, 0, 0, 0, 0, |
44 | * Following characters can be printed using other characters like so: | 45 | 0, 0, 0, 0, 0, 0, 0, 0, |
45 | * [ in makro will be ü | 46 | 0, 0, 0, 0, 0, 0, 0, 0, |
46 | * { in makro will be Ü | 47 | 0, 0, 0, 0, 0, 0, 0, 0, |
47 | * ~ in makro will be ° | ||
48 | */ | ||
49 | const uint8_t ascii_to_keycode_lut[0x80] PROGMEM = { | ||
50 | 0, 0, 0, 0, 0, 0, 0, 0, | ||
51 | KC_BSPC, KC_TAB, KC_ENT, 0, 0, 0, 0, 0, | ||
52 | 0, 0, 0, 0, 0, 0, 0, 0, | ||
53 | 0, 0, 0, KC_ESC, 0, 0, 0, 0, | ||
54 | 48 | ||
55 | /* SPACE ! " # $ % & ' */ | 49 | 0, 0, 0, 0, 0, 0, 0, 0, |
56 | KC_SPC, KC_1, KC_2, DE_HASH, KC_4, KC_5, KC_6, DE_HASH, | 50 | 0, 0, 0, 0, 0, 0, 0, 0, |
57 | /* ( ) * + , - . / */ | 51 | 0, 0, 0, 0, 0, 0, 0, 0, |
58 | KC_8, KC_9, DE_PLUS, DE_PLUS, KC_COMM, DE_MINS, KC_DOT, KC_7, | 52 | 0, 0, 0, 0, 0, 0, 0, 0, |
59 | /* 0 1 2 3 4 5 6 7 */ | 53 | 1, 0, 0, 0, 0, 0, 0, 0, |
60 | KC_0, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, | 54 | 0, 0, 0, 0, 0, 0, 0, 0, |
61 | /* 8 9 : ; < = > ? */ | 55 | 0, 0, 0, 0, 0, 0, 0, 0, |
62 | KC_8, KC_9, KC_DOT, KC_COMM, DE_LESS, KC_0, DE_LESS, KC_MINS, | 56 | 0, 0, 0, 1, 1, 1, 0, 0, |
63 | /* @ A B C D E F G */ | 57 | 0, 0, 0, 0, 0, 0, 0, 0, |
64 | KC_2, KC_A, KC_B, KC_C, KC_D, KC_E, KC_F, KC_G, | 58 | 0, 0, 0, 0, 0, 0, 0, 0, |
65 | /* H I J K L M N O */ | 59 | 0, 0, 0, 0, 0, 0, 0, 0, |
66 | KC_H, KC_I, KC_J, KC_K, KC_L, KC_M, KC_N, KC_O, | 60 | 0, 0, 0, 1, 1, 1, 1, 0 |
67 | /* P Q R S T U V W */ | ||
68 | KC_P, KC_Q, KC_R, KC_S, KC_T, KC_U, KC_V, KC_W, | ||
69 | /* X Y Z [ \ ] ^ _ */ | ||
70 | KC_X, DE_Y, DE_Z, KC_LBRC, KC_BSLS, KC_RBRC, DE_CIRC, DE_MINS, | ||
71 | /* ` a b c d e f g */ | ||
72 | DE_ACUT, KC_A, KC_B, KC_C, KC_D, KC_E, KC_F, KC_G, | ||
73 | /* h i j k l m n o */ | ||
74 | KC_H, KC_I, KC_J, KC_K, KC_L, KC_M, KC_N, KC_O, | ||
75 | /* p q r s t u v w */ | ||
76 | KC_P, KC_Q, KC_R, KC_S, KC_T, KC_U, KC_V, KC_W, | ||
77 | /* x y z { | } ~ DELETE */ | ||
78 | KC_X, DE_Y, DE_Z, KC_LBRC, KC_BSLS, KC_RBRC, KC_GRV, KC_DEL | ||
79 | }; | 61 | }; |
80 | 62 | ||
81 | #endif | 63 | const uint8_t ascii_to_keycode_lut[128] PROGMEM = { |
64 | // NUL SOH STX ETX EOT ENQ ACK BEL | ||
65 | XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, | ||
66 | // BS TAB LF VT FF CR SO SI | ||
67 | KC_BSPC, KC_TAB, KC_ENT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, | ||
68 | // DLE DC1 DC2 DC3 DC4 NAK SYN ETB | ||
69 | XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, | ||
70 | // CAN EM SUB ESC FS GS RS US | ||
71 | XXXXXXX, XXXXXXX, XXXXXXX, KC_ESC, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, | ||
72 | |||
73 | // ! " # $ % & ' | ||
74 | KC_SPC, DE_1, DE_2, DE_HASH, DE_4, DE_5, DE_6, DE_HASH, | ||
75 | // ( ) * + , - . / | ||
76 | DE_8, DE_9, DE_PLUS, DE_PLUS, DE_COMM, DE_MINS, DE_DOT, DE_7, | ||
77 | // 0 1 2 3 4 5 6 7 | ||
78 | DE_0, DE_1, DE_2, DE_3, DE_4, DE_5, DE_6, DE_7, | ||
79 | // 8 9 : ; < = > ? | ||
80 | DE_8, DE_9, DE_DOT, DE_COMM, DE_LESS, DE_0, DE_LESS, DE_SS, | ||
81 | // @ A B C D E F G | ||
82 | DE_Q, DE_A, DE_B, DE_C, DE_D, DE_E, DE_F, DE_G, | ||
83 | // H I J K L M N O | ||
84 | DE_H, DE_I, DE_J, DE_K, DE_L, DE_M, DE_N, DE_O, | ||
85 | // P Q R S T U V W | ||
86 | DE_P, DE_Q, DE_R, DE_S, DE_T, DE_U, DE_V, DE_W, | ||
87 | // X Y Z [ \ ] ^ _ | ||
88 | DE_X, DE_Y, DE_Z, DE_8, DE_SS, DE_9, DE_CIRC, DE_MINS, | ||
89 | // ` a b c d e f g | ||
90 | DE_ACUT, DE_A, DE_B, DE_C, DE_D, DE_E, DE_F, DE_G, | ||
91 | // h i j k l m n o | ||
92 | DE_H, DE_I, DE_J, DE_K, DE_L, DE_M, DE_N, DE_O, | ||
93 | // p q r s t u v w | ||
94 | DE_P, DE_Q, DE_R, DE_S, DE_T, DE_U, DE_V, DE_W, | ||
95 | // x y z { | } ~ DEL | ||
96 | DE_X, DE_Y, DE_Z, DE_7, DE_LESS, DE_0, DE_PLUS, KC_DEL | ||
97 | }; | ||
diff --git a/quantum/keymap_extras/sendstring_jis.h b/quantum/keymap_extras/sendstring_jis.h index c5a38c6a5..fe42445f4 100644 --- a/quantum/keymap_extras/sendstring_jis.h +++ b/quantum/keymap_extras/sendstring_jis.h | |||
@@ -13,15 +13,19 @@ | |||
13 | * You should have received a copy of the GNU General Public License | 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/>. | 14 | * along with this program. If not, see <http://www.gnu.org/licenses/>. |
15 | */ | 15 | */ |
16 | /* Sendstring definitions for the JIS keyboard layout */ | ||
17 | #ifndef SENDSTRING_JIS | ||
18 | #define SENDSTRING_JIS | ||
19 | 16 | ||
20 | const bool ascii_to_shift_lut[0x80] PROGMEM = { | 17 | // Sendstring lookup tables for JIS layouts |
18 | |||
19 | #pragma once | ||
20 | |||
21 | #include "keymap_jp.h" | ||
22 | |||
23 | const bool ascii_to_shift_lut[128] PROGMEM = { | ||
21 | 0, 0, 0, 0, 0, 0, 0, 0, | 24 | 0, 0, 0, 0, 0, 0, 0, 0, |
22 | 0, 0, 0, 0, 0, 0, 0, 0, | 25 | 0, 0, 0, 0, 0, 0, 0, 0, |
23 | 0, 0, 0, 0, 0, 0, 0, 0, | 26 | 0, 0, 0, 0, 0, 0, 0, 0, |
24 | 0, 0, 0, 0, 0, 0, 0, 0, | 27 | 0, 0, 0, 0, 0, 0, 0, 0, |
28 | |||
25 | 0, 1, 1, 1, 1, 1, 1, 1, | 29 | 0, 1, 1, 1, 1, 1, 1, 1, |
26 | 1, 1, 1, 1, 0, 0, 0, 0, | 30 | 1, 1, 1, 1, 0, 0, 0, 0, |
27 | 0, 0, 0, 0, 0, 0, 0, 0, | 31 | 0, 0, 0, 0, 0, 0, 0, 0, |
@@ -36,23 +40,38 @@ const bool ascii_to_shift_lut[0x80] PROGMEM = { | |||
36 | 0, 0, 0, 1, 1, 1, 1, 0 | 40 | 0, 0, 0, 1, 1, 1, 1, 0 |
37 | }; | 41 | }; |
38 | 42 | ||
39 | const uint8_t ascii_to_keycode_lut[0x80] PROGMEM = { | 43 | const uint8_t ascii_to_keycode_lut[128] PROGMEM = { |
40 | 0, 0, 0, 0, 0, 0, 0, 0, | 44 | // NUL SOH STX ETX EOT ENQ ACK BEL |
41 | KC_BSPC, KC_TAB, KC_ENT, 0, 0, 0, 0, 0, | 45 | XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, |
42 | 0, 0, 0, 0, 0, 0, 0, 0, | 46 | // BS TAB LF VT FF CR SO SI |
43 | 0, 0, 0, KC_ESC, 0, 0, 0, 0, | 47 | KC_BSPC, KC_TAB, KC_ENT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, |
44 | KC_SPC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, | 48 | // DLE DC1 DC2 DC3 DC4 NAK SYN ETB |
45 | KC_8, KC_9, KC_QUOT, KC_SCLN, KC_COMM, KC_MINS, KC_DOT, KC_SLSH, | 49 | XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, |
46 | KC_0, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, | 50 | // CAN EM SUB ESC FS GS RS US |
47 | KC_8, KC_9, KC_QUOT, KC_SCLN, KC_COMM, KC_MINS, KC_DOT, KC_SLSH, | 51 | XXXXXXX, XXXXXXX, XXXXXXX, KC_ESC, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, |
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 | 52 | ||
58 | #endif | 53 | // ! " # $ % & ' |
54 | KC_SPC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, | ||
55 | // ( ) * + , - . / | ||
56 | KC_8, KC_9, JP_COLN, JP_SCLN, JP_COMM, JP_MINS, JP_DOT, JP_SLSH, | ||
57 | // 0 1 2 3 4 5 6 7 | ||
58 | KC_0, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, | ||
59 | // 8 9 : ; < = > ? | ||
60 | KC_8, KC_9, JP_COLN, JP_SCLN, JP_COMM, JP_MINS, JP_DOT, JP_SLSH, | ||
61 | // @ A B C D E F G | ||
62 | JP_AT, KC_A, KC_B, KC_C, KC_D, KC_E, KC_F, KC_G, | ||
63 | // H I J K L M N O | ||
64 | KC_H, KC_I, KC_J, KC_K, KC_L, KC_M, KC_N, KC_O, | ||
65 | // P Q R S T U V W | ||
66 | KC_P, KC_Q, KC_R, KC_S, KC_T, KC_U, KC_V, KC_W, | ||
67 | // X Y Z [ \ ] ^ _ | ||
68 | KC_X, KC_Y, KC_Z, JP_LBRC, JP_BSLS, JP_RBRC, JP_CIRC, JP_BSLS, | ||
69 | // ` a b c d e f g | ||
70 | JP_AT, KC_A, KC_B, KC_C, KC_D, KC_E, KC_F, KC_G, | ||
71 | // h i j k l m n o | ||
72 | KC_H, KC_I, KC_J, KC_K, KC_L, KC_M, KC_N, KC_O, | ||
73 | // p q r s t u v w | ||
74 | KC_P, KC_Q, KC_R, KC_S, KC_T, KC_U, KC_V, KC_W, | ||
75 | // x y z { | } ~ DEL | ||
76 | KC_X, KC_Y, KC_Z, JP_LBRC, JP_YEN, JP_RBRC, JP_CIRC, KC_DEL | ||
77 | }; | ||
diff --git a/quantum/keymap_extras/sendstring_norman.h b/quantum/keymap_extras/sendstring_norman.h index 57d450ca8..8d4ec8dab 100644 --- a/quantum/keymap_extras/sendstring_norman.h +++ b/quantum/keymap_extras/sendstring_norman.h | |||
@@ -13,27 +13,45 @@ | |||
13 | * You should have received a copy of the GNU General Public License | 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/>. | 14 | * along with this program. If not, see <http://www.gnu.org/licenses/>. |
15 | */ | 15 | */ |
16 | /* Sendstring definitions for the Colemak layout */ | 16 | |
17 | // Sendstring lookup tables for Norman layouts | ||
18 | |||
17 | #pragma once | 19 | #pragma once |
18 | 20 | ||
19 | #include "keymap_norman.h" | 21 | #include "keymap_norman.h" |
20 | 22 | ||
21 | const uint8_t ascii_to_keycode_lut[0x80] PROGMEM = { | 23 | const uint8_t ascii_to_keycode_lut[128] PROGMEM = { |
22 | 0, 0, 0, 0, 0, 0, 0, 0, | 24 | // NUL SOH STX ETX EOT ENQ ACK BEL |
23 | KC_BSPC, KC_TAB, KC_ENT, 0, 0, 0, 0, 0, | 25 | XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, |
24 | 0, 0, 0, 0, 0, 0, 0, 0, | 26 | // BS TAB LF VT FF CR SO SI |
25 | 0, 0, 0, KC_ESC, 0, 0, 0, 0, | 27 | KC_BSPC, KC_TAB, KC_ENT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, |
26 | KC_SPC, KC_1, KC_QUOT, KC_3, KC_4, KC_5, KC_7, KC_QUOT, | 28 | // DLE DC1 DC2 DC3 DC4 NAK SYN ETB |
27 | KC_9, KC_0, KC_8, KC_EQL, KC_COMM, KC_MINS, KC_DOT, KC_SLSH, | 29 | XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, |
28 | KC_0, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, | 30 | // CAN EM SUB ESC FS GS RS US |
29 | KC_8, KC_9, NM_SCLN, NM_SCLN, KC_COMM, KC_EQL, KC_DOT, KC_SLSH, | 31 | XXXXXXX, XXXXXXX, XXXXXXX, KC_ESC, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, |
30 | KC_2, NM_A, NM_B, NM_C, NM_D, NM_E, NM_F, NM_G, | ||
31 | NM_H, NM_I, NM_J, NM_K, NM_L, NM_M, NM_N, NM_O, | ||
32 | NM_P, NM_Q, NM_R, NM_S, NM_T, NM_U, NM_V, NM_W, | ||
33 | NM_X, NM_Y, NM_Z, KC_LBRC, KC_BSLS, KC_RBRC, KC_6, KC_MINS, | ||
34 | KC_GRV, NM_A, NM_B, NM_C, NM_D, NM_E, NM_F, NM_G, | ||
35 | NM_H, NM_I, NM_J, NM_K, NM_L, NM_M, NM_N, NM_O, | ||
36 | NM_P, NM_Q, NM_R, NM_S, NM_T, NM_U, NM_V, NM_W, | ||
37 | NM_X, NM_Y, NM_Z, KC_LBRC, KC_BSLS, KC_RBRC, KC_GRV, KC_DEL | ||
38 | }; | ||
39 | 32 | ||
33 | // ! " # $ % & ' | ||
34 | KC_SPC, KC_1, KC_QUOT, KC_3, KC_4, KC_5, KC_7, KC_QUOT, | ||
35 | // ( ) * + , - . / | ||
36 | KC_9, KC_0, KC_8, KC_EQL, KC_COMM, KC_MINS, KC_DOT, KC_SLSH, | ||
37 | // 0 1 2 3 4 5 6 7 | ||
38 | KC_0, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, | ||
39 | // 8 9 : ; < = > ? | ||
40 | KC_8, KC_9, NM_SCLN, NM_SCLN, KC_COMM, KC_EQL, KC_DOT, KC_SLSH, | ||
41 | // @ A B C D E F G | ||
42 | KC_2, NM_A, NM_B, NM_C, NM_D, NM_E, NM_F, NM_G, | ||
43 | // H I J K L M N O | ||
44 | NM_H, NM_I, NM_J, NM_K, NM_L, NM_M, NM_N, NM_O, | ||
45 | // P Q R S T U V W | ||
46 | NM_P, NM_Q, NM_R, NM_S, NM_T, NM_U, NM_V, NM_W, | ||
47 | // X Y Z [ \ ] ^ _ | ||
48 | NM_X, NM_Y, NM_Z, KC_LBRC, KC_BSLS, KC_RBRC, KC_6, KC_MINS, | ||
49 | // ` a b c d e f g | ||
50 | KC_GRV, NM_A, NM_B, NM_C, NM_D, NM_E, NM_F, NM_G, | ||
51 | // h i j k l m n o | ||
52 | NM_H, NM_I, NM_J, NM_K, NM_L, NM_M, NM_N, NM_O, | ||
53 | // p q r s t u v w | ||
54 | NM_P, NM_Q, NM_R, NM_S, NM_T, NM_U, NM_V, NM_W, | ||
55 | // x y z { | } ~ DEL | ||
56 | NM_X, NM_Y, NM_Z, KC_LBRC, KC_BSLS, KC_RBRC, KC_GRV, KC_DEL | ||
57 | }; | ||
diff --git a/quantum/keymap_extras/sendstring_spanish.h b/quantum/keymap_extras/sendstring_spanish.h index 719445929..985d60288 100644 --- a/quantum/keymap_extras/sendstring_spanish.h +++ b/quantum/keymap_extras/sendstring_spanish.h | |||
@@ -13,59 +13,85 @@ | |||
13 | * You should have received a copy of the GNU General Public License | 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/>. | 14 | * along with this program. If not, see <http://www.gnu.org/licenses/>. |
15 | */ | 15 | */ |
16 | /* Sendstring definitions for the Spanish layout */ | 16 | |
17 | #ifndef SENDSTRING_SPANISH | 17 | // Sendstring lookup tables for Spanish layouts |
18 | #define SENDSTRING_SPANISH | 18 | |
19 | #pragma once | ||
19 | 20 | ||
20 | #include "keymap_spanish.h" | 21 | #include "keymap_spanish.h" |
21 | 22 | ||
22 | const bool ascii_to_shift_lut[0x80] PROGMEM = { | 23 | const bool ascii_to_shift_lut[128] PROGMEM = { |
23 | 0, 0, 0, 0, 0, 0, 0, 0, | 24 | 0, 0, 0, 0, 0, 0, 0, 0, |
24 | 0, 0, 0, 0, 0, 0, 0, 0, | 25 | 0, 0, 0, 0, 0, 0, 0, 0, |
25 | 0, 0, 0, 0, 0, 0, 0, 0, | 26 | 0, 0, 0, 0, 0, 0, 0, 0, |
26 | 0, 0, 0, 0, 0, 0, 0, 0, | 27 | 0, 0, 0, 0, 0, 0, 0, 0, |
27 | 28 | ||
28 | 0, 1, 1, 1, 1, 1, 1, 0, | 29 | 0, 1, 1, 0, 1, 1, 1, 0, |
29 | 1, 1, 1, 0, 0, 0, 0, 1, | 30 | 1, 1, 1, 0, 0, 0, 0, 1, |
30 | 0, 0, 0, 0, 0, 0, 0, 0, | 31 | 0, 0, 0, 0, 0, 0, 0, 0, |
31 | |||
32 | 0, 0, 1, 1, 0, 1, 1, 1, | 32 | 0, 0, 1, 1, 0, 1, 1, 1, |
33 | 0, 1, 1, 1, 1, 1, 1, 1, | ||
33 | 1, 1, 1, 1, 1, 1, 1, 1, | 34 | 1, 1, 1, 1, 1, 1, 1, 1, |
34 | 1, 1, 1, 1, 1, 1, 1, 1, | 35 | 1, 1, 1, 1, 1, 1, 1, 1, |
35 | 1, 1, 1, 1, 1, 1, 1, 1, | ||
36 | |||
37 | 1, 1, 1, 0, 0, 0, 1, 1, | 36 | 1, 1, 1, 0, 0, 0, 1, 1, |
38 | 0, 0, 0, 0, 0, 0, 0, 0, | 37 | 0, 0, 0, 0, 0, 0, 0, 0, |
39 | 0, 0, 0, 0, 0, 0, 0, 0, | 38 | 0, 0, 0, 0, 0, 0, 0, 0, |
40 | 0, 0, 0, 0, 0, 0, 0, 0, | 39 | 0, 0, 0, 0, 0, 0, 0, 0, |
41 | 0, 0, 0, 1, 1, 1, 1, 0 | 40 | 0, 0, 0, 0, 0, 0, 0, 0 |
42 | }; | 41 | }; |
43 | 42 | ||
44 | /* Until an ALT table/functionality is added, the following symbols will not work: | 43 | const bool ascii_to_altgr_lut[128] PROGMEM = { |
45 | # @ [ ] { } | ~ | 44 | 0, 0, 0, 0, 0, 0, 0, 0, |
46 | */ | 45 | 0, 0, 0, 0, 0, 0, 0, 0, |
47 | const uint8_t ascii_to_keycode_lut[0x80] PROGMEM = { | 46 | 0, 0, 0, 0, 0, 0, 0, 0, |
48 | 0, 0, 0, 0, 0, 0, 0, 0, | 47 | 0, 0, 0, 0, 0, 0, 0, 0, |
49 | KC_BSPC, KC_TAB, KC_ENT, 0, 0, 0, 0, 0, | 48 | |
50 | 0, 0, 0, 0, 0, 0, 0, 0, | 49 | 0, 0, 0, 1, 0, 0, 0, 0, |
51 | 0, 0, 0, KC_ESC, 0, 0, 0, 0, | 50 | 0, 0, 0, 0, 0, 0, 0, 0, |
52 | /* , ! " # $ % & ' */ | 51 | 0, 0, 0, 0, 0, 0, 0, 0, |
53 | KC_SPC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, ES_APOS, | 52 | 0, 0, 0, 0, 0, 0, 0, 0, |
54 | /* ( ) * + , - . / */ | 53 | 1, 0, 0, 0, 0, 0, 0, 0, |
55 | KC_8, KC_9, ES_PLUS, ES_PLUS, KC_COMM, ES_MINS, KC_DOT, KC_7, | 54 | 0, 0, 0, 0, 0, 0, 0, 0, |
56 | KC_0, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, | 55 | 0, 0, 0, 0, 0, 0, 0, 0, |
57 | /* 8 9 : ; < = > ? */ | 56 | 0, 0, 0, 1, 1, 1, 0, 0, |
58 | KC_8, KC_9, KC_DOT, KC_COMM, KC_NUBS, KC_0, KC_NUBS, ES_APOS, | 57 | 0, 0, 0, 0, 0, 0, 0, 0, |
59 | /* @ A B C D E F G */ | 58 | 0, 0, 0, 0, 0, 0, 0, 0, |
60 | KC_2, KC_A, KC_B, KC_C, KC_D, KC_E, KC_F, KC_G, | 59 | 0, 0, 0, 0, 0, 0, 0, 0, |
61 | KC_H, KC_I, KC_J, KC_K, KC_L, KC_M, KC_N, KC_O, | 60 | 0, 0, 0, 1, 1, 1, 1, 0 |
62 | KC_P, KC_Q, KC_R, KC_S, KC_T, KC_U, KC_V, KC_W, | ||
63 | /* X Y Z [ \ ] ^ _ */ | ||
64 | KC_X, KC_Y, KC_Z, KC_LBRC, KC_BSLS, KC_RBRC, ES_GRV, ES_MINS, | ||
65 | ES_GRV, KC_A, KC_B, KC_C, KC_D, KC_E, KC_F, KC_G, | ||
66 | KC_H, KC_I, KC_J, KC_K, KC_L, KC_M, KC_N, KC_O, | ||
67 | KC_P, KC_Q, KC_R, KC_S, KC_T, KC_U, KC_V, KC_W, | ||
68 | KC_X, KC_Y, KC_Z, KC_LBRC, KC_BSLS, KC_RBRC, KC_GRV, KC_DEL | ||
69 | }; | 61 | }; |
70 | 62 | ||
71 | #endif | 63 | const uint8_t ascii_to_keycode_lut[128] PROGMEM = { |
64 | // NUL SOH STX ETX EOT ENQ ACK BEL | ||
65 | XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, | ||
66 | // BS TAB LF VT FF CR SO SI | ||
67 | KC_BSPC, KC_TAB, KC_ENT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, | ||
68 | // DLE DC1 DC2 DC3 DC4 NAK SYN ETB | ||
69 | XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, | ||
70 | // CAN EM SUB ESC FS GS RS US | ||
71 | XXXXXXX, XXXXXXX, XXXXXXX, KC_ESC, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, | ||
72 | |||
73 | // ! " # $ % & ' | ||
74 | KC_SPC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, ES_APOS, | ||
75 | // ( ) * + , - . / | ||
76 | KC_8, KC_9, ES_PLUS, ES_PLUS, KC_COMM, ES_MINS, KC_DOT, KC_7, | ||
77 | // 0 1 2 3 4 5 6 7 | ||
78 | KC_0, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, | ||
79 | // 8 9 : ; < = > ? | ||
80 | KC_8, KC_9, KC_DOT, KC_COMM, ES_LESS, KC_0, ES_LESS, ES_APOS, | ||
81 | // @ A B C D E F G | ||
82 | KC_2, KC_A, KC_B, KC_C, KC_D, KC_E, KC_F, KC_G, | ||
83 | // H I J K L M N O | ||
84 | KC_H, KC_I, KC_J, KC_K, KC_L, KC_M, KC_N, KC_O, | ||
85 | // P Q R S T U V W | ||
86 | KC_P, KC_Q, KC_R, KC_S, KC_T, KC_U, KC_V, KC_W, | ||
87 | // X Y Z [ \ ] ^ _ | ||
88 | KC_X, KC_Y, KC_Z, ES_GRV, ES_OVRR, ES_PLUS, ES_GRV, ES_MINS, | ||
89 | // ` a b c d e f g | ||
90 | ES_GRV, KC_A, KC_B, KC_C, KC_D, KC_E, KC_F, KC_G, | ||
91 | // h i j k l m n o | ||
92 | KC_H, KC_I, KC_J, KC_K, KC_L, KC_M, KC_N, KC_O, | ||
93 | // p q r s t u v w | ||
94 | KC_P, KC_Q, KC_R, KC_S, KC_T, KC_U, KC_V, KC_W, | ||
95 | // x y z { | } ~ DEL | ||
96 | KC_X, KC_Y, KC_Z, ES_ACUT, KC_1, ES_CCED, ES_NTIL, KC_DEL | ||
97 | }; | ||
diff --git a/quantum/keymap_extras/sendstring_uk.h b/quantum/keymap_extras/sendstring_uk.h index 2824e5d44..a01c9bc43 100644 --- a/quantum/keymap_extras/sendstring_uk.h +++ b/quantum/keymap_extras/sendstring_uk.h | |||
@@ -14,12 +14,13 @@ | |||
14 | * along with this program. If not, see <http://www.gnu.org/licenses/>. | 14 | * along with this program. If not, see <http://www.gnu.org/licenses/>. |
15 | */ | 15 | */ |
16 | 16 | ||
17 | /* SEND_STRING() LUTs for UK layouts */ | 17 | // Sendstring lookup tables for UK layouts |
18 | 18 | ||
19 | #ifndef SENDSTRING_UK | 19 | #pragma once |
20 | #define SENDSTRING_UK | ||
21 | 20 | ||
22 | const bool ascii_to_shift_lut[0x80] PROGMEM = { | 21 | #include "keymap_uk.h" |
22 | |||
23 | const bool ascii_to_shift_lut[128] PROGMEM = { | ||
23 | 0, 0, 0, 0, 0, 0, 0, 0, | 24 | 0, 0, 0, 0, 0, 0, 0, 0, |
24 | 0, 0, 0, 0, 0, 0, 0, 0, | 25 | 0, 0, 0, 0, 0, 0, 0, 0, |
25 | 0, 0, 0, 0, 0, 0, 0, 0, | 26 | 0, 0, 0, 0, 0, 0, 0, 0, |
@@ -39,24 +40,38 @@ const bool ascii_to_shift_lut[0x80] PROGMEM = { | |||
39 | 0, 0, 0, 1, 1, 1, 1, 0 | 40 | 0, 0, 0, 1, 1, 1, 1, 0 |
40 | }; | 41 | }; |
41 | 42 | ||
42 | const uint8_t ascii_to_keycode_lut[0x80] PROGMEM = { | 43 | const uint8_t ascii_to_keycode_lut[128] PROGMEM = { |
43 | 0, 0, 0, 0, 0, 0, 0, 0, | 44 | // NUL SOH STX ETX EOT ENQ ACK BEL |
44 | KC_BSPC, KC_TAB, KC_ENT, 0, 0, 0, 0, 0, | 45 | XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, |
45 | 0, 0, 0, 0, 0, 0, 0, 0, | 46 | // BS TAB LF VT FF CR SO SI |
46 | 0, 0, 0, KC_ESC, 0, 0, 0, 0, | 47 | KC_BSPC, KC_TAB, KC_ENT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, |
48 | // DLE DC1 DC2 DC3 DC4 NAK SYN ETB | ||
49 | XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, | ||
50 | // CAN EM SUB ESC FS GS RS US | ||
51 | XXXXXXX, XXXXXXX, XXXXXXX, KC_ESC, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, | ||
47 | 52 | ||
48 | KC_SPC, KC_1, KC_2, KC_NUHS, KC_4, KC_5, KC_7, KC_QUOT, | 53 | // ! " # $ % & ' |
49 | KC_9, KC_0, KC_8, KC_EQL, KC_COMM, KC_MINS, KC_DOT, KC_SLSH, | 54 | UK_SPC, UK_1, UK_2, UK_HASH, UK_4, UK_5, UK_7, UK_QUOT, |
50 | KC_0, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, | 55 | // ( ) * + , - . / |
51 | KC_8, KC_9, KC_SCLN, KC_SCLN, KC_COMM, KC_EQL, KC_DOT, KC_SLSH, | 56 | UK_9, UK_0, UK_8, UK_EQL, UK_COMM, UK_MINS, UK_DOT, UK_SLSH, |
52 | KC_QUOT, KC_A, KC_B, KC_C, KC_D, KC_E, KC_F, KC_G, | 57 | // 0 1 2 3 4 5 6 7 |
53 | KC_H, KC_I, KC_J, KC_K, KC_L, KC_M, KC_N, KC_O, | 58 | UK_0, UK_1, UK_2, UK_3, UK_4, UK_5, UK_6, UK_7, |
54 | KC_P, KC_Q, KC_R, KC_S, KC_T, KC_U, KC_V, KC_W, | 59 | // 8 9 : ; < = > ? |
55 | KC_X, KC_Y, KC_Z, KC_LBRC, KC_BSLS, KC_RBRC, KC_6, KC_MINS, | 60 | UK_8, UK_9, UK_SCLN, UK_SCLN, UK_COMM, UK_EQL, UK_DOT, UK_SLSH, |
56 | KC_GRV, KC_A, KC_B, KC_C, KC_D, KC_E, KC_F, KC_G, | 61 | // @ A B C D E F G |
57 | KC_H, KC_I, KC_J, KC_K, KC_L, KC_M, KC_N, KC_O, | 62 | UK_QUOT, UK_A, UK_B, UK_C, UK_D, UK_E, UK_F, UK_G, |
58 | KC_P, KC_Q, KC_R, KC_S, KC_T, KC_U, KC_V, KC_W, | 63 | // H I J K L M N O |
59 | KC_X, KC_Y, KC_Z, KC_LBRC, KC_BSLS, KC_RBRC, KC_GRV, KC_DEL | 64 | UK_H, UK_I, UK_J, UK_K, UK_L, UK_M, UK_N, UK_O, |
65 | // P Q R S T U V W | ||
66 | UK_P, UK_Q, UK_R, UK_S, UK_T, UK_U, UK_V, UK_W, | ||
67 | // X Y Z [ \ ] ^ _ | ||
68 | UK_X, UK_Y, UK_Z, UK_LBRC, UK_BSLS, UK_RBRC, UK_6, UK_MINS, | ||
69 | // ` a b c d e f g | ||
70 | UK_GRV, UK_A, UK_B, UK_C, UK_D, UK_E, UK_F, UK_G, | ||
71 | // h i j k l m n o | ||
72 | UK_H, UK_I, UK_J, UK_K, UK_L, UK_M, UK_N, UK_O, | ||
73 | // p q r s t u v w | ||
74 | UK_P, UK_Q, UK_R, UK_S, UK_T, UK_U, UK_V, UK_W, | ||
75 | // x y z { | } ~ DEL | ||
76 | UK_X, UK_Y, UK_Z, UK_LBRC, UK_BSLS, UK_RBRC, UK_HASH, KC_DEL | ||
60 | }; | 77 | }; |
61 | |||
62 | #endif | ||
diff --git a/quantum/keymap_extras/sendstring_workman.h b/quantum/keymap_extras/sendstring_workman.h index a8571839d..a0dd4756f 100644 --- a/quantum/keymap_extras/sendstring_workman.h +++ b/quantum/keymap_extras/sendstring_workman.h | |||
@@ -13,29 +13,45 @@ | |||
13 | * You should have received a copy of the GNU General Public License | 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/>. | 14 | * along with this program. If not, see <http://www.gnu.org/licenses/>. |
15 | */ | 15 | */ |
16 | /* Sendstring definitions for the Workman layout */ | 16 | |
17 | #ifndef SENDSTRING_WORKMAN | 17 | // Sendstring lookup tables for Workman layouts |
18 | #define SENDSTRING_WORKMAN | 18 | |
19 | #pragma once | ||
19 | 20 | ||
20 | #include "keymap_workman.h" | 21 | #include "keymap_workman.h" |
21 | 22 | ||
22 | const uint8_t ascii_to_keycode_lut[0x80] PROGMEM = { | 23 | const uint8_t ascii_to_keycode_lut[128] PROGMEM = { |
23 | 0, 0, 0, 0, 0, 0, 0, 0, | 24 | // NUL SOH STX ETX EOT ENQ ACK BEL |
24 | KC_BSPC, KC_TAB, KC_ENT, 0, 0, 0, 0, 0, | 25 | XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, |
25 | 0, 0, 0, 0, 0, 0, 0, 0, | 26 | // BS TAB LF VT FF CR SO SI |
26 | 0, 0, 0, KC_ESC, 0, 0, 0, 0, | 27 | KC_BSPC, KC_TAB, KC_ENT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, |
27 | KC_SPC, KC_1, KC_QUOT, KC_3, KC_4, KC_5, KC_7, KC_QUOT, | 28 | // DLE DC1 DC2 DC3 DC4 NAK SYN ETB |
28 | KC_9, KC_0, KC_8, KC_EQL, KC_COMM, KC_MINS, KC_DOT, KC_SLSH, | 29 | XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, |
29 | KC_0, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, | 30 | // CAN EM SUB ESC FS GS RS US |
30 | KC_8, KC_9, KC_SCLN, KC_SCLN, KC_COMM, KC_EQL, KC_DOT, KC_SLSH, | 31 | XXXXXXX, XXXXXXX, XXXXXXX, KC_ESC, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, |
31 | KC_2, WK_A, WK_B, WK_C, WK_D, WK_E, WK_F, WK_G, | ||
32 | WK_H, WK_I, WK_J, WK_K, WK_L, WK_M, WK_N, WK_O, | ||
33 | WK_P, WK_Q, WK_R, WK_S, WK_T, WK_U, WK_V, WK_W, | ||
34 | WK_X, WK_Y, WK_Z, KC_LBRC, KC_BSLS, KC_RBRC, KC_6, KC_MINS, | ||
35 | KC_GRV, WK_A, WK_B, WK_C, WK_D, WK_E, WK_F, WK_G, | ||
36 | WK_H, WK_I, WK_J, WK_K, WK_L, WK_M, WK_N, WK_O, | ||
37 | WK_P, WK_Q, WK_R, WK_S, WK_T, WK_U, WK_V, WK_W, | ||
38 | WK_X, WK_Y, WK_Z, KC_LBRC, KC_BSLS, KC_RBRC, KC_GRV, KC_DEL | ||
39 | }; | ||
40 | 32 | ||
41 | #endif \ No newline at end of file | 33 | // ! " # $ % & ' |
34 | KC_SPC, KC_1, KC_QUOT, KC_3, KC_4, KC_5, KC_7, KC_QUOT, | ||
35 | // ( ) * + , - . / | ||
36 | KC_9, KC_0, KC_8, KC_EQL, KC_COMM, KC_MINS, KC_DOT, KC_SLSH, | ||
37 | // 0 1 2 3 4 5 6 7 | ||
38 | KC_0, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, | ||
39 | // 8 9 : ; < = > ? | ||
40 | KC_8, KC_9, KC_SCLN, KC_SCLN, KC_COMM, KC_EQL, KC_DOT, KC_SLSH, | ||
41 | // @ A B C D E F G | ||
42 | KC_2, WK_A, WK_B, WK_C, WK_D, WK_E, WK_F, WK_G, | ||
43 | // H I J K L M N O | ||
44 | WK_H, WK_I, WK_J, WK_K, WK_L, WK_M, WK_N, WK_O, | ||
45 | // P Q R S T U V W | ||
46 | WK_P, WK_Q, WK_R, WK_S, WK_T, WK_U, WK_V, WK_W, | ||
47 | // X Y Z [ \ ] ^ _ | ||
48 | WK_X, WK_Y, WK_Z, KC_LBRC, KC_BSLS, KC_RBRC, KC_6, KC_MINS, | ||
49 | // ` a b c d e f g | ||
50 | KC_GRV, WK_A, WK_B, WK_C, WK_D, WK_E, WK_F, WK_G, | ||
51 | // h i j k l m n o | ||
52 | WK_H, WK_I, WK_J, WK_K, WK_L, WK_M, WK_N, WK_O, | ||
53 | // p q r s t u v w | ||
54 | WK_P, WK_Q, WK_R, WK_S, WK_T, WK_U, WK_V, WK_W, | ||
55 | // x y z { | } ~ DEL | ||
56 | WK_X, WK_Y, WK_Z, KC_LBRC, KC_BSLS, KC_RBRC, KC_GRV, KC_DEL | ||
57 | }; | ||
diff --git a/quantum/quantum.c b/quantum/quantum.c index 44635fe3e..31dfa60cd 100644 --- a/quantum/quantum.c +++ b/quantum/quantum.c | |||
@@ -719,11 +719,12 @@ bool process_record_quantum(keyrecord_t *record) { | |||
719 | } | 719 | } |
720 | 720 | ||
721 | __attribute__ ((weak)) | 721 | __attribute__ ((weak)) |
722 | const bool ascii_to_shift_lut[0x80] PROGMEM = { | 722 | const bool ascii_to_shift_lut[128] PROGMEM = { |
723 | 0, 0, 0, 0, 0, 0, 0, 0, | 723 | 0, 0, 0, 0, 0, 0, 0, 0, |
724 | 0, 0, 0, 0, 0, 0, 0, 0, | 724 | 0, 0, 0, 0, 0, 0, 0, 0, |
725 | 0, 0, 0, 0, 0, 0, 0, 0, | 725 | 0, 0, 0, 0, 0, 0, 0, 0, |
726 | 0, 0, 0, 0, 0, 0, 0, 0, | 726 | 0, 0, 0, 0, 0, 0, 0, 0, |
727 | |||
727 | 0, 1, 1, 1, 1, 1, 1, 0, | 728 | 0, 1, 1, 1, 1, 1, 1, 0, |
728 | 1, 1, 1, 1, 0, 0, 0, 0, | 729 | 1, 1, 1, 1, 0, 0, 0, 0, |
729 | 0, 0, 0, 0, 0, 0, 0, 0, | 730 | 0, 0, 0, 0, 0, 0, 0, 0, |
@@ -739,11 +740,12 @@ const bool ascii_to_shift_lut[0x80] PROGMEM = { | |||
739 | }; | 740 | }; |
740 | 741 | ||
741 | __attribute__ ((weak)) | 742 | __attribute__ ((weak)) |
742 | const bool ascii_to_altgr_lut[0x80] PROGMEM = { | 743 | const bool ascii_to_altgr_lut[128] PROGMEM = { |
743 | 0, 0, 0, 0, 0, 0, 0, 0, | 744 | 0, 0, 0, 0, 0, 0, 0, 0, |
744 | 0, 0, 0, 0, 0, 0, 0, 0, | 745 | 0, 0, 0, 0, 0, 0, 0, 0, |
745 | 0, 0, 0, 0, 0, 0, 0, 0, | 746 | 0, 0, 0, 0, 0, 0, 0, 0, |
746 | 0, 0, 0, 0, 0, 0, 0, 0, | 747 | 0, 0, 0, 0, 0, 0, 0, 0, |
748 | |||
747 | 0, 0, 0, 0, 0, 0, 0, 0, | 749 | 0, 0, 0, 0, 0, 0, 0, 0, |
748 | 0, 0, 0, 0, 0, 0, 0, 0, | 750 | 0, 0, 0, 0, 0, 0, 0, 0, |
749 | 0, 0, 0, 0, 0, 0, 0, 0, | 751 | 0, 0, 0, 0, 0, 0, 0, 0, |
@@ -759,23 +761,40 @@ const bool ascii_to_altgr_lut[0x80] PROGMEM = { | |||
759 | }; | 761 | }; |
760 | 762 | ||
761 | __attribute__ ((weak)) | 763 | __attribute__ ((weak)) |
762 | const uint8_t ascii_to_keycode_lut[0x80] PROGMEM = { | 764 | const uint8_t ascii_to_keycode_lut[128] PROGMEM = { |
763 | 0, 0, 0, 0, 0, 0, 0, 0, | 765 | // NUL SOH STX ETX EOT ENQ ACK BEL |
764 | KC_BSPC, KC_TAB, KC_ENT, 0, 0, 0, 0, 0, | 766 | XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, |
765 | 0, 0, 0, 0, 0, 0, 0, 0, | 767 | // BS TAB LF VT FF CR SO SI |
766 | 0, 0, 0, KC_ESC, 0, 0, 0, 0, | 768 | KC_BSPC, KC_TAB, KC_ENT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, |
767 | KC_SPC, KC_1, KC_QUOT, KC_3, KC_4, KC_5, KC_7, KC_QUOT, | 769 | // DLE DC1 DC2 DC3 DC4 NAK SYN ETB |
768 | KC_9, KC_0, KC_8, KC_EQL, KC_COMM, KC_MINS, KC_DOT, KC_SLSH, | 770 | XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, |
769 | KC_0, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, | 771 | // CAN EM SUB ESC FS GS RS US |
770 | KC_8, KC_9, KC_SCLN, KC_SCLN, KC_COMM, KC_EQL, KC_DOT, KC_SLSH, | 772 | XXXXXXX, XXXXXXX, XXXXXXX, KC_ESC, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, |
771 | KC_2, KC_A, KC_B, KC_C, KC_D, KC_E, KC_F, KC_G, | 773 | |
772 | KC_H, KC_I, KC_J, KC_K, KC_L, KC_M, KC_N, KC_O, | 774 | // ! " # $ % & ' |
773 | KC_P, KC_Q, KC_R, KC_S, KC_T, KC_U, KC_V, KC_W, | 775 | KC_SPC, KC_1, KC_QUOT, KC_3, KC_4, KC_5, KC_7, KC_QUOT, |
774 | KC_X, KC_Y, KC_Z, KC_LBRC, KC_BSLS, KC_RBRC, KC_6, KC_MINS, | 776 | // ( ) * + , - . / |
775 | KC_GRV, KC_A, KC_B, KC_C, KC_D, KC_E, KC_F, KC_G, | 777 | KC_9, KC_0, KC_8, KC_EQL, KC_COMM, KC_MINS, KC_DOT, KC_SLSH, |
776 | KC_H, KC_I, KC_J, KC_K, KC_L, KC_M, KC_N, KC_O, | 778 | // 0 1 2 3 4 5 6 7 |
777 | KC_P, KC_Q, KC_R, KC_S, KC_T, KC_U, KC_V, KC_W, | 779 | KC_0, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, |
778 | KC_X, KC_Y, KC_Z, KC_LBRC, KC_BSLS, KC_RBRC, KC_GRV, KC_DEL | 780 | // 8 9 : ; < = > ? |
781 | KC_8, KC_9, KC_SCLN, KC_SCLN, KC_COMM, KC_EQL, KC_DOT, KC_SLSH, | ||
782 | // @ A B C D E F G | ||
783 | KC_2, KC_A, KC_B, KC_C, KC_D, KC_E, KC_F, KC_G, | ||
784 | // H I J K L M N O | ||
785 | KC_H, KC_I, KC_J, KC_K, KC_L, KC_M, KC_N, KC_O, | ||
786 | // P Q R S T U V W | ||
787 | KC_P, KC_Q, KC_R, KC_S, KC_T, KC_U, KC_V, KC_W, | ||
788 | // X Y Z [ \ ] ^ _ | ||
789 | KC_X, KC_Y, KC_Z, KC_LBRC, KC_BSLS, KC_RBRC, KC_6, KC_MINS, | ||
790 | // ` a b c d e f g | ||
791 | KC_GRV, KC_A, KC_B, KC_C, KC_D, KC_E, KC_F, KC_G, | ||
792 | // h i j k l m n o | ||
793 | KC_H, KC_I, KC_J, KC_K, KC_L, KC_M, KC_N, KC_O, | ||
794 | // p q r s t u v w | ||
795 | KC_P, KC_Q, KC_R, KC_S, KC_T, KC_U, KC_V, KC_W, | ||
796 | // x y z { | } ~ DEL | ||
797 | KC_X, KC_Y, KC_Z, KC_LBRC, KC_BSLS, KC_RBRC, KC_GRV, KC_DEL | ||
779 | }; | 798 | }; |
780 | 799 | ||
781 | void send_string(const char *str) { | 800 | void send_string(const char *str) { |
diff --git a/quantum/quantum.h b/quantum/quantum.h index f089c6ef6..56f30624c 100644 --- a/quantum/quantum.h +++ b/quantum/quantum.h | |||
@@ -201,9 +201,9 @@ extern layer_state_t default_layer_state; | |||
201 | 201 | ||
202 | #define SEND_STRING(string) send_string_P(PSTR(string)) | 202 | #define SEND_STRING(string) send_string_P(PSTR(string)) |
203 | 203 | ||
204 | extern const bool ascii_to_shift_lut[0x80]; | 204 | extern const bool ascii_to_shift_lut[128]; |
205 | extern const bool ascii_to_altgr_lut[0x80]; | 205 | extern const bool ascii_to_altgr_lut[128]; |
206 | extern const uint8_t ascii_to_keycode_lut[0x80]; | 206 | extern const uint8_t ascii_to_keycode_lut[128]; |
207 | 207 | ||
208 | void send_string(const char *str); | 208 | void send_string(const char *str); |
209 | void send_string_with_delay(const char *str, uint8_t interval); | 209 | void send_string_with_delay(const char *str, uint8_t interval); |