summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorQMK Bot <hello@qmk.fm>2024-10-06 09:09:10 +0000
committerQMK Bot <hello@qmk.fm>2024-10-06 09:09:10 +0000
commitbf6de46d7fd9ab185c57c1ebb9372ea980846040 (patch)
tree7d56cf667d1581e788194bab50ff4eadbcb1ee10
parentc9cd92ece3537a91e509488ea0ab1ae8b30d9c65 (diff)
parent7446c6ea7d49b9967b6f308e47a351f8c1398ab5 (diff)
Merge remote-tracking branch 'origin/master' into develop
-rw-r--r--keyboards/thumbsup/keymaps/default/keymap.c175
-rw-r--r--keyboards/thumbsup/keymaps/default/rules.mk1
-rw-r--r--keyboards/thumbsup/rev9_promicro_4x12/config.h28
-rw-r--r--keyboards/thumbsup/rev9_promicro_4x12/keyboard.json77
-rw-r--r--keyboards/thumbsup/rev9_promicro_4x12/readme.md27
-rw-r--r--keyboards/thumbsup/rev9_promicro_4x12/rules.mk1
6 files changed, 309 insertions, 0 deletions
diff --git a/keyboards/thumbsup/keymaps/default/keymap.c b/keyboards/thumbsup/keymaps/default/keymap.c
new file mode 100644
index 0000000000..a7bc427180
--- /dev/null
+++ b/keyboards/thumbsup/keymaps/default/keymap.c
@@ -0,0 +1,175 @@
1/* Copyright 2022 Alexander (Sasha) Karmanov
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#include QMK_KEYBOARD_H
17
18
19
20// Defines names for use in layer keycodes and the keymap
21enum layer_names {
22 _QWERTY,
23 _CURSORLEFT,
24 _CURSORRGHT,
25 _NUMBERS,
26 _EXTRARIGHT
27};
28
29// Aliases for this command to make the thumb keys work as LOWER/RAISE on hold and as space on hit.
30//#define CURSORRGHT LT(_CURSORRGHT,KC_SPC)
31//#define CURSORLEFT LT(_CURSORLEFT,KC_SPC)
32
33const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
34
35
36/* Qwerty
37 * ,-----------------------------------------+ +-----------------------------------------.
38 * | Esc | Q | W | E | R | T | | Y | U | I | O | P |BSpc |
39 * |------+------+------+------+------+------+ +------+------+------+------+------+------|
40 * | Tab | A | S | D | F | G | | H | J | K | L | ; |Enter |
41Hold:
42 Extra-Rt
43 * |------+------+------+------+------+------| |------+------+------+------+------+------|
44 * | Ctrl | Z | X | C | V | B | | N | M | , | . | / |RCtrl |
45 * +------+------+------+------+------+------+ +------+------+------+------+------+------+
46 . | GUI | Alt | | | | | | RAlt | Menu | .
47 | +------+------+ | | | | +------+------+ |
48Hold: | | LSft |CursLt| |CursRt| RSft | |
49Single hit: | | |Space | |Space | | |
50 | +------+------| |------+------+ |
51 +------------------------------> SPACE SPACE <-----------------------------+
52
53 */
54[_QWERTY] = LAYOUT(
55 KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
56 LT(_EXTRARIGHT,KC_TAB), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_PENT,
57 KC_LCTL, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RCTL,
58 KC_SPC, KC_LGUI, KC_LALT, KC_LSFT, LT(TL_LOWR,KC_SPC), LT(TL_UPPR ,KC_SPC), KC_RSFT, KC_RALT, KC_APP, KC_SPC
59),
60
61
62/*
63
64Layers below are used on top of QWERTY layer defined above.
65(Except the PLOVER/STENO layers.)
66 +-------+
67The keys which are shown empty, like this: | |, represent a transparent key,
68 +-------+
69meaning the key from the underlaying layer (i.e. QWERTY) will be used.
70In the keymaps those keys are defined as "_______".
71
72 +-------+ +-------+
73The keys which are shown solid, like this: | XXXXX | or this | ... |, represent an opaque/blocking key?
74 +-------+ +-------+
75Such key is not doing anything in that layer nor allowing the key from the underlaying layer
76to be invoked.
77In the keymaps those keys are defined as "XXXXXXX".
78
79Most of the modifiers are the same in all layers.
80So in most layers they are defined as transparent keys,
81letting the keys from QWERTY layer to do the work.
82
83With that idea all the layers below leave the unmodified keys as transparent keys.
84In the same time - the layers block the keys that have no sense to be used
85in that given layer. For instance in the cursor control layers
86some of the keys are not used in the layer, but they are blocked to avoid
87alpha-keys from QWERTY layer to appear.
88
89For the same reason the keymaps below are shown simplified,
90without separate thumbcluster.
91
92*/
93
94
95
96/* Cursor Control on the right (Right Space)
97 * ,-----------------------------------------------------------------------------------.
98 * | Esc |Break |WheelD|MousUp|WheelU| Del | Ins | Home | Up | End | ` | Del |
99 * |------+------+------+------+------+-------------+------+------+------+------+------|
100 * | |SelAll|MousLt|MousDn|MousRt| ... | PgUp | Left | Down |Right | ... | |
101 * |------+------+------+------+------+------|------+------+------+------+------+------|
102 * | | Undo | Cut | Copy | Paste| ... | PgDn |MsBtLe|MsBtMi|MsBtRt| ... | |
103 * `------+------+------+------+------+------+------+------+------+------+------+------.
104 * | | | | | X | | | |
105 * `-------------------------------------------------------'
106 */
107[_CURSORRGHT] = LAYOUT(
108 _______, KC_BRK, KC_WH_D, KC_MS_U, KC_WH_U, KC_DEL, KC_PGUP, KC_HOME, KC_UP, KC_END, KC_GRV, KC_DEL,
109 KC_ENT, LCTL(KC_A), KC_MS_L, KC_MS_D, KC_MS_R, XXXXXXX, KC_PGDN, KC_LEFT, KC_DOWN, KC_RGHT, XXXXXXX, _______,
110 _______, LCTL(KC_Z), LSFT(KC_DEL), LCTL(KC_INS), LSFT(KC_INS), XXXXXXX, KC_INS, KC_BTN1, KC_BTN3, KC_BTN2, XXXXXXX, _______,
111 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
112),
113
114
115
116 /* Cursor Control on the left (Left Space)
117 * ,-----------------------------------------------------------------------------------.
118 * | |Break | Home | Up | End | Ins | Del |WheelU|MousUp|WheelD| ` | Del |
119 * |------+------+------+------+------+------+-------------+------+------+------+------|
120 * | Enter|SelAll|Right | Down | Left | PgUp | xxx |MousLt|MousDn|MousRt| xxx |Enter |
121 * |------+------+------+------+------+------+------|------+------+------+------+------|
122 * | | xxx |MsBtRt|MsBtMi|MsBtLe| PgDn | xxx | Cut | Copy | Paste| xxx | |
123 * `------+------+------+------+------+------+------+------+------+------+------+------.
124 * | | | | X | | | | |
125 * `-------------------------------------------------------'
126 */
127[_CURSORLEFT] = LAYOUT(
128 _______, KC_BRK, KC_HOME, KC_UP, KC_END, KC_PGUP, KC_DEL, KC_WH_U, KC_MS_U, KC_WH_D, KC_GRV, KC_DEL,
129 KC_ENT, LCTL(KC_A), KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, XXXXXXX, KC_MS_L, KC_MS_D, KC_MS_R, XXXXXXX, _______,
130 _______, XXXXXXX, KC_BTN2, KC_BTN3, KC_BTN1, KC_INS, XXXXXXX, LCTL(KC_DEL), LCTL(KC_INS), LSFT(KC_INS), XXXXXXX, _______,
131 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
132),
133
134
135 /* Numbers on the home row, FNs on the top row, symbols in the second row
136 * (Lower or Raise)
137 * ,-----------------------------------------------------------------------------------.
138 * | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 |BackSp|
139 * |------+------+------+------+------+------|------+------+------+------+------+------|
140 * | | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10| Enter|
141 * |------+------+------+------+------+-------------+------+------+------+------+------|
142 * | | F11 | F12 | LAlt |LShift| LAlt | RAlt |RShift| , | . | / | |
143 * `------+------+------+------+------+------+------+------+------+------+------+------.
144 * | | | | | | | | |
145 * `-------------------------------------------------------'
146 */
147[_NUMBERS] = LAYOUT(
148 _______, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
149 LT(_EXTRARIGHT,KC_TAB), KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, _______,
150 _______, KC_F11, KC_F12, KC_LALT, KC_LSFT, KC_LALT, KC_RALT, KC_RSFT, KC_COMM, KC_DOT, KC_SLSH, _______,
151 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
152),
153
154/* ExtraRightSide (the keys from the right side which did not fit into the matrix)
155 * ,-----------------------------------------------------------------------------------.
156 * | Esc |BREAK |PLOVR2|PLOVER|TxBOLT|TxBlt2| ` | = | ( | ) | - | |
157 * |------+------+------+------+------+-------------+------+------+------+------+------|
158 * |******| | | | | |PrtScr| | | | ' | |
159 This is the
160 key turning
161 this layer on
162 * |------+------+------+------+------+------|------+------+------+------+------+------|
163 * | | | |NumPad|Qwerty| | | | [ | ] | \ | |
164 * `------+------+------+------+------+------+------+------+------+------+------+------.
165 * | | | | | | | | |
166 * `-------------------------------------------------------'
167 */
168[_EXTRARIGHT] = LAYOUT(
169 _______, KC_BRK, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_GRV, KC_EQL, KC_LPRN, KC_RPRN, KC_MINS, _______,
170 _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_PSCR, XXXXXXX, XXXXXXX, XXXXXXX, KC_QUOT, _______,
171 _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_LBRC, KC_RBRC, KC_BSLS, _______,
172 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
173)
174};
175
diff --git a/keyboards/thumbsup/keymaps/default/rules.mk b/keyboards/thumbsup/keymaps/default/rules.mk
new file mode 100644
index 0000000000..2c72d2ddb6
--- /dev/null
+++ b/keyboards/thumbsup/keymaps/default/rules.mk
@@ -0,0 +1 @@
TRI_LAYER_ENABLE = yes \ No newline at end of file
diff --git a/keyboards/thumbsup/rev9_promicro_4x12/config.h b/keyboards/thumbsup/rev9_promicro_4x12/config.h
new file mode 100644
index 0000000000..71300e008d
--- /dev/null
+++ b/keyboards/thumbsup/rev9_promicro_4x12/config.h
@@ -0,0 +1,28 @@
1/*
2Copyright 2024 Alexander (Sasha) Karmanov (ak66666)
3
4This program is free software: you can redistribute it and/or modify
5it under the terms of the GNU General Public License as published by
6the Free Software Foundation, either version 2 of the License, or
7(at your option) any later version.
8
9This program is distributed in the hope that it will be useful,
10but WITHOUT ANY WARRANTY; without even the implied warranty of
11MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12GNU General Public License for more details.
13
14You should have received a copy of the GNU General Public License
15along with this program. If not, see <http://www.gnu.org/licenses/>.
16*/
17
18
19#pragma once
20
21
22//Cirque ProGlide Touchpad configuration
23#define POINTING_DEVICE_ROTATION_90
24#define CIRQUE_PINNACLE_TAP_ENABLE
25#define CIRQUE_PINNACLE_SECONDARY_TAP_ENABLE
26#define POINTING_DEVICE_GESTURES_SCROLL_ENABLE
27
28#define CIRQUE_PINNACLE_POSITION_MODE CIRQUE_PINNACLE_ABSOLUTE_MODE
diff --git a/keyboards/thumbsup/rev9_promicro_4x12/keyboard.json b/keyboards/thumbsup/rev9_promicro_4x12/keyboard.json
new file mode 100644
index 0000000000..95fa6664b2
--- /dev/null
+++ b/keyboards/thumbsup/rev9_promicro_4x12/keyboard.json
@@ -0,0 +1,77 @@
1{
2 "manufacturer": "Alexander (Sasha) Karmanov",
3 "keyboard_name": "ThumbsUp! v9",
4 "maintainer": "u/ak66666",
5 "development_board": "promicro",
6 "diode_direction": "COL2ROW",
7 "features": {
8 "bootmagic": true,
9 "extrakey": true,
10 "mousekey": true,
11 "pointing_device": true
12 },
13 "dynamic_keymap": {
14 "layer_count": 6
15 },
16 "matrix_pins": {
17 "cols": ["B2", "B6", "B5", "B4", "E6", "D7", "B3", "F4", "F5", "F6", "F7", "B1"],
18 "rows": ["D3", "D2", "D4", "C6"]
19 },
20 "usb": {
21 "device_version": "1.0.0",
22 "pid": "0x0090",
23 "vid": "0x5361"
24 },
25 "layouts": {
26 "LAYOUT": {
27 "layout": [
28 {"label": "ESC", "matrix": [0, 0], "x": 0, "y": 0},
29 {"label": "Q", "matrix": [0, 1], "x": 1, "y": 0},
30 {"label": "W", "matrix": [0, 2], "x": 2, "y": 0},
31 {"label": "E", "matrix": [0, 3], "x": 3, "y": 0},
32 {"label": "R", "matrix": [0, 4], "x": 4, "y": 0},
33 {"label": "T", "matrix": [0, 5], "x": 5, "y": 0},
34 {"label": "Y", "matrix": [0, 6], "x": 6, "y": 0},
35 {"label": "U", "matrix": [0, 7], "x": 7, "y": 0},
36 {"label": "I", "matrix": [0, 8], "x": 8, "y": 0},
37 {"label": "O", "matrix": [0, 9], "x": 9, "y": 0},
38 {"label": "P", "matrix": [0, 10], "x": 10, "y": 0},
39 {"label": "BKSPC", "matrix": [0, 11], "x": 11, "y": 0},
40 {"label": "TAB", "matrix": [1, 0], "x": 0, "y": 1},
41 {"label": "A", "matrix": [1, 1], "x": 1, "y": 1},
42 {"label": "S", "matrix": [1, 2], "x": 2, "y": 1},
43 {"label": "D", "matrix": [1, 3], "x": 3, "y": 1},
44 {"label": "F", "matrix": [1, 4], "x": 4, "y": 1},
45 {"label": "G", "matrix": [1, 5], "x": 5, "y": 1},
46 {"label": "H", "matrix": [1, 6], "x": 6, "y": 1},
47 {"label": "J", "matrix": [1, 7], "x": 7, "y": 1},
48 {"label": "K", "matrix": [1, 8], "x": 8, "y": 1},
49 {"label": "L", "matrix": [1, 9], "x": 9, "y": 1},
50 {"label": ";", "matrix": [1, 10], "x": 10, "y": 1},
51 {"label": "ENTER", "matrix": [1, 11], "x": 11, "y": 1},
52 {"label": "LCTRL", "matrix": [2, 0], "x": 0, "y": 2},
53 {"label": "Z", "matrix": [2, 1], "x": 1, "y": 2},
54 {"label": "X", "matrix": [2, 2], "x": 2, "y": 2},
55 {"label": "C", "matrix": [2, 3], "x": 3, "y": 2},
56 {"label": "V", "matrix": [2, 4], "x": 4, "y": 2},
57 {"label": "B", "matrix": [2, 5], "x": 5, "y": 2},
58 {"label": "N", "matrix": [2, 6], "x": 6, "y": 2},
59 {"label": "M", "matrix": [2, 7], "x": 7, "y": 2},
60 {"label": ",", "matrix": [2, 8], "x": 8, "y": 2},
61 {"label": ".", "matrix": [2, 9], "x": 9, "y": 2},
62 {"label": "/", "matrix": [2, 10], "x": 10, "y": 2},
63 {"label": "RCTRL", "matrix": [2, 11], "x": 11, "y": 2},
64 {"label": "SPACE", "matrix": [3, 1], "x": 1, "y": 3},
65 {"label": "WIN", "matrix": [3, 2], "x": 2, "y": 3},
66 {"label": "LALT", "matrix": [3, 3], "x": 3, "y": 3},
67 {"label": "LSHIFT", "matrix": [3, 5], "x": 4, "y": 3},
68 {"label": "RAISE", "matrix": [3, 4], "x": 5, "y": 3},
69 {"label": "LOWER", "matrix": [3, 7], "x": 6, "y": 3},
70 {"label": "RSHIFT", "matrix": [3, 6], "x": 7, "y": 3},
71 {"label": "RALT", "matrix": [3, 8], "x": 8, "y": 3},
72 {"label": "MENU", "matrix": [3, 9], "x": 9, "y": 3},
73 {"label": "SPACE", "matrix": [3, 10], "x": 10, "y": 3}
74 ]
75 }
76 }
77} \ No newline at end of file
diff --git a/keyboards/thumbsup/rev9_promicro_4x12/readme.md b/keyboards/thumbsup/rev9_promicro_4x12/readme.md
new file mode 100644
index 0000000000..e74da5cec8
--- /dev/null
+++ b/keyboards/thumbsup/rev9_promicro_4x12/readme.md
@@ -0,0 +1,27 @@
1# ThumbsUp! v9
2
3![ThumbsUp! v9](https://i.imgur.com/Zqc6dpQ.jpeg)
4
5A yet another version of the ThumbsUp! keyboard, a three-level PCB-based keyboard supporting Kailh Choc (1350) switches.
6This v9 version got 4x12 key layout with 2- or 3-key thumbcluster and an optional touchpad.
7
8
9* Keyboard Maintainer: [Alexander (Sasha) Karmanov](https://github.com/ak66666)
10* Hardware Supported: AtMega32u4 ProMicro-compatibles
11* Hardware Availability: https://www.etsy.com/ca/listing/1641077896/thumbsup-v9-ergonomic-mechanical
12
13Make example for this keyboard (after setting up your build environment):
14
15 make thumbsup/rev9_promicro_4x12:default
16
17Flashing example for this keyboard:
18
19 make thumbsup/rev9_promicro_4x12:default:flash
20
21See 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).
22
23## Bootloader
24
25Enter the bootloader:
26
27* **Physical reset button**: Press twice the button on the bottom side of the middle PCB.
diff --git a/keyboards/thumbsup/rev9_promicro_4x12/rules.mk b/keyboards/thumbsup/rev9_promicro_4x12/rules.mk
new file mode 100644
index 0000000000..9bfd1498a3
--- /dev/null
+++ b/keyboards/thumbsup/rev9_promicro_4x12/rules.mk
@@ -0,0 +1 @@
POINTING_DEVICE_DRIVER = cirque_pinnacle_i2c \ No newline at end of file