summaryrefslogtreecommitdiff
path: root/keyboards/emptystring
diff options
context:
space:
mode:
Diffstat (limited to 'keyboards/emptystring')
-rw-r--r--keyboards/emptystring/nqg/keyboard.json68
-rw-r--r--keyboards/emptystring/nqg/keymaps/default/keymap.c61
-rw-r--r--keyboards/emptystring/nqg/keymaps/default/rules.mk1
-rw-r--r--keyboards/emptystring/nqg/readme.md15
4 files changed, 145 insertions, 0 deletions
diff --git a/keyboards/emptystring/nqg/keyboard.json b/keyboards/emptystring/nqg/keyboard.json
new file mode 100644
index 0000000000..226ab34303
--- /dev/null
+++ b/keyboards/emptystring/nqg/keyboard.json
@@ -0,0 +1,68 @@
1{
2 "keyboard_name": "NQG",
3 "manufacturer": "emptystring",
4 "maintainer": "culturalsnow",
5 "usb": {
6 "vid": "0x0076",
7 "pid": "0x0037",
8 "device_version": "1.0.0"
9 },
10 "features": {
11 "bootmagic": false,
12 "extrakey": false,
13 "mousekey": false,
14 "nkro": true
15 },
16 "matrix_pins": {
17 "cols": ["F7", "F6", "B5", "B4", "E6", "D7", "C6", "D4", "D0", "D1"],
18 "rows": ["B6", "B2", "B3", "B1"]
19 },
20 "diode_direction": "COL2ROW",
21 "development_board": "promicro",
22 "layouts": {
23 "LAYOUT": {
24 "layout": [
25 {"matrix": [0, 0], "x": 1, "y": 0},
26 {"matrix": [0, 1], "x": 2, "y": 0},
27 {"matrix": [0, 2], "x": 3, "y": 0},
28 {"matrix": [0, 3], "x": 4, "y": 0},
29 {"matrix": [0, 4], "x": 5, "y": 0},
30 {"matrix": [0, 5], "x": 6, "y": 0},
31 {"matrix": [0, 6], "x": 7, "y": 0},
32 {"matrix": [0, 7], "x": 8, "y": 0},
33 {"matrix": [0, 8], "x": 9, "y": 0},
34 {"matrix": [0, 9], "x": 10, "y": 0},
35
36 {"matrix": [1, 0], "x": 1, "y": 1},
37 {"matrix": [1, 1], "x": 2, "y": 1},
38 {"matrix": [1, 2], "x": 3, "y": 1},
39 {"matrix": [1, 3], "x": 4, "y": 1},
40 {"matrix": [1, 4], "x": 5, "y": 1},
41 {"matrix": [1, 5], "x": 6, "y": 1},
42 {"matrix": [1, 6], "x": 7, "y": 1},
43 {"matrix": [1, 7], "x": 8, "y": 1},
44 {"matrix": [1, 8], "x": 9, "y": 1},
45 {"matrix": [1, 9], "x": 10, "y": 1},
46
47 {"matrix": [2, 0], "x": 1, "y": 2},
48 {"matrix": [2, 1], "x": 2, "y": 2},
49 {"matrix": [2, 2], "x": 3, "y": 2},
50 {"matrix": [2, 3], "x": 4, "y": 2},
51 {"matrix": [2, 4], "x": 5, "y": 2},
52 {"matrix": [2, 5], "x": 6, "y": 2},
53 {"matrix": [2, 6], "x": 7, "y": 2},
54 {"matrix": [2, 7], "x": 8, "y": 2},
55 {"matrix": [2, 8], "x": 9, "y": 2},
56 {"matrix": [2, 9], "x": 10, "y": 2},
57 {"matrix": [3, 0], "x": 0, "y": 2},
58
59 {"matrix": [3, 2], "x": 3, "y": 3},
60 {"matrix": [3, 3], "x": 4, "y": 3},
61 {"matrix": [3, 4], "x": 5, "y": 3},
62 {"matrix": [3, 5], "x": 6, "y": 3},
63 {"matrix": [3, 6], "x": 7, "y": 3},
64 {"matrix": [3, 7], "x": 8, "y": 3}
65 ]
66 }
67 }
68}
diff --git a/keyboards/emptystring/nqg/keymaps/default/keymap.c b/keyboards/emptystring/nqg/keymaps/default/keymap.c
new file mode 100644
index 0000000000..9b87225f19
--- /dev/null
+++ b/keyboards/emptystring/nqg/keymaps/default/keymap.c
@@ -0,0 +1,61 @@
1// Copyright 2022 QMK
2// SPDX-License-Identifier: GPL-2.0-or-later
3#include QMK_KEYBOARD_H
4
5#define _BASE 0
6#define _LOWER 1
7#define _RAISE 2
8
9enum tapdances{
10 TD_SCCL = 0,
11 TD_ENSL,
12 TD_N0BS,
13 TD_RPPI,
14};
15
16#define KC_SCCL TD(TD_SCCL)
17#define KC_ENSL TD(TD_ENSL)
18#define KC_N0BS TD(TD_N0BS)
19#define KC_RPPI TD(TD_RPPI)
20
21#define KC_BSCT LCTL_T(KC_BSPC)
22#define KC_ALEN LALT(KC_ENT)
23#define KC_CTEN LCTL(KC_ENT)
24#define KC_STAB LSFT_T(KC_TAB)
25#define KC_WLNG LALT(KC_LSFT)
26#define WIN_LOCK LGUI(KC_L)
27#define KC_ULCK LCTL(LALT(KC_DEL))
28#define KC_DSTP LGUI(KC_D)
29#define KC_ESLO LT(_LOWER, KC_ESC)
30
31
32tap_dance_action_t tap_dance_actions[] = {
33 [TD_SCCL] = ACTION_TAP_DANCE_DOUBLE(KC_SCLN, KC_QUOT),
34 [TD_ENSL] = ACTION_TAP_DANCE_DOUBLE(KC_SLSH, KC_ENT),
35 [TD_N0BS] = ACTION_TAP_DANCE_DOUBLE(KC_0, KC_BSLS),
36 [TD_RPPI] = ACTION_TAP_DANCE_DOUBLE(KC_RPRN, KC_PIPE),
37};
38
39const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
40
41 [_BASE] = LAYOUT(
42 KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P,
43 KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCCL,
44 KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_ENSL,
45 KC_STAB, KC_ESLO, KC_BSCT, KC_BSCT, KC_SPC, KC_SPC, MO(_RAISE)
46 ),
47
48 [_LOWER] = LAYOUT(
49 KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPPI,
50 _______, _______, KC_DSTP, _______, KC_WLNG, _______, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR,
51 _______, _______, _______, _______, _______, _______, KC_INS, KC_DEL, KC_HOME, KC_END,
52 KC_CTEN, _______, KC_BSCT, KC_BSCT, KC_SPC, KC_SPC, KC_ULCK
53 ),
54
55 [_RAISE] = LAYOUT(
56 KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_N0BS,
57 _______, _______, _______, _______, _______, _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC,
58 _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT,
59 KC_ALEN, WIN_LOCK, KC_BSCT, KC_BSCT, KC_SPC, KC_SPC, _______
60 )
61};
diff --git a/keyboards/emptystring/nqg/keymaps/default/rules.mk b/keyboards/emptystring/nqg/keymaps/default/rules.mk
new file mode 100644
index 0000000000..e5ddcae8d9
--- /dev/null
+++ b/keyboards/emptystring/nqg/keymaps/default/rules.mk
@@ -0,0 +1 @@
TAP_DANCE_ENABLE = yes
diff --git a/keyboards/emptystring/nqg/readme.md b/keyboards/emptystring/nqg/readme.md
new file mode 100644
index 0000000000..b2ceeeb87d
--- /dev/null
+++ b/keyboards/emptystring/nqg/readme.md
@@ -0,0 +1,15 @@
1# NQG: Not Quite Gherkin
2
3![NQG](https://github.com/culturalsnow/NQG/blob/master/images/NQGLayout.jpg)
4
5NQG (Not Quite Gherkin) is a 30% ortholinear keyboard with a macro key and dedicated row for thumb keys, made by emptystring studio.
6
7Keyboard Maintainer: [Culturalsnow](http://github.com/culturalsnow)
8Hardware Supported: NQG PCB, Pro Micro
9Hardware Availability: Kits are available from [SA_EndlessGame](http://twitter.com/SA_EndlessGame)
10
11Make example for this keyboard (after setting up your build environment):
12
13 make emptystring/nqg:default
14
15See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).