aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--docs/ja/feature_led_indicators.md2
-rw-r--r--docs/ja/pr_checklist.md17
-rw-r--r--docs/understanding_qmk.md2
-rw-r--r--keyboards/a_dux/a_dux.c16
-rw-r--r--keyboards/a_dux/a_dux.h47
-rw-r--r--keyboards/a_dux/config.h76
-rw-r--r--keyboards/a_dux/info.json52
-rw-r--r--keyboards/a_dux/keymaps/default/config.h39
-rw-r--r--keyboards/a_dux/keymaps/default/keymap.json106
-rw-r--r--keyboards/a_dux/keymaps/default/readme.md122
-rw-r--r--keyboards/a_dux/keymaps/jcmkk3/keymap.c130
-rw-r--r--keyboards/a_dux/keymaps/jcmkk3/oneshot.c72
-rw-r--r--keyboards/a_dux/keymaps/jcmkk3/oneshot.h46
-rw-r--r--keyboards/a_dux/keymaps/jcmkk3/rules.mk1
-rw-r--r--keyboards/a_dux/readme.md38
-rw-r--r--keyboards/a_dux/rules.mk23
-rw-r--r--keyboards/alf/x2/config.h55
-rw-r--r--keyboards/alf/x2/info.json94
-rw-r--r--keyboards/alf/x2/keymaps/default/keymap.c57
-rw-r--r--keyboards/alf/x2/keymaps/hhkb_60/keymap.c55
-rw-r--r--keyboards/alf/x2/readme.md12
-rw-r--r--keyboards/alf/x2/rules.mk22
-rw-r--r--keyboards/alf/x2/x2.c16
-rw-r--r--keyboards/alf/x2/x2.h119
-rw-r--r--keyboards/alfredslab/swift65/solder/info.json232
-rw-r--r--keyboards/alfredslab/swift65/solder/keymaps/default/keymap.c4
-rw-r--r--keyboards/alfredslab/swift65/solder/keymaps/default/readme.md3
-rw-r--r--keyboards/alfredslab/swift65/solder/keymaps/via/keymap.c8
-rw-r--r--keyboards/alfredslab/swift65/solder/keymaps/via/readme.md3
-rw-r--r--keyboards/alfredslab/swift65/solder/readme.md2
-rw-r--r--keyboards/alfredslab/swift65/solder/solder.h56
-rw-r--r--keyboards/amj96/amj96.h19
-rw-r--r--keyboards/amj96/config.h88
-rw-r--r--keyboards/amj96/info.json126
-rw-r--r--keyboards/amj96/keymaps/default/keymap.c34
-rw-r--r--keyboards/amj96/keymaps/default/readme.md1
-rw-r--r--keyboards/amj96/readme.md14
-rw-r--r--keyboards/amj96/rules.mk4
-rw-r--r--keyboards/buildakb/potato65s/config.h72
-rw-r--r--keyboards/buildakb/potato65s/info.json83
-rw-r--r--keyboards/buildakb/potato65s/keymaps/default/keymap.c39
-rw-r--r--keyboards/buildakb/potato65s/keymaps/default/readme.md3
-rw-r--r--keyboards/buildakb/potato65s/keymaps/via/keymap.c54
-rw-r--r--keyboards/buildakb/potato65s/keymaps/via/readme.md3
-rw-r--r--keyboards/buildakb/potato65s/keymaps/via/rules.mk1
-rw-r--r--keyboards/buildakb/potato65s/potato65s.c (renamed from keyboards/amj96/keymaps/default/config.h)9
-rw-r--r--keyboards/buildakb/potato65s/potato65s.h33
-rw-r--r--keyboards/buildakb/potato65s/readme.md24
-rw-r--r--keyboards/buildakb/potato65s/rules.mk21
-rw-r--r--keyboards/handwired/battleship_gamepad/battleship_gamepad.c30
-rw-r--r--keyboards/handwired/battleship_gamepad/battleship_gamepad.h31
-rw-r--r--keyboards/handwired/battleship_gamepad/config.h52
-rw-r--r--keyboards/handwired/battleship_gamepad/info.json215
-rw-r--r--keyboards/handwired/battleship_gamepad/keymaps/default/keymap.c41
-rw-r--r--keyboards/handwired/battleship_gamepad/keymaps/default/readme.md2
-rw-r--r--keyboards/handwired/battleship_gamepad/keymaps/via/keymap.c48
-rw-r--r--keyboards/handwired/battleship_gamepad/keymaps/via/rules.mk2
-rw-r--r--keyboards/handwired/battleship_gamepad/readme.md29
-rw-r--r--keyboards/handwired/battleship_gamepad/rules.mk25
-rw-r--r--keyboards/jadookb/jkb65/config.h2
-rw-r--r--keyboards/jadookb/jkb65/keymaps/default/keymap.c4
-rw-r--r--keyboards/jadookb/jkb65/keymaps/via/keymap.c4
-rw-r--r--keyboards/phrygian/ph100/chconf.h61
-rw-r--r--keyboards/phrygian/ph100/config.h43
-rw-r--r--keyboards/phrygian/ph100/halconf.h37
-rw-r--r--keyboards/phrygian/ph100/info.json111
-rw-r--r--keyboards/phrygian/ph100/keymaps/default/keymap.c27
-rw-r--r--keyboards/phrygian/ph100/ph100.c19
-rw-r--r--keyboards/phrygian/ph100/ph100.h44
-rw-r--r--keyboards/phrygian/ph100/readme.md20
-rw-r--r--keyboards/phrygian/ph100/rules.mk25
-rw-r--r--keyboards/planck/keymaps/default/config.h27
-rw-r--r--keyboards/planck/keymaps/default/keymap.c2
-rw-r--r--keyboards/plx/info.json131
-rw-r--r--keyboards/plx/keymaps/default/keymap.c18
-rw-r--r--keyboards/plx/keymaps/default_all/keymap.c49
-rw-r--r--keyboards/plx/keymaps/via/keymap.c6
-rw-r--r--keyboards/plx/plx.h15
-rw-r--r--keyboards/preonic/keymaps/default/config.h26
-rw-r--r--keyboards/preonic/keymaps/default/keymap.c2
-rw-r--r--keyboards/rotor/config.h39
-rw-r--r--keyboards/rotor/info.json10
-rw-r--r--keyboards/rotor/keymaps/default/keymap.c49
-rw-r--r--keyboards/rotor/keymaps/default/rules.mk2
-rw-r--r--keyboards/rotor/keymaps/default_all/keymap.c49
-rw-r--r--keyboards/rotor/keymaps/default_all/rules.mk2
-rw-r--r--keyboards/rotor/keymaps/via/config.h19
-rw-r--r--keyboards/rotor/keymaps/via/keymap.c49
-rw-r--r--keyboards/rotor/keymaps/via/rules.mk3
-rw-r--r--keyboards/rotor/readme.md19
-rw-r--r--keyboards/rotor/rotor.c17
-rw-r--r--keyboards/rotor/rotor.h58
-rw-r--r--keyboards/rotor/rules.mk21
-rw-r--r--keyboards/sam/sg81m/info.json90
-rw-r--r--keyboards/sam/sg81m/sg81m.h19
-rw-r--r--keyboards/sets3n/kk980/info.json22
-rw-r--r--keyboards/signum/3_0/config.h32
-rw-r--r--keyboards/signum/3_0/elitec/config.h22
-rw-r--r--keyboards/signum/3_0/elitec/elitec.h13
-rw-r--r--keyboards/signum/3_0/elitec/rules.mk28
-rw-r--r--keyboards/signum/3_0/info.json (renamed from keyboards/signum/3_0/elitec/info.json)0
-rwxr-xr-xkeyboards/signum/3_0/keymaps/default/generate_km.py (renamed from keyboards/signum/3_0/elitec/keymaps/default/generate_km.py)0
-rw-r--r--keyboards/signum/3_0/keymaps/default/keymap.c (renamed from keyboards/signum/3_0/elitec/keymaps/default/keymap.c)0
-rw-r--r--keyboards/signum/3_0/keymaps/default/km_template.txt (renamed from keyboards/signum/3_0/elitec/keymaps/default/km_template.txt)0
-rw-r--r--keyboards/signum/3_0/keymaps/default/layout.py (renamed from keyboards/signum/3_0/elitec/keymaps/default/layout.py)0
-rw-r--r--keyboards/signum/3_0/keymaps/default/readme.md (renamed from keyboards/signum/3_0/elitec/keymaps/default/readme.md)0
-rw-r--r--keyboards/signum/3_0/keymaps/default/rules.mk (renamed from keyboards/signum/3_0/elitec/keymaps/default/rules.mk)0
-rw-r--r--keyboards/signum/3_0/keymaps/sgurenkov/config.h45
-rw-r--r--keyboards/signum/3_0/keymaps/sgurenkov/keymap.c128
-rw-r--r--keyboards/signum/3_0/keymaps/sgurenkov/rules.mk2
-rw-r--r--keyboards/signum/3_0/readme.md (renamed from keyboards/signum/3_0/elitec/readme.md)1
-rw-r--r--keyboards/signum/3_0/rules.mk28
-rw-r--r--keyboards/signum/3_0/signum.c16
-rw-r--r--keyboards/signum/3_0/signum.h33
-rw-r--r--keyboards/signum/3_0/teensy/config.h23
-rw-r--r--keyboards/signum/3_0/teensy/rules.mk1
-rw-r--r--keyboards/signum/3_0/teensy/teensy.c16
-rw-r--r--keyboards/signum/3_0/teensy/teensy.h19
-rw-r--r--keyboards/sofle/keymaps/rgb_default/rules.mk2
119 files changed, 3692 insertions, 488 deletions
diff --git a/docs/ja/feature_led_indicators.md b/docs/ja/feature_led_indicators.md
index 307603f0a..764b478c3 100644
--- a/docs/ja/feature_led_indicators.md
+++ b/docs/ja/feature_led_indicators.md
@@ -25,7 +25,7 @@ LED の状態を `uint8_t` として提供する2つの非推奨の関数があ
25* `uint8_t led_set_kb(uint8_t usb_led)` と `_user(uint8_t usb_led)` 25* `uint8_t led_set_kb(uint8_t usb_led)` と `_user(uint8_t usb_led)`
26* `uint8_t host_keyboard_leds()` 26* `uint8_t host_keyboard_leds()`
27 27
28## 設定オプション 28## 設定オプション :id=configuration-options
29 29
30インジケータを設定するには、`config.h` で以下の `#define` をします: 30インジケータを設定するには、`config.h` で以下の `#define` をします:
31 31
diff --git a/docs/ja/pr_checklist.md b/docs/ja/pr_checklist.md
index 9026ac486..18dbecceb 100644
--- a/docs/ja/pr_checklist.md
+++ b/docs/ja/pr_checklist.md
@@ -1,8 +1,8 @@
1# PR チェックリスト 1# PR チェックリスト
2 2
3<!--- 3<!---
4 original document: 0.10.7:docs/pr_checklist.md 4 original document: 0.13.34:docs/pr_checklist.md
5 git diff 0.10.7 HEAD -- docs/pr_checklist.md | cat 5 git diff 0.13.34 HEAD -- docs/pr_checklist.md | cat
6--> 6-->
7 7
8これは、提出された PR を QMK の協力者がレビューする際に何をチェックするのかの非網羅的なチェックリストです。 8これは、提出された PR を QMK の協力者がレビューする際に何をチェックするのかの非網羅的なチェックリストです。
@@ -73,11 +73,13 @@ https://github.com/qmk/qmk_firmware/pulls?q=is%3Apr+is%3Aclosed+label%3Akeyboard
73 - キーボードが QMK で起動するために最低限必要なコードが存在する必要があります 73 - キーボードが QMK で起動するために最低限必要なコードが存在する必要があります
74 - マトリックスと重要なデバイスの初期化コード 74 - マトリックスと重要なデバイスの初期化コード
75 - (カスタムキーコードや特別なアニメーションなど)商用キーボードの既存の機能をミラーリングする場合は、`default` ではないキーマップを使って処理する必要があります 75 - (カスタムキーコードや特別なアニメーションなど)商用キーボードの既存の機能をミラーリングする場合は、`default` ではないキーマップを使って処理する必要があります
76 - Vial 関連のファイルまたは変更は QMK ファームウェアで使用されないため受け入れられません (Vial 固有のコアコードは提出またはマージされていません)
76- `keyboard.c` 77- `keyboard.c`
77 - 空の `xxxx_xxxx_kb()` または他の weak-define のデフォルト実装関数が削除されていること 78 - 空の `xxxx_xxxx_kb()` または他の weak-define のデフォルト実装関数が削除されていること
78 - コメントアウトされた関数も削除されていること 79 - コメントアウトされた関数も削除されていること
79 - `matrix_init_board()` などが `keyboard_pre_init_kb()` に移行されました。[keyboard_pre_init*](https://docs.qmk.fm/#/ja/custom_quantum_functions?id=keyboard_pre_init_-function-documentation) を参照してください 80 - `matrix_init_board()` などが `keyboard_pre_init_kb()` に移行されました。[keyboard_pre_init*](https://docs.qmk.fm/#/ja/custom_quantum_functions?id=keyboard_pre_init_-function-documentation) を参照してください
80 - カスタムマトリックスを使用する場合は、`CUSTOM_MATRIX = lite` を選択し、標準のデバウンスを許可します。[マトリックスコードの部分置き換え](https://docs.qmk.fm/#/ja/custom_matrix?id=lite) を参照してください 81 - カスタムマトリックスを使用する場合は、`CUSTOM_MATRIX = lite` を選択し、標準のデバウンスを許可します。[マトリックスコードの部分置き換え](https://docs.qmk.fm/#/ja/custom_matrix?id=lite) を参照してください
82 - 可能な場合は、独自の `led_update_*()` 実装よりも LED インジケータの[設定オプション](https://docs.qmk.fm/#/ja/feature_led_indicators?id=configuration-options)を優先してください。
81- `keyboard.h` 83- `keyboard.h`
82 - 先頭に `#include "quantum.h"` を置きます 84 - 先頭に `#include "quantum.h"` を置きます
83 - `LAYOUT` マクロは、該当する場合は標準の定義を使用してください 85 - `LAYOUT` マクロは、該当する場合は標準の定義を使用してください
@@ -95,9 +97,12 @@ https://github.com/qmk/qmk_firmware/pulls?q=is%3Apr+is%3Aclosed+label%3Akeyboard
95 ...キーマップの `process_record_user()` 内で `layer_on()`、 `update_tri_layer()` を手動で処理する代わりに。 97 ...キーマップの `process_record_user()` 内で `layer_on()`、 `update_tri_layer()` を手動で処理する代わりに。
96- default (および via) のキーマップは「素朴」でなければなりません。 98- default (および via) のキーマップは「素朴」でなければなりません。
97 - 他のユーザーが独自のユーザー固有のキーマップを開発するための「クリーンな状態」として使用するための最低限のもの。 99 - 他のユーザーが独自のユーザー固有のキーマップを開発するための「クリーンな状態」として使用するための最低限のもの。
98 - これらのキーマップで推奨される標準レイアウト(可能な場合) 100 - これらのキーマップでは標準のレイアウトが推奨されます(可能な場合)
101 - デフォルトのキーマップは VIA を有効にするべきではありません -- VIA の統合ドキュメント類には `via` という名前のキーマップが必要です。
99- PR の提出者は、同じ PR に機能を紹介する個人的な(または豪華な)キーマップを持たせることができますが、「デフォルト」のキーマップに埋め込むべきではありません 102- PR の提出者は、同じ PR に機能を紹介する個人的な(または豪華な)キーマップを持たせることができますが、「デフォルト」のキーマップに埋め込むべきではありません
100- PR の提出者はまた、既存の商用キーボードへ QMK を移植する場合、その商用製品の既存の機能を反映する「製造業者に一致する」キーマップを持つことができます 103- PR の提出者はまた、既存の商用キーボードへ QMK を移植する場合、その商用製品の既存の機能を反映する「製造業者に一致する」キーマップを持つことができます
104- PR に VIA の json ファイルを含めないでください。これらは QMK ファームウェアで使われないため QMK リポジトリに属しません -- それらは [VIA のキーボードリポジトリ](https://github.com/the-via/keyboards)に属します。
105
101 106
102さらに、ChibiOS に固有で: 107さらに、ChibiOS に固有で:
103- 既存の ChibiOS ボード定義を使用することを**強く**推奨します。 108- 既存の ChibiOS ボード定義を使用することを**強く**推奨します。
@@ -132,3 +137,9 @@ There are instructions on how to keep your fork updated here:
132 137
133Thanks for contributing! 138Thanks for contributing!
134``` 139```
140
141## レビュープロセス
142
143一般的に、PR がマージの対象となる前に、意味のある(例えば、コードを検査した)2つ(またはそれ以上)の承認を確認したいと考えています。これらのレビューはコラボレータに限られません -- 時間を割いてくれるコミュニティメンバーは誰でも歓迎(奨励)されます。唯一の違いは、チェックマークが緑にならないことですが、それは問題ありません。
144
145また、PR レビューは自由な時間に行われるものです。それは好意で行われるものなので、私たちはレビューに費やす時間に対して、報酬はうけとっていませんし埋め合わせもありません。そのため、私たちがあなたのプルリクエストに取り掛かるのには時間がかかります。家族や生活のことで PR に手が回らなくなることもあり、そして燃え尽き症候群は深刻な懸念です。QMK ファームウェアリポジトリは、毎月平均200件の PR が開かれ、200件の PR がマージされますので、しばらくお待ちください。
diff --git a/docs/understanding_qmk.md b/docs/understanding_qmk.md
index e3dd5cb78..da622044c 100644
--- a/docs/understanding_qmk.md
+++ b/docs/understanding_qmk.md
@@ -4,7 +4,7 @@ This document attempts to explain how the QMK firmware works from a very high le
4 4
5* [Introduction](getting_started_introduction.md) 5* [Introduction](getting_started_introduction.md)
6* [How Keyboards Work](how_keyboards_work.md) 6* [How Keyboards Work](how_keyboards_work.md)
7* [FAQ](faq.md) 7* [FAQ](faq_general.md)
8 8
9## Startup 9## Startup
10 10
diff --git a/keyboards/a_dux/a_dux.c b/keyboards/a_dux/a_dux.c
new file mode 100644
index 000000000..69eae4428
--- /dev/null
+++ b/keyboards/a_dux/a_dux.c
@@ -0,0 +1,16 @@
1/* Copyright 2018-2020 ENDO Katsuhiro <ka2hiro@curlybracket.co.jp> David Philip Barr <@davidphilipbarr> Pierre Chevalier <pierrechevalier83@gmail.com>
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 "a_dux.h"
diff --git a/keyboards/a_dux/a_dux.h b/keyboards/a_dux/a_dux.h
new file mode 100644
index 000000000..1edea4033
--- /dev/null
+++ b/keyboards/a_dux/a_dux.h
@@ -0,0 +1,47 @@
1/* Copyright 2018-2020 ENDO Katsuhiro <ka2hiro@curlybracket.co.jp> David Philip Barr <@davidphilipbarr> Pierre Chevalier <pierrechevalier83@gmail.com>
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#include "quantum.h"
18
19/* This a shortcut to help you visually see your layout.
20 *
21 * The first section contains all of the arguments representing the physical
22 * layout of the board and position of the keys.
23 *
24 * The second converts the arguments into a two-dimensional array which
25 * represents the switch matrix.
26 */
27
28// readability
29#define ___ KC_NO
30
31#define LAYOUT( \
32 L01, L02, L03, L04, L05, R01, R02, R03, R04, R05, \
33 L06, L07, L08, L09, L10, R06, R07, R08, R09, R10, \
34 L11, L12, L13, L14, L15, R11, R12, R13, R14, R15, \
35 L16, L17, R16, R17 \
36 ) \
37 { \
38 { L01, L02, L03, L04, L05 }, \
39 { L06, L07, L08, L09, L10 }, \
40 { L11, L12, L13, L14, L15 }, \
41 { L16, L17, ___, ___ , ___}, \
42 { R01, R02, R03, R04, R05 }, \
43 { R06, R07, R08, R09, R10 }, \
44 { R11, R12, R13, R14, R15 }, \
45 { R16, R17, ___, ___, ___ } \
46 }
47
diff --git a/keyboards/a_dux/config.h b/keyboards/a_dux/config.h
new file mode 100644
index 000000000..bacc4f14c
--- /dev/null
+++ b/keyboards/a_dux/config.h
@@ -0,0 +1,76 @@
1/* Copyright 2018-2020 ENDO Katsuhiro <ka2hiro@curlybracket.co.jp> David Philip Barr <@davidphilipbarr> Pierre Chevalier <pierrechevalier83@gmail.com>
2
3This program is free software: you can redistribute it and/or modify
4it under the terms of the GNU General Public License as published by
5the Free Software Foundation, either version 2 of the License, or
6(at your option) any later version.
7
8This program is distributed in the hope that it will be useful,
9but WITHOUT ANY WARRANTY; without even the implied warranty of
10MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11GNU General Public License for more details.
12
13You should have received a copy of the GNU General Public License
14along with this program. If not, see <http://www.gnu.org/licenses/>.
15*/
16
17#pragma once
18
19#include "config_common.h"
20
21/* USB Device descriptor parameter */
22#define VENDOR_ID 0xC2AB
23#define PRODUCT_ID 0x3939
24#define DEVICE_VER 0x0001
25#define MANUFACTURER tapioki
26#define PRODUCT Architeuthis dux
27
28/* key matrix size */
29#define MATRIX_ROWS 8
30#define MATRIX_COLS 5
31
32/*
33 * Keyboard Matrix Assignments
34 *
35 * Change this to how you wired your keyboard
36 * COLS: AVR pins used for columns, left to right
37 * ROWS: AVR pins used for rows, top to bottom
38 * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
39 * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
40 * NO_DIODE = switches are directly connected to AVR pins
41 *
42*/
43#define DIRECT_PINS { \
44 { C6, D2, F7, B2, F4 }, \
45 { D7, D0, F6, B3, F5 }, \
46 { E6, D4, D3, B1, B6 }, \
47 { B4, B5, NO_PIN, NO_PIN, NO_PIN } \
48}
49
50#define DIRECT_PINS_RIGHT { \
51 { F4, B2, F7, D2, C6 }, \
52 { F5, B3, F6, D0, D7 }, \
53 { B6, B1, D3, D4, E6 }, \
54 { B5, B4, NO_PIN, NO_PIN, NO_PIN } \
55}
56
57
58
59#define UNUSED_PINS
60
61/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
62#define DEBOUNCE 5
63
64/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
65#define LOCKING_SUPPORT_ENABLE
66
67/* Locking resynchronize hack */
68#define LOCKING_RESYNC_ENABLE
69
70/* Serial settings */
71#define USE_SERIAL
72
73/* serial.c configuration for split keyboard */
74#define SOFT_SERIAL_PIN D1
75
76#define EE_HANDS
diff --git a/keyboards/a_dux/info.json b/keyboards/a_dux/info.json
new file mode 100644
index 000000000..e52895a58
--- /dev/null
+++ b/keyboards/a_dux/info.json
@@ -0,0 +1,52 @@
1{
2 "keyboard_name": "Architeuthis dux",
3 "url": "https://github.com/tapioki/cephalopoda",
4 "maintainer": "@tapioki",
5 "layouts": {
6 "LAYOUT": {
7 "layout": [
8 {"x": 0, "y": 0.93},
9 {"x": 1, "y": 0.31},
10 {"x": 2, "y": 0},
11 {"x": 3, "y": 0.28},
12 {"x": 4, "y": 0.42},
13
14 {"x": 7, "y": 0.42},
15 {"x": 8, "y": 0.28},
16 {"x": 9, "y": 0},
17 {"x": 10, "y": 0.31},
18 {"x": 11, "y": 0.93},
19
20 {"x": 0, "y": 1.93},
21 {"x": 1, "y": 1.31},
22 {"x": 2, "y": 1},
23 {"x": 3, "y": 1.28},
24 {"x": 4, "y": 1.42},
25
26 {"x": 7, "y": 1.42},
27 {"x": 8, "y": 1.28},
28 {"x": 9, "y": 1},
29 {"x": 10, "y": 1.31},
30 {"x": 11, "y": 1.93},
31
32 {"x": 0, "y": 2.93},
33 {"x": 1, "y": 2.31},
34 {"x": 2, "y": 2},
35 {"x": 3, "y": 2.28},
36 {"x": 4, "y": 2.42},
37
38 {"x": 7, "y": 2.42},
39 {"x": 8, "y": 2.28},
40 {"x": 9, "y": 2},
41 {"x": 10, "y": 2.31},
42 {"x": 11, "y": 2.93},
43
44 {"x": 3.5, "y": 3.75},
45 {"x": 4.5, "y": 4},
46
47 {"x": 6.5, "y": 4},
48 {"x": 7.5, "y": 3.75}
49 ]
50 }
51 }
52}
diff --git a/keyboards/a_dux/keymaps/default/config.h b/keyboards/a_dux/keymaps/default/config.h
new file mode 100644
index 000000000..cf0fb7478
--- /dev/null
+++ b/keyboards/a_dux/keymaps/default/config.h
@@ -0,0 +1,39 @@
1/*
2Copyright 2020 Pierre Chevalier <pierrechevalier83@gmail.com>
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#pragma once
19// Set the mouse settings to a comfortable speed/accuracy trade-off,
20// assuming a screen refresh rate of 60 Htz or higher
21// The default is 50. This makes the mouse ~3 times faster and more accurate
22#define MOUSEKEY_INTERVAL 16
23// The default is 20. Since we made the mouse about 3 times faster with the previous setting,
24// give it more time to accelerate to max speed to retain precise control over short distances.
25#define MOUSEKEY_TIME_TO_MAX 40
26// The default is 300. Let's try and make this as low as possible while keeping the cursor responsive
27#define MOUSEKEY_DELAY 100
28// It makes sense to use the same delay for the mouseweel
29#define MOUSEKEY_WHEEL_DELAY 100
30// The default is 100
31#define MOUSEKEY_WHEEL_INTERVAL 50
32// The default is 40
33#define MOUSEKEY_WHEEL_TIME_TO_MAX 100
34
35// Pick good defaults for enabling homerow modifiers
36#define TAPPING_TERM 200
37#define PERMISSIVE_HOLD
38#define IGNORE_MOD_TAP_INTERRUPT
39#define TAPPING_FORCE_HOLD
diff --git a/keyboards/a_dux/keymaps/default/keymap.json b/keyboards/a_dux/keymaps/default/keymap.json
new file mode 100644
index 000000000..555a86c0b
--- /dev/null
+++ b/keyboards/a_dux/keymaps/default/keymap.json
@@ -0,0 +1,106 @@
1{ "version": 1,
2 "notes": "My awesome keymap",
3 "documentation": "\"This file is a QMK Configurator export. You can import this at <https://config.qmk.fm>. It can also be used directly with QMK's source code.\n\nTo setup your QMK environment check out the tutorial: <https://docs.qmk.fm/#/newbs>\n\nYou can convert this file to a keymap.c using this command: `qmk json2c {keymap}`\n\nYou can compile this keymap using this command: `qmk compile {keymap}`\"\n",
4 "keyboard": "a_dux",
5 "keymap": "default",
6 "layout": "LAYOUT",
7 "layers": [
8 ["KC_Q" , "KC_W" , "KC_E" , "KC_R" , "KC_T",
9 "KC_Y" , "KC_U" , "KC_I" , "KC_O" , "KC_P",
10
11 "LSFT_T(KC_A)", "LT(5,KC_S)" , "LT(1,KC_D)" , "LT(3,KC_F)" , "KC_G",
12 "KC_H" , "LT(4,KC_J)" , "LT(2,KC_K)" , "LT(6,KC_L)" , "LSFT_T(KC_SCLN)",
13
14 "KC_Z" , "LCTL_T(KC_X)", "LALT_T(KC_C)" , "KC_V" , "KC_B",
15 "KC_N" , "KC_M" , "LALT_T(KC_COMM)", "LCTL_T(KC_DOT)", "KC_SLSH",
16
17 "KC_P0" , "KC_BSPC",
18 "LT(7,KC_SPC)", "KC_P1"
19 ],
20 ["KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS",
21 "KC_TRNS" , "KC_BTN1" , "KC_WH_U" , "KC_BTN2" , "KC_TRNS",
22
23 "KC_TRNS" , "KC_BTN2" , "KC_NO" , "KC_BTN1" , "KC_TRNS",
24 "KC_TRNS" , "KC_MS_L" , "KC_MS_D" , "KC_MS_U" , "KC_MS_R",
25
26 "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS",
27 "KC_TRNS" , "KC_WH_L" , "KC_WH_D" , "KC_WH_R" , "KC_TRNS",
28
29 "KC_TRNS" , "KC_TRNS",
30 "KC_TRNS" , "KC_TRNS"
31 ],
32 ["KC_TRNS" , "KC_TRNS" , "KC_PGUP" , "KC_TRNS" , "KC_TRNS",
33 "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS",
34
35 "KC_LEFT" , "KC_UP" , "KC_DOWN" , "KC_RGHT" , "KC_TRNS",
36 "KC_TRNS" , "KC_LGUI" , "KC_NO" , "LCTL(KC_LALT)" , "LCA(KC_LSFT)",
37
38 "KC_TRNS" , "KC_HOME" , "KC_PGDN" , "KC_END" , "KC_TRNS",
39 "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS",
40
41 "KC_TRNS" , "KC_TRNS",
42 "KC_TRNS" , "KC_TRNS"
43 ],
44 ["KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS",
45 "KC_TRNS" , "KC_UNDS" , "KC_PIPE" , "KC_QUOT" , "KC_TRNS",
46
47 "KC_CIRC" , "KC_ASTR" , "KC_AMPR" , "KC_NO" , "KC_TRNS",
48 "KC_HASH" , "KC_TILD" , "KC_SLSH" , "KC_DQUO" , "KC_DLR",
49
50 "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS",
51 "KC_TRNS" , "KC_MINS" , "KC_BSLS" , "KC_GRV" , "KC_TRNS",
52
53 "KC_TRNS" , "KC_TRNS",
54 "KC_TRNS" , "KC_TRNS"
55 ],
56 ["KC_TRNS" , "KC_COLN" , "KC_LT" , "KC_GT" , "KC_SCLN",
57 "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS",
58
59 "KC_LCBR" , "KC_RCBR" , "KC_LPRN" , "KC_RPRN" , "KC_AT",
60 "KC_TRNS" , "KC_NO" , "KC_EQL" , "KC_PLUS" , "KC_PERC",
61
62 "KC_TRNS" , "KC_EXLM" , "KC_LBRC" , "KC_RBRC" , "KC_TRNS",
63 "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS",
64
65 "KC_VOLD" , "KC_TRNS",
66 "KC_TRNS" , "KC_VOLU"
67 ],
68 ["KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS",
69 "KC_TRNS" , "KC_F7" , "KC_F8" , "KC_F9" , "KC_F10",
70
71 "KC_TRNS" , "KC_NO" , "LCTL(KC_LALT)" , "KC_TRNS" , "KC_TRNS",
72 "KC_TRNS" , "KC_F4" , "KC_F5" , "KC_F6" , "KC_F11",
73
74 "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS",
75 "KC_TRNS" , "KC_F1" , "KC_F2" , "KC_F3" , "KC_F12",
76
77 "KC_TRNS" , "KC_TRNS",
78 "KC_TRNS" , "KC_TRNS"
79 ],
80 ["KC_PSLS" , "KC_7" , "KC_8" , "KC_9" , "KC_PPLS",
81 "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS",
82
83 "KC_0" , "KC_1" , "KC_2" , "KC_3" , "KC_PMNS",
84 "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_NO" , "KC_TRNS",
85
86 "KC_PAST" , "KC_4" , "KC_5" , "KC_6" , "KC_PEQL",
87 "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS",
88
89 "KC_TRNS" , "KC_TRNS",
90 "KC_TRNS" , "KC_TRNS"
91 ],
92 ["KC_TRNS" , "KC_TRNS" , "KC_COLN" , "KC_ESC" , "KC_TRNS",
93 "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_DEL",
94
95 "KC_TRNS" , "KC_PERC" , "KC_SLSH" , "KC_ENT" , "KC_TRNS",
96 "DF(1)" , "KC_LGUI" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS",
97
98 "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_EXLM" , "KC_TRNS",
99 "DF(0)" , "KC_TRNS" , "RALT_T(KC_COMM)", "RCTL_T(KC_DOT)", "RESET",
100
101 "KC_TRNS" , "KC_TAB",
102 "KC_NO" , "KC_TRNS"
103 ]
104 ],
105 "author": "@pierrec83"
106}
diff --git a/keyboards/a_dux/keymaps/default/readme.md b/keyboards/a_dux/keymaps/default/readme.md
new file mode 100644
index 000000000..5f67a69cb
--- /dev/null
+++ b/keyboards/a_dux/keymaps/default/readme.md
@@ -0,0 +1,122 @@
1A usable default keymap for the A. Dux keyboard
2===============================================
3
4Keymaps in general are quite personal, so it is difficult to come up with a default that will suit every user.
5
6This keymap makes heavy use of keys behaving differently when tapped and held, so that all the keys one may need remain accessible despite the low number of thumb keys.
7
8It comes with a number of layers to give access to most of the keys one may need on a keyboard. It is not meant to be the best possible keymap, but rather a good base on which to build a keymap that works for you.
9
10This is not the only way to make 34 keys a comfortable typing experience, but it is one way to do so. If you don't already know of a better way, this may be as good a starting point as any :)
11
12Note that this keymap was built from the perspective that it is OK to take a steep learning curve if it results in a keymap that is easier to use in the long run. This means that it may take more effort to learn this keymap than some alternatives. "Easy to use" was assessed against the workflow of the author, so your mileage may vary on some of the details.
13
14What do all these layers do?
15----------------------------
16
17### Layer 0: Base layer
18
19![Layer 0](https://i.imgur.com/HjNHUPL.png)
20
21On tapping the keys, our base layer is qwerty with space on the right homing thumb and backspace on the left homing thumb.
22
23In this layer, the non-homing-thumb positions have 0 and 1. I recommend modifying this to some frequently accessed shortcut such as copy/paste, previous/next tab or anything that makes most sense in your own workflow. O and 1 are place-holders and make it easy to troubleshoot that all keys are working properly before soldering in the switches.
24The reason I recommend convenience shortcuts instead of more commonly used keys like tab or meta is that unhoming of the thumbs was a frequent source of typos for me when I used more than one thumb key frequently in the context of typing.
25
26Despite being missing on this layer, "meta", "tab", "esc" and such are accessible from any other layer: see Layer 7.
27
28The behaviour of some keys differ when held:
29* Both homing pinkies behave as shift.
30* Both bottom-row ring fingers behave as ctrl.
31* Both bottom-row middle fingers behave as alt.
32
33* The homing left ring finger gives access to the Function keys layer
34* The homing right ring finger gives access to the Numbers layer
35* The homing left middle finger gives access to the Mouse layer
36* The homing right middle finger gives access to the Navigation layer
37* The homing left index finger gives access to the Right symbols layer
38* The homing right index finger gives access to the Left symbols layer
39* The homing right thumb gives access to the Always accessible layer
40
41### Layer 1: Mouse
42
43![Layer 1](https://i.imgur.com/0fvTuB9.png)
44
45Layer 1 is a mouse layer: it can be used one-handed or two-handed. The most common way to use it is two handed, with left and right click on the homerow of the left hand and directions on the homerow of the right hand.
46Scrolling is available on the right hand with mid finger up and down for vertical scroll and index and ring finger down for horizontal scroll.
47On the right hand, left click and right click are also available with index and ring finger up to allow one handed operation. This can be particularly handy when enabling the mouse layer permanently (no need to hold the left middle finger), which can be done from Layer 7.
48
49Note that thanks to the transparency, shift, ctrl and alt are all accessible on the left hand while operating the mouse.
50
51### Layer 2: Navigation
52
53![Layer 2](https://i.imgur.com/ZquQJRq.png)
54
55The navigation layer somewhat mirrors the mouse layer. It is accessed by holding the right middle finger and gives access to arrow keys on the left homerow. Page up and down, Home and End mirror the vertical scrolling and horizontal scrolling on the mouse layer.
56
57On the right hand, in addition to ctrl and alt which are available through transparency, ctrl + alt, ctrl + alt + shift and meta are accessible on the homerow to enable common shortcuts in some window managers. This part is quite workflow dependent, so make sure to adapt it to your own workflow as appropriate.
58
59### Layer 3: Right symbols
60
61![Layer 3](https://i.imgur.com/9tLAUqG.png)
62
63When holding down the left index, one may access about half of the symbols. The pinkies store `^` and `$` symbols that represent begin and end in vim. The left homerow hosts `*` and `&`, symbols which are related in the way that they represent some form of indirection in programming languages such as rust. On the right hand, most symbols used when navigating the command line are stored together, organized by columns of related symbols.
64
65### Layer 4: Left symbols
66
67![Layer 4](https://i.imgur.com/CkjUSW6.png)
68
69When holding down the right index, one may access the other symbols. On the left hand, most of the different brackets are laid out. The most frequent ones (round brackets and curly brackets) get a spot on the homerow. The rest of the layer hosts the remaining symbols that are easier to access here than on any other layers.
70
71### Layer 5: Function keys
72
73![Layer 5](https://i.imgur.com/fWgVqc4.png)
74
75By holding down the left ring finger, one may access the function keys, roughly in a numpad layout.
76This means that alt+F4 is easy to type, with F4 being on the homerow.
77There is a shortcut for ctrl+alt on the left hand to enable convenient switching between virtual terminals on Linux.
78
79### Layer 6: Numbers
80
81![Layer 6](https://i.imgur.com/S8gq9Kj.png)
82
83The number layer is accessed by holding the right ring finger. It hosts the numbers and some duplicated symbols that are commonly accessed next to numbers, such as mathematical operators.
84The number are layed out similarly to a numpad, but with the middle row and the homerow swapped so that the most used numbers: 0, 1, 2 and 3 are all available in homing positions.
85
86### Layer 7: Always accessible
87
88![Layer 7](https://i.imgur.com/twqBeBb.png)
89
90Layer 7 is accessed by holding the right homing thumb down. Because this position is left transparent from every other layer, this layer is always accessible.
91It gives access to some essential keys that would typically be accessed on a thumb cluster or pinkies, such as meta, enter, tab, esc and delete.
92
93As the layer hosting esc, we duplicated some symbols here to allow for fast navigation in vim. For instance, esc, :, w, q can be done in a single roll.
94
95Where is the keymap.c?
96----------------------
97
98The keymap.c file is not published to the repository. It is generated from `keymap.json` by the build system.
99
100This avoids duplicating information and allow users to edit their keymap from the qmk configurator web interface.
101
102How do I edit and update the keymap?
103------------------------------------
104
105The `keymap.json` file is generated from the qmk configurator interface and formatted for better readability in the context of the A. Dux keyboard.
106
107To edit it, you may:
108* Edit it directly from a text editor.
109* Edit it from the qmk configurator.
110
111If you decide to use the latter workflow, here are the steps to follow:
112
113* From the qmk configurator, hit the "import QMK keymap json file" button (it has a drawing with an up arrow on it).
114* Browse to the location of your keymap (for example, `<your qmk repo>/keyboards/a_dux/keymaps/default/keymap.json`)
115* Perform any modification to the keymap in the web UI
116* Export the keymap to your downloads folder, by hitting the "Export QMK keymap json file" button (it has a drawing with a down arrow on it)
117* Override your original keymap with the output of formatting the exported keymap by running a command such as this one from the root of your qmk repo:
118 ```
119 ./keyboards/a_dux/keymaps/json2crab.py --input <Your download directory>/default.json > ./keyboards/a_dux/keymaps/default/keymap.json
120 ```
121 Note that you may first need to make json2crab executable by using `chmod +x` on it.
122 Also note that you may then want to remove the exported keymap from your dowload directory.
diff --git a/keyboards/a_dux/keymaps/jcmkk3/keymap.c b/keyboards/a_dux/keymaps/jcmkk3/keymap.c
new file mode 100644
index 000000000..608e0c522
--- /dev/null
+++ b/keyboards/a_dux/keymaps/jcmkk3/keymap.c
@@ -0,0 +1,130 @@
1/* Copyright 2021 @jcmkk3
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#include "oneshot.h"
19
20#define LA_UPP OSL(UPP)
21#define LA_SYM OSL(SYM)
22#define LA_NAV MO(NAV)
23
24enum layers {
25 DEF,
26 UPP,
27 SYM,
28 NAV,
29 NUM,
30};
31
32enum keycodes {
33 // Custom oneshot mod implementation with no timers.
34 OS_SHFT = SAFE_RANGE,
35 OS_CTRL,
36 OS_ALT,
37 OS_GUI,
38};
39
40const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
41 [DEF] = LAYOUT(
42 KC_Y, KC_C, KC_L, KC_M, KC_K, KC_Z, KC_F, KC_U, KC_QUOT, KC_DQUO,
43 KC_I, KC_S, KC_R, KC_T, KC_G, KC_P, KC_N, KC_E, KC_A, KC_O,
44 KC_Q, KC_V, KC_W, KC_D, KC_J, KC_B, KC_H, KC_COMM, KC_DOT, KC_X,
45 LA_NAV, KC_SPC, LA_UPP, LA_SYM
46 ),
47
48 [UPP] = LAYOUT(
49 S(KC_Y), S(KC_C), S(KC_L), S(KC_M), S(KC_K), S(KC_Z), S(KC_F), S(KC_U), KC_EXLM, KC_QUES,
50 S(KC_I), S(KC_S), S(KC_R), S(KC_T), S(KC_G), S(KC_P), S(KC_N), S(KC_E), S(KC_A), S(KC_O),
51 S(KC_Q), S(KC_V), S(KC_W), S(KC_D), S(KC_J), S(KC_B), S(KC_H), KC_SCLN, KC_COLN, S(KC_X),
52 _______, _______, _______, _______
53 ),
54
55 [SYM] = LAYOUT(
56 KC_LABK, KC_LCBR, KC_LBRC, KC_LPRN, KC_CIRC, KC_DLR, KC_RPRN, KC_RBRC, KC_RCBR, KC_RABK,
57 KC_HASH, KC_UNDS, KC_EQL, KC_MINS, KC_PLUS, KC_AMPR, OS_CTRL, OS_SHFT, OS_ALT, OS_GUI,
58 KC_PERC, KC_GRV, KC_TILD, KC_SLSH, KC_ASTR, KC_PIPE, KC_BSLS, KC_SCLN, KC_COLN, KC_AT,
59 _______, _______, _______, _______
60 ),
61
62 [NAV] = LAYOUT(
63 XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_TAB, KC_UP, KC_ENT, KC_DEL,
64 OS_GUI, OS_ALT, OS_SHFT, OS_CTRL, XXXXXXX, KC_HOME, KC_LEFT, KC_DOWN, KC_RGHT, KC_END,
65 C(KC_Z), C(KC_X), C(KC_C), C(KC_V), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
66 _______, _______, KC_BSPC, _______
67 ),
68
69 [NUM] = LAYOUT(
70 KC_7, KC_5, KC_3, KC_1, KC_9, KC_8, KC_0, KC_2, KC_4, KC_6,
71 OS_GUI, OS_ALT, OS_SHFT, OS_CTRL, XXXXXXX, XXXXXXX, OS_CTRL, OS_SHFT, OS_ALT, OS_GUI,
72 XXXXXXX, XXXXXXX, XXXXXXX, KC_MINS, XXXXXXX, XXXXXXX, XXXXXXX, KC_COMM, KC_DOT, KC_SLSH,
73 _______, _______, KC_BSPC, _______
74 ),
75};
76
77bool is_oneshot_cancel_key(uint16_t keycode) {
78 switch (keycode) {
79 case LA_SYM:
80 case LA_NAV:
81 return true;
82 default:
83 return false;
84 }
85}
86
87bool is_oneshot_ignored_key(uint16_t keycode) {
88 switch (keycode) {
89 case LA_SYM:
90 case LA_NAV:
91 case KC_LSFT:
92 case OS_SHFT:
93 case OS_CTRL:
94 case OS_ALT:
95 case OS_GUI:
96 return true;
97 default:
98 return false;
99 }
100}
101
102oneshot_state os_shft_state = os_up_unqueued;
103oneshot_state os_ctrl_state = os_up_unqueued;
104oneshot_state os_alt_state = os_up_unqueued;
105oneshot_state os_gui_state = os_up_unqueued;
106
107bool process_record_user(uint16_t keycode, keyrecord_t *record) {
108 update_oneshot(
109 &os_shft_state, KC_LSFT, OS_SHFT,
110 keycode, record
111 );
112 update_oneshot(
113 &os_ctrl_state, KC_LCTL, OS_CTRL,
114 keycode, record
115 );
116 update_oneshot(
117 &os_alt_state, KC_LALT, OS_ALT,
118 keycode, record
119 );
120 update_oneshot(
121 &os_gui_state, KC_LGUI, OS_GUI,
122 keycode, record
123 );
124
125 return true;
126}
127
128layer_state_t layer_state_set_user(layer_state_t state) {
129 return update_tri_layer_state(state, SYM, NAV, NUM);
130}
diff --git a/keyboards/a_dux/keymaps/jcmkk3/oneshot.c b/keyboards/a_dux/keymaps/jcmkk3/oneshot.c
new file mode 100644
index 000000000..e84b5a7b1
--- /dev/null
+++ b/keyboards/a_dux/keymaps/jcmkk3/oneshot.c
@@ -0,0 +1,72 @@
1/* Copyright 2021 @jcmkk3
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 "oneshot.h"
17
18void update_oneshot(
19 oneshot_state *state,
20 uint16_t mod,
21 uint16_t trigger,
22 uint16_t keycode,
23 keyrecord_t *record
24) {
25 if (keycode == trigger) {
26 if (record->event.pressed) {
27 // Trigger keydown
28 if (*state == os_up_unqueued) {
29 register_code(mod);
30 }
31 *state = os_down_unused;
32 } else {
33 // Trigger keyup
34 switch (*state) {
35 case os_down_unused:
36 // If we didn't use the mod while trigger was held, queue it.
37 *state = os_up_queued;
38 break;
39 case os_down_used:
40 // If we did use the mod while trigger was held, unregister it.
41 *state = os_up_unqueued;
42 unregister_code(mod);
43 break;
44 default:
45 break;
46 }
47 }
48 } else {
49 if (record->event.pressed) {
50 if (is_oneshot_cancel_key(keycode) && *state != os_up_unqueued) {
51 // Cancel oneshot on designated cancel keydown.
52 *state = os_up_unqueued;
53 unregister_code(mod);
54 }
55 } else {
56 if (!is_oneshot_ignored_key(keycode)) {
57 // On non-ignored keyup, consider the oneshot used.
58 switch (*state) {
59 case os_down_unused:
60 *state = os_down_used;
61 break;
62 case os_up_queued:
63 *state = os_up_unqueued;
64 unregister_code(mod);
65 break;
66 default:
67 break;
68 }
69 }
70 }
71 }
72}
diff --git a/keyboards/a_dux/keymaps/jcmkk3/oneshot.h b/keyboards/a_dux/keymaps/jcmkk3/oneshot.h
new file mode 100644
index 000000000..b88e68d1d
--- /dev/null
+++ b/keyboards/a_dux/keymaps/jcmkk3/oneshot.h
@@ -0,0 +1,46 @@
1/* Copyright 2021 @jcmkk3
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#pragma once
17
18#include QMK_KEYBOARD_H
19
20// Represents the four states a oneshot key can be in
21typedef enum {
22 os_up_unqueued,
23 os_up_queued,
24 os_down_unused,
25 os_down_used,
26} oneshot_state;
27
28// Custom oneshot mod implementation that doesn't rely on timers. If a mod is
29// used while it is held it will be unregistered on keyup as normal, otherwise
30// it will be queued and only released after the next non-mod keyup.
31void update_oneshot(
32 oneshot_state *state,
33 uint16_t mod,
34 uint16_t trigger,
35 uint16_t keycode,
36 keyrecord_t *record
37);
38
39// To be implemented by the consumer. Defines keys to cancel oneshot mods.
40bool is_oneshot_cancel_key(uint16_t keycode);
41
42// To be implemented by the consumer. Defines keys to ignore when determining
43// whether a oneshot mod has been used. Setting this to modifiers and layer
44// change keys allows stacking multiple oneshot modifiers, and carrying them
45// between layers.
46bool is_oneshot_ignored_key(uint16_t keycode);
diff --git a/keyboards/a_dux/keymaps/jcmkk3/rules.mk b/keyboards/a_dux/keymaps/jcmkk3/rules.mk
new file mode 100644
index 000000000..b7dcd87b1
--- /dev/null
+++ b/keyboards/a_dux/keymaps/jcmkk3/rules.mk
@@ -0,0 +1 @@
SRC += oneshot.c
diff --git a/keyboards/a_dux/readme.md b/keyboards/a_dux/readme.md
new file mode 100644
index 000000000..7d9956f1e
--- /dev/null
+++ b/keyboards/a_dux/readme.md
@@ -0,0 +1,38 @@
1# Architeuthis Dux
2
3![Architeuthis Dux](https://raw.githubusercontent.com/tapioki/cephalopoda/main/Images/architeuthis_dux.png)
4
5AKA A. dux, A.D., "Giant squid"
6
734 keys, same stagger as [D. gigas](https://github.com/tapioki/cephalopoda/tree/main/Dosidicus%20gigas), but with two thumb keys included. Pinky, ring, index, and inner columns splayed at 15, 5, 0, -5, -5 degrees. SplitKB Tenting Puck support. All PCB files are available on the [project's github page](https://github.com/tapioki/cephalopoda/tree/main/Architeuthis%20dux)
8
9Thank you [Perce](https://madebyperce.com/) for the logo.
10
11## Cases can be found here:
12
13* [Flat Case](https://github.com/madebyperce/aduxcase)
14* [Tented Case](https://github.com/jdart/adux-tent)
15* [Case with Plates](https://github.com/sadekbaroudi/cephalopoda/tree/main/Architeuthis%20dux/case)
16
17## Keyboard Info
18
19* Keyboard Maintainer: [tapioki](https://github.com/tapioki)
20* Hardware Supported: Architeuthis Dux
21* Hardware Availability: [GitHub](https://github.com/tapioki/cephalopoda/tree/main/Architeuthis%20dux)
22
23Make examples for this keyboard (after setting up your build environment):
24
25 make a_dux:default
26
27 make a_dux:default:avrdude-split-left
28 make a_dux:default:avrdude-split-right
29
30## Bootloader
31
32Enter the bootloader in 3 ways:
33
34* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard
35* **Physical reset**: Briefly short the RST and GND pins on the microcontroller using tweezers, a paperclip, or any other conductive material.
36* **Keycode in layout**: Press the key mapped to `RESET` if it is available
37
38See 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).
diff --git a/keyboards/a_dux/rules.mk b/keyboards/a_dux/rules.mk
new file mode 100644
index 000000000..d7671a17b
--- /dev/null
+++ b/keyboards/a_dux/rules.mk
@@ -0,0 +1,23 @@
1# MCU name
2MCU = atmega32u4
3
4# Bootloader selection
5BOOTLOADER = atmel-dfu
6
7# Build Options
8# change yes to no to disable
9#
10BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite
11MOUSEKEY_ENABLE = yes # Mouse keys
12EXTRAKEY_ENABLE = yes # Audio control and System control
13CONSOLE_ENABLE = no # Console for debug
14COMMAND_ENABLE = no # Commands for debug and configuration
15# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
16SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
17# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
18NKRO_ENABLE = yes # USB Nkey Rollover
19BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
20RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
21AUDIO_ENABLE = no # Audio output
22UNICODE_ENABLE = yes
23SPLIT_KEYBOARD = yes
diff --git a/keyboards/alf/x2/config.h b/keyboards/alf/x2/config.h
index c2c3abdcf..a6f4958b0 100644
--- a/keyboards/alf/x2/config.h
+++ b/keyboards/alf/x2/config.h
@@ -1,30 +1,51 @@
1/* Copyright 2018-2021 @fixed, MechMerlin, QMK
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
1#pragma once 17#pragma once
2 18
3#include "config_common.h" 19#include "config_common.h"
4 20
5/* USB Device descriptor parameter */ 21/* USB Device descriptor parameter */
6#define VENDOR_ID 0xFEED 22#define VENDOR_ID 0xFEED
7#define PRODUCT_ID 0x6060 23#define PRODUCT_ID 0x6060
8#define DEVICE_VER 0x0001 24#define DEVICE_VER 0x0001
9#define MANUFACTURER ALF 25#define MANUFACTURER ALF
10#define PRODUCT X2 26#define PRODUCT X2
11 27
12/* key matrix size */ 28/* key matrix size */
13#define MATRIX_ROWS 5 29#define MATRIX_ROWS 5
14#define MATRIX_COLS 15 30#define MATRIX_COLS 15
15 31
16/* key matrix pins */ 32/* key matrix pins */
17#define MATRIX_ROW_PINS { D0, D1, D2, D3, D5 } 33#define MATRIX_ROW_PINS \
18#define MATRIX_COL_PINS { F0, F1, E6, C7, C6, B7, D4, B1, B0, B5, B4, D7, D6, B3, F4 } 34 { D0, D1, D2, D3, D5 }
35#define MATRIX_COL_PINS \
36 { F0, F1, E6, C7, C6, B7, D4, B1, B0, B5, B4, D7, D6, B3, F4 }
19#define UNUSED_PINS 37#define UNUSED_PINS
20 38
21/* COL2ROW or ROW2COL */ 39/* COL2ROW or ROW2COL */
22#define DIODE_DIRECTION COL2ROW 40#define DIODE_DIRECTION COL2ROW
41
42#define LED_CAPS_LOCK_PIN B2
43#define LED_PIN_ON_STATE 0
23 44
24/* number of backlight levels */ 45/* number of backlight levels */
25#define BACKLIGHT_PIN B6 46#define BACKLIGHT_PIN B6
26#ifdef BACKLIGHT_PIN 47#ifdef BACKLIGHT_PIN
27#define BACKLIGHT_LEVELS 3 48# define BACKLIGHT_LEVELS 3
28#endif 49#endif
29 50
30/* Set 0 if debouncing isn't needed */ 51/* Set 0 if debouncing isn't needed */
@@ -38,9 +59,9 @@
38 59
39#define RGB_DI_PIN E2 60#define RGB_DI_PIN E2
40#ifdef RGB_DI_PIN 61#ifdef RGB_DI_PIN
41#define RGBLIGHT_ANIMATIONS 62# define RGBLIGHT_ANIMATIONS
42#define RGBLED_NUM 4 63# define RGBLED_NUM 4
43#define RGBLIGHT_HUE_STEP 8 64# define RGBLIGHT_HUE_STEP 8
44#define RGBLIGHT_SAT_STEP 8 65# define RGBLIGHT_SAT_STEP 8
45#define RGBLIGHT_VAL_STEP 8 66# define RGBLIGHT_VAL_STEP 8
46#endif 67#endif
diff --git a/keyboards/alf/x2/info.json b/keyboards/alf/x2/info.json
index 7acb87e29..4a3cc839c 100644
--- a/keyboards/alf/x2/info.json
+++ b/keyboards/alf/x2/info.json
@@ -1,30 +1,84 @@
1{ 1{
2 "keyboard_name": "ALF X2", 2 "keyboard_name": "ALF X2",
3 "url": "", 3 "url": "",
4 "maintainer": "qmk", 4 "maintainer": "qmk",
5 "layouts": { 5 "layouts": {
6 "LAYOUT": { 6 "LAYOUT_all": {
7 "layout": [{"x":1.5, "y":0}, {"x":2.5, "y":0}, {"label":"~", "x":0, "y":1}, {"label":"!", "x":1, "y":1}, {"label":"@", "x":2, "y":1}, {"label":"#", "x":3, "y":1}, {"label":"$", "x":4, "y":1}, {"label":"%", "x":5, "y":1}, {"label":"^", "x":6, "y":1}, {"label":"&", "x":7, "y":1}, {"label":"*", "x":8, "y":1}, {"label":"(", "x":9, "y":1}, {"label":")", "x":10, "y":1}, {"label":"_", "x":11, "y":1}, {"label":"+", "x":12, "y":1}, {"x":13, "y":1}, {"x":14, "y":1}, {"label":"Tab", "x":0, "y":2, "w":1.5}, {"label":"Q", "x":1.5, "y":2}, {"label":"W", "x":2.5, "y":2}, {"label":"E", "x":3.5, "y":2}, {"label":"R", "x":4.5, "y":2}, {"label":"T", "x":5.5, "y":2}, {"label":"Y", "x":6.5, "y":2}, {"label":"U", "x":7.5, "y":2}, {"label":"I", "x":8.5, "y":2}, {"label":"O", "x":9.5, "y":2}, {"label":"P", "x":10.5, "y":2}, {"label":"{", "x":11.5, "y":2}, {"label":"}", "x":12.5, "y":2}, {"label":"|", "x":13.5, "y":2, "w":1.5}, {"label":"Caps Lock", "x":0, "y":3, "w":1.75}, {"label":"A", "x":1.75, "y":3}, {"label":"S", "x":2.75, "y":3}, {"label":"D", "x":3.75, "y":3}, {"label":"F", "x":4.75, "y":3}, {"label":"G", "x":5.75, "y":3}, {"label":"H", "x":6.75, "y":3}, {"label":"J", "x":7.75, "y":3}, {"label":"K", "x":8.75, "y":3}, {"label":"L", "x":9.75, "y":3}, {"label":":", "x":10.75, "y":3}, {"label":"\"", "x":11.75, "y":3}, {"label":"Enter", "x":12.75, "y":3, "w":2.25}, {"x":0, "y":4}, {"x":1, "y":4}, {"label":"Z", "x":2, "y":4}, {"label":"X", "x":3, "y":4}, {"label":"C", "x":4, "y":4}, {"label":"V", "x":5, "y":4}, {"label":"B", "x":6, "y":4}, {"label":"N", "x":7, "y":4}, {"label":"M", "x":8, "y":4}, {"label":"<", "x":9, "y":4}, {"label":">", "x":10, "y":4}, {"label":"?", "x":11, "y":4}, {"x":12, "y":4}, {"x":13, "y":4}, {"x":14, "y":4}, {"label":"Ctrl", "x":0, "y":5, "w":1.25}, {"label":"Win", "x":1.25, "y":5, "w":1.25}, {"label":"Alt", "x":2.5, "y":5, "w":1.25}, {"x":3.75, "y":5, "w":6.25}, {"label":"Alt", "x":10, "y":5}, {"label":"Win", "x":11, "y":5}, {"label":"Menu", "x":12, "y":5}, {"label":"Ctrl", "x":13, "y":5}, {"x":14, "y":5}] 7 "layout": [
8 }, 8 {"x":1.5, "y":0},
9 {"x":2.5, "y":0},
9 10
10 "LAYOUT_std_ansi": { 11 {"label":"~", "x":0, "y":1},
11 "layout": [{"x":1.5, "y":0}, {"x":2.5, "y":0}, {"label":"~", "x":0, "y":1}, {"label":"!", "x":1, "y":1}, {"label":"@", "x":2, "y":1}, {"label":"#", "x":3, "y":1}, {"label":"$", "x":4, "y":1}, {"label":"%", "x":5, "y":1}, {"label":"^", "x":6, "y":1}, {"label":"&", "x":7, "y":1}, {"label":"*", "x":8, "y":1}, {"label":"(", "x":9, "y":1}, {"label":")", "x":10, "y":1}, {"label":"_", "x":11, "y":1}, {"label":"+", "x":12, "y":1}, {"label":"Backspace", "x":13, "y":1, "w":2}, {"label":"Tab", "x":0, "y":2, "w":1.5}, {"label":"Q", "x":1.5, "y":2}, {"label":"W", "x":2.5, "y":2}, {"label":"E", "x":3.5, "y":2}, {"label":"R", "x":4.5, "y":2}, {"label":"T", "x":5.5, "y":2}, {"label":"Y", "x":6.5, "y":2}, {"label":"U", "x":7.5, "y":2}, {"label":"I", "x":8.5, "y":2}, {"label":"O", "x":9.5, "y":2}, {"label":"P", "x":10.5, "y":2}, {"label":"{", "x":11.5, "y":2}, {"label":"}", "x":12.5, "y":2}, {"label":"|", "x":13.5, "y":2, "w":1.5}, {"label":"Caps Lock", "x":0, "y":3, "w":1.75}, {"label":"A", "x":1.75, "y":3}, {"label":"S", "x":2.75, "y":3}, {"label":"D", "x":3.75, "y":3}, {"label":"F", "x":4.75, "y":3}, {"label":"G", "x":5.75, "y":3}, {"label":"H", "x":6.75, "y":3}, {"label":"J", "x":7.75, "y":3}, {"label":"K", "x":8.75, "y":3}, {"label":"L", "x":9.75, "y":3}, {"label":":", "x":10.75, "y":3}, {"label":"\"", "x":11.75, "y":3}, {"label":"Enter", "x":12.75, "y":3, "w":2.25}, {"label":"Shift", "x":0, "y":4, "w":2.25}, {"label":"Z", "x":2.25, "y":4}, {"label":"X", "x":3.25, "y":4}, {"label":"C", "x":4.25, "y":4}, {"label":"V", "x":5.25, "y":4}, {"label":"B", "x":6.25, "y":4}, {"label":"N", "x":7.25, "y":4}, {"label":"M", "x":8.25, "y":4}, {"label":"<", "x":9.25, "y":4}, {"label":">", "x":10.25, "y":4}, {"label":"?", "x":11.25, "y":4}, {"label":"Shift", "x":12.25, "y":4, "w":2.75}, {"label":"Ctrl", "x":0, "y":5, "w":1.25}, {"label":"Win", "x":1.25, "y":5, "w":1.25}, {"label":"Alt", "x":2.5, "y":5, "w":1.25}, {"x":3.75, "y":5, "w":6.25}, {"label":"Alt", "x":10, "y":5, "w":1.25}, {"label":"Win", "x":11.25, "y":5, "w":1.25}, {"label":"Menu", "x":12.5, "y":5, "w":1.25}, {"label":"Ctrl", "x":13.75, "y":5, "w":1.25}] 12 {"label":"!", "x":1, "y":1},
12 }, 13 {"label":"@", "x":2, "y":1},
14 {"label":"#", "x":3, "y":1},
15 {"label":"$", "x":4, "y":1},
16 {"label":"%", "x":5, "y":1},
17 {"label":"^", "x":6, "y":1},
18 {"label":"&", "x":7, "y":1},
19 {"label":"*", "x":8, "y":1},
20 {"label":"(", "x":9, "y":1},
21 {"label":")", "x":10, "y":1},
22 {"label":"_", "x":11, "y":1},
23 {"label":"+", "x":12, "y":1},
24 {"x":13, "y":1},
25 {"x":14, "y":1},
13 26
14 "LAYOUT_std_splits": { 27 {"label":"Tab", "x":0, "y":2, "w":1.5},
15 "layout": [{"x":1.5, "y":0}, {"x":2.5, "y":0}, {"label":"~", "x":0, "y":1}, {"label":"!", "x":1, "y":1}, {"label":"@", "x":2, "y":1}, {"label":"#", "x":3, "y":1}, {"label":"$", "x":4, "y":1}, {"label":"%", "x":5, "y":1}, {"label":"^", "x":6, "y":1}, {"label":"&", "x":7, "y":1}, {"label":"*", "x":8, "y":1}, {"label":"(", "x":9, "y":1}, {"label":")", "x":10, "y":1}, {"label":"_", "x":11, "y":1}, {"label":"+", "x":12, "y":1}, {"x":13, "y":1}, {"x":14, "y":1}, {"label":"Tab", "x":0, "y":2, "w":1.5}, {"label":"Q", "x":1.5, "y":2}, {"label":"W", "x":2.5, "y":2}, {"label":"E", "x":3.5, "y":2}, {"label":"R", "x":4.5, "y":2}, {"label":"T", "x":5.5, "y":2}, {"label":"Y", "x":6.5, "y":2}, {"label":"U", "x":7.5, "y":2}, {"label":"I", "x":8.5, "y":2}, {"label":"O", "x":9.5, "y":2}, {"label":"P", "x":10.5, "y":2}, {"label":"{", "x":11.5, "y":2}, {"label":"}", "x":12.5, "y":2}, {"label":"|", "x":13.5, "y":2, "w":1.5}, {"label":"Caps Lock", "x":0, "y":3, "w":1.75}, {"label":"A", "x":1.75, "y":3}, {"label":"S", "x":2.75, "y":3}, {"label":"D", "x":3.75, "y":3}, {"label":"F", "x":4.75, "y":3}, {"label":"G", "x":5.75, "y":3}, {"label":"H", "x":6.75, "y":3}, {"label":"J", "x":7.75, "y":3}, {"label":"K", "x":8.75, "y":3}, {"label":"L", "x":9.75, "y":3}, {"label":":", "x":10.75, "y":3}, {"label":"\"", "x":11.75, "y":3}, {"label":"Enter", "x":12.75, "y":3, "w":2.25}, {"label":"Shift", "x":0, "y":4, "w":1.25}, {"x":1.25, "y":4}, {"label":"Z", "x":2.25, "y":4}, {"label":"X", "x":3.25, "y":4}, {"label":"C", "x":4.25, "y":4}, {"label":"V", "x":5.25, "y":4}, {"label":"B", "x":6.25, "y":4}, {"label":"N", "x":7.25, "y":4}, {"label":"M", "x":8.25, "y":4}, {"label":"<", "x":9.25, "y":4}, {"label":">", "x":10.25, "y":4}, {"label":"?", "x":11.25, "y":4}, {"label":"Shift", "x":12.25, "y":4, "w":1.75}, {"x":14, "y":4}, {"label":"Ctrl", "x":0, "y":5, "w":1.25}, {"label":"Win", "x":1.25, "y":5, "w":1.25}, {"label":"Alt", "x":2.5, "y":5, "w":1.25}, {"x":3.75, "y":5, "w":6.25}, {"label":"Alt", "x":10, "y":5, "w":1.25}, {"label":"Win", "x":11.25, "y":5, "w":1.25}, {"label":"Menu", "x":12.5, "y":5, "w":1.25}, {"label":"Ctrl", "x":13.75, "y":5, "w":1.25}] 28 {"label":"Q", "x":1.5, "y":2},
16 }, 29 {"label":"W", "x":2.5, "y":2},
30 {"label":"E", "x":3.5, "y":2},
31 {"label":"R", "x":4.5, "y":2},
32 {"label":"T", "x":5.5, "y":2},
33 {"label":"Y", "x":6.5, "y":2},
34 {"label":"U", "x":7.5, "y":2},
35 {"label":"I", "x":8.5, "y":2},
36 {"label":"O", "x":9.5, "y":2},
37 {"label":"P", "x":10.5, "y":2},
38 {"label":"{", "x":11.5, "y":2},
39 {"label":"}", "x":12.5, "y":2},
40 {"label":"|", "x":13.5, "y":2, "w":1.5},
17 41
18 "LAYOUT_hhkb": { 42 {"label":"Caps Lock", "x":0, "y":3, "w":1.75},
19 "layout": [{"x":1.5, "y":0}, {"x":2.5, "y":0}, {"label":"~", "x":0, "y":1}, {"label":"!", "x":1, "y":1}, {"label":"@", "x":2, "y":1}, {"label":"#", "x":3, "y":1}, {"label":"$", "x":4, "y":1}, {"label":"%", "x":5, "y":1}, {"label":"^", "x":6, "y":1}, {"label":"&", "x":7, "y":1}, {"label":"*", "x":8, "y":1}, {"label":"(", "x":9, "y":1}, {"label":")", "x":10, "y":1}, {"label":"_", "x":11, "y":1}, {"label":"+", "x":12, "y":1}, {"x":13, "y":1}, {"x":14, "y":1}, {"label":"Tab", "x":0, "y":2, "w":1.5}, {"label":"Q", "x":1.5, "y":2}, {"label":"W", "x":2.5, "y":2}, {"label":"E", "x":3.5, "y":2}, {"label":"R", "x":4.5, "y":2}, {"label":"T", "x":5.5, "y":2}, {"label":"Y", "x":6.5, "y":2}, {"label":"U", "x":7.5, "y":2}, {"label":"I", "x":8.5, "y":2}, {"label":"O", "x":9.5, "y":2}, {"label":"P", "x":10.5, "y":2}, {"label":"{", "x":11.5, "y":2}, {"label":"}", "x":12.5, "y":2}, {"label":"|", "x":13.5, "y":2, "w":1.5}, {"label":"Caps Lock", "x":0, "y":3, "w":1.75}, {"label":"A", "x":1.75, "y":3}, {"label":"S", "x":2.75, "y":3}, {"label":"D", "x":3.75, "y":3}, {"label":"F", "x":4.75, "y":3}, {"label":"G", "x":5.75, "y":3}, {"label":"H", "x":6.75, "y":3}, {"label":"J", "x":7.75, "y":3}, {"label":"K", "x":8.75, "y":3}, {"label":"L", "x":9.75, "y":3}, {"label":":", "x":10.75, "y":3}, {"label":"\"", "x":11.75, "y":3}, {"label":"Enter", "x":12.75, "y":3, "w":2.25}, {"label":"Shift", "x":0, "y":4, "w":2.25}, {"label":"Z", "x":2.25, "y":4}, {"label":"X", "x":3.25, "y":4}, {"label":"C", "x":4.25, "y":4}, {"label":"V", "x":5.25, "y":4}, {"label":"B", "x":6.25, "y":4}, {"label":"N", "x":7.25, "y":4}, {"label":"M", "x":8.25, "y":4}, {"label":"<", "x":9.25, "y":4}, {"label":">", "x":10.25, "y":4}, {"label":"?", "x":11.25, "y":4}, {"label":"Shift", "x":12.25, "y":4, "w":1.75}, {"x":14, "y":4}, {"label":"Win", "x":1.5, "y":5, "w":1.25}, {"label":"Alt", "x":2.75, "y":5, "w":1.5}, {"x":4.25, "y":5, "w":6.25}, {"label":"Alt", "x":10.5, "y":5, "w":1.5}, {"label":"Win", "x":12, "y":5, "w":1.25}] 43 {"label":"A", "x":1.75, "y":3},
20 }, 44 {"label":"S", "x":2.75, "y":3},
45 {"label":"D", "x":3.75, "y":3},
46 {"label":"F", "x":4.75, "y":3},
47 {"label":"G", "x":5.75, "y":3},
48 {"label":"H", "x":6.75, "y":3},
49 {"label":"J", "x":7.75, "y":3},
50 {"label":"K", "x":8.75, "y":3},
51 {"label":"L", "x":9.75, "y":3},
52 {"label":":", "x":10.75, "y":3},
53 {"label":"\"", "x":11.75, "y":3},
54 {"label":"Enter", "x":12.75, "y":3, "w":2.25},
21 55
22 "LAYOUT_split_arrows": { 56 {"label":"Shift", "x":0, "y":4},
23 "layout": [{"x":1.5, "y":0}, {"x":2.5, "y":0}, {"label":"~", "x":0, "y":1}, {"label":"!", "x":1, "y":1}, {"label":"@", "x":2, "y":1}, {"label":"#", "x":3, "y":1}, {"label":"$", "x":4, "y":1}, {"label":"%", "x":5, "y":1}, {"label":"^", "x":6, "y":1}, {"label":"&", "x":7, "y":1}, {"label":"*", "x":8, "y":1}, {"label":"(", "x":9, "y":1}, {"label":")", "x":10, "y":1}, {"label":"_", "x":11, "y":1}, {"label":"+", "x":12, "y":1}, {"x":13, "y":1}, {"x":14, "y":1}, {"label":"Tab", "x":0, "y":2, "w":1.5}, {"label":"Q", "x":1.5, "y":2}, {"label":"W", "x":2.5, "y":2}, {"label":"E", "x":3.5, "y":2}, {"label":"R", "x":4.5, "y":2}, {"label":"T", "x":5.5, "y":2}, {"label":"Y", "x":6.5, "y":2}, {"label":"U", "x":7.5, "y":2}, {"label":"I", "x":8.5, "y":2}, {"label":"O", "x":9.5, "y":2}, {"label":"P", "x":10.5, "y":2}, {"label":"{", "x":11.5, "y":2}, {"label":"}", "x":12.5, "y":2}, {"label":"|", "x":13.5, "y":2, "w":1.5}, {"label":"Caps Lock", "x":0, "y":3, "w":1.75}, {"label":"A", "x":1.75, "y":3}, {"label":"S", "x":2.75, "y":3}, {"label":"D", "x":3.75, "y":3}, {"label":"F", "x":4.75, "y":3}, {"label":"G", "x":5.75, "y":3}, {"label":"H", "x":6.75, "y":3}, {"label":"J", "x":7.75, "y":3}, {"label":"K", "x":8.75, "y":3}, {"label":"L", "x":9.75, "y":3}, {"label":":", "x":10.75, "y":3}, {"label":"\"", "x":11.75, "y":3}, {"label":"Enter", "x":12.75, "y":3, "w":2.25}, {"label":"Shift", "x":0, "y":4, "w":1.25}, {"x":1.25, "y":4}, {"label":"Z", "x":2.25, "y":4}, {"label":"X", "x":3.25, "y":4}, {"label":"C", "x":4.25, "y":4}, {"label":"V", "x":5.25, "y":4}, {"label":"B", "x":6.25, "y":4}, {"label":"N", "x":7.25, "y":4}, {"label":"M", "x":8.25, "y":4}, {"label":"<", "x":9.25, "y":4}, {"label":">", "x":10.25, "y":4}, {"label":"?", "x":11.25, "y":4, "w":1.75}, {"x":13, "y":4}, {"x":14, "y":4}, {"label":"Ctrl", "x":0, "y":5, "w":1.25}, {"label":"Win", "x":1.25, "y":5, "w":1.25}, {"label":"Alt", "x":2.5, "y":5, "w":1.25}, {"x":3.75, "y":5, "w":6.25}, {"label":"Alt", "x":10, "y":5}, {"label":"Win", "x":11, "y":5}, {"label":"Menu", "x":12, "y":5}, {"label":"Ctrl", "x":13, "y":5}, {"x":14, "y":5}] 57 {"x":1, "y":4},
24 }, 58 {"label":"Z", "x":2, "y":4},
59 {"label":"X", "x":3, "y":4},
60 {"label":"C", "x":4, "y":4},
61 {"label":"V", "x":5, "y":4},
62 {"label":"B", "x":6, "y":4},
63 {"label":"N", "x":7, "y":4},
64 {"label":"M", "x":8, "y":4},
65 {"label":"<", "x":9, "y":4},
66 {"label":">", "x":10, "y":4},
67 {"label":"?", "x":11, "y":4},
68 {"x":12, "y":4},
69 {"x":13, "y":4},
70 {"x":14, "y":4},
25 71
26 "LAYOUT_2u_split_arrows": { 72 {"label":"Ctrl", "x":0, "y":5, "w":1.25},
27 "layout": [{"x":1.5, "y":0}, {"x":2.5, "y":0}, {"label":"~", "x":0, "y":1}, {"label":"!", "x":1, "y":1}, {"label":"@", "x":2, "y":1}, {"label":"#", "x":3, "y":1}, {"label":"$", "x":4, "y":1}, {"label":"%", "x":5, "y":1}, {"label":"^", "x":6, "y":1}, {"label":"&", "x":7, "y":1}, {"label":"*", "x":8, "y":1}, {"label":"(", "x":9, "y":1}, {"label":")", "x":10, "y":1}, {"label":"_", "x":11, "y":1}, {"label":"+", "x":12, "y":1}, {"x":13, "y":1}, {"x":14, "y":1}, {"label":"Tab", "x":0, "y":2, "w":1.5}, {"label":"Q", "x":1.5, "y":2}, {"label":"W", "x":2.5, "y":2}, {"label":"E", "x":3.5, "y":2}, {"label":"R", "x":4.5, "y":2}, {"label":"T", "x":5.5, "y":2}, {"label":"Y", "x":6.5, "y":2}, {"label":"U", "x":7.5, "y":2}, {"label":"I", "x":8.5, "y":2}, {"label":"O", "x":9.5, "y":2}, {"label":"P", "x":10.5, "y":2}, {"label":"{", "x":11.5, "y":2}, {"label":"}", "x":12.5, "y":2}, {"label":"|", "x":13.5, "y":2, "w":1.5}, {"label":"Caps Lock", "x":0, "y":3, "w":1.75}, {"label":"A", "x":1.75, "y":3}, {"label":"S", "x":2.75, "y":3}, {"label":"D", "x":3.75, "y":3}, {"label":"F", "x":4.75, "y":3}, {"label":"G", "x":5.75, "y":3}, {"label":"H", "x":6.75, "y":3}, {"label":"J", "x":7.75, "y":3}, {"label":"K", "x":8.75, "y":3}, {"label":"L", "x":9.75, "y":3}, {"label":":", "x":10.75, "y":3}, {"label":"\"", "x":11.75, "y":3}, {"label":"Enter", "x":12.75, "y":3, "w":2.25}, {"label":"Shift", "x":0, "y":4}, {"x":1, "y":4}, {"label":"Z", "x":2, "y":4}, {"label":"X", "x":3, "y":4}, {"label":"C", "x":4, "y":4}, {"label":"V", "x":5, "y":4}, {"label":"B", "x":6, "y":4}, {"label":"N", "x":7, "y":4}, {"label":"M", "x":8, "y":4}, {"label":"<", "x":9, "y":4}, {"label":">", "x":10, "y":4}, {"label":"?", "x":11, "y":4}, {"x":12, "y":4}, {"x":13, "y":4}, {"x":14, "y":4}, {"label":"Ctrl", "x":0, "y":5, "w":1.25}, {"label":"Win", "x":1.25, "y":5, "w":1.25}, {"label":"Alt", "x":2.5, "y":5, "w":1.25}, {"x":3.75, "y":5, "w":6.25}, {"label":"Alt", "x":10, "y":5}, {"label":"Win", "x":11, "y":5}, {"label":"Menu", "x":12, "y":5}, {"label":"Ctrl", "x":13, "y":5}, {"x":14, "y":5}] 73 {"label":"Win", "x":1.25, "y":5, "w":1.25},
74 {"label":"Alt", "x":2.5, "y":5, "w":1.25},
75 {"x":3.75, "y":5, "w":6.25},
76 {"label":"Alt", "x":10, "y":5},
77 {"label":"Win", "x":11, "y":5},
78 {"label":"Menu", "x":12, "y":5},
79 {"label":"Ctrl", "x":13, "y":5},
80 {"x":14, "y":5}
81 ]
28 } 82 }
29 } 83 }
30} 84}
diff --git a/keyboards/alf/x2/keymaps/default/keymap.c b/keyboards/alf/x2/keymaps/default/keymap.c
index a119c7074..5e0d69ada 100644
--- a/keyboards/alf/x2/keymaps/default/keymap.c
+++ b/keyboards/alf/x2/keymaps/default/keymap.c
@@ -1,30 +1,39 @@
1/* Copyright 2018-2021 @fixed, MechMerlin, QMK
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
1#include QMK_KEYBOARD_H 17#include QMK_KEYBOARD_H
2 18
3const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 19const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
4 20
5 LAYOUT( 21 [0] = LAYOUT_all(
6 KC_VOLU, KC_VOLD, 22 KC_VOLU, KC_VOLD,
7 KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_NO, KC_BSPC, 23 KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, XXXXXXX, KC_BSPC,
8 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, 24 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS,
9 KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, 25 KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
10 KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_NO, KC_RSFT, KC_NO, 26 KC_LSFT, XXXXXXX, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, XXXXXXX, KC_RSFT, XXXXXXX,
11 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_NO, KC_APP, KC_RCTL), 27 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), XXXXXXX, KC_APP, KC_RCTL
28 ),
12 29
13 LAYOUT( 30 [1] = LAYOUT_all(
14 KC_MNXT, KC_MPRV, 31 KC_MNXT, KC_MPRV,
15 KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_DEL, 32 KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, KC_DEL,
16 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS, KC_UP, KC_TRNS, RESET, 33 _______, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, KC_SLCK, KC_PAUS, KC_UP, _______, RESET,
17 KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, KC_TRNS, 34 _______, KC_VOLD, KC_VOLU, KC_MUTE, _______, _______, _______, _______, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, _______,
18 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_END, KC_PGDN, KC_DOWN, KC_DOWN, KC_TRNS, KC_TRNS, 35 _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_END, KC_PGDN, KC_DOWN, KC_DOWN, _______, _______,
19 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), 36 _______, _______, _______, _______, _______, _______, _______, _______, _______
20}; 37 ),
21 38
22void led_set_user(uint8_t usb_led) { 39};
23 if (usb_led & (1 << USB_LED_CAPS_LOCK)) {
24 setPinOutput(B2);
25 writePinLow(B2);
26 } else {
27 setPinInput(B2);
28 writePinLow(B2);
29 }
30}
diff --git a/keyboards/alf/x2/keymaps/hhkb_60/keymap.c b/keyboards/alf/x2/keymaps/hhkb_60/keymap.c
index 0abde6243..1f46c22ad 100644
--- a/keyboards/alf/x2/keymaps/hhkb_60/keymap.c
+++ b/keyboards/alf/x2/keymaps/hhkb_60/keymap.c
@@ -1,28 +1,39 @@
1/* Copyright 2018-2021 @fixed, MechMerlin, QMK
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
1#include QMK_KEYBOARD_H 17#include QMK_KEYBOARD_H
2 18
3const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 19const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
4 20
5 LAYOUT( 21 [0] = LAYOUT_all(
6 KC_VOLU, KC_VOLD, 22 KC_VOLU, KC_VOLD,
7 KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_GRV, 23 KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_GRV,
8 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC, 24 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC,
9 KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, 25 KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
10 KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_NO, KC_RSFT, MO(1), 26 KC_LSFT, XXXXXXX, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, XXXXXXX, KC_RSFT, MO(1),
11 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_NO, KC_APP, KC_RCTL), 27 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, XXXXXXX, KC_APP, KC_RCTL
28 ),
12 29
13 LAYOUT( 30 [1] = LAYOUT_all(
14 KC_MNXT, KC_MPRV, 31 KC_MNXT, KC_MPRV,
15 KC_NO, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_INS, KC_DEL, 32 KC_PWR, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_INS, KC_DEL,
16 KC_CAPS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS, KC_UP, KC_TRNS, RESET, 33 KC_CAPS, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, KC_SLCK, KC_PAUS, KC_UP, _______, RESET,
17 KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, KC_TRNS, 34 _______, KC_VOLD, KC_VOLU, KC_MUTE, _______, _______, _______, _______, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, _______,
18 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_END, KC_PGDN, KC_DOWN, KC_DOWN, KC_TRNS, KC_TRNS, 35 _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_END, KC_PGDN, KC_DOWN, _______, _______, _______,
19 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), 36 _______, _______, _______, _______, _______, _______, _______, _______, _______
20}; 37 ),
21 38
22void led_set_user(uint8_t usb_led) { 39};
23 if (usb_led & (1 << USB_LED_CAPS_LOCK)) {
24 DDRB |= (1 << 2); PORTB &= ~(1 << 2);
25 } else {
26 DDRB &= ~(1 << 2); PORTB &= ~(1 << 2);
27 }
28} \ No newline at end of file
diff --git a/keyboards/alf/x2/readme.md b/keyboards/alf/x2/readme.md
index b171b5c79..671155a34 100644
--- a/keyboards/alf/x2/readme.md
+++ b/keyboards/alf/x2/readme.md
@@ -4,12 +4,18 @@
4 4
5A customizable 60% keyboard. 5A customizable 60% keyboard.
6 6
7Keyboard Maintainer: QMK Community 7* Keyboard Maintainer: [The QMK Community](https://github.com/qmk)
8Hardware Supported: ALF X2 60% 8* Hardware Supported: ALF X2 60%
9Hardware Availability: [zFrontier](https://en.zfrontier.com/products/group-buy-alf-x2-60) 9* Hardware Availability: [zFrontier](https://en.zfrontier.com/products/group-buy-alf-x2-60)
10 10
11Make example for this keyboard (after setting up your build environment): 11Make example for this keyboard (after setting up your build environment):
12 12
13 make alf/x2:default 13 make alf/x2:default
14 14
15Flashing example for this keyboard:
16
17 make alf/x2:default:flash
18
19To reset the board into bootloader mode, hold Space+B while plugging it in.
20
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). 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).
diff --git a/keyboards/alf/x2/rules.mk b/keyboards/alf/x2/rules.mk
index 89557e4ea..c5e4effba 100644
--- a/keyboards/alf/x2/rules.mk
+++ b/keyboards/alf/x2/rules.mk
@@ -5,15 +5,17 @@ MCU = atmega32u4
5BOOTLOADER = atmel-dfu 5BOOTLOADER = atmel-dfu
6 6
7# Build Options 7# Build Options
8# comment out to disable the options. 8# change yes to no to disable
9# 9#
10BOOTMAGIC_ENABLE = lite # Enable Bootmagic Lite 10BOOTMAGIC_ENABLE = lite # Enable Bootmagic Lite
11MOUSEKEY_ENABLE = yes # Mouse keys 11MOUSEKEY_ENABLE = yes # Mouse keys
12EXTRAKEY_ENABLE = yes # Audio control and System control 12EXTRAKEY_ENABLE = yes # Audio control and System control
13CONSOLE_ENABLE = no # Console for debug 13CONSOLE_ENABLE = no # Console for debug
14COMMAND_ENABLE = no # Commands for debug and configuration 14COMMAND_ENABLE = no # Commands for debug and configuration
15SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend 15# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
16NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work 16SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
17BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality 17# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
18AUDIO_ENABLE = no 18NKRO_ENABLE = yes # USB Nkey Rollover
19RGBLIGHT_ENABLE = yes 19BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
20RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
21AUDIO_ENABLE = no # Audio output
diff --git a/keyboards/alf/x2/x2.c b/keyboards/alf/x2/x2.c
index 111712f0b..e4352296b 100644
--- a/keyboards/alf/x2/x2.c
+++ b/keyboards/alf/x2/x2.c
@@ -1 +1,17 @@
1/* Copyright 2018 @fixed
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
1#include "x2.h" 17#include "x2.h"
diff --git a/keyboards/alf/x2/x2.h b/keyboards/alf/x2/x2.h
index 9262c44ac..48683ea50 100644
--- a/keyboards/alf/x2/x2.h
+++ b/keyboards/alf/x2/x2.h
@@ -1,97 +1,38 @@
1/* Copyright 2018-2021 @fixed, MechMerlin, QMK
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
1#pragma once 17#pragma once
2 18
3#include "quantum.h" 19#include "quantum.h"
4 20
5#define XXX KC_NO 21#define ___ KC_NO
6
7// k44 and k48 are the microswitches at the top of the PCB
8
9#define LAYOUT( \
10 k44, k48, \
11 k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E, \
12 k10, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E, \
13 k20, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, \
14 k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, k3E, \
15 k40, k41, k43, k46, k4A, k4B, k4C, k4D, k4E \
16) { \
17 { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E }, \
18 { k10, XXX, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E }, \
19 { k20, XXX, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, XXX }, \
20 { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, k3E }, \
21 { k40, k41, XXX, k43, k44, XXX, k46, XXX, k48, XXX, k4A, k4B, k4C, k4D, k4E } \
22}
23
24#define LAYOUT_std_ansi( \
25 k44, k48, \
26 k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0E, \
27 k10, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E, \
28 k20, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, \
29 k30, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3D, \
30 k40, k41, k43, k46, k4A, k4B, k4D, k4E \
31) { \
32 { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, XXX, k0E }, \
33 { k10, XXX, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E }, \
34 { k20, XXX, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, XXX }, \
35 { k30, XXX, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, XXX, k3D, XXX }, \
36 { k40, k41, XXX, k43, k44, XXX, k46, XXX, k48, XXX, k4A, k4B, XXX, k4D, k4E } \
37}
38
39#define LAYOUT_std_splits( \
40 k44, k48, \
41 k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E, \
42 k10, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E, \
43 k20, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, \
44 k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3D, k3E, \
45 k40, k41, k43, k46, k4A, k4B, k4D, k4E \
46) { \
47 { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E }, \
48 { k10, XXX, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E }, \
49 { k20, XXX, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, XXX }, \
50 { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, XXX, k3D, k3E }, \
51 { k40, k41, XXX, k43, k44, XXX, k46, XXX, k48, XXX, k4A, k4B, XXX, k4D, k4E } \
52}
53
54#define LAYOUT_hhkb( \
55 k44, k48, \
56 k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E, \
57 k10, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E, \
58 k20, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, \
59 k30, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3D, k3E, \
60 k41, k43, k46, k4A, k4B \
61) { \
62 { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E }, \
63 { k10, XXX, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E }, \
64 { k20, XXX, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, XXX }, \
65 { k30, XXX, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, XXX, k3D, k3E }, \
66 { XXX, k41, XXX, k43, k44, XXX, k46, XXX, k48, XXX, k4A, k4B, XXX, XXX, XXX } \
67}
68 22
69#define LAYOUT_2u_split_arrows( \ 23// K44 and K48 are the microswitches at the top of the PCB
70 k44, k48, \
71 k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E, \
72 k10, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E, \
73 k20, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, \
74 k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, k3E, \
75 k40, k41, k43, k46, k4A, k4B, k4C, k4D, k4E \
76) { \
77 { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E }, \
78 { k10, XXX, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E }, \
79 { k20, XXX, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, XXX }, \
80 { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, k3E }, \
81 { k40, k41, XXX, k43, k44, XXX, k46, XXX, k48, XXX, k4A, k4B, k4C, k4D, k4E } \
82}
83 24
84#define LAYOUT_split_arrows( \ 25#define LAYOUT_all( \
85 k44, k48, \ 26 K44, K48, \
86 k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E, \ 27 K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, \
87 k10, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E, \ 28 K10, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, \
88 k20, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, \ 29 K20, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, \
89 k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3D, k3E, \ 30 K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, \
90 k40, k41, k43, k46, k4A, k4B, k4C, k4D, k4E \ 31 K40, K41, K43, K46, K4A, K4B, K4C, K4D, K4E \
91) { \ 32) { \
92 { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E }, \ 33 { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E }, \
93 { k10, XXX, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E }, \ 34 { K10, ___, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E }, \
94 { k20, XXX, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, XXX }, \ 35 { K20, ___, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, ___ }, \
95 { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, XXX, k3D, k3E }, \ 36 { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E }, \
96 { k40, k41, XXX, k43, k44, XXX, k46, XXX, k48, XXX, k4A, k4B, k4C, k4D, k4E } \ 37 { K40, K41, ___, K43, K44, ___, K46, ___, K48, ___, K4A, K4B, K4C, K4D, K4E } \
97} 38}
diff --git a/keyboards/alfredslab/swift65/solder/info.json b/keyboards/alfredslab/swift65/solder/info.json
index 8dea53870..69729e433 100644
--- a/keyboards/alfredslab/swift65/solder/info.json
+++ b/keyboards/alfredslab/swift65/solder/info.json
@@ -2,8 +2,86 @@
2 "keyboard_name": "Swift65", 2 "keyboard_name": "Swift65",
3 "url": "https://swiftcables.net/", 3 "url": "https://swiftcables.net/",
4 "maintainer": "Spooknik", 4 "maintainer": "Spooknik",
5 "layout_aliases": {
6 "LAYOUT": "LAYOUT_625u_space_split_bs",
7 "LAYOUT_all": "LAYOUT_625u_space_split_bs"
8 },
5 "layouts": { 9 "layouts": {
6 "LAYOUT": { 10 "LAYOUT_625u_space": {
11 "layout": [
12 {"label":"K00 (B1,F7)", "x":0, "y":0},
13 {"label":"K01 (B1,F6)", "x":1, "y":0},
14 {"label":"K02 (B1,F5)", "x":2, "y":0},
15 {"label":"K03 (B1,F4)", "x":3, "y":0},
16 {"label":"K04 (B1,F1)", "x":4, "y":0},
17 {"label":"K05 (B1,F0)", "x":5, "y":0},
18 {"label":"K06 (B1,C7)", "x":6, "y":0},
19 {"label":"K07 (B1,C6)", "x":7, "y":0},
20 {"label":"K08 (B1,B6)", "x":8, "y":0},
21 {"label":"K09 (B1,B5)", "x":9, "y":0},
22 {"label":"K0A (B1,B4)", "x":10, "y":0},
23 {"label":"K0B (B1,D7)", "x":11, "y":0},
24 {"label":"K0C (B1,D5)", "x":12, "y":0},
25 {"label":"K0D (B1,D3)", "x":13, "y":0, "w":2},
26 {"label":"K0E (B1,D1)", "x":15.25, "y":0},
27
28 {"label":"K10 (B2,F7)", "x":0, "y":1, "w":1.5},
29 {"label":"K11 (B2,F6)", "x":1.5, "y":1},
30 {"label":"K12 (B2,F5)", "x":2.5, "y":1},
31 {"label":"K13 (B2,F4)", "x":3.5, "y":1},
32 {"label":"K14 (B2,F1)", "x":4.5, "y":1},
33 {"label":"K15 (B2,F0)", "x":5.5, "y":1},
34 {"label":"K16 (B2,C7)", "x":6.5, "y":1},
35 {"label":"K17 (B2,C6)", "x":7.5, "y":1},
36 {"label":"K18 (B2,B6)", "x":8.5, "y":1},
37 {"label":"K19 (B2,B5)", "x":9.5, "y":1},
38 {"label":"K1A (B2,B4)", "x":10.5, "y":1},
39 {"label":"K1B (B2,D7)", "x":11.5, "y":1},
40 {"label":"K1C (B2,D5)", "x":12.5, "y":1},
41 {"label":"K1D (B2,D3)", "x":13.5, "y":1, "w":1.5},
42 {"label":"K1E (B2,D1)", "x":15.25, "y":1},
43
44 {"label":"K20 (B3,F7)", "x":0, "y":2, "w":1.75},
45 {"label":"K21 (B3,F6)", "x":1.75, "y":2},
46 {"label":"K22 (B3,F5)", "x":2.75, "y":2},
47 {"label":"K23 (B3,F4)", "x":3.75, "y":2},
48 {"label":"K24 (B3,F1)", "x":4.75, "y":2},
49 {"label":"K25 (B3,F0)", "x":5.75, "y":2},
50 {"label":"K26 (B3,C7)", "x":6.75, "y":2},
51 {"label":"K27 (B3,C6)", "x":7.75, "y":2},
52 {"label":"K28 (B3,B6)", "x":8.75, "y":2},
53 {"label":"K29 (B3,B5)", "x":9.75, "y":2},
54 {"label":"K2A (B3,B4)", "x":10.75, "y":2},
55 {"label":"K2B (B3,D7)", "x":11.75, "y":2},
56 {"label":"K2C (B3,D5)", "x":12.75, "y":2, "w":2.25},
57 {"label":"K2E (B3,D1)", "x":15.25, "y":2},
58
59 {"label":"K30 (D4,F7)", "x":0, "y":3, "w":2.25},
60 {"label":"K32 (D4,F5)", "x":2.25, "y":3},
61 {"label":"K33 (D4,F4)", "x":3.25, "y":3},
62 {"label":"K34 (D4,F1)", "x":4.25, "y":3},
63 {"label":"K35 (D4,F0)", "x":5.25, "y":3},
64 {"label":"K36 (D4,C7)", "x":6.25, "y":3},
65 {"label":"K37 (D4,C6)", "x":7.25, "y":3},
66 {"label":"K38 (D4,B6)", "x":8.25, "y":3},
67 {"label":"K39 (D4,B5)", "x":9.25, "y":3},
68 {"label":"K3A (D4,B4)", "x":10.25, "y":3},
69 {"label":"K3B (D4,D7)", "x":11.25, "y":3},
70 {"label":"K3C (D4,D5)", "x":12.25, "y":3, "w":1.75},
71 {"label":"K3D (D4,D3)", "x":14, "y":3},
72
73 {"label":"K40 (D6,F7)", "x":0, "y":4, "w":1.25},
74 {"label":"K41 (D6,F6)", "x":1.25, "y":4, "w":1.25},
75 {"label":"K43 (D6,F4)", "x":2.5, "y":4, "w":1.25},
76 {"label":"K46 (D6,C7)", "x":3.75, "y":4, "w":6.25},
77 {"label":"K4A (D6,B4)", "x":10, "y":4, "w":1.25},
78 {"label":"K4B (D6,D7)", "x":11.25, "y":4, "w":1.25},
79 {"label":"K4C (D6,D5)", "x":13, "y":4},
80 {"label":"K4D (D6,D3)", "x":14, "y":4},
81 {"label":"K4E (D6,D1)", "x":15, "y":4}
82 ]
83 },
84 "LAYOUT_625u_space_split_bs": {
7 "layout": [ 85 "layout": [
8 {"label":"K00 (B1,F7)", "x":0, "y":0}, 86 {"label":"K00 (B1,F7)", "x":0, "y":0},
9 {"label":"K01 (B1,F6)", "x":1, "y":0}, 87 {"label":"K01 (B1,F6)", "x":1, "y":0},
@@ -21,6 +99,7 @@
21 {"label":"K0D (B1,D3)", "x":13, "y":0}, 99 {"label":"K0D (B1,D3)", "x":13, "y":0},
22 {"label":"K0F (B1,D0)", "x":14, "y":0}, 100 {"label":"K0F (B1,D0)", "x":14, "y":0},
23 {"label":"K0E (B1,D1)", "x":15.25, "y":0}, 101 {"label":"K0E (B1,D1)", "x":15.25, "y":0},
102
24 {"label":"K10 (B2,F7)", "x":0, "y":1, "w":1.5}, 103 {"label":"K10 (B2,F7)", "x":0, "y":1, "w":1.5},
25 {"label":"K11 (B2,F6)", "x":1.5, "y":1}, 104 {"label":"K11 (B2,F6)", "x":1.5, "y":1},
26 {"label":"K12 (B2,F5)", "x":2.5, "y":1}, 105 {"label":"K12 (B2,F5)", "x":2.5, "y":1},
@@ -36,6 +115,7 @@
36 {"label":"K1C (B2,D5)", "x":12.5, "y":1}, 115 {"label":"K1C (B2,D5)", "x":12.5, "y":1},
37 {"label":"K1D (B2,D3)", "x":13.5, "y":1, "w":1.5}, 116 {"label":"K1D (B2,D3)", "x":13.5, "y":1, "w":1.5},
38 {"label":"K1E (B2,D1)", "x":15.25, "y":1}, 117 {"label":"K1E (B2,D1)", "x":15.25, "y":1},
118
39 {"label":"K20 (B3,F7)", "x":0, "y":2, "w":1.75}, 119 {"label":"K20 (B3,F7)", "x":0, "y":2, "w":1.75},
40 {"label":"K21 (B3,F6)", "x":1.75, "y":2}, 120 {"label":"K21 (B3,F6)", "x":1.75, "y":2},
41 {"label":"K22 (B3,F5)", "x":2.75, "y":2}, 121 {"label":"K22 (B3,F5)", "x":2.75, "y":2},
@@ -50,6 +130,7 @@
50 {"label":"K2B (B3,D7)", "x":11.75, "y":2}, 130 {"label":"K2B (B3,D7)", "x":11.75, "y":2},
51 {"label":"K2C (B3,D5)", "x":12.75, "y":2, "w":2.25}, 131 {"label":"K2C (B3,D5)", "x":12.75, "y":2, "w":2.25},
52 {"label":"K2E (B3,D1)", "x":15.25, "y":2}, 132 {"label":"K2E (B3,D1)", "x":15.25, "y":2},
133
53 {"label":"K30 (D4,F7)", "x":0, "y":3, "w":2.25}, 134 {"label":"K30 (D4,F7)", "x":0, "y":3, "w":2.25},
54 {"label":"K32 (D4,F5)", "x":2.25, "y":3}, 135 {"label":"K32 (D4,F5)", "x":2.25, "y":3},
55 {"label":"K33 (D4,F4)", "x":3.25, "y":3}, 136 {"label":"K33 (D4,F4)", "x":3.25, "y":3},
@@ -63,6 +144,7 @@
63 {"label":"K3B (D4,D7)", "x":11.25, "y":3}, 144 {"label":"K3B (D4,D7)", "x":11.25, "y":3},
64 {"label":"K3C (D4,D5)", "x":12.25, "y":3, "w":1.75}, 145 {"label":"K3C (D4,D5)", "x":12.25, "y":3, "w":1.75},
65 {"label":"K3D (D4,D3)", "x":14, "y":3}, 146 {"label":"K3D (D4,D3)", "x":14, "y":3},
147
66 {"label":"K40 (D6,F7)", "x":0, "y":4, "w":1.25}, 148 {"label":"K40 (D6,F7)", "x":0, "y":4, "w":1.25},
67 {"label":"K41 (D6,F6)", "x":1.25, "y":4, "w":1.25}, 149 {"label":"K41 (D6,F6)", "x":1.25, "y":4, "w":1.25},
68 {"label":"K43 (D6,F4)", "x":2.5, "y":4, "w":1.25}, 150 {"label":"K43 (D6,F4)", "x":2.5, "y":4, "w":1.25},
@@ -73,7 +155,153 @@
73 {"label":"K4D (D6,D3)", "x":14, "y":4}, 155 {"label":"K4D (D6,D3)", "x":14, "y":4},
74 {"label":"K4E (D6,D1)", "x":15, "y":4} 156 {"label":"K4E (D6,D1)", "x":15, "y":4}
75 ] 157 ]
158 },
159 "LAYOUT_7u_space": {
160 "layout": [
161 {"label":"K00 (B1,F7)", "x":0, "y":0},
162 {"label":"K01 (B1,F6)", "x":1, "y":0},
163 {"label":"K02 (B1,F5)", "x":2, "y":0},
164 {"label":"K03 (B1,F4)", "x":3, "y":0},
165 {"label":"K04 (B1,F1)", "x":4, "y":0},
166 {"label":"K05 (B1,F0)", "x":5, "y":0},
167 {"label":"K06 (B1,C7)", "x":6, "y":0},
168 {"label":"K07 (B1,C6)", "x":7, "y":0},
169 {"label":"K08 (B1,B6)", "x":8, "y":0},
170 {"label":"K09 (B1,B5)", "x":9, "y":0},
171 {"label":"K0A (B1,B4)", "x":10, "y":0},
172 {"label":"K0B (B1,D7)", "x":11, "y":0},
173 {"label":"K0C (B1,D5)", "x":12, "y":0},
174 {"label":"K0D (B1,D3)", "x":13, "y":0, "w":2},
175 {"label":"K0E (B1,D1)", "x":15.25, "y":0},
176
177 {"label":"K10 (B2,F7)", "x":0, "y":1, "w":1.5},
178 {"label":"K11 (B2,F6)", "x":1.5, "y":1},
179 {"label":"K12 (B2,F5)", "x":2.5, "y":1},
180 {"label":"K13 (B2,F4)", "x":3.5, "y":1},
181 {"label":"K14 (B2,F1)", "x":4.5, "y":1},
182 {"label":"K15 (B2,F0)", "x":5.5, "y":1},
183 {"label":"K16 (B2,C7)", "x":6.5, "y":1},
184 {"label":"K17 (B2,C6)", "x":7.5, "y":1},
185 {"label":"K18 (B2,B6)", "x":8.5, "y":1},
186 {"label":"K19 (B2,B5)", "x":9.5, "y":1},
187 {"label":"K1A (B2,B4)", "x":10.5, "y":1},
188 {"label":"K1B (B2,D7)", "x":11.5, "y":1},
189 {"label":"K1C (B2,D5)", "x":12.5, "y":1},
190 {"label":"K1D (B2,D3)", "x":13.5, "y":1, "w":1.5},
191 {"label":"K1E (B2,D1)", "x":15.25, "y":1},
192
193 {"label":"K20 (B3,F7)", "x":0, "y":2, "w":1.75},
194 {"label":"K21 (B3,F6)", "x":1.75, "y":2},
195 {"label":"K22 (B3,F5)", "x":2.75, "y":2},
196 {"label":"K23 (B3,F4)", "x":3.75, "y":2},
197 {"label":"K24 (B3,F1)", "x":4.75, "y":2},
198 {"label":"K25 (B3,F0)", "x":5.75, "y":2},
199 {"label":"K26 (B3,C7)", "x":6.75, "y":2},
200 {"label":"K27 (B3,C6)", "x":7.75, "y":2},
201 {"label":"K28 (B3,B6)", "x":8.75, "y":2},
202 {"label":"K29 (B3,B5)", "x":9.75, "y":2},
203 {"label":"K2A (B3,B4)", "x":10.75, "y":2},
204 {"label":"K2B (B3,D7)", "x":11.75, "y":2},
205 {"label":"K2C (B3,D5)", "x":12.75, "y":2, "w":2.25},
206 {"label":"K2E (B3,D1)", "x":15.25, "y":2},
207
208 {"label":"K30 (D4,F7)", "x":0, "y":3, "w":2.25},
209 {"label":"K32 (D4,F5)", "x":2.25, "y":3},
210 {"label":"K33 (D4,F4)", "x":3.25, "y":3},
211 {"label":"K34 (D4,F1)", "x":4.25, "y":3},
212 {"label":"K35 (D4,F0)", "x":5.25, "y":3},
213 {"label":"K36 (D4,C7)", "x":6.25, "y":3},
214 {"label":"K37 (D4,C6)", "x":7.25, "y":3},
215 {"label":"K38 (D4,B6)", "x":8.25, "y":3},
216 {"label":"K39 (D4,B5)", "x":9.25, "y":3},
217 {"label":"K3A (D4,B4)", "x":10.25, "y":3},
218 {"label":"K3B (D4,D7)", "x":11.25, "y":3},
219 {"label":"K3C (D4,D5)", "x":12.25, "y":3, "w":1.75},
220 {"label":"K3D (D4,D3)", "x":14, "y":3},
221
222 {"label":"K40 (D6,F7)", "x":0, "y":4, "w":1.5},
223 {"label":"K41 (D6,F6)", "x":1.5, "y":4},
224 {"label":"K43 (D6,F4)", "x":2.5, "y":4, "w":1.5},
225 {"label":"K46 (D6,C7)", "x":4, "y":4, "w":7},
226 {"label":"K4B (D6,D7)", "x":11, "y":4, "w":1.5},
227 {"label":"K4C (D6,D5)", "x":13, "y":4},
228 {"label":"K4D (D6,D3)", "x":14, "y":4},
229 {"label":"K4E (D6,D1)", "x":15, "y":4}
230 ]
231 },
232 "LAYOUT_7u_space_split_bs": {
233 "layout": [
234 {"label":"K00 (B1,F7)", "x":0, "y":0},
235 {"label":"K01 (B1,F6)", "x":1, "y":0},
236 {"label":"K02 (B1,F5)", "x":2, "y":0},
237 {"label":"K03 (B1,F4)", "x":3, "y":0},
238 {"label":"K04 (B1,F1)", "x":4, "y":0},
239 {"label":"K05 (B1,F0)", "x":5, "y":0},
240 {"label":"K06 (B1,C7)", "x":6, "y":0},
241 {"label":"K07 (B1,C6)", "x":7, "y":0},
242 {"label":"K08 (B1,B6)", "x":8, "y":0},
243 {"label":"K09 (B1,B5)", "x":9, "y":0},
244 {"label":"K0A (B1,B4)", "x":10, "y":0},
245 {"label":"K0B (B1,D7)", "x":11, "y":0},
246 {"label":"K0C (B1,D5)", "x":12, "y":0},
247 {"label":"K0D (B1,D3)", "x":13, "y":0},
248 {"label":"K0F (B1,D0)", "x":14, "y":0},
249 {"label":"K0E (B1,D1)", "x":15.25, "y":0},
250
251 {"label":"K10 (B2,F7)", "x":0, "y":1, "w":1.5},
252 {"label":"K11 (B2,F6)", "x":1.5, "y":1},
253 {"label":"K12 (B2,F5)", "x":2.5, "y":1},
254 {"label":"K13 (B2,F4)", "x":3.5, "y":1},
255 {"label":"K14 (B2,F1)", "x":4.5, "y":1},
256 {"label":"K15 (B2,F0)", "x":5.5, "y":1},
257 {"label":"K16 (B2,C7)", "x":6.5, "y":1},
258 {"label":"K17 (B2,C6)", "x":7.5, "y":1},
259 {"label":"K18 (B2,B6)", "x":8.5, "y":1},
260 {"label":"K19 (B2,B5)", "x":9.5, "y":1},
261 {"label":"K1A (B2,B4)", "x":10.5, "y":1},
262 {"label":"K1B (B2,D7)", "x":11.5, "y":1},
263 {"label":"K1C (B2,D5)", "x":12.5, "y":1},
264 {"label":"K1D (B2,D3)", "x":13.5, "y":1, "w":1.5},
265 {"label":"K1E (B2,D1)", "x":15.25, "y":1},
266
267 {"label":"K20 (B3,F7)", "x":0, "y":2, "w":1.75},
268 {"label":"K21 (B3,F6)", "x":1.75, "y":2},
269 {"label":"K22 (B3,F5)", "x":2.75, "y":2},
270 {"label":"K23 (B3,F4)", "x":3.75, "y":2},
271 {"label":"K24 (B3,F1)", "x":4.75, "y":2},
272 {"label":"K25 (B3,F0)", "x":5.75, "y":2},
273 {"label":"K26 (B3,C7)", "x":6.75, "y":2},
274 {"label":"K27 (B3,C6)", "x":7.75, "y":2},
275 {"label":"K28 (B3,B6)", "x":8.75, "y":2},
276 {"label":"K29 (B3,B5)", "x":9.75, "y":2},
277 {"label":"K2A (B3,B4)", "x":10.75, "y":2},
278 {"label":"K2B (B3,D7)", "x":11.75, "y":2},
279 {"label":"K2C (B3,D5)", "x":12.75, "y":2, "w":2.25},
280 {"label":"K2E (B3,D1)", "x":15.25, "y":2},
281
282 {"label":"K30 (D4,F7)", "x":0, "y":3, "w":2.25},
283 {"label":"K32 (D4,F5)", "x":2.25, "y":3},
284 {"label":"K33 (D4,F4)", "x":3.25, "y":3},
285 {"label":"K34 (D4,F1)", "x":4.25, "y":3},
286 {"label":"K35 (D4,F0)", "x":5.25, "y":3},
287 {"label":"K36 (D4,C7)", "x":6.25, "y":3},
288 {"label":"K37 (D4,C6)", "x":7.25, "y":3},
289 {"label":"K38 (D4,B6)", "x":8.25, "y":3},
290 {"label":"K39 (D4,B5)", "x":9.25, "y":3},
291 {"label":"K3A (D4,B4)", "x":10.25, "y":3},
292 {"label":"K3B (D4,D7)", "x":11.25, "y":3},
293 {"label":"K3C (D4,D5)", "x":12.25, "y":3, "w":1.75},
294 {"label":"K3D (D4,D3)", "x":14, "y":3},
295
296 {"label":"K40 (D6,F7)", "x":0, "y":4, "w":1.5},
297 {"label":"K41 (D6,F6)", "x":1.5, "y":4},
298 {"label":"K43 (D6,F4)", "x":2.5, "y":4, "w":1.5},
299 {"label":"K46 (D6,C7)", "x":4, "y":4, "w":7},
300 {"label":"K4B (D6,D7)", "x":11, "y":4, "w":1.5},
301 {"label":"K4C (D6,D5)", "x":13, "y":4},
302 {"label":"K4D (D6,D3)", "x":14, "y":4},
303 {"label":"K4E (D6,D1)", "x":15, "y":4}
304 ]
76 } 305 }
77 } 306 }
78 ,"meta": "https://noroadsleft.github.io/kbf_qmk_converter/"
79} 307}
diff --git a/keyboards/alfredslab/swift65/solder/keymaps/default/keymap.c b/keyboards/alfredslab/swift65/solder/keymaps/default/keymap.c
index 274809bb1..e3367f159 100644
--- a/keyboards/alfredslab/swift65/solder/keymaps/default/keymap.c
+++ b/keyboards/alfredslab/swift65/solder/keymaps/default/keymap.c
@@ -17,14 +17,14 @@
17#include QMK_KEYBOARD_H 17#include QMK_KEYBOARD_H
18 18
19const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 19const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
20 [0] = LAYOUT( 20 [0] = LAYOUT_625u_space_split_bs(
21 KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_GRV, KC_BSPC, KC_HOME, 21 KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_GRV, KC_BSPC, KC_HOME,
22 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, 22 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL,
23 KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP, 23 KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP,
24 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_LSFT, KC_UP, 24 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_LSFT, KC_UP,
25 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_LALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT 25 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_LALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT
26 ), 26 ),
27 [1] = LAYOUT( 27 [1] = LAYOUT_625u_space_split_bs(
28 KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, KC_DEL, _______, 28 KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, KC_DEL, _______,
29 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 29 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
30 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PGDN, 30 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PGDN,
diff --git a/keyboards/alfredslab/swift65/solder/keymaps/default/readme.md b/keyboards/alfredslab/swift65/solder/keymaps/default/readme.md
deleted file mode 100644
index 74de14608..000000000
--- a/keyboards/alfredslab/swift65/solder/keymaps/default/readme.md
+++ /dev/null
@@ -1,3 +0,0 @@
1# Default Swift65 Solder Layout
2
3![](https://i.imgur.com/7Capi8W.png)
diff --git a/keyboards/alfredslab/swift65/solder/keymaps/via/keymap.c b/keyboards/alfredslab/swift65/solder/keymaps/via/keymap.c
index 9936becce..fddfd9476 100644
--- a/keyboards/alfredslab/swift65/solder/keymaps/via/keymap.c
+++ b/keyboards/alfredslab/swift65/solder/keymaps/via/keymap.c
@@ -17,28 +17,28 @@
17#include QMK_KEYBOARD_H 17#include QMK_KEYBOARD_H
18 18
19const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 19const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
20 [0] = LAYOUT( 20 [0] = LAYOUT_625u_space_split_bs(
21 KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_GRV, KC_BSPC, KC_HOME, 21 KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_GRV, KC_BSPC, KC_HOME,
22 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, 22 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL,
23 KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP, 23 KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP,
24 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_LSFT, KC_UP, 24 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_LSFT, KC_UP,
25 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_LALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT 25 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_LALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT
26 ), 26 ),
27 [1] = LAYOUT( 27 [1] = LAYOUT_625u_space_split_bs(
28 KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, KC_DEL, _______, 28 KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, KC_DEL, _______,
29 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 29 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
30 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PGDN, 30 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PGDN,
31 RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PGUP, 31 RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PGUP,
32 _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_END 32 _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_END
33 ), 33 ),
34 [2] = LAYOUT( 34 [2] = LAYOUT_625u_space_split_bs(
35 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 35 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
36 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 36 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
37 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 37 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
38 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 38 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
39 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS 39 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
40 ), 40 ),
41 [3] = LAYOUT( 41 [3] = LAYOUT_625u_space_split_bs(
42 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 42 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
43 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 43 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
44 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 44 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
diff --git a/keyboards/alfredslab/swift65/solder/keymaps/via/readme.md b/keyboards/alfredslab/swift65/solder/keymaps/via/readme.md
deleted file mode 100644
index 74de14608..000000000
--- a/keyboards/alfredslab/swift65/solder/keymaps/via/readme.md
+++ /dev/null
@@ -1,3 +0,0 @@
1# Default Swift65 Solder Layout
2
3![](https://i.imgur.com/7Capi8W.png)
diff --git a/keyboards/alfredslab/swift65/solder/readme.md b/keyboards/alfredslab/swift65/solder/readme.md
index b47743819..9a5c277ef 100644
--- a/keyboards/alfredslab/swift65/solder/readme.md
+++ b/keyboards/alfredslab/swift65/solder/readme.md
@@ -2,7 +2,7 @@
2 2
3A 65% Keyboard from Swiftcables 3A 65% Keyboard from Swiftcables
4 4
5* Keyboard Maintainer: [Steven Phillips (spoonik)](https://github.com/keyboardcollective) 5* Keyboard Maintainer: [Steven Phillips (spooknik)](https://github.com/keyboardcollective)
6* Hardware Supported: Swift65 Solder 6* Hardware Supported: Swift65 Solder
7* Hardware Availability: Soom from Swiftcables 7* Hardware Availability: Soom from Swiftcables
8 8
diff --git a/keyboards/alfredslab/swift65/solder/solder.h b/keyboards/alfredslab/swift65/solder/solder.h
index 7629379f5..651497bec 100644
--- a/keyboards/alfredslab/swift65/solder/solder.h
+++ b/keyboards/alfredslab/swift65/solder/solder.h
@@ -18,16 +18,60 @@
18 18
19#include "quantum.h" 19#include "quantum.h"
20 20
21#define LAYOUT( \ 21#define XXX KC_NO
22
23#define LAYOUT_625u_space( \
24 K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, \
25 K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, \
26 K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2E, \
27 K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, \
28 K40, K41, K43, K46, K4A, K4B, K4C, K4D, K4E \
29) { \
30 { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, XXX }, \
31 { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, XXX }, \
32 { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, XXX, K2E, XXX }, \
33 { K30, XXX, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, XXX, XXX }, \
34 { K40, K41, XXX, K43, XXX, XXX, K46, XXX, XXX, XXX, K4A, K4B, K4C, K4D, K4E, XXX }, \
35}
36
37#define LAYOUT_625u_space_split_bs( \
22 K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0F, K0E, \ 38 K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0F, K0E, \
23 K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, \ 39 K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, \
24 K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2E, \ 40 K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2E, \
25 K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, \ 41 K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, \
26 K40, K41, K43, K46, K4A, K4B, K4C, K4D, K4E \ 42 K40, K41, K43, K46, K4A, K4B, K4C, K4D, K4E \
27) { \ 43) { \
28 { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F }, \ 44 { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F }, \
29 { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, KC_NO }, \ 45 { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, XXX }, \
30 { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, KC_NO, K2E, KC_NO }, \ 46 { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, XXX, K2E, XXX }, \
31 { K30, KC_NO, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, KC_NO, KC_NO }, \ 47 { K30, XXX, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, XXX, XXX }, \
32 { K40, K41, KC_NO, K43, KC_NO, KC_NO, K46, KC_NO, KC_NO, KC_NO, K4A, K4B, K4C, K4D, K4E, KC_NO }, \ 48 { K40, K41, XXX, K43, XXX, XXX, K46, XXX, XXX, XXX, K4A, K4B, K4C, K4D, K4E, XXX }, \
49}
50
51#define LAYOUT_7u_space( \
52 K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, \
53 K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, \
54 K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2E, \
55 K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, \
56 K40, K41, K43, K46, K4B, K4C, K4D, K4E \
57) { \
58 { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, XXX }, \
59 { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, XXX }, \
60 { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, XXX, K2E, XXX }, \
61 { K30, XXX, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, XXX, XXX }, \
62 { K40, K41, XXX, K43, XXX, XXX, K46, XXX, XXX, XXX, XXX, K4B, K4C, K4D, K4E, XXX }, \
63}
64
65#define LAYOUT_7u_space_split_bs( \
66 K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0F, K0E, \
67 K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, \
68 K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2E, \
69 K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, \
70 K40, K41, K43, K46, K4B, K4C, K4D, K4E \
71) { \
72 { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F }, \
73 { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, XXX }, \
74 { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, XXX, K2E, XXX }, \
75 { K30, XXX, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, XXX, XXX }, \
76 { K40, K41, XXX, K43, XXX, XXX, K46, XXX, XXX, XXX, XXX, K4B, K4C, K4D, K4E, XXX }, \
33} 77}
diff --git a/keyboards/amj96/amj96.h b/keyboards/amj96/amj96.h
index 81abd6bf9..c50f6d17f 100644
--- a/keyboards/amj96/amj96.h
+++ b/keyboards/amj96/amj96.h
@@ -18,20 +18,15 @@
18 18
19#include "quantum.h" 19#include "quantum.h"
20 20
21// readability
22#define XXX KC_NO 21#define XXX KC_NO
23 22
24// This a shortcut to help you visually see your layout. 23#define LAYOUT_all( \
25// The following is an example using the Planck MIT layout 24 K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K09, K0A, K0C, \
26// The first section contains all of the arguments 25 K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K0B, K0F, K6F, \
27// The second converts the arguments into a two-dimensional array 26 K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, K3F, K0D, K6D, \
28#define LAYOUT( \ 27 K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, K4E, K4F, K6E, \
29 k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E, k1F, k09, k0A, k0C, \ 28 K50, K51, K52, K53, K54, K55, K56, K57, K58, K59, K5A, K5B, K5C, K5D, K5E, K5F, K0E, K07, \
30 k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, k2E, k2F, k0B, k0F, k6F, \ 29 K60, K61, K62, K63, K64, K65, K66, K68, K69, K6A, K6B, K6C \
31 k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, k3E, k3F, k0D, k6D, \
32 k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4A, k4B, k4C, k4D, k4E, k4F, k6E, \
33 k50, k51, k52, k53, k54, k55, k56, k57, k58, k59, k5A, k5B, k5C, k5D, k5E, k5F, k0E, k07, \
34 k60, k61, k62, k63, k64, k65, k66, k68, k69, k6A, k6B, k6C \
35) { \ 30) { \
36 { XXX, XXX, XXX, XXX, XXX, XXX, XXX, k07, XXX, k09, k0A, k0B, k0C, k0D, k0E, k0F }, \ 31 { XXX, XXX, XXX, XXX, XXX, XXX, XXX, k07, XXX, k09, k0A, k0B, k0C, k0D, k0E, k0F }, \
37 { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E, k1F }, \ 32 { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E, k1F }, \
diff --git a/keyboards/amj96/config.h b/keyboards/amj96/config.h
index 4a0eef0d9..5de56683a 100644
--- a/keyboards/amj96/config.h
+++ b/keyboards/amj96/config.h
@@ -39,20 +39,50 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
39 * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) 39 * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
40 * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) 40 * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
41 * 41 *
42*/ 42 */
43#define UNUSED_PINS 43#define UNUSED_PINS
44 44
45/* COL2ROW, ROW2COL*/ 45/* COL2ROW, ROW2COL*/
46#define DIODE_DIRECTION COL2ROW 46#define DIODE_DIRECTION COL2ROW
47 47
48//#define BACKLIGHT_PIN B7
49//#define BACKLIGHT_LEVELS 3
50//#define BACKLIGHT_BREATHING
51
52#define RGB_DI_PIN D3
53#ifdef RGB_DI_PIN
54# define RGBLED_NUM 16
55//# define RGBLIGHT_HUE_STEP 8
56//# define RGBLIGHT_SAT_STEP 8
57//# define RGBLIGHT_VAL_STEP 8
58//# define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */
59//# define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */
60/*== all animations enable ==*/
61# define RGBLIGHT_ANIMATIONS
62/*== or choose animations ==*/
63//# define RGBLIGHT_EFFECT_BREATHING
64//# define RGBLIGHT_EFFECT_RAINBOW_MOOD
65//# define RGBLIGHT_EFFECT_RAINBOW_SWIRL
66//# define RGBLIGHT_EFFECT_SNAKE
67//# define RGBLIGHT_EFFECT_KNIGHT
68//# define RGBLIGHT_EFFECT_CHRISTMAS
69//# define RGBLIGHT_EFFECT_STATIC_GRADIENT
70//# define RGBLIGHT_EFFECT_RGB_TEST
71//# define RGBLIGHT_EFFECT_ALTERNATING
72/*== customize breathing effect ==*/
73/*==== (DEFAULT) use fixed table instead of exp() and sin() ====*/
74//# define RGBLIGHT_BREATHE_TABLE_SIZE 256 // 256(default) or 128 or 64
75/*==== use exp() and sin() ====*/
76//# define RGBLIGHT_EFFECT_BREATHE_CENTER 1.85 // 1 to 2.7
77//# define RGBLIGHT_EFFECT_BREATHE_MAX 255 // 0 to 255
78#endif
79
48/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ 80/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
49#define DEBOUNCE 5 81#define DEBOUNCE 5
50 82
51/* define if matrix has ghost (lacks anti-ghosting diodes) */ 83/* define if matrix has ghost (lacks anti-ghosting diodes) */
52//#define MATRIX_HAS_GHOST 84//#define MATRIX_HAS_GHOST
53 85
54/* number of backlight levels */
55
56/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ 86/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
57#define LOCKING_SUPPORT_ENABLE 87#define LOCKING_SUPPORT_ENABLE
58/* Locking resynchronize hack */ 88/* Locking resynchronize hack */
@@ -85,54 +115,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
85//#define FORCE_NKRO 115//#define FORCE_NKRO
86 116
87/* 117/*
88 * Magic Key Options
89 *
90 * Magic keys are hotkey commands that allow control over firmware functions of
91 * the keyboard. They are best used in combination with the HID Listen program,
92 * found here: https://www.pjrc.com/teensy/hid_listen.html
93 *
94 * The options below allow the magic key functionality to be changed. This is
95 * useful if your keyboard/keypad is missing keys and you want magic key support.
96 *
97 */
98
99/* control how magic key switches layers */
100//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true
101//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true
102//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false
103
104/* override magic key keymap */
105//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS
106//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS
107//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM
108//#define MAGIC_KEY_HELP1 H
109//#define MAGIC_KEY_HELP2 SLASH
110//#define MAGIC_KEY_DEBUG D
111//#define MAGIC_KEY_DEBUG_MATRIX X
112//#define MAGIC_KEY_DEBUG_KBD K
113//#define MAGIC_KEY_DEBUG_MOUSE M
114//#define MAGIC_KEY_VERSION V
115//#define MAGIC_KEY_STATUS S
116//#define MAGIC_KEY_CONSOLE C
117//#define MAGIC_KEY_LAYER0_ALT1 ESC
118//#define MAGIC_KEY_LAYER0_ALT2 GRAVE
119//#define MAGIC_KEY_LAYER0 0
120//#define MAGIC_KEY_LAYER1 1
121//#define MAGIC_KEY_LAYER2 2
122//#define MAGIC_KEY_LAYER3 3
123//#define MAGIC_KEY_LAYER4 4
124//#define MAGIC_KEY_LAYER5 5
125//#define MAGIC_KEY_LAYER6 6
126//#define MAGIC_KEY_LAYER7 7
127//#define MAGIC_KEY_LAYER8 8
128//#define MAGIC_KEY_LAYER9 9
129//#define MAGIC_KEY_BOOTLOADER PAUSE
130//#define MAGIC_KEY_LOCK CAPS
131//#define MAGIC_KEY_EEPROM E
132//#define MAGIC_KEY_NKRO N
133//#define MAGIC_KEY_SLEEP_LED Z
134
135/*
136 * Feature disable options 118 * Feature disable options
137 * These options are also useful to firmware size reduction. 119 * These options are also useful to firmware size reduction.
138 */ 120 */
@@ -149,7 +131,3 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
149//#define NO_ACTION_ONESHOT 131//#define NO_ACTION_ONESHOT
150#define NO_ACTION_MACRO 132#define NO_ACTION_MACRO
151#define NO_ACTION_FUNCTION 133#define NO_ACTION_FUNCTION
152
153#define RGBLIGHT_ANIMATIONS
154#define RGBLED_NUM 16
155#define RGB_DI_PIN D3
diff --git a/keyboards/amj96/info.json b/keyboards/amj96/info.json
index 18328b123..b2aac215c 100644
--- a/keyboards/amj96/info.json
+++ b/keyboards/amj96/info.json
@@ -1,10 +1,122 @@
1{ 1{
2 "keyboard_name": "AMJ96", 2 "keyboard_name": "AMJ96",
3 "url": "", 3 "url": "",
4 "maintainer": "qmk", 4 "maintainer": "qmk",
5 "layouts": { 5 "layout_aliases": {
6 "LAYOUT": { 6 "LAYOUT": "LAYOUT_all"
7 "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"F1", "x":1, "y":0}, {"label":"F2", "x":2, "y":0}, {"label":"F3", "x":3, "y":0}, {"label":"F4", "x":4, "y":0}, {"label":"F5", "x":5, "y":0}, {"label":"F6", "x":6, "y":0}, {"label":"F7", "x":7, "y":0}, {"label":"F8", "x":8, "y":0}, {"label":"F9", "x":9, "y":0}, {"label":"F10", "x":10, "y":0}, {"label":"F11", "x":11, "y":0}, {"label":"F12", "x":12, "y":0}, {"label":"Print Screen", "x":13, "y":0}, {"label":"Pause", "x":14, "y":0}, {"label":"Ins", "x":15, "y":0}, {"label":"Del", "x":16, "y":0}, {"label":"Page Up", "x":17, "y":0}, {"label":"Page Down", "x":18, "y":0}, {"label":"` ~", "x":0, "y":1}, {"label":"1 !", "x":1, "y":1}, {"label":"2 @", "x":2, "y":1}, {"label":"3 #", "x":3, "y":1}, {"label":"4 $", "x":4, "y":1}, {"label":"5 %", "x":5, "y":1}, {"label":"6 ^", "x":6, "y":1}, {"label":"7 &", "x":7, "y":1}, {"label":"8 *", "x":8, "y":1}, {"label":"9 (", "x":9, "y":1}, {"label":"0 )", "x":10, "y":1}, {"label":"- _", "x":11, "y":1}, {"label":"= +", "x":12, "y":1}, {"label":"Back Space", "x":13, "y":1}, {"label":"Back Space 2", "x":14, "y":1}, {"label":"Num Lock", "x":15, "y":1}, {"label":"/", "x":16, "y":1}, {"label":"*", "x":17, "y":1}, {"label":"-", "x":18, "y":1}, {"label":"Tab", "x":0, "y":2, "w":1.5}, {"label":"Q", "x":1.5, "y":2}, {"label":"W", "x":2.5, "y":2}, {"label":"E", "x":3.5, "y":2}, {"label":"R", "x":4.5, "y":2}, {"label":"T", "x":5.5, "y":2}, {"label":"Y", "x":6.5, "y":2}, {"label":"U", "x":7.5, "y":2}, {"label":"I", "x":8.5, "y":2}, {"label":"O", "x":9.5, "y":2}, {"label":"P", "x":10.5, "y":2}, {"label":"[ {", "x":11.5, "y":2}, {"label":"] }", "x":12.5, "y":2}, {"label":"\\ |", "x":13.5, "y":2, "w":1.5}, {"label":"7", "x":15, "y":2}, {"label":"8", "x":16, "y":2}, {"label":"9", "x":17, "y":2}, {"label":"+", "x":18, "y":2}, {"label":"Caps Lock", "x":0, "y":3, "w":1.75}, {"label":"A", "x":1.75, "y":3}, {"label":"S", "x":2.75, "y":3}, {"label":"D", "x":3.75, "y":3}, {"label":"F", "x":4.75, "y":3}, {"label":"G", "x":5.75, "y":3}, {"label":"H", "x":6.75, "y":3}, {"label":"J", "x":7.75, "y":3}, {"label":"K", "x":8.75, "y":3}, {"label":"L", "x":9.75, "y":3}, {"label":"; :", "x":10.75, "y":3}, {"label":"' \"", "x":11.75, "y":3}, {"label":"Enter", "x":12.75, "y":3, "w":2.25}, {"label":"4", "x":15, "y":3}, {"label":"5", "x":16, "y":3}, {"label":"6", "x":17, "y":3}, {"label":"+", "x":18, "y":3}, {"label":"Shift", "x":0, "y":4, "w":1.25}, {"label":"ISO \\", "x":1.25, "y":4}, {"label":"Z", "x":2.25, "y":4}, {"label":"X", "x":3.25, "y":4}, {"label":"C", "x":4.25, "y":4}, {"label":"V", "x":5.25, "y":4}, {"label":"B", "x":6.25, "y":4}, {"label":"N", "x":7.25, "y":4}, {"label":"M", "x":8.25, "y":4}, {"label":", <", "x":9.25, "y":4}, {"label":". >", "x":10.25, "y":4}, {"label":"/ ?", "x":11.25, "y":4}, {"label":"Shift", "x":12.25, "y":4, "w":1.75}, {"label":"Up", "x":14, "y":4}, {"label":"1", "x":15, "y":4}, {"label":"2", "x":16, "y":4}, {"label":"3", "x":17, "y":4}, {"label":"Enter", "x":18, "y":4}, {"label":"Ctrl", "x":0, "y":5, "w":1.25}, {"label":"GUI", "x":1.25, "y":5, "w":1.25}, {"label":"Alt", "x":2.5, "y":5, "w":1.25}, {"label":"Space", "x":3.75, "y":5, "w":6.25}, {"label":"Alt", "x":10, "y":5, "w":1.5}, {"label":"Fn", "x":11.5, "y":5, "w":1.5}, {"label":"Left", "x":13, "y":5}, {"label":"Down", "x":14, "y":5}, {"label":"Right", "x":15, "y":5}, {"label":"0", "x":16, "y":5}, {"label":".", "x":17, "y":5}, {"label":"Enter", "x":18, "y":5}] 7 },
8 "layouts": {
9 "LAYOUT_all": {
10 "layout": [
11 {"label":"Esc", "x":0, "y":0},
12 {"label":"F1", "x":1, "y":0},
13 {"label":"F2", "x":2, "y":0},
14 {"label":"F3", "x":3, "y":0},
15 {"label":"F4", "x":4, "y":0},
16 {"label":"F5", "x":5, "y":0},
17 {"label":"F6", "x":6, "y":0},
18 {"label":"F7", "x":7, "y":0},
19 {"label":"F8", "x":8, "y":0},
20 {"label":"F9", "x":9, "y":0},
21 {"label":"F10", "x":10, "y":0},
22 {"label":"F11", "x":11, "y":0},
23 {"label":"F12", "x":12, "y":0},
24 {"label":"Print Screen", "x":13, "y":0},
25 {"label":"Pause", "x":14, "y":0},
26 {"label":"Ins", "x":15, "y":0},
27 {"label":"Del", "x":16, "y":0},
28 {"label":"Page Up", "x":17, "y":0},
29 {"label":"Page Down", "x":18, "y":0},
30
31 {"label":"` ~", "x":0, "y":1},
32 {"label":"1 !", "x":1, "y":1},
33 {"label":"2 @", "x":2, "y":1},
34 {"label":"3 #", "x":3, "y":1},
35 {"label":"4 $", "x":4, "y":1},
36 {"label":"5 %", "x":5, "y":1},
37 {"label":"6 ^", "x":6, "y":1},
38 {"label":"7 &", "x":7, "y":1},
39 {"label":"8 *", "x":8, "y":1},
40 {"label":"9 (", "x":9, "y":1},
41 {"label":"0 )", "x":10, "y":1},
42 {"label":"- _", "x":11, "y":1},
43 {"label":"= +", "x":12, "y":1},
44 {"label":"Back Space", "x":13, "y":1},
45 {"label":"Back Space 2", "x":14, "y":1},
46 {"label":"Num Lock", "x":15, "y":1},
47 {"label":"/", "x":16, "y":1},
48 {"label":"*", "x":17, "y":1},
49 {"label":"-", "x":18, "y":1},
50
51 {"label":"Tab", "x":0, "y":2, "w":1.5},
52 {"label":"Q", "x":1.5, "y":2},
53 {"label":"W", "x":2.5, "y":2},
54 {"label":"E", "x":3.5, "y":2},
55 {"label":"R", "x":4.5, "y":2},
56 {"label":"T", "x":5.5, "y":2},
57 {"label":"Y", "x":6.5, "y":2},
58 {"label":"U", "x":7.5, "y":2},
59 {"label":"I", "x":8.5, "y":2},
60 {"label":"O", "x":9.5, "y":2},
61 {"label":"P", "x":10.5, "y":2},
62 {"label":"[ {", "x":11.5, "y":2},
63 {"label":"] }", "x":12.5, "y":2},
64 {"label":"\\ |", "x":13.5, "y":2, "w":1.5},
65 {"label":"7", "x":15, "y":2},
66 {"label":"8", "x":16, "y":2},
67 {"label":"9", "x":17, "y":2},
68 {"label":"+", "x":18, "y":2},
69
70 {"label":"Caps Lock", "x":0, "y":3, "w":1.75},
71 {"label":"A", "x":1.75, "y":3},
72 {"label":"S", "x":2.75, "y":3},
73 {"label":"D", "x":3.75, "y":3},
74 {"label":"F", "x":4.75, "y":3},
75 {"label":"G", "x":5.75, "y":3},
76 {"label":"H", "x":6.75, "y":3},
77 {"label":"J", "x":7.75, "y":3},
78 {"label":"K", "x":8.75, "y":3},
79 {"label":"L", "x":9.75, "y":3},
80 {"label":"; :", "x":10.75, "y":3},
81 {"label":"' \"", "x":11.75, "y":3},
82 {"label":"Enter", "x":12.75, "y":3, "w":2.25},
83 {"label":"4", "x":15, "y":3},
84 {"label":"5", "x":16, "y":3},
85 {"label":"6", "x":17, "y":3},
86 {"label":"+", "x":18, "y":3},
87
88 {"label":"Shift", "x":0, "y":4, "w":1.25},
89 {"label":"ISO \\", "x":1.25, "y":4},
90 {"label":"Z", "x":2.25, "y":4},
91 {"label":"X", "x":3.25, "y":4},
92 {"label":"C", "x":4.25, "y":4},
93 {"label":"V", "x":5.25, "y":4},
94 {"label":"B", "x":6.25, "y":4},
95 {"label":"N", "x":7.25, "y":4},
96 {"label":"M", "x":8.25, "y":4},
97 {"label":", <", "x":9.25, "y":4},
98 {"label":". >", "x":10.25, "y":4},
99 {"label":"/ ?", "x":11.25, "y":4},
100 {"label":"Shift", "x":12.25, "y":4, "w":1.75},
101 {"label":"Up", "x":14, "y":4},
102 {"label":"1", "x":15, "y":4},
103 {"label":"2", "x":16, "y":4},
104 {"label":"3", "x":17, "y":4},
105 {"label":"Enter", "x":18, "y":4},
106
107 {"label":"Ctrl", "x":0, "y":5, "w":1.25},
108 {"label":"GUI", "x":1.25, "y":5, "w":1.25},
109 {"label":"Alt", "x":2.5, "y":5, "w":1.25},
110 {"label":"Space", "x":3.75, "y":5, "w":6.25},
111 {"label":"Alt", "x":10, "y":5, "w":1.5},
112 {"label":"Fn", "x":11.5, "y":5, "w":1.5},
113 {"label":"Left", "x":13, "y":5},
114 {"label":"Down", "x":14, "y":5},
115 {"label":"Right", "x":15, "y":5},
116 {"label":"0", "x":16, "y":5},
117 {"label":".", "x":17, "y":5},
118 {"label":"Enter", "x":18, "y":5}
119 ]
120 }
8 } 121 }
9 }
10} 122}
diff --git a/keyboards/amj96/keymaps/default/keymap.c b/keyboards/amj96/keymaps/default/keymap.c
index f670b3c4f..baa4bef9d 100644
--- a/keyboards/amj96/keymaps/default/keymap.c
+++ b/keyboards/amj96/keymaps/default/keymap.c
@@ -1,4 +1,5 @@
1/* Copyright 2017 MechMerlin 1/* Copyright 2017 MechMerlin
2 * 2021 QMK/James Young (@noroadsleft)
2 * 3 *
3 * This program is free software: you can redistribute it and/or modify 4 * 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 * it under the terms of the GNU General Public License as published by
@@ -17,21 +18,22 @@
17 18
18const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 19const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
19 20
20 [0] = LAYOUT( 21 [0] = LAYOUT_all(
21 KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_PAUS, KC_INS, KC_DEL, KC_PGUP, KC_PGDN, \ 22 KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_PAUS, KC_INS, KC_DEL, KC_PGUP, KC_PGDN,
22 KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_NO, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, \ 23 KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, XXXXXXX, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS,
23 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_P7, KC_P8, KC_P9, KC_PPLS, \ 24 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_P7, KC_P8, KC_P9, KC_PPLS,
24 KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_P4, KC_P5, KC_P6, KC_PPLS, \ 25 KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_P4, KC_P5, KC_P6, KC_PPLS,
25 KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT, \ 26 KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT,
26 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_FN0, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT, KC_PENT \ 27 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT, KC_PENT
27 ), 28 ),
29
30 [1] = LAYOUT_all(
31 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
32 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
33 _______, _______, _______, _______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
34 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
35 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
36 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
37 )
28 38
29 [1] = LAYOUT(
30 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
31 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, XXXXXXX, _______, _______, _______, _______, \
32 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
33 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
34 _______, XXXXXXX, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
35 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \
36 )
37}; 39};
diff --git a/keyboards/amj96/keymaps/default/readme.md b/keyboards/amj96/keymaps/default/readme.md
deleted file mode 100644
index 478ab9966..000000000
--- a/keyboards/amj96/keymaps/default/readme.md
+++ /dev/null
@@ -1 +0,0 @@
1# The default keymap for amj96
diff --git a/keyboards/amj96/readme.md b/keyboards/amj96/readme.md
index f13130047..8cd4ea94a 100644
--- a/keyboards/amj96/readme.md
+++ b/keyboards/amj96/readme.md
@@ -2,15 +2,19 @@
2 2
3The AMD96 is a 96 key custom keyboard with anodized aluminum case, twin usb ports, and support for backlight LEDs and RGB underglow via SMD LEDs. 3The AMD96 is a 96 key custom keyboard with anodized aluminum case, twin usb ports, and support for backlight LEDs and RGB underglow via SMD LEDs.
4 4
5Keyboard Maintainer: [MechMerlin](https://github.com/mechmerlin) 5* Keyboard Maintainer: [MechMerlin](https://github.com/mechmerlin)
6Hardware Supported: AMJ96 6* Hardware Supported: AMJ96
7Hardware Availability: Was previously available on a GB via [Flashquark](https://flashquark.com/product/amj96/) 7* Hardware Availability: [~~Flashquark~~](https://flashquark.com/product/amj96/) (no longer available)
8 8
9Make example for this keyboard (after setting up your build environment): 9Make example for this keyboard (after setting up your build environment):
10 10
11 make amj96:default 11 make amj96:default
12 12
13See [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) then the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. 13Flashing example for this keyboard:
14
15 make amj96:default:flash
16
17See 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).
14 18
15## Notes 19## Notes
16- In-switch and underglow LEDs currently not supported. 20- In-switch and underglow LEDs currently not supported.
diff --git a/keyboards/amj96/rules.mk b/keyboards/amj96/rules.mk
index c19a156ff..f780706a0 100644
--- a/keyboards/amj96/rules.mk
+++ b/keyboards/amj96/rules.mk
@@ -17,8 +17,8 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
17# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work 17# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
18NKRO_ENABLE = yes # USB Nkey Rollover 18NKRO_ENABLE = yes # USB Nkey Rollover
19BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality 19BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
20RGBLIGHT_ENABLE = yes 20RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
21UNICODE_ENABLE = no # Unicode
22AUDIO_ENABLE = no # Audio output 21AUDIO_ENABLE = no # Audio output
22
23CUSTOM_MATRIX = yes 23CUSTOM_MATRIX = yes
24SRC += matrix.c 24SRC += matrix.c
diff --git a/keyboards/buildakb/potato65s/config.h b/keyboards/buildakb/potato65s/config.h
new file mode 100644
index 000000000..518332785
--- /dev/null
+++ b/keyboards/buildakb/potato65s/config.h
@@ -0,0 +1,72 @@
1/*
2Copyright 2021 Maelkk
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#pragma once
19
20#include "config_common.h"
21
22/* USB Device descriptor parameter */
23#define VENDOR_ID 0x4A56
24#define PRODUCT_ID 0x0003
25#define DEVICE_VER 0x0001
26#define MANUFACTURER Maelkk
27#define PRODUCT Potato 65 Solderable
28
29/* key matrix size */
30#define MATRIX_ROWS 5
31#define MATRIX_COLS 15
32
33/* key matrix pins */
34#define MATRIX_ROW_PINS { F5, F4, F6, F0, D2 }
35#define MATRIX_COL_PINS { D3, D4, D6, D7, B4, B5, B6, F1, B0, B1, B2, B3, B7, D0, D1 }
36#define UNUSED_PINS
37
38/* COL2ROW or ROW2COL */
39#define DIODE_DIRECTION COL2ROW
40
41/* Set 0 if debouncing isn't needed */
42#define DEBOUNCE 5
43
44/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
45#define LOCKING_SUPPORT_ENABLE
46
47/* Locking resynchronize hack */
48#define LOCKING_RESYNC_ENABLE
49
50/* disable these deprecated features by default */
51#define NO_ACTION_MACRO
52#define NO_ACTION_FUNCTION
53
54#define RGB_DI_PIN D5
55#ifdef RGB_DI_PIN
56# define RGBLIGHT_EFFECT_BREATHING
57# define RGBLIGHT_EFFECT_RAINBOW_MOOD
58# define RGBLIGHT_EFFECT_RAINBOW_SWIRL
59# define RGBLIGHT_EFFECT_SNAKE
60# define RGBLIGHT_EFFECT_KNIGHT
61# define RGBLIGHT_EFFECT_CHRISTMAS
62# define RGBLIGHT_EFFECT_STATIC_GRADIENT
63# define RGBLIGHT_EFFECT_RGB_TEST
64# define RGBLIGHT_EFFECT_ALTERNATING
65# define RGBLIGHT_EFFECT_TWINKLE
66# define RGBLED_NUM 16
67# define RGBLIGHT_HUE_STEP 8
68# define RGBLIGHT_SAT_STEP 8
69# define RGBLIGHT_VAL_STEP 8
70# define RGBLIGHT_LIMIT_VAL 240
71# define RGBLIGHT_SLEEP
72#endif
diff --git a/keyboards/buildakb/potato65s/info.json b/keyboards/buildakb/potato65s/info.json
new file mode 100644
index 000000000..257ed6022
--- /dev/null
+++ b/keyboards/buildakb/potato65s/info.json
@@ -0,0 +1,83 @@
1{
2 "keyboard_name": "Potato 65 Solderable",
3 "url": "https://github.com/Aeonstrife/potato65solderable",
4 "maintainer": "Maelkk",
5 "layouts": {
6 "LAYOUT_all": {
7 "layout": [
8 { "x":0, "y":0 },
9 { "x":1, "y":0 },
10 { "x":2, "y":0 },
11 { "x":3, "y":0 },
12 { "x":4, "y":0 },
13 { "x":5, "y":0 },
14 { "x":6, "y":0 },
15 { "x":7, "y":0 },
16 { "x":8, "y":0 },
17 { "x":9, "y":0 },
18 { "x":10, "y":0 },
19 { "x":11, "y":0 },
20 { "x":12, "y":0 },
21 { "x":13, "y":0 },
22 { "x":14, "y":0 },
23 { "x":15, "y":0 },
24
25 { "x":0, "y":1, "w":1.5 },
26 { "x":1.5, "y":1 },
27 { "x":2.5, "y":1 },
28 { "x":3.5, "y":1 },
29 { "x":4.5, "y":1 },
30 { "x":5.5, "y":1 },
31 { "x":6.5, "y":1 },
32 { "x":7.5, "y":1 },
33 { "x":8.5, "y":1 },
34 { "x":9.5, "y":1 },
35 { "x":10.5, "y":1 },
36 { "x":11.5, "y":1 },
37 { "x":12.5, "y":1 },
38 { "x":13.5, "y":1, "w":1.5 },
39 { "x":15, "y":1 },
40
41 { "x":0, "y":2, "w":1.75 },
42 { "x":1.75, "y":2 },
43 { "x":2.75, "y":2 },
44 { "x":3.75, "y":2 },
45 { "x":4.75, "y":2 },
46 { "x":5.75, "y":2 },
47 { "x":6.75, "y":2 },
48 { "x":7.75, "y":2 },
49 { "x":8.75, "y":2 },
50 { "x":9.75, "y":2 },
51 { "x":10.75, "y":2 },
52 { "x":11.75, "y":2 },
53 { "x":12.75, "y":2, "w":2.25 },
54 { "x":15, "y":2 },
55
56 { "x":0, "y":3, "w":2.25 },
57 { "x":2.25, "y":3 },
58 { "x":3.25, "y":3 },
59 { "x":4.25, "y":3 },
60 { "x":5.25, "y":3 },
61 { "x":6.25, "y":3 },
62 { "x":7.25, "y":3 },
63 { "x":8.25, "y":3 },
64 { "x":9.25, "y":3 },
65 { "x":10.25, "y":3 },
66 { "x":11.25, "y":3 },
67 { "x":12.25, "y":3, "w":1.75 },
68 { "x":14, "y":3 },
69 { "x":15, "y":3 },
70
71 { "x":0, "y":4, "w":1.25 },
72 { "x":1.25, "y":4, "w":1.25 },
73 { "x":2.5, "y":4, "w":1.25 },
74 { "x":3.75, "y":4, "w":6.25 },
75 { "x":10, "y":4, "w":1.25 },
76 { "x":11.25, "y":4, "w":1.25 },
77 { "x":13, "y":4 },
78 { "x":14, "y":4 },
79 { "x":15, "y":4 }
80 ]
81 }
82 }
83}
diff --git a/keyboards/buildakb/potato65s/keymaps/default/keymap.c b/keyboards/buildakb/potato65s/keymaps/default/keymap.c
new file mode 100644
index 000000000..1382100ce
--- /dev/null
+++ b/keyboards/buildakb/potato65s/keymaps/default/keymap.c
@@ -0,0 +1,39 @@
1/* Copyright 2021 Maelkk
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#include QMK_KEYBOARD_H
18
19enum layer_names {
20 _BASE,
21 _FN
22};
23
24const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
25 [_BASE] = LAYOUT_all(
26 KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, KC_HOME,
27 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP,
28 MO(1), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN,
29 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END,
30 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
31 ),
32 [_FN1] = LAYOUT_all(
33 KC_TILD, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS, KC_TRNS,
34 KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS, RESET, KC_TRNS,
35 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
36 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLU, KC_MUTE,
37 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_VOLD, KC_MNXT
38 )
39}; \ No newline at end of file
diff --git a/keyboards/buildakb/potato65s/keymaps/default/readme.md b/keyboards/buildakb/potato65s/keymaps/default/readme.md
new file mode 100644
index 000000000..bb34368c9
--- /dev/null
+++ b/keyboards/buildakb/potato65s/keymaps/default/readme.md
@@ -0,0 +1,3 @@
1# Default Potato65 Hotswap Layout
2
3This is the default layout for the Potato65 Hotswap keyboard. Largely based on the KBD67 layout.
diff --git a/keyboards/buildakb/potato65s/keymaps/via/keymap.c b/keyboards/buildakb/potato65s/keymaps/via/keymap.c
new file mode 100644
index 000000000..ad49cf5a4
--- /dev/null
+++ b/keyboards/buildakb/potato65s/keymaps/via/keymap.c
@@ -0,0 +1,54 @@
1/* Copyright 2021 Maelkk
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
18enum layer_names {
19 _BASE,
20 _FN1,
21 _FN2,
22 _FN3
23};
24
25const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
26 [_BASE] = LAYOUT_all(
27 KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, KC_HOME,
28 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP,
29 MO(1), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN,
30 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END,
31 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
32 ),
33 [_FN1] = LAYOUT_all(
34 KC_TILD, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS, KC_TRNS,
35 KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS, RESET, KC_TRNS,
36 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
37 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLU, KC_MUTE,
38 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_VOLD, KC_MNXT
39 ),
40 [_FN2] = LAYOUT_all(
41 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
42 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
43 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
44 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
45 _______, _______, _______, _______, _______, _______, _______, _______, _______
46 ),
47 [_FN3] = LAYOUT_all(
48 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
49 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
50 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
51 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
52 _______, _______, _______, _______, _______, _______, _______, _______, _______
53 ),
54}; \ No newline at end of file
diff --git a/keyboards/buildakb/potato65s/keymaps/via/readme.md b/keyboards/buildakb/potato65s/keymaps/via/readme.md
new file mode 100644
index 000000000..4e3ddd122
--- /dev/null
+++ b/keyboards/buildakb/potato65s/keymaps/via/readme.md
@@ -0,0 +1,3 @@
1# Default Potato65 Layout
2
3This is the VIA layout for the Potato65 Hotswap Keyboard. Largely based on the KBD67 layout.
diff --git a/keyboards/buildakb/potato65s/keymaps/via/rules.mk b/keyboards/buildakb/potato65s/keymaps/via/rules.mk
new file mode 100644
index 000000000..1e5b99807
--- /dev/null
+++ b/keyboards/buildakb/potato65s/keymaps/via/rules.mk
@@ -0,0 +1 @@
VIA_ENABLE = yes
diff --git a/keyboards/amj96/keymaps/default/config.h b/keyboards/buildakb/potato65s/potato65s.c
index 0c01a8559..0d8656412 100644
--- a/keyboards/amj96/keymaps/default/config.h
+++ b/keyboards/buildakb/potato65s/potato65s.c
@@ -1,5 +1,5 @@
1/* Copyright 2017 MechMerlin 1/* Copyright 2021 Maelkk
2 2 *
3 * This program is free software: you can redistribute it and/or modify 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 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 5 * the Free Software Foundation, either version 2 of the License, or
@@ -14,7 +14,4 @@
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#pragma once 17#include "potato65s.h"
18
19
20// place overrides here
diff --git a/keyboards/buildakb/potato65s/potato65s.h b/keyboards/buildakb/potato65s/potato65s.h
new file mode 100644
index 000000000..739a01af2
--- /dev/null
+++ b/keyboards/buildakb/potato65s/potato65s.h
@@ -0,0 +1,33 @@
1/* Copyright 2021 Maelkk
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#pragma once
18
19#include "quantum.h"
20
21#define LAYOUT_all( \
22 K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K212, K014, \
23 K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, \
24 K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K213, K214, \
25 K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K312, K313, K314, \
26 K400, K401, K402, K403, K409, K410, K412, K413, K414 \
27) { \
28 { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014 }, \
29 { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114 }, \
30 { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214 }, \
31 { K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, KC_NO, K312, K313, K314 }, \
32 { K400, K401, K402, K403, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, K409, K410, KC_NO, K412, K413, K414 } \
33}
diff --git a/keyboards/buildakb/potato65s/readme.md b/keyboards/buildakb/potato65s/readme.md
new file mode 100644
index 000000000..f24b97ca6
--- /dev/null
+++ b/keyboards/buildakb/potato65s/readme.md
@@ -0,0 +1,24 @@
1# Potato65 Solderable Keyboard
2
3![Potato65 Solderable](https://i.imgur.com/ysAGZCmh.jpg)
4
5A solderable gasket mount stacked acrylic 65% keyboard
6
7- Keyboard Maintainer: [Maelkk](https://github.com/Aeonstrife)
8- Hardware Supported: Potato65 Keyboard
9- Hardware Availability: Private Group-Buy
10
11Make example for this keyboard (after setting up your build environment):
12
13 make buildakb/potato65s:default
14
15Flashing example for this keyboard:
16
17 make buildakb/potato65s:default:flash
18
19To reset into bootloader mode:
20
21While plugged in, press the RESET switch located on the back of the pcb.
22The keyboard should now be in bootloader mode.
23
24See 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). \ No newline at end of file
diff --git a/keyboards/buildakb/potato65s/rules.mk b/keyboards/buildakb/potato65s/rules.mk
new file mode 100644
index 000000000..bb941aca5
--- /dev/null
+++ b/keyboards/buildakb/potato65s/rules.mk
@@ -0,0 +1,21 @@
1# MCU name
2MCU = atmega32u4
3
4# Bootloader selection
5BOOTLOADER = atmel-dfu
6
7# Build Options
8# change yes to no to disable
9#
10BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
11MOUSEKEY_ENABLE = yes # Mouse keys
12EXTRAKEY_ENABLE = yes # Audio control and System control
13CONSOLE_ENABLE = no # Console for debug
14COMMAND_ENABLE = no # Commands for debug and configuration
15# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
16SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
17# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
18NKRO_ENABLE = yes # USB Nkey Rollover
19BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
20AUDIO_ENABLE = no # Audio output
21RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
diff --git a/keyboards/handwired/battleship_gamepad/battleship_gamepad.c b/keyboards/handwired/battleship_gamepad/battleship_gamepad.c
new file mode 100644
index 000000000..918a3852d
--- /dev/null
+++ b/keyboards/handwired/battleship_gamepad/battleship_gamepad.c
@@ -0,0 +1,30 @@
1/* Copyright 2021 Andrew Braini
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#include "battleship_gamepad.h"
18#include "joystick.h"
19#include "analog.h"
20
21/* joystick config */
22joystick_config_t joystick_axes[JOYSTICK_AXES_COUNT] = {
23 [0] = JOYSTICK_AXIS_IN(F5, 1023, 512, 0),
24 [1] = JOYSTICK_AXIS_IN(F4, 0, 512, 1023)
25};
26
27/* joystick button code (thumbstick pressed) */
28void keyboard_pre_init_kb(void) {
29 setPinInputHigh(F6);
30}
diff --git a/keyboards/handwired/battleship_gamepad/battleship_gamepad.h b/keyboards/handwired/battleship_gamepad/battleship_gamepad.h
new file mode 100644
index 000000000..67cf11220
--- /dev/null
+++ b/keyboards/handwired/battleship_gamepad/battleship_gamepad.h
@@ -0,0 +1,31 @@
1/* Copyright 2021 Andrew Braini
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#include "quantum.h"
18
19#define LAYOUT( \
20 K00, K01, K02, K03, K04, K05, K06, K07, \
21 K10, K11, K12, K13, K14, K15, K16, K17, \
22 K20, K21, K22, K23, K24, K25, K26, K27, \
23 K30, K31, K32, K33, K34, K35, K36, K37, \
24 K40, K41, K42, K43, K44, K45, K46, K47 \
25) { \
26 { K00, K01, K02, K03, K04, K05, K06, K07 }, \
27 { K10, K11, K12, K13, K14, K15, K16, K17 }, \
28 { K20, K21, K22, K23, K24, K25, K26, K27 }, \
29 { K30, K31, K32, K33, K34, K35, K36, K37 }, \
30 { K40, K41, K42, K43, K44, K45, K46, K47 } \
31}
diff --git a/keyboards/handwired/battleship_gamepad/config.h b/keyboards/handwired/battleship_gamepad/config.h
new file mode 100644
index 000000000..1cbfbf87e
--- /dev/null
+++ b/keyboards/handwired/battleship_gamepad/config.h
@@ -0,0 +1,52 @@
1/* Copyright 2021 Andrew Braini
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#pragma once
18
19#include "config_common.h"
20
21/* USB Device descriptor parameter */
22#define VENDOR_ID 0x4142
23#define PRODUCT_ID 0x0000
24#define DEVICE_VER 0x0001
25#define MANUFACTURER arbraini
26#define PRODUCT Battleship Gamepad
27
28/* key matrix size */
29#define MATRIX_ROWS 5
30#define MATRIX_COLS 8
31
32/* key matrix pins */
33#define MATRIX_ROW_PINS { B6, B2, B3, B1, F7 }
34#define MATRIX_COL_PINS { D1, D0, D4, C6, D7, E6, B4, B5 }
35#define UNUSED_PINS
36
37/* joystick configuration */
38#define JOYSTICK_BUTTON_COUNT 25
39#define JOYSTICK_AXES_COUNT 2
40#define JOYSTICK_AXES_RESOLUTION 10
41
42/* COL2ROW or ROW2COL */
43#define DIODE_DIRECTION COL2ROW
44
45/* Set 0 if debouncing isn't needed */
46#define DEBOUNCE 5
47
48/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
49#define LOCKING_SUPPORT_ENABLE
50
51/* Locking resynchronize hack */
52#define LOCKING_RESYNC_ENABLE
diff --git a/keyboards/handwired/battleship_gamepad/info.json b/keyboards/handwired/battleship_gamepad/info.json
new file mode 100644
index 000000000..581f290aa
--- /dev/null
+++ b/keyboards/handwired/battleship_gamepad/info.json
@@ -0,0 +1,215 @@
1{
2 "keyboard_name": "Battleship Gamepad",
3 "url": "https://github.com/abraini-Nascent/battleship_gamepad",
4 "maintainer": "arbraini",
5 "layouts": {
6 "LAYOUT": {
7 "layout": [
8 {
9 "label": "F1",
10 "x": 0,
11 "y": 0
12 },
13 {
14 "label": "F2",
15 "x": 1,
16 "y": 0
17 },
18 {
19 "label": "Esc",
20 "x": 2.25,
21 "y": 0,
22 "w": 1.25
23 },
24 {
25 "label": "!",
26 "x": 3.5,
27 "y": 0
28 },
29 {
30 "label": "@",
31 "x": 4.5,
32 "y": 0
33 },
34 {
35 "label": "#",
36 "x": 5.5,
37 "y": 0
38 },
39 {
40 "label": "$",
41 "x": 6.5,
42 "y": 0
43 },
44 {
45 "label": "%",
46 "x": 7.5,
47 "y": 0
48 },
49 {
50 "label": "F3",
51 "x": 0,
52 "y": 1
53 },
54 {
55 "label": "F4",
56 "x": 1,
57 "y": 1
58 },
59 {
60 "label": "Tab",
61 "x": 2.25,
62 "y": 1,
63 "w": 1.25
64 },
65 {
66 "label": "Q",
67 "x": 3.5,
68 "y": 1
69 },
70 {
71 "label": "W",
72 "x": 4.5,
73 "y": 1
74 },
75 {
76 "label": "E",
77 "x": 5.5,
78 "y": 1
79 },
80 {
81 "label": "R",
82 "x": 6.5,
83 "y": 1
84 },
85 {
86 "label": "T",
87 "x": 7.5,
88 "y": 1
89 },
90 {
91 "label": "F5",
92 "x": 0,
93 "y": 2
94 },
95 {
96 "label": "F6",
97 "x": 1,
98 "y": 2
99 },
100 {
101 "label": "Caps<br>Lock",
102 "x": 2.25,
103 "y": 2,
104 "w": 1.25
105 },
106 {
107 "label": "A",
108 "x": 3.5,
109 "y": 2
110 },
111 {
112 "label": "S",
113 "x": 4.5,
114 "y": 2
115 },
116 {
117 "label": "D",
118 "x": 5.5,
119 "y": 2
120 },
121 {
122 "label": "F",
123 "x": 6.5,
124 "y": 2
125 },
126 {
127 "label": "G",
128 "x": 7.5,
129 "y": 2
130 },
131 {
132 "label": "F7",
133 "x": 0,
134 "y": 3
135 },
136 {
137 "label": "F8",
138 "x": 1,
139 "y": 3
140 },
141 {
142 "label": "Shift",
143 "x": 2.25,
144 "y": 3,
145 "w": 1.25
146 },
147 {
148 "label": "Z",
149 "x": 3.5,
150 "y": 3
151 },
152 {
153 "label": "X",
154 "x": 4.5,
155 "y": 3
156 },
157 {
158 "label": "C",
159 "x": 5.5,
160 "y": 3
161 },
162 {
163 "label": "V",
164 "x": 6.5,
165 "y": 3
166 },
167 {
168 "label": "B",
169 "x": 7.5,
170 "y": 3
171 },
172 {
173 "label": "F9",
174 "x": 0,
175 "y": 4
176 },
177 {
178 "label": "F10",
179 "x": 1,
180 "y": 4
181 },
182 {
183 "label": "",
184 "x": 2.25,
185 "y": 4,
186 "w": 1.25
187 },
188 {
189 "label": "Ctrl",
190 "x": 3.5,
191 "y": 4
192 },
193 {
194 "label": "Alt",
195 "x": 4.5,
196 "y": 4
197 },
198 {
199 "label": "\u21e9",
200 "x": 5.5,
201 "y": 4
202 },
203 {
204 "label": "\u21e7",
205 "x": 6.5,
206 "y": 4
207 },
208 {
209 "x": 7.5,
210 "y": 4
211 }
212 ]
213 }
214 }
215}
diff --git a/keyboards/handwired/battleship_gamepad/keymaps/default/keymap.c b/keyboards/handwired/battleship_gamepad/keymaps/default/keymap.c
new file mode 100644
index 000000000..fa71419ff
--- /dev/null
+++ b/keyboards/handwired/battleship_gamepad/keymaps/default/keymap.c
@@ -0,0 +1,41 @@
1/* Copyright 2021 Andrew Braini
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#include QMK_KEYBOARD_H
18
19const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
20
21 [0] = LAYOUT(
22 KC_F1, KC_F2, KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5,
23 KC_F3, KC_F4, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T,
24 KC_F5, KC_F6, KC_NO, KC_A, KC_S, KC_D, KC_F, KC_G,
25 KC_F7, KC_F8, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B,
26 KC_F9, KC_F10, LT(1, KC_NO), KC_LCTL, KC_LALT, KC_NO, LT(1, KC_NO), KC_SPC),
27
28 [1] = LAYOUT(
29 RESET, DEBUG, KC_TILD, KC_6, KC_7, KC_8, KC_9, KC_0,
30 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
31 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
32 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
33 KC_F11, KC_F12, KC_TRNS, KC_TRNS, KC_TRNS, TG(2), KC_TRNS, KC_TRNS),
34
35 [2] = LAYOUT(
36 KC_TRNS, KC_TRNS, TG(2), JS_BUTTON0, JS_BUTTON1, JS_BUTTON2, JS_BUTTON3, JS_BUTTON4,
37 KC_TRNS, KC_TRNS, KC_TRNS, JS_BUTTON5, JS_BUTTON6, JS_BUTTON7, JS_BUTTON8, JS_BUTTON9,
38 KC_TRNS, KC_TRNS, KC_TRNS, JS_BUTTON10, JS_BUTTON11, JS_BUTTON12, JS_BUTTON13, JS_BUTTON14,
39 KC_TRNS, KC_TRNS, KC_TRNS, JS_BUTTON15, JS_BUTTON16, JS_BUTTON17, JS_BUTTON18, JS_BUTTON19,
40 KC_TRNS, KC_TRNS, KC_TRNS, JS_BUTTON20, JS_BUTTON21, JS_BUTTON22, JS_BUTTON23, JS_BUTTON24)
41};
diff --git a/keyboards/handwired/battleship_gamepad/keymaps/default/readme.md b/keyboards/handwired/battleship_gamepad/keymaps/default/readme.md
new file mode 100644
index 000000000..1de5d7dd6
--- /dev/null
+++ b/keyboards/handwired/battleship_gamepad/keymaps/default/readme.md
@@ -0,0 +1,2 @@
1# Battleship Gamepad - Default layout
2Default layout with 2 axies thumbstick and press to click
diff --git a/keyboards/handwired/battleship_gamepad/keymaps/via/keymap.c b/keyboards/handwired/battleship_gamepad/keymaps/via/keymap.c
new file mode 100644
index 000000000..9a70d36b7
--- /dev/null
+++ b/keyboards/handwired/battleship_gamepad/keymaps/via/keymap.c
@@ -0,0 +1,48 @@
1/* Copyright 2021 Andrew Braini
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#include QMK_KEYBOARD_H
18
19const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
20
21 [0] = LAYOUT(
22 KC_F1, KC_F2, KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5,
23 KC_F3, KC_F4, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T,
24 KC_F5, KC_F6, KC_NO, KC_A, KC_S, KC_D, KC_F, KC_G,
25 KC_F7, KC_F8, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B,
26 KC_F9, KC_F10, LT(1, KC_NO), KC_LCTL, KC_LALT, LT(2, KC_NO), LT(1, KC_NO), KC_SPC),
27
28 [1] = LAYOUT(
29 RESET, DEBUG, KC_TILD, KC_6, KC_7, KC_8, KC_9, KC_0,
30 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
31 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
32 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
33 KC_F11, KC_F12, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
34
35 [2] = LAYOUT(
36 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
37 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
38 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
39 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
40 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
41
42 [3] = LAYOUT(
43 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
44 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
45 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
46 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
47 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS)
48};
diff --git a/keyboards/handwired/battleship_gamepad/keymaps/via/rules.mk b/keyboards/handwired/battleship_gamepad/keymaps/via/rules.mk
new file mode 100644
index 000000000..35a31dea8
--- /dev/null
+++ b/keyboards/handwired/battleship_gamepad/keymaps/via/rules.mk
@@ -0,0 +1,2 @@
1VIA_ENABLE = yes
2CONSOLE_ENABLE = no
diff --git a/keyboards/handwired/battleship_gamepad/readme.md b/keyboards/handwired/battleship_gamepad/readme.md
new file mode 100644
index 000000000..c56675316
--- /dev/null
+++ b/keyboards/handwired/battleship_gamepad/readme.md
@@ -0,0 +1,29 @@
1# Battleship Gamepad
2
3![Battleship Gamepad](https://imgur.com/FCpQfzQ.jpg)
4
5A hand-wired 3d-printed mechanical keyboard intended for one hand with an analog thumbstick for movement. The layout matches the left side of large "battleship" keyboards with their extra bank of 2x5 1u F keys.
6
7Build instructions and 3d printer files can be found in the [project github repo](https://github.com/abraini-Nascent/battleship_gamepad)
8
9* Keyboard Maintainer: [arbraini](https://github.com/abraini-Nascent)
10* Hardware Supported: Arduino Pro Micro
11* Features: 40 keys in an ortho layout and an analog thumbstick.
12
13Make example for this keyboard (after setting up your build environment):
14
15 make handwired/battleship_gamepad:default
16
17Flashing example for this keyboard:
18
19 make handwired/battleship_gamepad:flash
20
21## Bootloader
22
23Enter the bootloader in 3 ways:
24
25* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (the top left key in the 2x5 bank) and plug in the keyboard.
26* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead.
27* **Keycode in layout**: Press the key mapped to `RESET`. In the default layout this is the key at (0,0) on layer 1.
28
29See 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).
diff --git a/keyboards/handwired/battleship_gamepad/rules.mk b/keyboards/handwired/battleship_gamepad/rules.mk
new file mode 100644
index 000000000..b7a26d8fc
--- /dev/null
+++ b/keyboards/handwired/battleship_gamepad/rules.mk
@@ -0,0 +1,25 @@
1# MCU name
2MCU = atmega32u4
3
4# Bootloader selection
5BOOTLOADER = caterina
6
7SRC += analog.c
8
9# Build Options
10# change yes to no to disable
11#
12BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite
13MOUSEKEY_ENABLE = yes # Mouse keys
14EXTRAKEY_ENABLE = yes # Audio control and System control
15CONSOLE_ENABLE = no # Console for debug
16COMMAND_ENABLE = no # Commands for debug and configuration
17# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
18SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
19# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
20NKRO_ENABLE = yes # USB Nkey Rollover
21BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
22RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
23AUDIO_ENABLE = no # Audio output
24JOYSTICK_ENABLE = yes
25JOYSTICK_DRIVER = analog
diff --git a/keyboards/jadookb/jkb65/config.h b/keyboards/jadookb/jkb65/config.h
index 8af9b04fc..a7710a0e0 100644
--- a/keyboards/jadookb/jkb65/config.h
+++ b/keyboards/jadookb/jkb65/config.h
@@ -41,7 +41,7 @@
41#define RGB_DISABLE_WHEN_USB_SUSPENDED 41#define RGB_DISABLE_WHEN_USB_SUSPENDED
42#define RGB_MATRIX_FRAMEBUFFER_EFFECTS 42#define RGB_MATRIX_FRAMEBUFFER_EFFECTS
43#define RGB_MATRIX_KEYPRESSES 43#define RGB_MATRIX_KEYPRESSES
44#define RGB_DISABLE_TIMEOUT 60000 44#define RGB_DISABLE_TIMEOUT 90000
45 45
46 46
47#define DEBOUNCE 5 47#define DEBOUNCE 5
diff --git a/keyboards/jadookb/jkb65/keymaps/default/keymap.c b/keyboards/jadookb/jkb65/keymaps/default/keymap.c
index 9a01fb616..b7b81a150 100644
--- a/keyboards/jadookb/jkb65/keymaps/default/keymap.c
+++ b/keyboards/jadookb/jkb65/keymaps/default/keymap.c
@@ -29,8 +29,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
29 ), 29 ),
30 [1] = LAYOUT_67_ansi( 30 [1] = LAYOUT_67_ansi(
31 KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, KC_PSCR, 31 KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, KC_PSCR,
32 _______, RGB_RMOD, _______, RGB_MOD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 32 _______, RGB_RMOD, RGB_HUI, RGB_MOD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
33 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 33 _______, _______, RGB_HUD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
34 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, _______, 34 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, _______,
35 MAGIC_UNNO_GUI,MAGIC_NO_GUI, _______, RGB_TOG, _______, MO(2), RGB_SPD, RGB_VAD, RGB_SPI 35 MAGIC_UNNO_GUI,MAGIC_NO_GUI, _______, RGB_TOG, _______, MO(2), RGB_SPD, RGB_VAD, RGB_SPI
36 ), 36 ),
diff --git a/keyboards/jadookb/jkb65/keymaps/via/keymap.c b/keyboards/jadookb/jkb65/keymaps/via/keymap.c
index 9a01fb616..b7b81a150 100644
--- a/keyboards/jadookb/jkb65/keymaps/via/keymap.c
+++ b/keyboards/jadookb/jkb65/keymaps/via/keymap.c
@@ -29,8 +29,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
29 ), 29 ),
30 [1] = LAYOUT_67_ansi( 30 [1] = LAYOUT_67_ansi(
31 KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, KC_PSCR, 31 KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, KC_PSCR,
32 _______, RGB_RMOD, _______, RGB_MOD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 32 _______, RGB_RMOD, RGB_HUI, RGB_MOD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
33 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 33 _______, _______, RGB_HUD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
34 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, _______, 34 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, _______,
35 MAGIC_UNNO_GUI,MAGIC_NO_GUI, _______, RGB_TOG, _______, MO(2), RGB_SPD, RGB_VAD, RGB_SPI 35 MAGIC_UNNO_GUI,MAGIC_NO_GUI, _______, RGB_TOG, _______, MO(2), RGB_SPD, RGB_VAD, RGB_SPI
36 ), 36 ),
diff --git a/keyboards/phrygian/ph100/chconf.h b/keyboards/phrygian/ph100/chconf.h
new file mode 100644
index 000000000..1c9cc3236
--- /dev/null
+++ b/keyboards/phrygian/ph100/chconf.h
@@ -0,0 +1,61 @@
1/* Copyright 2020 QMK
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/*
18 * This file was auto-generated by:
19 * `qmk chibios-confmigrate -i keyboards/phrygian/ph100/chconf.h -r platforms/chibios/common/configs/chconf.h`
20 */
21
22#pragma once
23
24#define CH_CFG_ST_FREQUENCY 10000
25
26#define CH_CFG_USE_REGISTRY TRUE
27
28#define CH_CFG_USE_WAITEXIT TRUE
29
30#define CH_CFG_USE_CONDVARS TRUE
31
32#define CH_CFG_USE_MESSAGES TRUE
33
34#define CH_CFG_USE_MAILBOXES TRUE
35
36#define CH_CFG_USE_HEAP TRUE
37
38#define CH_CFG_USE_MEMPOOLS TRUE
39
40#define CH_CFG_USE_OBJ_FIFOS TRUE
41
42#define CH_CFG_USE_PIPES TRUE
43
44#define CH_CFG_USE_DYNAMIC TRUE
45
46#define CH_CFG_USE_FACTORY TRUE
47
48#define CH_CFG_FACTORY_OBJECTS_REGISTRY TRUE
49
50#define CH_CFG_FACTORY_GENERIC_BUFFERS TRUE
51
52#define CH_CFG_FACTORY_SEMAPHORES TRUE
53
54#define CH_CFG_FACTORY_MAILBOXES TRUE
55
56#define CH_CFG_FACTORY_OBJ_FIFOS TRUE
57
58#define CH_CFG_FACTORY_PIPES TRUE
59
60#include_next <chconf.h>
61
diff --git a/keyboards/phrygian/ph100/config.h b/keyboards/phrygian/ph100/config.h
new file mode 100644
index 000000000..68bd43073
--- /dev/null
+++ b/keyboards/phrygian/ph100/config.h
@@ -0,0 +1,43 @@
1/* Copyright 2021 Phrygian Design
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#pragma once
18
19#include "config_common.h"
20
21/* USB Device descriptor parameter */
22#define VENDOR_ID 0xFEED
23#define PRODUCT_ID 0x0C61
24#define DEVICE_VER 0x0100
25#define MANUFACTURER PhrygianDesign
26#define PRODUCT ph100
27
28/* key matrix size */
29#define MATRIX_ROWS 10
30#define MATRIX_COLS 10
31
32#define MATRIX_ROW_PINS { B0, B1, B2, B3, B4, B5, B6, B7, B8, B9 }
33#define MATRIX_COL_PINS { A0, A1, A2, A3, A4, A5, A6, A7, A8, A9 }
34
35/* COL2ROW, ROW2COL */
36#define DIODE_DIRECTION COL2ROW
37
38/* Define capslock and numlock */
39#define LED_NUM_LOCK_PIN B14
40#define LED_CAPS_LOCK_PIN B15
41
42/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
43#define DEBOUNCE 10
diff --git a/keyboards/phrygian/ph100/halconf.h b/keyboards/phrygian/ph100/halconf.h
new file mode 100644
index 000000000..f6be8c0ff
--- /dev/null
+++ b/keyboards/phrygian/ph100/halconf.h
@@ -0,0 +1,37 @@
1/* Copyright 2020 QMK
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/*
18 * This file was auto-generated by:
19 * `qmk chibios-confmigrate -i keyboards/phrygian/ph100/halconf.h -r platforms/chibios/common/configs/halconf.h`
20 */
21
22#pragma once
23
24#define HAL_USE_SERIAL_USB TRUE
25
26#define ADC_USE_WAIT FALSE
27
28#define ADC_USE_MUTUAL_EXCLUSION FALSE
29
30#define SERIAL_USB_BUFFERS_SIZE 256
31
32#define SPI_USE_WAIT FALSE
33
34#define SPI_USE_MUTUAL_EXCLUSION FALSE
35
36#include_next <halconf.h>
37
diff --git a/keyboards/phrygian/ph100/info.json b/keyboards/phrygian/ph100/info.json
new file mode 100644
index 000000000..054e3955e
--- /dev/null
+++ b/keyboards/phrygian/ph100/info.json
@@ -0,0 +1,111 @@
1{
2 "keyboard_name": "ph100",
3 "url": "https://phrygiandesign.com/products/ph100-mechanical-keyboard",
4 "maintainer": "phrygiandesign",
5 "layouts": {
6 "LAYOUT": {
7 "layout": [
8 {"label":"ESCAPE", "x":0, "y":0},
9 {"label":"F1", "x":2, "y":0},
10 {"label":"F2", "x":3, "y":0},
11 {"label":"F3", "x":4, "y":0},
12 {"label":"F4", "x":5, "y":0},
13 {"label":"F5", "x":6.5, "y":0},
14 {"label":"F6", "x":7.5, "y":0},
15 {"label":"F7", "x":8.5, "y":0},
16 {"label":"F8", "x":9.5, "y":0},
17 {"label":"F9", "x":11, "y":0},
18 {"label":"F10", "x":12, "y":0},
19 {"label":"F11", "x":13, "y":0},
20 {"label":"F12", "x":14, "y":0},
21 {"label":"HOME", "x":15.25, "y":0},
22 {"label":"PRINT SCREEN", "x":16.25, "y":0},
23 {"label":"BACKTICK", "x":0, "y":1},
24 {"label":"1", "x":1, "y":1},
25 {"label":"2", "x":2, "y":1},
26 {"label":"3", "x":3, "y":1},
27 {"label":"4", "x":4, "y":1},
28 {"label":"5", "x":5, "y":1},
29 {"label":"6", "x":6, "y":1},
30 {"label":"7", "x":7, "y":1},
31 {"label":"8", "x":8, "y":1},
32 {"label":"9", "x":9, "y":1},
33 {"label":"0", "x":10, "y":1},
34 {"label":"MINUS", "x":11, "y":1},
35 {"label":"EQUALS", "x":12, "y":1},
36 {"label":"BACKSPACE", "x":13, "y":1, "w":2},
37 {"label":"END", "x":15.25, "y":1},
38 {"label":"PAGE UP", "x":16.25, "y":1},
39 {"label":"NUM LOCK", "x":17.5, "y":1},
40 {"label":"/", "x":18.5, "y":1},
41 {"label":"*", "x":19.5, "y":1},
42 {"label":"-", "x":20.5, "y":1},
43 {"label":"TAB", "x":0, "y":2, "w":1.5},
44 {"label":"Q", "x":1.5, "y":2},
45 {"label":"W", "x":2.5, "y":2},
46 {"label":"E", "x":3.5, "y":2},
47 {"label":"R", "x":4.5, "y":2},
48 {"label":"T", "x":5.5, "y":2},
49 {"label":"Y", "x":6.5, "y":2},
50 {"label":"U", "x":7.5, "y":2},
51 {"label":"I", "x":8.5, "y":2},
52 {"label":"O", "x":9.5, "y":2},
53 {"label":"P", "x":10.5, "y":2},
54 {"label":"LEFT BRACKET", "x":11.5, "y":2},
55 {"label":"RIGHT BRACKET", "x":12.5, "y":2},
56 {"label":"BACK SLASH", "x":13.5, "y":2, "w":1.5},
57 {"label":"DELETE", "x":15.25, "y":2},
58 {"label":"PAGE DOWN", "x":16.25, "y":2},
59 {"label":"7", "x":17.5, "y":2},
60 {"label":"8", "x":18.5, "y":2},
61 {"label":"9", "x":19.5, "y":2},
62 {"label":"+", "x":20.5, "y":2, "h":2},
63 {"label":"CAPS LOCK", "x":0, "y":3, "w":1.75},
64 {"label":"A", "x":1.75, "y":3},
65 {"label":"S", "x":2.75, "y":3},
66 {"label":"D", "x":3.75, "y":3},
67 {"label":"F", "x":4.75, "y":3},
68 {"label":"G", "x":5.75, "y":3},
69 {"label":"H", "x":6.75, "y":3},
70 {"label":"J", "x":7.75, "y":3},
71 {"label":"K", "x":8.75, "y":3},
72 {"label":"L", "x":9.75, "y":3},
73 {"label":"SEMICOLON", "x":10.75, "y":3},
74 {"label":"SINGLE TICK", "x":11.75, "y":3},
75 {"label":"ENTER", "x":12.75, "y":3, "w":2.25},
76 {"label":"4", "x":17.5, "y":3},
77 {"label":"5", "x":18.5, "y":3},
78 {"label":"6", "x":19.5, "y":3},
79 {"label":"LEFT SHIFT", "x":0, "y":4, "w":2.25},
80 {"label":"Z", "x":2.25, "y":4},
81 {"label":"X", "x":3.25, "y":4},
82 {"label":"C", "x":4.25, "y":4},
83 {"label":"V", "x":5.25, "y":4},
84 {"label":"B", "x":6.25, "y":4},
85 {"label":"N", "x":7.25, "y":4},
86 {"label":"M", "x":8.25, "y":4},
87 {"label":"COMMA", "x":9.25, "y":4},
88 {"label":"PERIOD", "x":10.25, "y":4},
89 {"label":"FORWARD SLASH", "x":11.25, "y":4},
90 {"label":"RIGHT SHIFT", "x":12.25, "y":4, "w":2.25},
91 {"label":"UP ARROW", "x":15.25, "y":4},
92 {"label":"1", "x":17.5, "y":4},
93 {"label":"2", "x":18.5, "y":4},
94 {"label":"3", "x":19.5, "y":4},
95 {"label":"ENTER", "x":20.5, "y":4, "h":2},
96 {"label":"LEFT CTRL", "x":0, "y":5, "w":1.25},
97 {"label":"LEFT WIN", "x":1.25, "y":5, "w":1.25},
98 {"label":"LEFT ALT", "x":2.5, "y":5, "w":1.25},
99 {"label":"SPACEBAR", "x":3.75, "y":5, "w":6.25},
100 {"label":"RIGHT ALT", "x":10, "y":5, "w":1.25},
101 {"label":"RIGHT CTRL", "x":11.25, "y":5, "w":1.25},
102 {"label":"FN", "x":12.5, "y":5},
103 {"label":"LEFT ARROW", "x":14.25, "y":5},
104 {"label":"DOWN ARROW", "x":15.25, "y":5},
105 {"label":"RIGHT ARROW", "x":16.25, "y":5},
106 {"label":"0", "x":17.5, "y":5, "w":2},
107 {"label":".", "x":19.5, "y":5}
108 ]
109 }
110 }
111}
diff --git a/keyboards/phrygian/ph100/keymaps/default/keymap.c b/keyboards/phrygian/ph100/keymaps/default/keymap.c
new file mode 100644
index 000000000..0350aec53
--- /dev/null
+++ b/keyboards/phrygian/ph100/keymaps/default/keymap.c
@@ -0,0 +1,27 @@
1/* Copyright 2021 Phrygian Design
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#include QMK_KEYBOARD_H
18
19const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
20[0] = LAYOUT(
21 KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_PGUP,
22 KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, KC_PGDN, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS,
23 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_HOME, KC_END, KC_P7, KC_P8, KC_P9,
24 KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_P4, KC_P5, KC_P6, KC_PPLS,
25 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3,
26 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_APP, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT, KC_PENT)
27}; \ No newline at end of file
diff --git a/keyboards/phrygian/ph100/ph100.c b/keyboards/phrygian/ph100/ph100.c
new file mode 100644
index 000000000..45c242696
--- /dev/null
+++ b/keyboards/phrygian/ph100/ph100.c
@@ -0,0 +1,19 @@
1/* Copyright 2021 Phrygian Design
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#include "ph100.h"
18
19//Put software here \ No newline at end of file
diff --git a/keyboards/phrygian/ph100/ph100.h b/keyboards/phrygian/ph100/ph100.h
new file mode 100644
index 000000000..bd18bfd19
--- /dev/null
+++ b/keyboards/phrygian/ph100/ph100.h
@@ -0,0 +1,44 @@
1/* Copyright 2021 Phrygian Design
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#pragma once
18
19#define XXX KC_NO
20
21#include "quantum.h"
22
23// This a shortcut to help you visually see your layout.
24
25#define LAYOUT(\
26 K01, K02, K03, K04, K05, K06, K07, K08, K09, K10, K61, K62, K63, K64, K65, \
27 K11, K12, K13, K14, K15, K16, K17, K18, K19, K20, K71, K72, K73, K74, K75, K76, K66, K67, K68, K69, \
28 K21, K22, K23, K24, K25, K26, K27, K28, K29, K30, K81, K82, K83, K84, K85, K86, K77, K78, K79, \
29 K31, K32, K33, K34, K35, K36, K37, K38, K39, K40, K91, K93, K95, K87, K88, K80, K70, \
30 K41, K42, K43, K44, K45, K46, K47, K48, K49, K50, K92, K94, K96, K97, K89, K90, \
31 K51, K52, K53, K54, K55, K56, K57, K58, K59, K60, K98, K99, K100\
32){ \
33 { K01, K02, K03, K04, K05, K06, K07, K08, K09, K10 }, \
34 { K11, K12, K13, K14, K15, K16, K17, K18, K19, K20 }, \
35 { K21, K22, K23, K24, K25, K26, K27, K28, K29, K30 }, \
36 { K31, K32, K33, K34, K35, K36, K37, K38, K39, K40 }, \
37 { K41, K42, K43, K44, K45, K46, K47, K48, K49, K50 }, \
38 { K51, K52, K53, K54, K55, K56, K57, K58, K59, K60 }, \
39 { K61, K62, K63, K64, K65, K66, K67, K68, K69, K70 }, \
40 { K71, K72, K73, K74, K75, K76, K77, K78, K79, K80 }, \
41 { K81, K82, K83, K84, K85, K86, K87, K88, K89, K90 }, \
42 { K91, K92, K93, K94, K95, K96, K97, K98, K99, K100 }, \
43}
44
diff --git a/keyboards/phrygian/ph100/readme.md b/keyboards/phrygian/ph100/readme.md
new file mode 100644
index 000000000..f6419880e
--- /dev/null
+++ b/keyboards/phrygian/ph100/readme.md
@@ -0,0 +1,20 @@
1## Phrygian Design ph100
2
3![ph100](https://cdn.shopify.com/s/files/1/0470/8814/0443/products/DSCF0064_1080x.png)
4
5The ph100 is a 100-key modular keyboard from Phrygian Design.
6
7* Keyboard Maintainer: https://github.com/phrygiandesign
8* Hardware Supported: ph100 PCB
9* Hardware Availability: https://phrygiandesign.com/products/ph100-mechanical-keyboard
10* Keyboard support: contact@phrygiandesign.com
11
12Make example for this keyboard:
13
14 make phrygian/ph100:default
15
16See 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).
17
18#### Note: Booting into the STM32 USB Bootloader
19The STM32F042 range of microcontrollers have problems with entering into the USB bootloader with QMK's bootloader key sequence.
20To boot into the bootloader, apply power to the keyboard while holding down "SW0" on the bottom of PCB near the USB port.
diff --git a/keyboards/phrygian/ph100/rules.mk b/keyboards/phrygian/ph100/rules.mk
new file mode 100644
index 000000000..ca4c47452
--- /dev/null
+++ b/keyboards/phrygian/ph100/rules.mk
@@ -0,0 +1,25 @@
1# MCU name
2MCU = STM32F042
3
4# Bootloader selection
5BOOTLOADER = stm32-dfu
6
7# Build Options
8# change yes to no to disable
9#
10BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
11MOUSEKEY_ENABLE = yes # Mouse keys
12EXTRAKEY_ENABLE = yes # Audio control and System control
13CONSOLE_ENABLE = no # Console for debug
14COMMAND_ENABLE = no # Commands for debug and configuration
15# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
16SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
17# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
18NKRO_ENABLE = yes # USB Nkey Rollover
19BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
20RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
21AUDIO_ENABLE = no # Audio output
22
23
24# Enter lower-power sleep mode when on the ChibiOS idle thread
25OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE
diff --git a/keyboards/planck/keymaps/default/config.h b/keyboards/planck/keymaps/default/config.h
index 9020d2b9f..464b7b29f 100644
--- a/keyboards/planck/keymaps/default/config.h
+++ b/keyboards/planck/keymaps/default/config.h
@@ -1,13 +1,27 @@
1/* Copyright 2015-2021 Jack Humbert
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
1#pragma once 17#pragma once
2 18
3#ifdef AUDIO_ENABLE 19#ifdef AUDIO_ENABLE
4 #define STARTUP_SONG SONG(PLANCK_SOUND) 20# define STARTUP_SONG SONG(PLANCK_SOUND)
5 // #define STARTUP_SONG SONG(NO_SOUND) 21// #define STARTUP_SONG SONG(NO_SOUND)
6 22
7 #define DEFAULT_LAYER_SONGS { SONG(QWERTY_SOUND), \ 23# define DEFAULT_LAYER_SONGS \
8 SONG(COLEMAK_SOUND), \ 24 { SONG(QWERTY_SOUND), SONG(COLEMAK_SOUND), SONG(DVORAK_SOUND) }
9 SONG(DVORAK_SOUND) \
10 }
11#endif 25#endif
12 26
13/* 27/*
@@ -33,4 +47,3 @@
33 47
34// Most tactile encoders have detents every 4 stages 48// Most tactile encoders have detents every 4 stages
35#define ENCODER_RESOLUTION 4 49#define ENCODER_RESOLUTION 4
36
diff --git a/keyboards/planck/keymaps/default/keymap.c b/keyboards/planck/keymaps/default/keymap.c
index 9a6e1189b..7c787e036 100644
--- a/keyboards/planck/keymaps/default/keymap.c
+++ b/keyboards/planck/keymaps/default/keymap.c
@@ -1,4 +1,4 @@
1/* Copyright 2015-2017 Jack Humbert 1/* Copyright 2015-2021 Jack Humbert
2 * 2 *
3 * This program is free software: you can redistribute it and/or modify 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 4 * it under the terms of the GNU General Public License as published by
diff --git a/keyboards/plx/info.json b/keyboards/plx/info.json
index 470d2e808..fe4d47b38 100644
--- a/keyboards/plx/info.json
+++ b/keyboards/plx/info.json
@@ -4,71 +4,72 @@
4 "url": "https://peac.design/", 4 "url": "https://peac.design/",
5 "layouts": { 5 "layouts": {
6 "LAYOUT": { 6 "LAYOUT": {
7 "layout": [ 7 "layout":
8 { "label": "Esc", "x": 0, "y": 0 }, 8 [
9 { "label": "!", "x": 1, "y": 0 }, 9 {"label":"Esc", "x":0, "y":0},
10 { "label": "@", "x": 2, "y": 0 }, 10 {"label":"!", "x":1, "y":0},
11 { "label": "#", "x": 3, "y": 0 }, 11 {"label":"@", "x":2, "y":0},
12 { "label": "$", "x": 4, "y": 0 }, 12 {"label":"#", "x":3, "y":0},
13 { "label": "%", "x": 5, "y": 0 }, 13 {"label":"$", "x":4, "y":0},
14 { "label": "^", "x": 6, "y": 0 }, 14 {"label":"%", "x":5, "y":0},
15 { "label": "&", "x": 7, "y": 0 }, 15 {"label":"^", "x":6, "y":0},
16 { "label": "*", "x": 8, "y": 0 }, 16 {"label":"&", "x":7, "y":0},
17 { "label": "(", "x": 9, "y": 0 }, 17 {"label":"*", "x":8, "y":0},
18 { "label": ")", "x": 10, "y": 0 }, 18 {"label":"(", "x":9, "y":0},
19 { "label": "_", "x": 11, "y": 0 }, 19 {"label":")", "x":10, "y":0},
20 { "label": "+", "x": 12, "y": 0 }, 20 {"label":"_", "x":11, "y":0},
21 { "label": "Backspace", "w": 2, "x": 13, "y": 0 }, 21 {"label":"+", "x":12, "y":0},
22 { "label": "Del", "x": 16, "y": 0 }, 22 {"label":"Backspace", "x":13, "y":0, "w":2},
23 { "label": "Tab", "w": 1.5, "x": 0, "y": 1 }, 23
24 { "label": "Q", "x": 1.5, "y": 1 }, 24 {"label":"Tab", "x":0, "y":1, "w":1.5},
25 { "label": "W", "x": 2.5, "y": 1 }, 25 {"label":"Q", "x":1.5, "y":1},
26 { "label": "E", "x": 3.5, "y": 1 }, 26 {"label":"W", "x":2.5, "y":1},
27 { "label": "R", "x": 4.5, "y": 1 }, 27 {"label":"E", "x":3.5, "y":1},
28 { "label": "T", "x": 5.5, "y": 1 }, 28 {"label":"R", "x":4.5, "y":1},
29 { "label": "Y", "x": 6.5, "y": 1 }, 29 {"label":"T", "x":5.5, "y":1},
30 { "label": "U", "x": 7.5, "y": 1 }, 30 {"label":"Y", "x":6.5, "y":1},
31 { "label": "I", "x": 8.5, "y": 1 }, 31 {"label":"U", "x":7.5, "y":1},
32 { "label": "O", "x": 9.5, "y": 1 }, 32 {"label":"I", "x":8.5, "y":1},
33 { "label": "P", "x": 10.5, "y": 1 }, 33 {"label":"O", "x":9.5, "y":1},
34 { "label": "{", "x": 11.5, "y": 1 }, 34 {"label":"P", "x":10.5, "y":1},
35 { "label": "}", "x": 12.5, "y": 1 }, 35 {"label":"{", "x":11.5, "y":1},
36 { "label": "|", "w": 1.5, "x": 13.5, "y": 1 }, 36 {"label":"}", "x":12.5, "y":1},
37 { "label": "Caps Lock", "w": 1.25, "x": 0, "y": 2 }, 37 {"label":"|", "x":13.5, "y":1, "w":1.5},
38 { "label": "A", "x": 1.75, "y": 2 }, 38
39 { "label": "S", "x": 2.75, "y": 2 }, 39 {"label":"Caps Lock", "x":0, "y":2, "w":1.25},
40 { "label": "D", "x": 3.75, "y": 2 }, 40 {"label":"A", "x":1.75, "y":2},
41 { "label": "F", "x": 4.75, "y": 2 }, 41 {"label":"S", "x":2.75, "y":2},
42 { "label": "G", "x": 5.75, "y": 2 }, 42 {"label":"D", "x":3.75, "y":2},
43 { "label": "H", "x": 6.75, "y": 2 }, 43 {"label":"F", "x":4.75, "y":2},
44 { "label": "J", "x": 7.75, "y": 2 }, 44 {"label":"G", "x":5.75, "y":2},
45 { "label": "K", "x": 8.75, "y": 2 }, 45 {"label":"H", "x":6.75, "y":2},
46 { "label": "L", "x": 9.75, "y": 2 }, 46 {"label":"J", "x":7.75, "y":2},
47 { "label": ":", "x": 10.75, "y": 2 }, 47 {"label":"K", "x":8.75, "y":2},
48 { "label": "\"", "x": 11.75, "y": 2 }, 48 {"label":"L", "x":9.75, "y":2},
49 { "label": "NUBS", "x": 12.75, "y": 2 }, 49 {"label":":", "x":10.75, "y":2},
50 { "h": 2, "label": "Enter", "w": 1.25, "x": 13.75, "y": 1 }, 50 {"label":"\"", "x":11.75, "y":2},
51 { "label": "Shift", "w": 1.25, "x": 0, "y": 3 }, 51 {"label":"Enter", "x":12.75, "y":2, "w":2.25},
52 { "label": "NUHS", "x": 1.25, "y": 3 }, 52
53 { "label": "Z", "x": 2.25, "y": 3 }, 53 {"label":"Shift", "x":0, "y":3, "w":2.25},
54 { "label": "X", "x": 3.25, "y": 3 }, 54 {"label":"Z", "x":2.25, "y":3},
55 { "label": "C", "x": 4.25, "y": 3 }, 55 {"label":"X", "x":3.25, "y":3},
56 { "label": "V", "x": 5.25, "y": 3 }, 56 {"label":"C", "x":4.25, "y":3},
57 { "label": "B", "x": 6.25, "y": 3 }, 57 {"label":"V", "x":5.25, "y":3},
58 { "label": "N", "x": 7.25, "y": 3 }, 58 {"label":"B", "x":6.25, "y":3},
59 { "label": "M", "x": 8.25, "y": 3 }, 59 {"label":"N", "x":7.25, "y":3},
60 { "label": "<", "x": 9.25, "y": 3 }, 60 {"label":"M", "x":8.25, "y":3},
61 { "label": ">", "x": 10.25, "y": 3 }, 61 {"label":"<", "x":9.25, "y":3},
62 { "label": "?", "x": 11.25, "y": 3 }, 62 {"label":">", "x":10.25, "y":3},
63 { "label": "Shift", "w": 1.75, "x": 12.25, "y": 3 }, 63 {"label":"?", "x":11.25, "y":3},
64 { "label": "Fn", "x": 14, "y": 3 }, 64 {"label":"Shift", "x":12.25, "y":3, "w":2.25},
65 { "label": "Ctrl", "w": 1.5, "x": 0, "y": 4 }, 65
66 { "label": "Win", "x": 1.5, "y": 4 }, 66 {"label":"Ctrl", "x":0, "y":4, "w":1.5},
67 { "label": "Alt", "w": 1.5, "x": 2.5, "y": 4 }, 67 {"label":"Win", "x":1.5, "y":4},
68 { "w": 7, "x": 4, "y": 4 }, 68 {"label":"Alt", "x":2.5, "y":4, "w":1.5},
69 { "label": "Alt", "w": 1.5, "x": 11, "y": 4 }, 69 {"x":4, "y":4, "w":7},
70 { "label": "Win", "x": 12.5, "y": 4 }, 70 {"label":"Alt", "x":11, "y":4, "w":1.5},
71 { "label": "Ctrl", "w": 1.5, "x": 13.5, "y": 4 } 71 {"label":"Win", "x":12.5, "y":4},
72 {"label":"Ctrl", "x":13.5, "y":4, "w":1.5}
72 ] 73 ]
73 } 74 }
74 } 75 }
diff --git a/keyboards/plx/keymaps/default/keymap.c b/keyboards/plx/keymaps/default/keymap.c
index 40350c475..9702b27bd 100644
--- a/keyboards/plx/keymaps/default/keymap.c
+++ b/keyboards/plx/keymaps/default/keymap.c
@@ -24,26 +24,26 @@ enum layer_names {
24 24
25const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 25const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
26 [_BASE] = LAYOUT( 26 [_BASE] = LAYOUT(
27 KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_HOME, 27 KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC,
28 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, 28 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS,
29 KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_BSLS, KC_ENT, 29 KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
30 KC_LSFT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(_FN), 30 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
31 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL 31 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL
32 ), 32 ),
33 33
34 [_FN] = LAYOUT( 34 [_FN] = LAYOUT(
35 KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, 35 KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______,
36 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
37 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
38 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 36 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
37 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
38 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
39 _______, _______, _______, _______, _______, _______, _______ 39 _______, _______, _______, _______, _______, _______, _______
40 ), 40 ),
41 41
42 [_MEDIA] = LAYOUT( 42 [_MEDIA] = LAYOUT(
43 KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, 43 KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______,
44 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
45 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
46 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 44 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
45 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
46 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
47 _______, _______, _______, _______, _______, _______, _______ 47 _______, _______, _______, _______, _______, _______, _______
48 ) 48 )
49}; 49};
diff --git a/keyboards/plx/keymaps/default_all/keymap.c b/keyboards/plx/keymaps/default_all/keymap.c
new file mode 100644
index 000000000..40350c475
--- /dev/null
+++ b/keyboards/plx/keymaps/default_all/keymap.c
@@ -0,0 +1,49 @@
1/* Copyright 2020 Peac Design and Basekeys.com
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#include QMK_KEYBOARD_H
18
19// Defines names for use in layer keycodes and the keymap
20enum layer_names {
21 _BASE,
22 _FN,
23 _MEDIA };
24
25const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
26 [_BASE] = LAYOUT(
27 KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_HOME,
28 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS,
29 KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_BSLS, KC_ENT,
30 KC_LSFT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(_FN),
31 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL
32 ),
33
34 [_FN] = LAYOUT(
35 KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______,
36 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
37 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
38 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
39 _______, _______, _______, _______, _______, _______, _______
40 ),
41
42 [_MEDIA] = LAYOUT(
43 KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______,
44 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
45 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
46 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
47 _______, _______, _______, _______, _______, _______, _______
48 )
49};
diff --git a/keyboards/plx/keymaps/via/keymap.c b/keyboards/plx/keymaps/via/keymap.c
index 80dea066a..e988833c2 100644
--- a/keyboards/plx/keymaps/via/keymap.c
+++ b/keyboards/plx/keymaps/via/keymap.c
@@ -24,7 +24,7 @@ enum layer_names {
24}; 24};
25 25
26const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 26const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
27 [_BASE] = LAYOUT( 27 [_BASE] = LAYOUT_all(
28 KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_HOME, 28 KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_HOME,
29 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, 29 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS,
30 KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_BSLS, KC_ENT, 30 KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_BSLS, KC_ENT,
@@ -32,7 +32,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
32 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL 32 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL
33 ), 33 ),
34 34
35 [_FN] = LAYOUT( 35 [_FN] = LAYOUT_all(
36 KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, 36 KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______,
37 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 37 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
38 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 38 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
@@ -40,7 +40,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
40 _______, _______, _______, _______, _______, _______, _______ 40 _______, _______, _______, _______, _______, _______, _______
41 ), 41 ),
42 42
43 [_MEDIA] = LAYOUT( 43 [_MEDIA] = LAYOUT_all(
44 KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, 44 KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______,
45 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 45 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
46 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 46 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
diff --git a/keyboards/plx/plx.h b/keyboards/plx/plx.h
index eb3829042..9776905f8 100644
--- a/keyboards/plx/plx.h
+++ b/keyboards/plx/plx.h
@@ -28,6 +28,21 @@
28 * represents the switch matrix. 28 * represents the switch matrix.
29 */ 29 */
30#define LAYOUT( \ 30#define LAYOUT( \
31 k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, \
32 k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, \
33 k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2D, \
34 k30, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, \
35 k40, k41, k42, k46, k4B, k4C, k4D \
36) \
37{ \
38 { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, XXX}, \
39 { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D}, \
40 { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, XXX, k2D}, \
41 { k30, XXX, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, XXX}, \
42 { k40, k41, k42, XXX, XXX, XXX, k46, XXX, XXX, XXX, XXX, k4B, k4C, k4D} \
43}
44
45#define LAYOUT_all( \
31 k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E, \ 46 k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E, \
32 k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, \ 47 k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, \
33 k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, \ 48 k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, \
diff --git a/keyboards/preonic/keymaps/default/config.h b/keyboards/preonic/keymaps/default/config.h
index 37858350a..8756e5012 100644
--- a/keyboards/preonic/keymaps/default/config.h
+++ b/keyboards/preonic/keymaps/default/config.h
@@ -1,13 +1,27 @@
1/* Copyright 2015-2021 Jack Humbert
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
1#pragma once 17#pragma once
2 18
3#ifdef AUDIO_ENABLE 19#ifdef AUDIO_ENABLE
4 #define STARTUP_SONG SONG(PREONIC_SOUND) 20# define STARTUP_SONG SONG(PREONIC_SOUND)
5 // #define STARTUP_SONG SONG(NO_SOUND) 21// #define STARTUP_SONG SONG(NO_SOUND)
6 22
7 #define DEFAULT_LAYER_SONGS { SONG(QWERTY_SOUND), \ 23# define DEFAULT_LAYER_SONGS \
8 SONG(COLEMAK_SOUND), \ 24 { SONG(QWERTY_SOUND), SONG(COLEMAK_SOUND), SONG(DVORAK_SOUND) }
9 SONG(DVORAK_SOUND) \
10 }
11#endif 25#endif
12 26
13#define MUSIC_MASK (keycode != KC_NO) 27#define MUSIC_MASK (keycode != KC_NO)
diff --git a/keyboards/preonic/keymaps/default/keymap.c b/keyboards/preonic/keymaps/default/keymap.c
index 3a82f7151..f99a6953c 100644
--- a/keyboards/preonic/keymaps/default/keymap.c
+++ b/keyboards/preonic/keymaps/default/keymap.c
@@ -1,4 +1,4 @@
1/* Copyright 2015-2017 Jack Humbert 1/* Copyright 2015-2021 Jack Humbert
2 * 2 *
3 * This program is free software: you can redistribute it and/or modify 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 4 * it under the terms of the GNU General Public License as published by
diff --git a/keyboards/rotor/config.h b/keyboards/rotor/config.h
new file mode 100644
index 000000000..9f3d8aa7d
--- /dev/null
+++ b/keyboards/rotor/config.h
@@ -0,0 +1,39 @@
1/* Copyright 2021 Densus Design and Basekeys.jp
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#pragma once
18
19#include "config_common.h"
20
21/* USB Device descriptor parameter */
22#define VENDOR_ID 0x04D8
23#define PRODUCT_ID 0xE8BE
24#define DEVICE_VER 0x0001
25#define MANUFACTURER Densus Design
26#define PRODUCT Rotor
27
28/* key matrix size */
29#define MATRIX_ROWS 5
30#define MATRIX_COLS 18
31
32/* key matrix pins */
33
34#define MATRIX_ROW_PINS { B7, B0, B1, B2, B3 }
35#define MATRIX_COL_PINS { E6, F0, F1, F4, F5, F6, F7, C7, C6, B6, B5, B4, D7, D6, D4, D2, D5, D3 }
36
37/* COL2ROW, ROW2COL*/
38#define DIODE_DIRECTION COL2ROW
39
diff --git a/keyboards/rotor/info.json b/keyboards/rotor/info.json
new file mode 100644
index 000000000..a5c86ec4b
--- /dev/null
+++ b/keyboards/rotor/info.json
@@ -0,0 +1,10 @@
1{
2 "keyboard_name": "Rotor",
3 "url": "https://klc-playground.com/",
4 "maintainer": "2Moons",
5 "layouts": {
6 "LAYOUT": {
7 "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"label":"Esc", "x":2.25, "y":0}, {"label":"!", "x":3.25, "y":0}, {"label":"@", "x":4.25, "y":0}, {"label":"#", "x":5.25, "y":0}, {"label":"$", "x":6.25, "y":0}, {"label":"%", "x":7.25, "y":0}, {"label":"^", "x":8.25, "y":0}, {"label":"&", "x":9.25, "y":0}, {"label":"*", "x":10.25, "y":0}, {"label":"(", "x":11.25, "y":0}, {"label":")", "x":12.25, "y":0}, {"label":"_", "x":13.25, "y":0}, {"label":"+", "x":14.25, "y":0}, {"label":"Backspace", "x":15.25, "y":0, "w":2}, {"label":"Home", "x":17.25, "y":0}, {"x":0, "y":1}, {"x":1, "y":1}, {"label":"Tab", "x":2.25, "y":1, "w":1.5}, {"label":"Q", "x":3.75, "y":1}, {"label":"W", "x":4.75, "y":1}, {"label":"E", "x":5.75, "y":1}, {"label":"R", "x":6.75, "y":1}, {"label":"T", "x":7.75, "y":1}, {"label":"Y", "x":8.75, "y":1}, {"label":"U", "x":9.75, "y":1}, {"label":"I", "x":10.75, "y":1}, {"label":"O", "x":11.75, "y":1}, {"label":"P", "x":12.75, "y":1}, {"label":"{", "x":13.75, "y":1}, {"label":"}", "x":14.75, "y":1}, {"label":"|", "x":15.75, "y":1, "w":1.5}, {"label":"PgUp", "x":17.25, "y":1}, {"x":0, "y":2}, {"x":1, "y":2}, {"label":"Caps Lock", "x":2.25, "y":2, "w":1.75}, {"label":"A", "x":4, "y":2}, {"label":"S", "x":5, "y":2}, {"label":"D", "x":6, "y":2}, {"label":"F", "x":7, "y":2}, {"label":"G", "x":8, "y":2}, {"label":"H", "x":9, "y":2}, {"label":"J", "x":10, "y":2}, {"label":"K", "x":11, "y":2}, {"label":"L", "x":12, "y":2}, {"label":":", "x":13, "y":2}, {"label":"\"", "x":14, "y":2}, {"label":"Enter", "x":15, "y":2, "w":2.25}, {"label":"PgDn", "x":17.25, "y":2}, {"x":0, "y":3}, {"x":1, "y":3}, {"label":"Shift", "x":2.25, "y":3, "w":2.25}, {"label":"Z", "x":4.5, "y":3}, {"label":"X", "x":5.5, "y":3}, {"label":"C", "x":6.5, "y":3}, {"label":"V", "x":7.5, "y":3}, {"label":"B", "x":8.5, "y":3}, {"label":"N", "x":9.5, "y":3}, {"label":"M", "x":10.5, "y":3}, {"label":"<", "x":11.5, "y":3}, {"label":">", "x":12.5, "y":3}, {"label":"?", "x":13.5, "y":3}, {"label":"Shift", "x":14.5, "y":3, "w":1.75}, {"label":"\u2191", "x":16.25, "y":3}, {"label":"End", "x":17.25, "y":3}, {"x":0, "y":4}, {"x":1, "y":4}, {"label":"Ctrl", "x":2.25, "y":4, "w":1.5}, {"x":3.75, "y":4}, {"label":"Alt", "x":4.75, "y":4, "w":1.5}, {"label":"7u", "x":6.25, "y":4, "w":7}, {"label":"Ctrl", "x":13.25, "y":4, "w":1.5}, {"label":"\u2190", "x":15.25, "y":4}, {"label":"\u2193", "x":16.25, "y":4}, {"label":"\u2192", "x":17.25, "y":4}]
8 }
9 }
10} \ No newline at end of file
diff --git a/keyboards/rotor/keymaps/default/keymap.c b/keyboards/rotor/keymaps/default/keymap.c
new file mode 100644
index 000000000..05c88d966
--- /dev/null
+++ b/keyboards/rotor/keymaps/default/keymap.c
@@ -0,0 +1,49 @@
1/* Copyright 2021 Densus Design and Basekeys.jp
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#include QMK_KEYBOARD_H
18
19// Defines names for use in layer keycodes and the keymap
20enum layer_names {
21 _BASE,
22 _FN,
23 _MEDIA };
24
25const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
26 [_BASE] = LAYOUT(
27 KC_F1, KC_F2, KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS,
28 KC_F3, KC_F4, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL,
29 KC_F5, KC_F6, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP,
30 KC_F7, KC_F8, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN,
31 KC_F9, KC_F10, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT
32 ),
33
34 [_FN] = LAYOUT(
35 _______, _______, KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______,
36 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
37 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
38 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
39 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
40 ),
41
42 [_MEDIA] = LAYOUT(
43 _______, _______, KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______,
44 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
45 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
46 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
47 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
48 )
49};
diff --git a/keyboards/rotor/keymaps/default/rules.mk b/keyboards/rotor/keymaps/default/rules.mk
new file mode 100644
index 000000000..910bd64a5
--- /dev/null
+++ b/keyboards/rotor/keymaps/default/rules.mk
@@ -0,0 +1,2 @@
1CONSOLE_ENABLE = no # Console for debug
2COMMAND_ENABLE = no \ No newline at end of file
diff --git a/keyboards/rotor/keymaps/default_all/keymap.c b/keyboards/rotor/keymaps/default_all/keymap.c
new file mode 100644
index 000000000..57ea1b846
--- /dev/null
+++ b/keyboards/rotor/keymaps/default_all/keymap.c
@@ -0,0 +1,49 @@
1/* Copyright 2021 Densus Design and Basekeys.jp
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#include QMK_KEYBOARD_H
18
19// Defines names for use in layer keycodes and the keymap
20enum layer_names {
21 _BASE,
22 _FN,
23 _MEDIA };
24
25const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
26 [_BASE] = LAYOUT_all(
27 KC_F1, KC_F2, KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, KC_INS,
28 KC_F3, KC_F4, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL,
29 KC_F5, KC_F6, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_ENT, KC_PGUP,
30 KC_F7, KC_F8, KC_LSFT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN,
31 KC_F9, KC_F10, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RGUI, KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT
32 ),
33
34 [_FN] = LAYOUT_all(
35 _______, _______, KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______,
36 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
37 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
38 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
39 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
40 ),
41
42 [_MEDIA] = LAYOUT_all(
43 _______, _______, KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______,
44 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
45 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
46 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
47 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
48 )
49};
diff --git a/keyboards/rotor/keymaps/default_all/rules.mk b/keyboards/rotor/keymaps/default_all/rules.mk
new file mode 100644
index 000000000..910bd64a5
--- /dev/null
+++ b/keyboards/rotor/keymaps/default_all/rules.mk
@@ -0,0 +1,2 @@
1CONSOLE_ENABLE = no # Console for debug
2COMMAND_ENABLE = no \ No newline at end of file
diff --git a/keyboards/rotor/keymaps/via/config.h b/keyboards/rotor/keymaps/via/config.h
new file mode 100644
index 000000000..18fc91cda
--- /dev/null
+++ b/keyboards/rotor/keymaps/via/config.h
@@ -0,0 +1,19 @@
1/* Copyright 2021 Densus Design and Basekeys.jp
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#pragma once
18
19#define DYNAMIC_KEYMAP_LAYER_COUNT 3 \ No newline at end of file
diff --git a/keyboards/rotor/keymaps/via/keymap.c b/keyboards/rotor/keymaps/via/keymap.c
new file mode 100644
index 000000000..3860a5078
--- /dev/null
+++ b/keyboards/rotor/keymaps/via/keymap.c
@@ -0,0 +1,49 @@
1/* Copyright 2020 Swiftrax and Basekeys.com
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#include QMK_KEYBOARD_H
18
19// Defines names for use in layer keycodes and the keymap
20enum layer_names {
21 _BASE,
22 _FN,
23 _MEDIA };
24
25const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
26 [_BASE] = LAYOUT_all(
27 KC_F1, KC_F2, KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, KC_INS,
28 KC_F3, KC_F4, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL,
29 KC_F5, KC_F6, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_ENT, KC_PGUP,
30 KC_F7, KC_F8, KC_LSFT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN,
31 KC_F9, KC_F10, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RGUI, KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT
32 ),
33
34 [_FN] = LAYOUT_all(
35 _______, _______, KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______,
36 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
37 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
38 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
39 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
40 ),
41
42 [_MEDIA] = LAYOUT_all(
43 _______, _______, KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______,
44 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
45 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
46 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
47 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
48 )
49};
diff --git a/keyboards/rotor/keymaps/via/rules.mk b/keyboards/rotor/keymaps/via/rules.mk
new file mode 100644
index 000000000..32f462d06
--- /dev/null
+++ b/keyboards/rotor/keymaps/via/rules.mk
@@ -0,0 +1,3 @@
1VIA_ENABLE = yes
2CONSOLE_ENABLE = no # Console for debug
3COMMAND_ENABLE = no \ No newline at end of file
diff --git a/keyboards/rotor/readme.md b/keyboards/rotor/readme.md
new file mode 100644
index 000000000..2fe7f5e49
--- /dev/null
+++ b/keyboards/rotor/readme.md
@@ -0,0 +1,19 @@
1# Rotor
2
3![Rotor](https://i.imgur.com/NfWdlzF.png)
4
5A 75 percent keyboard
6
7* Keyboard Maintainer: [2moons](https://github.com/2moons-jp)
8* Hardware Supported: Rotor PCB, ATMEGA32U4-MU
9* Hardware Availability: [Website](https://klc-playground.com/)
10
11Make example for this keyboard (after setting up your build environment):
12
13 make rotor:default
14
15To flash firmware onto this board, you'll need to bring the PCB into bootloader mode. To enter bootloader mode, press the reset button on the back of the PCB once. The reset button is located near the left side of the board near the TAB key.
16
17See 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)
18
19[Build guide](https://docs.google.com/document/d/1BWUkFYRJ3aB-AY9pEW-9av5j8VWKI2Hmt8xsCFQgDg0/edit)
diff --git a/keyboards/rotor/rotor.c b/keyboards/rotor/rotor.c
new file mode 100644
index 000000000..2a21ed9b4
--- /dev/null
+++ b/keyboards/rotor/rotor.c
@@ -0,0 +1,17 @@
1/* Copyright 2021 Densus Design and Basekeys.jp
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#include "rotor.h"
diff --git a/keyboards/rotor/rotor.h b/keyboards/rotor/rotor.h
new file mode 100644
index 000000000..0a29bc2fe
--- /dev/null
+++ b/keyboards/rotor/rotor.h
@@ -0,0 +1,58 @@
1/* Copyright 2021 Densus Design and Basekeys.jp
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#pragma once
17
18#include "quantum.h"
19
20#define XXX KC_NO//readabilty
21
22/* This a shortcut to help you visually see your layout.
23 *
24 * The first section contains all of the arguments representing the physical
25 * layout of the board and position of the keys.
26 *
27 * The second converts the arguments into a two-dimensional array which
28 * represents the switch matrix.
29 */
30#define LAYOUT( \
31 k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E, k0G, k0H, \
32 k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E, k1G, k1H, \
33 k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, k2G, k2H, \
34 k30, k31, k32, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, k3E, k3G, k3H, \
35 k40, k41, k42, k43, k44, k48, k4D, k4E, k4G, k4H \
36) \
37{ \
38 { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E, XXX, k0G, k0H}, \
39 { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E, XXX, k1G, k1H}, \
40 { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, XXX, XXX, k2G, k2H}, \
41 { k30, k31, k32, XXX, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, k3E, XXX, k3G, k3H}, \
42 { k40, k41, k42, k43, k44, XXX, XXX, XXX, k48, XXX, XXX, XXX, XXX, k4D, k4E, XXX, k4G, k4H} \
43}
44
45#define LAYOUT_all( \
46 k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E, k0F, k0G, k0H, \
47 k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E, k1G, k1H, \
48 k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, k2E, k2G, k2H, \
49 k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, k3E, k3G, k3H, \
50 k40, k41, k42, k43, k44, k46, k48, k4A, k4C, k4D, k4E, k4G, k4H \
51) \
52{ \
53 { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E, k0F, k0G, k0H}, \
54 { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E, XXX, k1G, k1H}, \
55 { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, k2E, XXX, k2G, k2H}, \
56 { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, k3E, XXX, k3G, k3H}, \
57 { k40, k41, k42, k43, k44, XXX, k46, XXX, k48, XXX, k4A, XXX, k4C, k4D, k4E, XXX, k4G, k4H} \
58}
diff --git a/keyboards/rotor/rules.mk b/keyboards/rotor/rules.mk
new file mode 100644
index 000000000..6d598770a
--- /dev/null
+++ b/keyboards/rotor/rules.mk
@@ -0,0 +1,21 @@
1# MCU name
2MCU = atmega32u4
3
4# Bootloader selection
5BOOTLOADER = atmel-dfu
6
7# Build Options
8# change yes to no to disable
9#
10BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
11MOUSEKEY_ENABLE = no # Mouse keys
12EXTRAKEY_ENABLE = yes # Audio control and System control
13CONSOLE_ENABLE = yes # Console for debug
14COMMAND_ENABLE = yes # Commands for debug and configuration
15# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
16SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
17# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
18NKRO_ENABLE = no # USB Nkey Rollover
19BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
20RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
21AUDIO_ENABLE = no # Audio output
diff --git a/keyboards/sam/sg81m/info.json b/keyboards/sam/sg81m/info.json
index ae91bd667..439d8562e 100644
--- a/keyboards/sam/sg81m/info.json
+++ b/keyboards/sam/sg81m/info.json
@@ -3,7 +3,7 @@
3 "url": "", 3 "url": "",
4 "maintainer": "CMMS-Freather", 4 "maintainer": "CMMS-Freather",
5 "layouts": { 5 "layouts": {
6 "LAYOUT": { 6 "LAYOUT_7u_space": {
7 "layout": [ 7 "layout": [
8 {"label":"K00 (F0,B7)", "x":0, "y":0}, 8 {"label":"K00 (F0,B7)", "x":0, "y":0},
9 {"label":"K01 (F0,B6)", "x":1, "y":0}, 9 {"label":"K01 (F0,B6)", "x":1, "y":0},
@@ -87,6 +87,94 @@
87 {"label":"K59 (F7,D3)", "x":16.5, "y":4.25}, 87 {"label":"K59 (F7,D3)", "x":16.5, "y":4.25},
88 {"label":"K5A (F7,D4)", "x":17.5, "y":4.25} 88 {"label":"K5A (F7,D4)", "x":17.5, "y":4.25}
89 ] 89 ]
90
91 },
92 "LAYOUT_6_25u_space": {
93 "layout": [
94 {"label":"K00 (F0,B7)", "x":0, "y":0},
95 {"label":"K01 (F0,B6)", "x":1, "y":0},
96 {"label":"K02 (F0,B5)", "x":2, "y":0},
97 {"label":"K03 (F0,B4)", "x":3, "y":0},
98 {"label":"K04 (F0,C7)", "x":4, "y":0},
99 {"label":"K05 (F0,C6)", "x":5, "y":0},
100 {"label":"K06 (F0,D0)", "x":6, "y":0},
101 {"label":"K07 (F0,D1)", "x":7, "y":0},
102 {"label":"K08 (F0,D2)", "x":8, "y":0},
103 {"label":"K09 (F0,D3)", "x":9, "y":0},
104 {"label":"K0A (F0,D4)", "x":10, "y":0},
105 {"label":"K0B (F0,D5)", "x":11, "y":0},
106 {"label":"K0C (F0,D6)", "x":12, "y":0},
107 {"label":"K0D (F0,D7)", "x":13, "y":0, "w":2},
108 {"label":"K2D (F4,D7)", "x":15.5, "y":0},
109 {"label":"K3D (F5,D7)", "x":16.5, "y":0},
110 {"label":"K4D (F6,D7)", "x":17.5, "y":0},
111
112 {"label":"K10 (F1,B7)", "x":0, "y":1.25, "w":1.5},
113 {"label":"K11 (F1,B6)", "x":1.5, "y":1.25},
114 {"label":"K12 (F1,B5)", "x":2.5, "y":1.25},
115 {"label":"K13 (F1,B4)", "x":3.5, "y":1.25},
116 {"label":"K14 (F1,C7)", "x":4.5, "y":1.25},
117 {"label":"K15 (F1,C6)", "x":5.5, "y":1.25},
118 {"label":"K16 (F1,D0)", "x":6.5, "y":1.25},
119 {"label":"K17 (F1,D1)", "x":7.5, "y":1.25},
120 {"label":"K18 (F1,D2)", "x":8.5, "y":1.25},
121 {"label":"K19 (F1,D3)", "x":9.5, "y":1.25},
122 {"label":"K1A (F1,D4)", "x":10.5, "y":1.25},
123 {"label":"K1B (F1,D5)", "x":11.5, "y":1.25},
124 {"label":"K1C (F1,D6)", "x":12.5, "y":1.25},
125 {"label":"K1D (F1,D7)", "x":13.5, "y":1.25, "w":1.5},
126 {"label":"K56 (F7,D0)", "x":15.5, "y":1.25},
127 {"label":"K57 (F7,D1)", "x":16.5, "y":1.25},
128 {"label":"K58 (F7,D2)", "x":17.5, "y":1.25},
129
130 {"label":"K20 (F4,B7)", "x":0, "y":2.25, "w":1.75},
131 {"label":"K21 (F4,B6)", "x":1.75, "y":2.25},
132 {"label":"K22 (F4,B5)", "x":2.75, "y":2.25},
133 {"label":"K23 (F4,B4)", "x":3.75, "y":2.25},
134 {"label":"K24 (F4,C7)", "x":4.75, "y":2.25},
135 {"label":"K25 (F4,C6)", "x":5.75, "y":2.25},
136 {"label":"K26 (F4,D0)", "x":6.75, "y":2.25},
137 {"label":"K27 (F4,D1)", "x":7.75, "y":2.25},
138 {"label":"K28 (F4,D2)", "x":8.75, "y":2.25},
139 {"label":"K29 (F4,D3)", "x":9.75, "y":2.25},
140 {"label":"K2A (F4,D4)", "x":10.75, "y":2.25},
141 {"label":"K2B (F4,D5)", "x":11.75, "y":2.25},
142 {"label":"K2C (F4,D6)", "x":12.75, "y":2.25, "w":2.25},
143 {"label":"K53 (F7,B4)", "x":15.5, "y":2.25},
144 {"label":"K54 (F7,C7)", "x":16.5, "y":2.25},
145 {"label":"K55 (F7,C6)", "x":17.5, "y":2.25},
146
147 {"label":"K30 (F5,B7)", "x":0, "y":3.25, "w":2.25},
148 {"label":"K31 (F5,B6)", "x":2.25, "y":3.25},
149 {"label":"K32 (F5,B5)", "x":3.25, "y":3.25},
150 {"label":"K33 (F5,B4)", "x":4.25, "y":3.25},
151 {"label":"K34 (F5,C7)", "x":5.25, "y":3.25},
152 {"label":"K35 (F5,C6)", "x":6.25, "y":3.25},
153 {"label":"K36 (F5,D0)", "x":7.25, "y":3.25},
154 {"label":"K37 (F5,D1)", "x":8.25, "y":3.25},
155 {"label":"K38 (F5,D2)", "x":9.25, "y":3.25},
156 {"label":"K39 (F5,D3)", "x":10.25, "y":3.25},
157 {"label":"K3A (F5,D4)", "x":11.25, "y":3.25},
158 {"label":"K3B (F5,D5)", "x":12.25, "y":3.25, "w":1.75},
159 {"label":"K3C (F5,D6)", "x":14.25, "y":3.5},
160 {"label":"K50 (F7,B7)", "x":15.5, "y":3.25},
161 {"label":"K51 (F7,B6)", "x":16.5, "y":3.25},
162 {"label":"K52 (F7,B5)", "x":17.5, "y":3.25},
163
164 {"label":"K40 (F6,B7)", "x":0, "y":4.25, "w":1.25},
165 {"label":"K41 (F6,B6)", "x":1.25, "y":4.25, "w":1.25},
166 {"label":"K42 (F6,B5)", "x":2.5, "y":4.25, "w":1.25},
167 {"label":"K45 (F6,C6)", "x":3.75, "y":4.25, "w":6.25},
168 {"label":"K47 (F6,D1)", "x":10, "y":4.25},
169 {"label":"K48 (F6,D2)", "x":11, "y":4.25},
170 {"label":"K49 (F6,D3)", "x":12, "y":4.25},
171 {"label":"K4A (F6,D4)", "x":13.25, "y":4.5},
172 {"label":"K4B (F6,D5)", "x":14.25, "y":4.5},
173 {"label":"K4C (F6,D6)", "x":15.25, "y":4.5},
174 {"label":"K59 (F7,D3)", "x":16.5, "y":4.25},
175 {"label":"K5A (F7,D4)", "x":17.5, "y":4.25}
176 ]
177
90 } 178 }
91 } 179 }
92} 180}
diff --git a/keyboards/sam/sg81m/sg81m.h b/keyboards/sam/sg81m/sg81m.h
index 73e69e439..13a5d760e 100644
--- a/keyboards/sam/sg81m/sg81m.h
+++ b/keyboards/sam/sg81m/sg81m.h
@@ -18,7 +18,7 @@
18 18
19#include "quantum.h" 19#include "quantum.h"
20 20
21#define LAYOUT( \ 21#define LAYOUT_7u_space( \
22 K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K2D, K3D, K4D, \ 22 K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K2D, K3D, K4D, \
23 K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K56, K57, K58, \ 23 K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K56, K57, K58, \
24 K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K53, K54, K55, \ 24 K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K53, K54, K55, \
@@ -33,5 +33,22 @@
33 { K50, K51, K52, K53, K54, K55, K56, K57, K58, K59, K5A, KC_NO, KC_NO, KC_NO }, \ 33 { K50, K51, K52, K53, K54, K55, K56, K57, K58, K59, K5A, KC_NO, KC_NO, KC_NO }, \
34} 34}
35 35
36#define LAYOUT_6_25u_space( \
37 K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K2D, K3D, K4D, \
38 K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K56, K57, K58, \
39 K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K53, K54, K55, \
40 K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K50, K51, K52, \
41 K40, K41, K42, K45, K47, K48, K49, K4A, K4B, K4C, K59, K5A \
42) { \
43 { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D }, \
44 { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D }, \
45 { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D }, \
46 { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D }, \
47 { K40, K41, K42, KC_NO, KC_NO, K45, KC_NO, K47, K48, K49, K4A, K4B, K4C, K4D }, \
48 { K50, K51, K52, K53, K54, K55, K56, K57, K58, K59, K5A, KC_NO, KC_NO, KC_NO }, \
49}
50
51#define LAYOUT LAYOUT_7u_space
52
36// generated by KBFirmware JSON to QMK Parser 53// generated by KBFirmware JSON to QMK Parser
37// https://noroadsleft.github.io/kbf_qmk_converter/ 54// https://noroadsleft.github.io/kbf_qmk_converter/
diff --git a/keyboards/sets3n/kk980/info.json b/keyboards/sets3n/kk980/info.json
index e6622d14b..5c1cabafe 100644
--- a/keyboards/sets3n/kk980/info.json
+++ b/keyboards/sets3n/kk980/info.json
@@ -73,10 +73,10 @@
73 {"label":";:", "x": 10.75, "y": 3.5}, 73 {"label":";:", "x": 10.75, "y": 3.5},
74 {"label":"'\"", "x": 11.75, "y": 3.5}, 74 {"label":"'\"", "x": 11.75, "y": 3.5},
75 {"label":"RETURN", "x": 12.75, "y": 3.5, "w": 2.25}, 75 {"label":"RETURN", "x": 12.75, "y": 3.5, "w": 2.25},
76 {"label":"4", "x": 15.5, "y": 3.5, "w": 1.5}, 76 {"label":"4", "x": 15.5, "y": 3.5},
77 {"label":"5", "x": 16.5, "y": 3.5}, 77 {"label":"5", "x": 16.5, "y": 3.5},
78 {"label":"6", "x": 17.5, "y": 3.5}, 78 {"label":"6", "x": 17.5, "y": 3.5},
79 {"label":"+", "x": 18.5, "y": 3.5, "h": 2}, 79 {"label":"+", "x": 18.5, "y": 2.5, "h": 2},
80 80
81 {"label":"LSHIFT", "x": 0, "y": 4.5, "w": 2.25}, 81 {"label":"LSHIFT", "x": 0, "y": 4.5, "w": 2.25},
82 {"label":"Z", "x": 2.25, "y": 4.5}, 82 {"label":"Z", "x": 2.25, "y": 4.5},
@@ -98,16 +98,16 @@
98 {"label":"LCTRL", "x": 0, "y": 5.5, "w": 1.25}, 98 {"label":"LCTRL", "x": 0, "y": 5.5, "w": 1.25},
99 {"label":"LWIN", "x": 1.25, "y": 5.5}, 99 {"label":"LWIN", "x": 1.25, "y": 5.5},
100 {"label":"LALT", "x": 2.25, "y": 5.5, "w": 1.25}, 100 {"label":"LALT", "x": 2.25, "y": 5.5, "w": 1.25},
101 {"label":"SPACE", "x": 3.25, "y": 5.5, "w": 6.25}, 101 {"label":"SPACE", "x": 3.5, "y": 5.5, "w": 6.25},
102 {"label":"RALT", "x": 9.5, "y": 5.5}, 102 {"label":"RALT", "x": 9.75, "y": 5.5},
103 {"label":"FN", "x": 10.5, "y": 5.5}, 103 {"label":"FN", "x": 10.75, "y": 5.5},
104 {"label":"RCTRL", "x": 11.5, "y": 5.5, "w": 1.25}, 104 {"label":"RCTRL", "x": 11.75, "y": 5.5, "w": 1.25},
105 {"label":"LEFT", "x": 13, "y": 5.75}, 105 {"label":"LEFT", "x": 13.25, "y": 5.75},
106 {"label":"DOWN", "x": 14, "y": 5.75}, 106 {"label":"DOWN", "x": 14.25, "y": 5.75},
107 {"label":"RIGHT", "x": 15, "y": 5.75}, 107 {"label":"RIGHT", "x": 15.25, "y": 5.75},
108 {"label":"0", "x": 16.5, "y": 5.5}, 108 {"label":"0", "x": 16.5, "y": 5.5},
109 {"label":".DEL", "x": 17.5, "y": 5.5, "w": 2.75}, 109 {"label":".DEL", "x": 17.5, "y": 5.5,},
110 {"label":"ENTER", "x": 18.5, "y": 5.5, "h": 2} 110 {"label":"ENTER", "x": 18.5, "y": 4.5, "h": 2}
111 111
112 ] 112 ]
113 } 113 }
diff --git a/keyboards/signum/3_0/config.h b/keyboards/signum/3_0/config.h
new file mode 100644
index 000000000..d0c3175d0
--- /dev/null
+++ b/keyboards/signum/3_0/config.h
@@ -0,0 +1,32 @@
1/* Copyright 2021 Stan Gurenkov <rococo04_fox@icloud.com>
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#pragma once
17
18#include "config_common.h"
19
20/* USB Device descriptor parameter */
21#define VENDOR_ID 0xFEED
22#define PRODUCT_ID 0x6060
23#define DEVICE_VER 0x0001
24#define MANUFACTURER Troy Fletcher
25#define PRODUCT Signum30
26
27/* key matrix size */
28#define MATRIX_ROWS 4
29#define MATRIX_COLS 12
30
31/* COL2ROW or ROW2COL */
32#define DIODE_DIRECTION COL2ROW
diff --git a/keyboards/signum/3_0/elitec/config.h b/keyboards/signum/3_0/elitec/config.h
index f86e6748a..fdbfac3c9 100644
--- a/keyboards/signum/3_0/elitec/config.h
+++ b/keyboards/signum/3_0/elitec/config.h
@@ -2,29 +2,7 @@
2 2
3#include "config_common.h" 3#include "config_common.h"
4 4
5/* USB Device descriptor parameter */
6#define VENDOR_ID 0xF1E7
7#define PRODUCT_ID 0x5163
8#define DEVICE_VER 0x0000
9#define MANUFACTURER troyfletcher
10#define PRODUCT Signum
11
12/* mouse settings */
13#define MK_KINETIC_SPEED
14
15/* key matrix size */
16#define MATRIX_ROWS 4
17#define MATRIX_COLS 12
18
19/* key matrix pins */ 5/* key matrix pins */
20#define MATRIX_ROW_PINS { D2, D1, F5, B5 } 6#define MATRIX_ROW_PINS { D2, D1, F5, B5 }
21#define MATRIX_COL_PINS { B4, D7, D0, E6, D4, F6, F4, F7, B1, B3, C6, B2 } 7#define MATRIX_COL_PINS { B4, D7, D0, E6, D4, F6, F4, F7, B1, B3, C6, B2 }
22#define UNUSED_PINS 8#define UNUSED_PINS
23
24#define DIODE_DIRECTION COL2ROW
25
26/* Set 0 if debouncing isn't needed */
27#define DEBOUNCE 5
28
29/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
30#define LOCKING_SUPPORT_ENABLE
diff --git a/keyboards/signum/3_0/elitec/elitec.h b/keyboards/signum/3_0/elitec/elitec.h
index d28d3d476..7498fdcee 100644
--- a/keyboards/signum/3_0/elitec/elitec.h
+++ b/keyboards/signum/3_0/elitec/elitec.h
@@ -1,15 +1,4 @@
1#pragma once 1#pragma once
2 2
3#include "quantum.h" 3#include "quantum.h"
4 4#include "signum.h"
5#define LAYOUT_ortho_4x12( \
6 K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, \
7 K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, \
8 K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, \
9 K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311 \
10) { \
11 { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011 }, \
12 { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111 }, \
13 { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211 }, \
14 { K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311 } \
15}
diff --git a/keyboards/signum/3_0/elitec/rules.mk b/keyboards/signum/3_0/elitec/rules.mk
index 65714ef39..e69de29bb 100644
--- a/keyboards/signum/3_0/elitec/rules.mk
+++ b/keyboards/signum/3_0/elitec/rules.mk
@@ -1,28 +0,0 @@
1# MCU name
2MCU = atmega32u4
3
4# Bootloader selection
5BOOTLOADER = atmel-dfu
6
7# Build Options
8# comment out to disable the options.
9#
10BOOTMAGIC_ENABLE = lite # Enable Bootmagic Lite
11MOUSEKEY_ENABLE = yes # Mouse keys
12EXTRAKEY_ENABLE = yes # Audio control and System control
13CONSOLE_ENABLE = no # Console for debug
14COMMAND_ENABLE = no # Commands for debug and configuration
15SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
16NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
17BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
18AUDIO_ENABLE = no
19RGBLIGHT_ENABLE = no
20
21UNICODEMAP_ENABLE = no
22
23LAYOUTS = ortho_4x12
24
25# Disable unsupported hardware
26RGBLIGHT_SUPPORTED = no
27AUDIO_SUPPORTED = no
28BACKLIGHT_SUPPORTED = no
diff --git a/keyboards/signum/3_0/elitec/info.json b/keyboards/signum/3_0/info.json
index a3f14c480..a3f14c480 100644
--- a/keyboards/signum/3_0/elitec/info.json
+++ b/keyboards/signum/3_0/info.json
diff --git a/keyboards/signum/3_0/elitec/keymaps/default/generate_km.py b/keyboards/signum/3_0/keymaps/default/generate_km.py
index cfa8edf57..cfa8edf57 100755
--- a/keyboards/signum/3_0/elitec/keymaps/default/generate_km.py
+++ b/keyboards/signum/3_0/keymaps/default/generate_km.py
diff --git a/keyboards/signum/3_0/elitec/keymaps/default/keymap.c b/keyboards/signum/3_0/keymaps/default/keymap.c
index 15cf21530..15cf21530 100644
--- a/keyboards/signum/3_0/elitec/keymaps/default/keymap.c
+++ b/keyboards/signum/3_0/keymaps/default/keymap.c
diff --git a/keyboards/signum/3_0/elitec/keymaps/default/km_template.txt b/keyboards/signum/3_0/keymaps/default/km_template.txt
index 47b35ee51..47b35ee51 100644
--- a/keyboards/signum/3_0/elitec/keymaps/default/km_template.txt
+++ b/keyboards/signum/3_0/keymaps/default/km_template.txt
diff --git a/keyboards/signum/3_0/elitec/keymaps/default/layout.py b/keyboards/signum/3_0/keymaps/default/layout.py
index 1e43e25c5..1e43e25c5 100644
--- a/keyboards/signum/3_0/elitec/keymaps/default/layout.py
+++ b/keyboards/signum/3_0/keymaps/default/layout.py
diff --git a/keyboards/signum/3_0/elitec/keymaps/default/readme.md b/keyboards/signum/3_0/keymaps/default/readme.md
index be8cc30e8..be8cc30e8 100644
--- a/keyboards/signum/3_0/elitec/keymaps/default/readme.md
+++ b/keyboards/signum/3_0/keymaps/default/readme.md
diff --git a/keyboards/signum/3_0/elitec/keymaps/default/rules.mk b/keyboards/signum/3_0/keymaps/default/rules.mk
index 502b2def7..502b2def7 100644
--- a/keyboards/signum/3_0/elitec/keymaps/default/rules.mk
+++ b/keyboards/signum/3_0/keymaps/default/rules.mk
diff --git a/keyboards/signum/3_0/keymaps/sgurenkov/config.h b/keyboards/signum/3_0/keymaps/sgurenkov/config.h
new file mode 100644
index 000000000..5f8d0d02b
--- /dev/null
+++ b/keyboards/signum/3_0/keymaps/sgurenkov/config.h
@@ -0,0 +1,45 @@
1/* Copyright 2021 Stan Gurenkov <rococo04_fox@icloud.com>
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#pragma once
17
18#define ONESHOT_TAP_TOGGLE 2
19#define ONESHOT_TIMEOUT 5000
20#define LEADER_TIMEOUT 600
21#define LEADER_PER_KEY_TIMING 300
22
23// default but used in macros
24#define TAPPING_TERM 300
25
26// Prevent normal rollover on alphas from accidentally triggering mods.
27#define IGNORE_MOD_TAP_INTERRUPT
28
29// Auto Shift and Retro Shift (Auto Shift for Tap Hold).
30#define AUTO_SHIFT_TIMEOUT TAPPING_TERM
31
32// Recommended for heavy chording.
33#define QMK_KEYS_PER_SCAN 4
34
35// Mouse key speed and acceleration.
36#undef MOUSEKEY_DELAY
37#define MOUSEKEY_DELAY 0
38#undef MOUSEKEY_INTERVAL
39#define MOUSEKEY_INTERVAL 16
40#undef MOUSEKEY_WHEEL_DELAY
41#define MOUSEKEY_WHEEL_DELAY 0
42#undef MOUSEKEY_MAX_SPEED
43#define MOUSEKEY_MAX_SPEED 6
44#undef MOUSEKEY_TIME_TO_MAX
45#define MOUSEKEY_TIME_TO_MAX 64
diff --git a/keyboards/signum/3_0/keymaps/sgurenkov/keymap.c b/keyboards/signum/3_0/keymaps/sgurenkov/keymap.c
new file mode 100644
index 000000000..f6cdcfd24
--- /dev/null
+++ b/keyboards/signum/3_0/keymaps/sgurenkov/keymap.c
@@ -0,0 +1,128 @@
1/* Copyright 2021 Stan Gurenkov <rococo04_fox@icloud.com>
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#define M0(kc) MT(MOD_HYPR, kc)
19#define M1(kc) MT(MOD_LGUI, kc)
20#define M2(kc) MT(MOD_LCTL, kc)
21#define M3(kc) MT(MOD_LALT, kc)
22#define M4(kc) MT(MOD_LSFT, kc)
23#define LTH1 LT(L_LEFT, KC_SPC)
24#define LTH2 LT(L_NUM, KC_BSPC)
25#define RTH1 LT(L_RIGHT, KC_SPC)
26#define RTH2 LT(L_NUM, KC_ENT)
27#define COPY LCMD(KC_C)
28#define PASTE LCMD(KC_V)
29// Layers
30#define L_BASE 0
31#define L_LEFT 1
32#define L_RIGHT 2
33#define L_NUM 3
34
35bool is_cmd_tab_active = false;
36
37enum custom_keycodes {
38 CMD_TAB = SAFE_RANGE,
39};
40// clang-format off
41const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
42// L_BASE
43 LAYOUT(
44 KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL,
45 KC_TAB, M4(KC_A), M3(KC_S), M2(KC_D), M1(KC_F), M0(KC_G), M0(KC_H), M1(KC_J), M2(KC_K), M3(KC_L), M4(KC_COLN), KC_QUOT,
46 KC_GRV, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_BSLS,
47 OSM(MOD_LSFT), KC_LEAD, KC_LGUI, LTH1, XXXXXXX, LTH2, RTH2, XXXXXXX, RTH1, KC_RGUI, KC_LEAD, OSM(MOD_HYPR)),
48
49// L_LEFT
50 LAYOUT(
51 _______, XXXXXXX, XXXXXXX, KC_EQL, KC_PERC, KC_AT, COPY, KC_UNDS, KC_HASH, RALT(KC_SPC), KC_PLUS, _______,
52 _______, KC_LSHIFT, KC_LALT, KC_LCTL, KC_LGUI, KC_HYPR, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, KC_LBRC, KC_RBRC,
53 _______, XXXXXXX, KC_EXLM, KC_CIRC, XXXXXXX, KC_HOME, KC_END, KC_MINS, KC_LPRN, KC_RPRN, PASTE, XXXXXXX,
54 _______, KC_BRID, KC_BRIU, _______, _______, _______, _______, _______, _______, KC_VOLD, KC_VOLU, _______),
55
56// L_RIGHT
57 LAYOUT(
58 _______, XXXXXXX, XXXXXXX, KC_EQL, KC_PERC, KC_AT, COPY, KC_UNDS, KC_HASH, RALT(KC_SPC), KC_PLUS, _______,
59 _______, KC_AMPR, KC_ASTR, KC_DLR, LGUI(KC_GRV), XXXXXXX, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, KC_RSFT, KC_RBRC,
60 _______, XXXXXXX, KC_EXLM, KC_CIRC, XXXXXXX, KC_HOME, KC_END, KC_MINS, KC_LPRN, KC_RPRN, PASTE, XXXXXXX,
61 _______, KC_BRID, KC_BRIU, _______, _______, _______, _______, _______, _______, KC_VOLD, KC_VOLU, _______),
62
63// L_NUM
64 LAYOUT(
65 _______, XXXXXXX, KC_F7, KC_F8, KC_F9, KC_F12, KC_MINS, KC_7, KC_8, KC_9, KC_COMM, _______,
66 _______, M4(KC_LSFT), M3(KC_F4), M2(KC_F5), M1(KC_F6), M0(KC_F11), M0(KC_DOT), M1(KC_4), M2(KC_5), M3(KC_6), M4(KC_0), _______,
67 _______, XXXXXXX, KC_F1, KC_F2, KC_F3, KC_F10, KC_PLUS, KC_1, KC_2, KC_3, KC_DOT, _______,
68 _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MEDIA_PREV_TRACK , KC_MEDIA_NEXT_TRACK, KC_MEDIA_PLAY_PAUSE),
69
70 LAYOUT(
71 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
72 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
73 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
74 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______),
75};
76// clang-format on
77bool process_record_user(uint16_t keycode, keyrecord_t *record) {
78 switch (keycode) {
79 case CMD_TAB:
80 if (record->event.pressed) {
81 register_code(KC_LCMD);
82 tap_code(KC_TAB);
83 layer_on(2);
84 } else {
85 unregister_code(KC_LCMD);
86 layer_off(2);
87 }
88 break;
89 case KC_ESC:
90 layer_clear();
91 }
92 return true;
93}
94
95LEADER_EXTERNS();
96
97void matrix_scan_user(void) {
98 LEADER_DICTIONARY() {
99 leading = false;
100 leader_end();
101
102 // Cancel task CTRL+C
103 SEQ_ONE_KEY(KC_C) { tap_code16(C(KC_C)); }
104 // copy
105 SEQ_ONE_KEY(KC_Y) { tap_code16(G(KC_C)); }
106 // cut
107 SEQ_ONE_KEY(KC_X) { tap_code16(G(KC_X)); }
108 // paste
109 SEQ_ONE_KEY(KC_P) { tap_code16(G(KC_V)); }
110 // undo
111 SEQ_ONE_KEY(KC_U) { tap_code16(G(KC_Z)); }
112 // redo
113 SEQ_ONE_KEY(KC_R) { tap_code16(S(G(KC_Z))); }
114 // delete line
115 SEQ_TWO_KEYS(KC_D, KC_D) {
116 register_code(KC_LGUI);
117
118 tap_code(KC_RIGHT);
119
120 tap_code(KC_BSPACE);
121
122 unregister_code(KC_LGUI);
123 }
124 // go to the beginning of the string
125 SEQ_ONE_KEY(KC_H) { tap_code16(G(KC_LEFT)); }
126 // go to the end of the string
127 SEQ_ONE_KEY(KC_L) { tap_code16(G(KC_RIGHT)); }
128 }
diff --git a/keyboards/signum/3_0/keymaps/sgurenkov/rules.mk b/keyboards/signum/3_0/keymaps/sgurenkov/rules.mk
new file mode 100644
index 000000000..5c9a4b49b
--- /dev/null
+++ b/keyboards/signum/3_0/keymaps/sgurenkov/rules.mk
@@ -0,0 +1,2 @@
1LEADER_ENABLE = yes
2AUTO_SHIFT_ENABLE = no
diff --git a/keyboards/signum/3_0/elitec/readme.md b/keyboards/signum/3_0/readme.md
index f60023f6d..3e937f771 100644
--- a/keyboards/signum/3_0/elitec/readme.md
+++ b/keyboards/signum/3_0/readme.md
@@ -10,5 +10,6 @@ Hardware available here: [Troy Fletcher](http://troyfletcher.net/keyboard_sales.
10Make example for this keyboard (after setting up your build environment): 10Make example for this keyboard (after setting up your build environment):
11 11
12 make signum/3_0/elitec:default 12 make signum/3_0/elitec:default
13 make signum/3_0/teensy:default
13 14
14See 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). 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).
diff --git a/keyboards/signum/3_0/rules.mk b/keyboards/signum/3_0/rules.mk
new file mode 100644
index 000000000..a2f2bc9c0
--- /dev/null
+++ b/keyboards/signum/3_0/rules.mk
@@ -0,0 +1,28 @@
1# MCU name
2MCU = atmega32u4
3
4# Bootloader selection
5BOOTLOADER = atmel-dfu
6
7# Build Options
8# change yes to no to disable
9#
10BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
11MOUSEKEY_ENABLE = yes # Mouse keys
12EXTRAKEY_ENABLE = yes # Audio control and System control
13CONSOLE_ENABLE = no # Console for debug
14COMMAND_ENABLE = no # Commands for debug and configuration
15# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
16SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
17# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
18NKRO_ENABLE = yes # USB Nkey Rollover
19BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
20RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
21AUDIO_ENABLE = no # Audio output
22
23LAYOUTS = ortho_4x12
24
25# Disable unsupported hardware
26RGBLIGHT_SUPPORTED = no
27AUDIO_SUPPORTED = no
28BACKLIGHT_SUPPORTED = no
diff --git a/keyboards/signum/3_0/signum.c b/keyboards/signum/3_0/signum.c
new file mode 100644
index 000000000..b74bd52b2
--- /dev/null
+++ b/keyboards/signum/3_0/signum.c
@@ -0,0 +1,16 @@
1/* Copyright 2021 Stan Gurenkov <rococo04_fox@icloud.com>
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 "signum.h"
diff --git a/keyboards/signum/3_0/signum.h b/keyboards/signum/3_0/signum.h
new file mode 100644
index 000000000..9322b44b8
--- /dev/null
+++ b/keyboards/signum/3_0/signum.h
@@ -0,0 +1,33 @@
1/* Copyright 2021 Stan Gurenkov <rococo04_fox@icloud.com>
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#pragma once
17
18#include "quantum.h"
19
20// clang-format off
21# define LAYOUT( \
22 K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, \
23 K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, \
24 K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, \
25 K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311 \
26) { \
27 { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011 }, \
28 { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111 }, \
29 { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211 }, \
30 { K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311 } \
31}
32// clang-format on
33#define LAYOUT_ortho_4x12 LAYOUT
diff --git a/keyboards/signum/3_0/teensy/config.h b/keyboards/signum/3_0/teensy/config.h
new file mode 100644
index 000000000..343131fce
--- /dev/null
+++ b/keyboards/signum/3_0/teensy/config.h
@@ -0,0 +1,23 @@
1/* Copyright 2021 Stan Gurenkov <rococo04_fox@icloud.com>
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#pragma once
17
18/* key matrix pins */
19// clang-format off
20#define MATRIX_ROW_PINS { B0, B3, F6, C7 }
21#define MATRIX_COL_PINS { C6, D2, B7, D3, D0, F7, F5, B6, B5, B4, D1, D7 }
22#define UNUSED_PINS
23// clang-format on
diff --git a/keyboards/signum/3_0/teensy/rules.mk b/keyboards/signum/3_0/teensy/rules.mk
new file mode 100644
index 000000000..8b1378917
--- /dev/null
+++ b/keyboards/signum/3_0/teensy/rules.mk
@@ -0,0 +1 @@
diff --git a/keyboards/signum/3_0/teensy/teensy.c b/keyboards/signum/3_0/teensy/teensy.c
new file mode 100644
index 000000000..42e993a6b
--- /dev/null
+++ b/keyboards/signum/3_0/teensy/teensy.c
@@ -0,0 +1,16 @@
1/* Copyright 2021 Stan Gurenkov <rococo04_fox@icloud.com>
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 "teensy.h"
diff --git a/keyboards/signum/3_0/teensy/teensy.h b/keyboards/signum/3_0/teensy/teensy.h
new file mode 100644
index 000000000..ac02c3cbe
--- /dev/null
+++ b/keyboards/signum/3_0/teensy/teensy.h
@@ -0,0 +1,19 @@
1/* Copyright 2021 Stan Gurenkov <rococo04_fox@icloud.com>
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#pragma once
17
18#include "quantum.h"
19#include "signum.h"
diff --git a/keyboards/sofle/keymaps/rgb_default/rules.mk b/keyboards/sofle/keymaps/rgb_default/rules.mk
index 92a293196..860c2122d 100644
--- a/keyboards/sofle/keymaps/rgb_default/rules.mk
+++ b/keyboards/sofle/keymaps/rgb_default/rules.mk
@@ -1,6 +1,6 @@
1MOUSEKEY_ENABLE = yes 1MOUSEKEY_ENABLE = yes
2EXTRAKEY_ENABLE = yes 2EXTRAKEY_ENABLE = yes
3CONSOLE_ENABLE = yes 3CONSOLE_ENABLE = no
4RGBLIGHT_ENABLE = yes 4RGBLIGHT_ENABLE = yes
5ENCODER_ENABLE = yes 5ENCODER_ENABLE = yes
6LTO_ENABLE = yes 6LTO_ENABLE = yes