summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--keyboards/takashicompany/palmslave/config.h6
-rw-r--r--keyboards/takashicompany/palmslave/keyboard.json84
-rw-r--r--keyboards/takashicompany/palmslave/keymaps/default/keymap.c70
-rw-r--r--keyboards/takashicompany/palmslave/readme.md39
4 files changed, 199 insertions, 0 deletions
diff --git a/keyboards/takashicompany/palmslave/config.h b/keyboards/takashicompany/palmslave/config.h
new file mode 100644
index 0000000000..d9d98bf85f
--- /dev/null
+++ b/keyboards/takashicompany/palmslave/config.h
@@ -0,0 +1,6 @@
1// Copyright 2025 takashicompany (@takashicompany)
2// SPDX-License-Identifier: GPL-2.0-or-later
3
4#pragma once
5
6#define EE_HANDS
diff --git a/keyboards/takashicompany/palmslave/keyboard.json b/keyboards/takashicompany/palmslave/keyboard.json
new file mode 100644
index 0000000000..03d3f3e849
--- /dev/null
+++ b/keyboards/takashicompany/palmslave/keyboard.json
@@ -0,0 +1,84 @@
1{
2 "manufacturer": "takashicompany",
3 "keyboard_name": "Palmslave",
4 "maintainer": "takashicompany",
5 "build": {
6 "lto": true
7 },
8 "development_board": "promicro",
9 "diode_direction": "COL2ROW",
10 "features": {
11 "bootmagic": true,
12 "command": false,
13 "console": false,
14 "extrakey": true,
15 "mousekey": true,
16 "nkro": true
17 },
18 "matrix_pins": {
19 "cols": ["D4", "C6", "D7", "E6", "B4"],
20 "rows": ["F4", "F5", "F6", "F7"]
21 },
22 "split": {
23 "enabled": true,
24 "matrix_pins": {
25 "right": {
26 "cols": ["B4", "E6", "D7", "C6", "D4"],
27 "rows": ["F4", "F5", "F6", "F7"]
28 }
29 },
30 "serial": {
31 "pin": "D2"
32 }
33 },
34 "url": "",
35 "usb": {
36 "device_version": "0.0.1",
37 "pid": "0x0063",
38 "vid": "0x7463"
39 },
40 "layouts": {
41 "LAYOUT": {
42 "layout": [
43 {"matrix": [0, 0], "x": 0, "y": 0.42, "w": 0.84, "h":0.84 },
44 {"matrix": [0, 1], "x": 0.84, "y": 0.21, "w": 0.84, "h":0.84 },
45 {"matrix": [0, 2], "x": 1.68, "y": 0, "w": 0.84, "h":0.84 },
46 {"matrix": [0, 3], "x": 2.52, "y": 0.21, "w": 0.84, "h":0.84 },
47 {"matrix": [0, 4], "x": 3.36, "y": 0.42, "w": 0.84, "h":0.84 },
48 {"matrix": [4, 0], "x": 6.3, "y": 0.42, "w": 0.84, "h":0.84 },
49 {"matrix": [4, 1], "x": 7.14, "y": 0.21, "w": 0.84, "h":0.84 },
50 {"matrix": [4, 2], "x": 7.98, "y": 0, "w": 0.84, "h":0.84 },
51 {"matrix": [4, 3], "x": 8.82, "y": 0.21, "w": 0.84, "h":0.84 },
52 {"matrix": [4, 4], "x": 9.66, "y": 0.42, "w": 0.84, "h":0.84 },
53 {"matrix": [1, 0], "x": 0, "y": 1.26, "w": 0.84, "h":0.84 },
54 {"matrix": [1, 1], "x": 0.84, "y": 1.05, "w": 0.84, "h":0.84 },
55 {"matrix": [1, 2], "x": 1.68, "y": 0.84, "w": 0.84, "h":0.84 },
56 {"matrix": [1, 3], "x": 2.52, "y": 1.05, "w": 0.84, "h":0.84 },
57 {"matrix": [1, 4], "x": 3.36, "y": 1.26, "w": 0.84, "h":0.84 },
58 {"matrix": [5, 0], "x": 6.3, "y": 1.26, "w": 0.84, "h":0.84 },
59 {"matrix": [5, 1], "x": 7.14, "y": 1.05, "w": 0.84, "h":0.84 },
60 {"matrix": [5, 2], "x": 7.98, "y": 0.84, "w": 0.84, "h":0.84 },
61 {"matrix": [5, 3], "x": 8.82, "y": 1.05, "w": 0.84, "h":0.84 },
62 {"matrix": [5, 4], "x": 9.66, "y": 1.26, "w": 0.84, "h":0.84 },
63 {"matrix": [2, 0], "x": 0, "y": 2.1, "w": 0.84, "h":0.84 },
64 {"matrix": [2, 1], "x": 0.84, "y": 1.89, "w": 0.84, "h":0.84 },
65 {"matrix": [2, 2], "x": 1.68, "y": 1.68, "w": 0.84, "h":0.84 },
66 {"matrix": [2, 3], "x": 2.52, "y": 1.89, "w": 0.84, "h":0.84 },
67 {"matrix": [2, 4], "x": 3.36, "y": 2.1, "w": 0.84, "h":0.84 },
68 {"matrix": [6, 0], "x": 6.3, "y": 2.1, "w": 0.84, "h":0.84 },
69 {"matrix": [6, 1], "x": 7.14, "y": 1.89, "w": 0.84, "h":0.84 },
70 {"matrix": [6, 2], "x": 7.98, "y": 1.68, "w": 0.84, "h":0.84 },
71 {"matrix": [6, 3], "x": 8.82, "y": 1.89, "w": 0.84, "h":0.84 },
72 {"matrix": [6, 4], "x": 9.66, "y": 2.1, "w": 0.84, "h":0.84 },
73 {"matrix": [3, 1], "x": 1.68, "y": 3.15, "w": 0.84, "h":0.84 },
74 {"matrix": [3, 2], "x": 2.52, "y": 3.15, "w": 0.84, "h":0.84 },
75 {"matrix": [3, 3], "x": 3.36, "y": 3.15, "w": 0.84, "h":0.84 },
76 {"matrix": [3, 4], "x": 4.2, "y": 3.15, "w": 0.84, "h":0.84 },
77 {"matrix": [7, 0], "x": 5.46, "y": 3.15, "w": 0.84, "h":0.84 },
78 {"matrix": [7, 1], "x": 6.3, "y": 3.15, "w": 0.84, "h":0.84 },
79 {"matrix": [7, 2], "x": 7.14, "y": 3.15, "w": 0.84, "h":0.84 },
80 {"matrix": [7, 3], "x": 7.98, "y": 3.15, "w": 0.84, "h":0.84 }
81 ]
82 }
83 }
84}
diff --git a/keyboards/takashicompany/palmslave/keymaps/default/keymap.c b/keyboards/takashicompany/palmslave/keymaps/default/keymap.c
new file mode 100644
index 0000000000..02747c0881
--- /dev/null
+++ b/keyboards/takashicompany/palmslave/keymaps/default/keymap.c
@@ -0,0 +1,70 @@
1// Copyright 2025 takashicompany (@takashicompany)
2// SPDX-License-Identifier: GPL-2.0-or-later
3
4#include QMK_KEYBOARD_H
5
6const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
7
8 [0] = LAYOUT(
9 LT(7, KC_Q), KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P,
10 KC_A, KC_S, LT(6, KC_D), KC_F, KC_G, KC_H, KC_J, LT(6, KC_K), KC_L, KC_ENT,
11 LSFT_T(KC_Z), LGUI_T(KC_X), KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, LCTL_T(KC_DOT), KC_BSPC,
12 KC_LCTL, KC_LGUI, LALT_T(KC_LNG2), LSFT_T(KC_TAB), LT(2, KC_SPC), LT(1, KC_LNG1), KC_RGUI, KC_RCTL
13 ),
14
15 [1] = LAYOUT(
16 KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0,
17 LCTL_T(KC_EQL), KC_LBRC, KC_SLSH, KC_MINS, KC_INT1, KC_SCLN, KC_QUOT, KC_RBRC, KC_NUHS, KC_INT3,
18 LSFT_T(KC_PLUS), KC_LCBR, KC_QUES, KC_UNDS, LSFT(KC_INT1), KC_COLN, KC_DQUO, KC_RCBR, LSFT(KC_NUHS), LSFT(KC_INT3),
19 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
20 ),
21
22 [2] = LAYOUT(
23 KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, LGUI(KC_INT3),
24 KC_PLUS, KC_LCBR, KC_QUES, KC_UNDS, LSFT(KC_INT1), KC_COLN, KC_DQUO, KC_RCBR, LSFT(KC_NUHS), LSFT(KC_INT3),
25 KC_LSFT, KC_LGUI, KC_LALT, KC_LNG2, KC_LSFT, KC_SPC, KC_LNG1, KC_TRNS, KC_TRNS, KC_DEL,
26 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
27 ),
28
29 [3] = LAYOUT(
30 LT(7, KC_Q), KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P,
31 KC_A, KC_S, LT(6, KC_D), KC_F, KC_G, KC_H, KC_J, LT(6, KC_K), KC_L, KC_ENT,
32 LSFT_T(KC_Z), LGUI_T(KC_X), KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, LCTL_T(KC_DOT), KC_BSPC,
33 KC_LCTL, KC_LGUI, LALT_T(KC_LNG2), LSFT_T(KC_TAB), LT(5, KC_SPC), LT(4, KC_LNG1), KC_RGUI, KC_RCTL
34 ),
35
36 [4] = LAYOUT(
37 KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0,
38 KC_CIRC, KC_AT, KC_SLSH, KC_MINS, KC_UNDS, KC_SCLN, KC_COLN, KC_LBRC, KC_RBRC, KC_INT3,
39 LT(5, KC_TILD), KC_GRV, KC_QUES, KC_EQL, KC_UNDS, KC_PLUS, KC_ASTR, KC_LCBR, KC_RCBR, KC_PIPE,
40 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
41 ),
42
43 [5] = LAYOUT(
44 KC_EXLM, KC_DQUO, KC_HASH, KC_DLR, KC_PERC, KC_AMPR, KC_QUOT, KC_LPRN, KC_RPRN, KC_BSLS,
45 KC_TILD, KC_GRV, KC_QUES, KC_EQL, KC_UNDS, KC_PLUS, KC_ASTR, KC_LCBR, KC_RCBR, KC_PIPE,
46 KC_LSFT, KC_LGUI, KC_LALT, KC_LNG2, KC_LSFT, KC_SPC, KC_LNG1, KC_TRNS, KC_TRNS, KC_DEL,
47 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
48 ),
49
50 [6] = LAYOUT(
51 KC_ESC, KC_TAB, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_UP, KC_NO, KC_NO,
52 KC_LCTL, KC_TRNS, KC_QUES, KC_EXLM, KC_NO, KC_NO, KC_LEFT, KC_DOWN, KC_RGHT, KC_NO,
53 KC_LSFT, KC_LGUI, KC_LALT, KC_LNG2, KC_TRNS, KC_NO, KC_LNG1, KC_NO, KC_NO, KC_DEL,
54 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
55 ),
56
57 [7] = LAYOUT(
58 KC_NO, KC_TAB, KC_NO, KC_NO, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6,
59 KC_NO, KC_NO, KC_NO, KC_NO, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,
60 KC_LSFT, KC_NO, KC_NO, KC_NO, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, MO(8), MO(9),
61 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
62 ),
63
64 [8] = LAYOUT(
65 UG_TOGG, UG_NEXT, UG_HUEU, UG_SATU, UG_VALU, KC_NO, KC_NO, KC_NO, DF(0), DF(3),
66 RGB_M_P, RGB_M_B, RGB_M_R, RGB_M_SW, RGB_M_SN, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
67 RGB_M_K, RGB_M_X, RGB_M_G, KC_NO, KC_NO, QK_BOOT, KC_NO, KC_NO, KC_NO, KC_NO,
68 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
69 )
70};
diff --git a/keyboards/takashicompany/palmslave/readme.md b/keyboards/takashicompany/palmslave/readme.md
new file mode 100644
index 0000000000..ea51a41ef7
--- /dev/null
+++ b/keyboards/takashicompany/palmslave/readme.md
@@ -0,0 +1,39 @@
1# Palmslave
2
3![Palmslave](https://i.imgur.com/oDluHBC.jpeg)
4
5Palmslave is a split keyboard with 0.8u (16mm) key pitch.
6The size of a single key is 80% of the size of a key on a conventional keyboard.
7Although the key size is more compact than usual, it has the advantage of requiring minimal finger movement.
8The number of keys is 19 keys for one hand and 38 keys for two hands.
9Keyswitches are compatible with Choc v1 and Choc v2.
10The board can be fitted with a key switch socket, allowing the keyswitch to be replaced according to mood or fashion.
11
12Palmslaveは0.8u(16mm)キーピッチの分割型のキーボードです。
13一つのキーの大きさが従来のキーボードのキーと比較すると80%のサイズとなっています。
14通常よりコンパクトなキーサイズですが、指の動きが最小限で済むという強みがあります。
15キー数は片手で19キー、両手で38キーとなります。
16キースイッチはChoc v1とChoc v2に対応しています。
17基板はキースイッチソケットの取り付けが可能で、気分や流行でキースイッチを付け替えることが可能です。
18
19* Keyboard Maintainer: [takashicompany](https://github.com/takashicompany)
20* Hardware Supported: Palmslave PCB(s), x2 Pro Micro development board
21* Hardware Availability: https://github.com/takashicompany/palmslave
22
23Make example for this keyboard (after setting up your build environment):
24
25 make takashicompany/palmslave:default
26
27Flashing example for this keyboard:
28
29 make takashicompany/palmslave:default:flash
30
31See 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).
32
33## Bootloader
34
35Enter the bootloader in 3 ways:
36
37* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard
38* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead
39* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available