aboutsummaryrefslogtreecommitdiff
path: root/quantum/keymap_extras
diff options
context:
space:
mode:
Diffstat (limited to 'quantum/keymap_extras')
-rw-r--r--quantum/keymap_extras/sendstring_belgian.h79
-rw-r--r--quantum/keymap_extras/sendstring_bepo.h98
-rw-r--r--quantum/keymap_extras/sendstring_colemak.h60
-rw-r--r--quantum/keymap_extras/sendstring_dvorak.h60
-rw-r--r--quantum/keymap_extras/sendstring_german.h104
-rw-r--r--quantum/keymap_extras/sendstring_jis.h65
-rw-r--r--quantum/keymap_extras/sendstring_norman.h56
-rw-r--r--quantum/keymap_extras/sendstring_spanish.h96
-rw-r--r--quantum/keymap_extras/sendstring_uk.h61
-rw-r--r--quantum/keymap_extras/sendstring_workman.h60
10 files changed, 470 insertions, 269 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
22const bool ascii_to_shift_lut[0x80] PROGMEM = { 23const 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};
41const bool ascii_to_altgr_lut[0x80] PROGMEM = { 42
43const 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 63const uint8_t ascii_to_keycode_lut[128] PROGMEM = {
62// SEND_STRING(" !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^^``_abcdefghijklmnopqrstuvwxyz{|}~~"); 64 // NUL SOH STX ETX EOT ENQ ACK BEL
63const 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
22const uint8_t ascii_to_keycode_lut[0x80] PROGMEM = { 23const 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
43const 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 63const 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
22const uint8_t ascii_to_keycode_lut[0x80] PROGMEM = { 23const 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
22const uint8_t ascii_to_keycode_lut[0x80] PROGMEM = { 23const 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
22const bool ascii_to_shift_lut[0x80] PROGMEM = { 23const 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: 43const 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*/
49const 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 63const 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
20const 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
23const 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
39const uint8_t ascii_to_keycode_lut[0x80] PROGMEM = { 43const 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
21const uint8_t ascii_to_keycode_lut[0x80] PROGMEM = { 23const 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
22const bool ascii_to_shift_lut[0x80] PROGMEM = { 23const 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: 43const 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,
47const 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 63const 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
22const bool ascii_to_shift_lut[0x80] PROGMEM = { 21#include "keymap_uk.h"
22
23const 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
42const uint8_t ascii_to_keycode_lut[0x80] PROGMEM = { 43const 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
22const uint8_t ascii_to_keycode_lut[0x80] PROGMEM = { 23const 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};