aboutsummaryrefslogtreecommitdiff
path: root/quantum/keymap_extras
diff options
context:
space:
mode:
authorRyan <fauxpark@gmail.com>2020-03-19 05:11:57 +1100
committerGitHub <noreply@github.com>2020-03-18 11:11:57 -0700
commitfc4ef6934dc8596882428d11877d065ca6272129 (patch)
treea4c4e2b4d8bdfcf550fac135a314043b88686327 /quantum/keymap_extras
parent0dff26b5509e91f6b6f5a9eed2762513d69ce567 (diff)
downloadqmk_firmware-fc4ef6934dc8596882428d11877d065ca6272129.tar.gz
qmk_firmware-fc4ef6934dc8596882428d11877d065ca6272129.zip
Update Programmer Dvorak keymap and add sendstring LUT (#8456)
* Update Programmer Dvorak keymap and add sendstring LUT * Include quantum.h
Diffstat (limited to 'quantum/keymap_extras')
-rw-r--r--quantum/keymap_extras/keymap_dvp.h181
-rw-r--r--quantum/keymap_extras/sendstring_dvp.h80
2 files changed, 184 insertions, 77 deletions
diff --git a/quantum/keymap_extras/keymap_dvp.h b/quantum/keymap_extras/keymap_dvp.h
index 4b60a67d4..99c69a4af 100644
--- a/quantum/keymap_extras/keymap_dvp.h
+++ b/quantum/keymap_extras/keymap_dvp.h
@@ -14,85 +14,112 @@
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#ifndef KEYMAP_DVP_H 17#pragma once
18#define KEYMAP_DVP_H
19 18
20#include "keymap.h" 19#include "keymap.h"
21 20
22// Normal characters 21// clang-format off
23#define DP_DLR KC_GRV
24#define DP_AMPR KC_1
25#define DP_LBRC KC_2
26#define DP_LCBR KC_3
27#define DP_RCBR KC_4
28#define DP_LPRN KC_5
29#define DP_EQL KC_6
30#define DP_ASTR KC_7
31#define DP_RPRN KC_8
32#define DP_PLUS KC_9
33#define DP_RBRC KC_0
34#define DP_EXLM KC_MINS
35#define DP_HASH KC_EQL
36 22
37#define DP_SCLN KC_Q 23/*
38#define DP_COMM KC_W 24 * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
39#define DP_DOT KC_E 25 * │ $ │ & │ [ │ { │ } │ ( │ = │ * │ ) │ + │ ] │ ! │ # │       │
40#define DP_P KC_R 26 * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
41#define DP_Y KC_T 27 * │     │ ; │ , │ . │ P │ Y │ F │ G │ C │ R │ L │ / │ @ │  \  │
42#define DP_F KC_Y 28 * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤
43#define DP_G KC_U 29 * │      │ A │ O │ E │ U │ I │ D │ H │ T │ N │ S │ - │        │
44#define DP_C KC_I 30 * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤
45#define DP_R KC_O 31 * │        │ ' │ Q │ J │ K │ X │ B │ M │ W │ V │ Z │          │
46#define DP_L KC_P 32 * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
47#define DP_SLSH KC_LBRC 33 * │    │    │    │                        │    │    │    │    │
48#define DP_AT KC_RBRC 34 * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
49#define DP_BSLS KC_BSLS 35 */
50 36// Row 1
51#define DP_A KC_A 37#define DP_DLR KC_GRV // $
52#define DP_O KC_S 38#define DP_AMPR KC_1 // &
53#define DP_E KC_D 39#define DP_LBRC KC_2 // [
54#define DP_U KC_F 40#define DP_LCBR KC_3 // {
55#define DP_I KC_G 41#define DP_RCBR KC_4 // }
56#define DP_D KC_H 42#define DP_LPRN KC_5 // (
57#define DP_H KC_J 43#define DP_EQL KC_6 // =
58#define DP_T KC_K 44#define DP_ASTR KC_7 // *
59#define DP_N KC_L 45#define DP_RPRN KC_8 // )
60#define DP_S KC_SCLN 46#define DP_PLUS KC_9 // +
61#define DP_MINS KC_QUOT 47#define DP_RBRC KC_0 // ]
62 48#define DP_EXLM KC_MINS // !
63#define DP_QUOT KC_Z 49#define DP_HASH KC_EQL // #
64#define DP_Q KC_X 50// Row 2
65#define DP_J KC_C 51#define DP_SCLN KC_Q // ;
66#define DP_K KC_V 52#define DP_COMM KC_W // ,
67#define DP_X KC_B 53#define DP_DOT KC_E // .
68#define DP_B KC_N 54#define DP_P KC_R // P
69#define DP_M KC_M 55#define DP_Y KC_T // Y
70#define DP_W KC_COMM 56#define DP_F KC_Y // F
71#define DP_V KC_DOT 57#define DP_G KC_U // G
72#define DP_Z KC_SLSH 58#define DP_C KC_I // C
73 59#define DP_R KC_O // R
74// Shifted characters 60#define DP_L KC_P // L
75#define DP_TILD LSFT(DP_DLR) 61#define DP_SLSH KC_LBRC // /
76#define DP_PERC LSFT(DP_AMPR) 62#define DP_AT KC_RBRC // @
77#define DP_7 LSFT(DP_LBRC) 63#define DP_BSLS KC_BSLS // (backslash)
78#define DP_5 LSFT(DP_LCBR) 64// Row 3
79#define DP_3 LSFT(DP_RCBR) 65#define DP_A KC_A // A
80#define DP_1 LSFT(DP_LPRN) 66#define DP_O KC_S // O
81#define DP_9 LSFT(DP_EQL) 67#define DP_E KC_D // E
82#define DP_0 LSFT(DP_ASTR) 68#define DP_U KC_F // U
83#define DP_2 LSFT(DP_RPRN) 69#define DP_I KC_G // I
84#define DP_4 LSFT(DP_PLUS) 70#define DP_D KC_H // D
85#define DP_6 LSFT(DP_RBRC) 71#define DP_H KC_J // H
86#define DP_8 LSFT(DP_EXLM) 72#define DP_T KC_K // T
87#define DP_GRV LSFT(DP_HASH) 73#define DP_N KC_L // N
88 74#define DP_S KC_SCLN // S
89#define DP_COLN LSFT(DP_SCLN) 75#define DP_MINS KC_QUOT // -
90#define DP_LABK LSFT(DP_COMM) 76// Row 4
91#define DP_RABK LSFT(DP_DOT) 77#define DP_QUOT KC_Z // '
92#define DP_QUES LSFT(DP_SLSH) 78#define DP_Q KC_X // Q
93#define DP_CIRC LSFT(DP_AT) 79#define DP_J KC_C // J
94#define DP_PIPE LSFT(DP_BSLS) 80#define DP_K KC_V // K
95#define DP_UNDS LSFT(DP_MINS) 81#define DP_X KC_B // X
96#define DP_DQUO LSFT(DP_QUOT) 82#define DP_B KC_N // B
83#define DP_M KC_M // M
84#define DP_W KC_COMM // W
85#define DP_V KC_DOT // V
86#define DP_Z KC_SLSH // Z
97 87
98#endif 88/* Shifted symbols
89 * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
90 * │ ~ │ % │ 7 │ 5 │ 3 │ 1 │ 9 │ 0 │ 2 │ 4 │ 6 │ 8 │ ` │       │
91 * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
92 * │     │ : │ < │ > │   │   │   │   │   │   │   │ ? │ ^ │  |  │
93 * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤
94 * │      │   │   │   │   │   │   │   │   │   │   │ _ │        │
95 * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤
96 * │        │ " │   │   │   │   │   │   │   │   │   │          │
97 * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
98 * │    │    │    │                        │    │    │    │    │
99 * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
100 */
101// Row 1
102#define DP_TILD S(DP_DLR) // ~
103#define DP_PERC S(DP_AMPR) // %
104#define DP_7 S(DP_LBRC) // 7
105#define DP_5 S(DP_LCBR) // 5
106#define DP_3 S(DP_RCBR) // 3
107#define DP_1 S(DP_LPRN) // 1
108#define DP_9 S(DP_EQL) // 9
109#define DP_0 S(DP_ASTR) // 0
110#define DP_2 S(DP_RPRN) // 2
111#define DP_4 S(DP_PLUS) // 4
112#define DP_6 S(DP_RBRC) // 6
113#define DP_8 S(DP_EXLM) // 8
114#define DP_GRV S(DP_HASH) // `
115// Row 2
116#define DP_COLN S(DP_SCLN) // :
117#define DP_LABK S(DP_COMM) // <
118#define DP_RABK S(DP_DOT) // >
119#define DP_QUES S(DP_SLSH) // ?
120#define DP_CIRC S(DP_AT) // ^
121#define DP_PIPE S(DP_BSLS) // |
122// Row 3
123#define DP_UNDS S(DP_MINS) // _
124// Row 4
125#define DP_DQUO S(DP_QUOT) // "
diff --git a/quantum/keymap_extras/sendstring_dvp.h b/quantum/keymap_extras/sendstring_dvp.h
new file mode 100644
index 000000000..74b595524
--- /dev/null
+++ b/quantum/keymap_extras/sendstring_dvp.h
@@ -0,0 +1,80 @@
1/* Copyright 2020
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
17// Sendstring lookup tables for Programmer Dvorak layouts
18
19#pragma once
20
21#include "keymap_dvp.h"
22#include "quantum.h"
23
24// clang-format off
25
26const uint8_t ascii_to_shift_lut[16] PROGMEM = {
27 KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0),
28 KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0),
29 KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0),
30 KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0),
31
32 KCLUT_ENTRY(0, 0, 1, 0, 0, 1, 0, 0),
33 KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0),
34 KCLUT_ENTRY(1, 1, 1, 1, 1, 1, 1, 1),
35 KCLUT_ENTRY(1, 1, 1, 0, 1, 0, 1, 1),
36 KCLUT_ENTRY(0, 1, 1, 1, 1, 1, 1, 1),
37 KCLUT_ENTRY(1, 1, 1, 1, 1, 1, 1, 1),
38 KCLUT_ENTRY(1, 1, 1, 1, 1, 1, 1, 1),
39 KCLUT_ENTRY(1, 1, 1, 0, 0, 0, 1, 1),
40 KCLUT_ENTRY(1, 0, 0, 0, 0, 0, 0, 0),
41 KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0),
42 KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0),
43 KCLUT_ENTRY(0, 0, 0, 0, 1, 0, 1, 0)
44};
45
46const uint8_t ascii_to_keycode_lut[128] PROGMEM = {
47 // NUL SOH STX ETX EOT ENQ ACK BEL
48 XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
49 // BS TAB LF VT FF CR SO SI
50 KC_BSPC, KC_TAB, KC_ENT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
51 // DLE DC1 DC2 DC3 DC4 NAK SYN ETB
52 XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
53 // CAN EM SUB ESC FS GS RS US
54 XXXXXXX, XXXXXXX, XXXXXXX, KC_ESC, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
55
56 // ! " # $ % & '
57 KC_SPC, DP_EXLM, DP_QUOT, DP_HASH, DP_DLR, DP_AMPR, DP_AMPR, DP_QUOT,
58 // ( ) * + , - . /
59 DP_LPRN, DP_RPRN, DP_ASTR, DP_PLUS, DP_COMM, DP_MINS, DP_DOT, DP_SLSH,
60 // 0 1 2 3 4 5 6 7
61 DP_ASTR, DP_LPRN, DP_RPRN, DP_RCBR, DP_PLUS, DP_LCBR, DP_RBRC, DP_LBRC,
62 // 8 9 : ; < = > ?
63 DP_EXLM, DP_EQL, DP_SCLN, DP_SCLN, DP_COMM, DP_EQL, DP_DOT, DP_SLSH,
64 // @ A B C D E F G
65 DP_AT, DP_A, DP_B, DP_C, DP_D, DP_E, DP_F, DP_G,
66 // H I J K L M N O
67 DP_H, DP_I, DP_J, DP_K, DP_L, DP_M, DP_N, DP_O,
68 // P Q R S T U V W
69 DP_P, DP_Q, DP_R, DP_S, DP_T, DP_U, DP_V, DP_W,
70 // X Y Z [ \ ] ^ _
71 DP_X, DP_Y, DP_Z, DP_LBRC, DP_BSLS, DP_RBRC, DP_AT, DP_MINS,
72 // ` a b c d e f g
73 DP_HASH, DP_A, DP_B, DP_C, DP_D, DP_E, DP_F, DP_G,
74 // h i j k l m n o
75 DP_H, DP_I, DP_J, DP_K, DP_L, DP_M, DP_N, DP_O,
76 // p q r s t u v w
77 DP_P, DP_Q, DP_R, DP_S, DP_T, DP_U, DP_V, DP_W,
78 // x y z { | } ~ DEL
79 DP_X, DP_Y, DP_Z, DP_LCBR, DP_BSLS, DP_RCBR, DP_DLR, KC_DEL
80};